Sha256: 78470ea65c4ab7466962719b7115471b45475e27b3b272621d3699331e3e025b

Contents?: true

Size: 492 Bytes

Versions: 3

Compression:

Stored size: 492 Bytes

Contents

# frozen_string_literal: true
module Aitch
  class DSL
    %w[url options headers data].each do |name|
      class_eval <<-RUBY
        attr_writer :#{name}

        def #{name}(*args)
          @#{name} = args.first if args.any?
          @#{name}
        end
      RUBY
    end

    alias_method :params, :data
    alias_method :body, :data

    def to_h
      {
        url: url,
        options: options || {},
        headers: headers || {},
        data: data
      }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aitch-1.0.2 lib/aitch/dsl.rb
aitch-1.0.1 lib/aitch/dsl.rb
aitch-1.0.0 lib/aitch/dsl.rb