rack-try_static 0.0.4

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 (3) hide show
  1. data/README.md +9 -0
  2. data/lib/rack/contrib/try_static.rb +24 -0
  3. metadata +98 -0
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ Rack::TryStatic
2
+ ===============
3
+
4
+ [Blogging with Jekyll and Heroku for free](http://gmarik.info/blog/2010/05/10/blogging-with-jekyll-and-heroku-for-free).
5
+
6
+ TODO
7
+ ===============
8
+ * docs
9
+ * specs
@@ -0,0 +1,24 @@
1
+ require 'rack/static'
2
+
3
+ module ::Rack
4
+ class TryStatic < Static
5
+
6
+ def initialize(app, options)
7
+ super
8
+ @try = ([''] + Array(options.delete(:try)) + [''])
9
+ end
10
+
11
+ def call(env)
12
+ @next = 0
13
+ while @next < @try.size && 404 == (resp = super(try_next(env)))[0]
14
+ @next += 1
15
+ end
16
+ 404 == resp[0] ? @app.call : resp
17
+ end
18
+
19
+ private
20
+ def try_next(env)
21
+ env.merge('PATH_INFO' => env['PATH_INFO'] + @try[@next])
22
+ end
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,98 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-try_static
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
11
+ platform: ruby
12
+ authors:
13
+ - gmarik
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain:
17
+ date: 2010-09-18 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rack
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ hash: 19
29
+ segments:
30
+ - 1
31
+ - 1
32
+ - 0
33
+ version: 1.1.0
34
+ type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: bundler
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ type: :development
49
+ version_requirements: *id002
50
+ description: rack middleware to serve static files with specified patterns. Check out http://gmarik.info/blog/2010/05/10/blogging-with-jekyll-and-heroku-for-free for more...
51
+ email: gmarik@gmail.com
52
+ executables: []
53
+
54
+ extensions: []
55
+
56
+ extra_rdoc_files: []
57
+
58
+ files:
59
+ - README.md
60
+ - lib/rack/contrib/try_static.rb
61
+ has_rdoc: true
62
+ homepage: http://github.com/gmarik/rack-try_static
63
+ licenses: []
64
+
65
+ post_install_message:
66
+ rdoc_options: []
67
+
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 59
76
+ segments:
77
+ - 1
78
+ - 8
79
+ - 6
80
+ version: 1.8.6
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ hash: 3
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ requirements: []
91
+
92
+ rubyforge_project:
93
+ rubygems_version: 1.3.7
94
+ signing_key:
95
+ specification_version: 3
96
+ summary: rack middleware to serve static files with specified patterns
97
+ test_files: []
98
+