madness 0.3.1 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb0d081ae46d00e79cca54642f2567e08ee59624
4
- data.tar.gz: de90b22a27526fbd5eb9b926972684b8371b738f
3
+ metadata.gz: 9d689d84e942b4202cd7f75774377232bbff486a
4
+ data.tar.gz: e7ca04820360f55634fdf4bc7e43bc51e9711709
5
5
  SHA512:
6
- metadata.gz: ca2e606e2f0f83c36b6878efc7b9d0c45f1bccc32c75b3aaefc234bce62c213a5a53a269aa142aeb2e6e209204929f4fe83dd2b807c6265a10fd76eb6edfffdb
7
- data.tar.gz: 573cbceccc5c7a77921a69a368308caba2a5823fa05fa422ee0dbc8bfb35fbbe30b339ad5a3633150007a2b163a1d640371f6f60de9a359f4de2be9d735ee055
6
+ metadata.gz: 194295cd30781107963f1c9af70fe64b748ec5184e2ccfd97f1dd6c671878686fa7fde367fae16ecd8c642f96326209c6f24fd88577669386ee36db0fb2110fc
7
+ data.tar.gz: 79c1de311e52ef1ddb55b7afd06837ee2a02561c38a271c5a3d1241460852e9a72f799a0c90e09939744c435cecbd0546265c2361cb010c62c02263a3658daeb
@@ -11,10 +11,10 @@ require 'sinatra/reloader'
11
11
  require 'sass/plugin/rack'
12
12
  require 'docopt'
13
13
  require 'colsole'
14
- require 'rack/contrib/try_static'
15
14
  require 'ferret'
16
15
 
17
16
  require 'madness/version'
17
+ require 'madness/try_static'
18
18
  require 'madness/settings'
19
19
  require 'madness/server_helper'
20
20
  require 'madness/server_base'
@@ -24,7 +24,7 @@ module Madness
24
24
  # The CommandLine class and the test suite should both call
25
25
  # `Server.prepare` before calling Server.run!
26
26
  def self.prepare
27
- use Rack::TryStatic, :root => "#{config.path}/public/", :urls => %w[/]
27
+ use TryStatic, root: "#{config.path}/public/", :urls => %w[/]
28
28
  set :bind, config.bind
29
29
  set :port, config.port
30
30
  end
@@ -0,0 +1,39 @@
1
+ module Madness
2
+ # This class allows multiple public folders so that we can load our
3
+ # CSS from the gem-domain public folder, and other things from the
4
+ # user-domain public folder
5
+ #
6
+ # TryStatic is borrowed from rack-contrib, since the gem is out of date
7
+ # and does not work with Sinatra 2
8
+ #
9
+ # It is used in `server_base.rb` like so:
10
+ #
11
+ # use TryStatic, :root => "#{config.path}/public/", :urls => %w[/]
12
+ #
13
+ # Ref:
14
+ # - https://stackoverflow.com/questions/18966318/sinatra-multiple-public-directories
15
+ # - https://github.com/rack/rack-contrib/blob/master/lib/rack/contrib/try_static.rb
16
+ # - https://github.com/rack/rack-contrib/pull/129
17
+ #
18
+ class TryStatic
19
+ def initialize(app, options)
20
+ @app = app
21
+ @try = ['', *options[:try]]
22
+ # :nocov:
23
+ @static = ::Rack::Static.new(
24
+ lambda { |_| [404, {}, []] },
25
+ options)
26
+ # :nocov:
27
+ end
28
+
29
+ def call(env)
30
+ orig_path = env['PATH_INFO']
31
+ found = nil
32
+ @try.each do |path|
33
+ resp = @static.call(env.merge!({'PATH_INFO' => orig_path + path}))
34
+ break if !(403..405).include?(resp[0]) && found = resp
35
+ end
36
+ found or @app.call(env.merge!('PATH_INFO' => orig_path))
37
+ end
38
+ end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module Madness
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: madness
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-24 00:00:00.000000000 Z
11
+ date: 2017-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass
@@ -30,42 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sinatra-contrib
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.4'
47
+ version: '2.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.4'
55
- - !ruby/object:Gem::Dependency
56
- name: rack-contrib
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.4'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.4'
54
+ version: '2.0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: slim
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +164,20 @@ dependencies:
178
164
  - - "~>"
179
165
  - !ruby/object:Gem::Version
180
166
  version: '0.9'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rack-test
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '0.7'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '0.7'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: runfile-tasks
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '9.0'
201
+ version: '9.1'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '9.0'
208
+ version: '9.1'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rspec
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: '0.14'
243
+ version: '0.15'
244
244
  type: :development
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: '0.14'
250
+ version: '0.15'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: yard
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -321,6 +321,7 @@ files:
321
321
  - lib/madness/server_base.rb
322
322
  - lib/madness/server_helper.rb
323
323
  - lib/madness/settings.rb
324
+ - lib/madness/try_static.rb
324
325
  - lib/madness/version.rb
325
326
  homepage: https://github.com/DannyBen/madness
326
327
  licenses:
@@ -334,7 +335,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
334
335
  requirements:
335
336
  - - ">="
336
337
  - !ruby/object:Gem::Version
337
- version: 2.1.0
338
+ version: 2.2.2
338
339
  required_rubygems_version: !ruby/object:Gem::Requirement
339
340
  requirements:
340
341
  - - ">="
@@ -342,7 +343,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
342
343
  version: '0'
343
344
  requirements: []
344
345
  rubyforge_project:
345
- rubygems_version: 2.5.1
346
+ rubygems_version: 2.6.13
346
347
  signing_key:
347
348
  specification_version: 4
348
349
  summary: Instant Markdown Server