class Cdx::Engine
Public Class Methods
add_routes(&block)
click to toggle source
# File lib/cdx/routes.rb, line 5 def self.add_routes(&block) @cdx_routes ||= [] # Anything that causes the application's routes to be reloaded, # will cause this method to be called more than once # i.e. https://github.com/plataformatec/devise/blob/31971e69e6a1bcf6c7f01eaaa44f227c4af5d4d2/lib/devise/rails.rb#L14 # In the case of Devise, this *only* happens in the production env # This coupled with Rails 4's insistence that routes are not drawn twice, # poses quite a serious problem. # # This is mainly why this whole file exists in the first place. # # Thus we need to make sure that the routes aren't drawn twice. @cdx_routes << block unless @cdx_routes.include?(block) end
append_routes(&block)
click to toggle source
# File lib/cdx/routes.rb, line 22 def self.append_routes(&block) @append_routes ||= [] # See comment in add_routes. @append_routes << block unless @append_routes.include?(block) end
draw_routes(&block)
click to toggle source
# File lib/cdx/routes.rb, line 28 def self.draw_routes(&block) @cdx_routes ||= [] @append_routes ||= [] eval_block(block) if block_given? @cdx_routes.each { |r| eval_block(&r) } @append_routes.each { |r| eval_block(&r) } # # Clear out routes so that they aren't drawn twice. @cdx_routes = [] @append_routes = [] end
Public Instance Methods
eval_block(&block)
click to toggle source
# File lib/cdx/routes.rb, line 39 def eval_block(&block) Cdx::Engine.routes.send :eval_block, block end