japr 0.3.2 → 0.4.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.
@@ -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: []