Class: ConsoleUtils::RequestUtils::Requester

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/console_utils/request_utils/requester.rb

Direct Known Subclasses

Exap, Remo

Constant Summary collapse

INFO_HASH_FIELDS =
%i(url size time human_size human_time)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



8
9
10
# File 'lib/console_utils/request_utils/requester.rb', line 8

def url
  @url
end

Instance Method Details

#preview(mth = nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/console_utils/request_utils/requester.rb', line 22

def preview(mth = nil)
  if output = to_s.presence
    case ConsoleUtils.json_formatter
    when :default then puts to_body
    when :jq      then puts jq(output)
    end

    show_complete_in!
    show_transfered!

    yield(self) if block_given?
  else
    puts NO_RESPONSE
  end
end


40
41
42
# File 'lib/console_utils/request_utils/requester.rb', line 40

def print_info
  tap { printf(INFO_FORMAT, to_info_hash) }
end

#sizeObject



62
63
64
# File 'lib/console_utils/request_utils/requester.rb', line 62

def size
  @_size.bytes
end

#size_downloadedObject Also known as: human_size



50
51
52
# File 'lib/console_utils/request_utils/requester.rb', line 50

def size_downloaded
  size.to_s(:human_size)
end

#timeObject



66
67
68
# File 'lib/console_utils/request_utils/requester.rb', line 66

def time
  @_time.in_milliseconds
end

#time_msObject Also known as: human_time



56
57
58
# File 'lib/console_utils/request_utils/requester.rb', line 56

def time_ms
  time.to_s(:human, units: { unit: 'ms' })
end

#to_bodyObject



14
15
16
17
18
# File 'lib/console_utils/request_utils/requester.rb', line 14

def to_body
  JSON.pretty_generate(to_h)
rescue JSON::GeneratorError
  to_s
end

#to_hObject



10
11
12
# File 'lib/console_utils/request_utils/requester.rb', line 10

def to_h
  JSON.parse(to_s)
end

#to_info_hashObject



46
47
48
# File 'lib/console_utils/request_utils/requester.rb', line 46

def to_info_hash
  INFO_HASH_FIELDS.zip(INFO_HASH_FIELDS.map(&method(:public_send))).to_h
end