Class: ActionDispatch::Routing::Mapper

Inherits:
Object
  • Object
show all
Defined in:
lib/croods/routes.rb

Instance Method Summary collapse

Instance Method Details

#create_application_controller!Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/croods/routes.rb', line 32

def create_application_controller!
  Croods::Controller.instance_eval do
    include DeviseTokenAuth::Concerns::SetUserByToken
  end

  Object.const_set(
    'ApplicationController', Class.new(Croods::Controller)
  )

  Croods.application_controller_blocks.each do |block|
    ApplicationController.instance_eval(&block)
  end
end

#create_resource_routes!(resource) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/croods/routes.rb', line 20

def create_resource_routes!(resource)
  resources(
    resource.route_name,
    param: resource.identifier,
    only: resource.actions.map(&:name)
  ) do
    resource.additional_actions.each do |action|
      public_send(action.method, action.name, on: action.on)
    end
  end
end

#mount_croodsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/croods/routes.rb', line 6

def mount_croods
  create_application_controller!

  Croods.resources.each do |resource|
    resource.create_model!
    resource.create_policy!
    resource.create_controller!
    resource.apply_authorization_roles!
    create_resource_routes!(resource)
  end

  Croods.json_schema = Croods::Api.json_schema
end