Class: ProgrammableScaffoldRails::ActionControllerHelpers

Inherits:
Object
  • Object
show all
Defined in:
lib/programmable_scaffold_rails/action_controller_helpers.rb

Overview

Used to avoid polluting controller class with methods

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ ActionControllerHelpers

Returns a new instance of ActionControllerHelpers.



9
10
11
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 9

def initialize(parent)
  @parent = parent
end

Instance Method Details

#after_create_actionObject



61
62
63
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 61

def after_create_action
  @after_create_action = options[:after_create_action].try(:to_sym)
end

#after_create_url(obj) ⇒ Object



101
102
103
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 101

def after_create_url(obj)
  run_after_url_call_or_yield(:create, obj) { after_create_or_update_default_url(:create, obj) }
end

#after_destroy_url(obj) ⇒ Object



109
110
111
112
113
114
115
116
117
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 109

def after_destroy_url(obj)
  run_after_url_call_or_yield(:destroy, obj) do
    if url_namespace.blank?
      controller.url_for(multiple_instances_name)
    else
      controller.url_for([url_namespace, multiple_instances_name])
    end
  end
end

#after_update_actionObject



65
66
67
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 65

def after_update_action
  @after_update_action = options[:after_update_action].try(:to_sym)
end

#after_update_url(obj) ⇒ Object



105
106
107
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 105

def after_update_url(obj)
  run_after_url_call_or_yield(:update, obj) { after_create_or_update_default_url(:create, obj) }
end

#call_strong_paramsObject



94
95
96
97
98
99
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 94

def call_strong_params
  unless controller.respond_to?(strong_params)
    raise NotImplementedError, 'No strong_params method specified'
  end
  controller.send(strong_params)
end

#cancanObject



27
28
29
30
31
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 27

def cancan
  return @cancan unless @cancan.nil?

  @cancan = !!options[:cancan]
end

#find_by_id_or_friendly_id(params) ⇒ Object



79
80
81
82
83
84
85
86
87
88
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 79

def find_by_id_or_friendly_id(params)
  found = nil
  if friendly_id && klass.respond_to?(:friendly)
    found = klass.friendly.find(params[:id])
  else
    found = klass.find(params[:id])
  end

  found
end

#formatsObject



69
70
71
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 69

def formats
  @formats ||= options[:formats]
end

#friendly_idObject



73
74
75
76
77
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 73

def friendly_id
  return @friendly_id unless @friendly_id.nil?

  @friendly_id = !!options[:friendly_id]
end

#klassObject



13
14
15
16
17
18
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 13

def klass
  return @klass if @klass

  @klass = options[:class_name].try(:to_s) || controller.controller_name.to_s
  @klass = @klass.classify.constantize
end

#multiple_instancesObject



51
52
53
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 51

def multiple_instances
  @multiple_instances ||= "@#{ multiple_instances_name }".to_sym
end

#multiple_instances_nameObject



44
45
46
47
48
49
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 44

def multiple_instances_name
  return @multiple_instances_name if @multiple_instances_name

  @multiple_instances_name = options[:multiple_instances_name].try(:to_s) || table.to_s
  @multiple_instances_name = @multiple_instances_name.pluralize.to_sym
end

#single_instanceObject



40
41
42
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 40

def single_instance
  @single_instance ||= "@#{ single_instance_name }".to_sym
end

#single_instance_nameObject



33
34
35
36
37
38
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 33

def single_instance_name
  return @single_instance_name if @single_instance_name

  @single_instance_name = options[:single_instance_name].try(:to_s) || table.to_s
  @single_instance_name = @single_instance_name.singularize.to_sym
end

#strong_paramsObject



90
91
92
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 90

def strong_params
  @strong_params ||= options[:strong_params].try(:to_sym)
end

#tableObject



20
21
22
23
24
25
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 20

def table
  return @table if @table

  @table = options[:table_name].try(:to_s) || klass.to_s
  @table = @table.tableize.to_sym
end

#url_namespaceObject



55
56
57
58
59
# File 'lib/programmable_scaffold_rails/action_controller_helpers.rb', line 55

def url_namespace
  return @url_namespace if @url_namespace

  @url_namespace = options[:url_namespace].try(:to_s) || ''
end