Module: Faalis::Dashboard::Sections::Resource::ClassMethods

Defined in:
lib/faalis/dashboard/sections/resource.rb

Overview

The actual DSL for resource ages

Instance Method Summary collapse

Instance Method Details

#engine(name) ⇒ Object

Set the engine name of current controller. It’s necessary to provide and engine name if the controller belongs to an engine other than Faalis or Rails.application.



211
212
213
214
215
# File 'lib/faalis/dashboard/sections/resource.rb', line 211

def engine(name)
  define_method(:_engine) do
    name.constantize
  end
end

#model_classObject

Returns the actual model class by looking at controller_name and and controller_path. If user uses the model_name **class method** (the model_name DSL) then this method will override by the model_name defination of model_class



233
234
235
236
237
238
# File 'lib/faalis/dashboard/sections/resource.rb', line 233

def model_class
  name  = controller_name
  path  = controller_path.gsub(name, '').gsub(/dashboard\//, '')

  "#{path}#{name}".classify.constantize
end

#model_name(name) ⇒ Object

Specify the model name of controller. This method overrides the model_class **class method** and model_name instance method.



219
220
221
222
223
224
225
226
227
# File 'lib/faalis/dashboard/sections/resource.rb', line 219

def model_name(name)
  define_singleton_method :model_class do
    name.constantize
  end

  define_method :model_name do
    name
  end
end

#route_engine(name = nil, &block) ⇒ Object

Via this method user can specify the engine or application name which current resource is defined under. Default value is: Rails.application



191
192
193
194
195
196
197
# File 'lib/faalis/dashboard/sections/resource.rb', line 191

def route_engine(name = nil, &block)
  define_method(:_route_engine) do
    return block.call if block_given?
    return name unless name.nil?
    fail 'You have to provide a name or a block'
  end
end

#route_scope(name, &block) ⇒ Object

Via this method user can specify the name of current resource scope, Default value is dashboard



201
202
203
204
205
206
# File 'lib/faalis/dashboard/sections/resource.rb', line 201

def route_scope(name, &block)
  define_method(:_route_scope) do
    return block.call if block_given?
    name
  end
end