rack-try_static 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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
+