sinatra-asset-pipeline 0.7.0 → 1.0.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: fb7570689dc1ac35fd9c35ccce99f95b14ce4de1
4
- data.tar.gz: 32071fd8865f7d141243413dd0af9d8a1da751d4
3
+ metadata.gz: 67c14af31acb5da1a991e3285ec7c2d061c7c1ca
4
+ data.tar.gz: d6f476d835ab2cd9f56fed6ece5d878046409163
5
5
  SHA512:
6
- metadata.gz: ec11ea6526ef93f640cca3d622b4450356e7557f9449ff0fcd28c1504008039098e957badedc7fc867cb280abb01179fd9ef7d0132dcd8f3e5a883620faee01b
7
- data.tar.gz: 810030b86d659c3672030d8c903cf074cb10408ce405a7371a43aeeb69c144e6b8b3bf409ff8b6bef3ca1cdffc6324aa8fac4b480f1634dd54d71ce93ee73b41
6
+ metadata.gz: 8b283cb132aca67a3742b9733db31a0875fe2136b226c8e668dba6141c2e6f941d88345aeb37a8edfccfaccc63d29a2853deee873b83e914a6c2a384b7ce1bbf
7
+ data.tar.gz: 20121e1bb86b608eb517077c8932a53ccbc12dd62e3e0cced02a187989551808e169280128c587dd9063dd0542394555ebfb858c0af8b8e61dab0d8e1d054c3a
data/README.md CHANGED
@@ -1,19 +1,25 @@
1
1
  Sinatra Asset Pipeline [![Build Status](https://travis-ci.org/kalasjocke/sinatra-asset-pipeline.svg?branch=master)](https://travis-ci.org/kalasjocke/sinatra-asset-pipeline)
2
2
  ======================
3
3
 
4
- An asset pipeline implementation for Sinatra based on [Sprockets](https://github.com/sstephenson/sprockets) with support for CoffeeScript, SASS, SCSS, LESS, ERB as well as CSS (SASS, YUI) and JavaScript (uglifier, YUI, Closure) minification.
5
-
6
- sinatra-asset-pipeline supports both compiling assets on the fly for development as well as precompiling assets for production.
4
+ An asset pipeline implementation for Sinatra based on [Sprockets](https://github.com/rails/sprockets). sinatra-asset-pipeline supports both compiling assets on the fly for development as well as precompiling assets for production. The design goal for sinatra-asset-pipeline is to provide good defaults for integrating your Sinatra application with Sprockets.
7
5
 
8
6
  # Installation
9
7
 
10
- Include sinatra-asset-pipeline in your project's Gemfile:
8
+ Install Sinatra Asset Pipeline from RubyGems:
9
+
10
+ ```bash
11
+ gem install sinatra-asset-pipeline
12
+ ```
13
+
14
+ Or, include it in your project's `Gemfile`:
11
15
 
12
16
  ```ruby
13
- gem 'sinatra-asset-pipeline'
17
+ gem 'sinatra-asset-pipeline', '~> 1.0'
14
18
  ```
15
19
 
16
- Make sure to add the sinatra-asset-pipeline Rake task in your applications `Rakefile`:
20
+ # Usage
21
+
22
+ Add the provided Rake tasks to your applications `Rakefile`:
17
23
 
18
24
  ```ruby
19
25
  require 'sinatra/asset_pipeline/task'
@@ -22,38 +28,36 @@ require './app'
22
28
  Sinatra::AssetPipeline::Task.define! App
23
29
  ```
24
30
 
25
- If your application runs Sinatra in classic style you can define your Rake task as follows:
31
+ This makes your application serve assets inside `assets` folder under the public `/assets` path. You can use the helpers provided by [sprocket-helpers](https://github.com/petebrowne/sprockets-helpers) inside your assets to ease locating your assets.
26
32
 
27
- ```ruby
28
- Sinatra::AssetPipeline::Task.define! Sinatra::Application
29
- ```
30
-
31
- Now, when everything is in place you can precompile assets located in `assets/<asset-type>` with:
33
+ During deployment of your application you can use `precompile` rake task to precompile your assets to serve them as static files from your applications public folder.
32
34
 
33
35
  ```bash
34
- $ RACK_ENV=production rake assets:precompile
36
+ RACK_ENV=production rake assets:precompile
35
37
  ```
36
38
 
37
- And remove old compiled assets with:
39
+ To leverage the Sprockets preprocessor pipeline inside your app you can use the `assets_js_compressor` and `assets_css_compressor` settings respectively. See the [Using Processors](https://github.com/rails/sprockets#using-processors) section of the Sprockets readme for details.
38
40
 
39
- ```bash
40
- $ RACK_ENV=production rake assets:clean
41
+ ## Classic style
42
+
43
+ If your application runs Sinatra in classic style you can define your Rake tasks as follows:
44
+
45
+ ```ruby
46
+ Sinatra::AssetPipeline::Task.define! Sinatra::Application
41
47
  ```
42
48
 
43
- # Example
49
+ # Customization
44
50
 
45
51
  In its most simple form, you just register the `Sinatra::AssetPipeline` Sinatra extension within your application:
46
52
 
47
53
  ```ruby
48
- Bundler.require
49
-
50
54
  require 'sinatra/asset_pipeline'
51
55
 
52
56
  class App < Sinatra::Base
53
57
  register Sinatra::AssetPipeline
54
58
 
55
59
  get '/' do
56
- haml :index
60
+ 'hi'
57
61
  end
58
62
  end
59
63
  ```
@@ -61,20 +65,21 @@ end
61
65
  However, if your application doesn't follow the defaults you can customize it as follows:
62
66
 
63
67
  ```ruby
64
- Bundler.require
65
-
66
68
  require 'sinatra/asset_pipeline'
67
69
 
68
70
  class App < Sinatra::Base
69
71
  # Include these files when precompiling assets
70
- set :assets_precompile, %w(app.js app.css *.png *.jpg *.svg *.eot *.ttf *.woff)
72
+ set :assets_precompile, %w(app.js app.css *.png *.jpg *.svg *.eot *.ttf *.woff *.woff2)
71
73
 
72
- # Logical paths to your assets
73
- set :assets_prefix, %w(assets vendor/assets)
74
+ # The path to your assets
75
+ set :assets_paths, %w(assets)
74
76
 
75
77
  # Use another host for serving assets
76
78
  set :assets_host, '<id>.cloudfront.net'
77
79
 
80
+ # Which prefix to serve the assets under
81
+ set :assets_prefix, 'custom-prefix'
82
+
78
83
  # Serve assets using this protocol (http, :https, :relative)
79
84
  set :assets_protocol, :http
80
85
 
@@ -84,53 +89,11 @@ class App < Sinatra::Base
84
89
  # JavaScript minification
85
90
  set :assets_js_compressor, :uglifier
86
91
 
87
- # Register the AssetPipeline extention, make sure this goes after all customization
92
+ # Register the AssetPipeline extension, make sure this goes after all customization
88
93
  register Sinatra::AssetPipeline
89
94
 
90
95
  get '/' do
91
- haml :index
96
+ 'hi'
92
97
  end
93
98
  end
94
99
  ```
95
-
96
- Now when everything is in place you can use all helpers provided by [sprockets-helpers](https://github.com/petebrowne/sprockets-helpers), an example:
97
-
98
- ```scss
99
- body {
100
- background-image: image-url('cat.png');
101
- }
102
- ```
103
-
104
- Note that you don't need to require [sprockets-helpers](https://github.com/petebrowne/sprockets-helpers) inside your code to leverage the functionallity given to you by the integration, sinatra-asset-pipeline handles that for you.
105
-
106
- ### CSS and JavaScript minification
107
-
108
- If you would like to use CSS and/or JavaScript minification make sure to require the needed gems in your `Gemfile`:
109
-
110
- <table>
111
- <tr>
112
- <th>Minifier</th>
113
- <th>Gem</th>
114
- </tr>
115
- <tr>
116
- <td>:sass</td>
117
- <td>sass</td>
118
- </tr>
119
- <tr>
120
- <td>:closure</td>
121
- <td>closure-compiler</td>
122
- </tr>
123
- <tr>
124
- <td>:uglifier</td>
125
- <td>uglifier</td>
126
- </tr>
127
- <tr>
128
- <td>:yui</td>
129
- <td>yui-compressor</td>
130
- </tr>
131
- </table>
132
-
133
- ### Compass integration
134
-
135
- Given that we're using [sprockets-sass](https://github.com/petebrowne/sprockets-sass) under the hood we have out of the box support for [compass](https://github.com/chriseppstein/compass). Just include the compass gem in your `Gemfile` and include the compass mixins in your `app.css.scss` file.
136
-
@@ -1,43 +1,41 @@
1
1
  require 'sprockets'
2
- require 'sprockets-sass'
3
2
  require 'sprockets-helpers'
4
3
 
5
4
  module Sinatra
6
5
  module AssetPipeline
7
6
  def self.registered(app)
8
7
  app.set_default :sprockets, Sprockets::Environment.new
9
- app.set_default :assets_precompile, %w(app.js app.css *.png *.jpg *.svg *.eot *.ttf *.woff)
10
- app.set_default :assets_prefix, %w(assets vendor/assets)
11
- app.set_default :assets_path, -> { File.join(public_folder, "assets") }
8
+ app.set_default :assets_paths, %w(assets)
9
+ app.set_default :assets_precompile, %w(app.js app.css *.png *.jpg *.svg *.eot *.ttf *.woff *.woff2)
10
+ app.set_default :assets_public_path, -> { File.join(public_folder, "assets") }
12
11
  app.set_default :assets_protocol, :http
13
12
  app.set_default :assets_css_compressor, nil
14
13
  app.set_default :assets_js_compressor, nil
15
14
  app.set_default :assets_host, nil
15
+ app.set_default :assets_prefix, '/assets'
16
16
  app.set_default :assets_digest, true
17
17
  app.set_default :assets_debug, false
18
- app.set_default :path_prefix, nil
19
18
 
20
19
  app.set :static, :true
21
20
  app.set :static_cache_control, [:public, :max_age => 60 * 60 * 24 * 365]
22
21
 
23
22
  app.configure do
24
- app.assets_prefix.each do |prefix|
25
- paths = Dir[File.join(app.root, prefix, '*')]
26
- paths.each { |path| app.sprockets.append_path path }
23
+ app.assets_paths.each do |path|
24
+ app.sprockets.append_path File.join(app.root, path)
27
25
  end
28
26
 
29
27
  Sprockets::Helpers.configure do |config|
30
28
  config.environment = app.sprockets
31
29
  config.digest = app.assets_digest
32
- config.prefix = app.path_prefix unless app.path_prefix.nil?
30
+ config.prefix = app.assets_prefix unless app.assets_prefix.nil?
33
31
  config.debug = app.assets_debug
34
32
  end
35
33
  end
36
34
 
37
35
  app.configure :staging, :production do
38
36
  Sprockets::Helpers.configure do |config|
39
- config.manifest = Sprockets::Manifest.new(app.sprockets, app.assets_path)
40
- config.prefix = app.path_prefix unless app.path_prefix.nil?
37
+ config.manifest = Sprockets::Manifest.new(app.sprockets, app.assets_public_path)
38
+ config.prefix = app.assets_prefix unless app.assets_prefix.nil?
41
39
  end
42
40
  end
43
41
 
@@ -48,14 +46,14 @@ module Sinatra
48
46
  Sprockets::Helpers.configure do |config|
49
47
  config.protocol = app.assets_protocol
50
48
  config.asset_host = app.assets_host unless app.assets_host.nil?
51
- config.prefix = app.path_prefix unless app.path_prefix.nil?
49
+ config.prefix = app.assets_prefix unless app.assets_prefix.nil?
52
50
  end
53
51
  end
54
52
 
55
53
  app.helpers Sprockets::Helpers
56
54
 
57
55
  app.configure :test, :development do
58
- app.get "#{Sprockets::Helpers.prefix}/*" do |path|
56
+ app.get "#{app.assets_prefix}/*" do |path|
59
57
  env_sprockets = request.env.dup
60
58
  env_sprockets['PATH_INFO'] = path
61
59
  settings.sprockets.call env_sprockets
@@ -10,13 +10,13 @@ module Sinatra
10
10
  desc "Precompile assets"
11
11
  task :precompile do
12
12
  environment = app_klass.sprockets
13
- manifest = Sprockets::Manifest.new(environment.index, app_klass.assets_path)
13
+ manifest = Sprockets::Manifest.new(environment.index, app_klass.assets_public_path)
14
14
  manifest.compile(app_klass.assets_precompile)
15
15
  end
16
16
 
17
17
  desc "Clean assets"
18
18
  task :clean do
19
- FileUtils.rm_rf(app_klass.assets_path)
19
+ FileUtils.rm_rf(app_klass.assets_public_path)
20
20
  end
21
21
  end
22
22
  end
@@ -1,5 +1,5 @@
1
1
  module Sinatra
2
2
  module AssetPipeline
3
- VERSION = '0.7.0'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-asset-pipeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joakim Ekberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-08 00:00:00.000000000 Z
11
+ date: 2016-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '10.0'
19
+ version: '11.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '10.0'
26
+ version: '11.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,56 +44,42 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
47
+ version: '3.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.1'
54
+ version: '3.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: coffee-script
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.3'
61
+ version: '2.4'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.3'
68
+ version: '2.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sprockets
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.12'
75
+ version: '3.6'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.12'
83
- - !ruby/object:Gem::Dependency
84
- name: sprockets-sass
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.2'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.2'
82
+ version: '3.6'
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: sprockets-helpers
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +100,14 @@ dependencies:
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '3.1'
103
+ version: '3.5'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '3.1'
110
+ version: '3.5'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: rack-test
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -168,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
154
  version: '0'
169
155
  requirements: []
170
156
  rubyforge_project:
171
- rubygems_version: 2.4.1
157
+ rubygems_version: 2.6.2
172
158
  signing_key:
173
159
  specification_version: 4
174
160
  summary: An asset pipeline implementation for Sinatra.