condenser-rails 0.0.7 → 0.0.8

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
  SHA256:
3
- metadata.gz: cbfbac2077b8f13f5a08ab9fff144495ee2ef3f76ea092ba230e8400bd2a7ef6
4
- data.tar.gz: d2bf8e75d7c1dac414cf6a00de690d1be3b3e3259d1142c2eb157ba8752122ff
3
+ metadata.gz: baa099c52f0a3c21933bed508e7b912d8dfa2314ba57d3f8ee790a01f9608aa3
4
+ data.tar.gz: ed5e75bf4e37f04d67e379dd43c5c50c9db1004712071cdc291eb2082abe6eeb
5
5
  SHA512:
6
- metadata.gz: cded87c625d07addcc40e13b368509d269433d918d2fb6d029a713ecdd5f4417a362698e6a166b9d140d5062000270e2496ac1c04d5f3962753147c5d67db531
7
- data.tar.gz: e4d865e2b28063a24f1b0e7a11b223584bc480cb95936221ef741663788b7c8bc2ce45c6980845f7b3f4bad154b6215575f42eb8a52ebe1bb3bde9d129a4f827
6
+ metadata.gz: 0d8257facbf89af90fce66fff188cace024aeddb15949ee11d49b52c7c9c7562e6c3801b3f6772e7c0783fe1d3b4d75e95fd6ef461571a19e395fbfe44a0ae4d
7
+ data.tar.gz: 1f8646f667ebfbfc502d461b50d55fbac34a97e1f7194e4d08e08a04572c94e29957af05a497cfca4aec982f0852ebf301b6009d44299b643263ed891e73644a
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2019 Jon Bracy
3
+ Copyright (c) 2020 Jon Bracy
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,2 +1,116 @@
1
- # condenser-rails
2
- Condenser integration for Rails
1
+
2
+ # Condenser Rails
3
+
4
+ Provides Condenser integration for the Rails Asset Pipeline.
5
+
6
+ ## Installation
7
+
8
+ ``` ruby
9
+ gem 'condenser-rails'
10
+ ```
11
+
12
+ Or alternatively `require 'condenser/railtie'` in your `config/application.rb` if you have Bundler auto-require disabled.
13
+
14
+ ## Usage
15
+
16
+
17
+ ### Rake task
18
+
19
+ **`rake assets:precompile`**
20
+
21
+ Deployment task that compiles any assets listed in `config.assets.precompile` to `public/assets`.
22
+
23
+ **`rake assets:clean`**
24
+
25
+ Only removes old assets (keeps the most recent 3 copies) from `public/assets`. Useful when doing rolling deploys that may still be serving old assets while the new ones are being compiled.
26
+
27
+ **`rake assets:clobber`**
28
+
29
+ Nuke `public/assets` and remove `config/manifest.json`.
30
+
31
+ #### Customize
32
+
33
+ If the basic tasks don't do all that you need, it's straight forward to redefine them and replace them with something more specific to your app.
34
+
35
+ You can also redefine the task with the built in task generator.
36
+
37
+ ``` ruby
38
+ require 'condenser/rails/task'
39
+ Condenser::Rails::Task.new(Rails.application) do |t|
40
+ t.environment = lambda { Rails.application.assets }
41
+ t.assets = %w( application.js application.css )
42
+ t.keep = 5
43
+ end
44
+ ```
45
+
46
+ Each asset task will invoke `assets:environment` first. By default this loads the Rails environment. You can override this task to add or remove dependencies for your specific compilation environment.
47
+
48
+ Also see [Condenser::Rails::Task](https://github.com/rails/condenser-rails/blob/master/lib/sprockets/rails/task.rb) and [Rake::CondenserTask](https://github.com/rails/condenser/blob/master/lib/rake/condensertask.rb).
49
+
50
+ ### Initializer options
51
+
52
+ **`config.assets.precompile`**
53
+
54
+ Add additional assets to compile on deploy. Defaults to `application.js`, `application.css` and any `.jpg`, `.png`, or `.gif` files under `app/assets`.
55
+
56
+ **`config.assets.path`**
57
+
58
+ Add additional load paths to this Array. Rails includes `app/assets`, `lib/assets` and `vendor/assets` for you already. Plugins might want to add their custom paths to this.
59
+
60
+ **`config.assets.quiet`**
61
+
62
+ Suppresses logger output for asset requests. Uses the `config.assets.prefix` path to match asset requests. Defaults to `false`.
63
+
64
+ **`config.assets.prefix`**
65
+
66
+ Defaults to `/assets`. Changes the directory to compile assets to.
67
+
68
+ **`config.assets.compile`**
69
+
70
+ Enables the Condenser compile environment. If disabled, `Rails.application.assets` will be `nil` to prevent inadvertent compilation calls. View helpers will depend on assets being precompiled to `public/assets` in order to link to them. Initializers expecting `Rails.application.assets` during boot should be accessing the environment in a `config.assets.configure` block. See below.
71
+
72
+ **`config.assets.configure`**
73
+
74
+ Invokes block with environment when the environment is initialized. Allows direct access to the environment instance and lets you lazily load libraries only needed for asset compiling.
75
+
76
+ ``` ruby
77
+ config.assets.configure do |env|
78
+ env.js_compressor = :uglifier
79
+ env.css_compressor = :sass
80
+
81
+ require 'my_processor'
82
+ env.register_preprocessor 'application/javascript', MyProcessor
83
+
84
+ env.logger = Rails.logger
85
+ end
86
+ ```
87
+
88
+ **`config.assets.check_precompiled_asset`**
89
+
90
+ When enabled, an exception is raised for missing assets. This option is enabled by default.
91
+
92
+ ## Complementary plugins
93
+
94
+ The following plugins provide some extras for the Sprockets Asset Pipeline.
95
+
96
+ * [sass-rails](https://github.com/rails/sass-rails)
97
+
98
+ **NOTE** That these plugins are optional. The core coffee-script, sass, less, uglify, (and many more) features are built into Sprockets itself. Many of these plugins only provide generators and extra helpers. You can probably get by without them.
99
+
100
+
101
+ ## Other
102
+
103
+ ### [SRI](http://www.w3.org/TR/SRI/) support
104
+
105
+ Condenser adds support for subresource integrity checks. The spec is still evolving and the API may change in backwards incompatible ways.
106
+
107
+ ``` ruby
108
+ javascript_include_tag :application, integrity: true
109
+ # => "<script src="/assets/application.js" integrity="sha256-TvVUHzSfftWg1rcfL6TIJ0XKEGrgLyEq6lEpcmrG9qs="></script>"
110
+ ```
111
+
112
+ Note that condenser-rails only adds integrity hashes to assets when served in a secure context (over an HTTPS connection or localhost).
113
+
114
+ ## License
115
+
116
+ Condenser Rails is released under the [MIT License](MIT-LICENSE).
@@ -1,5 +1,5 @@
1
1
  class Condenser
2
2
  module Rails
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
@@ -68,7 +68,8 @@ class Condenser::Railtie < ::Rails::Railtie
68
68
  config.assets.precompile = %w(application.css application.js **/*.jpg **/*.png **/*.gif)
69
69
  config.assets.prefix = "/assets"
70
70
  config.assets.quiet = false
71
-
71
+ config.assets.manifest = 'config/manifest.json'
72
+
72
73
  # initializer :quiet_assets do |app|
73
74
  # if app.config.assets.quiet
74
75
  # app.middleware.insert_before ::Rails::Rack::Logger, ::Condenser::Rails::QuietAssets
@@ -78,7 +79,7 @@ class Condenser::Railtie < ::Rails::Railtie
78
79
  # config.assets.version = ""
79
80
  config.assets.compile = true
80
81
  config.assets.digest = true
81
- config.assets.cache_limit = 50.megabytes
82
+ config.assets.cache_limit = 100.megabytes
82
83
  config.assets.compressors = [:zlib]
83
84
 
84
85
  config.assets.configure do |app, env|
@@ -158,22 +159,14 @@ class Condenser::Railtie < ::Rails::Railtie
158
159
  env.register_preprocessor 'application/javascript', Condenser::BabelProcessor
159
160
  env.register_exporter 'application/javascript', Condenser::RollupProcessor
160
161
 
161
- env.register_minifier 'application/javascript', resolve_minifier(config.assets.js_minifier)
162
- env.register_minifier 'text/css', resolve_minifier(config.assets.css_minifier)
162
+ env.register_minifier 'application/javascript', resolve_minifier(config.assets.js_minifier) if config.assets.js_minifier
163
+ env.register_minifier 'text/css', resolve_minifier(config.assets.css_minifier) if config.assets.css_minifier
163
164
 
164
165
  env.register_writer Condenser::FileWriter.new
165
166
  config.assets.compressors&.each do |writer|
166
167
  env.register_writer resolve_writer(writer)
167
168
  end
168
169
 
169
- # No more configuration changes at this point.
170
- # With cache classes on, Sprockets won't check the FS when files
171
- # change. Preferable in production when the FS only changes on
172
- # deploys when the app restarts.
173
- if config.cache_classes
174
- env = env.cached
175
- end
176
-
177
170
  env
178
171
  end
179
172
 
@@ -181,16 +174,15 @@ class Condenser::Railtie < ::Rails::Railtie
181
174
  config = app.config
182
175
 
183
176
  path = File.join(config.paths['public'].first, config.assets.prefix)
184
- Condenser::Manifest.new(app.assets, path, config.assets.manifest || app.root.join('config', 'assets.json'))
177
+ Condenser::Manifest.new(app.assets, path, config.assets.manifest)
185
178
  end
186
179
 
187
180
  config.after_initialize do |app|
188
181
  config = app.config
189
182
 
190
183
  if config.assets.compile
191
- config.assets.precompile
192
- require 'condenser/server'
193
184
  app.assets = self.build_environment(app, true)
185
+ require 'condenser/server'
194
186
  app.routes.prepend do
195
187
  mount Condenser::Server.new(app.assets, logger: Rails.logger) => config.assets.prefix
196
188
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: condenser-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Bracy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-05 00:00:00.000000000 Z
11
+ date: 2020-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: condenser