Module: ExpressAdmin::StandardActions::ClassMethods

Defined in:
lib/express_admin/standard_actions.rb

Instance Method Summary collapse

Instance Method Details

#infer_resource_classObject



49
50
51
52
53
54
55
56
# File 'lib/express_admin/standard_actions.rb', line 49

def infer_resource_class
  klass = nil
  if self.parent
    klass = self.parent.const_get(resource_name.classify) rescue nil
  end
  klass ||= resource_name.classify.constantize rescue nil
  klass
end

#inherited(base) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/express_admin/standard_actions.rb', line 21

def inherited(base)
  base.class_eval <<-RUBY
    def #{base.resource_name}_params
      params.require(:#{base.resource_name}).permit!
    end
  RUBY

  base.class_eval do

    class_attribute :resource_class
    self.resource_class = infer_resource_class

    if self.resource_class.respond_to?(:commands)
      self.resource_class.commands.each do |command|
        define_command_method(command[:name].debang, command[:name])
      end
    end
  end
end

#manages(a_resource_class) ⇒ Object



41
42
43
# File 'lib/express_admin/standard_actions.rb', line 41

def manages(a_resource_class)
  self.resource_class = a_resource_class
end

#resource_nameObject



45
46
47
# File 'lib/express_admin/standard_actions.rb', line 45

def resource_name
  self.to_s.demodulize.gsub(/Controller$/, '').singularize.underscore
end