Module: DynamicController::HelperMethods

Defined in:
lib/dynamic_controller/helper_methods.rb

Instance Method Summary collapse

Instance Method Details

#collectionObject



16
17
18
# File 'lib/dynamic_controller/helper_methods.rb', line 16

def collection
  instance_variable_get("@#{controller_name}")
end

#collection=(value) ⇒ Object



12
13
14
# File 'lib/dynamic_controller/helper_methods.rb', line 12

def collection=(value)
  instance_variable_set("@#{controller_name}", value)
end

#handle_error(error) ⇒ Object



51
52
53
54
55
56
# File 'lib/dynamic_controller/helper_methods.rb', line 51

def handle_error(error)
  respond_to do |format|
    format.html { raise error }
    format.json { render json: error.message, status: :internal_server_error }
  end
end

#load_parent_modelsObject



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/dynamic_controller/helper_methods.rb', line 28

def load_parent_models
  parent = nil
  self.class.parent_resources.each do |resource|
    if parent
      parent = parent.send(resource.children_name).find(params[resource.param_name])
    else
      parent = resource.find params[resource.param_name]
    end
    instance_variable_set resource.instance_variable_name, parent
  end
end

#modelObject



24
25
26
# File 'lib/dynamic_controller/helper_methods.rb', line 24

def model
  instance_variable_get("@#{controller_name.singularize}")
end

#model=(value) ⇒ Object



20
21
22
# File 'lib/dynamic_controller/helper_methods.rb', line 20

def model=(value)
  instance_variable_set("@#{controller_name.singularize}", value)
end

#model_extended_attributesObject



58
59
60
# File 'lib/dynamic_controller/helper_methods.rb', line 58

def model_extended_attributes
  resource_class.column_names | resource_class.reflections.map { |k, v| v.klass.column_names.map { |c| "#{k}_#{c}" } }.flatten
end

#parent_modelObject



47
48
49
# File 'lib/dynamic_controller/helper_methods.rb', line 47

def parent_model
  (parent_models || []).last
end

#parent_modelsObject



40
41
42
43
44
45
# File 'lib/dynamic_controller/helper_methods.rb', line 40

def parent_models
  return nil if self.class.parent_resources.empty?
  self.class.parent_resources.map do |resource|
    instance_variable_get resource.instance_variable_name
  end
end

#resource_classObject



4
5
6
# File 'lib/dynamic_controller/helper_methods.rb', line 4

def resource_class
  @resource_class ||= (resource_namespace.to_s.split('::') << controller_name.classify).join('::').constantize
end

#resource_namespaceObject



8
9
10
# File 'lib/dynamic_controller/helper_methods.rb', line 8

def resource_namespace
  self.class.to_s.deconstantize.constantize
end

#search_queryObject



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/dynamic_controller/helper_methods.rb', line 62

def search_query
  return @search_query if @search_query

  query_key = "query_#{params[:controller]}_#{params[:action]}"

  @search_query = if params.has_key?(:q)
                    session[query_key] = params[:q] if params[:q_persistent] == 'true'
                    params[:q]
                  else
                    session[query_key]
                  end
end