module DirectInject::InternalHelpers

Constants

ASSET_EXTENSIONS

Private Instance Methods

asset_for!( source , options ) click to toggle source
# File lib/direct_inject/internal_helpers.rb, line 23
def asset_for!( source , options )
  environment =
    options.delete 'sprockets_environment' do
      DirectInject.sprockets_environment
    end

  path = source

  if extname = compute_asset_extname( path , options )
    path = "#{ path }#{ extname }"
  end

  asset = environment.find_asset path

  if asset.nil?
    raise Errors::AssetNotFound , source
  end

  asset
end
compute_asset_extname(source, options = {}) click to toggle source
# File lib/direct_inject/internal_helpers.rb, line 44
def compute_asset_extname(source, options = {})
  return if options[ :extname ] == false
  extname = options[ :extname ] || ASSET_EXTENSIONS[ options[ :type ] ]
  extname if extname && File.extname( source ) != extname
end
data_uri_for( asset ) click to toggle source
# File lib/direct_inject/internal_helpers.rb, line 17
def data_uri_for( asset )
  prefix  = "data:#{ asset.content_type };base64,"
  encoded = Base64.encode64( asset.to_s ).gsub( /\s+/ , '' )
  "#{ prefix }#{ URI.encode_www_form_component encoded }"
end
render( *sources ) { |asset , options| ... } click to toggle source
# File lib/direct_inject/internal_helpers.rb, line 50
def render( *sources )
  options = Map.opts! sources

  sources.map do | source |
    asset = asset_for! source , options

    options.set \
      'data',
      'direct_inject_source',
      source

    if block_given?
      yield( asset , options ).to_s
    else
      ''
    end
  end.join "\n"
end