class Petra::CLI

Private Class Methods

Subcommand( command_name , &block ) click to toggle source
# File lib/petra/cli/subcommand.rb, line 34
def self.Subcommand( command_name , &block )
  subcommand_class =
    Class.new \
      Subcommand,
      &block

  const_set \
    command_name,
    subcommand_class

  register \
    subcommand_class,
    subcommand_class.command_invocation,
    subcommand_class.command_usage,
    subcommand_class.command_description

  subcommand_class
end

Public Instance Methods

invoke_new_machine!() click to toggle source
# File lib/petra/cli/generate.rb, line 80
def invoke_new_machine!
  invoke \
    Generate,
    :machine,
    [ machine_name ],
    Hash.new
end
invoke_new_playbook!() click to toggle source
# File lib/petra/cli/generate.rb, line 66
def invoke_new_playbook!
  invoke \
    Generate,
    :playbook,
    [ machine_name ]
end
invoke_new_seed!() click to toggle source
# File lib/petra/cli/generate.rb, line 73
def invoke_new_seed!
  invoke \
    Generate,
    :seed,
    [ machine_name ]
end
machine( machine_name ) click to toggle source
# File lib/petra/cli/generate.rb, line 18
def machine( machine_name )
  @machine_name ||= machine_name

  template_new_machine!

  invoke_new_seed!
  invoke_new_playbook!
end
machine_name() click to toggle source
# File lib/petra/cli/generate.rb, line 88
def machine_name
  @machine_name or options.machine_name
end
new( project_name ) click to toggle source
# File lib/petra/cli.rb, line 16
def new( project_name )
  invoke \
    Generate,
    :project
end
petra_version() click to toggle source
# File lib/petra/cli/generate.rb, line 92
def petra_version
  Petra::VERSION
end
playbook( playbook_name ) click to toggle source
# File lib/petra/cli/generate.rb, line 31
def playbook( playbook_name )
  @playbook_name ||= playbook_name
  template_new_playbook!
end
project( project_name ) click to toggle source
# File lib/petra/cli/generate.rb, line 46
def project( project_name )
  @project_name ||= project_name

  template_new_project_directory!

  inside project_name do
    invoke_new_machine!
  end
end
seed( seed_name ) click to toggle source
# File lib/petra/cli/generate.rb, line 60
def seed( seed_name )
  @seed_name ||= seed_name
  template_new_seed!
end
template_new_machine!() click to toggle source
# File lib/petra/cli/generate.rb, line 96
def template_new_machine!
  empty_directory 'machines'

  directory \
    'machine/new',
    '.'
end
template_new_playbook!() click to toggle source
# File lib/petra/cli/generate.rb, line 104
def template_new_playbook!
  directory \
    'playbook/new',
    '.'
end
template_new_project_directory!() click to toggle source
# File lib/petra/cli/generate.rb, line 110
def template_new_project_directory!
  directory \
    'project/new',
    project_name
end
template_new_seed!() click to toggle source
# File lib/petra/cli/generate.rb, line 116
def template_new_seed!
  empty_directory 'seeds'

  directory \
    'seed/new',
    '.'
end