class Csso::Compressor

Public Class Methods

call(input) click to toggle source
# File lib/csso/compressor.rb, line 3
def self.call(input)
  require 'csso'
  #TODO: settings?
  if input[:metadata] && input[:metadata][:map]
    css, map_json = Csso.optimize_with_sourcemap(input[:data],
      # Sprockets::PathUtils.split_subpath(input[:load_path], input[:filename])
      # sprockets seems to ignore filenames here, so we may save some mem:
      'uri'
    )

    {
      data: css,
      map: Sprockets::SourceMapUtils.combine_source_maps(input[:metadata][:map], JSON.parse(map_json))
    }
  else
    { data: Csso.optimize(input[:data], true) }
  end
end
new(path, &block) click to toggle source

sprockets 2:

# File lib/csso/compressor.rb, line 24
def initialize path, &block
  @block = block
end

Public Instance Methods

render(context, opts={}) click to toggle source
# File lib/csso/compressor.rb, line 28
def render context, opts={}
  self.class.call({data: @block.call})[:data]
end