Module: LogBook::Utils

Defined in:
lib/log_book/utils.rb

Class Method Summary collapse

Class Method Details

.pretty_changes(model) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/log_book/utils.rb', line 2

def self.pretty_changes(model)
  # TODO: this line of code is duplicated
  if ActiveRecord::VERSION::STRING.to_f >= 5.1
    clean_changes = model.saved_changes.select { |k,v| !model.log_book_options[:ignore].include? k.to_sym }
  else
    clean_changes = model.changes.select { |k,v| !model.log_book_options[:ignore].include? k.to_sym }
  end

  result =
    clean_changes.map do |k,v|
      old_value = v[0]
      new_value = v[1]

      old_value = old_value.utc.strftime("%Y-%m-%d %H:%M:%S") if old_value.is_a? Time
      new_value = new_value.utc.strftime("%Y-%m-%d %H:%M:%S") if new_value.is_a? Time

      {
        "key" => k,
        "before" => old_value,
        "after" => new_value
      }
    end

  result
end