Class: KirguduBase::DynamicPages::Builder

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

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Builder

Returns a new instance of Builder.



4
5
6
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 4

def initialize(&block)
  instance_eval(&block) if block_given?
end

Instance Method Details

#build_element(element) ⇒ Object



9
10
11
12
13
14
15
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 9

def build_element(element)
  self.builder_options.each_pair do |key, value|
    element.send("#{key}=", value)
  end
  element.fix_parent_entry(nil)
  self.validate_generated_element(element)
end

#builder_optionsObject



18
19
20
21
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 18

def builder_options
  @options = {} unless @options
  @options
end

#valiadte_interger_parameter(name, value) ⇒ Object



27
28
29
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 27

def valiadte_interger_parameter(name, value)
  raise "Parameter \"#{name}\" accepts only integer values" unless value.is_a?(Integer)
end

#valiadte_interger_positive_parameter(name, value) ⇒ Object



31
32
33
34
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 31

def valiadte_interger_positive_parameter(name, value)
  raise "Parameter \"#{name}\" accepts only integer values" unless value.is_a?(Integer)
  raise "Parameter \"#{name}\" accepts only positive values (>=0)" unless value.is_a?(Integer) if value < 0
end

#validate_empty_parameter(name, value) ⇒ Object



23
24
25
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 23

def validate_empty_parameter(name, value)
  raise "Parameter \"#{name}\" cannot be empty. If you dont want to assign specific value to this parameter, just delete it from code" unless value
end

#validate_generated_element(element) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 49

def validate_generated_element(element)
  errors = []
  unless element.valid?

    #raise "ERRORS FOR ELEMENT: #{element.errors.methods.to_json}"
    element.errors.each do |key, element_errors|
      errors << "'#{key}' #{element_errors}"
      #raise "ERROR KEY: #{key}; ERROR MESSAGES: #{element_errors}"
      #element_errors.each do |element_error|
      #  errors << "'#{key}' #{element_error}"
      #end
    end
  end
  if errors.length > 0

    raise "ERRORS<br/>
         Class: #{element.class}
         Name: #{element.name if element.respond_to?(:name)} <br/>

         #{errors.join('<br/>')}".html_safe
  end
end

#validate_string_or_symbol_parameter(name, value) ⇒ Object



45
46
47
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 45

def validate_string_or_symbol_parameter(name, value)
  raise "Parameter \"#{name}\" must be a \"String\" or a :Symbol." unless value && (value.is_a?(String) || value.is_a?(Symbol))
end

#validate_string_parameter(name, value) ⇒ Object



37
38
39
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 37

def validate_string_parameter(name, value)
  raise "Parameter \"#{name}\" must be a \"String\"." unless value && value.is_a?(String)
end

#validate_symbol_parameter(name, value) ⇒ Object



41
42
43
# File 'app/models/kirgudu_base/dynamic_pages/builder.rb', line 41

def validate_symbol_parameter(name, value)
  raise "Parameter \"#{name}\"must be a :Symbol." unless value && value.is_a?(Symbol)
end