sinatra-support 1.2.0 → 1.2.1

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,15 @@
1
+ Latest version - Aug 19, 2011
2
+ -----------------------------
3
+
4
+ ### Fixed:
5
+ * Fixed `Sinatra::CompressedJS` to link to the production version on
6
+ production.
7
+
8
+ ### Misc changes:
9
+ * Make tests more forgiving to account for different Compass/CS/etc versions.
10
+ * Improve CompressedJS docs.
11
+ * Updated gem dependencies to have a required version.
12
+
1
13
  v1.2.0 - May 27, 2011
2
14
  ---------------------
3
15
 
@@ -65,12 +65,6 @@ module Sinatra::CompassSupport
65
65
  end
66
66
 
67
67
  private
68
- def self.lol(app)
69
- Compass.configuration do |c|
70
- c.project_path = app.root
71
- c.sass_dir = app.views
72
- end
73
- end
74
68
 
75
69
  def self.add_compass_engine_options(app)
76
70
  options = Compass.sass_engine_options
@@ -3,7 +3,7 @@
3
3
  # == Usage example
4
4
  #
5
5
  # Assuming you have JavaScript files stored in +./app/js+, and you want to serve
6
- # the compressed JS in +http://yoursite.com/js/compressed.js+:
6
+ # the compressed JS in +yoursite.com/js/compressed.js+:
7
7
  #
8
8
  # # CompressedJS is recommended to be used alongside JsSupport to serve
9
9
  # # raw JS files in development mode. This will make your /app/js/*.js
@@ -11,14 +11,12 @@
11
11
  #
12
12
  # register Sinatra::JsSupport
13
13
  # serve_js '/js', from: './app/js'
14
- #
15
- # Then load the {CompressedJS} plugin:
16
- #
17
- # register Sinatra::CompressedJS
14
+ #
15
+ # register Sinatra::CompressedJS # Load the CompressedJS plugin
18
16
  #
19
17
  # serve_compressed_js :app_js, # The name (used later in your views)
20
- # :prefix => '/js', # Where the individual files can be accessed at
21
- # :root => './app/js', # The root of your files
18
+ # :prefix => '/js', # Where the individual JS files can be accessed at
19
+ # :root => './app/js', # The root of your JS files
22
20
  # :path => '/js/compressed.js', # The URL where the compressed JS will served at
23
21
  # :files => # List of files
24
22
  # Dir['./app/js/vendor/*.js'] +
@@ -27,11 +25,12 @@
27
25
  # Note that +:prefix+ and +:root+ are the same things passed onto {JsSupport#serve_js serve_js}.
28
26
  #
29
27
  # In your template view, add this before +</body>+:
28
+ # (The name +app_js+ comes from the first parameter passed to
29
+ # {#serve_compressed_js}.)
30
30
  #
31
31
  # <%= settings.app_js.to_html %>
32
32
  #
33
- # (The name +app_js+ comes from the first parameter passed to
34
- # {#serve_compressed_js}.)
33
+ # == Example output
35
34
  #
36
35
  # In development mode, this will probably output:
37
36
  #
@@ -57,6 +56,11 @@
57
56
  # # Gemfile
58
57
  # gem "coffee-script", require: "coffee_script"
59
58
  #
59
+ # == More functions
60
+ #
61
+ # Doing +settings.app_js+ returns a {JsFiles} instance. See the {JsFiles} class
62
+ # for more info on things you can do.
63
+ #
60
64
  # == Caching
61
65
  #
62
66
  # CompressedJS will cache compressed and combined scripts. This means that compression
@@ -88,7 +92,7 @@ module Sinatra::CompressedJS
88
92
  end
89
93
 
90
94
  def serve_compressed_js(name, options={})
91
- jsfiles = JsFiles.new(options)
95
+ jsfiles = JsFiles.new(options.merge(:app => self))
92
96
 
93
97
  set name.to_sym, jsfiles
94
98
 
@@ -119,15 +123,26 @@ end
119
123
  #
120
124
  # === Usage example
121
125
  #
122
- # files = Dir['public/js/jquery.*.js']
123
- # files += Dir['public/js/app.*.js']
126
+ # In Sinatra, doing {CompressedJS#serve_compressed_js} will make a
127
+ # JsFiles instance:
128
+ #
129
+ # serve_compressed_js :js_files,
130
+ # :prefix => '/javascript',
131
+ # :path => '/javascript/combined.js',
132
+ # :root => './app/js'
133
+ # files =>
134
+ # Dir['public/js/jquery.*.js'].sort +
135
+ # Dir['public/js/app.*.js'].sort
136
+ #
137
+ # js_files.is_a?(JsFiles) #=> true
138
+ # js_files.mtime #=> (Time) 2010-09-02 8:00PM
124
139
  #
140
+ # Or outside Sinatra, just instanciate it as so:
141
+ #
125
142
  # js_files = JsFiles.new(:files => files,
126
143
  # :prefix => '/javascript',
127
144
  # :root => './app/js')
128
145
  #
129
- # js_files.mtime #=> (Time) 2010-09-02 8:00PM
130
- #
131
146
  # You can use #to_html in views:
132
147
  #
133
148
  # <!-- Shows <script> tags -->
@@ -60,7 +60,8 @@ module Sinatra::MultiRender
60
60
  engines = [*(options[:engine] || settings.multi_engines)].join(',')
61
61
 
62
62
  t = @template_cache.fetch template, options do
63
- template = Dir["{#{paths}}/#{template}.{#{engines}}"].first or raise Errno::ENOENT
63
+ spec = "{#{paths}}/#{template}.{#{engines}}"
64
+ template = Dir[spec].first or raise Errno::ENOENT.new(spec)
64
65
 
65
66
  ext = File.extname(template)[1..-1].to_sym
66
67
  options = settings.send(ext).merge(options) if settings.respond_to?(ext)
@@ -1,6 +1,6 @@
1
1
  module Sinatra
2
2
  module Support
3
- VERSION = "1.2.0"
3
+ VERSION = "1.2.1"
4
4
 
5
5
  def self.version
6
6
  VERSION
@@ -1,6 +1,6 @@
1
1
  require File.expand_path('../helper', __FILE__)
2
2
 
3
- Encoding.default_external = 'utf-8'
3
+ Encoding.default_external = 'utf-8' if defined?(::Encoding)
4
4
 
5
5
  class CompassAppTest < Test::Unit::TestCase
6
6
  include Rack::Test::Methods
@@ -18,8 +18,6 @@ class CompassAppTest < Test::Unit::TestCase
18
18
  test "boogie" do
19
19
  get '/style.css'
20
20
 
21
- control = "body{-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)\";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:0.5}\n"
22
-
23
- assert_equal control, last_response.body
21
+ assert_includes last_response.body, 'filter:'
24
22
  end
25
23
  end
@@ -53,7 +53,7 @@ class CompressedJSApp < Test::Unit::TestCase
53
53
  get '/js/yo.js'
54
54
  control = 'alert(2);';
55
55
 
56
- assert_equal control, last_response.body.strip
56
+ assert_includes last_response.body.strip, control
57
57
  end
58
58
 
59
59
  test "compressed" do
@@ -27,7 +27,7 @@ class HtmlHelpersTest < Test::Unit::TestCase
27
27
 
28
28
  test "h" do
29
29
  assert_equal "&lt;Foo&gt;", h("<Foo>")
30
- assert_equal "&lt;Foo bar=&#39;baz&#39;&gt;", h("<Foo bar='baz'>")
30
+ assert_match /^&lt;Foo bar=&#.*?;baz&#.*?;&gt;$/, h("<Foo bar='baz'>")
31
31
  assert_equal "&lt;Foo bar=&quot;baz&quot;&gt;", h("<Foo bar=\"baz\">")
32
32
  end
33
33
  end
metadata CHANGED
@@ -1,129 +1,137 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sinatra-support
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.1
4
5
  prerelease:
5
- version: 1.2.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Cyril David
9
9
  - Rico Sta. Cruz
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-05-27 00:00:00 +08:00
13
+ date: 2011-08-19 00:00:00.000000000 +08:00
15
14
  default_executable:
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
18
17
  name: sinatra
19
- prerelease: false
20
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &2153502260 !ruby/object:Gem::Requirement
21
19
  none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: "1.0"
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '1.0'
26
24
  type: :runtime
27
- version_requirements: *id001
28
- - !ruby/object:Gem::Dependency
29
- name: rack-test
30
25
  prerelease: false
31
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ version_requirements: *2153502260
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack-test
29
+ requirement: &2153501840 !ruby/object:Gem::Requirement
32
30
  none: false
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: "0"
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
37
35
  type: :development
38
- version_requirements: *id002
39
- - !ruby/object:Gem::Dependency
40
- name: ohm
41
36
  prerelease: false
42
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ version_requirements: *2153501840
38
+ - !ruby/object:Gem::Dependency
39
+ name: ohm
40
+ requirement: &2153501300 !ruby/object:Gem::Requirement
43
41
  none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: "0"
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.0.38
48
46
  type: :development
49
- version_requirements: *id003
50
- - !ruby/object:Gem::Dependency
51
- name: haml
52
47
  prerelease: false
53
- requirement: &id004 !ruby/object:Gem::Requirement
48
+ version_requirements: *2153501300
49
+ - !ruby/object:Gem::Dependency
50
+ name: haml
51
+ requirement: &2153500800 !ruby/object:Gem::Requirement
54
52
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: "0"
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 3.1.2
59
57
  type: :development
60
- version_requirements: *id004
61
- - !ruby/object:Gem::Dependency
62
- name: mocha
63
58
  prerelease: false
64
- requirement: &id005 !ruby/object:Gem::Requirement
59
+ version_requirements: *2153500800
60
+ - !ruby/object:Gem::Dependency
61
+ name: mocha
62
+ requirement: &2153500340 !ruby/object:Gem::Requirement
65
63
  none: false
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: "0"
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 0.9.12
70
68
  type: :development
71
- version_requirements: *id005
72
- - !ruby/object:Gem::Dependency
73
- name: nokogiri
74
69
  prerelease: false
75
- requirement: &id006 !ruby/object:Gem::Requirement
70
+ version_requirements: *2153500340
71
+ - !ruby/object:Gem::Dependency
72
+ name: nokogiri
73
+ requirement: &2153499880 !ruby/object:Gem::Requirement
76
74
  none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: "0"
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.5.0
81
79
  type: :development
82
- version_requirements: *id006
83
- - !ruby/object:Gem::Dependency
80
+ prerelease: false
81
+ version_requirements: *2153499880
82
+ - !ruby/object:Gem::Dependency
84
83
  name: contest
84
+ requirement: &2153521920 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.3
90
+ type: :development
85
91
  prerelease: false
86
- requirement: &id007 !ruby/object:Gem::Requirement
92
+ version_requirements: *2153521920
93
+ - !ruby/object:Gem::Dependency
94
+ name: compass
95
+ requirement: &2153521460 !ruby/object:Gem::Requirement
87
96
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: "0"
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 0.11.5
92
101
  type: :development
93
- version_requirements: *id007
94
- - !ruby/object:Gem::Dependency
95
- name: coffee-script
96
102
  prerelease: false
97
- requirement: &id008 !ruby/object:Gem::Requirement
103
+ version_requirements: *2153521460
104
+ - !ruby/object:Gem::Dependency
105
+ name: coffee-script
106
+ requirement: &2153521000 !ruby/object:Gem::Requirement
98
107
  none: false
99
- requirements:
108
+ requirements:
100
109
  - - ~>
101
- - !ruby/object:Gem::Version
110
+ - !ruby/object:Gem::Version
102
111
  version: 2.1.1
103
112
  type: :development
104
- version_requirements: *id008
105
- - !ruby/object:Gem::Dependency
106
- name: jsmin
107
113
  prerelease: false
108
- requirement: &id009 !ruby/object:Gem::Requirement
114
+ version_requirements: *2153521000
115
+ - !ruby/object:Gem::Dependency
116
+ name: jsmin
117
+ requirement: &2153520540 !ruby/object:Gem::Requirement
109
118
  none: false
110
- requirements:
119
+ requirements:
111
120
  - - ~>
112
- - !ruby/object:Gem::Version
121
+ - !ruby/object:Gem::Version
113
122
  version: 1.0.1
114
123
  type: :development
115
- version_requirements: *id009
116
- description: Sinatra-support includes many helpers for forms, errors and many amazing things.
117
- email:
124
+ prerelease: false
125
+ version_requirements: *2153520540
126
+ description: Sinatra-support includes many helpers for forms, errors and many amazing
127
+ things.
128
+ email:
118
129
  - cyx.ucron@gmail.com
119
130
  - rico@sinefunc.com
120
131
  executables: []
121
-
122
132
  extensions: []
123
-
124
133
  extra_rdoc_files: []
125
-
126
- files:
134
+ files:
127
135
  - lib/sinatra/support/compasssupport.rb
128
136
  - lib/sinatra/support/compat-1.8.6.rb
129
137
  - lib/sinatra/support/compressedjs.rb
@@ -175,30 +183,26 @@ files:
175
183
  has_rdoc: true
176
184
  homepage: http://github.com/sinefunc/sinatra-support
177
185
  licenses: []
178
-
179
186
  post_install_message:
180
187
  rdoc_options: []
181
-
182
- require_paths:
188
+ require_paths:
183
189
  - lib
184
- required_ruby_version: !ruby/object:Gem::Requirement
190
+ required_ruby_version: !ruby/object:Gem::Requirement
185
191
  none: false
186
- requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- version: "0"
190
- required_rubygems_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ! '>='
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
197
  none: false
192
- requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: "0"
198
+ requirements:
199
+ - - ! '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
196
202
  requirements: []
197
-
198
203
  rubyforge_project:
199
204
  rubygems_version: 1.6.2
200
205
  signing_key:
201
206
  specification_version: 3
202
207
  summary: A gem with many essential helpers for creating web apps with Sinatra.
203
208
  test_files: []
204
-