Class: ChangeLog

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/changes_are_logged/change_log.rb

Constant Summary collapse

IGNORED_KEYS =
["updated_at"]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.pretty_value(v) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'lib/changes_are_logged/change_log.rb', line 53

def self.pretty_value(v)
  if v.nil?
    "(nil)"
  elsif v == ""
    "(empty)"
  else
    v.pretty_inspect
  end
end

Instance Method Details

#has_changes?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/changes_are_logged/change_log.rb', line 39

def has_changes?
  changes_logged && changes_logged.any?
end

#pretty_change_hashesObject



43
44
45
46
47
48
49
50
51
# File 'lib/changes_are_logged/change_log.rb', line 43

def pretty_change_hashes
  changes_logged.map do |k, (from, to)|
    {
      :key  => k,
      :from => self.class.pretty_value(from),
      :to   => self.class.pretty_value(to)
    }
  end
end

#pretty_changes(html = false) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/changes_are_logged/change_log.rb', line 13

def pretty_changes(html = false)
  change_string = ""
  if has_changes?
    changes_logged.each do |k,v|
      unless IGNORED_KEYS.include?(k)
        from = self.class.pretty_value(v[0])
        to = self.class.pretty_value(v[1])

        change_string << (html ? "&bull;&nbsp;" : "- ")
        change_string << (html ? "<i>#{k}</i>" : k)
        change_string << " CHANGED FROM #{from} TO #{to}"
        change_string << (html ? "<br/>" : "\n")
      end
    end
    change_string.html_safe
  else
    "No changes!"
  end
end

#userObject

FIXME too complected with lumos_rails



34
35
36
37
# File 'lib/changes_are_logged/change_log.rb', line 34

def user
  return nil unless user_id
  user_is_staff ? StaffUser.find(user_id) : User.find(user_id)
end