Sha256: bc6ae08f9b077fe6b44a6598d5cb373069575dd05c95774a8f9d7a26fcde867a

Contents?: true

Size: 833 Bytes

Versions: 1

Compression:

Stored size: 833 Bytes

Contents

module Pieces
  class StyleCompiler
    attr_reader :path

    def initialize(config = {})
      @path = config[:path] || Dir.pwd
    end

    def compile(files)
      files.merge('compiled.css' => { contents: '', type: 'css' }).tap do |files|
        files['compiled.css'][:contents] << yield_stylesheets('app/assets/stylesheets/components')
        files['compiled.css'][:contents] << yield_stylesheets('app/views')
      end
    end

    private

    def yield_stylesheets(dir)
      Dir["#{path}/#{dir}/**/*.{css,scss,sass,less}"].reduce('') do |contents, stylesheet|
        contents << ::Tilt.new(stylesheet, sass_config).render
      end
    end

    def sass_config
      if defined? Compass
        Compass.sass_engine_options
      else
        { load_paths: "#{path}/app/assets/stylesheets/" }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pieces-0.3.11 lib/pieces/compilers/style_compiler.rb