module Condenser::Pipeline
Constants
- CONFIG_VARS
Public Class Methods
new(*args, **kws, &block)
click to toggle source
Calls superclass method
# File lib/condenser/pipeline.rb, line 15 def initialize(*args, **kws, &block) CONFIG_VARS.each do |var_name| original_var = self.class.instance_variable_get("@#{var_name}") new_var = original_var.dup if original_var.is_a?(Hash) original_var.each do |k, v| new_var[k] = v.dup if v.is_a?(Hash) || v.is_a?(Array) end end instance_variable_set("@#{var_name}", new_var) end super end
prepended(base)
click to toggle source
# File lib/condenser/pipeline.rb, line 6 def self.prepended(base) base.extend(self) CONFIG_VARS.each do |var| base.instance_variable_set("@#{var}", {}) base.send(:attr_reader, var) self.send(:attr_reader, var) end end
Public Instance Methods
clear_pipeline()
click to toggle source
# File lib/condenser/pipeline.rb, line 144 def clear_pipeline (CONFIG_VARS - [:mime_types, :extensions]).each { |v| self.instance_variable_set("@#{v}", {}) } end
minifier_for(mime_type)
click to toggle source
# File lib/condenser/pipeline.rb, line 112 def minifier_for(mime_type) @minifiers[mime_type] end
pipline_digest()
click to toggle source
# File lib/condenser/pipeline.rb, line 62 def pipline_digest @pipline_digest ||= Digest::MD5.hexdigest(pipline_hash) end
pipline_hash()
click to toggle source
# File lib/condenser/pipeline.rb, line 51 def pipline_hash JSON.generate(pipline_to_json([ @templates, @preprocessors, @transformers, @postprocessors, @minifiers, @exporters ])) end
pipline_to_json(values)
click to toggle source
# File lib/condenser/pipeline.rb, line 31 def pipline_to_json(values) if values.is_a?(Hash) values.transform_values do |value| pipline_to_json(value) end elsif values.is_a?(Array) values.map do |value| pipline_to_json(value) end elsif values.is_a?(Class) || values.is_a?(Module) values.name elsif values.is_a?(String) @base ? values.delete_prefix(@base) : values elsif values.nil? || values == true || values == false || values.is_a?(Symbol) || values.is_a?(Integer) || values.is_a?(Float) values else { values.class.name => pipline_to_json(values.options) } end end
register_exporter(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 100 def register_exporter(mime_type, engine) @exporters[mime_type] = engine end
register_mime_type(mime_type, extensions: nil, extension: nil, charset: :default)
click to toggle source
# File lib/condenser/pipeline.rb, line 66 def register_mime_type(mime_type, extensions: nil, extension: nil, charset: :default) extensions = Array(extensions || extension) @mime_types[mime_type] = { extensions: extensions, charset: charset } extensions.each { |ext| @extensions[ext] = mime_type } end
register_minifier(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 108 def register_minifier(mime_type, engine) @minifiers[mime_type] = engine end
register_postprocessor(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 95 def register_postprocessor(mime_type, engine) @postprocessors[mime_type] ||= [] @postprocessors[mime_type] << engine end
register_preprocessor(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 77 def register_preprocessor(mime_type, engine) @preprocessors[mime_type] ||= [] @preprocessors[mime_type] << engine end
register_template(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 73 def register_template(mime_type, engine) @templates[mime_type] = engine end
register_transformer(from_mime_type, to_mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 90 def register_transformer(from_mime_type, to_mime_type, engine) @transformers[from_mime_type] ||= {} @transformers[from_mime_type][to_mime_type] = engine end
register_writer(engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 120 def register_writer(engine) Array(engine.mime_types).each do |mime_type| @writers[mime_type] ||= [] @writers[mime_type] << engine end end
unregister_exporter(mime_type, engine)
click to toggle source
# File lib/condenser/pipeline.rb, line 104 def unregister_exporter(mime_type, engine) @exporters[mime_type] = nil end
unregister_minifier(mime_type)
click to toggle source
# File lib/condenser/pipeline.rb, line 116 def unregister_minifier(mime_type) @minifiers[mime_type] = nil end
unregister_preprocessor(mime_type, engine=nil)
click to toggle source
# File lib/condenser/pipeline.rb, line 82 def unregister_preprocessor(mime_type, engine=nil) if engine.nil? @preprocessors[mime_type].clear else @preprocessors[mime_type]&.reject! { |e| e == engine || e.is_a?(engine) } end end
unregister_writer(engine, for_mime_types: [])
click to toggle source
# File lib/condenser/pipeline.rb, line 127 def unregister_writer(engine, for_mime_types: []) mime_types = @writers.keys if mime_types.nil? Array(for_mime_types || @writers.keys).each do |mime_type| @writers[mime_type].select! do |writer| if engine.nil? || engine == writer[0] || writer[0].is_a?(engine) if added_mime_types.nil? || added_mime_types == writer[1] false else true end else true end end end end