scorched 1.0.0.pre3 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: df1c61cb8ccb03b0bae14dda80b50f22e00530be
4
- data.tar.gz: 8782b7f14fcf6986d200dcb2964f30604c78be1b
2
+ SHA256:
3
+ metadata.gz: 867ade7529bcd2c1aef6c5ae9ec3898078f1aedc65e190d29fd03781f7fbaabb
4
+ data.tar.gz: 7275bd4b007d91441a06cd2a90e58fac6e49ea598fa146964fb074cc03af2f37
5
5
  SHA512:
6
- metadata.gz: b4ccefaee00f1c66b57736510051d81a6381b840b8daee5f4cb0b69f17591b13a43c29568f8cebba6b7ba179d85ca4e6bf578c3d049486b7d8f727c543b7d942
7
- data.tar.gz: '05990c3fa144a24f72557a6379aeab375a86827b7c196f5aeaa7b1dbb79f44f9d7d6c19023131443c058baab3e9cbd51593f4469246c739dda27f59eb236b0df'
6
+ metadata.gz: 0a0b3feb7e16e82571277ec4c97f8555b268013cbb8172e464a3d30fd4639e66c3ff817b9f165e5f4a2b4ef7b1470d28aaad4568dda1bad4cb56c390bf4a9cce
7
+ data.tar.gz: 9dbfa1171f29c6037c173ece4f584a828c073671896c2f6b40dcc49dd37269ac5ad096909ec4d77bfdb88b212c0d4278c39206d370a30fc37aa9a836c77a73dc
data/CHANGES.md CHANGED
@@ -1,8 +1,16 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
- _Note that Scorched is yet to reach a v1.0 release. This means breaking changes may still be made. If upgrading the version of Scorched for your project, review this changelog carefully._
5
-
4
+ ### v1.0.2
5
+ * Now requiring CGI instead of URI library as per v1.0.1 deprecation fixes.
6
+ ### v1.0.1
7
+ * Fixed Ruby 2.7 deprecations
8
+ ### v1.0.0
9
+ * Updated all dependencies. Ready for 1.0.0 release.
10
+ ### v1.0.0.pre5
11
+ * Log level now defaults to :warn for every environment except development, which defaults to :debug
12
+ ### v1.0.0.pre4
13
+ * Added `dispatched` condition which performs a similar role to the recently removed `handled` condition.
6
14
  ### v1.0.0.pre3
7
15
  * APP_ENV now preferred over RACK_ENV for setting the environment.
8
16
  ### v1.0.0.pre2
@@ -18,7 +18,7 @@ module Scorched
18
18
  config << {
19
19
  :auto_pass => false, # Automatically _pass_ request back to outer controller if no route matches.
20
20
  :cache_templates => true,
21
- :logger => Logger.new(STDOUT),
21
+ :logger => nil,
22
22
  :show_exceptions => false,
23
23
  :show_http_error_pages => false, # If true, shows the default Scorched HTTP error page.
24
24
  :static_dir => false, # The directory Scorched should serve static files from. Set to false if web server or anything else is serving static files.
@@ -35,6 +35,7 @@ module Scorched
35
35
  }
36
36
 
37
37
  if ENV['APP_ENV'] == 'development'
38
+ config[:logger] = Logger.new(STDOUT)
38
39
  config[:show_exceptions] = true
39
40
  config[:static_dir] = 'public'
40
41
  config[:cache_templates] = false
@@ -51,6 +52,9 @@ module Scorched
51
52
  content_type: proc { |content_types|
52
53
  [*content_types].include? env['CONTENT_TYPE']
53
54
  },
55
+ dispatched: proc { |bool|
56
+ !!@_dispatched == bool
57
+ },
54
58
  encoding: proc { |encodings|
55
59
  [*encodings].any? { |encoding| env['rack-accept.request'].encoding? encoding }
56
60
  },
@@ -152,7 +156,7 @@ module Scorched
152
156
  else
153
157
  controller = klass
154
158
  end
155
- self << {pattern: pattern, target: controller}.merge(mapping)
159
+ self.map **{pattern: pattern, target: controller}.merge(mapping)
156
160
  controller
157
161
  end
158
162
 
@@ -176,7 +180,7 @@ module Scorched
176
180
  response
177
181
  end
178
182
  [*pattern].compact.each do |pattern|
179
- self << {pattern: compile(pattern, true), priority: priority, conditions: conds, target: target}
183
+ self.map pattern: compile(pattern, true), priority: priority, conditions: conds, target: target
180
184
  end
181
185
  target
182
186
  end
@@ -462,7 +466,7 @@ module Scorched
462
466
  if value.empty?
463
467
  request.cookies[name]
464
468
  else
465
- value = Hash === value[0] ? value[0] : {value: value}
469
+ value = (Hash === value[0]) ? value[0] : {value: value[0]}
466
470
  if value[:value].nil?
467
471
  response.delete_cookie(name, value)
468
472
  else
@@ -1,4 +1,4 @@
1
- require 'uri'
1
+ require 'cgi'
2
2
 
3
3
  module Scorched
4
4
  class Request < Rack::Request
@@ -33,7 +33,7 @@ module Scorched
33
33
  # The unescaped URL, excluding the escaped forward-slash and percent. The resulting string will always be safe
34
34
  # to unescape again in situations where the forward-slash or percent are expected and valid characters.
35
35
  def unescaped_path
36
- path_info.split(/(%25|%2F)/i).each_slice(2).map { |v, m| URI.unescape(v) << (m || '') }.join('')
36
+ path_info.split(/(%25|%2F)/i).each_slice(2).map { |v, m| CGI.unescape(v) << (m || '') }.join('')
37
37
  end
38
38
 
39
39
  private
@@ -1,3 +1,3 @@
1
1
  module Scorched
2
- VERSION = '1.0.0.pre3'
2
+ VERSION = '1.0.2'
3
3
  end
@@ -10,7 +10,6 @@ Gem::Specification.new 'scorched', Scorched::VERSION do |s|
10
10
  s.license = 'MIT'
11
11
  s.files = Dir.glob(`git ls-files`.split("\n") - %w[.gitignore])
12
12
  s.test_files = Dir.glob('spec/**/*_spec.rb')
13
- s.has_rdoc = 'yard'
14
13
 
15
14
  s.required_ruby_version = '>= 2.0.0'
16
15
 
@@ -18,7 +17,7 @@ Gem::Specification.new 'scorched', Scorched::VERSION do |s|
18
17
  s.add_dependency 'rack-accept', '~> 0.4' # Used for Accept-Charset, Accept-Encoding and Accept-Language headers.
19
18
  s.add_dependency 'scorched-accept', '~> 0.1' # Used for Accept header.
20
19
  s.add_dependency 'tilt', '~> 2.0'
21
- s.add_development_dependency 'rack-test', '~> 0.6'
22
- s.add_development_dependency 'rspec', '~> 3.4'
23
- s.add_development_dependency 'rake', '~> 10.4'
20
+ s.add_development_dependency 'rack-test', '>= 1.0'
21
+ s.add_development_dependency 'rspec', '>= 3.4'
22
+ s.add_development_dependency 'rake', '>= 10.4'
24
23
  end
@@ -24,13 +24,13 @@ module Scorched
24
24
  end
25
25
 
26
26
  it "handles a root rack call correctly" do
27
- app << {pattern: '/$', target: generic_handler}
27
+ app.map pattern: '/$', target: generic_handler
28
28
  response = rt.get '/'
29
29
  response.status.should == 200
30
30
  end
31
31
 
32
32
  it "does not maintain state between requests" do
33
- app << {pattern: '/state', target: proc { |env| [200, {}, [@state = 1 + @state.to_i]] }}
33
+ app.map pattern: '/state', target: proc { |env| [200, {}, [@state = 1 + @state.to_i]] }
34
34
  response = rt.get '/state'
35
35
  response.body.should == '1'
36
36
  response = rt.get '/state'
@@ -39,54 +39,54 @@ module Scorched
39
39
 
40
40
  it "raises exception when invalid mapping hash given" do
41
41
  expect {
42
- app << {pattern: '/'}
42
+ app.map(pattern: '/')
43
43
  }.to raise_error(ArgumentError)
44
44
  expect {
45
- app << {target: generic_handler}
45
+ app.map(target: generic_handler)
46
46
  }.to raise_error(ArgumentError)
47
47
  end
48
48
  end
49
49
 
50
50
  describe "URL matching" do
51
51
  it 'always matches from the beginning of the URL' do
52
- app << {pattern: 'about', target: generic_handler}
52
+ app.map pattern: 'about', target: generic_handler
53
53
  response = rt.get '/about'
54
54
  response.status.should == 404
55
55
  end
56
56
 
57
57
  it "matches eagerly by default" do
58
58
  req = nil
59
- app << {pattern: '/*', target: proc do |env|
59
+ app.map pattern: '/*', target: proc { |env|
60
60
  req = request; [200, {}, ['ok']]
61
- end}
61
+ }
62
62
  response = rt.get '/about'
63
63
  req.captures.should == ['about']
64
64
  end
65
65
 
66
66
  it "can be forced to match end of URL" do
67
- app << {pattern: '/about$', target: generic_handler}
67
+ app.map pattern: '/about$', target: generic_handler
68
68
  response = rt.get '/about/us'
69
69
  response.status.should == 404
70
- app << {pattern: '/about', target: generic_handler}
70
+ app.map pattern: '/about', target: generic_handler
71
71
  response = rt.get '/about/us'
72
72
  response.status.should == 200
73
73
  end
74
74
 
75
75
  it "unescapes all characters except for the forward-slash and percent sign" do
76
- app << {pattern: '/a (quite) big fish', target: generic_handler}
76
+ app.map pattern: '/a (quite) big fish', target: generic_handler
77
77
  rt.get('/a%20%28quite%29%20big%20fish').status.should == 200
78
- app << {pattern: '/article/100%25 big%2Fsmall', target: generic_handler}
78
+ app.map pattern: '/article/100%25 big%2Fsmall', target: generic_handler
79
79
  rt.get('/article/100%25%20big%2Fsmall').status.should == 200
80
- app << {pattern: '/*$', target: generic_handler}
80
+ app.map pattern: '/*$', target: generic_handler
81
81
  rt.get('/page%2Fabout').status.should == 200
82
82
  rt.get('/page/about').status.should == 404
83
83
  end
84
84
 
85
85
  it "unmatched path doesn't always begin with a forward slash" do
86
86
  gh = generic_handler
87
- app << {pattern: '/ab', target: Class.new(Scorched::Controller) do
87
+ app.map pattern: '/ab', target: Class.new(Scorched::Controller) {
88
88
  map(pattern: 'out', target: gh)
89
- end}
89
+ }
90
90
  resp = rt.get('/about')
91
91
  resp.status.should == 200
92
92
  resp.body.should == "ok"
@@ -94,119 +94,119 @@ module Scorched
94
94
 
95
95
  it "unmatched path begins with forward slash if last match was up to or included a forward slash" do
96
96
  gh = generic_handler
97
- app << {pattern: '/about/', target: Class.new(Scorched::Controller) do
97
+ app.map pattern: '/about/', target: Class.new(Scorched::Controller) {
98
98
  map(pattern: '/us', target: gh)
99
- end}
100
- app << {pattern: '/contact', target: Class.new(Scorched::Controller) do
99
+ }
100
+ app.map pattern: '/contact', target: Class.new(Scorched::Controller) {
101
101
  map(pattern: '/us', target: gh)
102
- end}
102
+ }
103
103
  rt.get('/about/us').body.should == "ok"
104
104
  rt.get('/contact/us').body.should == "ok"
105
105
  end
106
106
 
107
107
  it "can match anonymous wildcards" do
108
108
  req = nil
109
- app << {pattern: '/anon/*/**', target: proc do |env|
109
+ app.map pattern: '/anon/*/**', target: proc { |env|
110
110
  req = request; [200, {}, ['ok']]
111
- end}
111
+ }
112
112
  response = rt.get '/anon/jeff/has/crabs'
113
113
  req.captures.should == ['jeff', 'has/crabs']
114
114
  end
115
115
 
116
116
  it "can match named wildcards (ignoring anonymous captures)" do
117
117
  req = nil
118
- app << {pattern: '/anon/:name/*/::infliction', target: proc do |env|
118
+ app.map pattern: '/anon/:name/*/::infliction', target: proc { |env|
119
119
  req = request; [200, {}, ['ok']]
120
- end}
120
+ }
121
121
  response = rt.get '/anon/jeff/smith/has/crabs'
122
122
  req.captures.should == {name: 'jeff', infliction: 'has/crabs'}
123
123
  end
124
124
 
125
125
  example "wildcards match one or more characters" do
126
- app << {pattern: '/*', target: proc { |env| [200, {}, ['ok']] }}
126
+ app.map pattern: '/*', target: proc { |env| [200, {}, ['ok']] }
127
127
  rt.get('/').status.should == 404
128
128
  rt.get('/dog').status.should == 200
129
129
  app.mappings.clear
130
- app << {pattern: '/**', target: proc { |env| [200, {}, ['ok']] }}
130
+ app.map pattern: '/**', target: proc { |env| [200, {}, ['ok']] }
131
131
  rt.get('/').status.should == 404
132
132
  rt.get('/dog/cat').status.should == 200
133
133
  app.mappings.clear
134
- app << {pattern: '/:page', target: proc { |env| [200, {}, ['ok']] }}
134
+ app.map pattern: '/:page', target: proc { |env| [200, {}, ['ok']] }
135
135
  rt.get('/').status.should == 404
136
136
  rt.get('/dog').status.should == 200
137
137
  app.mappings.clear
138
- app << {pattern: '/::page', target: proc { |env| [200, {}, ['ok']] }}
138
+ app.map pattern: '/::page', target: proc { |env| [200, {}, ['ok']] }
139
139
  rt.get('/').status.should == 404
140
140
  rt.get('/dog/cat').status.should == 200
141
141
  end
142
142
 
143
143
  example "wildcards can optionally match zero or more characters" do
144
- app << {pattern: '/*?', target: proc { |env| [200, {}, ['ok']] }}
144
+ app.map pattern: '/*?', target: proc { |env| [200, {}, ['ok']] }
145
145
  rt.get('/').status.should == 200
146
146
  rt.get('/dog').status.should == 200
147
147
  app.mappings.clear
148
- app << {pattern: '/**?', target: proc { |env| [200, {}, ['ok']] }}
148
+ app.map pattern: '/**?', target: proc { |env| [200, {}, ['ok']] }
149
149
  rt.get('/').status.should == 200
150
150
  rt.get('/dog/cat').status.should == 200
151
151
  app.mappings.clear
152
- app << {pattern: '/:page?', target: proc { |env| [200, {}, ['ok']] }}
152
+ app.map pattern: '/:page?', target: proc { |env| [200, {}, ['ok']] }
153
153
  rt.get('/').status.should == 200
154
154
  rt.get('/dog').status.should == 200
155
155
  app.mappings.clear
156
- app << {pattern: '/::page?', target: proc { |env| [200, {}, ['ok']] }}
156
+ app.map pattern: '/::page?', target: proc { |env| [200, {}, ['ok']] }
157
157
  rt.get('/').status.should == 200
158
158
  rt.get('/dog/cat').status.should == 200
159
159
  end
160
160
 
161
161
  it "can match regex and preserve anonymous captures" do
162
162
  req = nil
163
- app << {pattern: %r{/anon/([^/]+)/(.+)}, target: proc do |env|
163
+ app.map pattern: %r{/anon/([^/]+)/(.+)}, target: proc { |env|
164
164
  req = request; [200, {}, ['ok']]
165
- end}
165
+ }
166
166
  response = rt.get '/anon/jeff/has/crabs'
167
167
  req.captures.should == ['jeff', 'has/crabs']
168
168
  end
169
169
 
170
170
  it "can match regex and preserve named captures (ignoring anonymous captures)" do
171
171
  req = nil
172
- app << {pattern: %r{/anon/(?<name>[^/]+)/([^/]+)/(?<infliction>.+)}, target: proc do |env|
172
+ app.map pattern: %r{/anon/(?<name>[^/]+)/([^/]+)/(?<infliction>.+)}, target: proc { |env|
173
173
  req = request; [200, {}, ['ok']]
174
- end}
174
+ }
175
175
  response = rt.get '/anon/jeff/smith/has/crabs'
176
176
  req.captures.should == {name: 'jeff', infliction: 'has/crabs'}
177
177
  end
178
178
 
179
179
  it "can use symbol matchers" do
180
- app << {pattern: '/:numeric', target: proc { |env| [200, {}, ['ok']] }}
180
+ app.map pattern: '/:numeric', target: proc { |env| [200, {}, ['ok']] }
181
181
  rt.get('/45').status.should == 200
182
182
  rt.get('/dog45').status.should == 404
183
183
  req = nil
184
- app << {pattern: '/:alpha_numeric', target: proc { |env| req = request; [200, {}, ['ok']] }}
184
+ app.map pattern: '/:alpha_numeric', target: proc { |env| req = request; [200, {}, ['ok']] }
185
185
  rt.get('/dog45').status.should == 200
186
186
  req.captures[:alpha_numeric].should == 'dog45'
187
187
  rt.get('/_dog45').status.should == 404
188
188
  end
189
189
 
190
190
  it "can coerce symbol-matched values" do
191
- app << {pattern: '/:numeric', target: proc { |env| [200, {}, [request.captures[:numeric].class.name]] }}
191
+ app.map pattern: '/:numeric', target: proc { |env| [200, {}, [request.captures[:numeric].class.name]] }
192
192
  rt.get('/45').body.should == 'Integer'
193
193
  end
194
194
 
195
195
  it "matches routes based on priority, otherwise giving precedence to those defined first" do
196
196
  order = []
197
- app << {pattern: '/', priority: -1, target: proc { |env| order << 'four'; [200, {}, ['ok']] }}
198
- app << {pattern: '/', target: proc { |env| order << 'two'; throw :pass }}
199
- app << {pattern: '/', target: proc { |env| order << 'three'; throw :pass }}
200
- app << {pattern: '/', priority: 2, target: proc { |env| order << 'one'; throw :pass }}
197
+ app.map pattern: '/', priority: -1, target: proc { |env| order << 'four'; [200, {}, ['ok']] }
198
+ app.map pattern: '/', target: proc { |env| order << 'two'; throw :pass }
199
+ app.map pattern: '/', target: proc { |env| order << 'three'; throw :pass }
200
+ app.map pattern: '/', priority: 2, target: proc { |env| order << 'one'; throw :pass }
201
201
  rt.get('/').body.should == 'ok'
202
202
  order.should == %w{one two three four}
203
203
  end
204
204
 
205
205
  it "finds the best match for the media type whilst respecting priority and definition order" do
206
- app << {pattern: '/', target: proc { |env| [200, {}, ['anything']] }}
207
- app << {pattern: '/', conditions: {media_type: 'application/json'}, target: proc { |env| [200, {}, ['application/json']] }}
208
- app << {pattern: '/', conditions: {media_type: 'text/html'}, target: proc { |env| [200, {}, ['text/html']] }}
209
- app << {pattern: '/', priority: 1, target: proc { |env| [200, {}, ['anything_high_priority']] }}
206
+ app.map pattern: '/', target: proc { |env| [200, {}, ['anything']] }
207
+ app.map pattern: '/', conditions: {media_type: 'application/json'}, target: proc { |env| [200, {}, ['application/json']] }
208
+ app.map pattern: '/', conditions: {media_type: 'text/html'}, target: proc { |env| [200, {}, ['text/html']] }
209
+ app.map pattern: '/', priority: 1, target: proc { |env| [200, {}, ['anything_high_priority']] }
210
210
  rt.get('/', {}, 'HTTP_ACCEPT' => 'application/json, */*;q=0.5').body.should == 'anything_high_priority'
211
211
  app.mappings.pop
212
212
  rt.get('/', {}, 'HTTP_ACCEPT' => 'application/json;q=0.5, text/html').body.should == 'text/html'
@@ -224,14 +224,14 @@ module Scorched
224
224
  end
225
225
 
226
226
  it "executes route only if all conditions return true" do
227
- app << {pattern: '/$', conditions: {method: 'POST'}, target: generic_handler}
227
+ app.map pattern: '/$', conditions: {method: 'POST'}, target: generic_handler
228
228
  response = rt.get "/"
229
229
  response.status.should be_between(400, 499)
230
230
  response = rt.post "/"
231
231
  response.status.should == 200
232
232
 
233
233
  app.conditions[:has_name] = proc { |name| request.GET['name'] }
234
- app << {pattern: '/about', conditions: {method: ['GET', 'POST'], has_name: 'Ronald'}, target: generic_handler}
234
+ app.map pattern: '/about', conditions: {method: ['GET', 'POST'], has_name: 'Ronald'}, target: generic_handler
235
235
  response = rt.get "/about"
236
236
  response.status.should be_between(400, 499)
237
237
  response = rt.get "/about", name: 'Ronald'
@@ -239,21 +239,21 @@ module Scorched
239
239
  end
240
240
 
241
241
  it "raises exception when condition doesn't exist or is invalid" do
242
- app << {pattern: '/', conditions: {surprise_christmas_turkey: true}, target: generic_handler}
242
+ app.map pattern: '/', conditions: {surprise_christmas_turkey: true}, target: generic_handler
243
243
  expect {
244
244
  rt.get "/"
245
245
  }.to raise_error(Scorched::Error)
246
246
  end
247
247
 
248
248
  it "falls through to next route when conditions are not met" do
249
- app << {pattern: '/', conditions: {method: 'POST'}, target: proc { |env| [200, {}, ['post']] }}
250
- app << {pattern: '/', conditions: {method: 'GET'}, target: proc { |env| [200, {}, ['get']] }}
249
+ app.map pattern: '/', conditions: {method: 'POST'}, target: proc { |env| [200, {}, ['post']] }
250
+ app.map pattern: '/', conditions: {method: 'GET'}, target: proc { |env| [200, {}, ['get']] }
251
251
  rt.get("/").body.should == 'get'
252
252
  rt.post("/").body.should == 'post'
253
253
  end
254
254
 
255
255
  it "inverts the conditions if it's referenced with a trailing exclamation mark" do
256
- app << {pattern: '/', conditions: {method!: 'GET'}, target: proc { |env| [200, {}, ['ok']] }}
256
+ app.map pattern: '/', conditions: {method!: 'GET'}, target: proc { |env| [200, {}, ['ok']] }
257
257
  rt.get("/").status.should == 405
258
258
  rt.post("/").status.should == 200
259
259
  end
@@ -272,7 +272,7 @@ module Scorched
272
272
  wrapped_block = app.route(&block)
273
273
  app.mappings.length.should == 0
274
274
  block.should_not == wrapped_block
275
- app << {pattern: '/*', target: wrapped_block}
275
+ app.map pattern: '/*', target: wrapped_block
276
276
  rt.get('/turkey').body.should == 'turkey'
277
277
  end
278
278
 
@@ -319,9 +319,9 @@ module Scorched
319
319
 
320
320
  describe "sub-controllers" do
321
321
  it "should ignore the already matched portions of the path" do
322
- app << {pattern: '/article', target: Class.new(Scorched::Controller) do
322
+ app.map pattern: '/article', target: Class.new(Scorched::Controller) {
323
323
  get('/*') { |title| title }
324
- end}
324
+ }
325
325
  rt.get('/article/hello-world').body.should == 'hello-world'
326
326
  end
327
327
 
@@ -916,7 +916,7 @@ module Scorched
916
916
  get('/hello') { 'hello' }
917
917
  after { response.status = 600 }
918
918
  end
919
- app << {pattern: '/', target: sub}
919
+ app.map pattern: '/', target: sub
920
920
  app.get('/') { 'ok' }
921
921
  rt.get('/').body.should == 'ok'
922
922
  rt.get('/').status.should == 200
@@ -1096,7 +1096,7 @@ module Scorched
1096
1096
  render(:'main.erb').should == "3 for me"
1097
1097
  end
1098
1098
  app.get('/full_path') do
1099
- render(:'views/main.erb', {layout: :'views/layout.erb', dir: nil}).should == "(3 for me)"
1099
+ render(:'views/main.erb', **{layout: :'views/layout.erb', dir: nil}).should == "(3 for me)"
1100
1100
  end
1101
1101
  app.render_defaults[:dir] = 'views'
1102
1102
  rt.get('/')
@@ -44,4 +44,7 @@ RSpec.configure do |c|
44
44
  c.alias_example_to :they
45
45
  # c.backtrace_clean_patterns = []
46
46
  c.include GlobalConfig
47
+ c.expect_with :rspec do |expectations|
48
+ expectations.syntax = [:should, :expect]
49
+ end
47
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scorched
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre3
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Wardrop
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-04 00:00:00.000000000 Z
11
+ date: 2021-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -70,42 +70,42 @@ dependencies:
70
70
  name: rack-test
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0.6'
75
+ version: '1.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '0.6'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3.4'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.4'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rake
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '10.4'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '10.4'
111
111
  description: A light-weight Sinatra-inspired web framework for web sites and applications
@@ -186,12 +186,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
186
186
  version: 2.0.0
187
187
  required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  requirements:
189
- - - ">"
189
+ - - ">="
190
190
  - !ruby/object:Gem::Version
191
- version: 1.3.1
191
+ version: '0'
192
192
  requirements: []
193
- rubyforge_project:
194
- rubygems_version: 2.6.12
193
+ rubygems_version: 3.1.2
195
194
  signing_key:
196
195
  specification_version: 4
197
196
  summary: Light-weight, DRY as a desert, web framework for Ruby