Sha256: 47e9ceae6c302696019792fa34e9bca49d2f30b2edcac9ecb52ca7128d15d3fa

Contents?: true

Size: 671 Bytes

Versions: 3

Compression:

Stored size: 671 Bytes

Contents

# frozen_string_literal: true

module Sidekiq
  module Control
    module Worker
      class Param
        TYPE_MAP = { req: 'required', opt: 'optional' }.freeze

        attr_reader :type
        attr_reader :name
        attr_reader :value

        def initialize(type, name=nil)
          @type = type
          @name = name.to_s
        end

        def value=(value)
          raise ArgumentError if required? && value.nil?

          @value = value
        end

        def type_name
          TYPE_MAP[@type]
        end

        def required?
          @type == :req
        end

        def optional?
          !required?
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sidekiq-control-0.0.12 lib/sidekiq/control/worker/param.rb
sidekiq-control-0.0.11 lib/sidekiq/control/worker/param.rb
sidekiq-control-0.0.10 lib/sidekiq/control/worker/param.rb