classy_assets 0.8.2 → 0.9.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bb2e760e3ed3c241cdc126be0b0bc2f2217469d
4
- data.tar.gz: 3adad204422df1062aa2ba6c80674b882a62f1a9
3
+ metadata.gz: 09060ae6447ae8e3f17758b01987a1cfef968a48
4
+ data.tar.gz: 78b1c6731372676a92be58dacea8bacadd83f79e
5
5
  SHA512:
6
- metadata.gz: 9b30a3e2e8d9d819a475e1a1980bb632acb6aee245264a56873825c807ec1f02f756e46bbaeeb7f531ba420793619b0c1e70eedb59abdc1f7d2b3275f6ff5efe
7
- data.tar.gz: ac6910479d8b9af07b230c28520599d1e254e7ec717172010a68db3f54154aa6257815d6de8c0cad26dd303173ffdd982bd4517eb74b76baef3293ddef183028
6
+ metadata.gz: 82cc2abbe97b65df3ed5efb942172d2706f0fa543afb0159a1f89d318f2a4df714d2685f421701b62587716ca559161675c990fdaf8ed077cb825bf8188522e4
7
+ data.tar.gz: b39d1aad214784f364dea6f30c78697555d03d366eec50cfa07ebec4d7b738400472295c5e390fdfc7324d2f3162aa73017a4a610baec8babdebe59ad7d6e7db
data/Gemfile CHANGED
@@ -2,6 +2,11 @@ source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  group :development, :test do
5
+ gem 'coffee-script', require: false
6
+ gem 'sass', require: false
7
+ gem 'compass', require: false
8
+ gem 'uglifier', require: false
9
+ gem 'yui-compressor', require: false
5
10
  gem 'slim', require: false
6
11
  gem 'minitest', require: false
7
12
  gem 'minitest-spec-context', require: false
@@ -18,12 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(spec)/})
19
19
  gem.require_paths = ['lib']
20
20
 
21
- gem.add_dependency 'coffee-script'
22
- gem.add_dependency 'sass'
23
21
  gem.add_dependency 'sprockets'
24
- gem.add_dependency 'compass'
25
- gem.add_dependency 'uglifier'
26
- gem.add_dependency 'yui-compressor'
27
22
  gem.add_dependency 'sinatra'
28
23
  gem.add_dependency 'escape_utils'
29
24
 
@@ -1,15 +1,21 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'singleton'
4
+ require 'classy_assets/errors/nil_asset_root'
4
5
 
5
6
  module ClassyAssets
6
7
  class Config
7
8
  include Singleton
8
9
 
9
- attr_accessor :asset_compress, :css_compressor, :js_compressor
10
+ attr_accessor :asset_cache, :asset_compress, :css_compressor, :js_compressor
10
11
  attr_accessor :asset_debug, :asset_digest, :asset_host, :asset_paths, :asset_prefix, :asset_root
11
12
  attr_accessor :asset_precompile_folder, :asset_precompile_files
12
13
 
14
+ def asset_cache
15
+ @asset_cache = (ENV['RACK_ENV'] == 'production') unless defined? @asset_cache
16
+ @asset_cache
17
+ end
18
+
13
19
  def asset_compress
14
20
  @asset_compress if defined? @asset_compress
15
21
  end
@@ -47,7 +53,7 @@ module ClassyAssets
47
53
  end
48
54
 
49
55
  def asset_precompile_files
50
- @asset_precompile_files ||= %w(application.css application.js)
56
+ @asset_precompile_files ||= [/\w+\.(?!js|css).+/, /application.(css|js)$/]
51
57
  end
52
58
 
53
59
  def asset_precompile_folder
@@ -1,25 +1,22 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'singleton'
4
- require 'sprockets'
5
3
 
4
+ require 'sprockets'
6
5
  module ClassyAssets
7
6
  class Sprockets
8
- include Singleton
7
+ attr_accessor :asset_root
8
+ def initialize
9
+ @asset_root = ClassyAssets.config.asset_root
10
+ end
9
11
 
10
12
  def environment
11
- asset_root = ClassyAssets.config.asset_root
13
+ return @environment if @environment.instance_of? ::Sprockets::Environment
12
14
  @environment = ::Sprockets::Environment.new(asset_root)
13
-
15
+
14
16
  ClassyAssets.config.asset_paths.each do |asset_path|
15
17
  @environment.append_path asset_path
16
18
  end
17
19
 
18
- if ClassyAssets.config.asset_compress
19
- @environment.css_compressor = ClassyAssets.config.css_compressor
20
- @environment.js_compressor = ClassyAssets.config.css_compressor
21
- end
22
-
23
20
  @environment.context_class.class_eval do
24
21
  def asset_path(path, options = {})
25
22
  ClassyAssets.asset_url_for(path)
@@ -4,17 +4,17 @@ require 'rake'
4
4
  require 'rake/sprocketstask'
5
5
  require 'classy_assets'
6
6
 
7
- class Rake::ClassyAssetsTask < Rake::SprocketsTask
8
- def define_precompile
9
- desc "Precompile assets"
10
- task "assets:precompile" => [:assets]
11
- end
7
+ module ClassyAssets
8
+ class Tasks < Rake::SprocketsTask ; end
12
9
  end
13
10
 
14
11
  Rake::ClassyAssetsTask.new do |t|
15
- ClassyAssets.config.asset_compress = true
12
+ if ClassyAssets.config.asset_compress
13
+ ClassyAssets.sprockets.css_compressor = ClassyAssets.config.css_compressor
14
+ ClassyAssets.sprockets.js_compressor = ClassyAssets.config.css_compressor
15
+ end
16
+
16
17
  t.environment = ClassyAssets.sprockets
17
18
  t.output = ClassyAssets.config.asset_precompile_folder
18
19
  t.assets = ClassyAssets.config.asset_precompile_files
19
- t.define_precompile
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module ClassyAssets
2
- VERSION = "0.8.2"
2
+ VERSION = "0.9.0"
3
3
  end
data/lib/classy_assets.rb CHANGED
@@ -1,10 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
- # ensure these come first to avoid tilt warnings
4
- require 'compass'
5
- require 'sass'
6
- require 'coffee_script'
7
-
8
3
  # stdlib
9
4
  require 'base64'
10
5
  require 'escape_utils'
@@ -13,16 +8,19 @@ require 'sprockets'
13
8
 
14
9
  # classy assets components
15
10
  require 'classy_assets/config'
16
- require 'classy_assets/errors/nil_asset_root'
17
- require 'classy_assets/sass/script/functions'
18
11
  require 'classy_assets/sprockets'
12
+ require 'classy_assets/sass/script/functions'
19
13
  require 'classy_assets/sprockets/sass_importer'
20
14
  require 'classy_assets/version'
21
15
 
22
16
  module ClassyAssets
23
- # singleton sprockets environment
17
+ # sprockets environment
24
18
  def self.sprockets
25
- ClassyAssets::Sprockets.instance.environment
19
+ if ClassyAssets.config.asset_cache
20
+ ClassyAssets::Sprockets.new.environment.index
21
+ else
22
+ ClassyAssets::Sprockets.new.environment
23
+ end
26
24
  end
27
25
 
28
26
  # singleton configuration
@@ -20,11 +20,16 @@ describe ClassyAssets::Config do
20
20
  config.asset_digest = true
21
21
  config.asset_host = @asset_host
22
22
  config.asset_paths << @vendor_path
23
+ config.asset_precompile_files = @asset_precompile_files
23
24
  end
24
25
 
25
26
  @configuration = ClassyAssets.config
26
27
  end
27
28
 
29
+ it "returns the configured asset_cache" do
30
+ @configuration.asset_cache.must_equal false
31
+ end
32
+
28
33
  it "returns the configured asset_compress" do
29
34
  @configuration.asset_compress.must_equal nil
30
35
  end
@@ -4,6 +4,7 @@ require 'spec_helper'
4
4
  require 'sinatra/classy_assets'
5
5
 
6
6
  class ClassySinatraApp < Sinatra::Base
7
+ use Rack::ClassyAssets
7
8
  register Sinatra::ClassyAssets
8
9
 
9
10
  get "/stylesheet_tag" do
@@ -77,11 +78,4 @@ describe Sinatra::ClassyAssets do
77
78
  last_response.body.must_match(/<script src="\/assets\/application.js"><\/script>/)
78
79
  end
79
80
  end
80
-
81
- context "uses Rack::ClassyAssets middleware" do
82
- it "requests for assets will respond sucessfully" do
83
- get '/assets/stylesheet.css'
84
- last_response.status.must_equal 200
85
- end
86
- end
87
81
  end
data/spec/spec_helper.rb CHANGED
@@ -5,11 +5,22 @@ lib_path = File.expand_path('../lib', __FILE__)
5
5
  ($:.unshift lib_path) unless ($:.include? lib_path)
6
6
  require 'bundler'
7
7
  Bundler.setup(:default, ENV['RACK_ENV'])
8
- require 'rack/test'
8
+
9
+ # ensure these come first to avoid tilt warnings
10
+ require 'compass'
11
+ require 'sass'
12
+ require 'coffee_script'
9
13
  require 'slim'
14
+
15
+ # require gem
10
16
  require 'classy_assets'
17
+
18
+ # testing stack
19
+ require 'rack/test'
11
20
  require 'minitest/autorun'
12
21
  require "minitest-spec-context"
13
22
  require 'minitest/reporters'
23
+
24
+ # boot the infernal machine
14
25
  MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
15
26
  include Rack::Test::Methods
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: classy_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - StyleSeek Engineering
@@ -10,34 +10,6 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2013-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: coffee-script
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: sass
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: sprockets
43
15
  requirement: !ruby/object:Gem::Requirement
@@ -52,48 +24,6 @@ dependencies:
52
24
  - - '>='
53
25
  - !ruby/object:Gem::Version
54
26
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: compass
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: uglifier
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: yui-compressor
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
27
  - !ruby/object:Gem::Dependency
98
28
  name: sinatra
99
29
  requirement: !ruby/object:Gem::Requirement