Sha256: dbf7dfda686f53bc00729b76754d2db082f320e97b8b56f769c614214008a0c0

Contents?: true

Size: 782 Bytes

Versions: 7

Compression:

Stored size: 782 Bytes

Contents

module Bunch
  class SassNode < FileNode
    def initialize(fn)
      SassNode.require_sass
      @filename = fn
    end

    def content
      @content ||= fetch(@filename) { Sass::Engine.for_file(@filename, :style => SassNode.style).render }
    rescue => e
      raise CompileError.new(e, @filename)
    end

    def name
      File.basename(@filename).sub(/\.s(c|a)ss$/, '')
    end

    def target_extension
      '.css'
    end
  end

  class << SassNode
    attr_writer :style

    def require_sass
      unless @required
        require 'sass'
        @required = true
      end
    rescue LoadError
      raise "'gem install sass' to compile .sass and .scss files."
    end

    def style
      @style ||= (env = ENV['SASS_STYLE']) ? env.to_sym : :nested
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bunch-0.2.2 lib/bunch/sass_node.rb
bunch-0.2.1 lib/bunch/sass_node.rb
bunch-0.2.0 lib/bunch/sass_node.rb
bunch-0.1.0 lib/bunch/sass_node.rb
bunch-0.0.11 lib/bunch/sass_node.rb
bunch-0.0.10 lib/bunch/sass_node.rb
bunch-0.0.9 lib/bunch/sass_node.rb