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.20131209'.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