Class: ActiveStash::Assess
- Inherits:
-
Object
- Object
- ActiveStash::Assess
- Defined in:
- lib/active_stash/assess.rb,
lib/active_stash/assess/column_name_rules.rb
Overview
Class for generating, writing, and reading Assess reports.
Currently only supports Rails applications.
Defined Under Namespace
Classes: ColumnNameRules
Constant Summary collapse
- REPORT_FILE_NAME =
"active_stash_assessment.yml"- DOCS_BASE_URL =
"https://docs.cipherstash.com/assess/checks"
Instance Method Summary collapse
- #default_models ⇒ Object
-
#initialize(quiet: false, models: default_models, report_dir: Rails.root) ⇒ Assess
constructor
A new instance of Assess.
-
#read_report ⇒ Hash
Read the report from active_stash_assessment.yml.
- #report_exists? ⇒ Boolean
-
#run ⇒ Object
Run an assessment and generate a report.
Constructor Details
#initialize(quiet: false, models: default_models, report_dir: Rails.root) ⇒ Assess
Returns a new instance of Assess.
14 15 16 17 18 |
# File 'lib/active_stash/assess.rb', line 14 def initialize(quiet: false, models: default_models, report_dir: Rails.root) @assessment_path = report_dir.join(REPORT_FILE_NAME) @models = models @quiet = quiet end |
Instance Method Details
#default_models ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/active_stash/assess.rb', line 20 def default_models if defined?(ApplicationRecord) ApplicationRecord.descendants else [] end end |
#read_report ⇒ Hash
Read the report from active_stash_assessment.yml.
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/active_stash/assess.rb', line 45 def read_report begin YAML.load(@assessment_path.read) rescue Errno::ENOENT raise AssessmentNotFound, <<~STR Assessment not found at #{@assessment_path}. This probably means that the assessment hasn't been generated. Try running `rake active_stash:assess` first. STR end end |
#report_exists? ⇒ Boolean
59 60 61 |
# File 'lib/active_stash/assess.rb', line 59 def report_exists? File.exist?(@assessment_path) end |
#run ⇒ Object
Run an assessment and generate a report. Results are printed to stdout and written to active_stash_assessment.yml.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/active_stash/assess.rb', line 29 def run assessment = @models.map { |model| [model.name, suspected_personal_data(model)] } write_report(assessment, @assessment_path) unless @quiet print_results(assessment) puts "Assessment written to: #{@assessment_path}" end end |