Module: Rack::Mount::Generation::Route

Included in:
Route
Defined in:
lib/rack/mount/generation/route.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#generate(methods, params = {}, recall = {}, options = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/rack/mount/generation/route.rb', line 29

def generate(methods, params = {}, recall = {}, options = {})
  if methods.is_a?(Array)
    result = methods.map { |m| generate_method(m, params, recall, options) || (return nil) }
  else
    result = generate_method(methods, params, recall, options)
  end

  if result
    @defaults.each do |key, value|
      params.delete(key) if params[key] == value
    end
  end

  result
end

#generation_keysObject



15
16
17
18
19
20
21
22
23
# File 'lib/rack/mount/generation/route.rb', line 15

def generation_keys
  @conditions.inject({}) { |keys, (method, condition)|
    if condition.respond_to?(:required_defaults)
      keys.merge!(condition.required_defaults)
    else
      keys
    end
  }
end

#initialize(*args) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/rack/mount/generation/route.rb', line 6

def initialize(*args)
  super

  @has_significant_params = @conditions.any? { |method, condition|
    (condition.respond_to?(:required_params) && condition.required_params.any?) ||
      (condition.respond_to?(:required_defaults) && condition.required_defaults.any?)
  }
end

#significant_params?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/rack/mount/generation/route.rb', line 25

def significant_params?
  @has_significant_params
end