Sha256: b3d126c93537be024ecfd506a5c3c444537c7c641253bd9a8d5fb01584b86944

Contents?: true

Size: 762 Bytes

Versions: 2

Compression:

Stored size: 762 Bytes

Contents

# frozen_string_literal: true

module Juknife
  module Request
    # A DSL for definition target web page and request methods.
    module DSL
      HTTP_METHODS = %i[get post put delete head patch options].freeze

      attr_reader :http_method, :url_builder, :body_builder, :user_agent_builder
      attr_reader :query_builder

      HTTP_METHODS.each do |method|
        define_method(method) do |url, &block|
          @http_method = method
          @url_builder = block || proc { url }
        end
      end

      def body(&block)
        @body_builder = block
      end

      def user_agent(ua = nil, &block)
        @user_agent_builder = block || proc { ua }
      end

      def query(&block)
        @query_builder = block
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
juknife-0.1.2 lib/juknife/request/dsl.rb
juknife-0.1.1 lib/juknife/request/dsl.rb