mustermann19 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +18 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +10 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE +22 -0
  7. data/README.md +1081 -0
  8. data/Rakefile +6 -0
  9. data/bench/capturing.rb +57 -0
  10. data/bench/regexp.rb +21 -0
  11. data/bench/simple_vs_sinatra.rb +23 -0
  12. data/bench/template_vs_addressable.rb +26 -0
  13. data/internals.md +64 -0
  14. data/lib/mustermann.rb +61 -0
  15. data/lib/mustermann/ast/compiler.rb +168 -0
  16. data/lib/mustermann/ast/expander.rb +134 -0
  17. data/lib/mustermann/ast/node.rb +160 -0
  18. data/lib/mustermann/ast/parser.rb +137 -0
  19. data/lib/mustermann/ast/pattern.rb +84 -0
  20. data/lib/mustermann/ast/transformer.rb +129 -0
  21. data/lib/mustermann/ast/translator.rb +108 -0
  22. data/lib/mustermann/ast/tree_renderer.rb +29 -0
  23. data/lib/mustermann/ast/validation.rb +43 -0
  24. data/lib/mustermann/caster.rb +117 -0
  25. data/lib/mustermann/equality_map.rb +48 -0
  26. data/lib/mustermann/error.rb +6 -0
  27. data/lib/mustermann/expander.rb +206 -0
  28. data/lib/mustermann/extension.rb +52 -0
  29. data/lib/mustermann/identity.rb +19 -0
  30. data/lib/mustermann/mapper.rb +98 -0
  31. data/lib/mustermann/pattern.rb +182 -0
  32. data/lib/mustermann/rails.rb +17 -0
  33. data/lib/mustermann/regexp_based.rb +30 -0
  34. data/lib/mustermann/regular.rb +26 -0
  35. data/lib/mustermann/router.rb +9 -0
  36. data/lib/mustermann/router/rack.rb +50 -0
  37. data/lib/mustermann/router/simple.rb +144 -0
  38. data/lib/mustermann/shell.rb +29 -0
  39. data/lib/mustermann/simple.rb +38 -0
  40. data/lib/mustermann/simple_match.rb +30 -0
  41. data/lib/mustermann/sinatra.rb +22 -0
  42. data/lib/mustermann/template.rb +48 -0
  43. data/lib/mustermann/to_pattern.rb +45 -0
  44. data/lib/mustermann/version.rb +3 -0
  45. data/mustermann.gemspec +31 -0
  46. data/spec/expander_spec.rb +105 -0
  47. data/spec/extension_spec.rb +296 -0
  48. data/spec/identity_spec.rb +83 -0
  49. data/spec/mapper_spec.rb +83 -0
  50. data/spec/mustermann_spec.rb +65 -0
  51. data/spec/pattern_spec.rb +49 -0
  52. data/spec/rails_spec.rb +522 -0
  53. data/spec/regexp_based_spec.rb +8 -0
  54. data/spec/regular_spec.rb +36 -0
  55. data/spec/router/rack_spec.rb +39 -0
  56. data/spec/router/simple_spec.rb +32 -0
  57. data/spec/shell_spec.rb +109 -0
  58. data/spec/simple_match_spec.rb +10 -0
  59. data/spec/simple_spec.rb +237 -0
  60. data/spec/sinatra_spec.rb +574 -0
  61. data/spec/support.rb +5 -0
  62. data/spec/support/coverage.rb +16 -0
  63. data/spec/support/env.rb +15 -0
  64. data/spec/support/expand_matcher.rb +27 -0
  65. data/spec/support/match_matcher.rb +39 -0
  66. data/spec/support/pattern.rb +39 -0
  67. data/spec/template_spec.rb +815 -0
  68. data/spec/to_pattern_spec.rb +20 -0
  69. metadata +301 -0
@@ -0,0 +1,20 @@
1
+ require 'support'
2
+ require 'mustermann/to_pattern'
3
+
4
+ describe Mustermann::ToPattern do
5
+ context String do
6
+ example { "".to_pattern .should be_a(Mustermann::Sinatra) }
7
+ example { "".to_pattern(type: :rails) .should be_a(Mustermann::Rails) }
8
+ end
9
+
10
+ context Regexp do
11
+ example { //.to_pattern .should be_a(Mustermann::Regular) }
12
+ example { //.to_pattern(type: :rails) .should be_a(Mustermann::Regular) }
13
+ end
14
+
15
+ context Mustermann::Pattern do
16
+ subject(:pattern) { Mustermann.new('') }
17
+ example { pattern.to_pattern.should be == pattern }
18
+ example { pattern.to_pattern(type: :rails).should be_a(Mustermann::Sinatra) }
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,301 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mustermann19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Konstantin Haase
9
+ - namusyaka
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2014-09-23 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: enumerable-lazy
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec-its
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: addressable
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: sinatra
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: '1.4'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: '1.4'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rack-test
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: yard
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: simplecov
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: coveralls
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ description: library implementing patterns that behave like regular expressions for
176
+ use in Ruby 1.9
177
+ email: namusyaka@gmail.com
178
+ executables: []
179
+ extensions: []
180
+ extra_rdoc_files:
181
+ - README.md
182
+ - internals.md
183
+ files:
184
+ - .gitignore
185
+ - .rspec
186
+ - .travis.yml
187
+ - .yardopts
188
+ - Gemfile
189
+ - LICENSE
190
+ - README.md
191
+ - Rakefile
192
+ - bench/capturing.rb
193
+ - bench/regexp.rb
194
+ - bench/simple_vs_sinatra.rb
195
+ - bench/template_vs_addressable.rb
196
+ - internals.md
197
+ - lib/mustermann.rb
198
+ - lib/mustermann/ast/compiler.rb
199
+ - lib/mustermann/ast/expander.rb
200
+ - lib/mustermann/ast/node.rb
201
+ - lib/mustermann/ast/parser.rb
202
+ - lib/mustermann/ast/pattern.rb
203
+ - lib/mustermann/ast/transformer.rb
204
+ - lib/mustermann/ast/translator.rb
205
+ - lib/mustermann/ast/tree_renderer.rb
206
+ - lib/mustermann/ast/validation.rb
207
+ - lib/mustermann/caster.rb
208
+ - lib/mustermann/equality_map.rb
209
+ - lib/mustermann/error.rb
210
+ - lib/mustermann/expander.rb
211
+ - lib/mustermann/extension.rb
212
+ - lib/mustermann/identity.rb
213
+ - lib/mustermann/mapper.rb
214
+ - lib/mustermann/pattern.rb
215
+ - lib/mustermann/rails.rb
216
+ - lib/mustermann/regexp_based.rb
217
+ - lib/mustermann/regular.rb
218
+ - lib/mustermann/router.rb
219
+ - lib/mustermann/router/rack.rb
220
+ - lib/mustermann/router/simple.rb
221
+ - lib/mustermann/shell.rb
222
+ - lib/mustermann/simple.rb
223
+ - lib/mustermann/simple_match.rb
224
+ - lib/mustermann/sinatra.rb
225
+ - lib/mustermann/template.rb
226
+ - lib/mustermann/to_pattern.rb
227
+ - lib/mustermann/version.rb
228
+ - mustermann.gemspec
229
+ - spec/expander_spec.rb
230
+ - spec/extension_spec.rb
231
+ - spec/identity_spec.rb
232
+ - spec/mapper_spec.rb
233
+ - spec/mustermann_spec.rb
234
+ - spec/pattern_spec.rb
235
+ - spec/rails_spec.rb
236
+ - spec/regexp_based_spec.rb
237
+ - spec/regular_spec.rb
238
+ - spec/router/rack_spec.rb
239
+ - spec/router/simple_spec.rb
240
+ - spec/shell_spec.rb
241
+ - spec/simple_match_spec.rb
242
+ - spec/simple_spec.rb
243
+ - spec/sinatra_spec.rb
244
+ - spec/support.rb
245
+ - spec/support/coverage.rb
246
+ - spec/support/env.rb
247
+ - spec/support/expand_matcher.rb
248
+ - spec/support/match_matcher.rb
249
+ - spec/support/pattern.rb
250
+ - spec/template_spec.rb
251
+ - spec/to_pattern_spec.rb
252
+ homepage: https://github.com/namusyaka/mustermann
253
+ licenses:
254
+ - MIT
255
+ post_install_message:
256
+ rdoc_options: []
257
+ require_paths:
258
+ - lib
259
+ required_ruby_version: !ruby/object:Gem::Requirement
260
+ none: false
261
+ requirements:
262
+ - - ! '>='
263
+ - !ruby/object:Gem::Version
264
+ version: 1.9.2
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ! '>='
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ requirements: []
272
+ rubyforge_project:
273
+ rubygems_version: 1.8.23.2
274
+ signing_key:
275
+ specification_version: 3
276
+ summary: use patterns like regular expressions
277
+ test_files:
278
+ - spec/expander_spec.rb
279
+ - spec/extension_spec.rb
280
+ - spec/identity_spec.rb
281
+ - spec/mapper_spec.rb
282
+ - spec/mustermann_spec.rb
283
+ - spec/pattern_spec.rb
284
+ - spec/rails_spec.rb
285
+ - spec/regexp_based_spec.rb
286
+ - spec/regular_spec.rb
287
+ - spec/router/rack_spec.rb
288
+ - spec/router/simple_spec.rb
289
+ - spec/shell_spec.rb
290
+ - spec/simple_match_spec.rb
291
+ - spec/simple_spec.rb
292
+ - spec/sinatra_spec.rb
293
+ - spec/support.rb
294
+ - spec/support/coverage.rb
295
+ - spec/support/env.rb
296
+ - spec/support/expand_matcher.rb
297
+ - spec/support/match_matcher.rb
298
+ - spec/support/pattern.rb
299
+ - spec/template_spec.rb
300
+ - spec/to_pattern_spec.rb
301
+ has_rdoc: