Module: AutoprefixerRails

Defined in:
lib/autoprefixer-rails.rb,
lib/autoprefixer-rails/version.rb,
lib/autoprefixer-rails/compiler.rb

Overview

Ruby integration with Autoprefixer JS library, which parse CSS and adds only actual prefixed

Defined Under Namespace

Classes: Compiler

Constant Summary collapse

VERSION =
'0.8.20131015'.freeze

Class Method Summary collapse

Class Method Details

.compile(css, browsers = nil) ⇒ Object

Parse ‘css` and add vendor prefixes for `browsers`



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

def self.compile(css, browsers = nil)
  compiler(browsers).compile(css)
end

.compiler(browsers) ⇒ Object

Cache compiler instances



51
52
53
54
# File 'lib/autoprefixer-rails.rb', line 51

def self.compiler(browsers)
  @cache ||= { }
  @cache[browsers] ||= Compiler.new(browsers)
end

.install(assets, browsers = nil) ⇒ Object

Add Autoprefixer for Sprockets environment in ‘assets`. You can specify `browsers` actual in your project.



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

def self.install(assets, browsers = nil)
  instance = compiler(browsers)
  assets.register_postprocessor 'text/css', :autoprefixer do |context, css|
    if defined?(Sass::Rails) or defined?(Sprockets::Sass)
      begin
        instance.compile(css)
      rescue ExecJS::ProgramError => e
        if e.message =~ /Can't parse CSS/
          css
        else
          raise e
        end
      end
    else
      instance.compile(css)
    end
  end
end