class Less::Rails::LessTransformer
Constants
- TO_CSS_KEYS
Public Class Methods
call(input)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 24 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
default_mime_type()
click to toggle source
# File lib/less/rails/less_transformer.rb, line 33 def self.default_mime_type 'text/css' end
evaluate(filename, source, scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 17 def self.evaluate(filename, source, scope) Less.Parser['scope'] = scope parser = ::Less::Parser.new config_to_less_parser_options(filename, scope) engine = parser.parse(source) engine.to_css config_to_css_options(scope) end
new(filename, &block)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 8 def initialize(filename, &block) @filename = filename @source = block.call end
Protected Class Methods
config_from_rails(scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 58 def self.config_from_rails(scope) scope.environment.context_class.less_config end
config_paths(scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 50 def self.config_paths(scope) config_from_rails(scope)[:paths] end
config_raw(scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 54 def self.config_raw(scope) config_from_rails(scope)[:raw] end
config_to_css_options(scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 46 def self.config_to_css_options(scope) Hash[config_from_rails(scope).each.to_a].slice *TO_CSS_KEYS end
config_to_less_parser_options(filename, scope)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 39 def self.config_to_less_parser_options(filename, scope) paths = config_paths(scope) + scope.environment.paths local_path = scope.pathname.dirname paths += [local_path] unless paths.include? local_path {:filename => filename, :paths => paths, :dumpLineNumbers => config_from_rails(scope).line_numbers}.merge(config_raw(scope)) end
Public Instance Methods
render(scope, locals)
click to toggle source
# File lib/less/rails/less_transformer.rb, line 13 def render(scope, locals) self.class.evaluate(@filename, @source, scope) end