0

SASSにデータベースから渡されたデータをコンパイルさせる方法はありますか?DBI+ODBCを使用してMSSQLServer2008からデータを取得できますが、SASSにファイルではなく渡されたデータをコンパイルさせるにはどうすればよいですか?

有用なものは何も見つかりませんでした。sassコアファイルを変更するのは最善のアイデアとは思えません...特にRubyの知識がないことを考えると。

4

1 に答える 1

1

私はこのコードのチャンクを使用することになりました。完全にエレガントではありませんが、それが変質的なニーズを持つ人に役立つことを願っています。

sass gem dirのsql.rb:

require 'dbi'
require 'sass'
require config with database credentials

if File.exist?(config)
    require config

    SQL_OPTIONS = {
        :style => :nested,
        :load_paths => ['.'],
        :cache => true,
        :cache_location => './.sass-cache',
        :syntax => :scss,
        :filesystem_importer => Sass::Importers::Filesystem,
        :css_location => "./public/stylesheets",
        :always_update => true,
        :template_location => [["scss", "css"]]
    }.freeze

    db = DBI.connect('dbi:ODBC:driver={SQL Server};server=' + $db_host, $db_user, $db_pass)

    db.select_all('SELECT name, scope, content FROM ' + $db_name + '.dbo.scss') do | row |
        File.open(Dir.pwd + '/css/' + row['name'] + '.css', 'w') do |css|  
            css.puts Sass::Engine.new(row['content'], SQL_OPTIONS).render
            puts '  overwrite css/' + row['name'] + '.css [db]'
        end
    end
else
    puts 'ignore database stylesheets, config_ruby doesn\'t exist'
end

lib / sass / engine.rbの最後に、このファイルを含めました。

require File.expand_path(File.dirname(__FILE__) + '../../../sql')

追加dbidbd-odbcgemが必要で、sass--updateと--watchに影響します。

これが誰かを助けることを願っています。

于 2012-07-20T14:10:30.480 に答える