Class: Rails::Buddy::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/buddy/request.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path:, method:) ⇒ Request

Returns a new instance of Request.



31
32
33
34
35
36
37
38
# File 'lib/rails/buddy/request.rb', line 31

def initialize(path:, method:)
  @request_id = SecureRandom.uuid
  @time = Time.current
  @path = path
  @method = method
  @models = Hash.new(0)
  @queries = []
end

Class Attribute Details

.request ⇒ Object (readonly)

Returns the value of attribute request.



7
8
9
# File 'lib/rails/buddy/request.rb', line 7

def request
  @request
end

Instance Attribute Details

#meta ⇒ Object

Returns the value of attribute meta.



27
28
29
# File 'lib/rails/buddy/request.rb', line 27

def meta
  @meta
end

#method ⇒ Object (readonly)

Returns the value of attribute method.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def method
  @method
end

#models ⇒ Object (readonly)

Returns the value of attribute models.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def models
  @models
end

#path ⇒ Object (readonly)

Returns the value of attribute path.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def path
  @path
end

#queries ⇒ Object (readonly)

Returns the value of attribute queries.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def queries
  @queries
end

#request ⇒ Object

Returns the value of attribute request.



27
28
29
# File 'lib/rails/buddy/request.rb', line 27

def request
  @request
end

#request_id ⇒ Object (readonly) Also known as: id

Returns the value of attribute request_id.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def request_id
  @request_id
end

#response ⇒ Object

Returns the value of attribute response.



27
28
29
# File 'lib/rails/buddy/request.rb', line 27

def response
  @response
end

#status ⇒ Object

Returns the value of attribute status.



27
28
29
# File 'lib/rails/buddy/request.rb', line 27

def status
  @status
end

#time ⇒ Object (readonly)

Returns the value of attribute time.



26
27
28
# File 'lib/rails/buddy/request.rb', line 26

def time
  @time
end

Class Method Details

.from_rack_env(rack_env) ⇒ Object



9
10
11
12
# File 'lib/rails/buddy/request.rb', line 9

def from_rack_env(rack_env)
  @request = ::Rack::Request.new(rack_env)
  new(path:, method:)
end

.method ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/rails/buddy/request.rb', line 16

def method
  request_method = request.env['REQUEST_METHOD'].downcase.to_sym
  if request_method == :post
    request.params['_method'].presence&.to_sym || request_method
  else
    request_method
  end
end

.path ⇒ Object



14
# File 'lib/rails/buddy/request.rb', line 14

def path = request.fullpath

Instance Method Details

#action_definition ⇒ Object



59
60
61
62
63
# File 'lib/rails/buddy/request.rb', line 59

def action_definition
  return unless meta[:controller] && meta[:action]

  meta[:controller].constantize.instance_method(meta[:action]).source_location.join(':')
end

#add_model(model) ⇒ Object



51
52
53
# File 'lib/rails/buddy/request.rb', line 51

def add_model(model)
  @models[model.class.to_s] += 1
end

#add_query(query) ⇒ Object



55
56
57
# File 'lib/rails/buddy/request.rb', line 55

def add_query(query)
  @queries << query
end

#familly_status ⇒ Object



40
41
42
43
44
45
46
47
48
49
# File 'lib/rails/buddy/request.rb', line 40

def familly_status
  case status.to_s[0]
  when '2' then 'success'
  when '3' then 'redirect'
  when '4' then 'error'
  when '5' then 'fatal_error'
  else
    'UNKNOWN'
  end
end