class ActionView::Helpers::AssetTagHelper::JavascriptIncludeTag

def add_application_js(expanded_sources, sources)

def add_application_js(expanded_sources, sources)
  if (sources.include?(:defaults) || sources.include?(:all)) && File.exist?(File.join(custom_dir, "application.#{extension}"))
    expanded_sources.delete('application')
    expanded_sources << "application"
  end
end

def asset_name

def asset_name
  'javascript'
end

def asset_tag(source, options)

def asset_tag(source, options)
  content_tag("script", "", { "type" => Mime::JS, "src" => path_to_asset(source) }.merge(options))
end

def custom_dir

def custom_dir
  config.javascripts_dir
end

def expand_sources(sources, recursive = false)

def expand_sources(sources, recursive = false)
  if sources.include?(:all)
    all_asset_files = (collect_asset_files(custom_dir, ('**' if recursive), "*.#{extension}") - ['application'])
    add_application_js(all_asset_files, sources)
    ((determine_source(:defaults, expansions).dup & all_asset_files) + all_asset_files).uniq
  else
    expanded_sources = sources.inject([]) do |list, source|
      determined_source = determine_source(source, expansions)
      update_source_list(list, determined_source)
    end
    add_application_js(expanded_sources, sources)
    expanded_sources
  end
end

def extension

def extension
  'js'
end