sinatra-support 1.0.1 → 1.0.2

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,13 @@
1
+ v1.0.2 - Mar 29, 2011
2
+ ---------------------
3
+
4
+ ### Added:
5
+ * Implement CssSupport's `css_aggressive_mtime` directive
6
+
7
+ ### Minor changes:
8
+ * Update I18n helpers documentation
9
+ * Update documentation for JsSupport and CssSupport
10
+
1
11
  v1.0.1 - Mar 27, 2011
2
12
  ---------------------
3
13
 
@@ -17,7 +17,7 @@
17
17
  # This plugin supports Sass, Less and SCSS and guesses by the
18
18
  # file name.
19
19
  #
20
- # == Caveats
20
+ # == Sass caveats
21
21
  #
22
22
  # Note that you will need to set your Sass/SCSS +load_path+ settings.
23
23
  #
@@ -28,9 +28,31 @@
28
28
  # m.set :scss, self.scss.merge(:style => :compressed) if m.production?
29
29
  # end
30
30
  #
31
+ # == Less caveats
32
+ #
33
+ # If you're using Less, it's best you separate your CSS into many files,
34
+ # as Less is pretty slow. By default however, CssSupport will ask browsers
35
+ # to recache all CSS files even when one is changed, which is to your
36
+ # disadvantage considering Less's speed.
37
+ #
38
+ # You can disable this behavior so that browsers will only fetch CSS files
39
+ # that changed.
40
+ #
41
+ # register Sinatra::CssSupport
42
+ # Main.set :css_aggressive_mtime, false
43
+ #
44
+ # == Settings
45
+ #
46
+ # [+css_max_age+] The maximum time (in seconds) a browser
47
+ # should hold onto a cached copy.
48
+ # (default: 30 days)
49
+ # [+css_aggressive_mtime+] If true, ask browsers to recache all CSS files
50
+ # when one is updated. Default: true
51
+ #
31
52
  module Sinatra::CssSupport
32
53
  def self.registered(app)
33
54
  app.set :css_max_age, app.development? ? 0 : 86400*30
55
+ app.set :css_aggressive_mtime, true
34
56
  end
35
57
 
36
58
  def serve_css(url_prefix, options={})
@@ -41,7 +63,13 @@ module Sinatra::CssSupport
41
63
  fname = Dir[File.join(prefix, "#{name}.{css,scss,less}")].first or pass
42
64
 
43
65
  content_type :css, :charset => 'utf-8'
44
- last_modified File.mtime(fname)
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
+
45
73
  cache_control :public, :must_revalidate, :max_age => settings.css_max_age
46
74
 
47
75
  if fname =~ /\.scss$/
@@ -56,3 +84,4 @@ module Sinatra::CssSupport
56
84
  end
57
85
  end
58
86
  end
87
+
@@ -8,19 +8,20 @@
8
8
  # set :default_locale, 'fr' # Optional; defaults to 'en'
9
9
  # end
10
10
  #
11
- # Be sure that you have the +I18n+ gem.
11
+ # Be sure that you have the +I18n+ gem. Use +gem install i18n+, or if you're
12
+ # using Bundler:
12
13
  #
13
14
  # # Gemfile
14
15
  # gem "i18n"
15
16
  #
16
- # (or +gem install i18n+)
17
- #
18
17
  # Then put your locale YAML files into +./config/locales+ (whatever path you
19
18
  # use for {#load_locales}:
20
19
  #
21
20
  # # config/locales/en.yml
22
21
  # en:
23
22
  # an_article: "An article"
23
+ # create: "Create"
24
+ # delete: "Delete"
24
25
  #
25
26
  # == Helpers
26
27
  #
@@ -67,21 +68,20 @@
67
68
  # == Locale files
68
69
  #
69
70
  # This gem does not ship with default options for time, date and such.
70
- # You may want to get those from:
71
- #
72
- # https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale
71
+ # You may want to get those from the Rails-I18n project:
72
+ # https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale
73
73
  #
74
74
  # == Using a different backend
75
75
  #
76
76
  # Instead of calling {#load_locales}, just load the right I18n backend
77
77
  # using the I18n gem.
78
78
  #
79
- # You can also just use I18n.store_translations if you still want to use
79
+ # You can also just use +I18n.store_translations+ if you still want to use
80
80
  # the default simple I18n backend.
81
81
  #
82
82
  # == Settings
83
83
  #
84
- # [+default_locale+] The locale to use by default. Defaults to +"en"+.
84
+ # [+default_locale+] The locale to use by default. Defaults to +en+.
85
85
  #
86
86
  module Sinatra::I18nSupport
87
87
  def self.registered(app)
@@ -4,16 +4,18 @@
4
4
  #
5
5
  # require 'sinatra/support/jssupport'
6
6
  #
7
- # Use {#serve_js} in the Sinatra DSL to serve up files.
7
+ # class Main < Sinatra::Base
8
+ # register Sinatra::JsSupport
9
+ # serve_js '/js', from: './app/js'
10
+ # end
8
11
  #
9
- # register Sinatra::JsSupport
10
- # serve_js '/js', from: './app/js'
11
- #
12
- # Assuming you have a +app/js/jquery.js+ file, you will
13
- # then be able to access it from the given URL prefix.
12
+ # You'll be able to access files via +/js+:
14
13
  #
14
+ # # This will serve /app/js/jquery.js. (or .coffee)
15
15
  # $ curl "http://localhost:4567/js/jquery.js"
16
16
  #
17
+ # == CoffeeScript support
18
+ #
17
19
  # This plugin supports CoffeeScript. To use it, simply
18
20
  # add a CoffeeScript file in the JS file path.
19
21
  #
@@ -22,7 +24,12 @@
22
24
  #
23
25
  # $ curl "http://localhost:4567/js/application.js"
24
26
  #
25
- # To use CoffeeScript, you will need the +coffee_script+ gem.
27
+ # To use CoffeeScript, install the +coffee_script+ gem.
28
+ # If you're using Bundler, that is:
29
+ #
30
+ # # Gemfile
31
+ # gem "coffee-script", require: "coffee_script"
32
+ #
26
33
  #
27
34
  module Sinatra::JsSupport
28
35
  def self.registered(app)
@@ -1,6 +1,6 @@
1
1
  module Sinatra
2
2
  module Support
3
- VERSION = "1.0.1"
3
+ VERSION = "1.0.2"
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.1
5
+ version: 1.0.2
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-27 00:00:00 +08:00
14
+ date: 2011-03-29 00:00:00 +08:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency