assets_live_compile 0.1.2 → 0.2.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: f2e7397a2ff1622baff6714c2e257445824918ed
4
- data.tar.gz: 77b43f8254298fadd7600a47df92ddab2b42f924
3
+ metadata.gz: 7d95961ea4f5f654297c681787f51f8d9d5a1f62
4
+ data.tar.gz: d1dae004759ca1a837e5598d426b30b6bcfcf3ba
5
5
  SHA512:
6
- metadata.gz: dc831a411c19750a542fa2f31809fe200814580338c66696081e3090d451c3da8fae58a10ae02cbcf5627354527cc1c83c80a6a01b1006dbce657ced9eac60e8
7
- data.tar.gz: 59c470cf38d407e039d519d3c8ae7ca569758261928ba67c2d06126e5b1c4493b121ea0b237f614af46f51dd03ae22056005b7dfa2a1e36082fcf69f113394c6
6
+ metadata.gz: fd0254b974221ca2f8a366309b3feee61aefdaf96a82458dfd7d1488a74a67c4dd4c93440c2705ddd8cbebc2c8f54b3798337e70ee0d281a08272f6c858637fc
7
+ data.tar.gz: 7908f11e3402a70b92d5b9c3d40af37d07de2f415d99e53025f3e1ef2f71e254f9ae02d6f306eaa9c86973815ba9fb31179804cdb2925f6e86484cb6b2b46d4d
data/README.md CHANGED
@@ -1,16 +1,40 @@
1
1
  assets_live_compile
2
- =========================
2
+ ===================
3
3
  Compile and save assets on demand instead of using `rake assets:precompile`
4
4
 
5
- This works just like `rake assets:precompile` but is triggered on the asset HTTP request, so the cost of compilation is due to the first asset request. Next time Nginx will find the static asset on `public/assets`.
5
+ This works just like `rake assets:precompile` but is triggered on the asset HTTP request, so the cost of compilation is due to the first asset request.
6
+
7
+ `assets_live_compile` will save the file on `public/assets`, exactly how `rake assets:precompile` would do. Next time Nginx will find the static asset there and the Rails app won't be reached.
6
8
 
7
9
  Compile your assets by doing a warm up request :)
8
10
 
9
11
  Configuration
10
12
  -------------
13
+ Add it to your Gemfile:
14
+ ```ruby
15
+ group :assets do
16
+ gem 'assets_live_compile'
17
+ ...
18
+ end
19
+ ```
20
+
21
+ On `config/application.rb`, load the `:assets` group of the `Gemfile`:
22
+ ```ruby
23
+ Bundler.require :default, :assets, Rails.env
24
+ ```
11
25
 
12
- config.assets.serve_static_assets = true
13
- config.assets.compile = true
14
- config.assets.cache_store = :assets_live_compile_store
26
+ Then configure `config/environments/production.rb`,
15
27
 
28
+ On Rails 4:
29
+ ```ruby
30
+ config.assets.serve_static_assets = true
31
+ config.assets.configure do |env|
32
+ env.cache = Sprockets::Cache::AssetsLiveCompileStore.new
33
+ end
34
+ ```
16
35
 
36
+ On Rails 3:
37
+ ```ruby
38
+ config.assets.serve_static_assets = true
39
+ config.assets.cache_store = :assets_live_compile_store
40
+ ```
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "assets_live_compile"
5
5
  s.license = "LGPL-3.0"
6
- s.version = '0.1.2'
6
+ s.version = '0.2.0'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Braulio Bhavamitra"]
9
9
  s.email = ["brauliobo@gmail.com"]
@@ -1,18 +1,24 @@
1
- require 'active_support/cache'
2
1
 
3
- module ActiveSupport
4
- module Cache
5
- autoload :AssetsLiveCompileStore, 'active_support/cache/assets_live_compile_store'
2
+ if Rails::VERSION::STRING > '4.0.0'
3
+ require 'sprockets/cache/assets_live_compile_store'
4
+ else
5
+ require 'active_support/cache'
6
+ require 'active_support/cache/assets_live_compile_store'
6
7
 
7
- class Entry
8
- attr_accessor :original_value
8
+ module ActiveSupport
9
+ module Cache
10
+ autoload :AssetsLiveCompileStore, 'active_support/cache/assets_live_compile_store'
9
11
 
10
- def initialize_with_original_value value, options = {}
11
- @original_value = value
12
- initialize_without_original_value value, options
13
- end
14
- alias_method_chain :initialize, :original_value
12
+ class Entry
13
+ attr_accessor :original_value
14
+
15
+ def initialize_with_original_value value, options = {}
16
+ @original_value = value
17
+ initialize_without_original_value value, options
18
+ end
19
+ alias_method_chain :initialize, :original_value
15
20
 
21
+ end
16
22
  end
17
23
  end
18
24
  end
@@ -0,0 +1,26 @@
1
+ require 'sprockets/cache/file_store'
2
+
3
+ module Sprockets
4
+ class Cache
5
+ class AssetsLiveCompileStore
6
+
7
+ def initialize options = {}
8
+ @root = "#{::Rails.root}/public/assets"
9
+ end
10
+
11
+ def get key
12
+ # no-op, maybe warn to serve it statically
13
+ end
14
+
15
+ def set key, attributes
16
+ return unless attributes.is_a? Hash and (logical_path = attributes[:logical_path]).present?
17
+ return if logical_path.index '.self.' and !::Rails.application.config.assets.debug
18
+ asset = Sprockets::Asset.new nil, attributes
19
+ path = File.join @root, asset.digest_path.strip
20
+ FileUtils.mkdir_p File.dirname(path)
21
+ File.open(path, 'wb'){ |f| f.write asset.source }
22
+ end
23
+
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assets_live_compile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Braulio Bhavamitra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-30 00:00:00.000000000 Z
11
+ date: 2015-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -51,6 +51,7 @@ files:
51
51
  - assets_live_compile.gemspec
52
52
  - lib/active_support/cache/assets_live_compile_store.rb
53
53
  - lib/assets_live_compile.rb
54
+ - lib/sprockets/cache/assets_live_compile_store.rb
54
55
  homepage: http://github.com/coletivoEITA/assets_live_compile
55
56
  licenses:
56
57
  - LGPL-3.0
@@ -71,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
72
  version: '0'
72
73
  requirements: []
73
74
  rubyforge_project:
74
- rubygems_version: 2.4.6
75
+ rubygems_version: 2.4.5.1
75
76
  signing_key:
76
77
  specification_version: 4
77
78
  summary: Compile and save assets on demand instead of using rake assets:precompile