Module: Carnival::Dsl::ClassMethods

Defined in:
app/presenters/carnival/dsl.rb

Instance Method Summary collapse

Instance Method Details

#action(name, params = {}) ⇒ Object



18
19
20
21
# File 'app/presenters/carnival/dsl.rb', line 18

def action(name, params = {})
  class_variable_get('@@actions')[presenter_class_name] ||= {}
  class_variable_get('@@actions')[presenter_class_name][name] = Carnival::Action.new(name, params)
end

#batch_action(name, params = {}) ⇒ Object



23
24
25
26
# File 'app/presenters/carnival/dsl.rb', line 23

def batch_action(name, params = {})
  class_variable_get('@@batch_actions')[presenter_class_name] ||= {}
  class_variable_get('@@batch_actions')[presenter_class_name][name] = Carnival::BatchAction.new(self.new, name, params)
end

#csv_records_per_chunk(records_per_chunk) ⇒ Object



49
50
51
# File 'app/presenters/carnival/dsl.rb', line 49

def csv_records_per_chunk(records_per_chunk)
  class_variable_get('@@csv_records_per_chunk')[presenter_class_name] = records_per_chunk
end

#field(name, params = {}) ⇒ Object



37
38
39
# File 'app/presenters/carnival/dsl.rb', line 37

def field(name, params = {})
  instantiate_element(class_variable_get('@@fields'), Carnival::Field, name.to_sym, params)
end

#form(action, params = {}) ⇒ Object



41
42
43
# File 'app/presenters/carnival/dsl.rb', line 41

def form(action, params = {})
  instantiate_element(class_variable_get('@@forms'), Carnival::Form, name.to_sym, params)
end

#index_as(type) ⇒ Object



14
15
16
# File 'app/presenters/carnival/dsl.rb', line 14

def index_as(type)
  class_variable_get('@@index_as')[presenter_class_name] = type
end

#instantiate_element(container, klass, name, params) ⇒ Object



53
54
55
56
# File 'app/presenters/carnival/dsl.rb', line 53

def instantiate_element(container, klass, name, params)
  container[presenter_class_name] ||= {}
  container[presenter_class_name][name] = klass.new(name, params)
end

#items_per_page(per_page) ⇒ Object



28
29
30
31
# File 'app/presenters/carnival/dsl.rb', line 28

def items_per_page(per_page)
  class_variable_get('@@items_per_page')[presenter_class_name] ||= {}
  class_variable_get('@@items_per_page')[presenter_class_name][:items_per_page] = per_page
end

#model_name(name) ⇒ Object



45
46
47
# File 'app/presenters/carnival/dsl.rb', line 45

def model_name(name)
  class_variable_get('@@model_names')[presenter_class_name] = name
end

#scope(name, params = {}) ⇒ Object



33
34
35
# File 'app/presenters/carnival/dsl.rb', line 33

def scope(name, params = {})
  instantiate_element(class_variable_get('@@scopes'), Carnival::Scope, name.to_sym, params)
end