class Sasstool::Renderer

Attributes

path[R]

Public Class Methods

new(path) click to toggle source
# File lib/sasstool/renderer.rb, line 9
def initialize(path)
  @path = path
end

Public Instance Methods

sass?() click to toggle source
# File lib/sasstool/renderer.rb, line 19
def sass?
  path.end_with? 'sass'
end
save(target_dir) click to toggle source
# File lib/sasstool/renderer.rb, line 13
def save(target_dir)
  name = "#{target_dir}/#{basename}"
  File.write name, render
  File.write "#{name}.map", source_map
end
to_scss() click to toggle source
# File lib/sasstool/renderer.rb, line 23
def to_scss
  SassC::Sass2Scss.convert file_content
end

Private Instance Methods

basename() click to toggle source
# File lib/sasstool/renderer.rb, line 29
def basename
  @basename ||= File.basename(path).gsub(/s[ca]ss$/, 'css')
end
engine() click to toggle source
# File lib/sasstool/renderer.rb, line 55
def engine
  @engine ||= SassC::Engine.new(scss_content, options)
end
file_content() click to toggle source
# File lib/sasstool/renderer.rb, line 33
def file_content
  @file_content ||= File.read(path)
end
options() click to toggle source
# File lib/sasstool/renderer.rb, line 45
def options
  @options ||= {
    source_map_file: "#{path.gsub(/s[ca]ss$/, 'css')}.map",
    source_map_contents: true,
    style: :nested,
    importer: Importer,
    filename: path
  }
end
scss_content() click to toggle source
# File lib/sasstool/renderer.rb, line 37
def scss_content
  @scss_content ||= scss_content!
end
scss_content!() click to toggle source
# File lib/sasstool/renderer.rb, line 41
def scss_content!
  sass? ? to_scss : file_content
end