Module: JsRoutes

Defined in:
lib/js_routes.rb,
lib/js_routes/engine.rb,
lib/js_routes/railtie.rb,
lib/js_routes/version.rb,
lib/generators/js_routes/install/install_generator.rb

Defined Under Namespace

Modules: Generators Classes: Engine, Middleware, Railtie

Constant Summary collapse

VERSION =
"0.1.18"

Class Method Summary collapse

Class Method Details

.generate_routes_fileObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/js_routes/railtie.rb', line 33

def self.generate_routes_file
  puts 'GENERATING ROUTES FILE'
  filename = File.join(Rails.root, 'public', 'javascripts', 'js_routes.js')
  FileUtils.rm filename, :force => true
  File.open(filename, 'w') do |f|
    f << 'window.Routes = {};'
    Rails.application.reload_routes!
    Rails.application.routes.routes.each do |route|
      defaults = route.defaults

      unless defaults.present? && defaults.has_key?(:exclude_from_js) && defaults[:exclude_from_js]
        f << <<-JS.strip
          Routes.#{route.name}_path = function() {
              Array.prototype.unshift.call(arguments, '#{route.path}');
              return $.buildPath.apply($, arguments);
          };
        JS
      end
    end
  end
end