class SubZero::CLI::New

Attributes

name[RW]

Public Class Methods

source_root() click to toggle source
# File lib/sub_zero/cli/new.rb, line 8
def self.source_root
  File.dirname(__FILE__)
end

Public Instance Methods

client(name=nil) click to toggle source
# File lib/sub_zero/cli/new.rb, line 28
def client name=nil
  if name.nil?
    say "You must supply a name!"
    exit 1
  end

  say "Creating #{name} client..."
  create_client name, options
end
service(name=nil) click to toggle source
# File lib/sub_zero/cli/new.rb, line 17
def service name=nil
  if name.nil?
    say "You must supply a name!"
    exit 1
  end

  say "Creating #{name} service..."
  create_service name, options
end

Private Instance Methods

create_client(name, options) click to toggle source
# File lib/sub_zero/cli/new.rb, line 42
def create_client name, options
  self.name = name # ERB ... :/
  template("templates/#{options[:language]}/client.tt", "#{name}/lib/#{name}.rb")

  # TODO
end
create_service(name, options) click to toggle source
# File lib/sub_zero/cli/new.rb, line 49
def create_service name, options
  # |-- Gemfile
  # |-- bin
  # |   `-- name
  # |-- config
  # |   |-- service.yml
  # |   `-- verbs.rb
  # |-- lib
  # |   |-- handlers
  # |   |   `-- handler.rb
  # |   `-- name.rb
  # |-- rvmrc
  # `-- spec
  #     `-- name_spec.rb

  name = name.downcase
  self.name = name # ERB ... :/
  template("templates/#{options[:language]}/service/Gemfile", "#{name}/Gemfile")
  template("templates/#{options[:language]}/service/bin.tt", "#{name}/bin/#{name}")
  chmod("#{name}/bin/#{name}", 0755)
  template("templates/#{options[:language]}/service/serviceyml.tt", "#{name}/config/service.yml")
  template("templates/#{options[:language]}/service/verbs.tt", "#{name}/config/verbs.rb")
  template("templates/#{options[:language]}/service/lib.tt", "#{name}/lib/#{name}.rb")
  template("templates/#{options[:language]}/service/version.tt", "#{name}/lib/#{name}/version.rb")
  template("templates/#{options[:language]}/service/handler.tt", "#{name}/lib/handlers/handler.rb")

  test = options[:test_framework] == "rspec" ? :spec : :test
  create_file "#{name}/#{test}/#{name}_#{test}.rb"

  if options[:with_rvm]
    template("templates/#{options[:language]}/service/rvmrc.tt", "#{name}/.rvmrc")
  end

  empty_directory "#{name}/doc"

  say "all done! you can start a development server with bin/#{name} run"
end