Class: KirguduBase::DynamicPages::PageElementsBlockBuilder

Inherits:
Builder
  • Object
show all
Defined in:
app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb

Instance Method Summary collapse

Methods inherited from Builder

#build_element, #builder_options, #valiadte_interger_parameter, #valiadte_interger_positive_parameter, #validate_empty_parameter, #validate_generated_element, #validate_string_or_symbol_parameter, #validate_string_parameter, #validate_symbol_parameter

Constructor Details

#initialize(&block) ⇒ PageElementsBlockBuilder

Returns a new instance of PageElementsBlockBuilder.



5
6
7
8
9
10
11
12
13
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 5

def initialize(&block)
  self.builder_options[:forms] = {}
  self.builder_options[:lists] = {}
  self.builder_options[:entries] = {}
  self.builder_options[:tabs] = {}
  self.builder_options[:elements] = []

  super(&block)
end

Instance Method Details

#entry(name, &block) ⇒ Object



53
54
55
56
57
58
59
60
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 53

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.builder_options[:entries][element.name]
  self.builder_options[:entries][element.name] = element
  self.builder_options[:elements] << element
end

#form(name, &block) ⇒ Object



15
16
17
18
19
20
21
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 15

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.builder_options[:forms][element.name]
  self.builder_options[:forms][element.name] = element
  self.builder_options[:elements] << element
end

#group(name, &block) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 40

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.builder_options[:elements].each do |elm|
    if elm.is_a?(::KirguduBase::DynamicPages::Group)
      if elm.name == name
        raise "Duplicate Group with name: #{element.name}" if self.builder_options[:groups][element.name]
      end
    end
  end
  self.builder_options[:elements] << element
end

#list(name, &block) ⇒ Object



23
24
25
26
27
28
29
30
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 23

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.builder_options[:lists][element.name]
  self.builder_options[:lists][element.name] = element
  self.builder_options[:elements] << element
end

#tab(name, &block) ⇒ Object



32
33
34
35
36
37
38
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 32

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.builder_options[:tabs][element.name]
  self.builder_options[:tabs][element.name] = element
  self.builder_options[:elements] << element
end

#to_elementsObject



67
68
69
# File 'app/models/kirgudu_base/dynamic_pages/page_elements_block_builder.rb', line 67

def to_elements
  @elements
end