zero 0.1.0

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.
Files changed (65) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +3 -0
  3. data/.travis.yml +8 -0
  4. data/Gemfile +14 -0
  5. data/Gemfile.lock +59 -0
  6. data/Guardfile +15 -0
  7. data/README.md +60 -0
  8. data/Thorfile +6 -0
  9. data/lib/zero.rb +7 -0
  10. data/lib/zero/controller.rb +46 -0
  11. data/lib/zero/rack_request.rb +44 -0
  12. data/lib/zero/renderer.rb +139 -0
  13. data/lib/zero/request.rb +100 -0
  14. data/lib/zero/request/accept.rb +28 -0
  15. data/lib/zero/request/accept_type.rb +58 -0
  16. data/lib/zero/request/client.rb +31 -0
  17. data/lib/zero/request/parameter.rb +101 -0
  18. data/lib/zero/request/server.rb +41 -0
  19. data/lib/zero/response.rb +80 -0
  20. data/lib/zero/router.rb +63 -0
  21. data/lib/zero/version.rb +3 -0
  22. data/spec/fixtures/templates/index.html.erb +1 -0
  23. data/spec/fixtures/templates/index.json.erb +1 -0
  24. data/spec/spec_helper.rb +65 -0
  25. data/spec/unit/controller/call_spec.rb +22 -0
  26. data/spec/unit/controller/renderer_spec.rb +11 -0
  27. data/spec/unit/renderer/read_template_path_spec.rb +53 -0
  28. data/spec/unit/renderer/render_spec.rb +50 -0
  29. data/spec/unit/renderer/template_path.rb +8 -0
  30. data/spec/unit/renderer/type_map_spec.rb +9 -0
  31. data/spec/unit/request/accept/encoding_spec.rb +9 -0
  32. data/spec/unit/request/accept/language_spec.rb +9 -0
  33. data/spec/unit/request/accept/types_spec.rb +9 -0
  34. data/spec/unit/request/accept_spec.rb +7 -0
  35. data/spec/unit/request/accepttype/each_spec.rb +10 -0
  36. data/spec/unit/request/accepttype/preferred_spec.rb +35 -0
  37. data/spec/unit/request/client/address_spec.rb +9 -0
  38. data/spec/unit/request/client/hostname_spec.rb +9 -0
  39. data/spec/unit/request/client/user_agent_spec.rb +9 -0
  40. data/spec/unit/request/client_spec.rb +8 -0
  41. data/spec/unit/request/content_type_spec.rb +16 -0
  42. data/spec/unit/request/create_spec.rb +21 -0
  43. data/spec/unit/request/delete_spec.rb +15 -0
  44. data/spec/unit/request/get_spec.rb +15 -0
  45. data/spec/unit/request/head_spec.rb +15 -0
  46. data/spec/unit/request/method_spec.rb +8 -0
  47. data/spec/unit/request/parameter/[]_spec.rb +56 -0
  48. data/spec/unit/request/parameter/custom_spec.rb +18 -0
  49. data/spec/unit/request/parameter/initialize_spec.rb +12 -0
  50. data/spec/unit/request/parameter/payload_spec.rb +33 -0
  51. data/spec/unit/request/parameter/query_spec.rb +25 -0
  52. data/spec/unit/request/params_spec.rb +8 -0
  53. data/spec/unit/request/patch_spec.rb +15 -0
  54. data/spec/unit/request/path_spec.rb +9 -0
  55. data/spec/unit/request/post_spec.rb +15 -0
  56. data/spec/unit/request/put_spec.rb +15 -0
  57. data/spec/unit/request/server/hostname_spec.rb +9 -0
  58. data/spec/unit/request/server/port_spec.rb +7 -0
  59. data/spec/unit/request/server/protocol_spec.rb +9 -0
  60. data/spec/unit/request/server/software_spec.rb +9 -0
  61. data/spec/unit/request/server_spec.rb +8 -0
  62. data/spec/unit/response/response_spec.rb +146 -0
  63. data/spec/unit/router/call_spec.rb +55 -0
  64. data/zero.gemspec +27 -0
  65. metadata +345 -0
metadata ADDED
@@ -0,0 +1,345 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zero
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Gibheer
9
+ - Stormwind
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-12-01 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ type: :runtime
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ none: false
23
+ name: tilt
24
+ requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ none: false
30
+ prerelease: false
31
+ - !ruby/object:Gem::Dependency
32
+ type: :development
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ none: false
39
+ name: thor
40
+ requirement: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ none: false
46
+ prerelease: false
47
+ - !ruby/object:Gem::Dependency
48
+ type: :development
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ none: false
55
+ name: rack
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ none: false
62
+ prerelease: false
63
+ - !ruby/object:Gem::Dependency
64
+ type: :development
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ none: false
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ none: false
78
+ prerelease: false
79
+ - !ruby/object:Gem::Dependency
80
+ type: :development
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ none: false
87
+ name: simplecov
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ none: false
94
+ prerelease: false
95
+ description: The focus of this project is to provide small helpers for building web
96
+ services without the need of learning a complete new web stack from the bottom to
97
+ the top.
98
+ email: gibheer@gmail.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files:
102
+ - README.md
103
+ files:
104
+ - !binary |-
105
+ LmdpdGlnbm9yZQ==
106
+ - !binary |-
107
+ LnJzcGVj
108
+ - !binary |-
109
+ LnRyYXZpcy55bWw=
110
+ - !binary |-
111
+ R2VtZmlsZQ==
112
+ - !binary |-
113
+ R2VtZmlsZS5sb2Nr
114
+ - !binary |-
115
+ R3VhcmRmaWxl
116
+ - !binary |-
117
+ UkVBRE1FLm1k
118
+ - !binary |-
119
+ VGhvcmZpbGU=
120
+ - !binary |-
121
+ bGliL3plcm8ucmI=
122
+ - !binary |-
123
+ bGliL3plcm8vY29udHJvbGxlci5yYg==
124
+ - !binary |-
125
+ bGliL3plcm8vcmFja19yZXF1ZXN0LnJi
126
+ - !binary |-
127
+ bGliL3plcm8vcmVuZGVyZXIucmI=
128
+ - !binary |-
129
+ bGliL3plcm8vcmVxdWVzdC5yYg==
130
+ - !binary |-
131
+ bGliL3plcm8vcmVxdWVzdC9hY2NlcHQucmI=
132
+ - !binary |-
133
+ bGliL3plcm8vcmVxdWVzdC9hY2NlcHRfdHlwZS5yYg==
134
+ - !binary |-
135
+ bGliL3plcm8vcmVxdWVzdC9jbGllbnQucmI=
136
+ - !binary |-
137
+ bGliL3plcm8vcmVxdWVzdC9wYXJhbWV0ZXIucmI=
138
+ - !binary |-
139
+ bGliL3plcm8vcmVxdWVzdC9zZXJ2ZXIucmI=
140
+ - !binary |-
141
+ bGliL3plcm8vcmVzcG9uc2UucmI=
142
+ - !binary |-
143
+ bGliL3plcm8vcm91dGVyLnJi
144
+ - !binary |-
145
+ bGliL3plcm8vdmVyc2lvbi5yYg==
146
+ - !binary |-
147
+ c3BlYy9maXh0dXJlcy90ZW1wbGF0ZXMvaW5kZXguaHRtbC5lcmI=
148
+ - !binary |-
149
+ c3BlYy9maXh0dXJlcy90ZW1wbGF0ZXMvaW5kZXguanNvbi5lcmI=
150
+ - !binary |-
151
+ c3BlYy9zcGVjX2hlbHBlci5yYg==
152
+ - !binary |-
153
+ c3BlYy91bml0L2NvbnRyb2xsZXIvY2FsbF9zcGVjLnJi
154
+ - !binary |-
155
+ c3BlYy91bml0L2NvbnRyb2xsZXIvcmVuZGVyZXJfc3BlYy5yYg==
156
+ - !binary |-
157
+ c3BlYy91bml0L3JlbmRlcmVyL3JlYWRfdGVtcGxhdGVfcGF0aF9zcGVjLnJi
158
+ - !binary |-
159
+ c3BlYy91bml0L3JlbmRlcmVyL3JlbmRlcl9zcGVjLnJi
160
+ - !binary |-
161
+ c3BlYy91bml0L3JlbmRlcmVyL3RlbXBsYXRlX3BhdGgucmI=
162
+ - !binary |-
163
+ c3BlYy91bml0L3JlbmRlcmVyL3R5cGVfbWFwX3NwZWMucmI=
164
+ - !binary |-
165
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L2VuY29kaW5nX3NwZWMucmI=
166
+ - !binary |-
167
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L2xhbmd1YWdlX3NwZWMucmI=
168
+ - !binary |-
169
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L3R5cGVzX3NwZWMucmI=
170
+ - !binary |-
171
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0X3NwZWMucmI=
172
+ - !binary |-
173
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0dHlwZS9lYWNoX3NwZWMucmI=
174
+ - !binary |-
175
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0dHlwZS9wcmVmZXJyZWRfc3BlYy5y
176
+ Yg==
177
+ - !binary |-
178
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L2FkZHJlc3Nfc3BlYy5yYg==
179
+ - !binary |-
180
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L2hvc3RuYW1lX3NwZWMucmI=
181
+ - !binary |-
182
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L3VzZXJfYWdlbnRfc3BlYy5yYg==
183
+ - !binary |-
184
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50X3NwZWMucmI=
185
+ - !binary |-
186
+ c3BlYy91bml0L3JlcXVlc3QvY29udGVudF90eXBlX3NwZWMucmI=
187
+ - !binary |-
188
+ c3BlYy91bml0L3JlcXVlc3QvY3JlYXRlX3NwZWMucmI=
189
+ - !binary |-
190
+ c3BlYy91bml0L3JlcXVlc3QvZGVsZXRlX3NwZWMucmI=
191
+ - !binary |-
192
+ c3BlYy91bml0L3JlcXVlc3QvZ2V0X3NwZWMucmI=
193
+ - !binary |-
194
+ c3BlYy91bml0L3JlcXVlc3QvaGVhZF9zcGVjLnJi
195
+ - !binary |-
196
+ c3BlYy91bml0L3JlcXVlc3QvbWV0aG9kX3NwZWMucmI=
197
+ - !binary |-
198
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL1tdX3NwZWMucmI=
199
+ - !binary |-
200
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL2N1c3RvbV9zcGVjLnJi
201
+ - !binary |-
202
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL2luaXRpYWxpemVfc3BlYy5y
203
+ Yg==
204
+ - !binary |-
205
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL3BheWxvYWRfc3BlYy5yYg==
206
+ - !binary |-
207
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL3F1ZXJ5X3NwZWMucmI=
208
+ - !binary |-
209
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1zX3NwZWMucmI=
210
+ - !binary |-
211
+ c3BlYy91bml0L3JlcXVlc3QvcGF0Y2hfc3BlYy5yYg==
212
+ - !binary |-
213
+ c3BlYy91bml0L3JlcXVlc3QvcGF0aF9zcGVjLnJi
214
+ - !binary |-
215
+ c3BlYy91bml0L3JlcXVlc3QvcG9zdF9zcGVjLnJi
216
+ - !binary |-
217
+ c3BlYy91bml0L3JlcXVlc3QvcHV0X3NwZWMucmI=
218
+ - !binary |-
219
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL2hvc3RuYW1lX3NwZWMucmI=
220
+ - !binary |-
221
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3BvcnRfc3BlYy5yYg==
222
+ - !binary |-
223
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3Byb3RvY29sX3NwZWMucmI=
224
+ - !binary |-
225
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3NvZnR3YXJlX3NwZWMucmI=
226
+ - !binary |-
227
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyX3NwZWMucmI=
228
+ - !binary |-
229
+ c3BlYy91bml0L3Jlc3BvbnNlL3Jlc3BvbnNlX3NwZWMucmI=
230
+ - !binary |-
231
+ c3BlYy91bml0L3JvdXRlci9jYWxsX3NwZWMucmI=
232
+ - !binary |-
233
+ emVyby5nZW1zcGVj
234
+ homepage: http://github.com/gibheer/zero
235
+ licenses: []
236
+ post_install_message:
237
+ rdoc_options: []
238
+ require_paths:
239
+ - lib
240
+ required_ruby_version: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ! '>='
243
+ - !ruby/object:Gem::Version
244
+ version: '0'
245
+ none: false
246
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ! '>='
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ none: false
252
+ requirements: []
253
+ rubyforge_project:
254
+ rubygems_version: 1.8.24
255
+ signing_key:
256
+ specification_version: 3
257
+ summary: a toolkit for building web services
258
+ test_files:
259
+ - !binary |-
260
+ c3BlYy9maXh0dXJlcy90ZW1wbGF0ZXMvaW5kZXguaHRtbC5lcmI=
261
+ - !binary |-
262
+ c3BlYy9maXh0dXJlcy90ZW1wbGF0ZXMvaW5kZXguanNvbi5lcmI=
263
+ - !binary |-
264
+ c3BlYy9zcGVjX2hlbHBlci5yYg==
265
+ - !binary |-
266
+ c3BlYy91bml0L2NvbnRyb2xsZXIvY2FsbF9zcGVjLnJi
267
+ - !binary |-
268
+ c3BlYy91bml0L2NvbnRyb2xsZXIvcmVuZGVyZXJfc3BlYy5yYg==
269
+ - !binary |-
270
+ c3BlYy91bml0L3JlbmRlcmVyL3JlYWRfdGVtcGxhdGVfcGF0aF9zcGVjLnJi
271
+ - !binary |-
272
+ c3BlYy91bml0L3JlbmRlcmVyL3JlbmRlcl9zcGVjLnJi
273
+ - !binary |-
274
+ c3BlYy91bml0L3JlbmRlcmVyL3RlbXBsYXRlX3BhdGgucmI=
275
+ - !binary |-
276
+ c3BlYy91bml0L3JlbmRlcmVyL3R5cGVfbWFwX3NwZWMucmI=
277
+ - !binary |-
278
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L2VuY29kaW5nX3NwZWMucmI=
279
+ - !binary |-
280
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L2xhbmd1YWdlX3NwZWMucmI=
281
+ - !binary |-
282
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0L3R5cGVzX3NwZWMucmI=
283
+ - !binary |-
284
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0X3NwZWMucmI=
285
+ - !binary |-
286
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0dHlwZS9lYWNoX3NwZWMucmI=
287
+ - !binary |-
288
+ c3BlYy91bml0L3JlcXVlc3QvYWNjZXB0dHlwZS9wcmVmZXJyZWRfc3BlYy5y
289
+ Yg==
290
+ - !binary |-
291
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L2FkZHJlc3Nfc3BlYy5yYg==
292
+ - !binary |-
293
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L2hvc3RuYW1lX3NwZWMucmI=
294
+ - !binary |-
295
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50L3VzZXJfYWdlbnRfc3BlYy5yYg==
296
+ - !binary |-
297
+ c3BlYy91bml0L3JlcXVlc3QvY2xpZW50X3NwZWMucmI=
298
+ - !binary |-
299
+ c3BlYy91bml0L3JlcXVlc3QvY29udGVudF90eXBlX3NwZWMucmI=
300
+ - !binary |-
301
+ c3BlYy91bml0L3JlcXVlc3QvY3JlYXRlX3NwZWMucmI=
302
+ - !binary |-
303
+ c3BlYy91bml0L3JlcXVlc3QvZGVsZXRlX3NwZWMucmI=
304
+ - !binary |-
305
+ c3BlYy91bml0L3JlcXVlc3QvZ2V0X3NwZWMucmI=
306
+ - !binary |-
307
+ c3BlYy91bml0L3JlcXVlc3QvaGVhZF9zcGVjLnJi
308
+ - !binary |-
309
+ c3BlYy91bml0L3JlcXVlc3QvbWV0aG9kX3NwZWMucmI=
310
+ - !binary |-
311
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL1tdX3NwZWMucmI=
312
+ - !binary |-
313
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL2N1c3RvbV9zcGVjLnJi
314
+ - !binary |-
315
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL2luaXRpYWxpemVfc3BlYy5y
316
+ Yg==
317
+ - !binary |-
318
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL3BheWxvYWRfc3BlYy5yYg==
319
+ - !binary |-
320
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1ldGVyL3F1ZXJ5X3NwZWMucmI=
321
+ - !binary |-
322
+ c3BlYy91bml0L3JlcXVlc3QvcGFyYW1zX3NwZWMucmI=
323
+ - !binary |-
324
+ c3BlYy91bml0L3JlcXVlc3QvcGF0Y2hfc3BlYy5yYg==
325
+ - !binary |-
326
+ c3BlYy91bml0L3JlcXVlc3QvcGF0aF9zcGVjLnJi
327
+ - !binary |-
328
+ c3BlYy91bml0L3JlcXVlc3QvcG9zdF9zcGVjLnJi
329
+ - !binary |-
330
+ c3BlYy91bml0L3JlcXVlc3QvcHV0X3NwZWMucmI=
331
+ - !binary |-
332
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL2hvc3RuYW1lX3NwZWMucmI=
333
+ - !binary |-
334
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3BvcnRfc3BlYy5yYg==
335
+ - !binary |-
336
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3Byb3RvY29sX3NwZWMucmI=
337
+ - !binary |-
338
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyL3NvZnR3YXJlX3NwZWMucmI=
339
+ - !binary |-
340
+ c3BlYy91bml0L3JlcXVlc3Qvc2VydmVyX3NwZWMucmI=
341
+ - !binary |-
342
+ c3BlYy91bml0L3Jlc3BvbnNlL3Jlc3BvbnNlX3NwZWMucmI=
343
+ - !binary |-
344
+ c3BlYy91bml0L3JvdXRlci9jYWxsX3NwZWMucmI=
345
+ has_rdoc: