Sha256: 5cf5044fb8db278862103bd954f3e3788d3643cc770737dcf5c8862ec173a2e2

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

require 'thor'

class KiGenerator < Thor::Group
  include Thor::Actions

  def self.source_root
    File.join(File.dirname(__FILE__), '..', '..')
  end
end

class AppGenerator < KiGenerator

  argument :app_name

  def prepare_dir
    unless app_name =~ /^[a-zA-Z0-9-]*$/
      say "App name must contain only alphanumeric characters and -"
      exit 1
    end

    if Dir.exists? app_name
      say "#{app_name} already exists"
      exit 2
    end

    Dir.mkdir app_name
  end

  def create_app
    directory("spec/examples/base", app_name)

    # Set database names
    config_file = File.read("#{app_name}/config.yml")
    config_file.gsub!("name: np_development", "name: #{app_name}_development")
    config_file.gsub!("name: np_test", "name: #{app_name}_test")
    config_file.gsub!("name: np", "name: #{app_name}")
    File.open("#{app_name}/config.yml", "w") {|file| file.puts config_file}

    # Set rvm gemset name
    `echo #{app_name} > #{app_name}/.ruby-gemset`
  end
end

class KiCli < Thor
  register AppGenerator, :new, 'new [APP_NAME]', 'generate a new app'
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ki-0.4.2 lib/ki/ki_cli.rb
ki-0.4.1 lib/ki/ki_cli.rb