Class: SassConvert

Inherits:
Object
  • Object
show all
Defined in:
lib/sinatra/sassconvert.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ SassConvert

Returns a new instance of SassConvert.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/sinatra/sassconvert.rb', line 5

def initialize(options)
  @options = options
  @extension = options[:syntax].to_s
  @sass_dir = options[:template_location].to_s
  @css_dir = options[:css_location].to_s
  append_trail
  check_dirs
  Dir.new("#{@sass_dir}/").each do |file|
    if file.include?(".#{@extension}")
      convert(file)
    end
  end
end

Instance Method Details

#append_trailObject



27
28
29
30
# File 'lib/sinatra/sassconvert.rb', line 27

def append_trail
  @sass_dir += '/' if @sass_dir.split(//).last != '/'
  @css_dir += '/' if @css_dir.split(//).last != '/'
end

#check_dirsObject



32
33
34
35
36
# File 'lib/sinatra/sassconvert.rb', line 32

def check_dirs
  Dir.mkdir('public') unless File.exists?('public')
  Dir.mkdir(@sass_dir) unless File.exists?(@sass_dir)
  Dir.mkdir(@css_dir) unless File.exists?(@css_dir)
end

#convert(file) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/sinatra/sassconvert.rb', line 19

def convert(file)
  template = File.read("#{@sass_dir}#{file}")
  sass_engine = Sass::Engine.new(template, @options)
  output = sass_engine.render
  file.gsub!(@extension, 'css')
  IO.write("#{@css_dir}#{file}", output)
end