Class: KirguduBase::DynamicPages::PageElementsBlockBuilder
- Inherits:
-
Builder
- Object
- Builder
- KirguduBase::DynamicPages::PageElementsBlockBuilder
- Defined in:
- app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb
Instance Method Summary collapse
- #entry(name, &block) ⇒ Object
- #form(name, &block) ⇒ Object
- #group(name, &block) ⇒ Object
-
#initialize(&block) ⇒ PageElementsBlockBuilder
constructor
A new instance of PageElementsBlockBuilder.
- #list(name, &block) ⇒ Object
- #tab(name, &block) ⇒ Object
- #to_elements ⇒ Object
Constructor Details
#initialize(&block) ⇒ PageElementsBlockBuilder
Returns a new instance of PageElementsBlockBuilder.
4 5 6 7 8 9 10 11 12 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 4 def initialize(&block) self.[:forms] = {} self.[:lists] = {} self.[:entries] = {} self.[:tabs] = {} self.[:elements] = [] super(&block) end |
Instance Method Details
#entry(name, &block) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 52 def entry(name, &block) #raise "Error from List. List Name: #{name}" raise "Cannot create empty Entry" unless block_given? element = ::KirguduBase::DynamicPages::EntryBuilder.new(name, &block).to_element raise "Duplicate Entry with name: #{element.name}" if self.[:entries][element.name] self.[:entries][element.name] = element self.[:elements] << element end |
#form(name, &block) ⇒ Object
14 15 16 17 18 19 20 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 14 def form(name, &block) raise "Cannot create empty Form" unless block_given? element = ::KirguduBase::DynamicPages::FormBuilder.new(name, &block).to_element raise "Duplicate Form with name: #{element.name}" if self.[:forms][element.name] self.[:forms][element.name] = element self.[:elements] << element end |
#group(name, &block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 39 def group(name, &block) raise "Cannot create empty Group" unless block_given? element = ::KirguduBase::DynamicPages::GroupBuilder.new(name, ::KirguduBase::DynamicPages::Enums::ELEMENTS_FOR_PAGE, &block).to_element self.[:elements].each do |elm| if elm.is_a?(::KirguduBase::DynamicPages::Group) if elm.name == name raise "Duplicate Group with name: #{element.name}" if self.[:groups][element.name] end end end self.[:elements] << element end |
#list(name, &block) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 22 def list(name, &block) #raise "Error from List. List Name: #{name}" raise "Cannot create empty List" unless block_given? element = ::KirguduBase::DynamicPages::ListBuilder.new(name, &block).to_element raise "Duplicate List with name: #{element.name}" if self.[:lists][element.name] self.[:lists][element.name] = element self.[:elements] << element end |
#tab(name, &block) ⇒ Object
31 32 33 34 35 36 37 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 31 def tab(name, &block) #raise "Error from List. List Name: #{name}" element = ::KirguduBase::DynamicPages::PageTabBuilder.new(name, &block).to_element raise "Duplicate Tab with name: #{element.name}" if self.[:tabs][element.name] self.[:tabs][element.name] = element self.[:elements] << element end |
#to_elements ⇒ Object
62 63 64 |
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 62 def to_elements @elements end |