sinatra-bundles 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/Rakefile +2 -1
  2. data/VERSION +1 -1
  3. data/lib/sinatra/bundles/bundle.rb +36 -0
  4. data/lib/sinatra/bundles/helpers.rb +22 -0
  5. data/lib/sinatra/bundles/javascript_bundle.rb +37 -0
  6. data/lib/sinatra/bundles/stylesheet_bundle.rb +36 -0
  7. data/lib/sinatra/bundles.rb +4 -114
  8. data/sinatra-bundles.gemspec +11 -58
  9. data/spec/app.rb +1 -1
  10. data/spec/production_app.rb +1 -1
  11. data/spec/public/javascripts/eval.js +5 -0
  12. data/spec/sinatra-bundles_spec.rb +10 -1
  13. data/spec/spec_helper.rb +5 -6
  14. metadata +17 -57
  15. data/vendor/cache/sinatra-0.10.1.gem +0 -0
  16. data/vendor/gems/sinatra-0.10.1/AUTHORS +0 -43
  17. data/vendor/gems/sinatra-0.10.1/CHANGES +0 -467
  18. data/vendor/gems/sinatra-0.10.1/LICENSE +0 -22
  19. data/vendor/gems/sinatra-0.10.1/README.jp.rdoc +0 -552
  20. data/vendor/gems/sinatra-0.10.1/README.rdoc +0 -622
  21. data/vendor/gems/sinatra-0.10.1/Rakefile +0 -129
  22. data/vendor/gems/sinatra-0.10.1/lib/sinatra/base.rb +0 -1143
  23. data/vendor/gems/sinatra-0.10.1/lib/sinatra/images/404.png +0 -0
  24. data/vendor/gems/sinatra-0.10.1/lib/sinatra/images/500.png +0 -0
  25. data/vendor/gems/sinatra-0.10.1/lib/sinatra/main.rb +0 -28
  26. data/vendor/gems/sinatra-0.10.1/lib/sinatra/showexceptions.rb +0 -303
  27. data/vendor/gems/sinatra-0.10.1/lib/sinatra/tilt.rb +0 -509
  28. data/vendor/gems/sinatra-0.10.1/lib/sinatra.rb +0 -7
  29. data/vendor/gems/sinatra-0.10.1/sinatra.gemspec +0 -86
  30. data/vendor/gems/sinatra-0.10.1/test/base_test.rb +0 -160
  31. data/vendor/gems/sinatra-0.10.1/test/builder_test.rb +0 -65
  32. data/vendor/gems/sinatra-0.10.1/test/contest.rb +0 -64
  33. data/vendor/gems/sinatra-0.10.1/test/erb_test.rb +0 -81
  34. data/vendor/gems/sinatra-0.10.1/test/erubis_test.rb +0 -82
  35. data/vendor/gems/sinatra-0.10.1/test/extensions_test.rb +0 -100
  36. data/vendor/gems/sinatra-0.10.1/test/filter_test.rb +0 -195
  37. data/vendor/gems/sinatra-0.10.1/test/haml_test.rb +0 -90
  38. data/vendor/gems/sinatra-0.10.1/test/helper.rb +0 -76
  39. data/vendor/gems/sinatra-0.10.1/test/helpers_test.rb +0 -573
  40. data/vendor/gems/sinatra-0.10.1/test/mapped_error_test.rb +0 -186
  41. data/vendor/gems/sinatra-0.10.1/test/middleware_test.rb +0 -68
  42. data/vendor/gems/sinatra-0.10.1/test/request_test.rb +0 -33
  43. data/vendor/gems/sinatra-0.10.1/test/response_test.rb +0 -42
  44. data/vendor/gems/sinatra-0.10.1/test/result_test.rb +0 -98
  45. data/vendor/gems/sinatra-0.10.1/test/route_added_hook_test.rb +0 -59
  46. data/vendor/gems/sinatra-0.10.1/test/routing_test.rb +0 -878
  47. data/vendor/gems/sinatra-0.10.1/test/sass_test.rb +0 -79
  48. data/vendor/gems/sinatra-0.10.1/test/server_test.rb +0 -47
  49. data/vendor/gems/sinatra-0.10.1/test/sinatra_test.rb +0 -13
  50. data/vendor/gems/sinatra-0.10.1/test/static_test.rb +0 -87
  51. data/vendor/gems/sinatra-0.10.1/test/templates_test.rb +0 -155
  52. data/vendor/gems/sinatra-0.10.1/test/views/error.builder +0 -3
  53. data/vendor/gems/sinatra-0.10.1/test/views/error.erb +0 -3
  54. data/vendor/gems/sinatra-0.10.1/test/views/error.erubis +0 -3
  55. data/vendor/gems/sinatra-0.10.1/test/views/error.haml +0 -3
  56. data/vendor/gems/sinatra-0.10.1/test/views/error.sass +0 -2
  57. data/vendor/gems/sinatra-0.10.1/test/views/foo/hello.test +0 -1
  58. data/vendor/gems/sinatra-0.10.1/test/views/hello.builder +0 -1
  59. data/vendor/gems/sinatra-0.10.1/test/views/hello.erb +0 -1
  60. data/vendor/gems/sinatra-0.10.1/test/views/hello.erubis +0 -1
  61. data/vendor/gems/sinatra-0.10.1/test/views/hello.haml +0 -1
  62. data/vendor/gems/sinatra-0.10.1/test/views/hello.sass +0 -2
  63. data/vendor/gems/sinatra-0.10.1/test/views/hello.test +0 -1
  64. data/vendor/gems/sinatra-0.10.1/test/views/layout2.builder +0 -3
  65. data/vendor/gems/sinatra-0.10.1/test/views/layout2.erb +0 -2
  66. data/vendor/gems/sinatra-0.10.1/test/views/layout2.erubis +0 -2
  67. data/vendor/gems/sinatra-0.10.1/test/views/layout2.haml +0 -2
  68. data/vendor/gems/sinatra-0.10.1/test/views/layout2.test +0 -1
  69. data/vendor/specifications/sinatra-0.10.1.gemspec +0 -40
data/Rakefile CHANGED
@@ -12,6 +12,7 @@ begin
12
12
  gem.authors = ['Daniel Huckstep']
13
13
  gem.add_dependency 'rainpress', '>= 0'
14
14
  gem.add_dependency 'packr', '>= 0'
15
+ gem.add_dependency 'rack', '>= 1.0'
15
16
  gem.add_dependency 'sinatra', '>= 1.0.a'
16
17
  gem.add_development_dependency 'rspec', '>= 1.2.9'
17
18
  gem.add_development_dependency 'rack-test', '>= 0.5.3'
@@ -48,4 +49,4 @@ rescue LoadError
48
49
  task :yardoc do
49
50
  abort 'YARD is not available. In order to run yardoc, you must: sudo gem install yard'
50
51
  end
51
- end
52
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -0,0 +1,36 @@
1
+ module Sinatra
2
+ module Bundles
3
+ # The base class for a bundle of files.
4
+ # The developer user sinatra-bundles should
5
+ # never have to deal with this directly
6
+ class Bundle
7
+ def initialize(app, files)
8
+ @app = app
9
+ @files = files
10
+ end
11
+
12
+ # Since we pass Bundles back as the body,
13
+ # this follows Rack standards and supports an each method
14
+ # to yield parts of the body, in our case, the files.
15
+ def each
16
+ @files.each do |f|
17
+ content = File.read(path(f))
18
+ content = compress(content) if @app.compress_bundles
19
+ # Include a new line to prevent weirdness at file boundaries
20
+ yield("#{content}\n")
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ # The timestamp of the bundle, which is the newest file in the bundle.
27
+ #
28
+ # @return [Integer] The timestamp of the bundle
29
+ def stamp
30
+ @files.map do |f|
31
+ File.mtime(path(f))
32
+ end.sort.first.to_i
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,22 @@
1
+ module Sinatra
2
+ module Bundles
3
+ # View helpers
4
+ module Helpers
5
+ # Emit a script tag for a javascript bundle
6
+ #
7
+ # @param [Symbol,String] bundle The bundle name
8
+ # @return [String] HTML script tag
9
+ def javascript_bundle_include_tag(bundle)
10
+ options.javascript_bundles[bundle].to_html(bundle)
11
+ end
12
+
13
+ # Emit a script tag for a stylesheet bundle
14
+ #
15
+ # @param [Symbol,String] bundle The bundle name
16
+ # @return [String] HTML link tag
17
+ def stylesheet_bundle_link_tag(bundle)
18
+ options.stylesheet_bundles[bundle].to_html(bundle)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,37 @@
1
+ require 'sinatra/bundles/bundle'
2
+ require 'packr'
3
+
4
+ module Sinatra
5
+ module Bundles
6
+ # Bundle for javascripts
7
+ class JavascriptBundle < Bundle
8
+ # Generate the HTML tag for the script file
9
+ #
10
+ # @param [String] name The name of a bundle
11
+ # @return [String] The HTML that can be inserted into the doc
12
+ def to_html(name)
13
+ "<script type='text/javascript' src='/javascripts/bundles/#{name}.js#{@app.stamp_bundles ? "?#{stamp}" : ''}'></script>"
14
+ end
15
+
16
+ protected
17
+
18
+ # Compress Javascript
19
+ #
20
+ # @param [String] js The Javascript to compress
21
+ # @return [String] Compressed Javascript
22
+ def compress(js)
23
+ # Don't shrink variables if the file includes a call to `eval`
24
+ Packr.pack(js, :shrink_vars => !js.include?('eval('))
25
+ end
26
+
27
+ # Get the path of the file on disk
28
+ #
29
+ # @param [String] filename The name of sheet,
30
+ # assumed to be in the public directory, under 'javascripts'
31
+ # @return [String] The full path to the file
32
+ def path(filename)
33
+ File.join(@app.public, 'javascripts', "#{filename}.js")
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,36 @@
1
+ require 'sinatra/bundles/bundle'
2
+ require 'rainpress'
3
+
4
+ module Sinatra
5
+ module Bundles
6
+ # Bundle for stylesheets
7
+ class StylesheetBundle < Bundle
8
+ # Generate the HTML tag for the stylesheet
9
+ #
10
+ # @param [String] name The name of a bundle
11
+ # @return [String] The HTML that can be inserted into the doc
12
+ def to_html(name)
13
+ "<link type='text/css' href='/stylesheets/bundles/#{name}.css#{@app.stamp_bundles ? "?#{stamp}" : ''}' rel='stylesheet' media='screen' />"
14
+ end
15
+
16
+ protected
17
+
18
+ # Compress CSS
19
+ #
20
+ # @param [String] css The CSS to compress
21
+ # @return [String] Compressed CSS
22
+ def compress(css)
23
+ Rainpress.compress(css)
24
+ end
25
+
26
+ # Get the path of the file on disk
27
+ #
28
+ # @param [String] filename The name of sheet,
29
+ # assumed to be in the public directory, under 'stylesheets'
30
+ # @return [String] The full path to the file
31
+ def path(filename)
32
+ File.join(@app.public, 'stylesheets', "#{filename}.css")
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,120 +1,10 @@
1
- require 'rainpress'
2
- require 'packr'
3
-
4
1
  module Sinatra
5
2
  # Main Bundles Module
6
3
  module Bundles
7
- # The base class for a bundle of files.
8
- # The developer user sinatra-bundles should
9
- # never have to deal with this directly
10
- class Bundle
11
- def initialize(app, files)
12
- @app = app
13
- @files = files
14
- end
15
-
16
- # Since we pass Bundles back as the body,
17
- # this follows Rack standards and supports an each method
18
- # to yield parts of the body, in our case, the files.
19
- def each
20
- @files.each do |f|
21
- content = File.read(path(f))
22
- content = compress(content) if @app.compress_bundles
23
- # Include a new line to prevent weirdness at file boundaries
24
- yield("#{content}\n")
25
- end
26
- end
27
-
28
- private
29
-
30
- # The timestamp of the bundle, which is the newest file in the bundle.
31
- #
32
- # @return [Integer] The timestamp of the bundle
33
- def stamp
34
- @files.map do |f|
35
- File.mtime(path(f))
36
- end.sort.first.to_i
37
- end
38
- end
39
-
40
- # Bundle for stylesheets
41
- class StylesheetBundle < Bundle
42
- # Generate the HTML tag for the stylesheet
43
- #
44
- # @param [String] name The name of a bundle
45
- # @return [String] The HTML that can be inserted into the doc
46
- def to_html(name)
47
- "<link type='text/css' href='/stylesheets/bundles/#{name}.css#{@app.stamp_bundles ? "?#{stamp}" : ''}' rel='stylesheet' media='screen' />"
48
- end
49
-
50
- protected
51
-
52
- # Compress CSS
53
- #
54
- # @param [String] css The CSS to compress
55
- # @return [String] Compressed CSS
56
- def compress(css)
57
- Rainpress.compress(css)
58
- end
59
-
60
- # Get the path of the file on disk
61
- #
62
- # @param [String] filename The name of sheet,
63
- # assumed to be in the public directory, under 'stylesheets'
64
- # @return [String] The full path to the file
65
- def path(filename)
66
- File.join(@app.public, 'stylesheets', "#{filename}.css")
67
- end
68
- end
69
-
70
- # Bundle for javascripts
71
- class JavascriptBundle < Bundle
72
- # Generate the HTML tag for the script file
73
- #
74
- # @param [String] name The name of a bundle
75
- # @return [String] The HTML that can be inserted into the doc
76
- def to_html(name)
77
- "<script type='text/javascript' src='/javascripts/bundles/#{name}.js#{@app.stamp_bundles ? "?#{stamp}" : ''}'></script>"
78
- end
79
-
80
- protected
81
-
82
- # Compress Javascript
83
- #
84
- # @param [String] js The Javascript to compress
85
- # @return [String] Compressed Javascript
86
- def compress(js)
87
- Packr.pack(js, :shrink_vars => true)
88
- end
89
-
90
- # Get the path of the file on disk
91
- #
92
- # @param [String] filename The name of sheet,
93
- # assumed to be in the public directory, under 'javascripts'
94
- # @return [String] The full path to the file
95
- def path(filename)
96
- File.join(@app.public, 'javascripts', "#{filename}.js")
97
- end
98
- end
99
-
100
- # View helpers
101
- module Helpers
102
- # Emit a script tag for a javascript bundle
103
- #
104
- # @param [Symbol,String] bundle The bundle name
105
- # @return [String] HTML script tag
106
- def javascript_bundle_include_tag(bundle)
107
- options.javascript_bundles[bundle].to_html(bundle)
108
- end
109
-
110
- # Emit a script tag for a stylesheet bundle
111
- #
112
- # @param [Symbol,String] bundle The bundle name
113
- # @return [String] HTML link tag
114
- def stylesheet_bundle_link_tag(bundle)
115
- options.stylesheet_bundles[bundle].to_html(bundle)
116
- end
117
- end
4
+ autoload :Helpers, 'sinatra/bundles/helpers'
5
+ autoload :Bundle, 'sinatra/bundles/bundle'
6
+ autoload :JavascriptBundle, 'sinatra/bundles/javascript_bundle'
7
+ autoload :StylesheetBundle, 'sinatra/bundles/stylesheet_bundle'
118
8
 
119
9
  # Set a Javascript bundle
120
10
  # javascript_bundle(:all, %w(jquery lightbox))
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra-bundles}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Huckstep"]
12
- s.date = %q{2010-02-07}
12
+ s.date = %q{2010-02-28}
13
13
  s.description = %q{Bundle CSS and Javascript assets to a single file, compress, and cache them for snappier web experiences.}
14
14
  s.email = %q{darkhelmet@darkhelmetlive.com}
15
15
  s.extra_rdoc_files = [
@@ -24,71 +24,21 @@ Gem::Specification.new do |s|
24
24
  "Rakefile",
25
25
  "VERSION",
26
26
  "lib/sinatra/bundles.rb",
27
+ "lib/sinatra/bundles/bundle.rb",
28
+ "lib/sinatra/bundles/helpers.rb",
29
+ "lib/sinatra/bundles/javascript_bundle.rb",
30
+ "lib/sinatra/bundles/stylesheet_bundle.rb",
27
31
  "sinatra-bundles.gemspec",
28
32
  "spec/app.rb",
29
33
  "spec/production_app.rb",
34
+ "spec/public/javascripts/eval.js",
30
35
  "spec/public/javascripts/test1.js",
31
36
  "spec/public/javascripts/test2.js",
32
37
  "spec/public/stylesheets/test1.css",
33
38
  "spec/public/stylesheets/test2.css",
34
39
  "spec/sinatra-bundles_spec.rb",
35
40
  "spec/spec.opts",
36
- "spec/spec_helper.rb",
37
- "vendor/cache/sinatra-0.10.1.gem",
38
- "vendor/gems/sinatra-0.10.1/AUTHORS",
39
- "vendor/gems/sinatra-0.10.1/CHANGES",
40
- "vendor/gems/sinatra-0.10.1/LICENSE",
41
- "vendor/gems/sinatra-0.10.1/README.jp.rdoc",
42
- "vendor/gems/sinatra-0.10.1/README.rdoc",
43
- "vendor/gems/sinatra-0.10.1/Rakefile",
44
- "vendor/gems/sinatra-0.10.1/lib/sinatra.rb",
45
- "vendor/gems/sinatra-0.10.1/lib/sinatra/base.rb",
46
- "vendor/gems/sinatra-0.10.1/lib/sinatra/images/404.png",
47
- "vendor/gems/sinatra-0.10.1/lib/sinatra/images/500.png",
48
- "vendor/gems/sinatra-0.10.1/lib/sinatra/main.rb",
49
- "vendor/gems/sinatra-0.10.1/lib/sinatra/showexceptions.rb",
50
- "vendor/gems/sinatra-0.10.1/lib/sinatra/tilt.rb",
51
- "vendor/gems/sinatra-0.10.1/sinatra.gemspec",
52
- "vendor/gems/sinatra-0.10.1/test/base_test.rb",
53
- "vendor/gems/sinatra-0.10.1/test/builder_test.rb",
54
- "vendor/gems/sinatra-0.10.1/test/contest.rb",
55
- "vendor/gems/sinatra-0.10.1/test/erb_test.rb",
56
- "vendor/gems/sinatra-0.10.1/test/erubis_test.rb",
57
- "vendor/gems/sinatra-0.10.1/test/extensions_test.rb",
58
- "vendor/gems/sinatra-0.10.1/test/filter_test.rb",
59
- "vendor/gems/sinatra-0.10.1/test/haml_test.rb",
60
- "vendor/gems/sinatra-0.10.1/test/helper.rb",
61
- "vendor/gems/sinatra-0.10.1/test/helpers_test.rb",
62
- "vendor/gems/sinatra-0.10.1/test/mapped_error_test.rb",
63
- "vendor/gems/sinatra-0.10.1/test/middleware_test.rb",
64
- "vendor/gems/sinatra-0.10.1/test/request_test.rb",
65
- "vendor/gems/sinatra-0.10.1/test/response_test.rb",
66
- "vendor/gems/sinatra-0.10.1/test/result_test.rb",
67
- "vendor/gems/sinatra-0.10.1/test/route_added_hook_test.rb",
68
- "vendor/gems/sinatra-0.10.1/test/routing_test.rb",
69
- "vendor/gems/sinatra-0.10.1/test/sass_test.rb",
70
- "vendor/gems/sinatra-0.10.1/test/server_test.rb",
71
- "vendor/gems/sinatra-0.10.1/test/sinatra_test.rb",
72
- "vendor/gems/sinatra-0.10.1/test/static_test.rb",
73
- "vendor/gems/sinatra-0.10.1/test/templates_test.rb",
74
- "vendor/gems/sinatra-0.10.1/test/views/error.builder",
75
- "vendor/gems/sinatra-0.10.1/test/views/error.erb",
76
- "vendor/gems/sinatra-0.10.1/test/views/error.erubis",
77
- "vendor/gems/sinatra-0.10.1/test/views/error.haml",
78
- "vendor/gems/sinatra-0.10.1/test/views/error.sass",
79
- "vendor/gems/sinatra-0.10.1/test/views/foo/hello.test",
80
- "vendor/gems/sinatra-0.10.1/test/views/hello.builder",
81
- "vendor/gems/sinatra-0.10.1/test/views/hello.erb",
82
- "vendor/gems/sinatra-0.10.1/test/views/hello.erubis",
83
- "vendor/gems/sinatra-0.10.1/test/views/hello.haml",
84
- "vendor/gems/sinatra-0.10.1/test/views/hello.sass",
85
- "vendor/gems/sinatra-0.10.1/test/views/hello.test",
86
- "vendor/gems/sinatra-0.10.1/test/views/layout2.builder",
87
- "vendor/gems/sinatra-0.10.1/test/views/layout2.erb",
88
- "vendor/gems/sinatra-0.10.1/test/views/layout2.erubis",
89
- "vendor/gems/sinatra-0.10.1/test/views/layout2.haml",
90
- "vendor/gems/sinatra-0.10.1/test/views/layout2.test",
91
- "vendor/specifications/sinatra-0.10.1.gemspec"
41
+ "spec/spec_helper.rb"
92
42
  ]
93
43
  s.homepage = %q{http://github.com/darkhelmet/sinatra-bundles}
94
44
  s.rdoc_options = ["--charset=UTF-8"]
@@ -109,6 +59,7 @@ Gem::Specification.new do |s|
109
59
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
110
60
  s.add_runtime_dependency(%q<rainpress>, [">= 0"])
111
61
  s.add_runtime_dependency(%q<packr>, [">= 0"])
62
+ s.add_runtime_dependency(%q<rack>, [">= 1.0"])
112
63
  s.add_runtime_dependency(%q<sinatra>, [">= 1.0.a"])
113
64
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
114
65
  s.add_development_dependency(%q<rack-test>, [">= 0.5.3"])
@@ -116,6 +67,7 @@ Gem::Specification.new do |s|
116
67
  else
117
68
  s.add_dependency(%q<rainpress>, [">= 0"])
118
69
  s.add_dependency(%q<packr>, [">= 0"])
70
+ s.add_dependency(%q<rack>, [">= 1.0"])
119
71
  s.add_dependency(%q<sinatra>, [">= 1.0.a"])
120
72
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
121
73
  s.add_dependency(%q<rack-test>, [">= 0.5.3"])
@@ -124,6 +76,7 @@ Gem::Specification.new do |s|
124
76
  else
125
77
  s.add_dependency(%q<rainpress>, [">= 0"])
126
78
  s.add_dependency(%q<packr>, [">= 0"])
79
+ s.add_dependency(%q<rack>, [">= 1.0"])
127
80
  s.add_dependency(%q<sinatra>, [">= 1.0.a"])
128
81
  s.add_dependency(%q<rspec>, [">= 1.2.9"])
129
82
  s.add_dependency(%q<rack-test>, [">= 0.5.3"])
data/spec/app.rb CHANGED
@@ -7,5 +7,5 @@ class TestApp < Sinatra::Base
7
7
  register Sinatra::Bundles
8
8
 
9
9
  stylesheet_bundle(:test, %w(test1 test2))
10
- javascript_bundle(:test, %w(test1 test2))
10
+ javascript_bundle(:test, %w(test1 test2 eval))
11
11
  end
@@ -1,4 +1,4 @@
1
- gem 'sinatra', '>= 0.10.1'
1
+ gem 'sinatra', '>= 1.0.a'
2
2
  require 'sinatra/base'
3
3
  require 'sinatra/bundles'
4
4
 
@@ -0,0 +1,5 @@
1
+ function something(name) {
2
+ eval('alert(name);');
3
+ }
4
+
5
+ something('bob');
@@ -29,7 +29,7 @@ describe 'sinatra-bundles' do
29
29
  end
30
30
 
31
31
  before do
32
- @scripts = %w(test1 test2).map do |name|
32
+ @scripts = %w(test1 test2 eval).map do |name|
33
33
  File.expand_path(File.join(File.dirname(__FILE__), 'public', 'javascripts', "#{name}.js"))
34
34
  end
35
35
 
@@ -111,6 +111,15 @@ describe 'sinatra-bundles' do
111
111
  last_response.headers['Vary'].should == 'Accept-Encoding'
112
112
  last_response.headers['Cache-Control'].should == 'public, must-revalidate, max-age=31536000'
113
113
  end
114
+
115
+ it 'should not shrink vars on javascript files that use eval' do
116
+ app.enable(:compress_bundles)
117
+ get '/javascripts/bundles/test.js'
118
+ last_response.should be_ok
119
+ js = File.read(File.join(File.dirname(__FILE__), 'public/javascripts/eval.js'))
120
+ last_response.body.include?(Packr.pack(js)).should be_true
121
+ last_response.body.include?(Packr.pack(js, :shrink_vars => true)).should be_false
122
+ end
114
123
  end
115
124
 
116
125
  context 'stylesheet bundles' do
data/spec/spec_helper.rb CHANGED
@@ -1,17 +1,16 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
3
4
  require 'rubygems'
4
- Gem.clear_paths
5
- ENV['GEM_HOME'] = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor'))
6
5
  require 'spec'
7
6
  require 'spec/autorun'
8
7
  require 'rack/test'
9
8
 
10
- gem 'sinatra', '>= 0.10.1'
9
+ gem 'sinatra', '>= 1.0.a'
11
10
  require 'sinatra/base'
12
11
  require 'sinatra/bundles'
13
12
 
14
- Spec::Runner.configure do |config|
15
- config.include Rack::Test::Methods
16
- config.include Sinatra::Bundles::Helpers
13
+ Spec::Runner.configure do |c|
14
+ c.include Rack::Test::Methods
15
+ c.include Sinatra::Bundles::Helpers
17
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-bundles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Huckstep
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-07 00:00:00 -07:00
12
+ date: 2010-02-28 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: "0"
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: rack
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "1.0"
44
+ version:
35
45
  - !ruby/object:Gem::Dependency
36
46
  name: sinatra
37
47
  type: :runtime
@@ -89,9 +99,14 @@ files:
89
99
  - Rakefile
90
100
  - VERSION
91
101
  - lib/sinatra/bundles.rb
102
+ - lib/sinatra/bundles/bundle.rb
103
+ - lib/sinatra/bundles/helpers.rb
104
+ - lib/sinatra/bundles/javascript_bundle.rb
105
+ - lib/sinatra/bundles/stylesheet_bundle.rb
92
106
  - sinatra-bundles.gemspec
93
107
  - spec/app.rb
94
108
  - spec/production_app.rb
109
+ - spec/public/javascripts/eval.js
95
110
  - spec/public/javascripts/test1.js
96
111
  - spec/public/javascripts/test2.js
97
112
  - spec/public/stylesheets/test1.css
@@ -99,61 +114,6 @@ files:
99
114
  - spec/sinatra-bundles_spec.rb
100
115
  - spec/spec.opts
101
116
  - spec/spec_helper.rb
102
- - vendor/cache/sinatra-0.10.1.gem
103
- - vendor/gems/sinatra-0.10.1/AUTHORS
104
- - vendor/gems/sinatra-0.10.1/CHANGES
105
- - vendor/gems/sinatra-0.10.1/LICENSE
106
- - vendor/gems/sinatra-0.10.1/README.jp.rdoc
107
- - vendor/gems/sinatra-0.10.1/README.rdoc
108
- - vendor/gems/sinatra-0.10.1/Rakefile
109
- - vendor/gems/sinatra-0.10.1/lib/sinatra.rb
110
- - vendor/gems/sinatra-0.10.1/lib/sinatra/base.rb
111
- - vendor/gems/sinatra-0.10.1/lib/sinatra/images/404.png
112
- - vendor/gems/sinatra-0.10.1/lib/sinatra/images/500.png
113
- - vendor/gems/sinatra-0.10.1/lib/sinatra/main.rb
114
- - vendor/gems/sinatra-0.10.1/lib/sinatra/showexceptions.rb
115
- - vendor/gems/sinatra-0.10.1/lib/sinatra/tilt.rb
116
- - vendor/gems/sinatra-0.10.1/sinatra.gemspec
117
- - vendor/gems/sinatra-0.10.1/test/base_test.rb
118
- - vendor/gems/sinatra-0.10.1/test/builder_test.rb
119
- - vendor/gems/sinatra-0.10.1/test/contest.rb
120
- - vendor/gems/sinatra-0.10.1/test/erb_test.rb
121
- - vendor/gems/sinatra-0.10.1/test/erubis_test.rb
122
- - vendor/gems/sinatra-0.10.1/test/extensions_test.rb
123
- - vendor/gems/sinatra-0.10.1/test/filter_test.rb
124
- - vendor/gems/sinatra-0.10.1/test/haml_test.rb
125
- - vendor/gems/sinatra-0.10.1/test/helper.rb
126
- - vendor/gems/sinatra-0.10.1/test/helpers_test.rb
127
- - vendor/gems/sinatra-0.10.1/test/mapped_error_test.rb
128
- - vendor/gems/sinatra-0.10.1/test/middleware_test.rb
129
- - vendor/gems/sinatra-0.10.1/test/request_test.rb
130
- - vendor/gems/sinatra-0.10.1/test/response_test.rb
131
- - vendor/gems/sinatra-0.10.1/test/result_test.rb
132
- - vendor/gems/sinatra-0.10.1/test/route_added_hook_test.rb
133
- - vendor/gems/sinatra-0.10.1/test/routing_test.rb
134
- - vendor/gems/sinatra-0.10.1/test/sass_test.rb
135
- - vendor/gems/sinatra-0.10.1/test/server_test.rb
136
- - vendor/gems/sinatra-0.10.1/test/sinatra_test.rb
137
- - vendor/gems/sinatra-0.10.1/test/static_test.rb
138
- - vendor/gems/sinatra-0.10.1/test/templates_test.rb
139
- - vendor/gems/sinatra-0.10.1/test/views/error.builder
140
- - vendor/gems/sinatra-0.10.1/test/views/error.erb
141
- - vendor/gems/sinatra-0.10.1/test/views/error.erubis
142
- - vendor/gems/sinatra-0.10.1/test/views/error.haml
143
- - vendor/gems/sinatra-0.10.1/test/views/error.sass
144
- - vendor/gems/sinatra-0.10.1/test/views/foo/hello.test
145
- - vendor/gems/sinatra-0.10.1/test/views/hello.builder
146
- - vendor/gems/sinatra-0.10.1/test/views/hello.erb
147
- - vendor/gems/sinatra-0.10.1/test/views/hello.erubis
148
- - vendor/gems/sinatra-0.10.1/test/views/hello.haml
149
- - vendor/gems/sinatra-0.10.1/test/views/hello.sass
150
- - vendor/gems/sinatra-0.10.1/test/views/hello.test
151
- - vendor/gems/sinatra-0.10.1/test/views/layout2.builder
152
- - vendor/gems/sinatra-0.10.1/test/views/layout2.erb
153
- - vendor/gems/sinatra-0.10.1/test/views/layout2.erubis
154
- - vendor/gems/sinatra-0.10.1/test/views/layout2.haml
155
- - vendor/gems/sinatra-0.10.1/test/views/layout2.test
156
- - vendor/specifications/sinatra-0.10.1.gemspec
157
117
  has_rdoc: true
158
118
  homepage: http://github.com/darkhelmet/sinatra-bundles
159
119
  licenses: []
Binary file
@@ -1,43 +0,0 @@
1
- Sinatra was designed and developed by Blake Mizerany (bmizerany) in
2
- California. Continued development would not be possible without the ongoing
3
- financial support provided by [Heroku](http://heroku.com) and the emotional
4
- support provided by Adam Wiggins (adamwiggins) of Heroku, Chris Wanstrath (defunkt),
5
- PJ Hyett (pjhyett), and the rest of the GitHub crew.
6
-
7
- Special thanks to the following extraordinary individuals, who-out which
8
- Sinatra would not be possible:
9
-
10
- * Ryan Tomayko (rtomayko) for constantly fixing whitespace errors 60d5006
11
- * Ezra Zygmuntowicz (ezmobius) for initial help and letting Blake steal
12
- some of merbs internal code.
13
- * Ari Lerner (http://xnot.org/) for his evangelism, spirit, and gumption
14
- that got Sinatra recognized from Day 1.
15
- * Christopher Schneid (cschneid) for The Book, the blog (gittr.com),
16
- irclogger.com, and a bunch of useful patches.
17
- * Markus Prinz (cypher) for patches over the years, caring about
18
- the README, and hanging in there when times were rough.
19
- * Simon Rozet (sr) for a ton of doc patches, HAML options, and all that
20
- advocacy stuff he's going to do for 1.0.
21
- * Erik Kastner (kastner) for fixing `MIME_TYPES` under Rack 0.5.
22
- * Ben Bleything (bleything) for caring about HTTP status codes and doc fixes.
23
- * Igal Koshevoy (igal) for root path detection under Thin/Passenger.
24
- * Jon Crosby (jcrosby) for coffee breaks, doc fixes, and just because, man.
25
- * Karel Minarik (karmi) for screaming until the website came back up.
26
- * Jeremy Evans (jeremyevans) for unbreaking optional path params (twice!)
27
- * The GitHub guys for stealing Blake's table.
28
- * Nickolas Means (nmeans) for Sass template support.
29
- * Victor Hugo Borja (vic) for splat'n routes specs and doco.
30
- * Avdi Grimm (avdi) for basic RSpec support.
31
- * Jack Danger Canty for a more accurate root directory and for making me
32
- watch [this](http://www.youtube.com/watch?v=ueaHLHgskkw) just now.
33
- * Mathew Walker for making escaped paths work with static files.
34
- * Millions of Us for having the problem that led to Sinatra's conception.
35
- * Songbird for the problems that helped Sinatra's future become realized.
36
- * Rick Olson (technoweenie) for the killer plug at RailsConf '08.
37
- * Steven Garcia for the amazing custom artwork you see on 404's and 500's
38
- * Pat Nakajima (nakajima) for fixing non-nested params in nested params Hash's.
39
-
40
- and last but not least:
41
-
42
- * Frank Sinatra (chairman of the board) for having so much class he
43
- deserves a web-framework named after him.