Sha256: 640020f1066bea436b5fdfd22120becda6aa88559521b3ab8f3fa73fc5fc598a

Contents?: true

Size: 763 Bytes

Versions: 9

Compression:

Stored size: 763 Bytes

Contents

module Kapellmeister::RequestsExtension
  def self.request_processing
    proc do |name, request_data|
      define_method name do |data = {}|
        proc { |method:, path:, mock:| # rubocop:disable Lint/UnusedBlockArgument:
          # return mock if ENV['APP_ENV'] == 'development'

          path = path.split('/').map do |part|
            next part unless part.include? '%<'

            data.delete(part.match(/%<(.*)>/).to_a.last.to_sym)
          end.join('/')

          new.connection_by(method, path, data)
        }.call(**request_data)
      end
    end
  rescue NoMethodError
    raise "You need to define #{self} class with connection_by method"
  end

  def self.extended(base)
    base.module_parent.requests.each(&request_processing)
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kapellmeister-0.4.2 lib/kapellmeister/requests_extension.rb
kapellmeister-0.4.0 lib/kapellmeister/requests_extension.rb
kapellmeister-0.3.0 lib/kapellmeister/requests_extension.rb
kapellmeister-0.2.0 lib/kapellmeister/requests_extension.rb
kapellmeister-0.1.3 lib/kapellmeister/requests_extension.rb
kapellmeister-0.1.2 lib/kapellmeister/requests_extension.rb
kapellmeister-0.1.1 lib/kapellmeister/requests_extension.rb
kapellmeister-0.1.0 lib/kapellmeister/requests_extension.rb
kapellmeister-0.0.2 lib/kapellmeister/requests_extension.rb