Class: ModelCommand
Class Method Summary collapse
Methods inherited from MoreUtils
flag_lookup, gem_version, get_args, get_file_str, get_flags, root, this_dir, write_file
Class Method Details
.run(*args) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/commands/model.rb', line 7 def run *args lookup = flag_lookup(args) arguments = get_args(args) if arguments.length < 2 puts "Enter a valid model generation command." return end model_name = arguments[0].camelcase others = arguments[1..-1] system("rails generate model #{model_name} #{others.join(' ')}") api_version_path = lookup[:"api-version"] || 'api/v1' system("mkdir -p #{root}/app/controllers/#{api_version_path}") controller_prefix = api_version_path.split('/').map { |e| e.downcase.capitalize }.join('::') controller_name = controller_prefix + '::' + model_name controller_temp = get_file_str("#{this_dir}/../templates/controller.txt") controller_regex = '{{ CONTROLLER_NAME }}' controller_str = controller_temp.gsub(controller_regex, controller_name) write_file("#{root}/app/controllers/#{api_version_path}/#{model_name.underscore}_controller.rb", controller_str) puts "#{model_name} model, migration, and controller has been generated." end |