Sha256: 132b746c57d61f489d99b90d960dda72d355afbd6a47038e8fa4cd449b5a5c5e

Contents?: true

Size: 821 Bytes

Versions: 4

Compression:

Stored size: 821 Bytes

Contents

# frozen_string_literal: true

require "active_support"

module Anony
  class Result
    FAILED = "failed"
    DESTROYED = "destroyed"
    OVERWRITTEN = "overwritten"
    SKIPPED = "skipped"

    attr_reader :status, :fields, :error

    delegate :failed?, :overwritten?, :skipped?, :destroyed?, to: :status

    def self.failed(error)
      new(FAILED, error: error)
    end

    def self.overwritten(fields)
      new(OVERWRITTEN, fields: fields)
    end

    def self.skipped
      new(SKIPPED)
    end

    def self.destroyed
      new(DESTROYED)
    end

    private def initialize(status, fields: [], error: nil)
      raise ArgumentError, "No error provided" if status == FAILED && error.nil?

      @status = ActiveSupport::StringInquirer.new(status)
      @fields = fields
      @error = error
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
anony-1.4.0 lib/anony/result.rb
anony-1.2.0 lib/anony/result.rb
anony-1.1.0 lib/anony/result.rb
anony-1.0.2 lib/anony/result.rb