Sha256: 01b4dfbdc59ab63acd8339830fde3672df1dafc21a2eb7163098dc39eeae236c

Contents?: true

Size: 820 Bytes

Versions: 2

Compression:

Stored size: 820 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

2 entries across 2 versions & 1 rubygems

Version Path
anony-1.0.1 lib/anony/result.rb
anony-1.0.0 lib/anony/result.rb