sinatra-support 1.2.0 → 1.2.1

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