Skip to content

Commit 093ad1d

Browse files
Enable Config Options
1 parent f65b900 commit 093ad1d

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

lib/sass/rails.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ module Rails
77
require 'sass/rails/version'
88
require 'sass/rails/helpers'
99
require 'sass/rails/importer'
10+
require 'sass/rails/template'
1011
require 'sass/rails/railtie'

lib/sass/rails/railtie.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
module Sass::Rails
44
class Railtie < ::Rails::Railtie
5+
module SassContext
6+
attr_accessor :sass_config
7+
end
8+
59
config.sass = ActiveSupport::OrderedOptions.new
610

711
# Establish static configuration defaults
@@ -47,6 +51,11 @@ class Railtie < ::Rails::Railtie
4751
config.sass.full_exception = app.config.consider_all_requests_local
4852
end
4953

54+
if app.assets
55+
app.assets.context_class.extend(SassContext)
56+
app.assets.context_class.sass_config = app.config.sass
57+
end
58+
5059
Sass.logger = app.config.sass.logger
5160
end
5261

lib/sass/rails/template.rb

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
require "sprockets/sass_template"
2+
3+
module Sprockets
4+
class SassTemplate
5+
def evaluate(context, locals, &block)
6+
cache_store = SassCacheStore.new(context.environment)
7+
8+
options = {
9+
:filename => eval_file,
10+
:line => line,
11+
:syntax => syntax,
12+
:cache_store => cache_store,
13+
:importer => SassImporter.new(context, context.pathname),
14+
:load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) },
15+
:sprockets => {
16+
:context => context,
17+
:environment => context.environment
18+
}
19+
}
20+
21+
sass_config = context.environment.context_class.sass_config.merge(options)
22+
::Sass::Engine.new(data, sass_config).render
23+
rescue ::Sass::SyntaxError => e
24+
context.__LINE__ = e.sass_backtrace.first[:line]
25+
raise e
26+
end
27+
end
28+
end

0 commit comments

Comments
 (0)