Skip to content

Commit

Permalink
Added Thor subcommands, migration generator
Browse files Browse the repository at this point in the history
  • Loading branch information
darbyfrey committed Mar 17, 2014
1 parent 019e4fe commit 122ef4d
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 9 deletions.
2 changes: 1 addition & 1 deletion bin/napa
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

require 'napa/cli'

Napa::CLI.start(ARGV)
Napa::CLI::Base.start(ARGV)
44 changes: 36 additions & 8 deletions lib/napa/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,43 @@
require 'napa/version'

module Napa
class CLI < Thor
desc "version", "Shows the Napa version number"
def version
say Napa::VERSION
class CLI
class Generate < Thor
register(
Generators::ApiGenerator,
'api',
'api <api_name>',
'Create a Grape API, Model and Entity'
)

register(
Generators::MigrationGenerator,
'migration',
'migration <migration_name>',
'Create a Database Migration'
)
end
end

class CLI
class Base < Thor
desc "version", "Shows the Napa version number"
def version
say Napa::VERSION
end

register(Generators::ScaffoldGenerator, 'new', 'new <app_name> [app_path]',
'Create a scaffold for a new Napa service')
register(Generators::ApiGenerator, 'generate:api', 'generate:api <api_name>',
'Create a Grape API, Model and Entity')
register(
Generators::ScaffoldGenerator,
'new',
'new <app_name> [app_path]',
'Create a scaffold for a new Napa service'
)

desc "generate api <api_name>", "Create a Grape API, Model and Entity"
subcommand "generate", Napa::CLI::Generate

desc "generate migration <migration_name>", "Create a Database Migration"
subcommand "generate", Napa::CLI::Generate
end
end
end
1 change: 1 addition & 0 deletions lib/napa/generators.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
require 'napa/generators/scaffold_generator'
require 'napa/generators/api_generator'
require 'napa/generators/migration_generator'
26 changes: 26 additions & 0 deletions lib/napa/generators/migration_generator.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
require 'thor'
require 'active_support/all'

module Napa
module Generators
class MigrationGenerator < Thor::Group
include Thor::Actions
argument :migration_name

def version
Time.now.utc.to_s.gsub(':','').gsub('-','').gsub('UTC','').gsub(' ','')
end

def migration_filename
"#{version}_#{migration_name}"
end

def migration
self.class.source_root "#{File.dirname(__FILE__)}/templates/migration"
say 'Generating migration...'
directory '.', './db/migrate'
say 'Done!', :green
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class <%= migration_name.classify %> < ActiveRecord::Migration
def change
# create_table :foo do |t|
# t.string :name, :null => false
# end
end
end

0 comments on commit 122ef4d

Please sign in to comment.