みなさんご存知の通り、sass
というGemをインストールすることで、
$ gem install sass
以下のようにして、SCSSファイルをCSSにコンパイルできます。
$ sass input.scss output.css
しかし、コマンドラインでなく、Rubyプログラム中でSCSS文字列をCSS文字列にコンパイルするにはどうすればいいのでしょうか。
結論としては、以下のようにすればOKです。
(Ruby初心者なんでコードだせぇww とか言わないでw)
#!/usr/bin/env ruby
require 'sass'
stdinStr = "";
while line = STDIN.gets
if (/exit/ =~ line)
break;
end
stdinStr += line
end
engine = Sass::Engine.new(stdinStr, :syntax => :scss)
begin
print engine.render
rescue => ex
print "Line " + ex.sass_line.to_s + ": " + ex.to_s + "\n"
end
なんらかの事情で、コマンドラインを介さずに動的にSCSSをコンパイルしなければならない場合(Webデザイン系のWebサービスを作るときとか?)に使えるのではないでしょうか。