2013-09-23 31 views
0

我使用JRuby使用指南针编译青菜CSS指南针编译使用字符串输入

我知道如何使用指南针编译SCSS文件:

compiler = Compass::Compiler.new(
      # Compass working directory 
      '.', 
      # Input directory 
      'styles/scss', 
      # Output directory 
      'styles/css', 
      # Compass options 
      { :style => :scss} 
      )   
compiler.compile('test.scss','test.css') 

,但我想编译一些指南针来源,我有一个字符串,而不是在一个文件 我已经潜入北斗::编译器源代码,但我还没有看到任何方式编译SCSS字符串,而不是一个文件

注: 使用SASS编译器,而不是直接指南针我可以编译SCSS串

engine = Sass::Engine.new(source,:syntax => :scss) 
result = engine.render 

回答

0

罗盘::编译红宝石型挖多一点之后,我发现,毕竟它是委托给萨斯::引擎在赛普尔方法:

的编译功能是一样的东西:

def compile(sass_filename, css_filename) 
    ... 
    engine(sass_filename, css_filename).render 
    ... 
end 

被调用引擎功能:

def engine(sass_filename, css_filename) 
    ... 
    Sass::Engine.new(open(sass_filename).read, opts) 
    ... 
end 

所以编译使用罗盘字符串的方法是使用利用原料萨斯编译相同:

Sass::Engine.new(scssString,{:syntax => :scss, 
          :compass => {:css_dir => 'stylesheets',:js_dir => 'javascripts',:images_dir => 'images'}}) 
result = engine.render