Sha256: b56a28b682ad5abf22a866bfaaf002e1d06c595738b220851167fc9d42e7cd88
Contents?: true
Size: 1.42 KB
Versions: 3
Compression:
Stored size: 1.42 KB
Contents
module Less module Rails class ImportProcessor # http://lesscss.org/features/#import-options IMPORT_SCANNER = /@import\s*(?:\([a-z, ]+\))*\s*['"]([^'"]+)['"]\s*;/.freeze PATHNAME_FINDER = Proc.new do |scope, path| begin scope.resolve(path) rescue Sprockets::FileNotFound nil end end def initialize(filename, &block) @filename = filename @source = block.call end def render(scope, locals) self.class.evaluate(@filename, @source, scope) end def self.evaluate(filename, source, scope) depend_on scope, source source end def self.call(input) filename = input[:filename] source = input[:data] scope = input[:environment].context_class.new(input) result = evaluate(filename, source, scope) scope.metadata.merge(data: result) end def self.depend_on(scope, source, base=File.dirname(scope.logical_path)) import_paths = source.scan(IMPORT_SCANNER).flatten.compact.uniq import_paths.each do |path| pathname = PATHNAME_FINDER.call(scope, path) || PATHNAME_FINDER.call(scope, File.join(base, path)) scope.depend_on(pathname) if pathname && pathname.to_s.ends_with?('.less') depend_on scope, File.read(pathname), File.dirname(path) if pathname end source end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
less-rails-5.0.0 | lib/less/rails/import_processor.rb |
less-rails-4.0.0 | lib/less/rails/import_processor.rb |
less-rails-4.0.0.rc1 | lib/less/rails/import_processor.rb |