Sha256: 86f33d1d5f30d0ff11455d72a391325f207e2e23253d5427ed1c3b3d24be51bd

Contents?: true

Size: 596 Bytes

Versions: 2

Compression:

Stored size: 596 Bytes

Contents

require 'simple_command/version'
require 'simple_command/errors'

module SimpleCommand
  attr_reader :result

  module ClassMethods
    def perform(*args)
      new(*args).perform
    end
  end

  def self.prepended(base)
    base.extend ClassMethods
  end

  def perform
    fail NotImplementedError unless defined?(super)

    @performed = true
    @result = super

    self
  end

  def success?
    performed? && !failure?
  end

  def failure?
    performed? && errors.any?
  end

  def errors
    @errors ||= Errors.new
  end

  private

  def performed?
    @performed ||= false
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
simple_command-0.0.7 lib/simple_command.rb
simple_command-0.0.6 lib/simple_command.rb