Sha256: 7c4e20618dfd3d19af08a10bbb57125ef0691b8f067bdb7b3987f4461e1904a0

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

require 'generators/backbone/resource_helpers'

module Backbone
  module Generators
    class ControllerGenerator < Rails::Generators::NamedBase
      include Backbone::Generators::ResourceHelpers
      
      source_root File.expand_path("../templates", __FILE__)
      desc "This generator creates a backbone controller with views and templates for the provided actions"
      
      argument :actions, :type => :array, :default => [], :banner => "action action"
      
      RESERVED_JS_WORDS = %W{
        break case catch continue debugger default delete do else finally for 
        function if in instanceof new return switch this throw try typeof var void while with 
      }
      
      def validate_no_reserved_words
        actions.each do |action|
          if RESERVED_JS_WORDS.include? action
             raise Thor::Error, "The name '#{action}' is reserved by javascript " <<
                                "Please choose an alternative action name and run this generator again."
          end
        end
      end
      
      def create_controller_files 
        template 'controller.coffee', File.join(backbone_path, "controllers", class_path, "#{file_name}_controller.coffee")
      end
      
      def create_view_files
         actions.each do |action|
           @action = action
           @view_path = File.join(backbone_path, "views", plural_name, "#{action}_view.coffee")
           @jst_path = File.join(backbone_path,"templates", plural_name, "#{action}.jst.ejs")
           
           template "view.coffee", @view_path
           template "template.jst", @jst_path
         end
      end
      
      protected
        

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails-backbone-0.2.0 lib/generators/backbone/controller/controller_generator.rb
rails-backbone-0.1.2 lib/generators/backbone/controller/controller_generator.rb