dartsass-sprockets 3.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: 27972e22ea4a4d83396a8874b82d96d48b006bbff80a6fd09b566819e1a94cbe
4
+ data.tar.gz: 8c01d7c429722328d6dcb3f8b7a85ad17a5f88abf7d4ad0044f62c5c26e4fcda
5
+ SHA512:
6
+ metadata.gz: 7a6e2076e7a2c18806ac6932539026eea2ecf427618824bac7169e17655a991fa5cd2e19a2a6179aa28946ec57170e4fc335b28d1c0a2fb4794da608455a8d17
7
+ data.tar.gz: 5cf8902d81bcb478120735495b9ed76668e25570975d97e7c559531e10b3b55c4f8f072c3c7ed9b226a4965d98fd6925c08526262e507d8a9e1f46b808fe5b53
data/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) Ryan Boland & contributors
2
+ Copyright (c) TableCheck
3
+
4
+ MIT License
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # Dart Sass for Spockets
2
+
3
+ [![build](https://github.com/tablecheck/dartsass-sprockets/actions/workflows/build.yml/badge.svg)](https://github.com/tablecheck/dartsass-sprockets/actions/workflows/build.yml)
4
+ [![gem](https://badge.fury.io/rb/dartsass-sprockets.svg)](https://rubygems.org/gems/dartsass-sprockets)
5
+
6
+ Use [Dart Sass](https://sass-lang.com/dart-sass) with Sprockets and the Ruby on Rails asset pipeline.
7
+
8
+ This gem is a fork of [sass/sassc-rails](https://github.com/sass/sassc-rails)
9
+ which maintains API compatibility but delegates to the
10
+ [dartsass-ruby](https://github.com/tablecheck/sass-embedded-host-ruby) gem
11
+ which uses Dart Sass instead of the libsass C implmentation.
12
+
13
+ For ease of upgrading, the root namespace `::SassC` is still used by this gem,
14
+ although it is now a misnomer. This is planned to be renamed in a future
15
+ major version release.
16
+
17
+ ## Installation
18
+
19
+ Add this line to your application's Gemfile:
20
+
21
+ ```ruby
22
+ gem 'dartsass-sprockets'
23
+ ```
24
+
25
+ This will automatically configure your default Rails
26
+ `config.assets.css_compressor` to use `:sass`.
27
+
28
+ ### Upgrading to Dart Sass
29
+
30
+ This gem is a drop-in replacement to [sass-rails](https://github.com/rails/sass-rails).
31
+ Note the following differences:
32
+
33
+ * `config.sass.style` values `:nested` and `:compact` will behave as `:expanded`. Use `:compressed` for minification.
34
+ * `config.sass.line_comments` option is ignored and will always be disabled.
35
+
36
+ ## Inline Source Maps
37
+
38
+ To turn on inline source maps, add the following configuration
39
+ to your `development.rb` file:
40
+
41
+ ```ruby
42
+ # config/environments/development.rb
43
+ config.sass.inline_source_maps = true
44
+ ```
45
+
46
+ After adding this config line, you may need to clear your assets cache
47
+ (`rm -r tmp/cache/assets`), stop Spring, and restart your Rails server.
48
+
49
+ Note these source maps are *inline* and will be appended to the compiled
50
+ `application.css` file. (They will *not* generate additional files.)
51
+
52
+ ## Alternatives
53
+
54
+ * [dartsass-rails](https://github.com/rails/dartsass-rails): The Rails organization
55
+ maintains its own wrapper for Dart Sass. Unlike this gem, dartsass-rails does
56
+ not support Sprockets.
57
+
58
+ ## Credits
59
+
60
+ * This gem is maintained and used in production by [TableCheck](https://www.tablecheck.com/en/join). (We'd be very glad if the Sass organization could take over maintainership in the future!)
61
+ * Credit to [Ryan Boland](https://ryanboland.com) and the authors of the original
62
+ [sass/sassc-rails](https://github.com/sass/sassc-rails) and
63
+ [sass-rails](https://github.com/rails/sass-rails) gems.
64
+ * See our [awesome contributors](https://github.com/tablecheck/sassc-ruby/graphs/contributors).
65
+
66
+ ### Contributing
67
+
68
+ 1. Fork it ([https://github.com/tablecheck/dartsass-sprockets/fork](https://github.com/tablecheck/dartsass-sprockets/fork))
69
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
70
+ 3. Commit your changes (`git commit -am 'Add some feature'`) - try to include tests
71
+ 4. Push to the branch (`git push origin my-new-feature`)
72
+ 5. Create a new Pull Request
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "sassc/rails"
@@ -0,0 +1,13 @@
1
+ require "rails/generators/named_base"
2
+
3
+ module Sass
4
+ module Generators
5
+ class AssetsGenerator < ::Rails::Generators::NamedBase
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def copy_sass
9
+ template "stylesheet.sass", File.join('app/assets/stylesheets', class_path, "#{file_name}.sass")
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ require "rails/generators/sass_scaffold"
2
+
3
+ module Sass
4
+ module Generators
5
+ class ScaffoldGenerator < ::Sass::Generators::ScaffoldBase
6
+ def syntax() :sass end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ require "sassc/engine"
2
+ require "rails/generators/named_base"
3
+
4
+ module Sass
5
+ module Generators
6
+ class ScaffoldBase < ::Rails::Generators::NamedBase
7
+ def copy_stylesheet
8
+ dir = ::Rails::Generators::ScaffoldGenerator.source_root
9
+ file = File.join(dir, "scaffold.css")
10
+ converted_contents = ::SassC::Engine.new(File.read(file)).render
11
+ create_file "app/assets/stylesheets/scaffolds.#{syntax}", converted_contents
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ require "rails/generators/named_base"
2
+
3
+ module Scss
4
+ module Generators
5
+ class AssetsGenerator < ::Rails::Generators::NamedBase
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def copy_scss
9
+ template "stylesheet.scss", File.join('app/assets/stylesheets', class_path, "#{file_name}.scss")
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ require "rails/generators/sass_scaffold"
2
+
3
+ module Scss
4
+ module Generators
5
+ class ScaffoldGenerator < ::Sass::Generators::ScaffoldBase
6
+ def syntax() :scss end
7
+ end
8
+ end
9
+ end
10
+
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sprockets/sass_compressor'
4
+ require 'securerandom'
5
+
6
+ class Sprockets::SassCompressor
7
+ def initialize(options = {})
8
+ @options = {
9
+ syntax: :scss,
10
+ cache: false,
11
+ read_cache: false,
12
+ style: :compressed
13
+ }.merge(options).freeze
14
+ @cache_key = SecureRandom.uuid
15
+ end
16
+
17
+ def call(*args)
18
+ input = if defined?(data)
19
+ data # sprockets 2.x
20
+ else
21
+ args[0][:data] #sprockets 3.x
22
+ end
23
+
24
+ SassC::Engine.new(
25
+ input,
26
+ {
27
+ style: :compressed
28
+ }
29
+ ).render
30
+ end
31
+
32
+ # sprockets 2.x
33
+ alias :evaluate :call
34
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sprockets/sass_functions'
4
+
5
+ module Sprockets
6
+ module SassFunctions
7
+ def asset_data_url(path)
8
+ ::SassC::Script::Value::String.new("url(" + sprockets_context.asset_data_uri(path.value) + ")")
9
+ end
10
+ end
11
+ end
12
+
13
+ ::SassC::Script::Functions.send :include, Sprockets::SassFunctions
@@ -0,0 +1,181 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tilt'
4
+
5
+ module SassC
6
+ module Rails
7
+ class Importer < SassC::Importer
8
+ class Extension
9
+ attr_reader :postfix
10
+
11
+ def initialize(postfix=nil)
12
+ @postfix = postfix
13
+ end
14
+
15
+ def import_for(full_path, parent_dir, options)
16
+ SassC::Importer::Import.new(full_path)
17
+ end
18
+ end
19
+
20
+ class CSSExtension
21
+ def postfix
22
+ ".css"
23
+ end
24
+
25
+ def import_for(full_path, parent_dir, options)
26
+ import_path = full_path.gsub(/\.css$/,"")
27
+ SassC::Importer::Import.new(import_path)
28
+ end
29
+ end
30
+
31
+ class CssScssExtension < Extension
32
+ def postfix
33
+ ".css.scss"
34
+ end
35
+
36
+ def import_for(full_path, parent_dir, options)
37
+ source = File.open(full_path, 'rb') { |f| f.read }
38
+ SassC::Importer::Import.new(full_path, source: source)
39
+ end
40
+ end
41
+
42
+ class CssSassExtension < Extension
43
+ def postfix
44
+ ".css.sass"
45
+ end
46
+
47
+ def import_for(full_path, parent_dir, options)
48
+ sass = File.open(full_path, 'rb') { |f| f.read }
49
+ parsed_scss = SassC::Sass2Scss.convert(sass)
50
+ SassC::Importer::Import.new(full_path, source: parsed_scss)
51
+ end
52
+ end
53
+
54
+ class SassERBExtension < Extension
55
+ def postfix
56
+ ".sass.erb"
57
+ end
58
+
59
+ def import_for(full_path, parent_dir, options)
60
+ template = Tilt::ERBTemplate.new(full_path)
61
+ parsed_erb = template.render(options[:sprockets][:context], {})
62
+ parsed_scss = SassC::Sass2Scss.convert(parsed_erb)
63
+ SassC::Importer::Import.new(full_path, source: parsed_scss)
64
+ end
65
+ end
66
+
67
+ class ERBExtension < Extension
68
+ def import_for(full_path, parent_dir, options)
69
+ template = Tilt::ERBTemplate.new(full_path)
70
+ parsed_erb = template.render(options[:sprockets][:context], {})
71
+ SassC::Importer::Import.new(full_path, source: parsed_erb)
72
+ end
73
+ end
74
+
75
+ EXTENSIONS = [
76
+ CssScssExtension.new,
77
+ CssSassExtension.new,
78
+ SassERBExtension.new,
79
+ ERBExtension.new(".scss.erb"),
80
+ ERBExtension.new(".css.erb"),
81
+ Extension.new(".scss"),
82
+ Extension.new(".sass"),
83
+ CSSExtension.new
84
+ ].freeze
85
+
86
+ PREFIXS = [ "", "_" ]
87
+ GLOB = /(\A|\/)(\*|\*\*\/\*)\z/
88
+
89
+ def imports(path, parent_path)
90
+ parent_dir, _ = File.split(parent_path)
91
+ specified_dir, specified_file = File.split(path)
92
+
93
+ if m = path.match(GLOB)
94
+ path = path.sub(m[0], "")
95
+ base = File.expand_path(path, File.dirname(parent_path))
96
+ return glob_imports(base, m[2], parent_path)
97
+ end
98
+
99
+ search_paths = ([parent_dir] + load_paths).uniq
100
+
101
+ if specified_dir != "."
102
+ search_paths.map! do |path|
103
+ File.join(path, specified_dir)
104
+ end
105
+ search_paths.select! do |path|
106
+ File.directory?(path)
107
+ end
108
+ end
109
+
110
+ search_paths.each do |search_path|
111
+ PREFIXS.each do |prefix|
112
+ file_name = prefix + specified_file
113
+
114
+ EXTENSIONS.each do |extension|
115
+ try_path = File.join(search_path, file_name + extension.postfix)
116
+ if File.exist?(try_path)
117
+ record_import_as_dependency try_path
118
+ return extension.import_for(try_path, parent_dir, options)
119
+ end
120
+ end
121
+ end
122
+ end
123
+
124
+ SassC::Importer::Import.new(path)
125
+ end
126
+
127
+ private
128
+
129
+ def extension_for_file(file)
130
+ EXTENSIONS.detect do |extension|
131
+ file.include? extension.postfix
132
+ end
133
+ end
134
+
135
+ def record_import_as_dependency(path)
136
+ context.depend_on path
137
+ end
138
+
139
+ def context
140
+ options[:sprockets][:context]
141
+ end
142
+
143
+ def load_paths
144
+ options[:load_paths]
145
+ end
146
+
147
+ def glob_imports(base, glob, current_file)
148
+ files = globbed_files(base, glob)
149
+ files = files.reject { |f| f == current_file }
150
+
151
+ files.map do |filename|
152
+ record_import_as_dependency(filename)
153
+ extension = extension_for_file(filename)
154
+ extension.import_for(filename, base, options)
155
+ end
156
+ end
157
+
158
+ def globbed_files(base, glob)
159
+ # TODO: Raise an error from SassC here
160
+ raise ArgumentError unless glob == "*" || glob == "**/*"
161
+
162
+ extensions = EXTENSIONS.map(&:postfix)
163
+ exts = extensions.map { |ext| Regexp.escape("#{ext}") }.join("|")
164
+ sass_re = Regexp.compile("(#{exts})$")
165
+
166
+ record_import_as_dependency(base)
167
+
168
+ files = Dir["#{base}/#{glob}"].sort.map do |path|
169
+ if File.directory?(path)
170
+ record_import_as_dependency(path)
171
+ nil
172
+ elsif sass_re =~ path
173
+ path
174
+ end
175
+ end
176
+
177
+ files.compact
178
+ end
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/core_ext/class/attribute'
4
+ require 'sprockets/railtie'
5
+
6
+ module SassC::Rails
7
+ class Railtie < ::Rails::Railtie
8
+ config.sass = ActiveSupport::OrderedOptions.new
9
+
10
+ # Establish static configuration defaults
11
+ # Emit scss files during stylesheet generation of scaffold
12
+ config.sass.preferred_syntax = :scss
13
+ # Initialize the load paths to an empty array
14
+ config.sass.load_paths = []
15
+
16
+ # Display line comments above each selector as a debugging aid
17
+ config.sass.line_comments = true
18
+
19
+ # Set the default stylesheet engine
20
+ # It can be overridden by passing:
21
+ # --stylesheet_engine=sass
22
+ # to the rails generate command
23
+ config.app_generators.stylesheet_engine config.sass.preferred_syntax
24
+
25
+ if config.respond_to?(:annotations)
26
+ config.annotations.register_extensions("scss", "sass") { |annotation| /\/\/\s*(#{annotation}):?\s*(.*)$/ }
27
+ end
28
+
29
+ # Remove the sass middleware if it gets inadvertently enabled by applications.
30
+ config.after_initialize do |app|
31
+ app.config.middleware.delete(Sass::Plugin::Rack) if defined?(Sass::Plugin::Rack)
32
+ end
33
+
34
+ initializer :setup_sass, group: :all do |app|
35
+ # Only emit one kind of syntax because though we have registered two kinds of generators
36
+ syntax = app.config.sass.preferred_syntax.to_sym
37
+ alt_syntax = syntax == :sass ? "scss" : "sass"
38
+ app.config.generators.hide_namespace alt_syntax
39
+
40
+ # Override stylesheet engine to the preferred syntax
41
+ config.app_generators.stylesheet_engine syntax
42
+
43
+ # Establish configuration defaults that are environmental in nature
44
+ # if config.sass.full_exception.nil?
45
+ # # Display a stack trace in the css output when in development-like environments.
46
+ # config.sass.full_exception = app.config.consider_all_requests_local
47
+ # end
48
+
49
+ app.config.assets.configure do |env|
50
+ env.context_class.class_eval do
51
+ class_attribute :sass_config
52
+ self.sass_config = app.config.sass
53
+ end
54
+
55
+ if env.respond_to?(:register_transformer)
56
+ env.register_transformer 'text/sass', 'text/css', SassC::Rails::SassTemplate.new
57
+ env.register_transformer 'text/scss', 'text/css', SassC::Rails::ScssTemplate.new
58
+ end
59
+
60
+ if env.respond_to?(:register_engine)
61
+ [
62
+ ['.sass', SassC::Rails::SassTemplate],
63
+ ['.scss', SassC::Rails::ScssTemplate]
64
+ ].each do |engine|
65
+ engine << { silence_deprecation: true } if Sprockets::VERSION.start_with?("3")
66
+ env.register_engine(*engine)
67
+ end
68
+ end
69
+ end
70
+ end
71
+
72
+ initializer :setup_compression, group: :all do |app|
73
+ if !Rails.env.development?
74
+ app.config.assets.css_compressor = :sass unless app.config.assets.has_key?(:css_compressor)
75
+ else
76
+ # Use expanded output instead of the sass default of :nested unless specified
77
+ app.config.sass.style ||= :expanded
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "sprockets/version"
4
+ require 'sprockets/sass_processor'
5
+ require "sprockets/utils"
6
+
7
+ module SassC::Rails
8
+ class SassTemplate < Sprockets::SassProcessor
9
+ def initialize(options = {}, &block)
10
+ @cache_version = options[:cache_version]
11
+ @cache_key = "#{self.class.name}:#{VERSION}:#{SassC::VERSION}:#{@cache_version}".freeze
12
+ #@importer_class = options[:importer] || Sass::Importers::Filesystem
13
+ @sass_config = options[:sass_config] || {}
14
+ @functions = Module.new do
15
+ include Functions
16
+ include options[:functions] if options[:functions]
17
+ class_eval(&block) if block_given?
18
+ end
19
+ end
20
+
21
+ def call(input)
22
+ context = input[:environment].context_class.new(input)
23
+
24
+ options = {
25
+ filename: input[:filename],
26
+ line_comments: line_comments?,
27
+ syntax: self.class.syntax,
28
+ load_paths: input[:environment].paths,
29
+ importer: SassC::Rails::Importer,
30
+ sprockets: {
31
+ context: context,
32
+ environment: input[:environment],
33
+ dependencies: context.metadata[:dependency_paths]
34
+ }
35
+ }.merge!(config_options) { |key, left, right| safe_merge(key, left, right) }
36
+
37
+ engine = ::SassC::Engine.new(input[:data], options)
38
+
39
+ css = Sprockets::Utils.module_include(::SassC::Script::Functions, @functions) do
40
+ engine.render
41
+ end
42
+
43
+ context.metadata.merge(data: css)
44
+ end
45
+
46
+ def config_options
47
+ opts = { style: sass_style, load_paths: load_paths }
48
+
49
+
50
+ if Rails.application.config.sass.inline_source_maps
51
+ opts.merge!({
52
+ source_map_file: ".",
53
+ source_map_embed: true,
54
+ source_map_contents: true,
55
+ })
56
+ end
57
+
58
+ opts
59
+ end
60
+
61
+ def sass_style
62
+ (Rails.application.config.sass.style || :expanded).to_sym
63
+ end
64
+
65
+ def load_paths
66
+ Rails.application.config.sass.load_paths || []
67
+ end
68
+
69
+ def line_comments?
70
+ Rails.application.config.sass.line_comments
71
+ end
72
+
73
+ def safe_merge(_key, left, right)
74
+ if [left, right].all? { |v| v.is_a? Hash }
75
+ left.merge(right) { |k, l, r| safe_merge(k, l, r) }
76
+ elsif [left, right].all? { |v| v.is_a? Array }
77
+ (left + right).uniq
78
+ else
79
+ right
80
+ end
81
+ end
82
+
83
+ # The methods in the Functions module were copied here from sprockets in order to
84
+ # override the Value class names (e.g. ::SassC::Script::Value::String)
85
+ module Functions
86
+ def asset_path(path, options = {})
87
+ path = path.value
88
+
89
+ path, _, query, fragment = URI.split(path)[5..8]
90
+ path = sprockets_context.asset_path(path, options)
91
+ query = "?#{query}" if query
92
+ fragment = "##{fragment}" if fragment
93
+
94
+ ::SassC::Script::Value::String.new("#{path}#{query}#{fragment}", :string)
95
+ end
96
+
97
+ def asset_url(path, options = {})
98
+ ::SassC::Script::Value::String.new("url(#{asset_path(path, options).value})")
99
+ end
100
+
101
+ def asset_data_url(path)
102
+ url = sprockets_context.asset_data_uri(path.value)
103
+ ::SassC::Script::Value::String.new("url(" + url + ")")
104
+ end
105
+ end
106
+ end
107
+
108
+ class ScssTemplate < SassTemplate
109
+ def self.syntax
110
+ :scss
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SassC
4
+ module Rails
5
+ VERSION = "3.0.0"
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rails/version"
4
+
5
+ require "sassc"
6
+ require_relative "rails/functions"
7
+ require_relative "rails/importer"
8
+ require_relative "rails/template"
9
+ require_relative "rails/compressor"
10
+ require_relative "rails/railtie"
metadata ADDED
@@ -0,0 +1,185 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dartsass-sprockets
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Boland
8
+ - Johnny Shields
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2023-02-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: pry
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: bundler
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '10.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '10.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: mocha
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: dartsass-ruby
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '3.0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: tilt
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: railties
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 4.0.0
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 4.0.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: sprockets
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: sprockets-rails
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ description: Use Dart Sass with Sprockets and the Ruby on Rails asset pipeline.
141
+ email:
142
+ - ryan@tanookilabs.com
143
+ executables: []
144
+ extensions: []
145
+ extra_rdoc_files: []
146
+ files:
147
+ - LICENSE.txt
148
+ - README.md
149
+ - lib/dartsass-sprockets.rb
150
+ - lib/rails/generators/sass/assets/assets_generator.rb
151
+ - lib/rails/generators/sass/scaffold/scaffold_generator.rb
152
+ - lib/rails/generators/sass_scaffold.rb
153
+ - lib/rails/generators/scss/assets/assets_generator.rb
154
+ - lib/rails/generators/scss/scaffold/scaffold_generator.rb
155
+ - lib/sassc/rails.rb
156
+ - lib/sassc/rails/compressor.rb
157
+ - lib/sassc/rails/functions.rb
158
+ - lib/sassc/rails/importer.rb
159
+ - lib/sassc/rails/railtie.rb
160
+ - lib/sassc/rails/template.rb
161
+ - lib/sassc/rails/version.rb
162
+ homepage: https://github.com/sass/dartsass-sprockets
163
+ licenses:
164
+ - MIT
165
+ metadata: {}
166
+ post_install_message:
167
+ rdoc_options: []
168
+ require_paths:
169
+ - lib
170
+ required_ruby_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: 2.6.0
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubygems_version: 3.4.4
182
+ signing_key:
183
+ specification_version: 4
184
+ summary: Use Dart Sass with Sprockets and the Ruby on Rails asset pipeline.
185
+ test_files: []