active_assets 1.1.0 → 1.1.1

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.
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  Active Assets
2
2
  =============
3
3
 
4
+ ### Known issue with current versions of ChunkyPng and OliyPng
5
+
6
+ __In your Rails App's gemfile, if you are using ChunkyPng or ChunkyPng with OilyPng, lock down the version to ChunkyPng(0.12.0), OilyPng(0.3.0)__
7
+
4
8
  If you are looking to use Active Assets with rails 2.3.x, click [here](https://github.com/shwoodard/active_assets/tree/0-3).
5
9
 
6
10
  A Railtie that provides an asset management system for css, javascript, and sprites in your Rails applications and engines. ActiveAssets includes two libraries, ActiveExpansions and ActiveSprites. ActiveSprites generates sprites defined by a dsl similar to a route definition. Similarly, ActiveExpansions' dsl creates `ActionView::Helpers::AssetTagHelper` javascript and stylesheet expansions, and adds additional features:
data/Rakefile CHANGED
@@ -5,6 +5,7 @@ Bundler::GemHelper.install_tasks
5
5
 
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << "test"
8
+ t.libs << "test/fixtures/rails_root/test"
8
9
  t.pattern = 'test/**/*_test.rb'
9
10
  t.verbose = true
10
11
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "active_assets"
4
- s.version = '1.1.0'
4
+ s.version = '1.1.1'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ["Sam Woodard"]
7
7
  s.email = ["sam@wildfireapp.com"]
@@ -13,5 +13,38 @@ module ActiveAssets
13
13
  autoload :Javascripts
14
14
  autoload :Stylesheets
15
15
  autoload :Expansions
16
+
17
+ def self.load_active_expansions(root)
18
+ if File.exists?(File.join(root, 'config/assets.rb'))
19
+ load File.join(root, 'config/assets.rb')
20
+ elsif File.directory?(File.join(root, 'config/assets'))
21
+ Dir[File.join(root, 'config/assets/*.rb')].each do |f|
22
+ load f
23
+ end
24
+ end
25
+ end
26
+
27
+ def self.load_expansions_and_register
28
+ ActiveExpansions.load_active_expansions(Rails.root)
29
+ Rails.application.railties.engines.each {|e| ActiveExpansions.load_active_expansions(e.root) }
30
+ Rails.application.expansions.javascripts.register!
31
+ Rails.application.expansions.stylesheets.register!
32
+ end
33
+
34
+ def self.remove_active_expansions
35
+ Rails.application.expansions.javascripts.expansion_names.each do |expansion|
36
+ Rails.application.expansions.javascripts.remove(expansion)
37
+ if ActionView::Helpers::AssetTagHelper.javascript_expansions.has_key?(expansion)
38
+ ActionView::Helpers::AssetTagHelper.javascript_expansions.delete(expansion)
39
+ end
40
+ end
41
+
42
+ Rails.application.expansions.stylesheets.expansion_names.each do |expansion|
43
+ Rails.application.expansions.stylesheets.remove(expansion)
44
+ if ActionView::Helpers::AssetTagHelper.stylesheet_expansions.has_key?(expansion)
45
+ ActionView::Helpers::AssetTagHelper.stylesheet_expansions.delete(expansion)
46
+ end
47
+ end
48
+ end
16
49
  end
17
50
  end
@@ -14,7 +14,7 @@ module ActiveAssets
14
14
  end
15
15
 
16
16
  def expansion_names
17
- @expansion.keys
17
+ @expansions.keys
18
18
  end
19
19
 
20
20
  def [](expansion_name)
@@ -30,6 +30,10 @@ module ActiveAssets
30
30
  self[expansion_name].assets.map(&:path)
31
31
  end
32
32
 
33
+ def remove(expansion_name)
34
+ @expansions.delete(expansion_name)
35
+ end
36
+
33
37
  def asset_type
34
38
  raise NoMethodError
35
39
  end
@@ -6,8 +6,9 @@ module ActiveAssets
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  included do
9
- config_accessor :precache_assets
9
+ config_accessor :precache_assets, :reload_expansions
10
10
  self.precache_assets = false if precache_assets.nil?
11
+ self.reload_expansions = false if reload_expansions.nil?
11
12
  end
12
13
  end
13
14
  end
@@ -1,6 +1,7 @@
1
1
  require "rails"
2
2
  require "rails/active_expansions"
3
3
  require 'active_support/ordered_options'
4
+ require 'active_assets/active_expansions/reload'
4
5
 
5
6
  module ActiveAssets
6
7
  module ActiveExpansions
@@ -15,16 +16,6 @@ module ActiveAssets
15
16
  Rails.application.extend(Rails::ActiveExpansions)
16
17
  end
17
18
 
18
- initializer 'active_expansions-load-definitons' do
19
- load_active_assets(Rails.root)
20
- Rails.application.railties.engines.each {|e| load_active_assets(e.root) }
21
- end
22
-
23
- initializer 'active_expansions-register' do
24
- Rails.application.expansions.javascripts.register!
25
- Rails.application.expansions.stylesheets.register!
26
- end
27
-
28
19
  initializer 'active_expansions-set-configs' do
29
20
  options = config.active_expansions
30
21
  ActiveSupport.on_load(:active_expansions) do
@@ -32,22 +23,20 @@ module ActiveAssets
32
23
  end
33
24
  end
34
25
 
35
- initializer 'active_expansions-cache' do
36
- if Expansions.precache_assets
37
- Rails.application.expansions.javascripts.cache! and Rails.application.expansions.stylesheets.cache!
26
+ initializer 'active_expansions-load-definitions-and-register' do
27
+ ActiveExpansions.load_expansions_and_register
28
+
29
+ if ActiveAssets::ActiveExpansions::Expansions.reload_expansions
30
+ ActionController::Base.extend(Reload)
38
31
  end
39
32
  end
40
33
 
41
- private
42
- def load_active_assets(root)
43
- if File.exists?(File.join(root, 'config/assets.rb'))
44
- load File.join(root, 'config/assets.rb')
45
- elsif File.directory?(File.join(root, 'config/assets'))
46
- Dir[File.join(root, 'config/assets/*.rb')].each do |f|
47
- load f
48
- end
49
- end
34
+ initializer 'active_expansions-cache' do
35
+ if Expansions.precache_assets
36
+ Rails.application.expansions.javascripts.cache!
37
+ Rails.application.expansions.stylesheets.cache!
50
38
  end
39
+ end
51
40
  end
52
41
  end
53
42
  end
@@ -0,0 +1,14 @@
1
+ module ActiveAssets
2
+ module ActiveExpansions
3
+ module Reload
4
+
5
+ def self.extended(controller)
6
+ controller.before_filter do
7
+ ActiveAssets::ActiveExpansions.remove_active_expansions
8
+ ActiveAssets::ActiveExpansions.load_expansions_and_register
9
+ end
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ class ApplicationController < ActionController::Base
2
+ extend ActiveAssets::ActiveExpansions::Reload
3
+
4
+ def index
5
+ head :ok
6
+ end
7
+ end
@@ -1,9 +1,18 @@
1
- require 'rails/all'
1
+ # Pick the frameworks you want:
2
+ # require 'rails/all'
3
+ # require "active_record/railtie"
4
+ require "action_controller/railtie"
5
+ # require "action_mailer/railtie"
6
+ # require "active_resource/railtie"
7
+ # require "active_model/railtie"
8
+ require "rails/test_unit/railtie"
2
9
  require 'active_assets/railtie'
3
10
 
4
11
  module ActiveAssetsTest
5
12
  class Application < Rails::Application
6
13
  config.root = File.expand_path('../..', __FILE__)
14
+ config.cache_classes = false
15
+ # config.active_expansions.reload_expansions = true
7
16
  end
8
17
  end
9
18
 
@@ -0,0 +1,5 @@
1
+ Rails.application.expansions do
2
+ expansion :new do
3
+ _'foo.js'
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ root :to => "application#index"
3
+ end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+ require 'fileutils'
3
+
4
+ class ApplicationControllerTest < ActionController::TestCase
5
+ include FileUtils
6
+
7
+ def new_assets
8
+ File.expand_path('../../../config/assets/new.rb', __FILE__)
9
+ end
10
+
11
+ def write_new_assets
12
+ File.open(new_assets, 'w+') do |io|
13
+ io.puts <<-EOF
14
+ Rails.application.expansions do
15
+ expansion :new do
16
+ _'foo.js'
17
+ end
18
+ end
19
+ EOF
20
+ end
21
+ end
22
+
23
+ def teardown
24
+ rm_rf new_assets
25
+ ActionView::Helpers::AssetTagHelper.javascript_expansions.delete(:new)
26
+ end
27
+
28
+ def test_index
29
+ get :index
30
+ assert response.success?
31
+ end
32
+
33
+ def test_expansions
34
+ assert ActionView::Helpers::AssetTagHelper.javascript_expansions.any? {|k, v| k == :basfoo}
35
+ end
36
+
37
+ def test_can_add_expansion
38
+ assert !ActionView::Helpers::AssetTagHelper.javascript_expansions.any? {|k, v| k == :new}
39
+ get :index
40
+ write_new_assets
41
+ get :index
42
+ assert ActionView::Helpers::AssetTagHelper.javascript_expansions.any? {|k, v| k == :new}
43
+ end
44
+
45
+ def test_can_remove_expansion
46
+ test_can_add_expansion
47
+ rm_rf new_assets
48
+ get :index
49
+
50
+ assert !ActionView::Helpers::AssetTagHelper.javascript_expansions.any? {|k, v| k == :new}
51
+ end
52
+ end
@@ -0,0 +1,6 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+
3
+ require File.expand_path('../../config/environment', __FILE__)
4
+ require 'rails/test_help'
5
+
6
+
data/test/helper.rb CHANGED
@@ -1,9 +1,7 @@
1
1
  ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
- require 'rubygems'
4
3
  require 'test/unit'
5
4
 
6
- require 'rails/all'
7
5
  require 'active_assets'
8
6
 
9
7
  require 'socket'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_assets
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 0
10
- version: 1.1.0
9
+ - 1
10
+ version: 1.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sam Woodard
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-15 00:00:00 -07:00
18
+ date: 2011-04-24 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -28,10 +28,10 @@ dependencies:
28
28
  segments:
29
29
  - 0
30
30
  version: "0"
31
- name: oily_png
32
31
  prerelease: false
33
32
  type: :development
34
33
  requirement: *id001
34
+ name: oily_png
35
35
  - !ruby/object:Gem::Dependency
36
36
  version_requirements: &id002 !ruby/object:Gem::Requirement
37
37
  none: false
@@ -42,10 +42,10 @@ dependencies:
42
42
  segments:
43
43
  - 0
44
44
  version: "0"
45
- name: chunky_png
46
45
  prerelease: false
47
46
  type: :development
48
47
  requirement: *id002
48
+ name: chunky_png
49
49
  - !ruby/object:Gem::Dependency
50
50
  version_requirements: &id003 !ruby/object:Gem::Requirement
51
51
  none: false
@@ -56,10 +56,10 @@ dependencies:
56
56
  segments:
57
57
  - 0
58
58
  version: "0"
59
- name: rmagick
60
59
  prerelease: false
61
60
  type: :development
62
61
  requirement: *id003
62
+ name: rmagick
63
63
  - !ruby/object:Gem::Dependency
64
64
  version_requirements: &id004 !ruby/object:Gem::Requirement
65
65
  none: false
@@ -70,10 +70,10 @@ dependencies:
70
70
  segments:
71
71
  - 0
72
72
  version: "0"
73
- name: mini_magick
74
73
  prerelease: false
75
74
  type: :development
76
75
  requirement: *id004
76
+ name: mini_magick
77
77
  - !ruby/object:Gem::Dependency
78
78
  version_requirements: &id005 !ruby/object:Gem::Requirement
79
79
  none: false
@@ -86,10 +86,10 @@ dependencies:
86
86
  - 1
87
87
  - 5
88
88
  version: 1.1.5
89
- name: css_parser
90
89
  prerelease: false
91
90
  type: :development
92
91
  requirement: *id005
92
+ name: css_parser
93
93
  - !ruby/object:Gem::Dependency
94
94
  version_requirements: &id006 !ruby/object:Gem::Requirement
95
95
  none: false
@@ -102,10 +102,10 @@ dependencies:
102
102
  - 0
103
103
  - 3
104
104
  version: 3.0.3
105
- name: rails
106
105
  prerelease: false
107
106
  type: :development
108
107
  requirement: *id006
108
+ name: rails
109
109
  - !ruby/object:Gem::Dependency
110
110
  version_requirements: &id007 !ruby/object:Gem::Requirement
111
111
  none: false
@@ -117,10 +117,10 @@ dependencies:
117
117
  - 2
118
118
  - 0
119
119
  version: "2.0"
120
- name: test-unit
121
120
  prerelease: false
122
121
  type: :development
123
122
  requirement: *id007
123
+ name: test-unit
124
124
  - !ruby/object:Gem::Dependency
125
125
  version_requirements: &id008 !ruby/object:Gem::Requirement
126
126
  none: false
@@ -133,10 +133,10 @@ dependencies:
133
133
  - 4
134
134
  - 2
135
135
  version: 4.4.2
136
- name: ZenTest
137
136
  prerelease: false
138
137
  type: :development
139
138
  requirement: *id008
139
+ name: ZenTest
140
140
  description: A Railtie that provides an asset management system for css, javascript, and sprites in your Rails applications and engines. ActiveAssets includes two libraries, ActiveExpansions and ActiveSprites. ActiveSprites generates sprites defined by a dsl similar to a route definition. Similarly, ActiveExpansions' dsl creates ActionView::Helpers::AssetTagHelper javascript and stylesheet expansions, and adds additional features
141
141
  email:
142
142
  - sam@wildfireapp.com
@@ -164,6 +164,7 @@ files:
164
164
  - lib/active_assets/active_expansions/expansions.rb
165
165
  - lib/active_assets/active_expansions/javascripts.rb
166
166
  - lib/active_assets/active_expansions/railtie.rb
167
+ - lib/active_assets/active_expansions/reload.rb
167
168
  - lib/active_assets/active_expansions/stylesheets.rb
168
169
  - lib/active_assets/active_expansions/type_inferrable.rb
169
170
  - lib/active_assets/active_sprites.rb
@@ -193,9 +194,12 @@ files:
193
194
  - test/active_assets/active_sprites/sprite_test.rb
194
195
  - test/active_assets/active_sprites/sprites_test.rb
195
196
  - test/autocolor.rb
197
+ - test/fixtures/rails_root/app/controllers/application_controller.rb
196
198
  - test/fixtures/rails_root/config/application.rb
197
199
  - test/fixtures/rails_root/config/assets/assets.rb
198
200
  - test/fixtures/rails_root/config/environment.rb
201
+ - test/fixtures/rails_root/config/new.rb
202
+ - test/fixtures/rails_root/config/routes.rb
199
203
  - test/fixtures/rails_root/config/sprites.rb
200
204
  - test/fixtures/rails_root/public/images/sprite_images/sprite3/1.png
201
205
  - test/fixtures/rails_root/public/images/sprite_images/sprite3/2.png
@@ -253,6 +257,8 @@ files:
253
257
  - test/fixtures/rails_root/public/javascripts/bas/bar.js
254
258
  - test/fixtures/rails_root/public/stylesheets/bar/bas.css
255
259
  - test/fixtures/rails_root/public/stylesheets/bas/bar.css
260
+ - test/fixtures/rails_root/test/functional/application_controller_test.rb
261
+ - test/fixtures/rails_root/test/test_helper.rb
256
262
  - test/helper.rb
257
263
  - test/support/abstract_runner.rb
258
264
  - test/support/rails_helper.rb
@@ -300,9 +306,12 @@ test_files:
300
306
  - test/active_assets/active_sprites/sprite_test.rb
301
307
  - test/active_assets/active_sprites/sprites_test.rb
302
308
  - test/autocolor.rb
309
+ - test/fixtures/rails_root/app/controllers/application_controller.rb
303
310
  - test/fixtures/rails_root/config/application.rb
304
311
  - test/fixtures/rails_root/config/assets/assets.rb
305
312
  - test/fixtures/rails_root/config/environment.rb
313
+ - test/fixtures/rails_root/config/new.rb
314
+ - test/fixtures/rails_root/config/routes.rb
306
315
  - test/fixtures/rails_root/config/sprites.rb
307
316
  - test/fixtures/rails_root/public/images/sprite_images/sprite3/1.png
308
317
  - test/fixtures/rails_root/public/images/sprite_images/sprite3/2.png
@@ -360,6 +369,8 @@ test_files:
360
369
  - test/fixtures/rails_root/public/javascripts/bas/bar.js
361
370
  - test/fixtures/rails_root/public/stylesheets/bar/bas.css
362
371
  - test/fixtures/rails_root/public/stylesheets/bas/bar.css
372
+ - test/fixtures/rails_root/test/functional/application_controller_test.rb
373
+ - test/fixtures/rails_root/test/test_helper.rb
363
374
  - test/helper.rb
364
375
  - test/support/abstract_runner.rb
365
376
  - test/support/rails_helper.rb