Class: ActionDispatch::Routing::RouteWrapper

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/action_dispatch/routing/inspector.rb

Instance Method Summary collapse

Instance Method Details

#actionObject



67
68
69
# File 'lib/action_dispatch/routing/inspector.rb', line 67

def action
  requirements[:action] || ':action'
end

#constraintsObject



11
12
13
# File 'lib/action_dispatch/routing/inspector.rb', line 11

def constraints
  requirements.except(:controller, :action)
end

#controllerObject



63
64
65
# File 'lib/action_dispatch/routing/inspector.rb', line 63

def controller
  requirements[:controller] || ':controller'
end

#endpointObject



7
8
9
# File 'lib/action_dispatch/routing/inspector.rb', line 7

def endpoint
  rack_app ? rack_app.inspect : "#{controller}##{action}"
end

#engine?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/action_dispatch/routing/inspector.rb', line 75

def engine?
  rack_app && rack_app.respond_to?(:routes)
end

#internal?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/action_dispatch/routing/inspector.rb', line 71

def internal?
  controller.to_s =~ %r{\Arails/(info|mailers|welcome)} || path =~ %r{\A#{Rails.application.config.assets.prefix}\z}
end

#json_regexpObject



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/action_dispatch/routing/inspector.rb', line 42

def json_regexp
  str = regexp.inspect.
        sub('\\A' , '^').
        sub('\\Z' , '$').
        sub('\\z' , '$').
        sub(/^\// , '').
        sub(/\/[a-z]*$/ , '').
        gsub(/\(\?#.+\)/ , '').
        gsub(/\(\?-\w+:/ , '(').
        gsub(/\s/ , '')
  Regexp.new(str).source
end

#nameObject



34
35
36
# File 'lib/action_dispatch/routing/inspector.rb', line 34

def name
  super.to_s
end

#pathObject



30
31
32
# File 'lib/action_dispatch/routing/inspector.rb', line 30

def path
  super.spec.to_s
end

#rack_app(app = self.app) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/action_dispatch/routing/inspector.rb', line 15

def rack_app(app = self.app)
  @rack_app ||= begin
    class_name = app.class.name.to_s
    if class_name == "ActionDispatch::Routing::Mapper::Constraints"
      rack_app(app.app)
    elsif ActionDispatch::Routing::Redirect === app || class_name !~ /^ActionDispatch::Routing/
      app
    end
  end
end

#regexpObject



38
39
40
# File 'lib/action_dispatch/routing/inspector.rb', line 38

def regexp
  __getobj__.path.to_regexp
end

#reqsObject



55
56
57
58
59
60
61
# File 'lib/action_dispatch/routing/inspector.rb', line 55

def reqs
  @reqs ||= begin
    reqs = endpoint
    reqs += " #{constraints.to_s}" unless constraints.empty?
    reqs
  end
end

#verbObject



26
27
28
# File 'lib/action_dispatch/routing/inspector.rb', line 26

def verb
  super.source.gsub(/[$^]/, '')
end