Sha256: c22eb77def4072ec89654fe71449823607e22a2d3009f3bdd7f3e5fe703edf27

Contents?: true

Size: 1.7 KB

Versions: 1

Compression:

Stored size: 1.7 KB

Contents

require 'thor'
require 'thor/group'
require 'thor/actions'
require 'active_support/core_ext/string'
require 'active_support/inflector'
require File.dirname(__FILE__) + '/actions'
require 'date' 

module Appjam
  module Generators
    class Jam < Thor::Group

      # Add this generator to our appjam
      Appjam::Generators.add_generator(:jam, self)

      # Define the source template root
      def self.source_root; File.expand_path(File.dirname(__FILE__)); end
      def self.banner; "appjam jam [name]"; end

      # Include related modules
      include Thor::Actions
      include Appjam::Generators::Actions      

      desc "Description:\n\n\tthis should not be used, only acts as Parent Class"

      argument :name, :desc => "The name of your jam"

      class_option :root, :desc => "The root destination", :aliases => '-r', :default => ".", :type => :string
      class_option :destroy, :aliases => '-d', :default => false,   :type    => :boolean

      def in_app_root?
        File.exist?('Classes')
      end     

      def create_app
        valid_constant?(options[:project] || name)
        @jam_name = (options[:jam] || name).gsub(/\W/, "_").downcase
        @developer = "#{`whoami`.strip}"
        @created_on = Date.today.to_s
        self.destination_root = options[:root]
        project = options[:jam]
        self.behavior = :revoke if options[:destroy]
        
        empty_directory "#{@jam_name}"

        say (<<-TEXT).gsub(/ {10}/,'')
      
      =================================================================
      Your #{@jam_name} has been generated.
      =================================================================
      
      TEXT
      end
    end # Jam
  end # Generators
end # Appjam

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
appjam-0.1.4 lib/appjam/generators/jam.rb