class Less::Rails::ImportProcessor
Constants
- IMPORT_SCANNER
- PATHNAME_FINDER
Public Class Methods
call(input)
click to toggle source
# File lib/less/rails/import_processor.rb, line 30 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
depend_on(scope, source, base=File.dirname(scope.logical_path))
click to toggle source
# File lib/less/rails/import_processor.rb, line 39 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
evaluate(filename, source, scope)
click to toggle source
# File lib/less/rails/import_processor.rb, line 25 def self.evaluate(filename, source, scope) depend_on scope, source source end
new(filename, &block)
click to toggle source
# File lib/less/rails/import_processor.rb, line 16 def initialize(filename, &block) @filename = filename @source = block.call end
Public Instance Methods
render(scope, locals)
click to toggle source
# File lib/less/rails/import_processor.rb, line 21 def render(scope, locals) self.class.evaluate(@filename, @source, scope) end