--- /dev/null
+class Converter
+ module JsConversion
+ def process_javascript_assets
+ log_status 'Processing javascripts...'
+ save_to = @save_to[:js]
+ contents = {}
+ read_files('js', bootstrap_js_files).each do |name, file|
+ contents[name] = file
+ save_file("#{save_to}/#{name}", file)
+ end
+ log_processed "#{bootstrap_js_files * ' '}"
+
+ log_status 'Updating javascript manifest'
+ manifest = ''
+ bootstrap_js_files.each do |name|
+ name = name.gsub(/\.js$/, '')
+ manifest << "//= require ./bootstrap/#{name}\n"
+ end
+ dist_js = read_files('dist/js', %w(bootstrap.js bootstrap.min.js))
+ {
+ 'assets/javascripts/bootstrap-sprockets.js' => manifest,
+ 'assets/javascripts/bootstrap.js' => dist_js['bootstrap.js'],
+ 'assets/javascripts/bootstrap.min.js' => dist_js['bootstrap.min.js'],
+ }.each do |path, content|
+ save_file path, content
+ log_processed path
+ end
+ end
+
+ def bootstrap_js_files
+ @bootstrap_js_files ||= begin
+ files = get_paths_by_type('js', /\.js$/).reject { |path| path =~ %r(^tests/) }
+ files.sort_by { |f|
+ case f
+ # tooltip depends on popover and must be loaded earlier
+ when /tooltip/ then
+ 1
+ when /popover/ then
+ 2
+ else
+ 0
+ end
+ }
+ end
+ end
+ end
+end