rack-mount 0.6.13 → 0.8.3

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.
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: 29
5
- prerelease: false
4
+ hash: 57
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 6
9
- - 13
10
- version: 0.6.13
8
+ - 8
9
+ - 3
10
+ version: 0.8.3
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: 2010-08-31 00:00:00 -05:00
18
+ date: 2011-08-30 00:00:00 -05: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,18 +62,31 @@ dependencies:
62
62
  version: "0"
63
63
  type: :development
64
64
  version_requirements: *id003
65
- description: Stackable dynamic tree based Rack router
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
79
+ description: " A stackable dynamic tree based Rack router.\n"
66
80
  email: josh@joshpeek.com
67
81
  executables: []
68
82
 
69
83
  extensions: []
70
84
 
71
- extra_rdoc_files:
72
- - LICENSE
73
- - README.rdoc
85
+ extra_rdoc_files: []
86
+
74
87
  files:
75
- - lib/rack/mount.rb
76
- - lib/rack/mount/analysis/frequency.rb
88
+ - README.rdoc
89
+ - LICENSE
77
90
  - lib/rack/mount/analysis/histogram.rb
78
91
  - lib/rack/mount/analysis/splitting.rb
79
92
  - lib/rack/mount/code_generation.rb
@@ -83,16 +96,10 @@ files:
83
96
  - lib/rack/mount/regexp_with_named_groups.rb
84
97
  - lib/rack/mount/route.rb
85
98
  - lib/rack/mount/route_set.rb
86
- - lib/rack/mount/strexp.rb
87
99
  - lib/rack/mount/strexp/parser.rb
88
- - lib/rack/mount/strexp/parser.y
89
100
  - lib/rack/mount/strexp/tokenizer.rb
90
- - lib/rack/mount/strexp/tokenizer.rex
101
+ - lib/rack/mount/strexp.rb
91
102
  - lib/rack/mount/utils.rb
92
- - lib/rack/mount/vendor/multimap/multimap.rb
93
- - lib/rack/mount/vendor/multimap/multiset.rb
94
- - lib/rack/mount/vendor/multimap/nested_multimap.rb
95
- - lib/rack/mount/vendor/regin/regin.rb
96
103
  - lib/rack/mount/vendor/regin/regin/alternation.rb
97
104
  - lib/rack/mount/vendor/regin/regin/anchor.rb
98
105
  - lib/rack/mount/vendor/regin/regin/atom.rb
@@ -105,9 +112,11 @@ files:
105
112
  - lib/rack/mount/vendor/regin/regin/parser.rb
106
113
  - lib/rack/mount/vendor/regin/regin/tokenizer.rb
107
114
  - lib/rack/mount/vendor/regin/regin/version.rb
115
+ - lib/rack/mount/vendor/regin/regin.rb
108
116
  - lib/rack/mount/version.rb
117
+ - lib/rack/mount.rb
109
118
  has_rdoc: true
110
- homepage: http://github.com/josh/rack-mount
119
+ homepage: https://github.com/josh/rack-mount
111
120
  licenses: []
112
121
 
113
122
  post_install_message:
@@ -136,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
145
  requirements: []
137
146
 
138
147
  rubyforge_project:
139
- rubygems_version: 1.3.7
148
+ rubygems_version: 1.5.2
140
149
  signing_key:
141
150
  specification_version: 3
142
151
  summary: Stackable dynamic tree based Rack router
@@ -1,60 +0,0 @@
1
- require 'rack/mount/utils'
2
-
3
- module Rack::Mount
4
- module Analysis
5
- class Frequency #:nodoc:
6
- def initialize(*keys)
7
- clear
8
- keys.each { |key| self << key }
9
- end
10
-
11
- def clear
12
- @raw_keys = []
13
- @key_frequency = Analysis::Histogram.new
14
- self
15
- end
16
-
17
- def <<(key)
18
- raise ArgumentError unless key.is_a?(Hash)
19
- @raw_keys << key
20
- nil
21
- end
22
-
23
- def possible_keys
24
- @possible_keys ||= begin
25
- @raw_keys.map do |key|
26
- key.inject({}) { |requirements, (method, requirement)|
27
- process_key(requirements, method, requirement)
28
- requirements
29
- }
30
- end
31
- end
32
- end
33
-
34
- def process_key(requirements, method, requirement)
35
- if requirement.is_a?(Regexp)
36
- expression = Utils.parse_regexp(requirement)
37
-
38
- if expression.is_a?(Regin::Expression) && expression.anchored_to_line?
39
- expression = Regin::Expression.new(expression.reject { |e| e.is_a?(Regin::Anchor) })
40
- return requirements[method] = expression.to_s if expression.literal?
41
- end
42
- end
43
-
44
- requirements[method] = requirement
45
- end
46
-
47
- def report
48
- @report ||= begin
49
- possible_keys.each { |keys| keys.each_pair { |key, _| @key_frequency << key } }
50
- return [] if @key_frequency.count <= 1
51
- @key_frequency.keys_in_upper_quartile
52
- end
53
- end
54
-
55
- def expire!
56
- @possible_keys = @report = nil
57
- end
58
- end
59
- end
60
- end
@@ -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[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