actionpack 5.2.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (170) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +429 -0
  3. data/MIT-LICENSE +21 -0
  4. data/README.rdoc +57 -0
  5. data/lib/abstract_controller.rb +27 -0
  6. data/lib/abstract_controller/asset_paths.rb +12 -0
  7. data/lib/abstract_controller/base.rb +265 -0
  8. data/lib/abstract_controller/caching.rb +66 -0
  9. data/lib/abstract_controller/caching/fragments.rb +166 -0
  10. data/lib/abstract_controller/callbacks.rb +212 -0
  11. data/lib/abstract_controller/collector.rb +43 -0
  12. data/lib/abstract_controller/error.rb +6 -0
  13. data/lib/abstract_controller/helpers.rb +194 -0
  14. data/lib/abstract_controller/logger.rb +14 -0
  15. data/lib/abstract_controller/railties/routes_helpers.rb +20 -0
  16. data/lib/abstract_controller/rendering.rb +127 -0
  17. data/lib/abstract_controller/translation.rb +31 -0
  18. data/lib/abstract_controller/url_for.rb +35 -0
  19. data/lib/action_controller.rb +66 -0
  20. data/lib/action_controller/api.rb +149 -0
  21. data/lib/action_controller/api/api_rendering.rb +16 -0
  22. data/lib/action_controller/base.rb +276 -0
  23. data/lib/action_controller/caching.rb +46 -0
  24. data/lib/action_controller/form_builder.rb +50 -0
  25. data/lib/action_controller/log_subscriber.rb +78 -0
  26. data/lib/action_controller/metal.rb +256 -0
  27. data/lib/action_controller/metal/basic_implicit_render.rb +13 -0
  28. data/lib/action_controller/metal/conditional_get.rb +274 -0
  29. data/lib/action_controller/metal/content_security_policy.rb +52 -0
  30. data/lib/action_controller/metal/cookies.rb +16 -0
  31. data/lib/action_controller/metal/data_streaming.rb +152 -0
  32. data/lib/action_controller/metal/etag_with_flash.rb +18 -0
  33. data/lib/action_controller/metal/etag_with_template_digest.rb +57 -0
  34. data/lib/action_controller/metal/exceptions.rb +53 -0
  35. data/lib/action_controller/metal/flash.rb +61 -0
  36. data/lib/action_controller/metal/force_ssl.rb +99 -0
  37. data/lib/action_controller/metal/head.rb +60 -0
  38. data/lib/action_controller/metal/helpers.rb +123 -0
  39. data/lib/action_controller/metal/http_authentication.rb +519 -0
  40. data/lib/action_controller/metal/implicit_render.rb +73 -0
  41. data/lib/action_controller/metal/instrumentation.rb +107 -0
  42. data/lib/action_controller/metal/live.rb +312 -0
  43. data/lib/action_controller/metal/mime_responds.rb +313 -0
  44. data/lib/action_controller/metal/parameter_encoding.rb +51 -0
  45. data/lib/action_controller/metal/params_wrapper.rb +293 -0
  46. data/lib/action_controller/metal/redirecting.rb +133 -0
  47. data/lib/action_controller/metal/renderers.rb +181 -0
  48. data/lib/action_controller/metal/rendering.rb +122 -0
  49. data/lib/action_controller/metal/request_forgery_protection.rb +445 -0
  50. data/lib/action_controller/metal/rescue.rb +28 -0
  51. data/lib/action_controller/metal/streaming.rb +223 -0
  52. data/lib/action_controller/metal/strong_parameters.rb +1086 -0
  53. data/lib/action_controller/metal/testing.rb +16 -0
  54. data/lib/action_controller/metal/url_for.rb +58 -0
  55. data/lib/action_controller/railtie.rb +89 -0
  56. data/lib/action_controller/railties/helpers.rb +24 -0
  57. data/lib/action_controller/renderer.rb +117 -0
  58. data/lib/action_controller/template_assertions.rb +11 -0
  59. data/lib/action_controller/test_case.rb +629 -0
  60. data/lib/action_dispatch.rb +112 -0
  61. data/lib/action_dispatch/http/cache.rb +222 -0
  62. data/lib/action_dispatch/http/content_security_policy.rb +272 -0
  63. data/lib/action_dispatch/http/filter_parameters.rb +84 -0
  64. data/lib/action_dispatch/http/filter_redirect.rb +37 -0
  65. data/lib/action_dispatch/http/headers.rb +132 -0
  66. data/lib/action_dispatch/http/mime_negotiation.rb +175 -0
  67. data/lib/action_dispatch/http/mime_type.rb +342 -0
  68. data/lib/action_dispatch/http/mime_types.rb +50 -0
  69. data/lib/action_dispatch/http/parameter_filter.rb +86 -0
  70. data/lib/action_dispatch/http/parameters.rb +126 -0
  71. data/lib/action_dispatch/http/rack_cache.rb +63 -0
  72. data/lib/action_dispatch/http/request.rb +430 -0
  73. data/lib/action_dispatch/http/response.rb +519 -0
  74. data/lib/action_dispatch/http/upload.rb +84 -0
  75. data/lib/action_dispatch/http/url.rb +350 -0
  76. data/lib/action_dispatch/journey.rb +7 -0
  77. data/lib/action_dispatch/journey/formatter.rb +189 -0
  78. data/lib/action_dispatch/journey/gtg/builder.rb +164 -0
  79. data/lib/action_dispatch/journey/gtg/simulator.rb +41 -0
  80. data/lib/action_dispatch/journey/gtg/transition_table.rb +158 -0
  81. data/lib/action_dispatch/journey/nfa/builder.rb +78 -0
  82. data/lib/action_dispatch/journey/nfa/dot.rb +36 -0
  83. data/lib/action_dispatch/journey/nfa/simulator.rb +49 -0
  84. data/lib/action_dispatch/journey/nfa/transition_table.rb +120 -0
  85. data/lib/action_dispatch/journey/nodes/node.rb +140 -0
  86. data/lib/action_dispatch/journey/parser.rb +199 -0
  87. data/lib/action_dispatch/journey/parser.y +50 -0
  88. data/lib/action_dispatch/journey/parser_extras.rb +31 -0
  89. data/lib/action_dispatch/journey/path/pattern.rb +198 -0
  90. data/lib/action_dispatch/journey/route.rb +203 -0
  91. data/lib/action_dispatch/journey/router.rb +156 -0
  92. data/lib/action_dispatch/journey/router/utils.rb +102 -0
  93. data/lib/action_dispatch/journey/routes.rb +82 -0
  94. data/lib/action_dispatch/journey/scanner.rb +64 -0
  95. data/lib/action_dispatch/journey/visitors.rb +268 -0
  96. data/lib/action_dispatch/journey/visualizer/fsm.css +30 -0
  97. data/lib/action_dispatch/journey/visualizer/fsm.js +134 -0
  98. data/lib/action_dispatch/journey/visualizer/index.html.erb +52 -0
  99. data/lib/action_dispatch/middleware/callbacks.rb +36 -0
  100. data/lib/action_dispatch/middleware/cookies.rb +685 -0
  101. data/lib/action_dispatch/middleware/debug_exceptions.rb +205 -0
  102. data/lib/action_dispatch/middleware/debug_locks.rb +124 -0
  103. data/lib/action_dispatch/middleware/exception_wrapper.rb +147 -0
  104. data/lib/action_dispatch/middleware/executor.rb +21 -0
  105. data/lib/action_dispatch/middleware/flash.rb +300 -0
  106. data/lib/action_dispatch/middleware/public_exceptions.rb +57 -0
  107. data/lib/action_dispatch/middleware/reloader.rb +12 -0
  108. data/lib/action_dispatch/middleware/remote_ip.rb +183 -0
  109. data/lib/action_dispatch/middleware/request_id.rb +43 -0
  110. data/lib/action_dispatch/middleware/session/abstract_store.rb +92 -0
  111. data/lib/action_dispatch/middleware/session/cache_store.rb +54 -0
  112. data/lib/action_dispatch/middleware/session/cookie_store.rb +118 -0
  113. data/lib/action_dispatch/middleware/session/mem_cache_store.rb +28 -0
  114. data/lib/action_dispatch/middleware/show_exceptions.rb +62 -0
  115. data/lib/action_dispatch/middleware/ssl.rb +150 -0
  116. data/lib/action_dispatch/middleware/stack.rb +116 -0
  117. data/lib/action_dispatch/middleware/static.rb +130 -0
  118. data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +22 -0
  119. data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb +23 -0
  120. data/lib/action_dispatch/middleware/templates/rescues/_source.html.erb +27 -0
  121. data/lib/action_dispatch/middleware/templates/rescues/_source.text.erb +8 -0
  122. data/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb +52 -0
  123. data/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb +9 -0
  124. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +16 -0
  125. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb +9 -0
  126. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +21 -0
  127. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +13 -0
  128. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +161 -0
  129. data/lib/action_dispatch/middleware/templates/rescues/missing_template.html.erb +11 -0
  130. data/lib/action_dispatch/middleware/templates/rescues/missing_template.text.erb +3 -0
  131. data/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb +32 -0
  132. data/lib/action_dispatch/middleware/templates/rescues/routing_error.text.erb +11 -0
  133. data/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb +20 -0
  134. data/lib/action_dispatch/middleware/templates/rescues/template_error.text.erb +7 -0
  135. data/lib/action_dispatch/middleware/templates/rescues/unknown_action.html.erb +6 -0
  136. data/lib/action_dispatch/middleware/templates/rescues/unknown_action.text.erb +3 -0
  137. data/lib/action_dispatch/middleware/templates/routes/_route.html.erb +16 -0
  138. data/lib/action_dispatch/middleware/templates/routes/_table.html.erb +200 -0
  139. data/lib/action_dispatch/railtie.rb +55 -0
  140. data/lib/action_dispatch/request/session.rb +234 -0
  141. data/lib/action_dispatch/request/utils.rb +78 -0
  142. data/lib/action_dispatch/routing.rb +260 -0
  143. data/lib/action_dispatch/routing/endpoint.rb +17 -0
  144. data/lib/action_dispatch/routing/inspector.rb +225 -0
  145. data/lib/action_dispatch/routing/mapper.rb +2267 -0
  146. data/lib/action_dispatch/routing/polymorphic_routes.rb +352 -0
  147. data/lib/action_dispatch/routing/redirection.rb +201 -0
  148. data/lib/action_dispatch/routing/route_set.rb +890 -0
  149. data/lib/action_dispatch/routing/routes_proxy.rb +69 -0
  150. data/lib/action_dispatch/routing/url_for.rb +236 -0
  151. data/lib/action_dispatch/system_test_case.rb +147 -0
  152. data/lib/action_dispatch/system_testing/browser.rb +49 -0
  153. data/lib/action_dispatch/system_testing/driver.rb +59 -0
  154. data/lib/action_dispatch/system_testing/server.rb +31 -0
  155. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +96 -0
  156. data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +31 -0
  157. data/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +26 -0
  158. data/lib/action_dispatch/testing/assertion_response.rb +47 -0
  159. data/lib/action_dispatch/testing/assertions.rb +24 -0
  160. data/lib/action_dispatch/testing/assertions/response.rb +107 -0
  161. data/lib/action_dispatch/testing/assertions/routing.rb +222 -0
  162. data/lib/action_dispatch/testing/integration.rb +652 -0
  163. data/lib/action_dispatch/testing/request_encoder.rb +55 -0
  164. data/lib/action_dispatch/testing/test_process.rb +50 -0
  165. data/lib/action_dispatch/testing/test_request.rb +71 -0
  166. data/lib/action_dispatch/testing/test_response.rb +53 -0
  167. data/lib/action_pack.rb +26 -0
  168. data/lib/action_pack/gem_version.rb +17 -0
  169. data/lib/action_pack/version.rb +10 -0
  170. metadata +318 -0
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "strscan"
4
+
5
+ module ActionDispatch
6
+ module Journey # :nodoc:
7
+ module NFA # :nodoc:
8
+ class MatchData # :nodoc:
9
+ attr_reader :memos
10
+
11
+ def initialize(memos)
12
+ @memos = memos
13
+ end
14
+ end
15
+
16
+ class Simulator # :nodoc:
17
+ attr_reader :tt
18
+
19
+ def initialize(transition_table)
20
+ @tt = transition_table
21
+ end
22
+
23
+ def simulate(string)
24
+ input = StringScanner.new(string)
25
+ state = tt.eclosure(0)
26
+ until input.eos?
27
+ sym = input.scan(%r([/.?]|[^/.?]+))
28
+
29
+ # FIXME: tt.eclosure is not needed for the GTG
30
+ state = tt.eclosure(tt.move(state, sym))
31
+ end
32
+
33
+ acceptance_states = state.find_all { |s|
34
+ tt.accepting?(tt.eclosure(s).sort.last)
35
+ }
36
+
37
+ return if acceptance_states.empty?
38
+
39
+ memos = acceptance_states.flat_map { |x| tt.memo(x) }.compact
40
+
41
+ MatchData.new(memos)
42
+ end
43
+
44
+ alias :=~ :simulate
45
+ alias :match :simulate
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "action_dispatch/journey/nfa/dot"
4
+
5
+ module ActionDispatch
6
+ module Journey # :nodoc:
7
+ module NFA # :nodoc:
8
+ class TransitionTable # :nodoc:
9
+ include Journey::NFA::Dot
10
+
11
+ attr_accessor :accepting
12
+ attr_reader :memos
13
+
14
+ def initialize
15
+ @table = Hash.new { |h, f| h[f] = {} }
16
+ @memos = {}
17
+ @accepting = nil
18
+ @inverted = nil
19
+ end
20
+
21
+ def accepting?(state)
22
+ accepting == state
23
+ end
24
+
25
+ def accepting_states
26
+ [accepting]
27
+ end
28
+
29
+ def add_memo(idx, memo)
30
+ @memos[idx] = memo
31
+ end
32
+
33
+ def memo(idx)
34
+ @memos[idx]
35
+ end
36
+
37
+ def []=(i, f, s)
38
+ @table[f][i] = s
39
+ end
40
+
41
+ def merge(left, right)
42
+ @memos[right] = @memos.delete(left)
43
+ @table[right] = @table.delete(left)
44
+ end
45
+
46
+ def states
47
+ (@table.keys + @table.values.flat_map(&:keys)).uniq
48
+ end
49
+
50
+ # Returns set of NFA states to which there is a transition on ast symbol
51
+ # +a+ from some state +s+ in +t+.
52
+ def following_states(t, a)
53
+ Array(t).flat_map { |s| inverted[s][a] }.uniq
54
+ end
55
+
56
+ # Returns set of NFA states to which there is a transition on ast symbol
57
+ # +a+ from some state +s+ in +t+.
58
+ def move(t, a)
59
+ Array(t).map { |s|
60
+ inverted[s].keys.compact.find_all { |sym|
61
+ sym === a
62
+ }.map { |sym| inverted[s][sym] }
63
+ }.flatten.uniq
64
+ end
65
+
66
+ def alphabet
67
+ inverted.values.flat_map(&:keys).compact.uniq.sort_by(&:to_s)
68
+ end
69
+
70
+ # Returns a set of NFA states reachable from some NFA state +s+ in set
71
+ # +t+ on nil-transitions alone.
72
+ def eclosure(t)
73
+ stack = Array(t)
74
+ seen = {}
75
+ children = []
76
+
77
+ until stack.empty?
78
+ s = stack.pop
79
+ next if seen[s]
80
+
81
+ seen[s] = true
82
+ children << s
83
+
84
+ stack.concat(inverted[s][nil])
85
+ end
86
+
87
+ children.uniq
88
+ end
89
+
90
+ def transitions
91
+ @table.flat_map { |to, hash|
92
+ hash.map { |from, sym| [from, sym, to] }
93
+ }
94
+ end
95
+
96
+ private
97
+
98
+ def inverted
99
+ return @inverted if @inverted
100
+
101
+ @inverted = Hash.new { |h, from|
102
+ h[from] = Hash.new { |j, s| j[s] = [] }
103
+ }
104
+
105
+ @table.each { |to, hash|
106
+ hash.each { |from, sym|
107
+ if sym
108
+ sym = Nodes::Symbol === sym ? sym.regexp : sym.left
109
+ end
110
+
111
+ @inverted[from][sym] << to
112
+ }
113
+ }
114
+
115
+ @inverted
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,140 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "action_dispatch/journey/visitors"
4
+
5
+ module ActionDispatch
6
+ module Journey # :nodoc:
7
+ module Nodes # :nodoc:
8
+ class Node # :nodoc:
9
+ include Enumerable
10
+
11
+ attr_accessor :left, :memo
12
+
13
+ def initialize(left)
14
+ @left = left
15
+ @memo = nil
16
+ end
17
+
18
+ def each(&block)
19
+ Visitors::Each::INSTANCE.accept(self, block)
20
+ end
21
+
22
+ def to_s
23
+ Visitors::String::INSTANCE.accept(self, "")
24
+ end
25
+
26
+ def to_dot
27
+ Visitors::Dot::INSTANCE.accept(self)
28
+ end
29
+
30
+ def to_sym
31
+ name.to_sym
32
+ end
33
+
34
+ def name
35
+ left.tr "*:".freeze, "".freeze
36
+ end
37
+
38
+ def type
39
+ raise NotImplementedError
40
+ end
41
+
42
+ def symbol?; false; end
43
+ def literal?; false; end
44
+ def terminal?; false; end
45
+ def star?; false; end
46
+ def cat?; false; end
47
+ def group?; false; end
48
+ end
49
+
50
+ class Terminal < Node # :nodoc:
51
+ alias :symbol :left
52
+ def terminal?; true; end
53
+ end
54
+
55
+ class Literal < Terminal # :nodoc:
56
+ def literal?; true; end
57
+ def type; :LITERAL; end
58
+ end
59
+
60
+ class Dummy < Literal # :nodoc:
61
+ def initialize(x = Object.new)
62
+ super
63
+ end
64
+
65
+ def literal?; false; end
66
+ end
67
+
68
+ %w{ Symbol Slash Dot }.each do |t|
69
+ class_eval <<-eoruby, __FILE__, __LINE__ + 1
70
+ class #{t} < Terminal;
71
+ def type; :#{t.upcase}; end
72
+ end
73
+ eoruby
74
+ end
75
+
76
+ class Symbol < Terminal # :nodoc:
77
+ attr_accessor :regexp
78
+ alias :symbol :regexp
79
+ attr_reader :name
80
+
81
+ DEFAULT_EXP = /[^\.\/\?]+/
82
+ def initialize(left)
83
+ super
84
+ @regexp = DEFAULT_EXP
85
+ @name = left.tr "*:".freeze, "".freeze
86
+ end
87
+
88
+ def default_regexp?
89
+ regexp == DEFAULT_EXP
90
+ end
91
+
92
+ def symbol?; true; end
93
+ end
94
+
95
+ class Unary < Node # :nodoc:
96
+ def children; [left] end
97
+ end
98
+
99
+ class Group < Unary # :nodoc:
100
+ def type; :GROUP; end
101
+ def group?; true; end
102
+ end
103
+
104
+ class Star < Unary # :nodoc:
105
+ def star?; true; end
106
+ def type; :STAR; end
107
+
108
+ def name
109
+ left.name.tr "*:", ""
110
+ end
111
+ end
112
+
113
+ class Binary < Node # :nodoc:
114
+ attr_accessor :right
115
+
116
+ def initialize(left, right)
117
+ super(left)
118
+ @right = right
119
+ end
120
+
121
+ def children; [left, right] end
122
+ end
123
+
124
+ class Cat < Binary # :nodoc:
125
+ def cat?; true; end
126
+ def type; :CAT; end
127
+ end
128
+
129
+ class Or < Node # :nodoc:
130
+ attr_reader :children
131
+
132
+ def initialize(children)
133
+ @children = children
134
+ end
135
+
136
+ def type; :OR; end
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,199 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.4.14
4
+ # from Racc grammar file "".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+
9
+ # :stopdoc:
10
+
11
+ require "action_dispatch/journey/parser_extras"
12
+ module ActionDispatch
13
+ module Journey
14
+ class Parser < Racc::Parser
15
+ ##### State transition tables begin ###
16
+
17
+ racc_action_table = [
18
+ 13, 15, 14, 7, 19, 16, 8, 19, 13, 15,
19
+ 14, 7, 17, 16, 8, 13, 15, 14, 7, 21,
20
+ 16, 8, 13, 15, 14, 7, 24, 16, 8 ]
21
+
22
+ racc_action_check = [
23
+ 2, 2, 2, 2, 22, 2, 2, 2, 19, 19,
24
+ 19, 19, 1, 19, 19, 7, 7, 7, 7, 17,
25
+ 7, 7, 0, 0, 0, 0, 20, 0, 0 ]
26
+
27
+ racc_action_pointer = [
28
+ 20, 12, -2, nil, nil, nil, nil, 13, nil, nil,
29
+ nil, nil, nil, nil, nil, nil, nil, 19, nil, 6,
30
+ 20, nil, -5, nil, nil ]
31
+
32
+ racc_action_default = [
33
+ -19, -19, -2, -3, -4, -5, -6, -19, -10, -11,
34
+ -12, -13, -14, -15, -16, -17, -18, -19, -1, -19,
35
+ -19, 25, -8, -9, -7 ]
36
+
37
+ racc_goto_table = [
38
+ 1, 22, 18, 23, nil, nil, nil, 20 ]
39
+
40
+ racc_goto_check = [
41
+ 1, 2, 1, 3, nil, nil, nil, 1 ]
42
+
43
+ racc_goto_pointer = [
44
+ nil, 0, -18, -16, nil, nil, nil, nil, nil, nil,
45
+ nil ]
46
+
47
+ racc_goto_default = [
48
+ nil, nil, 2, 3, 4, 5, 6, 9, 10, 11,
49
+ 12 ]
50
+
51
+ racc_reduce_table = [
52
+ 0, 0, :racc_error,
53
+ 2, 11, :_reduce_1,
54
+ 1, 11, :_reduce_2,
55
+ 1, 11, :_reduce_none,
56
+ 1, 12, :_reduce_none,
57
+ 1, 12, :_reduce_none,
58
+ 1, 12, :_reduce_none,
59
+ 3, 15, :_reduce_7,
60
+ 3, 13, :_reduce_8,
61
+ 3, 13, :_reduce_9,
62
+ 1, 16, :_reduce_10,
63
+ 1, 14, :_reduce_none,
64
+ 1, 14, :_reduce_none,
65
+ 1, 14, :_reduce_none,
66
+ 1, 14, :_reduce_none,
67
+ 1, 19, :_reduce_15,
68
+ 1, 17, :_reduce_16,
69
+ 1, 18, :_reduce_17,
70
+ 1, 20, :_reduce_18 ]
71
+
72
+ racc_reduce_n = 19
73
+
74
+ racc_shift_n = 25
75
+
76
+ racc_token_table = {
77
+ false => 0,
78
+ :error => 1,
79
+ :SLASH => 2,
80
+ :LITERAL => 3,
81
+ :SYMBOL => 4,
82
+ :LPAREN => 5,
83
+ :RPAREN => 6,
84
+ :DOT => 7,
85
+ :STAR => 8,
86
+ :OR => 9 }
87
+
88
+ racc_nt_base = 10
89
+
90
+ racc_use_result_var = false
91
+
92
+ Racc_arg = [
93
+ racc_action_table,
94
+ racc_action_check,
95
+ racc_action_default,
96
+ racc_action_pointer,
97
+ racc_goto_table,
98
+ racc_goto_check,
99
+ racc_goto_default,
100
+ racc_goto_pointer,
101
+ racc_nt_base,
102
+ racc_reduce_table,
103
+ racc_token_table,
104
+ racc_shift_n,
105
+ racc_reduce_n,
106
+ racc_use_result_var ]
107
+
108
+ Racc_token_to_s_table = [
109
+ "$end",
110
+ "error",
111
+ "SLASH",
112
+ "LITERAL",
113
+ "SYMBOL",
114
+ "LPAREN",
115
+ "RPAREN",
116
+ "DOT",
117
+ "STAR",
118
+ "OR",
119
+ "$start",
120
+ "expressions",
121
+ "expression",
122
+ "or",
123
+ "terminal",
124
+ "group",
125
+ "star",
126
+ "symbol",
127
+ "literal",
128
+ "slash",
129
+ "dot" ]
130
+
131
+ Racc_debug_parser = false
132
+
133
+ ##### State transition tables end #####
134
+
135
+ # reduce 0 omitted
136
+
137
+ def _reduce_1(val, _values)
138
+ Cat.new(val.first, val.last)
139
+ end
140
+
141
+ def _reduce_2(val, _values)
142
+ val.first
143
+ end
144
+
145
+ # reduce 3 omitted
146
+
147
+ # reduce 4 omitted
148
+
149
+ # reduce 5 omitted
150
+
151
+ # reduce 6 omitted
152
+
153
+ def _reduce_7(val, _values)
154
+ Group.new(val[1])
155
+ end
156
+
157
+ def _reduce_8(val, _values)
158
+ Or.new([val.first, val.last])
159
+ end
160
+
161
+ def _reduce_9(val, _values)
162
+ Or.new([val.first, val.last])
163
+ end
164
+
165
+ def _reduce_10(val, _values)
166
+ Star.new(Symbol.new(val.last))
167
+ end
168
+
169
+ # reduce 11 omitted
170
+
171
+ # reduce 12 omitted
172
+
173
+ # reduce 13 omitted
174
+
175
+ # reduce 14 omitted
176
+
177
+ def _reduce_15(val, _values)
178
+ Slash.new(val.first)
179
+ end
180
+
181
+ def _reduce_16(val, _values)
182
+ Symbol.new(val.first)
183
+ end
184
+
185
+ def _reduce_17(val, _values)
186
+ Literal.new(val.first)
187
+ end
188
+
189
+ def _reduce_18(val, _values)
190
+ Dot.new(val.first)
191
+ end
192
+
193
+ def _reduce_none(val, _values)
194
+ val[0]
195
+ end
196
+
197
+ end # class Parser
198
+ end # module Journey
199
+ end # module ActionDispatch