class Minarai::Actions::Base

Attributes

backend[RW]

Public Class Methods

attribute(name, options = {}) click to toggle source
# File lib/minarai/actions/base.rb, line 11
def attribute(name, options = {})
  default = options.delete(:default)
  define_method(name) do
    @attributes[name.to_s] || default
  end
  validates name, options
end
new(attributes) click to toggle source
# File lib/minarai/actions/base.rb, line 24
def initialize(attributes)
  @attributes = attributes
end

Public Instance Methods

call() click to toggle source
# File lib/minarai/actions/base.rb, line 28
def call
  if complete?
    Minarai::Logger.skip "[SKIP] #{name}"
  else
    run
    if complete?
      Minarai::Logger.done "[DONE] #{name}"
    else
      Minarai::Logger.fail "[FAIL] #{name}"
    end
  end
end
error_messages() click to toggle source
# File lib/minarai/actions/base.rb, line 45
def error_messages
  validation_error_messages
end
run() click to toggle source
# File lib/minarai/actions/base.rb, line 41
def run
  raise NotImplementedError
end

Private Instance Methods

check_command(*args) click to toggle source
# File lib/minarai/actions/base.rb, line 74
def check_command(*args)
  run_command(*args).success?
end
check_specific_command(method, *args) click to toggle source
# File lib/minarai/actions/base.rb, line 82
def check_specific_command(method, *args)
  run_specific_command(method, *args).success?
end
complete?() click to toggle source
# File lib/minarai/actions/base.rb, line 51
def complete?
  raise NotImplementedError
end
name() click to toggle source
# File lib/minarai/actions/base.rb, line 66
def name
  @attributes['name']
end
run_command(*args) click to toggle source
# File lib/minarai/actions/base.rb, line 70
def run_command(*args)
  backend.run_command(*args)
end
run_specific_command(method, *args) click to toggle source
# File lib/minarai/actions/base.rb, line 78
def run_specific_command(method, *args)
  run_command(backend.command.get(method, *args))
end
validated?() click to toggle source
# File lib/minarai/actions/base.rb, line 55
def validated?
  validate
end
validation_error_messages() click to toggle source
# File lib/minarai/actions/base.rb, line 59
def validation_error_messages
  validate
  errors.map do |attribute, error_message|
    Minarai::Errors::AttributeValidationError.new(attribute, error_message, name)
  end
end