Module: TDL::PresentationUtil

Defined in:
lib/tdl/audit/presentation_utils.rb

Class Method Summary collapse

Class Method Details

.list_like?(value) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/tdl/audit/presentation_utils.rb', line 27

def self.list_like?(value)
  value.is_a?(Array)
end

.multiline_string?(value) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/tdl/audit/presentation_utils.rb', line 31

def self.multiline_string?(value)
  value.include?("\\n")
end

.serialize_and_compress(value) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/tdl/audit/presentation_utils.rb', line 15

def self.serialize_and_compress(value)
  representation = JSON.generate(value, quirks_mode: true)

  if list_like?(value)
    representation = representation.gsub(',', ', ')
  elsif multiline_string?(representation)
    representation = suppress_extra_lines(representation)
  end

  representation
end

.suppress_extra_lines(value) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/audit/presentation_utils.rb', line 35

def self.suppress_extra_lines(value)
  return value.to_s unless value.is_a?(String)

  parts = value.split("\\n")
  top_line = parts[0]
  remaining_lines = parts.size - 1

  representation = "#{top_line} .. ( #{remaining_lines} more line"
  representation += "s" if remaining_lines > 1
  representation += " )\""
  representation
end

.to_displayable_request(params) ⇒ Object



4
5
6
7
8
# File 'lib/tdl/audit/presentation_utils.rb', line 4

def self.to_displayable_request(params)
  return params.map{ |param|
    TDL::PresentationUtil.serialize_and_compress(param)
  }.join(', ')
end

.to_displayable_response(value) ⇒ Object



10
11
12
# File 'lib/tdl/audit/presentation_utils.rb', line 10

def self.to_displayable_response(value)
  return TDL::PresentationUtil.serialize_and_compress(value)
end