class Piawe::FileParser
Class to read people and rules files and convert them into a PIAWE report
Public Class Methods
new( people_file_name, rules_file_name, report_date_string )
click to toggle source
Create a new FileParser
to generate a PIAWE report from files
Parameters¶ ↑
-
people_file_name
- Fully qualified path of the people file -
rules_file_name
- Fully qualified path of the rules file -
report_date_string
- Report date to use, in YYYY/MM/DD format
# File lib/piawe/file_parser.rb, line 13 def initialize( people_file_name, rules_file_name, report_date_string ) @people_file_name = people_file_name @rules_file_name = rules_file_name @report_date_string = report_date_string end
Public Instance Methods
report()
click to toggle source
Generate a JSON hash containing the PIAWE report
# File lib/piawe/file_parser.rb, line 20 def report JSON.pretty_generate( { piawe_report: Piawe.new( people_array, rules_array ).report( report_date ) } ) end
Private Instance Methods
people_array()
click to toggle source
# File lib/piawe/file_parser.rb, line 26 def people_array people_hash["people"] || (raise ArgumentError, "people hash did not contain a people key!") end
people_file()
click to toggle source
# File lib/piawe/file_parser.rb, line 36 def people_file File.exist?(@people_file_name) ? File.new(@people_file_name) : (raise ArgumentError, "Could not find file #{@people_file_name}") end
people_hash()
click to toggle source
# File lib/piawe/file_parser.rb, line 31 def people_hash JSON.parse people_file.read end
report_date()
click to toggle source
# File lib/piawe/file_parser.rb, line 56 def report_date /^(?<yyyy>\d{4})\/(?<mm>\d{2})\/(?<dd>\d{2})$/ =~ @report_date_string || (raise ArgumentError, "report_date_string was not in YYYY/MM/DD format") result = nil begin result = Date.new(yyyy.to_i, mm.to_i, dd.to_i) rescue ArgumentError => ex raise ArgumentError, "report_date_string does not represent a valid date: #{@report_date_string}" end result end
rules_array()
click to toggle source
# File lib/piawe/file_parser.rb, line 41 def rules_array rules_hash["rules"] || (raise ArgumentError, "rules hash did not contain a rules key") end
rules_file()
click to toggle source
# File lib/piawe/file_parser.rb, line 51 def rules_file File.exist?(@rules_file_name) ? File.new(@rules_file_name) : (raise ArgumentError, "Could not find file #{@rules_file_name}") end
rules_hash()
click to toggle source
# File lib/piawe/file_parser.rb, line 46 def rules_hash JSON.parse rules_file.read end