japr 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 87d28ef23acc5a0f92c4cd7d583b6d2fce8c8704
4
+ data.tar.gz: 5b09118929232fd3f5c18409c702781f67a39d46
5
+ SHA512:
6
+ metadata.gz: 95e903e0e43c4491dcde84b0a463c668e6ec4085523f9064e7e76eabafef913e8c312c5188a1dbb72396595e33f440adb92f85d4aa40a16e5e1b9e265f9ee89b
7
+ data.tar.gz: 81e8bbbc83d1f671906f3c4861c4a16645fac86f54347a51277db7af63ec070606ba35d193d918a4a509472af63e8b0e5fce0be63c2b40a65357b9cdbfc2abe9
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # JAPR (Jekyll Asset Pipeline Reborn)
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/japr.png)](http://badge.fury.io/rb/japr)
4
- [![Build Status](https://secure.travis-ci.org/kitsched/japr.png)](https://travis-ci.org/kitsched/japr)
5
- [![Coverage Status](https://coveralls.io/repos/kitsched/japr/badge.png?branch=master)](https://coveralls.io/r/kitsched/japr?branch=master)
6
- [![Dependency Status](https://gemnasium.com/kitsched/japr.png)](https://gemnasium.com/kitsched/japr)
7
- [![Code Climate](https://codeclimate.com/github/kitsched/japr.png)](https://codeclimate.com/github/kitsched/japr)
4
+ [![Build Status](https://secure.travis-ci.org/janosrusiczki/japr.png)](https://travis-ci.org/janosrusiczki/japr)
5
+ [![Coverage Status](https://coveralls.io/repos/janosrusiczki/japr/badge.png?branch=master)](https://coveralls.io/r/janosrusiczki/japr?branch=master)
6
+ [![Dependency Status](https://gemnasium.com/janosrusiczki/japr.png)](https://gemnasium.com/janosrusiczki/japr)
7
+ [![Code Climate](https://codeclimate.com/github/janosrusiczki/japr.png)](https://codeclimate.com/github/janosrusiczki/japr)
8
8
 
9
9
  JAPR is a powerful asset pipeline that automatically collects, converts and compresses / minifies your site's JavaScript and CSS assets when you compile your [Jekyll](http://jekyllrb.com/) site.
10
10
 
@@ -349,21 +349,21 @@ Setting | Default | Description
349
349
 
350
350
  5. Instead of running the `jekyll` command to compile your site, you should use Octopress' rake commands (e.g. `rake generate`) as outlined [here](http://octopress.org/docs/blogging/).
351
351
 
352
- If you have any difficulties using JAPR with Octopress, please [open an issue](http://github.com/kitsched/japr/issues).
352
+ If you have any difficulties using JAPR with Octopress, please [open an issue](http://github.com/janosrusiczki/japr/issues).
353
353
 
354
354
  ## Contribute
355
355
 
356
- You can contribute to the JAPR by submitting a pull request [via GitHub](https://github.com/kitsched/japr). There are a few areas that need improvement:
356
+ You can contribute to the JAPR by submitting a pull request [via GitHub](https://github.com/janosrusiczki/japr). There are a few areas that need improvement:
357
357
 
358
358
  - __Tests, tests, tests.__ **This project is now almost fully tested.**
359
359
  - __Handle remote assets.__ Right now, JAPR does not provide any way to include remote assets in bundles unless you save them locally before generating your site. Moshen's [Jekyll Asset Bundler](https://github.com/moshen/jekyll-asset_bundler) allows you to include remote assets, which is pretty interesting. That said, it is generally better to keep remote assets separate so that they load asynchronously.
360
360
  - __Successive preprocessing.__ Currently you can only preprocess a file once. It would be better if you could run an asset through multiple preprocessors before it gets compressed and bundled. **As of v0.1.0, JAPR now supports successive preprocessing.**
361
361
 
362
- If you have any ideas or you would like to see anything else improved please use the [issues section](https://github.com/kitsched/japr/issues).
362
+ If you have any ideas or you would like to see anything else improved please use the [issues section](https://github.com/janosrusiczki/japr/issues).
363
363
 
364
364
  ## Community
365
365
 
366
- - Here is a list of [sites that use JAPR](http://github.com/kitsched/japr/wiki/Sites-that-use-JAPR). Feel free to add your site to the list if you want.
366
+ - Here is a list of [sites that use JAPR](http://github.com/janosrusiczki/japr/wiki/Sites-that-use-JAPR). Feel free to add your site to the list if you want.
367
367
 
368
368
  ## Credits
369
369
 
@@ -28,6 +28,7 @@ require 'japr/asset'
28
28
  require 'japr/converter'
29
29
  require 'japr/compressor'
30
30
  require 'japr/template'
31
+ require 'japr/templates/template_helper'
31
32
  require 'japr/templates/javascript_tag_template'
32
33
  require 'japr/templates/css_tag_template'
33
34
  require 'japr/pipeline'
@@ -50,5 +51,5 @@ module JAPR
50
51
  'bundle' => true,
51
52
  'compress' => true,
52
53
  'gzip' => false
53
- }
54
+ }.freeze
54
55
  end
@@ -18,6 +18,13 @@ module JAPR
18
18
  ''
19
19
  end
20
20
 
21
+ # Finds a converter class based on a filename
22
+ def self.klass(filename)
23
+ JAPR::Converter.subclasses.select do |c|
24
+ c.filetype == File.extname(filename).downcase
25
+ end.last
26
+ end
27
+
21
28
  # Logic to convert assets
22
29
  #
23
30
  # Available instance variables:
@@ -12,30 +12,35 @@ module JAPR
12
12
 
13
13
  def render(context)
14
14
  site = context.registers[:site]
15
- config = site.config['asset_pipeline'] || {}
15
+ config = site.config.fetch('asset_pipeline', {})
16
16
 
17
17
  # Run Jekyll Asset Pipeline
18
- pipeline, cached = Pipeline.run(@nodelist.first, @markup.strip,
19
- site.source, site.dest,
20
- self.class.tag_name,
21
- self.class.output_type, config)
22
-
23
- if pipeline.is_a?(Pipeline)
24
- # Prevent Jekyll from cleaning up saved assets if new pipeline
25
- pipeline.assets.each do |asset|
26
- config = JAPR::DEFAULTS.merge(config)
27
- staging_path = File.expand_path(File.join(site.source,
28
- config['staging_path']))
29
- site.static_files << Jekyll::StaticFile.new(site, staging_path,
30
- asset.output_path,
31
- asset.filename)
32
- end unless cached
33
-
34
- # Return HTML tag pointing to asset
35
- return pipeline.html
36
- else
37
- # Return nothing
38
- return nil
18
+ pipeline, cached = run_pipeline(site, config)
19
+
20
+ return nil unless pipeline.is_a?(Pipeline)
21
+
22
+ # Prevent Jekyll from cleaning up saved assets if new pipeline
23
+ preserve_assets(site, config, pipeline) unless cached
24
+
25
+ # Return HTML tag pointing to asset
26
+ pipeline.html
27
+ end
28
+
29
+ private
30
+
31
+ def run_pipeline(site, config)
32
+ Pipeline.run(nodelist.first, @markup.strip, site.source, site.dest,
33
+ self.class.tag_name, self.class.output_type, config)
34
+ end
35
+
36
+ def preserve_assets(site, config, pipeline)
37
+ pipeline.assets.each do |asset|
38
+ config = JAPR::DEFAULTS.merge(config)
39
+ staging_path = File.expand_path(File.join(site.source,
40
+ config['staging_path']))
41
+ site.static_files << Jekyll::StaticFile.new(site, staging_path,
42
+ asset.output_path,
43
+ asset.filename)
39
44
  end
40
45
  end
41
46
  end
@@ -1,11 +1,12 @@
1
1
  module JAPR
2
+ # rubocop:disable ClassLength
2
3
  class Pipeline
3
4
  class << self
4
5
  # Generate hash based on manifest
5
6
  def hash(source, manifest, options = {})
6
7
  options = DEFAULTS.merge(options)
7
8
  begin
8
- Digest::MD5.hexdigest(YAML.load(manifest).map! do |path|
9
+ Digest::MD5.hexdigest(YAML.safe_load(manifest).map! do |path|
9
10
  "#{path}#{File.mtime(File.join(source, path)).to_i}"
10
11
  end.join.concat(options.to_s))
11
12
  rescue Exception => e
@@ -20,32 +21,18 @@ module JAPR
20
21
  hash = hash(source, manifest, config)
21
22
 
22
23
  # Check if pipeline has been cached
23
- if cache.key?(hash)
24
- # Return cached pipeline and cached status
25
- return cache[hash], true
26
- else
27
- begin
28
- puts "Processing '#{tag}' manifest '#{prefix}'"
29
-
30
- # Create and process new pipeline
31
- pipeline = new(manifest, prefix, source, destination, type, config)
32
- pipeline.assets.each do |asset|
33
- puts "Saved '#{asset.filename}' to " \
34
- "'#{destination}/#{asset.output_path}'"
35
- end
36
-
37
- # Add processed pipeline to cache
38
- cache[hash] = pipeline
39
-
40
- # Return newly processed pipeline and cached status
41
- return pipeline, false
42
- rescue Exception => e
43
- # Add exception to cache
44
- cache[hash] = e
45
-
46
- # Re-raise the exception
47
- raise e
48
- end
24
+ return cache[hash], true if cache.key?(hash)
25
+
26
+ begin
27
+ puts "Processing '#{tag}' manifest '#{prefix}'"
28
+ pipeline = new(manifest, prefix, source, destination, type, config)
29
+ process_pipeline(hash, pipeline)
30
+ rescue Exception => e
31
+ # Add exception to cache
32
+ cache[hash] = e
33
+
34
+ # Re-raise the exception
35
+ raise e
49
36
  end
50
37
  end
51
38
 
@@ -64,17 +51,31 @@ module JAPR
64
51
  config = DEFAULTS.merge(config)
65
52
  staging_path = File.join(source, config['staging_path'])
66
53
  FileUtils.rm_rf(staging_path)
67
- rescue Exception => e
68
- puts "Failed to remove staged assets: #{e.message}"
69
-
70
- # Re-raise the exception
71
- raise e
54
+ rescue Exception => e
55
+ puts "Failed to remove staged assets: #{e.message}"
56
+ # Re-raise the exception
57
+ raise e
72
58
  end
73
59
 
74
60
  # Add prefix to output
75
61
  def puts(message)
76
62
  $stdout.puts("Asset Pipeline: #{message}")
77
63
  end
64
+
65
+ private
66
+
67
+ def process_pipeline(hash, pipeline)
68
+ pipeline.assets.each do |asset|
69
+ puts "Saved '#{asset.filename}' to " \
70
+ "'#{pipeline.destination}/#{asset.output_path}'"
71
+ end
72
+
73
+ # Add processed pipeline to cache
74
+ cache[hash] = pipeline
75
+
76
+ # Return newly processed pipeline and cached status
77
+ [pipeline, false]
78
+ end
78
79
  end
79
80
 
80
81
  # Initialize new pipeline
@@ -89,7 +90,7 @@ module JAPR
89
90
  process
90
91
  end
91
92
 
92
- attr_reader :assets, :html
93
+ attr_reader :assets, :html, :destination
93
94
 
94
95
  private
95
96
 
@@ -106,17 +107,17 @@ module JAPR
106
107
 
107
108
  # Collect assets based on manifest
108
109
  def collect
109
- @assets = YAML.load(@manifest).map! do |path|
110
+ @assets = YAML.safe_load(@manifest).map! do |path|
110
111
  full_path = File.join(@source, path)
111
112
  File.open(File.join(@source, path)) do |file|
112
113
  JAPR::Asset.new(file.read, File.basename(path),
113
114
  File.dirname(full_path))
114
115
  end
115
116
  end
116
- rescue Exception => e
117
- puts 'Asset Pipeline: Failed to load assets from provided ' \
118
- "manifest: #{e.message}"
119
- raise e
117
+ rescue Exception => e
118
+ puts 'Asset Pipeline: Failed to load assets from provided ' \
119
+ "manifest: #{e.message}"
120
+ raise e
120
121
  end
121
122
 
122
123
  # Convert assets based on the file extension if converter is defined
@@ -126,36 +127,37 @@ module JAPR
126
127
  finished = false
127
128
  while finished == false
128
129
  # Find a converter to use
129
- klass = JAPR::Converter.subclasses.select do |c|
130
- c.filetype == File.extname(asset.filename).downcase
131
- end.last
130
+ klass = JAPR::Converter.klass(asset.filename)
132
131
 
133
132
  # Convert asset if converter is found
134
133
  if klass.nil?
135
134
  finished = true
136
135
  else
137
- begin
138
- # Convert asset content
139
- converter = klass.new(asset)
140
-
141
- # Replace asset content and filename
142
- asset.content = converter.converted
143
- asset.filename = File.basename(asset.filename, '.*')
144
-
145
- # Add back the output extension if no extension left
146
- if File.extname(asset.filename) == ''
147
- asset.filename = "#{asset.filename}#{@type}"
148
- end
149
- rescue Exception => e
150
- puts "Asset Pipeline: Failed to convert '#{asset.filename}' " \
151
- "with '#{klass}': #{e.message}"
152
- raise e
153
- end
136
+ convert_asset(klass, asset)
154
137
  end
155
138
  end
156
139
  end
157
140
  end
158
141
 
142
+ # Convert an asset with a given converter class
143
+ def convert_asset(klass, asset)
144
+ # Convert asset content
145
+ converter = klass.new(asset)
146
+
147
+ # Replace asset content and filename
148
+ asset.content = converter.converted
149
+ asset.filename = File.basename(asset.filename, '.*')
150
+
151
+ # Add back the output extension if no extension left
152
+ if File.extname(asset.filename) == ''
153
+ asset.filename = "#{asset.filename}#{@type}"
154
+ end
155
+ rescue Exception => e
156
+ puts "Asset Pipeline: Failed to convert '#{asset.filename}' " \
157
+ "with '#{klass}': #{e.message}"
158
+ raise e
159
+ end
160
+
159
161
  # Bundle multiple assets into a single asset
160
162
  def bundle
161
163
  content = @assets.map(&:content).join("\n")
@@ -172,7 +174,7 @@ module JAPR
172
174
  c.filetype == @type
173
175
  end.last
174
176
 
175
- return unless klass
177
+ break unless klass
176
178
 
177
179
  begin
178
180
  asset.content = klass.new(asset.content).compressed
@@ -202,34 +204,35 @@ module JAPR
202
204
 
203
205
  @assets.each do |asset|
204
206
  directory = File.join(@source, staging_path, output_path)
205
- FileUtils.mkpath(directory) unless File.directory?(directory)
206
-
207
- begin
208
- # Save file to disk
209
- File.open(File.join(directory, asset.filename), 'w') do |file|
210
- file.write(asset.content)
211
- end
212
- rescue Exception => e
213
- puts "Asset Pipeline: Failed to save '#{asset.filename}' to " \
214
- "disk: #{e.message}"
215
- raise e
216
- end
207
+ write_asset_file(directory, asset)
217
208
 
218
209
  # Store output path of saved file
219
210
  asset.output_path = output_path
220
211
  end
221
212
  end
222
213
 
214
+ # Write asset file to disk
215
+ def write_asset_file(directory, asset)
216
+ FileUtils.mkpath(directory) unless File.directory?(directory)
217
+ begin
218
+ # Save file to disk
219
+ File.open(File.join(directory, asset.filename), 'w') do |file|
220
+ file.write(asset.content)
221
+ end
222
+ rescue Exception => e
223
+ puts "Asset Pipeline: Failed to save '#{asset.filename}' to " \
224
+ "disk: #{e.message}"
225
+ raise e
226
+ end
227
+ end
228
+
223
229
  # Generate html markup pointing to assets
224
230
  def markup
225
231
  # Use display_path if defined, otherwise use output_path in url
226
232
  display_path = @options['display_path'] || @options['output_path']
227
233
 
228
234
  @html = @assets.map do |asset|
229
- klasses = JAPR::Template.subclasses.select do |t|
230
- t.filetype == File.extname(asset.filename).downcase
231
- end
232
- klass = klasses.sort! { |x, y| x.priority <=> y.priority }.last
235
+ klass = JAPR::Template.klass(asset.filename)
233
236
  html = klass.new(display_path, asset.filename).html unless klass.nil?
234
237
 
235
238
  html
@@ -17,6 +17,14 @@ module JAPR
17
17
  0
18
18
  end
19
19
 
20
+ # Finds a template class based on a filename
21
+ def self.klass(filename)
22
+ klasses = JAPR::Template.subclasses.select do |t|
23
+ t.filetype == File.extname(filename).downcase
24
+ end
25
+ klasses.sort! { |x, y| x.priority <=> y.priority }.last
26
+ end
27
+
20
28
  # HTML output to return
21
29
  #
22
30
  # Available instance variables:
@@ -1,6 +1,8 @@
1
1
  module JAPR
2
2
  # Default output for CSS assets
3
3
  class CssTagTemplate < JAPR::Template
4
+ include JAPR::TemplateHelper
5
+
4
6
  def self.filetype
5
7
  '.css'
6
8
  end
@@ -10,7 +12,8 @@ module JAPR
10
12
  end
11
13
 
12
14
  def html
13
- "<link href='/#{@path}/#{@filename}' rel='stylesheet' type='text/css' />"
15
+ "<link href='#{output_path}/#{@filename}' " \
16
+ "rel='stylesheet' type='text/css' />"
14
17
  end
15
18
  end
16
19
  end
@@ -1,6 +1,8 @@
1
1
  module JAPR
2
2
  # Default output for JavaScript assets
3
3
  class JavaScriptTagTemplate < JAPR::Template
4
+ include JAPR::TemplateHelper
5
+
4
6
  def self.filetype
5
7
  '.js'
6
8
  end
@@ -10,7 +12,8 @@ module JAPR
10
12
  end
11
13
 
12
14
  def html
13
- "<script src='/#{@path}/#{@filename}' type='text/javascript'></script>"
15
+ "<script src='#{output_path}/#{@filename}' " \
16
+ "type='text/javascript'></script>"
14
17
  end
15
18
  end
16
19
  end
@@ -0,0 +1,14 @@
1
+ module JAPR
2
+ module TemplateHelper
3
+ def output_path
4
+ root_path? ? '' : "/#{@path}"
5
+ end
6
+
7
+ def root_path?
8
+ stripped_path = @path.to_s.strip
9
+ stripped_path.nil? ||
10
+ stripped_path.empty? ||
11
+ stripped_path == '/'
12
+ end
13
+ end
14
+ end
@@ -1,3 +1,3 @@
1
1
  module JAPR
2
- VERSION = '0.3.2'
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,130 +1,122 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: japr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Matt Hodan
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-06-08 00:00:00.000000000 Z
11
+ date: 2017-12-03 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: jekyll
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: '2.0'
19
+ version: '3.5'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '2.0'
26
+ version: '3.5'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: liquid
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: '2.4'
33
+ version: '4.0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: '2.4'
40
+ version: '4.0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: rake
42
+ name: minitest
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '10.0'
47
+ version: '5.2'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: '10.0'
54
+ version: '5.2'
62
55
  - !ruby/object:Gem::Dependency
63
- name: minitest
56
+ name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ~>
59
+ - - "~>"
68
60
  - !ruby/object:Gem::Version
69
- version: '5.2'
61
+ version: '10.0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ~>
66
+ - - "~>"
76
67
  - !ruby/object:Gem::Version
77
- version: '5.2'
78
- description: ! " Jekyll Asset Pipeline reborn adds asset preprocessing (CoffeeScript,
79
- Sass,\n Less, ERB, etc.) and asset compression / minification / gzip (Yahoo YUI\n
80
- \ Compressor, Google Closure Compiler, etc.) to Jekyll.'\n"
68
+ version: '10.0'
69
+ description: |2
70
+ Jekyll Asset Pipeline reborn adds asset preprocessing (CoffeeScript, Sass,
71
+ Less, ERB, etc.) and asset compression / minification / gzip (Yahoo YUI
72
+ Compressor, Google Closure Compiler, etc.) to Jekyll.'
81
73
  email: japr@clicktrackheart.com
82
74
  executables: []
83
75
  extensions: []
84
76
  extra_rdoc_files: []
85
77
  files:
78
+ - LICENSE
79
+ - README.md
80
+ - lib/japr.rb
81
+ - lib/japr/asset.rb
86
82
  - lib/japr/compressor.rb
87
83
  - lib/japr/converter.rb
88
- - lib/japr/templates/javascript_tag_template.rb
89
- - lib/japr/templates/css_tag_template.rb
90
- - lib/japr/version.rb
91
- - lib/japr/template.rb
92
- - lib/japr/extensions/liquid/asset_tags/javascript_asset_tag.rb
93
- - lib/japr/extensions/liquid/asset_tags/css_asset_tag.rb
84
+ - lib/japr/extensions/jekyll/site.rb
85
+ - lib/japr/extensions/jekyll/site_extensions.rb
94
86
  - lib/japr/extensions/liquid/asset_tag.rb
87
+ - lib/japr/extensions/liquid/asset_tags/css_asset_tag.rb
88
+ - lib/japr/extensions/liquid/asset_tags/javascript_asset_tag.rb
95
89
  - lib/japr/extensions/liquid/liquid_block_extensions.rb
96
- - lib/japr/extensions/jekyll/site_extensions.rb
97
- - lib/japr/extensions/jekyll/site.rb
98
90
  - lib/japr/extensions/ruby/subclass_tracking.rb
99
91
  - lib/japr/pipeline.rb
100
- - lib/japr/asset.rb
101
- - lib/japr.rb
102
- - LICENSE
103
- - README.md
104
- homepage: https://github.com/kitsched/japr
92
+ - lib/japr/template.rb
93
+ - lib/japr/templates/css_tag_template.rb
94
+ - lib/japr/templates/javascript_tag_template.rb
95
+ - lib/japr/templates/template_helper.rb
96
+ - lib/japr/version.rb
97
+ homepage: https://github.com/janosrusiczki/japr
105
98
  licenses:
106
99
  - MIT
100
+ metadata: {}
107
101
  post_install_message:
108
102
  rdoc_options: []
109
103
  require_paths:
110
104
  - lib
111
105
  required_ruby_version: !ruby/object:Gem::Requirement
112
- none: false
113
106
  requirements:
114
- - - ! '>='
107
+ - - ">="
115
108
  - !ruby/object:Gem::Version
116
- version: 1.9.3
109
+ version: 2.2.0
117
110
  required_rubygems_version: !ruby/object:Gem::Requirement
118
- none: false
119
111
  requirements:
120
- - - ! '>='
112
+ - - ">="
121
113
  - !ruby/object:Gem::Version
122
114
  version: '0'
123
115
  requirements: []
124
116
  rubyforge_project:
125
- rubygems_version: 1.8.24
117
+ rubygems_version: 2.6.14
126
118
  signing_key:
127
- specification_version: 3
119
+ specification_version: 4
128
120
  summary: A powerful asset pipeline for Jekyll that bundles, converts, and minifies
129
121
  CSS and JavaScript assets.
130
122
  test_files: []