implement options, buttons and fixed bg
This commit is contained in:
31
app/models/merged/option.rb
Normal file
31
app/models/merged/option.rb
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user