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
|
|
data/lib/rack/mount/route.rb
CHANGED
data/lib/rack/mount/route_set.rb
CHANGED
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:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
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-
|
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:
|
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
|
-
-
|
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
|
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
|
-
-
|
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:
|
136
|
-
rubygems_version: 1.
|
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
|