Sha256: 3418358e80a7d4b1efe3a93e8a3e084fa17116c37c7f68efe3cf0bd4b1b62f6e

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

require 'rails'

module Spine
  module Generators
    class NewGenerator < ::Rails::Generators::Base
      source_root File.expand_path("../templates", __FILE__)
  
      desc "This generator installs Spine #{Spine::Rails::SPINE_VERSION} as part of assets pipeline"
      
      class_option :app, :type => :string, :default => "app", :desc => "app name"
      
      def app_name
        options[:app]
      end
      
      def app_class
        app_name.camelize
      end
          
      def create_dir_layout
        %W{models views controllers lib}.each do |dir|
          empty_directory "app/assets/javascripts/#{app_name}/#{dir}" 
          create_file "app/assets/javascripts/#{app_name}/#{dir}/.gitkeep"
        end
      end
    
      def create_app_file
        template "index.coffee.erb", "app/assets/javascripts/#{app_name}/index.js.coffee"
      end
     
      def add_spine_app_to_application
        source  = "app/assets/javascripts/application.js"
        content = File.read(source)
        
        if content.include?("//= require_tree .")
          inject_into_file source, :before => "//= require_tree ." do
            "//= require #{app_name}\n"
          end
        else
          append_file source, "\n//= require #{app_name}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spine-rails-0.0.8 lib/generators/spine/new/new_generator.rb