Module: Sufia::GenericFile::Audit
- Extended by:
- ActiveSupport::Concern
- Included in:
- Sufia::GenericFile
- Defined in:
- lib/sufia/models/generic_file/audit.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- NO_RUNS =
999
Instance Method Summary collapse
- #audit(force = false) ⇒ Object
- #audit! ⇒ Object
- #audit_stat(force = false) ⇒ Object
- #audit_stat! ⇒ Object
- #logs(dsid) ⇒ Object
- #per_version(&block) ⇒ Object
Instance Method Details
#audit(force = false) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/sufia/models/generic_file/audit.rb', line 10 def audit(force = false) logs = [] self.per_version do |ver| logs << ::GenericFile.audit(ver, force) end logs end |
#audit! ⇒ Object
30 31 32 |
# File 'lib/sufia/models/generic_file/audit.rb', line 30 def audit! audit(true) end |
#audit_stat(force = false) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sufia/models/generic_file/audit.rb', line 38 def audit_stat(force = false) logs = audit(force) audit_results = logs.collect { |result| result["pass"] } # check how many non runs we had non_runs =audit_results.reduce(0) { |sum, value| (value == NO_RUNS) ? sum = sum+1 : sum } if (non_runs == 0) result =audit_results.reduce(true) { |sum, value| sum && value } return result elsif (non_runs < audit_results.length) result =audit_results.reduce(true) { |sum, value| (value == NO_RUNS) ? sum : sum && value } return 'Some audits have not been run, but the ones run were '+ ((result)? 'passing' : 'failing') + '.' else return 'Audits have not yet been run on this file.' end end |
#audit_stat! ⇒ Object
34 35 36 |
# File 'lib/sufia/models/generic_file/audit.rb', line 34 def audit_stat! audit_stat(true) end |
#logs(dsid) ⇒ Object
26 27 28 |
# File 'lib/sufia/models/generic_file/audit.rb', line 26 def logs(dsid) ChecksumAuditLog.where(:dsid=>dsid, :pid=>self.pid).order('created_at desc, id desc') end |
#per_version(&block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/sufia/models/generic_file/audit.rb', line 18 def per_version(&block) self.datastreams.each do |dsid, ds| ds.versions.each do |ver| block.call(ver) end end end |