Class: Potter::Request

Inherits:
ApplicationRecord show all
Includes:
Caching, Record
Defined in:
lib/potter/request.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.header(headers) ⇒ Object



41
42
43
# File 'lib/potter/request.rb', line 41

def self.header(headers)
  default_scope -> { create_with(headers:) }
end

.inherited(subclass) ⇒ Object



49
50
51
52
# File 'lib/potter/request.rb', line 49

def self.inherited(subclass)
  super
  subclass.belongs_to :response, optional: true
end

.param(params) ⇒ Object



45
46
47
# File 'lib/potter/request.rb', line 45

def self.param(params)
  default_scope -> { create_with(params:) }
end

.response!Object



35
# File 'lib/potter/request.rb', line 35

def self.response! = sending.create!.response

.root(root) ⇒ Object



37
38
39
# File 'lib/potter/request.rb', line 37

def self.root(root)
  default_scope -> { create_with(root:) }
end

Instance Method Details

#body_for_requestObject



60
# File 'lib/potter/request.rb', line 60

def body_for_request = body_for_database

#header(name) ⇒ Object



54
# File 'lib/potter/request.rb', line 54

def header(name) = self[:headers][name.to_s.downcase.gsub(/_/, "-")]

#queryObject



56
# File 'lib/potter/request.rb', line 56

def query = URI.encode_www_form(params)

#request_classObject



61
# File 'lib/potter/request.rb', line 61

def request_class = Net::HTTP.const_get(http_method.capitalize)

#uriObject



58
# File 'lib/potter/request.rb', line 58

def uri   = URI(url).tap { _1.query = query }

#urlObject



57
# File 'lib/potter/request.rb', line 57

def url   = root + path