classy_assets 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d91f5bda225e77c896e45bbb03f571a188d9b346
4
- data.tar.gz: 61eb5ffe14f853db04e3b7a69f6c9f00928a90f3
3
+ metadata.gz: 0bb5c045b40c7a18eedbfa6a32e7a9a71c8ae9ed
4
+ data.tar.gz: 4b20a1d196309da05e7edae4cdef3761c00dc3ed
5
5
  SHA512:
6
- metadata.gz: f97e4e4fcb9871a3816ee3bbfcc73a2c8b7ed10b4ad0bac0686d63a256822354cede9905f68aaa2c69ea9c49b3d82d275072e80c04637b5b65bc862fd6e34bf0
7
- data.tar.gz: 5997a893de6248677f49d58388f71a9b8daee68bbb19ac854d457e327ab8646af114b2a0d3f9c4ffe0d41d6d8ca93793e41060ed51c6b6668adba803cbd4d05d
6
+ metadata.gz: 69ab2b9dd844a9ab983e60511ab054659c8200eacba3ce408a02006da957e5b100c82052ed6f3074f12cfa33e3fff24c191136f328bc92c61b686f5dcf3dbc56
7
+ data.tar.gz: 63f2076784e5705129de6061bc7477944b2f6bdd9846fe1270364bc4931244c6d4ef0dd0e41a55bc5c6dd1bc972694c0169e10d0e917f81d8a2059345cd57624
data/lib/classy_assets.rb CHANGED
@@ -15,7 +15,7 @@ module ClassyAssets
15
15
  end
16
16
 
17
17
  def self.asset_digest
18
- @asset_digest ||= false
18
+ @asset_digest.nil? ? false : @asset_digest
19
19
  end
20
20
 
21
21
  def self.asset_digest=(digest)
@@ -23,7 +23,7 @@ module ClassyAssets
23
23
  end
24
24
 
25
25
  def self.asset_paths
26
- @asset_paths ||= build_asset_path(%w(fonts images javascripts stylesheets))
26
+ @asset_paths || build_asset_path(%w(fonts images javascripts stylesheets))
27
27
  end
28
28
 
29
29
  def self.asset_paths=(paths)
@@ -31,7 +31,7 @@ module ClassyAssets
31
31
  end
32
32
 
33
33
  def self.asset_host
34
- @asset_host ||= nil
34
+ @asset_host
35
35
  end
36
36
 
37
37
  def self.asset_host=(host)
@@ -39,7 +39,7 @@ module ClassyAssets
39
39
  end
40
40
 
41
41
  def self.asset_prefix
42
- @asset_prefix ||= 'assets'
42
+ @asset_prefix || 'assets'
43
43
  end
44
44
 
45
45
  def self.asset_prefix=(prefix)
@@ -47,7 +47,7 @@ module ClassyAssets
47
47
  end
48
48
 
49
49
  def self.css_compressor
50
- @css_compressor ||= :yui
50
+ @css_compressor || :yui
51
51
  end
52
52
 
53
53
  def self.css_compressor=(compressor)
@@ -55,7 +55,7 @@ module ClassyAssets
55
55
  end
56
56
 
57
57
  def self.debug_mode
58
- @debug_mode ||= (ENV['RACK_ENV'] == 'development')
58
+ @debug_mode.nil? ? (ENV['RACK_ENV'] == 'development') : @debug_mode
59
59
  end
60
60
 
61
61
  def self.debug_mode=(debug)
@@ -63,7 +63,7 @@ module ClassyAssets
63
63
  end
64
64
 
65
65
  def self.js_compressor
66
- @js_compressor ||= :uglifier
66
+ @js_compressor || :uglifier
67
67
  end
68
68
 
69
69
  def self.js_compressor=(compressor)
@@ -71,7 +71,7 @@ module ClassyAssets
71
71
  end
72
72
 
73
73
  def self.public_path
74
- @public_path ||= './public'
74
+ @public_path || File.join(root_path, 'public')
75
75
  end
76
76
 
77
77
  def self.public_path=(path)
@@ -79,7 +79,7 @@ module ClassyAssets
79
79
  end
80
80
 
81
81
  def self.root_path
82
- @root_path ||= '.'
82
+ @root_path || '.'
83
83
  end
84
84
 
85
85
  def self.root_path=(path)
@@ -96,7 +96,7 @@ module ClassyAssets
96
96
  def self.sprockets
97
97
  @sprockets ||= ::Sprockets::Environment.new(root_path)
98
98
  asset_paths.each do |asset_path|
99
- @sprockets.append_path asset_path unless @sprockets.paths.include? asset_path
99
+ @sprockets.append_path asset_path unless @sprockets.paths.include?(asset_path)
100
100
  end
101
101
  @sprockets
102
102
  end
@@ -1,3 +1,3 @@
1
1
  module ClassyAssets
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -5,50 +5,52 @@ require 'classy_assets'
5
5
  module Rack
6
6
  class ClassyAssets < Sinatra::Base
7
7
  def initialize(app)
8
- super(app)
9
- @sprockets = ::ClassyAssets::Configuration.sprockets
8
+ super(app)
10
9
  end
10
+
11
+ set :sprockets, ::ClassyAssets::Configuration.sprockets
12
+ set :asset_prefix, ::ClassyAssets::Configuration.asset_prefix
11
13
 
12
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:script.js" do |script|
14
+ get "/#{settings.asset_prefix}/*/:script.js" do |path, script|
13
15
  content_type("application/javascript")
14
- @sprockets["#{script}.js"]
16
+ settings.sprockets["#{path}/#{script}.js"]
15
17
  end
16
18
 
17
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:stylesheet.css" do |stylesheet|
19
+ get "/#{settings.asset_prefix}/*/:stylesheet.css" do |path, stylesheet|
18
20
  content_type("text/css")
19
- @sprockets["#{stylesheet}.css"]
21
+ settings.sprockets["#{stylesheet}.css"]
20
22
  end
21
23
 
22
- %w{jpg png gif}.each do |format|
23
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:image.#{format}" do |image|
24
- content_type("image/#{format}")
25
- @sprockets["#{image}.#{format}"]
24
+ %w(jpeg jpg png gif webp).each do |format|
25
+ get "/#{settings.asset_prefix}/*/:image.#{format}" do |path, image|
26
+ content_type("image/#{(format == 'jpg') ? 'jpeg' : format}")
27
+ settings.sprockets["#{image}.#{format}"]
26
28
  end
27
29
  end
28
30
 
29
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:font.ttf" do |font|
31
+ get "/#{settings.asset_prefix}/*/:font.ttf" do |path, font|
30
32
  content_type('application/x-font-truetype')
31
- @sprockets["#{font}.ttf"]
33
+ settings.sprockets["#{font}.ttf"]
32
34
  end
33
35
 
34
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:font.eot" do |font|
36
+ get "/#{settings.asset_prefix}/*/:font.eot" do |path, font|
35
37
  content_type('application/vnd.ms-fontobject')
36
- @sprockets["#{font}.eot"]
38
+ settings.sprockets["#{font}.eot"]
37
39
  end
38
40
 
39
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:font.svg" do |font|
41
+ get "/#{settings.asset_prefix}/*/:font.svg" do |path, font|
40
42
  content_type('image/svg+xml')
41
- @sprockets["#{font}.svg"]
43
+ settings.sprockets["#{font}.svg"]
42
44
  end
43
45
 
44
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:font.woff" do |font|
46
+ get "/#{settings.asset_prefix}/*/:font.woff" do |path, font|
45
47
  content_type('application/x-font-woff')
46
- @sprockets["#{font}.woff"]
48
+ settings.sprockets["#{font}.woff"]
47
49
  end
48
50
 
49
- get "/#{::ClassyAssets::Configuration.asset_prefix}/:font.otf" do |font|
51
+ get "/#{settings.asset_prefix}/*/:font.otf" do |path, font|
50
52
  content_type('application/x-font-opentype')
51
- @sprockets["#{font}.otf"]
53
+ settings.sprockets["#{font}.otf"]
52
54
  end
53
55
  end
54
56
  end
@@ -7,18 +7,26 @@ module Sinatra
7
7
  module ClassyAssets
8
8
  def self.registered(app)
9
9
  app.use Rack::ClassyAssets
10
- app.register ::Sinatra::Sprockets::Helpers
11
- app.configure_sprockets_helpers do |config|
12
- manifest_file = ::File.join(::ClassyAssets::Configuration.public_path, ::ClassyAssets::Configuration.asset_prefix, 'manifset.json')
10
+ app.register Sprockets::Helpers
11
+ app.configure do
12
+ ::Sprockets::Helpers.configure do |config|
13
+ classy_config = ::ClassyAssets::Configuration
14
+ manifest_file = ::File.join(config.public_path,
15
+ classy_config.asset_prefix,
16
+ 'manifset.json')
17
+
18
+ config.asset_host = classy_config.asset_host
19
+ config.debug = classy_config.debug_mode
20
+ config.digest = classy_config.asset_digest
21
+ config.environment = classy_config.sprockets
22
+ config.public_path = classy_config.public_path
23
+ config.prefix = "/#{classy_config.asset_prefix}"
13
24
 
14
- config.asset_host = ::ClassyAssets::Configuration.asset_host
15
- config.debug = ::ClassyAssets::Configuration.debug_mode
16
- config.digest = ::ClassyAssets::Configuration.asset_digest
17
- config.environment = ::ClassyAssets::Configuration.sprockets
18
- config.manifest = ::Sprockets::Manifest.new(::ClassyAssets::Configuration.sprockets, manifest_file) if ::File.exists? manifest_file
19
- config.prefix = ::ClassyAssets::Configuration.asset_prefix
20
- config.public_path = ::ClassyAssets::Configuration.public_path
21
- end
25
+ if ::File.exists? manifest_file
26
+ config.manifest = ::Sprockets::Manifest.new(config.environment, manifest_file)
27
+ end
28
+ end
29
+ end
22
30
  end
23
31
  end
24
32
  register ClassyAssets
@@ -5,7 +5,10 @@ require 'classy_assets'
5
5
 
6
6
  describe ClassyAssets::Configuration do
7
7
  subject { ClassyAssets::Configuration }
8
-
8
+ after do
9
+ ClassyAssets::Configuration.sprockets.clear_paths
10
+ end
11
+
9
12
  it "returns an array of asset directories" do
10
13
  paths = %w(fonts images javascripts stylesheets)
11
14
  paths.map! { |dir_name| File.join(ClassyAssets::Configuration.root_path, ClassyAssets::Configuration.asset_prefix, dir_name) }
@@ -71,9 +74,4 @@ describe ClassyAssets::Configuration do
71
74
  ClassyAssets::Configuration.public_path.must_equal @public_path
72
75
  end
73
76
  end
74
-
75
- #after do
76
- #ClassyAssets::Configuration.root_path = nil
77
- #ClassyAssets::Configuration.public_path = nil
78
- #end
79
77
  end
@@ -3,13 +3,8 @@
3
3
  require 'spec_helper'
4
4
  require 'rack/classy_assets'
5
5
 
6
- ClassyAssets::Configuration.configure do |config|
7
- config.root_path = File.expand_path('../../support', __FILE__)
8
- config.public_path = File.expand_path('../../support/public', __FILE__)
9
- end
10
-
11
6
  class MiddlewareApp < Sinatra::Base
12
- use Rack::ClassyAssets
7
+ use Rack::ClassyAssets
13
8
  end
14
9
 
15
10
  describe Rack::ClassyAssets do
@@ -18,17 +13,21 @@ describe Rack::ClassyAssets do
18
13
  MiddlewareApp.new
19
14
  end
20
15
 
16
+ after do
17
+ ClassyAssets::Configuration.sprockets.clear_paths
18
+ end
19
+
21
20
  describe "stylesheets" do
22
21
  describe "css" do
23
22
  it "will respond sucessfully" do
24
- get '/assets/stylesheet.css'
23
+ get '/assets/spec/support/stylesheet.css'
25
24
  last_response.status.must_equal 200
26
25
  end
27
26
  end
28
27
 
29
28
  describe "sass" do
30
29
  it "will respond sucessfully" do
31
- get '/assets/application.css'
30
+ get '/assets/spec/support/application.css'
32
31
  last_response.status.must_equal 200
33
32
  end
34
33
  end
@@ -37,14 +36,14 @@ describe Rack::ClassyAssets do
37
36
  describe "javascripts" do
38
37
  describe "js" do
39
38
  it "will respond sucessfully" do
40
- get '/assets/javascript.js'
39
+ get '/assets/spec/support/javascript.js'
41
40
  last_response.status.must_equal 200
42
41
  end
43
42
  end
44
43
 
45
44
  describe "coffeescript" do
46
45
  it "will respond sucessfully" do
47
- get '/assets/application.js'
46
+ get '/assets/spec/support/application.js'
48
47
  last_response.status.must_equal 200
49
48
  end
50
49
  end
@@ -53,21 +52,21 @@ describe Rack::ClassyAssets do
53
52
  describe "images" do
54
53
  describe "gif" do
55
54
  it "will respond sucessfully" do
56
- get '/assets/image.gif'
55
+ get '/assets/spec/support/image.gif'
57
56
  last_response.status.must_equal 200
58
57
  end
59
58
  end
60
59
 
61
60
  describe "jpg" do
62
61
  it "will respond sucessfully" do
63
- get '/assets/image.jpg'
62
+ get '/assets/spec/support/image.jpg'
64
63
  last_response.status.must_equal 200
65
64
  end
66
65
  end
67
66
 
68
67
  describe "png" do
69
68
  it "will respond sucessfully" do
70
- get '/assets/image.png'
69
+ get '/assets/spec/support/image.png'
71
70
  last_response.status.must_equal 200
72
71
  end
73
72
  end
@@ -76,35 +75,35 @@ describe Rack::ClassyAssets do
76
75
  describe "fonts" do
77
76
  describe "eot" do
78
77
  it "will respond sucessfully" do
79
- get '/assets/font.eot'
78
+ get '/assets/spec/support/font.eot'
80
79
  last_response.status.must_equal 200
81
80
  end
82
81
  end
83
82
 
84
83
  describe "otf" do
85
84
  it "will respond sucessfully" do
86
- get '/assets/font.otf'
85
+ get '/assets/spec/support/font.otf'
87
86
  last_response.status.must_equal 200
88
87
  end
89
88
  end
90
89
 
91
90
  describe "svg" do
92
91
  it "will respond sucessfully" do
93
- get '/assets/font.svg'
92
+ get '/assets/spec/support/font.svg'
94
93
  last_response.status.must_equal 200
95
94
  end
96
95
  end
97
96
 
98
97
  describe "ttf" do
99
98
  it "will respond sucessfully" do
100
- get '/assets/font.ttf'
99
+ get '/assets/spec/support/font.ttf'
101
100
  last_response.status.must_equal 200
102
101
  end
103
102
  end
104
103
 
105
104
  describe "woff" do
106
105
  it "will respond sucessfully" do
107
- get '/assets/font.woff'
106
+ get '/assets/spec/support/font.woff'
108
107
  last_response.status.must_equal 200
109
108
  end
110
109
  end
@@ -3,32 +3,31 @@
3
3
  require 'spec_helper'
4
4
  require 'sinatra/classy_assets'
5
5
 
6
- ClassyAssets::Configuration.configure do |config|
7
- config.root_path = File.expand_path('../../support', __FILE__)
8
- config.public_path = File.expand_path('../../support/public', __FILE__)
9
- end
10
-
11
6
  class ExtensionApp < Sinatra::Base
7
+ set :root, File.expand_path('../../support', __FILE__)
12
8
  register Sinatra::ClassyAssets
13
9
  end
14
10
 
11
+ def app
12
+ ExtensionApp.new
13
+ end
14
+
15
15
  describe Rack::ClassyAssets do
16
- include Rack::Test::Methods
17
- def app
18
- ExtensionApp.new
16
+ after do
17
+ ClassyAssets::Configuration.sprockets.clear_paths
19
18
  end
20
19
 
21
20
  describe "stylesheets" do
22
21
  describe "css" do
23
22
  it "will respond sucessfully" do
24
- get '/assets/stylesheet.css'
23
+ get '/assets/spec/support/stylesheet.css'
25
24
  last_response.status.must_equal 200
26
25
  end
27
26
  end
28
27
 
29
28
  describe "sass" do
30
29
  it "will respond sucessfully" do
31
- get '/assets/application.css'
30
+ get '/assets/spec/support/application.css'
32
31
  last_response.status.must_equal 200
33
32
  end
34
33
  end
@@ -37,14 +36,14 @@ describe Rack::ClassyAssets do
37
36
  describe "javascripts" do
38
37
  describe "js" do
39
38
  it "will respond sucessfully" do
40
- get '/assets/javascript.js'
39
+ get '/assets/spec/support/javascript.js'
41
40
  last_response.status.must_equal 200
42
41
  end
43
42
  end
44
43
 
45
44
  describe "coffeescript" do
46
45
  it "will respond sucessfully" do
47
- get '/assets/application.js'
46
+ get '/assets/spec/support/application.js'
48
47
  last_response.status.must_equal 200
49
48
  end
50
49
  end
@@ -53,21 +52,21 @@ describe Rack::ClassyAssets do
53
52
  describe "images" do
54
53
  describe "gif" do
55
54
  it "will respond sucessfully" do
56
- get '/assets/image.gif'
55
+ get '/assets/spec/support/image.gif'
57
56
  last_response.status.must_equal 200
58
57
  end
59
58
  end
60
59
 
61
60
  describe "jpg" do
62
61
  it "will respond sucessfully" do
63
- get '/assets/image.jpg'
62
+ get '/assets/spec/support/image.jpg'
64
63
  last_response.status.must_equal 200
65
64
  end
66
65
  end
67
66
 
68
67
  describe "png" do
69
68
  it "will respond sucessfully" do
70
- get '/assets/image.png'
69
+ get '/assets/spec/support/image.png'
71
70
  last_response.status.must_equal 200
72
71
  end
73
72
  end
@@ -76,35 +75,35 @@ describe Rack::ClassyAssets do
76
75
  describe "fonts" do
77
76
  describe "eot" do
78
77
  it "will respond sucessfully" do
79
- get '/assets/font.eot'
78
+ get '/assets/spec/support/font.eot'
80
79
  last_response.status.must_equal 200
81
80
  end
82
81
  end
83
82
 
84
83
  describe "otf" do
85
84
  it "will respond sucessfully" do
86
- get '/assets/font.otf'
85
+ get '/assets/spec/support/font.otf'
87
86
  last_response.status.must_equal 200
88
87
  end
89
88
  end
90
89
 
91
90
  describe "svg" do
92
91
  it "will respond sucessfully" do
93
- get '/assets/font.svg'
92
+ get '/assets/spec/support/font.svg'
94
93
  last_response.status.must_equal 200
95
94
  end
96
95
  end
97
96
 
98
97
  describe "ttf" do
99
98
  it "will respond sucessfully" do
100
- get '/assets/font.ttf'
99
+ get '/assets/spec/support/font.ttf'
101
100
  last_response.status.must_equal 200
102
101
  end
103
102
  end
104
103
 
105
104
  describe "woff" do
106
105
  it "will respond sucessfully" do
107
- get '/assets/font.woff'
106
+ get '/assets/spec/support/font.woff'
108
107
  last_response.status.must_equal 200
109
108
  end
110
109
  end
data/spec/spec_helper.rb CHANGED
@@ -9,3 +9,11 @@ require 'classy_assets'
9
9
  require 'minitest/autorun'
10
10
  require 'minitest/reporters'
11
11
  MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
12
+
13
+ include Rack::Test::Methods
14
+
15
+ ClassyAssets::Configuration.configure do |config|
16
+ config.root_path = File.expand_path('../support', __FILE__)
17
+ config.public_path = File.expand_path('../support/public', __FILE__)
18
+ end
19
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: classy_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - StyleSeek Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-30 00:00:00.000000000 Z
11
+ date: 2013-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: coffee-script