class Condenser::Railtie

Public Class Methods

build_manifest(app) click to toggle source
# File lib/condenser/railtie.rb, line 164
def self.build_manifest(app)
  config = app.config
  
  path = File.join(config.paths['public'].first, config.assets.prefix)
  Condenser::Manifest.new(app.assets, path, config.assets.manifest)
end

Public Instance Methods

build_environment(app, initialized = nil) click to toggle source
# File lib/condenser/railtie.rb, line 121
def build_environment(app, initialized = nil)
  initialized = app.initialized? if initialized.nil?
  unless initialized
    ::Rails.logger.warn "Application uninitialized: Try calling YourApp::Application.initialize!"
  end

  env = Condenser.new(pipeline: false, logger: ::Rails.logger, base: app.root.to_s)
  config = app.config

  if config.assets._pipeline

  else
    env.register_transformer  'text/scss', 'text/css', Condenser::ScssTransformer.new({
      functions: Condenser::Railtie::SassFunctions
    })

    if ::Rails.env == 'development'
      env.register_preprocessor 'application/javascript', Condenser::JSAnalyzer
    else
      env.register_preprocessor 'application/javascript', Condenser::BabelProcessor
    end
  
    env.register_exporter       'application/javascript', Condenser::RollupProcessor

    if ::Rails.env != 'development'
      env.register_minifier       'application/javascript', resolve_minifier(config.assets.js_minifier) if config.assets.js_minifier
      env.register_minifier       'text/css', resolve_minifier(config.assets.css_minifier) if config.assets.css_minifier
    end

    env.register_writer Condenser::FileWriter.new
    config.assets.compressors&.each do |writer|
      env.register_writer resolve_writer(writer)
    end
  end

  # Run app.assets.configure blocks
  config.assets._blocks.each do |block|
    block.call(app, env)
  end

  env
end
resolve_minifier(value) click to toggle source
# File lib/condenser/railtie.rb, line 105
def resolve_minifier(value)
  if value.is_a?(Symbol) || value.is_a?(String)
    "Condenser::#{value.to_s.camelize}Minifier".constantize
  else
    value
  end
end
resolve_writer(value) click to toggle source
# File lib/condenser/railtie.rb, line 113
def resolve_writer(value)
  if value.is_a?(Symbol) || value.is_a?(String)
    "Condenser::#{value.to_s.camelize}Writer".constantize.new
  else
    value
  end
end