Sha256: 5e229b29d37708171f61ffb7103afc379339e2f38d2f5f0905379f2598b04575

Contents?: true

Size: 1.26 KB

Versions: 15

Compression:

Stored size: 1.26 KB

Contents

# typed: ignore
# frozen_string_literal: true

module DearInventory
  class Config
    extend T::Sig

    sig { returns(DearInventory::Environment.class) }
    def environment
      DearInventory::Environment
    end

    sig { params(value: Symbol).void }
    def environment=(value)
      DearInventory::Environment.set(value)
    end

    sig { returns(T.nilable(String)) }
    attr_accessor :account_id

    sig { returns(T.nilable(String)) }
    attr_accessor :key

    sig { params(param: Symbol).returns(String) }
    def require(param)
      value = public_send(param)
      return value unless value.nil? || value.empty?

      require_error(param)
    end

    sig { params(param: Symbol).returns(String) }
    def require_parameter(param)
      require(param)
    rescue ArgumentError => e
      message = e.message + "\n" \
        "Alternatively, you can pass dynamic values with your request " \
        "parameters"
      raise ArgumentError, message
    end

    private

    sig { params(param: Symbol).void }
    def require_error(param)
      raise(
        ArgumentError,
        "#{param} is required but hasn't been set.\n" \
          "DearInventory.configure do |config|\n" +
          %(  config.#{param} = "value") + "\n" \
          "end"
      )
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
dear_inventory-0.7.5 lib/dear_inventory/config.rb
dear_inventory-0.7.4 lib/dear_inventory/config.rb
dear_inventory-0.7.3 lib/dear_inventory/config.rb
dear_inventory-0.7.2 lib/dear_inventory/config.rb
dear_inventory-0.7.1 lib/dear_inventory/config.rb
dear_inventory-0.7.0 lib/dear_inventory/config.rb
dear_inventory-0.6.3 lib/dear_inventory/config.rb
dear_inventory-0.6.2 lib/dear_inventory/config.rb
dear_inventory-0.6.1 lib/dear_inventory/config.rb
dear_inventory-0.6.0 lib/dear_inventory/config.rb
dear_inventory-0.5.0 lib/dear_inventory/config.rb
dear_inventory-0.4.1 lib/dear_inventory/config.rb
dear_inventory-0.4.0 lib/dear_inventory/config.rb
dear_inventory-0.3.0 lib/dear_inventory/config.rb
dear_inventory-0.2.0 lib/dear_inventory/config.rb