Sha256: a84b44e3f41f7190379aba1aac63564ac0ebd2af6cee79e51e457be51497358c

Contents?: true

Size: 1.6 KB

Versions: 3

Compression:

Stored size: 1.6 KB

Contents

module Simple::Service
  # Will be raised by ::Simple::Service.action.
  class NoSuchActionError < ::ArgumentError
    attr_reader :service, :name

    def initialize(service, name)
      @service, @name = service, name
      super()
    end

    def to_s
      action_names = ::Simple::Service.actions(service).keys.sort
      informal = "service #{service} has these actions: #{action_names.map(&:inspect).join(", ")}"
      "No such action #{name.inspect}; #{informal}"
    end
  end

  class ArgumentError < ::ArgumentError
  end

  class MissingArgumentError < ArgumentError
    attr_reader :action
    attr_reader :parameters

    def initialize(action, parameters)
      @action, @parameters = action, parameters
      super()
    end

    def to_s
      "#{action}: missing argument(s): #{parameters.map(&:to_s).join(", ")}"
    end
  end

  class ExtraArgumentError < ArgumentError
    attr_reader :action
    attr_reader :arguments

    def initialize(action, arguments)
      @action, @arguments = action, arguments
      super()
    end

    def to_s
      str = arguments.map(&:inspect).join(", ")
      "#{action}: extra argument(s): #{str}"
    end
  end

  class UnknownFlagError < ExtraArgumentError
    attr_reader :flags

    def initialize(action, flags)
      @flags = flags
      super(action, flags)
    end

    def to_s
      inspected_flags = flags.map { |flag| "--#{flag}" }.join(", ")
      "#{action}: unknown flag(s): #{inspected_flags}"
    end
  end

  class ContextReadOnlyError < ::StandardError
    def initialize(key)
      super "Cannot overwrite existing context setting #{key.inspect}"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
simple-service-0.3.1 lib/simple/service/errors.rb
simple-service-0.2.3 lib/simple/service/errors.rb
simple-service-0.3.0 lib/simple/service/errors.rb