class Gakubuchi::EngineRegistrar
Constants
- EXTENSION_WITH_SIGLE_DOT
Public Class Methods
new(env)
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 10 def initialize(env) @env = env end
Public Instance Methods
register(mime_type, engine_name_or_class)
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 14 def register(mime_type, engine_name_or_class) engine = constantize(engine_name_or_class) return false if !engine.instance_of?(::Class) || mime_type.extensions.empty? if sprockets_major_version >= 4 register_as_transformer(mime_type, engine) else register_as_engine(mime_type, engine) end true end
Private Instance Methods
constantize(constant_name)
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 29 def constantize(constant_name) constant_name.to_s.constantize rescue ::LoadError, ::NameError nil end
register_as_engine(mime_type, engine)
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 39 def register_as_engine(mime_type, engine) mime_type.extensions.select { |ext| ext =~ EXTENSION_WITH_SIGLE_DOT }.each do |ext| args = [ext, engine] args << { silence_deprecation: true } if sprockets_major_version == 3 @env.register_engine(*args) end end
register_as_transformer(mime_type, engine)
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 47 def register_as_transformer(mime_type, engine) content_type = mime_type.content_type @env.register_mime_type(content_type, extensions: mime_type.extensions) @env.register_transformer(content_type, engine.default_mime_type, ::Grease.apply(engine)) end
sprockets_major_version()
click to toggle source
# File lib/gakubuchi/engine_registrar.rb, line 35 def sprockets_major_version @sprockets_major_version ||= ::Gem::Version.new(::Sprockets::VERSION).segments.first end