module AutoloadResources::Able::ClassMethods

Public Instance Methods

autoload_instance_variable_name(klass, action_name) click to toggle source
# File lib/autoload_resources/able.rb, line 34
def autoload_instance_variable_name(klass, action_name)
  case String(action_name)
  when "index" then klass.model_name.plural
  else klass.model_name.element
  end
end
autoload_instance_variable_names(action_name) click to toggle source
# File lib/autoload_resources/able.rb, line 41
def autoload_instance_variable_names(action_name)
  resource_class.ancestors.grep(Class).select do |klass|
    klass != ActiveRecord::Base && klass.ancestors.include?(ActiveRecord::Base)
  end.collect do |klass|
    autoload_instance_variable_name(klass, action_name)
  end
end
autoload_procs() click to toggle source
# File lib/autoload_resources/able.rb, line 30
def autoload_procs
  @autoload_procs ||= HashWithIndifferentAccess.new
end
autoload_resources() { || ... } click to toggle source
# File lib/autoload_resources/able.rb, line 24
def autoload_resources
  set_default_autoload_procs
  yield if block_given?
  before_action :autoload_resources
end
create_params_method() click to toggle source
# File lib/autoload_resources/able.rb, line 79
def create_params_method
  autoload_instance_variable_names(:create).collect do |element|
    element + "_params"
  end.find do |params_method_name|
    private_method_defined? params_method_name
  end
end
default_autoload_procs() click to toggle source
# File lib/autoload_resources/able.rb, line 56
def default_autoload_procs
  {
    index: Proc.new { resource_class.all },
    new: Proc.new { resource_class.new },
    create: default_create_proc,
    [:show, :edit, :update, :destroy] => Proc.new { resource_class.find(params[:id]) }
  }
end
default_create_proc() click to toggle source
# File lib/autoload_resources/able.rb, line 65
def default_create_proc
  Proc.new do
    params_method = self.class.create_params_method
    params_method and resource_class.new(send(params_method))
  end
end
for_action(actions, proc=nil, &block)
Alias for: for_actions
for_actions(actions, proc=nil, &block) click to toggle source
# File lib/autoload_resources/able.rb, line 72
def for_actions(actions, proc=nil, &block)
  Array(actions).each do |action|
    autoload_procs[action] = block || proc
  end
end
Also aliased as: for_action
set_default_autoload_procs() click to toggle source
# File lib/autoload_resources/able.rb, line 49
def set_default_autoload_procs
  return unless resource_class
  default_autoload_procs.each do |actions, closure|
    for_actions(actions, closure)
  end
end