rack-mount 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,8 +71,11 @@ module Rack::Mount
71
71
  def optimize_recognize!
72
72
  Utils.debug "optimizing recognize"
73
73
 
74
+ uses_cache = false
75
+
74
76
  keys = @recognition_keys.map { |key|
75
77
  if key.respond_to?(:call_source)
78
+ uses_cache = true
76
79
  key.call_source(:cache, :obj)
77
80
  else
78
81
  "obj.#{key}"
@@ -85,7 +88,7 @@ module Rack::Mount
85
88
 
86
89
  instance_eval(<<-RUBY, __FILE__, __LINE__)
87
90
  def recognize(obj)
88
- cache = {}
91
+ #{"cache = {}" if uses_cache}
89
92
  container = @recognition_graph[#{keys}]
90
93
  optimize_container_iterator(container) unless container.respond_to?(:optimized_each)
91
94
 
@@ -82,7 +82,7 @@ module Rack::Mount
82
82
 
83
83
 
84
84
  def generation_keys
85
- @conditions.inject({}) { |keys, (method, condition)|
85
+ @conditions.inject({}) { |keys, (_, condition)|
86
86
  if condition.respond_to?(:required_defaults)
87
87
  keys.merge!(condition.required_defaults)
88
88
  else
@@ -269,6 +269,7 @@ module Rack::Mount
269
269
  def freeze
270
270
  unless frozen?
271
271
  rehash
272
+ stubbed_request_class
272
273
 
273
274
  @recognition_key_analyzer = nil
274
275
  @generation_route_keys = nil
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-mount
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 1
10
- version: 0.8.1
9
+ - 2
10
+ version: 0.8.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joshua Peek
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-18 00:00:00 -04:00
18
+ date: 2011-08-09 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -49,7 +49,7 @@ dependencies:
49
49
  type: :development
50
50
  version_requirements: *id002
51
51
  - !ruby/object:Gem::Dependency
52
- name: rexical
52
+ name: rake
53
53
  prerelease: false
54
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
@@ -62,6 +62,20 @@ dependencies:
62
62
  version: "0"
63
63
  type: :development
64
64
  version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rexical
67
+ prerelease: false
68
+ requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :development
78
+ version_requirements: *id004
65
79
  description: " A stackable dynamic tree based Rack router.\n"
66
80
  email: josh@joshpeek.com
67
81
  executables: []
@@ -71,7 +85,8 @@ extensions: []
71
85
  extra_rdoc_files: []
72
86
 
73
87
  files:
74
- - lib/rack/mount.rb
88
+ - README.rdoc
89
+ - LICENSE
75
90
  - lib/rack/mount/analysis/histogram.rb
76
91
  - lib/rack/mount/analysis/splitting.rb
77
92
  - lib/rack/mount/code_generation.rb
@@ -81,13 +96,10 @@ files:
81
96
  - lib/rack/mount/regexp_with_named_groups.rb
82
97
  - lib/rack/mount/route.rb
83
98
  - lib/rack/mount/route_set.rb
84
- - lib/rack/mount/strexp.rb
85
99
  - lib/rack/mount/strexp/parser.rb
86
- - lib/rack/mount/strexp/parser.y
87
100
  - lib/rack/mount/strexp/tokenizer.rb
88
- - lib/rack/mount/strexp/tokenizer.rex
101
+ - lib/rack/mount/strexp.rb
89
102
  - lib/rack/mount/utils.rb
90
- - lib/rack/mount/vendor/regin/regin.rb
91
103
  - lib/rack/mount/vendor/regin/regin/alternation.rb
92
104
  - lib/rack/mount/vendor/regin/regin/anchor.rb
93
105
  - lib/rack/mount/vendor/regin/regin/atom.rb
@@ -100,9 +112,9 @@ files:
100
112
  - lib/rack/mount/vendor/regin/regin/parser.rb
101
113
  - lib/rack/mount/vendor/regin/regin/tokenizer.rb
102
114
  - lib/rack/mount/vendor/regin/regin/version.rb
115
+ - lib/rack/mount/vendor/regin/regin.rb
103
116
  - lib/rack/mount/version.rb
104
- - LICENSE
105
- - README.rdoc
117
+ - lib/rack/mount.rb
106
118
  has_rdoc: true
107
119
  homepage: https://github.com/josh/rack-mount
108
120
  licenses: []
@@ -132,8 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
144
  version: "0"
133
145
  requirements: []
134
146
 
135
- rubyforge_project: rack-mount
136
- rubygems_version: 1.6.2
147
+ rubyforge_project:
148
+ rubygems_version: 1.5.2
137
149
  signing_key:
138
150
  specification_version: 3
139
151
  summary: Stackable dynamic tree based Rack router
@@ -1,34 +0,0 @@
1
- class Rack::Mount::StrexpParser
2
- rule
3
- target: expr { result = anchor ? "\\A#{val.join}\\Z" : "\\A#{val.join}" }
4
-
5
- expr: expr token { result = val.join }
6
- | token
7
-
8
- token: PARAM {
9
- name = val[0].to_sym
10
- requirement = requirements[name]
11
- result = REGEXP_NAMED_CAPTURE % [name, requirement]
12
- }
13
- | GLOB {
14
- name = val[0].to_sym
15
- requirement = requirements.key?(name) ? requirements[name] : '.+'
16
- result = REGEXP_NAMED_CAPTURE % [name, requirement]
17
- }
18
- | LPAREN expr RPAREN { result = "(?:#{val[1]})?" }
19
- | CHAR { result = Regexp.escape(val[0]) }
20
- end
21
-
22
- ---- header ----
23
- require 'rack/mount/utils'
24
- require 'rack/mount/strexp/tokenizer'
25
-
26
- ---- inner
27
-
28
- if Regin.regexp_supports_named_captures?
29
- REGEXP_NAMED_CAPTURE = '(?<%s>%s)'.freeze
30
- else
31
- REGEXP_NAMED_CAPTURE = '(?:<%s>%s)'.freeze
32
- end
33
-
34
- attr_accessor :anchor, :requirements
@@ -1,12 +0,0 @@
1
- class Rack::Mount::StrexpParser
2
- macro
3
- RESERVED \(|\)|:|\*
4
- ALPHA_U [a-zA-Z_]
5
- rule
6
- \\({RESERVED}) { [:CHAR, @ss[1]] }
7
- \:({ALPHA_U}\w*) { [:PARAM, @ss[1]] }
8
- \*({ALPHA_U}\w*) { [:GLOB, @ss[1]] }
9
- \( { [:LPAREN, text] }
10
- \) { [:RPAREN, text] }
11
- . { [:CHAR, text] }
12
- end