module RevelryContent module Generators class JsGenerator < ::Rails::Generators::Base JS_FILE_EXTENSIONS = %w( .coffee .coffee.erb .js.coffee .js.coffee.rb .js .js.rb ) def add_js_assets insert_into_file js_app_bundle, before: %r{(//|#)= require_tree \.} do "#{ js_require_marker }= require revelry_content\n" end end private def js_app_bundle File.join(js_base_dir, "application#{ js_file_extname }") end def test_js_format(fmt) File.exist?(File.join(js_base_dir, "application#{ fmt }")) end def js_base_dir File.join('app', 'assets', 'javascripts') end def js_file_extname JS_FILE_EXTENSIONS.find { |fmt| test_js_format(fmt) } end def js_require_marker '#' if js_file_extname.include?('coffee') '//' end end end end