rack-sassc 0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a2b6576825c66fc983efbdb31c7c9f140f6b6d75bfcdf7b5b4ca05f98ccccbe8
4
+ data.tar.gz: fc2728ba84d1ea93577ed8e40da1492d84541fb83d35edf9bf76769094aa2ec5
5
+ SHA512:
6
+ metadata.gz: 44aa927dc2e90882201445447589ab5df67c538c212ca2777dd72f604e933bc0be7e539f1f33c57d1b06bc0153145a074ff07ea93094f8144e8dcf2c22c1f36f
7
+ data.tar.gz: 29ce04609231b501f4028a7c53c93af24793b843ea6692f489e6e4a07e7f844507a48c8245b1f4976f258e449858ad9fa7d2aa90008c5cce24e4834a9d0b9dbf
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ .DS_STORE
2
+ *.swp
3
+ .ruby-version
4
+ pkg/
5
+ Gemfile.lock
6
+ *.gem
7
+ .bundle/
8
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
3
+
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2019 Mickael Riga
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
20
+
data/README.md ADDED
@@ -0,0 +1,131 @@
1
+ Rack::SassC
2
+ ===========
3
+
4
+ Rack middleware for processing sass/scss files. The current version has many
5
+ limitations but feel free to send pull requests if you find a bug or if you wish
6
+ to improve the functionnalities.
7
+
8
+ The current behaviour implies these limitations:
9
+
10
+ The files are processed each time they are requested. Since by default it does
11
+ it only when not in production, the speed penalty is kind of acceptable. But I
12
+ intend to improve it and use modification time.
13
+
14
+ The location of the public directory and directory names for CSS and SCSS are
15
+ editable, but both are assumed to be directly placed inside the public
16
+ directory.
17
+
18
+ The files cannot be nested, they are assumed to be directly inside the SCSS
19
+ directory, and the generated files are therefore created directly inside the CSS
20
+ directory.
21
+
22
+ There is no special error handling yet. Any error will raise a typical error
23
+ page.
24
+
25
+ Installation
26
+ ------------
27
+
28
+ Add this line to your application's Gemfile:
29
+
30
+ ```ruby
31
+ gem 'rack-sassc'
32
+ ```
33
+
34
+ And then execute:
35
+
36
+ ```ruby
37
+ bundle install
38
+ ```
39
+
40
+ Or install it yourself as:
41
+
42
+ ```ruby
43
+ gem install rack-sassc
44
+ ```
45
+
46
+ Usage
47
+ -----
48
+
49
+ In your `config.ru`:
50
+
51
+ ```ruby
52
+ require 'rack/sassc'
53
+
54
+ use Rack::SassC
55
+ ```
56
+
57
+ This is the basic usage with default behaviour, which is equivalent to using
58
+ these options:
59
+
60
+ ```ruby
61
+ require 'rack/sassc'
62
+
63
+ use Rack::SassC, {
64
+ check: ENV['RACK_ENV'] != 'production',
65
+ public_location: 'public',
66
+ syntax: :scss,
67
+ css_dirname: :css,
68
+ scss_dirname: :scss,
69
+ create_map_file: true,
70
+ }
71
+ ```
72
+
73
+ Here is the explanation for each option:
74
+
75
+ `check` determines if the files are processed or not. Setting it to `false` is
76
+ equivalent to not having the middleware at all. By default it is `true` if the
77
+ rack environment is NOT `production`. The value of `check` can also be a Proc
78
+ which receives the `env` on each request.
79
+
80
+ `public_location` is where you serve static files on your app. It is set to
81
+ "public" by default. Whatever path you set it to will be expanded.
82
+
83
+ `scss_dirname` and `css_dirname` are just the name of the directories in which
84
+ we search for template files and we generate css/map files.
85
+
86
+ `syntax` is `:scss` or `:sass`. It is used for the engine, but also for the
87
+ extension of template files, which means they have to match.
88
+
89
+ `create_map_file` is self explanatory. No map file will be created if set to
90
+ `false`.
91
+
92
+ Additionally, you can pass another option called `engine_opts`. It will be
93
+ merged with the default options of the SassC engine. For example if you don't
94
+ want a compressed output, you could do this:
95
+
96
+ ```ruby
97
+ use Rack::SassC, {
98
+ engine_opts: {style: :nested}
99
+ }
100
+ ```
101
+
102
+ The default options for the engine are the following:
103
+
104
+ ```ruby
105
+ {
106
+ style: :compressed,
107
+ syntax: @opts[:syntax],
108
+ load_paths: [location(@opts[:scss_dirname])],
109
+ }
110
+ ```
111
+
112
+ Or this when no map file is to be created:
113
+
114
+ ```ruby
115
+ {
116
+ style: :compressed,
117
+ syntax: @opts[:syntax],
118
+ load_paths: [location(@opts[:scss_dirname])],
119
+ source_map_file: "#{filename}.css.map",
120
+ source_map_contents: true,
121
+ }
122
+ ```
123
+
124
+ Alternatives
125
+ ------------
126
+
127
+ As far as I know the only alternative to this library is
128
+ [SasscRack](https://github.com/hkrutzer/sasscrack) by
129
+ [hkrutzer](https://github.com/hkrutzer) which arguably has a much better name
130
+ than mine `;-)`
131
+
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs << 'test'
5
+ t.warning = false
6
+ t.options = '--pride'
7
+ end
8
+
9
+ desc "Run tests"
10
+ task :default => :test
11
+
@@ -0,0 +1,6 @@
1
+ module Rack
2
+ class SassC
3
+ VERSION = '0.0.0'
4
+ end
5
+ end
6
+
data/lib/rack/sassc.rb ADDED
@@ -0,0 +1,93 @@
1
+ require 'sassc'
2
+
3
+ module Rack
4
+ class SassC
5
+
6
+ attr_reader :opts
7
+
8
+ def initialize app, opts={}
9
+ @app = app
10
+
11
+ @opts = {
12
+ check: ENV['RACK_ENV'] != 'production',
13
+ public_location: 'public',
14
+ syntax: :scss,
15
+ css_dirname: :css,
16
+ scss_dirname: :scss,
17
+ create_map_file: true,
18
+ }.merge(opts)
19
+
20
+ @opts[:public_location] = ::File.expand_path @opts[:public_location]
21
+ end
22
+
23
+ def call env
24
+ handle_path(env['PATH_INFO']) if must_check?(env)
25
+ @app.call env
26
+ end
27
+
28
+ def location dirname
29
+ ::File.join @opts[:public_location], dirname.to_s
30
+ end
31
+
32
+ def filepath dirname, filename, ext
33
+ ::File.join location(dirname), "#{filename}.#{ext}"
34
+ end
35
+
36
+ private
37
+
38
+ def must_check? env
39
+ if @opts[:check].respond_to? :call
40
+ @opts[:check].call env
41
+ else
42
+ @opts[:check]
43
+ end
44
+ end
45
+
46
+ def handle_path path_info
47
+ return unless path_info[/\/#{@opts[:css_dirname]}\/[^\/]+\.css$/]
48
+
49
+ filename = ::File.basename path_info, '.*'
50
+ scss_filepath = filepath(@opts[:scss_dirname], filename, @opts[:syntax])
51
+ return unless ::File.exist?(scss_filepath)
52
+
53
+ scss = ::File.read(scss_filepath)
54
+ engine = ::SassC::Engine.new(scss, build_engine_opts(filename))
55
+ css_filepath = filepath(@opts[:css_dirname], filename, :css)
56
+
57
+ ::File.open(css_filepath, 'w') do |css_file|
58
+ css_file.write(engine.render)
59
+ end
60
+
61
+ if @opts[:create_map_file]
62
+ ::File.open("#{css_filepath}.map", 'w') do |map_file|
63
+ map_file.write(engine.source_map)
64
+ end
65
+ end
66
+ end
67
+
68
+ def build_engine_opts filename
69
+ engine_opts = {
70
+ style: :compressed,
71
+ syntax: @opts[:syntax],
72
+ load_paths: [location(@opts[:scss_dirname])],
73
+ }
74
+
75
+ if @opts[:create_map_file]
76
+ engine_opts.merge!({
77
+ source_map_file: "#{filename}.css.map",
78
+ source_map_contents: true,
79
+ })
80
+ end
81
+
82
+ if @opts.has_key?(:engine_opts)
83
+ engine_opts.merge! @opts[:engine_opts]
84
+ end
85
+
86
+ engine_opts
87
+ end
88
+
89
+ end
90
+ end
91
+
92
+ require 'rack/sassc/version'
93
+
data/lib/rack-sassc.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'rack/sassc'
2
+
@@ -0,0 +1,22 @@
1
+ require File.join(File.dirname(__FILE__), 'lib/rack/sassc/version')
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'rack-sassc'
5
+ s.version = Rack::SassC::VERSION
6
+ s.summary = "Rack middleware for SassC"
7
+ s.description = "Rack middleware for SassC which process sass/scss files when in development environment."
8
+ s.authors = ["Mickael Riga"]
9
+ s.email = ["mig@mypeplum.com"]
10
+ s.files = `git ls-files -z`.split("\x0")
11
+ s.homepage = "https://github.com/mig-hub/rack-sassc"
12
+ s.license = 'MIT'
13
+ s.require_paths = ["lib"]
14
+
15
+ s.add_dependency 'rack', '>= 1.0'
16
+ s.add_dependency 'sassc', '~> 2.0'
17
+ s.add_development_dependency 'minitest', '~> 5.8'
18
+ s.add_development_dependency 'rack-test', '~> 0.6'
19
+ s.add_development_dependency "rake"
20
+ s.add_development_dependency "bundler"
21
+ end
22
+
@@ -0,0 +1,3 @@
1
+ body
2
+ color: blue
3
+
@@ -0,0 +1,3 @@
1
+ body{color:blue}
2
+
3
+ /*# sourceMappingURL=main.css.map */
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": 3,
3
+ "file": "stdin.css",
4
+ "sources": [
5
+ "stdin"
6
+ ],
7
+ "sourcesContent": [
8
+ "body {\n color: blue; }\n\n"
9
+ ],
10
+ "names": [],
11
+ "mappings": "AAAA,AAAA,IAAI,AAAC,CACH,KAAK,CAAE,IAAI,CAAG"
12
+ }
@@ -0,0 +1 @@
1
+ .already{color:yellow}
@@ -0,0 +1,3 @@
1
+ body {
2
+ color: yellow;
3
+ }
@@ -0,0 +1,198 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'rack/sassc'
4
+ require 'rack/test'
5
+ require 'minitest/autorun'
6
+
7
+ # Simulate a setup where `public` is in the current directory
8
+ Dir.chdir('test')
9
+
10
+ class TestRackSassC < MiniTest::Test
11
+
12
+ include Rack::Test::Methods
13
+
14
+ KEEP_IN_CSS_DIR = ['already.css']
15
+
16
+ def setup
17
+ teardown
18
+ @inner_app = inner_app
19
+ @app_options = {}
20
+ end
21
+
22
+ def teardown
23
+ Dir.children('public/css').each do |f|
24
+ ::File.delete("public/css/#{f}") unless KEEP_IN_CSS_DIR.include?(f)
25
+ end
26
+ if ::File.exist? "public/scss/tmp.scss"
27
+ ::File.delete "public/scss/tmp.scss"
28
+ end
29
+ end
30
+
31
+ def app
32
+ Rack::Lint.new(Rack::SassC.new(@inner_app, @app_options))
33
+ end
34
+
35
+ def inner_app
36
+ Rack::Static.new(lambda {|env|
37
+ [200, {'Content-Type'=>'text/plain'}, ["Inner"]]
38
+ }, {
39
+ urls: ["/css", "/scss"],
40
+ root: "public"
41
+ })
42
+ end
43
+
44
+ def inner_app_other
45
+ Rack::Static.new(lambda {|env|
46
+ [200, {'Content-Type'=>'text/plain'}, ["Inner"]]
47
+ }, {
48
+ urls: ["/stylesheets", "/sassc"],
49
+ root: "other-public"
50
+ })
51
+ end
52
+
53
+ def test_non_css_request_is_served
54
+ get "/"
55
+ assert_equal 200, last_response.status
56
+ assert_equal "Inner", last_response.body
57
+ assert_css_dir_untouched
58
+ end
59
+
60
+ def test_existing_file_without_sassc_template_is_served
61
+ # Files that are already css from a library or something.
62
+ get "/css/already.css"
63
+ assert_equal 200, last_response.status
64
+ assert_equal 'text/css', last_response.headers['Content-Type']
65
+ assert last_response.body[/\.already\{color:yellow\}/]
66
+ assert_css_dir_untouched
67
+ end
68
+
69
+ def test_non_existing_file_without_sassc_template_is_not_found
70
+ # There is neither a file in css or in scss
71
+ get "/css/notfound.css"
72
+ assert_equal 404, last_response.status
73
+ assert_css_dir_untouched
74
+ end
75
+
76
+ def test_file_with_sassc_template_but_wrong_css_path_pass_through
77
+ # There is corresponding file in scss but the css path is wrong
78
+ get "/wrong-css/main.css"
79
+ assert_equal 200, last_response.status
80
+ assert_equal "Inner", last_response.body
81
+ assert_css_dir_untouched
82
+ end
83
+
84
+ def test_file_with_sassc_template_is_created_and_served
85
+ get "/css/main.css"
86
+ assert_equal 200, last_response.status
87
+ assert_equal 'text/css', last_response.headers['Content-Type']
88
+ assert last_response.body[/body\{color:yellow\}/]
89
+ assert last_response.body[/sourceMappingURL=main\.css\.map/]
90
+ assert_created_in_css_dir "main.css", "main.css.map"
91
+ end
92
+
93
+ def test_file_with_sassc_template_is_uptodate
94
+ ::File.open('public/scss/tmp.scss', 'w') do |file|
95
+ file.write "body{color:yellow}"
96
+ end
97
+ get "/css/tmp.css"
98
+ ::File.open('public/scss/tmp.scss', 'w') do |file|
99
+ file.write "body{color:orange}"
100
+ end
101
+ get "/css/tmp.css"
102
+ assert_equal 200, last_response.status
103
+ assert_equal 'text/css', last_response.headers['Content-Type']
104
+ assert last_response.body[/body\{color:orange\}/]
105
+ refute last_response.body[/yellow/]
106
+ assert last_response.body[/sourceMappingURL=tmp\.css\.map/]
107
+ assert_created_in_css_dir "tmp.css", "tmp.css.map"
108
+ end
109
+
110
+ def test_option_to_not_create_map_file
111
+ @app_options = {create_map_file: false}
112
+ get "/css/main.css"
113
+ assert_equal 200, last_response.status
114
+ assert_equal 'text/css', last_response.headers['Content-Type']
115
+ assert last_response.body[/body\{color:yellow\}/]
116
+ refute last_response.body[/sourceMappingURL/]
117
+ assert_created_in_css_dir "main.css"
118
+ end
119
+
120
+ def test_middleware_can_be_disabled_via_check_option
121
+ @app_options = {check: false}
122
+ get "/css/main.css"
123
+ assert_equal 404, last_response.status
124
+ assert_css_dir_untouched
125
+ end
126
+
127
+ def test_check_option_can_be_a_proc
128
+ @app_options = {
129
+ check: proc{ |env|
130
+ assert_equal '/css/main.css', env['PATH_INFO']
131
+ false
132
+ }
133
+ }
134
+ get "/css/main.css"
135
+ assert_equal 404, last_response.status
136
+ assert_css_dir_untouched
137
+ end
138
+
139
+ def test_public_location_option_is_expanded
140
+ local_opts = {public_location: 'other-public'}
141
+ local_app = Rack::SassC.new(inner_app, local_opts)
142
+ assert_equal ::File.expand_path('other-public'), local_app.opts[:public_location]
143
+ # Make sure the original opts hash is unchanged
144
+ assert_equal 'other-public', local_opts[:public_location]
145
+ end
146
+
147
+ def test_location_returns_expanded_path_in_public
148
+ local_opts = {public_location: 'other_public'}
149
+ local_app = Rack::SassC.new(inner_app, local_opts)
150
+ assert_equal ::File.join(::File.expand_path('other_public'), 'dir'), local_app.location(:dir)
151
+ end
152
+
153
+ def test_filepath_returns_expanded_path_in_public
154
+ local_opts = {public_location: 'other_public'}
155
+ local_app = Rack::SassC.new(inner_app, local_opts)
156
+ assert_equal ::File.join(::File.expand_path('other_public'), 'dir', 'main.sass'), local_app.filepath(:dir, :main, :sass)
157
+ end
158
+
159
+ def test_works_with_different_dirnames_and_syntax
160
+ @inner_app = inner_app_other
161
+ @app_options = {
162
+ public_location: 'other-public',
163
+ css_dirname: :stylesheets,
164
+ scss_dirname: :sassc,
165
+ syntax: :sass
166
+ }
167
+ get "/stylesheets/main.css"
168
+ assert_equal 200, last_response.status
169
+ assert_equal 'text/css', last_response.headers['Content-Type']
170
+ assert last_response.body[/body\{color:blue\}/]
171
+ assert last_response.body[/sourceMappingURL=main\.css\.map/]
172
+ assert_created_in_css_dir "main.css", "main.css.map"
173
+ end
174
+
175
+ private
176
+
177
+ # This will assert the files were created
178
+ # but also fail if other files where created that
179
+ # are not passed as argument. Therefore the list
180
+ # of files created needs to be exhaustive.
181
+ def assert_created_in_css_dir *created_files
182
+ if @app_options.has_key?(:public_location) and @app_options.has_key?(:css_dirname)
183
+ possible_files = created_files.dup
184
+ path = "#{@app_options[:public_location]}/#{@app_options[:css_dirname]}"
185
+ else
186
+ possible_files = KEEP_IN_CSS_DIR + created_files
187
+ path = 'public/css'
188
+ end
189
+ assert_equal possible_files.sort, Dir.children(path).sort
190
+ end
191
+
192
+ # Sugar for legibility
193
+ def assert_css_dir_untouched
194
+ assert_created_in_css_dir
195
+ end
196
+
197
+ end
198
+
metadata ADDED
@@ -0,0 +1,143 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-sassc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mickael Riga
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sassc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rack-test
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Rack middleware for SassC which process sass/scss files when in development
98
+ environment.
99
+ email:
100
+ - mig@mypeplum.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".gitignore"
106
+ - Gemfile
107
+ - LICENSE
108
+ - README.md
109
+ - Rakefile
110
+ - lib/rack-sassc.rb
111
+ - lib/rack/sassc.rb
112
+ - lib/rack/sassc/version.rb
113
+ - rack-sassc.gemspec
114
+ - test/other-public/sassc/main.sass
115
+ - test/other-public/stylesheets/main.css
116
+ - test/other-public/stylesheets/main.css.map
117
+ - test/public/css/already.css
118
+ - test/public/scss/main.scss
119
+ - test/test_rack_sassc.rb
120
+ homepage: https://github.com/mig-hub/rack-sassc
121
+ licenses:
122
+ - MIT
123
+ metadata: {}
124
+ post_install_message:
125
+ rdoc_options: []
126
+ require_paths:
127
+ - lib
128
+ required_ruby_version: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ required_rubygems_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ requirements: []
139
+ rubygems_version: 3.0.3
140
+ signing_key:
141
+ specification_version: 4
142
+ summary: Rack middleware for SassC
143
+ test_files: []