Class: EngineRouter::Routes

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

Instance Method Summary collapse

Constructor Details

#initialize(engine) ⇒ Routes

Returns a new instance of Routes.



4
5
6
7
# File 'lib/engine_router/routes.rb', line 4

def initialize (engine)
  @engine = engine
  clear_routes
end

Instance Method Details

#append(&block) ⇒ Object



19
20
21
22
23
# File 'lib/engine_router/routes.rb', line 19

def append &block
  unless append_routes.include?(block)
    @append_routes << block
  end
end

#clear_routesObject



37
38
39
40
# File 'lib/engine_router/routes.rb', line 37

def clear_routes
  @prepend_routes = []
  @append_routes = []
end

#draw(&block) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/engine_router/routes.rb', line 25

def draw &block
  prepend_routes.each { |r| eval_block(&r) }
  eval_block(&block) if block_given?
  append_routes.each { |r| eval_block(&r) }
  # Clear out routes so that they aren't drawn twice.
  clear_routes
end

#engineObject



9
10
11
# File 'lib/engine_router/routes.rb', line 9

def engine
  @engine
end

#eval_block(&block) ⇒ Object



33
34
35
# File 'lib/engine_router/routes.rb', line 33

def eval_block(&block)
  engine.routes.send(:eval_block,block)
end

#prepend(&block) ⇒ Object



13
14
15
16
17
# File 'lib/engine_router/routes.rb', line 13

def prepend &block
  unless prepend_routes.include?(block)
    @prepend_routes << block
  end
end