Class: AutoprefixerRails::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/autoprefixer-rails/processor.rb

Overview

Ruby to JS wrapper for Autoprefixer processor instance

Instance Method Summary collapse

Constructor Details

#initialize(browsers = nil, opts = {}) ⇒ Processor

Returns a new instance of Processor.



7
8
9
10
# File 'lib/autoprefixer-rails/processor.rb', line 7

def initialize(browsers = nil, opts = {})
  @browsers = browsers || []
  @options  = opts
end

Instance Method Details

#convert_options(opts) ⇒ Object

Convert ruby_options to jsOptions



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/autoprefixer-rails/processor.rb', line 35

def convert_options(opts)
  converted = { }

  opts.each_pair do |name, value|
    if name =~ /_/
      name = name.to_s.gsub(/_\w/) { |i| i.gsub('_', '').upcase }.to_sym
    end
    value = convert_options(value) if value.is_a? Hash
    converted[name] = value
  end

  converted
end

#infoObject

Return, which browsers and prefixes will be used



25
26
27
# File 'lib/autoprefixer-rails/processor.rb', line 25

def info
  processor.call('info')
end

#process(css, opts = {}) ⇒ Object

Process ‘css` and return result.

Options can be:

  • ‘from` with input CSS file name. Will be used in error messages.

  • ‘to` with output CSS file name.

  • ‘map` with true to generate new source map or with previous map.



18
19
20
21
22
# File 'lib/autoprefixer-rails/processor.rb', line 18

def process(css, opts = {})
  opts   = convert_options(opts)
  result = processor.call('process', css, opts)
  Result.new(result['css'], result['map'])
end

#processorObject

Lazy load for JS instance



30
31
32
# File 'lib/autoprefixer-rails/processor.rb', line 30

def processor
  @processor ||= ExecJS.compile(build_js)
end