lib/galakei/docomo_css/inline_stylesheet.rb in galakei-0.13.2 vs lib/galakei/docomo_css/inline_stylesheet.rb in galakei-0.13.3

- old
+ new

@@ -19,18 +19,23 @@ private def self.parser(href) parser = CssParser::Parser.new uri = URI.parse(href) - if uri.host && uri.scheme && uri.port - parser.load_uri!(uri) - elsif /^\/assets\/([^?]+)/=~ href - asset = Rails.application.assets.find_asset($1) + asset_host = ActionController::Base.asset_host + # Hack to handle if asset host is a proc. Call it with nil for all arguments. + if asset_host.respond_to?(:call) + asset_host = asset_host.call(*asset_host.arity.times.map { nil }) + end + if /(#{asset_host}|^)\/assets\/([^?]+)/ =~ href + asset = Rails.application.assets.find_asset($2) if asset parser.add_block!(asset.to_s, {:media_types => :all, :base_dir => File.dirname(href)}) else - Rails.logger.warn("[galakei] asset lookup for #{$1} failed, skipping") + Rails.logger.warn("[galakei] asset lookup for #{$2} failed, skipping") end + elsif uri.host && uri.scheme && uri.port && uri.host + parser.load_uri!(uri) else parser.load_file!(path(href)) end return parser end