Module: VersionsHelper

Defined in:
app/helpers/versions_helper.rb

Instance Method Summary collapse

Instance Method Details

#version_data_format_changes(data) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'app/helpers/versions_helper.rb', line 26

def version_data_format_changes(data)
  return unless changes = data&.last
  original = data&.first

  if original.respond_to?(:to_h) && changes.respond_to?(:to_h)
    diff = Hashdiff.diff(original, changes)
    tag.pre JSON.pretty_generate(JSON.parse(diff.to_json))
  else
    version_data_format_json(changes)
  end
end

#version_data_format_json(data) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/helpers/versions_helper.rb', line 7

def version_data_format_json(data)
  if data.is_a?(Hash)
    begin
      json_out = JSON.pretty_generate(JSON.parse(data.to_json))
      read_more_text = json_out.first(100)
      tag.pre(json_out)
    rescue JSON::ParserError
      data
    end
  else
    data
  end
end

#version_data_format_original(data) ⇒ Object



21
22
23
24
# File 'app/helpers/versions_helper.rb', line 21

def version_data_format_original(data)
  return unless original = data&.first
  version_data_format_json(original)
end

#version_event_badge(event) ⇒ Object



2
3
4
5
# File 'app/helpers/versions_helper.rb', line 2

def version_event_badge(event)
  css_class_suffix = { 'create' => 'success', 'update' => 'secondary', 'destroy' => 'danger' }[event.to_s]
  tag.span(event, class: "badge bg-#{css_class_suffix}")
end