Sha256: cf9b3f8bffa75cbc2bea381834bc508164813874217b64dfa7a453775420ddef

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

require_relative './base'

module Joosy
  module Generators
    class ApplicationGenerator < Base
      argument :name, type: :string, optional: true

      def create_application
        dependencies = <<-COFFEE
#= require hamlcoffee
#= require jquery
#= require joosy
#= require joosy/resources
#= require joosy/railties
#= require sugar
        COFFEE

        @options = {
          'dependencies' => dependencies,
          'html5'        => true,
          'prefix'       => name || ''
        }

        directory 'application', Pathname.new('app/assets/javascripts/').join(name || '')
      end

      def create_bindings
        self.destination_root = ::Rails.root

        if !name
          index = ::Rails.root.join('app/assets/javascripts/application.js')

          if File.exists?(index)
            copy_file index, 'app/assets/javascripts/application.js-old'
            remove_file index
          end
        end

        layout = 'joosy'
        layout << "/#{name}" if name
        erb_template File.expand_path('../templates/layout.html.erb', __FILE__), "app/views/layouts/#{layout}.html.erb"

        application = name ? ", application: '#{name}'" : ''
        route "joosy '/#{name}'#{application}"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
joosy-rails-1.0.0.rc4 lib/rails/generators/joosy/application_generator.rb
joosy-rails-1.0.0.RC3 lib/rails/generators/joosy/application_generator.rb
joosy-rails-1.0.0.RC2 lib/rails/generators/joosy/application_generator.rb