rack-mount 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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