class AdminModule::Rake::GdlTasks

Attributes

action[R]
comments[RW]
env[RW]
name[RW]
path[RW]
stop_on_exception[R]
valid_actions[R]

Public Class Methods

install() click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 170
def install
  new.install
end
new(task_name = 'gdls_task', desc = "Modify a gdl or gdls") { |self| ... } click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 27
def initialize(task_name = 'gdls_task', desc = "Modify a gdl or gdls")
  @valid_actions = ['deploy', 'version']
  @task_name, @desc = task_name, desc

  @stop_on_exception = true

  yield self if block_given?

  define_task
end

Public Instance Methods

action=(task_action) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 54
def action=(task_action)
  raise "action must be one of #{valid_types.join(', ')}" unless valid_actions.include?(task_action.downcase)
  @action = task_action
end
assert_env_is_configured(arg) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 138
def assert_env_is_configured arg
  unless AdminModule.configuration.credentials.key? arg
    init_msg = "Have you initialized your config file?\n Try: admin_module config init <filedir>"
    env_msg = "Have you configured your environments?\n Try: admin_module config add env <envname> <url>"
    raise "Unknown environment: #{arg}\n#{init_msg}\n\n#{env_msg}"
  end
end
assert_provided(value, msg) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 132
def assert_provided value, msg
  if value.nil? || value.empty?
    raise msg
  end
end
commit() click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 64
def commit
  validate_params

  client = AdminModule::Client.new
  client.env = env

  if self.respond_to? action
    self.send(action, client)
    return
  else
    raise "Unknown action - #{action}"
  end

rescue Exception => e
  raise e if stop_on_exception == true
ensure
  client.quit unless client.nil?
end
default_params() click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 96
def default_params
  if comments.nil? || comments.empty?
    self.comments = AdminModule.configuration.default_comment
    unless comments.nil? || comments.empty?
      $stdout << "Using default comment - #{comments}\n"
    end
  end

  if path.nil? || path.empty?
    build_dir = Pathname('build')
    if build_dir.exist? && build_dir.directory?
      # Must be an absolute path:
      self.path = build_dir.expand_path.to_s
      $stdout << "Using default path - #{path}\n"
    end
  end
end
deploy(client) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 83
def deploy client
  real_path = Pathname(path)
  if real_path.directory?
    client.guideline.deploy(path, comments)
  else
    client.guideline.deploy_file(path, comments)
  end
end
install() click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 175
def install
  AdminModule.configuration.credentials.keys.each do |e|
    valid_actions.each do |action|
      AdminModule::Rake::GdlTasks.new("am:#{e}:gdl:#{action}", "#{action} #{e} gdl(s)") do |t|
        t.env = e
        t.action = action
      end
    end
  end
end
required_args_for_action() click to toggle source

Define the task arguments (and their order) required for a given action

# File lib/admin_module/rake/gdl_tasks.rb, line 150
def required_args_for_action
  args = []

  case action
  when 'deploy'
    args << :comments
    args << :path

  when 'version'
    args << :name
    args << :comments

  else
    # Noop
  end

  args
end
set_vars(args) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 46
def set_vars args
  args.each do |arg,val|
    instance_variable_set "@#{arg}", val
  end

  args
end
stop_on_exception=(do_stop) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 59
def stop_on_exception=(do_stop)
  raise ArgumentError, 'Expecting true or false' unless do_stop === true || do_stop === false
  @stop_on_exception = do_stop
end
validate_params() click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 114
def validate_params
  assert_provided env, 'Missing "env"'
  assert_provided action, 'Missing "action"'

  default_params

  case action
  when 'deploy'
    assert_provided path, 'Missing "path"'

  when 'version'
    assert_provided name, 'Missing "name"'

  end

  assert_env_is_configured env
end
version(client) click to toggle source
# File lib/admin_module/rake/gdl_tasks.rb, line 92
def version client
  client.guideline.version(name, comments)
end