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
|
|
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
|