module Neco::Command::InstanceMethods

When command object is instantiated, either by a class-level call, a container or a user, these methods will be called.

Public Class Methods

new(*args, container: FakeContainer.new(command: self), **params) click to toggle source
# File lib/neco/command.rb, line 41
def initialize(*args, container: FakeContainer.new(command: self), **params)
  @args = args
  @container = container
  @params = params
end

Public Instance Methods

call(*args, **params) click to toggle source
# File lib/neco/command.rb, line 51
def call(*args, **params)
  @args += args
  @params.merge!(params)

  return false unless validate

  main = self.class.instance_variable_get(:@main)
  begin
    instance_exec(*@args, **@params, &main)
    Success.new
  rescue StandardError => e
    Failure.new(exception: e)
  end
end
inspect() click to toggle source
# File lib/neco/command.rb, line 81
def inspect
  to_s
end
revert() click to toggle source
# File lib/neco/command.rb, line 71
def revert
  rollback = self.class.instance_variable_get(:@rollback)
  instance_exec(*@args, **@params, &rollback)
end
set(key, value) click to toggle source
# File lib/neco/command.rb, line 47
def set(key, value)
  @container.set(key, value)
end
to_s() click to toggle source
# File lib/neco/command.rb, line 76
def to_s
  main = self.class.instance_variable_get(:@main)
  main.inspect
end
validate() click to toggle source
# File lib/neco/command.rb, line 66
def validate
  validation = self.class.instance_variable_get(:@validation)
  validation ? validation.call(@args, @params) : true
end