Class: KirguduBase::DynamicPages::ListBuilder

Inherits:
PageElementBuilder show all
Defined in:
app/models/kirgudu_base/dynamic_pages/list_builder.rb

Instance Method Summary collapse

Methods inherited from PageElementBuilder

#css_class, #enabled, #html_options, #id, #visible

Constructor Details

#initialize(name, &block) ⇒ ListBuilder

Returns a new instance of ListBuilder.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 5

def initialize(name, &block)


  self.builder_options.merge!(
    {
      url: nil,
      http_method: :get,
      is_ajax: :false,
      per_page: 30,
      properties: nil,
      filters: nil,
      cells: nil,
      model: nil,
      parent: nil

    }
  )
  super(name, &block)
end

Instance Method Details

#cells(&block) ⇒ Object



73
74
75
76
77
78
79
80
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 73

def cells(&block)
  elements = ::KirguduBase::DynamicPages::ListCellsBlockBuilder.new(&block).to_elements

  elements.each do |element|
    self.builder_options[:cells] = [] unless self.builder_options[:cells]
    self.builder_options[:cells] << element
  end if elements
end

#filters(&block) ⇒ Object



63
64
65
66
67
68
69
70
71
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 63

def filters(&block)
  elements = ::KirguduBase::DynamicPages::ListFiltersBlockBuilder.new(&block).to_elements

  elements.each do |element|
    self.builder_options[:filters] = [] unless self.builder_options[:filters]
    self.builder_options[:filters] << element
  end if elements

end

#http_method(value) ⇒ Object



38
39
40
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 38

def http_method(value)
  self.builder_options[:http_method] = value
end

#is_ajax(value) ⇒ Object



42
43
44
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 42

def is_ajax(value)
  self.builder_options[:is_ajax] = value
end

#model(value) ⇒ Object



82
83
84
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 82

def model(value)
  self.builder_options[:model] = value
end

#parent(&block) ⇒ Object



86
87
88
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 86

def parent(&block)
  self.builder_options[:parent] = ::KirguduBase::DynamicPages::ParentElementBuilder.new(&block).to_element
end

#per_page(value) ⇒ Object



46
47
48
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 46

def per_page(value)
  self.builder_options[:per_page] = value
end

#properties(&block) ⇒ Object



55
56
57
58
59
60
61
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 55

def properties(&block)
  elements = ::KirguduBase::DynamicPages::ListPropertiesBlockBuilder.new(&block).to_elements
  elements.each do |element|
    self.builder_options[:properties] = {} unless self.builder_options[:properties]
    self.builder_options[:properties][element.name] = element
  end if elements
end

#relation(&block) ⇒ Object



50
51
52
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 50

def relation(&block)
  self.builder_options[:relation] = ::KirguduBase::DynamicPages::RelationBuilder.new(&block).to_element
end

#to_elementObject



91
92
93
94
95
96
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 91

def to_element
  element = ::KirguduBase::DynamicPages::List.new
  self.build_element(element)
  self.validate_generated_element(element)
  element
end

#url(value) ⇒ Object



25
26
27
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 25

def url(value)
  self.builder_options[:url] = value
end

#url_path(controller, action, params = {}) ⇒ Object



29
30
31
32
33
34
35
# File 'app/models/kirgudu_base/dynamic_pages/list_builder.rb', line 29

def url_path(controller, action, params = {})
  self.builder_options[:url_path] = {
    controller: controller,
    action: action,
    params: params
  }
end