sinatra-support 1.0.2 → 1.0.3

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.
data/HISTORY.md CHANGED
@@ -1,3 +1,9 @@
1
+ v1.0.3 - Mar 30, 2011
2
+ ---------------------
3
+
4
+ ### Added:
5
+ * CssSupport: `css_mtime_for` helper
6
+
1
7
  v1.0.2 - Mar 29, 2011
2
8
  ---------------------
3
9
 
@@ -41,6 +41,16 @@
41
41
  # register Sinatra::CssSupport
42
42
  # Main.set :css_aggressive_mtime, false
43
43
  #
44
+ # == Helpers
45
+ #
46
+ # {Helpers#css_mtime_for css_mtime_for} - Returns the last modified time for
47
+ # the given stylesheet.
48
+ #
49
+ # <link rel="stylesheet" type="text/css" href="/css/style.css?<%= css_mtime_for(root('app/css/style.css')) %>">
50
+ #
51
+ # This takes into account the `css_aggressive_mtime` setting.
52
+ # Perfect for nocache hacks, like above.
53
+ #
44
54
  # == Settings
45
55
  #
46
56
  # [+css_max_age+] The maximum time (in seconds) a browser
@@ -48,11 +58,13 @@
48
58
  # (default: 30 days)
49
59
  # [+css_aggressive_mtime+] If true, ask browsers to recache all CSS files
50
60
  # when one is updated. Default: true
51
- #
61
+ #
52
62
  module Sinatra::CssSupport
53
63
  def self.registered(app)
54
64
  app.set :css_max_age, app.development? ? 0 : 86400*30
55
65
  app.set :css_aggressive_mtime, true
66
+
67
+ app.helpers Helpers
56
68
  end
57
69
 
58
70
  def serve_css(url_prefix, options={})
@@ -63,13 +75,7 @@ module Sinatra::CssSupport
63
75
  fname = Dir[File.join(prefix, "#{name}.{css,scss,less}")].first or pass
64
76
 
65
77
  content_type :css, :charset => 'utf-8'
66
-
67
- if settings.css_aggressive_mtime
68
- last_modified Dir[prefix, "**/*"].map { |f| File.mtime(f).to_i }.max
69
- else
70
- last_modified File.mtime(fname)
71
- end
72
-
78
+ last_modified css_mtime_for(prefix, fname)
73
79
  cache_control :public, :must_revalidate, :max_age => settings.css_max_age
74
80
 
75
81
  if fname =~ /\.scss$/
@@ -83,5 +89,15 @@ module Sinatra::CssSupport
83
89
  end
84
90
  end
85
91
  end
86
- end
87
92
 
93
+ module Helpers
94
+ def css_mtime_for(prefix=nil, fname)
95
+ if settings.css_aggressive_mtime
96
+ prefix ||= File.basename(fname)
97
+ Dir[prefix, "**/*"].map { |f| File.mtime(f).to_i }.max
98
+ else
99
+ File.mtime(fname).to_i
100
+ end
101
+ end
102
+ end
103
+ end
@@ -1,6 +1,6 @@
1
1
  module Sinatra
2
2
  module Support
3
- VERSION = "1.0.2"
3
+ VERSION = "1.0.3"
4
4
 
5
5
  def self.version
6
6
  VERSION
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sinatra-support
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.0.2
5
+ version: 1.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Cyril David
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2011-03-29 00:00:00 +08:00
14
+ date: 2011-03-30 00:00:00 +08:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency