classy_assets 0.8.2 → 0.9.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: 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