class Dre::Rails::Routes

Attributes

routes[RW]

Public Class Methods

install!() click to toggle source
# File lib/dre/rails/routes.rb, line 13
def self.install!
  ActionDispatch::Routing::Mapper.send :include, Dre::Rails::Routes::Helper
end
new(routes, &block) click to toggle source
# File lib/dre/rails/routes.rb, line 19
def initialize(routes, &block)
  @routes, @block = routes, block
end

Public Instance Methods

generate_routes!(options) click to toggle source
# File lib/dre/rails/routes.rb, line 23
def generate_routes!(options)
  @mapping = Mapper.new.map(&@block)
  routes.scope options[:scope] || '', as: 'dre' do
    map_route(:devices, :device_routes)
  end
end

Private Instance Methods

device_routes(mapping) click to toggle source
# File lib/dre/rails/routes.rb, line 38
def device_routes(mapping)
  routes.resources(
    :devices,
    controller: mapping[:controllers],
    as: :devices,
    path: 'devices',
    only: [:index],
  ) do |scope|
    routes.put    ':token', controller: mapping[:controllers], action: :register, on: :collection
    routes.delete ':token', controller: mapping[:controllers], action: :deregister, on: :collection
  end
end
map_route(name, method) click to toggle source
# File lib/dre/rails/routes.rb, line 32
def map_route(name, method)
  unless @mapping.skipped?(name)
    send method, @mapping[name]
  end
end