embeddable_asset 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b5120c3314583be75281cc62054f77f76bbea5d7
4
+ data.tar.gz: 69606f45626053b2a0d7ef94888817f18af7ceef
5
+ SHA512:
6
+ metadata.gz: c2e2a2dbe43db7025eed4a74e9cb1e8d2f1423fcf8cee93300c5aad30c84c85cc31a45ca4afcf64aadb007b49dc53afaaba95e84112bdd3538e0621bd8f01e82
7
+ data.tar.gz: e070c7736526f2c4c6e6e7c88d2ee113460eb15dff552f60b3f9b91fb7bbe85bec9b84e43577899d31391f02512067505bc646340c553adf2b784d64a0f8ca60
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ .DS_Store
11
+ public/assets/application-52db830a003d76c5163da6d690b3ac62761c513e294a93423ccf8c559af41422.js
12
+ public/assets/balls-1d82a2d4da0d21ed2882c4837bce5b0441ff2c4b77e2e4ee2ee42441b623d148.jpg
13
+ public/assets/dog-d5dff91846dc9416d270582a3e16a071b42528e9325378fad6a268567c2e477c.jpg
14
+ public/assets/duck-e5ff3efc549760da99a32215af55003c2358d7cb2f2b69464becfcf677362b84.jpg
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-2.3.0
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.0
4
+ before_install: gem install bundler -v 1.11.2
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in embeddable_asset.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 John McCormack
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,163 @@
1
+ # EmbeddableAsset Gem
2
+ - Supports Rails 3 and 4
3
+ - Supports both Sass and CSS
4
+ - Dynamically embed your assets into your Stylesheets
5
+ - Generate Stylesheets completely indepedent of external assets!
6
+
7
+
8
+ This is a simple gem that makes embedding your assets directly in your CSS very easy!
9
+ The goal is to generate stylesheets completely independent of all external asset resources.
10
+ This is achieved through CSS data-uri (i.e. encoding an asset's data directly into the file in base64).
11
+ This gem packages up some already existing Rails helpers meant for generating data-uris via the asset pipeline.
12
+ On top of those rails helpers is a wrapper that allows for conditionally embedding or not embedding (unembedding) your assets via Rake tasks.
13
+ In otherwords, precompile assets as normal, unless you specifically want them to be embedded. Hence the duality of the gem name "Embeddable",
14
+ denoting that a given asset may or may not be embedded depending on how you run it.
15
+
16
+
17
+ ## Why would I use this?
18
+ Most of the time you want the rails asset pipeline to behave normally when deploying to production (i.e. linking to assets instead of embedding them).
19
+ However there are situations when you might want to package your stylesheet and the external assets it links to (like images, fonts, etc.) into
20
+ a single application.css file that does not have any dependencies. For example, if you want to have a completely static "down page"
21
+ that is served by a proxy in the event your main production server goes down, you might want to serve a single static html file that has all of the
22
+ styles, JS, images, fonts, etc. embedded inside of it. Yes, the embedding makes the file size signigicantly larger, however you would only use this for
23
+ special situations like this. Another usage example, might be a simple and convienant way to package up a page you are building or want to show someone non-technical.
24
+ You could simply compile that page into a single file, assets and all, and send it in an email. Then the receiver doesn't need a server or a bunch of files to make it work.
25
+ They can simply open a single file in their browser and interact with it.
26
+
27
+
28
+
29
+ ## Installation (STEP 1/3)
30
+
31
+ Add this line to your application's Gemfile:
32
+
33
+ ```ruby
34
+ gem 'embeddable_asset'
35
+ ```
36
+
37
+ And then execute:
38
+
39
+ $ bundle
40
+
41
+ ## Using the embeddable helpers (STEP 2/3)
42
+ **Specify which assets should be embedded**
43
+
44
+ #### Via CSS
45
+ You must use the *css.erb extension in files you wish to use the helpers in:
46
+
47
+ ```css
48
+ @font-face {
49
+ font-family: myFirstFont;
50
+ src: <%= embeddable_asset('chopin_script.ttf') %>;
51
+ }
52
+
53
+ h2 {
54
+ font-family: myFirstFont;
55
+ padding: 12px;
56
+ background-image: <%= embeddable_image(asset_path 'duck.jpg') %>;
57
+ }
58
+ ```
59
+
60
+
61
+ #### Via Sass
62
+ Import the helper file in application.scss:
63
+
64
+ ```css
65
+ @import 'embeddable_asset';
66
+ /* now other Sass and imports below it can use helper functions */
67
+ ...
68
+ ```
69
+
70
+ Now you can call Sass helper functions
71
+ ```css
72
+ ...
73
+ @font-face {
74
+ src: embeddable-asset('chopin_script.ttf');
75
+ font-family: myFirstFont;
76
+ }
77
+
78
+ h2 {
79
+ font-family: myFirstFont;
80
+ padding: 12px;
81
+ background-image: embeddable-image('duck.jpg');
82
+ }
83
+ ```
84
+
85
+ ## Running the Rake Tasks (STEP 3/3)
86
+ Only use the embeddable helpers on assets you want to be embedded.
87
+ This is an opt-in helper so you can limit which assets get embedded.
88
+
89
+
90
+ #### Precompile with embedded assets
91
+
92
+ $ bundle exec rake assets:precompile:embed
93
+
94
+ ```css
95
+ /* Will turn this... */
96
+ h2 {
97
+ background-image: embeddable-asset('duck.jpg')
98
+ }
99
+
100
+ /* ...Into this */
101
+ h2 {
102
+ background-image: url(data:image/jpeg;base64,%2F9j%2F2wBBAQEBAQEBAQ...)
103
+ }
104
+ ```
105
+
106
+ #### Precompile with unembedded assets
107
+ NOTE: Because the asset pipeline caches precompiled assets, rerunning any kind of additional precompile rake task on its own would normally not force a recompile if the assets haven't been changed.
108
+ It would simply just reuse the same assets. So running "rake assets:precompile:embed" followed by "rake assets:precompile"
109
+ would simply reuse the precompiled-embedded assets from the first command.
110
+
111
+ To ensure assets do not get embedded after running the embed command, you can use:
112
+
113
+ $ bundle exec rake assets:precompile:unembed
114
+
115
+ This is essentially the equivalent of "rake assets:precompile", however it will make sure to ignore any previously cached assets.
116
+
117
+ ```css
118
+ /* Will turn this... */
119
+ h2 {
120
+ background-image: embeddable-asset('duck.jpg')
121
+ }
122
+
123
+ /* ...Into this */
124
+ h2 {
125
+ background-image: url(/assets/duck-e5ff3efc549760d.jpg)
126
+ }
127
+ ```
128
+
129
+
130
+
131
+ ## Troubleshooting
132
+ #### "WARNING: Unable to initialize EmbeddableAsset helpers."
133
+ You will see this warning in the terminal output or logs when
134
+ the current RAILS_ENV (i.e. test, development, production) has the
135
+ asset pipeline compilation disabled. Make sure the config file for the environment you are trying to run the rake task in has this setting
136
+ enabled like so:
137
+
138
+ ```ruby
139
+ config.assets.compile = true
140
+ ```
141
+
142
+ #### Why aren't my precompiled assets being minified?
143
+ This also has to do with environment specific config options as explained above. In order to ensure assets are minified, set the appropriate config options in the config file corresponding with the RAILS_ENV you are trying to run the rake task in. These config options will be different depending on if you are using CSS or Sass / Rails 3 or 4. You will want to look up the config options specific to your use case. The production environment config file usually has the desired minification settings specific to your project, so you could alternatively run the rake task like so:
144
+
145
+ $ RAILS_ENV=production rake assets:precompile:embed
146
+
147
+
148
+ ## Running the tests
149
+ This Gem is tested by utilizing two seperate nested dummy projects in order
150
+ to best simulate the environments this gem will be used in.
151
+ One project is using Sass via Rails 4.2, and the second is using CSS via Rails 3.2.
152
+ In order to run the tests, you must clone this project and "cd" into the appropriate sub-dummy-project and run:
153
+
154
+ $ cd path/to/sub-dummy-project
155
+ $ bundle exec rspec
156
+
157
+
158
+ ## Contributing
159
+ Bug reports and pull requests are welcome!
160
+
161
+
162
+ ## License
163
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
7
+
8
+ Dir.glob('lib/tasks/*.rake').each { |r| import r }
@@ -0,0 +1,11 @@
1
+ @function embeddable-asset($asset) {
2
+ <% if embed_assets? %>
3
+ @return asset-data-url($asset)
4
+ <% else %>
5
+ @return url(asset-path($asset) + "#iefix")
6
+ <% end %>
7
+ }
8
+
9
+ @function embeddable-image($image) {
10
+ @return embeddable-asset($image)
11
+ }
@@ -0,0 +1,21 @@
1
+ require 'embeddable_asset/asset_pipeline_helper'
2
+
3
+ Rails.application.config.after_initialize do
4
+ if Rails.application.assets
5
+ extend_pipeline_with_embeddable_helpers
6
+ else
7
+ print_failed_initialization_msg
8
+ end
9
+ end
10
+
11
+ def extend_pipeline_with_embeddable_helpers
12
+ Rails.application.assets.context_class.class_eval do
13
+ include AssetPipelineHelper
14
+ end
15
+ end
16
+
17
+ def print_failed_initialization_msg
18
+ puts "\nWARNING: Unable to initialize EmbeddableAsset helpers. "\
19
+ "'Rails.application.assets' is not defined. "\
20
+ "Ensure 'config.assets.compile = true' for your current RAILS_ENV\n\n"
21
+ end
@@ -0,0 +1,34 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'embeddable_asset/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "embeddable_asset"
8
+ spec.version = EmbeddableAsset::VERSION
9
+ spec.authors = ["John McCormack"]
10
+ spec.email = ["mccormjt@gmail.com"]
11
+
12
+ spec.summary = %q{Dynamically embed your assets into your Stylesheets}
13
+ spec.description = %q{Simple Gem that provides CSS and Sass helpers
14
+ to conditionally embed or unembed your assets via rake tasks.}
15
+ spec.homepage = "https://github.com/enova/embeddable_asset"
16
+ spec.license = "MIT"
17
+
18
+ # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
19
+ # delete this section to allow pushing this gem to any host.
20
+ if spec.respond_to?(:metadata)
21
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
22
+ else
23
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
24
+ end
25
+
26
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+
31
+ spec.add_development_dependency "bundler", "~> 1.11"
32
+ spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency "rspec", "~> 3.0"
34
+ end
@@ -0,0 +1,2 @@
1
+ require 'embeddable_asset/version'
2
+ require 'embeddable_asset/rails/engine'
@@ -0,0 +1,16 @@
1
+ module AssetPipelineHelper
2
+ def embed_assets?
3
+ ENV['EMBED_ASSETS'] == 'yes'
4
+ end
5
+
6
+ def embeddable_asset(asset_name)
7
+ if embed_assets?
8
+ data_uri = asset_data_uri(asset_name)
9
+ "url(#{data_uri})"
10
+ else
11
+ path = asset_path(asset_name)
12
+ "url(#{path}#iefix)"
13
+ end
14
+ end
15
+ alias_method :embeddable_image, :embeddable_asset
16
+ end
@@ -0,0 +1,6 @@
1
+ module EmbeddableAsset
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,144 @@
1
+ require "rails_helper"
2
+
3
+ # This file will be included in the nested "dummy" projects under spec/dummy_* in
4
+ # order to test this Gem in realistic app environments
5
+
6
+ RSpec.shared_examples 'Embeddable Rake Tasks' do
7
+ OPTIONAL_WHITESPACE = '\s?'
8
+ WILDCARD = '.*?'
9
+ PROP_DELIMETER = ';'
10
+ EMBEDDED_DATA_URL_PREFIX = 'url(data:'
11
+
12
+ def precompile_assets!(embed:)
13
+ action = embed ? 'embed' : 'unembed'
14
+ `rake assets:precompile:#{action}`
15
+ end
16
+
17
+ def regex_range(leading: '', start:, stop:)
18
+ escaped_leading = Regexp.quote(leading)
19
+ escaped_start = Regexp.quote(start)
20
+ escaped_stop = Regexp.quote(stop)
21
+
22
+ raw_regex_range = "#{escaped_leading}"\
23
+ "#{OPTIONAL_WHITESPACE}"\
24
+ "#{escaped_start}"\
25
+ "#{WILDCARD}"\
26
+ "#{escaped_stop}"
27
+
28
+ Regexp.new(raw_regex_range, Regexp::MULTILINE | Regexp::IGNORECASE)
29
+ end
30
+
31
+ def get_css_rules(selector)
32
+ selector_regexp = regex_range(leading: selector, start: '{', stop: '}')
33
+ application_css.match(selector_regexp).try(:[], 0)
34
+ end
35
+
36
+ def get_css_property(selector, property)
37
+ rules = get_css_rules(selector)
38
+ return unless rules
39
+ property_regex = regex_range(start: property, stop: PROP_DELIMETER)
40
+ rules.match(property_regex).try(:[], 0)
41
+ end
42
+
43
+ def get_css_property_value(selector, property)
44
+ property = get_css_property(selector, property)
45
+ return unless property
46
+ property.partition(/:/).last.chomp(PROP_DELIMETER).strip
47
+ end
48
+
49
+ def embedded_data_url?(url)
50
+ url.start_with?(EMBEDDED_DATA_URL_PREFIX)
51
+ end
52
+
53
+ def asset_regex(asset)
54
+ parts = asset.partition('.')
55
+ name = parts.first
56
+ extension = parts.second + parts.last
57
+ regex_range(start: name, stop: extension)
58
+ end
59
+
60
+ def application_asset(extension)
61
+ search_path = Rails.root.join('public', 'assets', "application*.#{extension}")
62
+ file_path = Dir.glob(search_path).first
63
+ File.read(file_path) if file_path
64
+ end
65
+
66
+ def application_css
67
+ application_asset('css')
68
+ end
69
+
70
+ def application_js
71
+ application_asset('js')
72
+ end
73
+
74
+ after do
75
+ `rake assets:remove`
76
+ `rake tmp:cache:clear`
77
+ end
78
+
79
+ shared_examples_for 'embedded css asset' do |selector:, property:, asset:|
80
+ it "embedds asset: '#{asset}', via selector: '#{selector}', in property: #{property}" do
81
+ prop_url = get_css_property_value(selector, property)
82
+ expect(embedded_data_url?(prop_url)).to be true
83
+ expect(prop_url).not_to match(asset_regex(asset))
84
+ end
85
+ end
86
+
87
+ shared_examples_for 'unembedded css asset' do |selector:, property:, asset:|
88
+ it "does not embed asset: '#{asset}', via selector: '#{selector}', in property: #{property}" do
89
+ prop_url = get_css_property_value(selector, property)
90
+ expect(embedded_data_url?(prop_url)).to be false
91
+ expect(prop_url).to match(asset_regex(asset))
92
+ end
93
+ end
94
+
95
+ shared_examples_for 'precompiled assets' do |embed:|
96
+ action = embed ? 'embedded' : 'unembedded'
97
+
98
+ it 'compiles JavaScript and CSS' do
99
+ expect(application_css).to include('h2')
100
+ expect(application_js).to include('doAwesomeStuff')
101
+ end
102
+
103
+ context 'pipeline assets not using embeddable gem' do
104
+ it_behaves_like 'unembedded css asset',
105
+ selector: 'h2',
106
+ property: 'background-image',
107
+ asset: 'duck.jpg'
108
+ end
109
+
110
+ context '#embeddable-asset' do
111
+ it_behaves_like "#{action} css asset",
112
+ selector: '@font-face',
113
+ property: 'src',
114
+ asset: 'chopin_script.ttf'
115
+ end
116
+
117
+ context '#embeddable-image' do
118
+ it_behaves_like "#{action} css asset",
119
+ selector: 'html',
120
+ property: 'background-image',
121
+ asset: 'dog.jpg'
122
+ end
123
+ end
124
+
125
+ describe 'rake assets:precompile:embed' do
126
+ before { precompile_assets!(embed: true) }
127
+ it_behaves_like 'precompiled assets', embed: true
128
+
129
+ context 'recompiling with unembedded assets' do
130
+ before { precompile_assets!(embed: false) }
131
+ it_behaves_like 'precompiled assets', embed: false
132
+ end
133
+ end
134
+
135
+ describe 'rake assets:precompile:unembed' do
136
+ before { precompile_assets!(embed: false) }
137
+ it_behaves_like 'precompiled assets', embed: false
138
+
139
+ context 'recompiling with embedded assets' do
140
+ before { precompile_assets!(embed: true) }
141
+ it_behaves_like 'precompiled assets', embed: true
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,3 @@
1
+ module EmbeddableAsset
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,27 @@
1
+ namespace :assets do
2
+ desc 'precompile assets while embedding assets designated with ENV["EMBED_ASSETS"]=yes'
3
+ task 'precompile:embed' => :environment do
4
+ compile_assets_as(embed: 'yes')
5
+ end
6
+
7
+ desc 'precompile assets without embedding assets'
8
+ task 'precompile:unembed' => :environment do
9
+ compile_assets_as(embed: nil)
10
+ end
11
+
12
+ desc 'completely remove compiled assets'
13
+ task 'remove' => :environment do
14
+ if Rake::Task.task_defined?('assets:clobber')
15
+ Rake::Task['assets:clobber'].execute
16
+ else
17
+ Rake::Task['assets:clean'].execute
18
+ end
19
+ end
20
+
21
+ def compile_assets_as(options={})
22
+ ENV['EMBED_ASSETS'] = options[:embed]
23
+ Rake::Task['assets:remove'].execute
24
+ Rake::Task['tmp:cache:clear'].execute
25
+ Rake::Task['assets:precompile'].execute
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: embeddable_asset
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - John McCormack
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-03-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ description: |-
56
+ Simple Gem that provides CSS and Sass helpers
57
+ to conditionally embed or unembed your assets via rake tasks.
58
+ email:
59
+ - mccormjt@gmail.com
60
+ executables: []
61
+ extensions: []
62
+ extra_rdoc_files: []
63
+ files:
64
+ - ".gitignore"
65
+ - ".rspec"
66
+ - ".ruby-version"
67
+ - ".travis.yml"
68
+ - Gemfile
69
+ - LICENSE.txt
70
+ - README.md
71
+ - Rakefile
72
+ - app/assets/stylesheets/_embeddable_asset.scss.erb
73
+ - config/initializers/expose_asset_pipeline_embeddable_helpers.rb
74
+ - embeddable_asset.gemspec
75
+ - lib/embeddable_asset.rb
76
+ - lib/embeddable_asset/asset_pipeline_helper.rb
77
+ - lib/embeddable_asset/rails/engine.rb
78
+ - lib/embeddable_asset/test/embeddable_rake_task_examples.rb
79
+ - lib/embeddable_asset/version.rb
80
+ - lib/tasks/precompile_embeddable_assets.rake
81
+ homepage: https://github.com/enova/embeddable_asset
82
+ licenses:
83
+ - MIT
84
+ metadata:
85
+ allowed_push_host: https://rubygems.org
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ requirements: []
101
+ rubyforge_project:
102
+ rubygems_version: 2.5.1
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Dynamically embed your assets into your Stylesheets
106
+ test_files: []