Class: Scaptimony::ArfReport
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Scaptimony::ArfReport
- Defined in:
- app/models/scaptimony/arf_report.rb
Class Method Summary collapse
- .search_by_comply_with(_key, _operator, policy_name) ⇒ Object
- .search_by_inconclusive_with(_key, _operator, policy_name) ⇒ Object
- .search_by_last_for(key, operator, by) ⇒ Object
- .search_by_not_comply_with(_key, _operator, policy_name) ⇒ Object
- .search_by_policy_results(policy_name, &selection) ⇒ Object
Instance Method Summary collapse
Class Method Details
.search_by_comply_with(_key, _operator, policy_name) ⇒ Object
44 45 46 |
# File 'app/models/scaptimony/arf_report.rb', line 44 def self.search_by_comply_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:comply end |
.search_by_inconclusive_with(_key, _operator, policy_name) ⇒ Object
52 53 54 |
# File 'app/models/scaptimony/arf_report.rb', line 52 def self.search_by_inconclusive_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:inconclusive end |
.search_by_last_for(key, operator, by) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/models/scaptimony/arf_report.rb', line 65 def self.search_by_last_for(key, operator, by) by.gsub!(/[^[:alnum:]]/, '') case by.downcase when 'host' { :conditions => 'scaptimony_arf_reports.id IN ( SELECT MAX(id) FROM scaptimony_arf_reports sub WHERE sub.asset_id = scaptimony_arf_reports.asset_id)' } when 'policy' { :conditions => 'scaptimony_arf_reports.id IN ( SELECT MAX(id) FROM scaptimony_arf_reports sub WHERE sub.policy_id = scaptimony_arf_reports.policy_id)' } else fail "Cannot search last by #{by}" end end |
.search_by_not_comply_with(_key, _operator, policy_name) ⇒ Object
48 49 50 |
# File 'app/models/scaptimony/arf_report.rb', line 48 def self.search_by_not_comply_with(_key, _operator, policy_name) search_by_policy_results policy_name, &:incomply end |
.search_by_policy_results(policy_name, &selection) ⇒ Object
56 57 58 59 60 61 62 63 |
# File 'app/models/scaptimony/arf_report.rb', line 56 def self.search_by_policy_results(policy_name, &selection) cond = sanitize_sql_for_conditions('scaptimony_policies.name' => policy_name) { :conditions => Scaptimony::ArfReport.arel_table[:id].in( Scaptimony::ArfReport.select(Scaptimony::ArfReport.arel_table[:id]) .latest.instance_eval(&selection).joins(:policy).where(cond).ast ).to_sql } end |
Instance Method Details
#failed ⇒ Object
34 |
# File 'app/models/scaptimony/arf_report.rb', line 34 def failed; arf_report_breakdown ? arf_report_breakdown.failed : 0; end |
#othered ⇒ Object
35 |
# File 'app/models/scaptimony/arf_report.rb', line 35 def othered; arf_report_breakdown ? arf_report_breakdown.othered : 0; end |
#passed ⇒ Object
33 |
# File 'app/models/scaptimony/arf_report.rb', line 33 def passed; arf_report_breakdown ? arf_report_breakdown.passed : 0; end |
#to_html ⇒ Object
37 38 39 40 41 42 |
# File 'app/models/scaptimony/arf_report.rb', line 37 def to_html if arf_report_raw.nil? fail Error, "Cannot generate HTML report, ArfReport #{id} is missing XML details" end arf_report_raw.to_html end |