Class: AuditedChangeSet::Change

Inherits:
Object
  • Object
show all
Includes:
Hooks, Enumerable
Defined in:
lib/audited_change_set/change.rb

Defined Under Namespace

Modules: Hooks Classes: Field

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Hooks

#hooks, included

Constructor Details

#initialize(audit, fields = nil) ⇒ Change

Returns a new instance of Change.



108
109
110
111
# File 'lib/audited_change_set/change.rb', line 108

def initialize(audit, fields=nil)
  @audit = audit
  @fields = fields
end

Class Method Details

.field_names_for_audits(audits) ⇒ Object



94
95
96
# File 'lib/audited_change_set/change.rb', line 94

def field_names_for_audits(audits)
  audits_to_changes(audits).map(&:field_names).flatten.uniq.sort
end

.for_audits(audits, fields = nil, unfiltered_change_id = nil) ⇒ Object



90
91
92
# File 'lib/audited_change_set/change.rb', line 90

def for_audits(audits, fields=nil, unfiltered_change_id=nil)
  audits_to_changes(audits, fields, unfiltered_change_id).select(&:relevant?).reverse
end

Instance Method Details

#create_field(name, changes) ⇒ Object



113
114
115
# File 'lib/audited_change_set/change.rb', line 113

def create_field(name, changes)
  Field.new(@audit.auditable_type, name, *[changes].flatten.reverse)
end

#dateObject



129
130
131
# File 'lib/audited_change_set/change.rb', line 129

def date
  @audit.created_at
end

#each(&block) ⇒ Object



145
146
147
# File 'lib/audited_change_set/change.rb', line 145

def each(&block)
  changed_fields.each(&block)
end

#field_namesObject



141
142
143
# File 'lib/audited_change_set/change.rb', line 141

def field_names
  non_empty_fields.map { |name, vals| name }
end

#relevant?Boolean

Returns:

  • (Boolean)


133
134
135
# File 'lib/audited_change_set/change.rb', line 133

def relevant?
  any?(&:present?)
end

#relevant_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


137
138
139
# File 'lib/audited_change_set/change.rb', line 137

def relevant_field?(field) 
  @fields ? @fields.map(&:downcase).include?(field.name) : true
end

#usernameObject



121
122
123
124
125
126
127
# File 'lib/audited_change_set/change.rb', line 121

def username
  if @audit.user
    hook(:username, @audit.user) || @audit.username
  else
    'unknown'
  end
end