Sha256: ef0f7d0d4e774b6f2ce8e109597d3fe26e65f8d51c5860570e13c8f932d69c6f

Contents?: true

Size: 790 Bytes

Versions: 6

Compression:

Stored size: 790 Bytes

Contents

module Ebanx
  module Command
    class Command
      @request_body = false

      attr_accessor :params, :request_method, :request_action, :response_type, :request_body

      def valid?
        validate
      end

      def params
        # Wraps parameters into request_body
        if @request_body
          { request_body: @params.to_json }
        else
          @params
        end
      end

      protected
      def validate
        raise NotImplementedError
      end

      def validate_presence(name)
        raise ArgumentError unless @params.include? name
        true
      end

      def validate_presence_or(name1, name2)
        unless @params.include?(name1) || @params.include?(name2)
          raise ArgumentError
        end

        true
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ebanx-1.3.1 lib/ebanx/command/command.rb
ebanx-1.3.0 lib/ebanx/command/command.rb
ebanx-1.2.0 lib/ebanx/command/command.rb
ebanx-1.1.0 lib/ebanx/command/command.rb
ebanx-1.0.2 lib/ebanx/command/command.rb
ebanx-1.0.0 lib/ebanx/command/command.rb