implement options, buttons and fixed bg

This commit is contained in:
2022-12-04 16:47:52 +02:00
parent 236d10a768
commit 77a7917869
12 changed files with 118 additions and 9 deletions

View File

@ -0,0 +1,31 @@
module Merged
class Option
attr_reader :name , :default , :description
def initialize(options)
@name = options["name"]
@default = options["default"]
@description = options["description"]
@values = options["values"]
end
def type
if has_values?
"select"
else
"text"
end
end
def has_values?
return false if @values.nil?
! @values.empty?
end
def values
return [] unless has_values?
@values.split(" ")
end
end
end

View File

@ -9,7 +9,6 @@ module Merged
attr_reader :name , :content , :page , :index , :cards
def initialize(page , index , section_data)
@page = page
raise "No number #{index}" unless index.is_a?(Integer)
@ -25,7 +24,7 @@ module Merged
end
end
[:template , :card_template , :id , :text , :header, :image].each do |meth|
[:template , :card_template , :id , :text , :header, :image, :options].each do |meth|
define_method(meth) do
@content[meth.to_s]
end
@ -41,11 +40,20 @@ module Merged
options.has_key?(option)
end
def option_definitions
template_style.options
end
def option(name)
options[name]
end
def options
@content["options"] || {}
end
def set_option( option , value)
puts "#{template} setting option #{option}=#{value.class}"
@content["options"] = {} if @content["options"].nil?
options[option] = value
end

View File

@ -2,6 +2,7 @@ module Merged
class Style
include ActiveModel::API
@@options ={}
@@sections = {}
@@cards = {}
@ -11,7 +12,7 @@ module Merged
@content = content
end
[:template , :text , :header, :fields].each do |meth|
[:template , :text , :header, :fields ].each do |meth|
define_method(meth) do
@content[meth.to_s]
end
@ -27,11 +28,26 @@ module Merged
"merged/card_preview/" + template
end
def options
option_defs = []
@content["options"].each do |name|
option = Style.options[name]
raise "no option for #{name}:name.class" if option.blank?
option_defs << option
end
option_defs
end
def self.cards
self.load
@@cards
end
def self.options
self.load
@@options
end
def self.sections
self.load
@@sections
@ -48,6 +64,10 @@ module Merged
card = Style.new(content)
@@cards[card.template] = card
end
all["options"].each do |content|
option = Option.new(content)
@@options[option.name] = option
end
end
end