From a565ce9390b0ff4858ff0cef9ae366200f370b6b Mon Sep 17 00:00:00 2001 From: Nick Donald Date: Mon, 25 Jul 2016 13:45:27 -0400 Subject: [PATCH 1/2] Follow sproket engine interface guidelines --- lib/css_splitter/sprockets_engine.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/css_splitter/sprockets_engine.rb b/lib/css_splitter/sprockets_engine.rb index f6ae2a8..89df42c 100644 --- a/lib/css_splitter/sprockets_engine.rb +++ b/lib/css_splitter/sprockets_engine.rb @@ -10,6 +10,15 @@ def self.engine_initialized? def prepare end + def self.call(input) + filename = input[:filename] + data = input[:data] + context = input[:environment].context_class.new(input) + + data = self.new(filename) { data }.render(context, {}) + context.metadata.merge(data: data.to_str) + end + def evaluate(scope, locals, &block) # Evaluate the split if the asset is named with a trailing _split2, _split3, etc. if scope.logical_path =~ /_split(\d+)$/ From 2d4211cafce6b4077dd3b1fafcecee5733515d4c Mon Sep 17 00:00:00 2001 From: Nick Donald Date: Mon, 25 Jul 2016 16:00:40 -0400 Subject: [PATCH 2/2] Clarify syntax, add comments --- lib/css_splitter/sprockets_engine.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/css_splitter/sprockets_engine.rb b/lib/css_splitter/sprockets_engine.rb index 89df42c..551af8c 100644 --- a/lib/css_splitter/sprockets_engine.rb +++ b/lib/css_splitter/sprockets_engine.rb @@ -11,12 +11,19 @@ def prepare end def self.call(input) - filename = input[:filename] - data = input[:data] - context = input[:environment].context_class.new(input) + data_in = input[:data] - data = self.new(filename) { data }.render(context, {}) - context.metadata.merge(data: data.to_str) + # Instantiate Sprockets::Context to pass along helper methods for Tilt + # processors + context = input[:environment].context_class.new(input) + + # Pass the asset file contents as a block to the template engine, + # then get the results of the engine rendering + engine = self.new { data_in } + rendered_data = engine.render(context, {}) + + # Return the data and any metadata (ie file dependencies, etc) + context.metadata.merge(data: rendered_data.to_str) end def evaluate(scope, locals, &block)