healthcare_phony 0.7s.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +42 -42
  3. data/.github/workflows/ruby.yml +33 -33
  4. data/.gitignore +63 -63
  5. data/.rdoc_options +23 -23
  6. data/.rubocop.yml +10 -10
  7. data/CODE_OF_CONDUCT.md +84 -84
  8. data/Gemfile +8 -8
  9. data/LICENSE.txt +21 -21
  10. data/README.md +365 -365
  11. data/Rakefile +12 -12
  12. data/VERSION +1 -1
  13. data/examples/bigger_csv_example.erb +3 -3
  14. data/examples/phony_adt_sender.rb +111 -111
  15. data/examples/phony_adt_sender.yml +11 -11
  16. data/examples/phony_csv.yml +4 -4
  17. data/healthcare_phony.gemspec +36 -36
  18. data/lib/healthcare_phony.rb +138 -139
  19. data/lib/healthcare_phony/address.rb +89 -89
  20. data/lib/healthcare_phony/assigning_authority.rb +6 -6
  21. data/lib/healthcare_phony/cell_phone_number.rb +20 -20
  22. data/lib/healthcare_phony/data_files/address_type.yml +7 -7
  23. data/lib/healthcare_phony/data_files/adt_event_types.yml +59 -59
  24. data/lib/healthcare_phony/data_files/degree.yml +9 -9
  25. data/lib/healthcare_phony/data_files/discharge_disposition.yml +15 -15
  26. data/lib/healthcare_phony/data_files/ethnic_group.yml +9 -9
  27. data/lib/healthcare_phony/data_files/hl7_message_types.yml +4 -4
  28. data/lib/healthcare_phony/data_files/language.yml +7 -7
  29. data/lib/healthcare_phony/data_files/marital_status.yml +49 -49
  30. data/lib/healthcare_phony/data_files/mdm_event_types.yml +12 -12
  31. data/lib/healthcare_phony/data_files/oru_event_types.yml +2 -2
  32. data/lib/healthcare_phony/data_files/race.yml +13 -13
  33. data/lib/healthcare_phony/data_files/religion.yml +250 -250
  34. data/lib/healthcare_phony/data_files/tele_equipment_type.yml +10 -10
  35. data/lib/healthcare_phony/data_files/tele_use_code.yml +9 -9
  36. data/lib/healthcare_phony/diagnosis.rb +12 -12
  37. data/lib/healthcare_phony/doctor.rb +26 -26
  38. data/lib/healthcare_phony/email.rb +25 -25
  39. data/lib/healthcare_phony/ethnic_group.rb +34 -34
  40. data/lib/healthcare_phony/gender.rb +22 -22
  41. data/lib/healthcare_phony/helper.rb +72 -72
  42. data/lib/healthcare_phony/hl7_message.rb +159 -159
  43. data/lib/healthcare_phony/home_phone_number.rb +20 -20
  44. data/lib/healthcare_phony/identifier.rb +23 -23
  45. data/lib/healthcare_phony/insurance.rb +6 -6
  46. data/lib/healthcare_phony/language.rb +30 -30
  47. data/lib/healthcare_phony/marital_status.rb +31 -31
  48. data/lib/healthcare_phony/patient.rb +114 -114
  49. data/lib/healthcare_phony/patient_visit.rb +97 -97
  50. data/lib/healthcare_phony/person_name.rb +104 -104
  51. data/lib/healthcare_phony/phone_number.rb +85 -85
  52. data/lib/healthcare_phony/procedure.rb +6 -6
  53. data/lib/healthcare_phony/race.rb +31 -31
  54. data/lib/healthcare_phony/religion.rb +32 -32
  55. data/lib/healthcare_phony/templates/csv_example.erb +3 -3
  56. data/lib/healthcare_phony/version.rb +5 -5
  57. data/lib/healthcare_phony/visit_admission.rb +53 -53
  58. data/lib/healthcare_phony/visit_discharge.rb +62 -62
  59. data/lib/healthcare_phony/visit_doctors.rb +19 -19
  60. data/lib/healthcare_phony/visit_location.rb +106 -106
  61. data/lib/healthcare_phony/visit_type.rb +8 -8
  62. data/lib/healthcare_phony/work_phone_number.rb +20 -20
  63. metadata +5 -5
@@ -1,97 +1,97 @@
1
- # frozen_string_literal: true
2
-
3
- module HealthcarePhony
4
- # Public: Randomly generates data for a PatientVisit (PV1 segment)
5
- class PatientVisit
6
- attr_accessor :patient_class,
7
- :admission, :doctors,
8
- :hospital_service, :readmission_indicator,
9
- :ambulatory_status, :vip_indicator, :patient_type,
10
- :visit_number, :bed_status,
11
- :discharge, :location
12
-
13
- # Public: Initializes an Address. Pass in hash of different parameters, currently this includes:
14
- # hospital_service - Array of Hospital Service codes (PV1.10) to randomly choose from. Specified as comma separated
15
- # String or Ruby array. Otherwise default HL7 v2.5.1 Table 0069 values are used.
16
- # patient_class - Array of Patient Class codes (PV1.2) to randomly choose from. Specified as comma separated
17
- # String or Ruby array. Otherwise default HL7 v2.5.1 Table 0004 values are used.
18
- # ambulatory_status - Array of Ambulatory Status codes (PV1.15) to randomly choose from. Specified as comma
19
- # separated String or Ruby array. Otherwise default HL7 v2.5.1 Table 0009 values are used.
20
- # bed_status - Array of Bed Status codes (PV1.40) to randomly choose from. Specified as comma separated String or
21
- # Ruby array. Otherwise default HL7 v2.5.1 Table 0116 values are used.
22
- # patient_type - Array of Patient Type codes (PV1.18) to randomly choose from. Specified as comma separated String
23
- # or Ruby array. Otherwise this field is left blank.
24
- # vip_indicator - Array of Patient Type codes (PV1.18) to randomly choose from. Specified as comma separated String
25
- # or Ruby array. Otherwise this field is left blank.
26
- # visit_type - VisitType of the patient's visit
27
- def initialize(init_args = {})
28
- @doctors = VisitDoctors.new(init_args)
29
- @location = VisitLocation.new(init_args)
30
- @admission = VisitAdmission.new(init_args)
31
- @bed_status = define_bed_status(init_args)
32
- @visit_number = Identifier.new(type_code: 'VN')
33
- @readmission_indicator = Helper.random_with_blank('R', 50)
34
- @patient_type = define_patient_type(init_args)
35
- @vip_indicator = define_vip(init_args)
36
- @ambulatory_status = define_ambulatory_status(init_args)
37
- @patient_class = define_patient_class(init_args)
38
- @hospital_service = define_hospital_service(init_args)
39
- @discharge = VisitDischarge.new(init_args.merge({ admit_datetime: @admission.datetime }))
40
- end
41
-
42
- private
43
-
44
- def define_hospital_service(init_args = {})
45
- standard_hospital_service = %w[CAR MED PUL SUR URO]
46
- hs_choices = Helper.get_array(init_args[:hospital_service])
47
- if !hs_choices.empty?
48
- hs_choices.sample
49
- else
50
- standard_hospital_service.sample
51
- end
52
- end
53
-
54
- def define_patient_class(init_args = {})
55
- standard_pc_choices = %w[B C E I N O P R U]
56
- pc_choices = Helper.get_array(init_args[:patient_class])
57
- !pc_choices.empty? ? pc_choices.sample : standard_pc_choices.sample
58
- end
59
-
60
- def define_ambulatory_status(init_args = {})
61
- standard_ambulatory_status = %w[A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 B1 B2 B3 B4 B5 B6]
62
- as_choices = Helper.get_array(init_args[:ambulatory_status])
63
- if !as_choices.empty?
64
- as_choices.sample
65
- else
66
- standard_ambulatory_status.sample
67
- end
68
- end
69
-
70
- def define_bed_status(init_args = {})
71
- bs_choices = Helper.get_array(init_args[:bed_status])
72
- if !bs_choices.empty?
73
- bs_choices.sample
74
- else
75
- %w[C H I K O U].sample
76
- end
77
- end
78
-
79
- def define_patient_type(init_args = {})
80
- pt_choices = Helper.get_array(init_args[:patient_type])
81
- if !pt_choices.empty?
82
- pt_choices.sample
83
- else
84
- ''
85
- end
86
- end
87
-
88
- def define_vip(init_args = {})
89
- vip_choices = Helper.get_array(init_args[:vip_indicator])
90
- if !vip_choices.empty?
91
- vip_choices.sample
92
- else
93
- ''
94
- end
95
- end
96
- end
97
- end
1
+ # frozen_string_literal: true
2
+
3
+ module HealthcarePhony
4
+ # Public: Randomly generates data for a PatientVisit (PV1 segment)
5
+ class PatientVisit
6
+ attr_accessor :patient_class,
7
+ :admission, :doctors,
8
+ :hospital_service, :readmission_indicator,
9
+ :ambulatory_status, :vip_indicator, :patient_type,
10
+ :visit_number, :bed_status,
11
+ :discharge, :location
12
+
13
+ # Public: Initializes an Address. Pass in hash of different parameters, currently this includes:
14
+ # hospital_service - Array of Hospital Service codes (PV1.10) to randomly choose from. Specified as comma separated
15
+ # String or Ruby array. Otherwise default HL7 v2.5.1 Table 0069 values are used.
16
+ # patient_class - Array of Patient Class codes (PV1.2) to randomly choose from. Specified as comma separated
17
+ # String or Ruby array. Otherwise default HL7 v2.5.1 Table 0004 values are used.
18
+ # ambulatory_status - Array of Ambulatory Status codes (PV1.15) to randomly choose from. Specified as comma
19
+ # separated String or Ruby array. Otherwise default HL7 v2.5.1 Table 0009 values are used.
20
+ # bed_status - Array of Bed Status codes (PV1.40) to randomly choose from. Specified as comma separated String or
21
+ # Ruby array. Otherwise default HL7 v2.5.1 Table 0116 values are used.
22
+ # patient_type - Array of Patient Type codes (PV1.18) to randomly choose from. Specified as comma separated String
23
+ # or Ruby array. Otherwise this field is left blank.
24
+ # vip_indicator - Array of Patient Type codes (PV1.18) to randomly choose from. Specified as comma separated String
25
+ # or Ruby array. Otherwise this field is left blank.
26
+ # visit_type - VisitType of the patient's visit
27
+ def initialize(init_args = {})
28
+ @doctors = VisitDoctors.new(init_args)
29
+ @location = VisitLocation.new(init_args)
30
+ @admission = VisitAdmission.new(init_args)
31
+ @bed_status = define_bed_status(init_args)
32
+ @visit_number = Identifier.new(type_code: 'VN')
33
+ @readmission_indicator = Helper.random_with_blank('R', 50)
34
+ @patient_type = define_patient_type(init_args)
35
+ @vip_indicator = define_vip(init_args)
36
+ @ambulatory_status = define_ambulatory_status(init_args)
37
+ @patient_class = define_patient_class(init_args)
38
+ @hospital_service = define_hospital_service(init_args)
39
+ @discharge = VisitDischarge.new(init_args.merge({ admit_datetime: @admission.datetime }))
40
+ end
41
+
42
+ private
43
+
44
+ def define_hospital_service(init_args = {})
45
+ standard_hospital_service = %w[CAR MED PUL SUR URO]
46
+ hs_choices = Helper.get_array(init_args[:hospital_service])
47
+ if !hs_choices.empty?
48
+ hs_choices.sample
49
+ else
50
+ standard_hospital_service.sample
51
+ end
52
+ end
53
+
54
+ def define_patient_class(init_args = {})
55
+ standard_pc_choices = %w[B C E I N O P R U]
56
+ pc_choices = Helper.get_array(init_args[:patient_class])
57
+ !pc_choices.empty? ? pc_choices.sample : standard_pc_choices.sample
58
+ end
59
+
60
+ def define_ambulatory_status(init_args = {})
61
+ standard_ambulatory_status = %w[A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 B1 B2 B3 B4 B5 B6]
62
+ as_choices = Helper.get_array(init_args[:ambulatory_status])
63
+ if !as_choices.empty?
64
+ as_choices.sample
65
+ else
66
+ standard_ambulatory_status.sample
67
+ end
68
+ end
69
+
70
+ def define_bed_status(init_args = {})
71
+ bs_choices = Helper.get_array(init_args[:bed_status])
72
+ if !bs_choices.empty?
73
+ bs_choices.sample
74
+ else
75
+ %w[C H I K O U].sample
76
+ end
77
+ end
78
+
79
+ def define_patient_type(init_args = {})
80
+ pt_choices = Helper.get_array(init_args[:patient_type])
81
+ if !pt_choices.empty?
82
+ pt_choices.sample
83
+ else
84
+ ''
85
+ end
86
+ end
87
+
88
+ def define_vip(init_args = {})
89
+ vip_choices = Helper.get_array(init_args[:vip_indicator])
90
+ if !vip_choices.empty?
91
+ vip_choices.sample
92
+ else
93
+ ''
94
+ end
95
+ end
96
+ end
97
+ end
@@ -1,104 +1,104 @@
1
- # frozen_string_literal: true
2
-
3
- module HealthcarePhony
4
- # Public: Randomly generates a patient name.
5
- class PersonName
6
- attr_accessor :family_name,
7
- :given_name,
8
- :middle_name,
9
- :suffix,
10
- :prefix,
11
- :degree
12
-
13
- # Public: Initializes an Address. Pass in hash of different parameters, currently this includes:
14
- # blank - An integer representing the % of times PatientName components should be blank.
15
- # gender - A Gender object which will be used to generate a Male or Female name if specified.
16
- # degree_data_file - Location of YAML file containing a list of potential degrees to choose from. By default the
17
- # gem supplied file will be used. The default file {degree.yml}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/degree.yml].
18
- def initialize(init_args = {})
19
- @set_blank = !init_args[:blank].nil? && Helper.random_with_blank('X', init_args[:blank]) == ''
20
- @gender = init_args[:gender]
21
- @degree_data_file = get_degree_data_file(init_args)
22
- @given_name = (init_args[:given_name_append].nil? ? '' : init_args[:given_name_append]) + define_given_name
23
- @family_name = (init_args[:family_name_append].nil? ? '' : init_args[:family_name_append]) + define_family_name
24
- @middle_name = define_middle_name
25
- @suffix = define_suffix
26
- @prefix = define_prefix
27
- @degree = define_degree(init_args)
28
- end
29
-
30
- private
31
-
32
- # Private: Boolean set during initialization if Address components should be set to blank.
33
- attr_accessor :set_blank
34
- attr_accessor :degree_data_file
35
-
36
- def get_degree_data_file(init_args = {})
37
- if !init_args[:degree_data_file].nil?
38
- init_args[:degree_data_file]
39
- else
40
- "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/degree.yml"
41
- end
42
- end
43
-
44
- def define_given_name
45
- if @set_blank
46
- ''
47
- elsif !@gender.nil? && @gender.code == 'M'
48
- Faker::Name.male_first_name
49
- elsif !@gender.nil? && @gender.code == 'F'
50
- Faker::Name.female_first_name
51
- else
52
- Faker::Name.first_name
53
- end
54
- end
55
-
56
- def define_family_name
57
- if @set_blank
58
- ''
59
- else
60
- Faker::Name.last_name
61
- end
62
- end
63
-
64
- def define_middle_name
65
- if @set_blank
66
- ''
67
- else
68
- Faker::Name.middle_name
69
- end
70
- end
71
-
72
- def define_suffix
73
- if @set_blank
74
- ''
75
- else
76
- Faker::Name.suffix
77
- end
78
- end
79
-
80
- def define_prefix
81
- if @set_blank
82
- ''
83
- else
84
- Faker::Name.prefix
85
- end
86
- end
87
-
88
- def define_degree(init_args = {})
89
- if @set_blank
90
- ''
91
- elsif !init_args[:degree].nil?
92
- degree_choices = Helper.get_array(init_args[:degree])
93
- degree_choices.sample unless degree_choices.empty?
94
- else
95
- degrees_from_file
96
- end
97
- end
98
-
99
- def degrees_from_file
100
- degrees = Psych.load_file(@degree_data_file)
101
- degrees.nil? ? '' : degrees.sample
102
- end
103
- end
104
- end
1
+ # frozen_string_literal: true
2
+
3
+ module HealthcarePhony
4
+ # Public: Randomly generates a patient name.
5
+ class PersonName
6
+ attr_accessor :family_name,
7
+ :given_name,
8
+ :middle_name,
9
+ :suffix,
10
+ :prefix,
11
+ :degree
12
+
13
+ # Public: Initializes an Address. Pass in hash of different parameters, currently this includes:
14
+ # blank - An integer representing the % of times PatientName components should be blank.
15
+ # gender - A Gender object which will be used to generate a Male or Female name if specified.
16
+ # degree_data_file - Location of YAML file containing a list of potential degrees to choose from. By default the
17
+ # gem supplied file will be used. The default file {degree.yml}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/degree.yml].
18
+ def initialize(init_args = {})
19
+ @set_blank = !init_args[:blank].nil? && Helper.random_with_blank('X', init_args[:blank]) == ''
20
+ @gender = init_args[:gender]
21
+ @degree_data_file = get_degree_data_file(init_args)
22
+ @given_name = (init_args[:given_name_append].nil? ? '' : init_args[:given_name_append]) + define_given_name
23
+ @family_name = (init_args[:family_name_append].nil? ? '' : init_args[:family_name_append]) + define_family_name
24
+ @middle_name = define_middle_name
25
+ @suffix = define_suffix
26
+ @prefix = define_prefix
27
+ @degree = define_degree(init_args)
28
+ end
29
+
30
+ private
31
+
32
+ # Private: Boolean set during initialization if Address components should be set to blank.
33
+ attr_accessor :set_blank
34
+ attr_accessor :degree_data_file
35
+
36
+ def get_degree_data_file(init_args = {})
37
+ if !init_args[:degree_data_file].nil?
38
+ init_args[:degree_data_file]
39
+ else
40
+ "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/degree.yml"
41
+ end
42
+ end
43
+
44
+ def define_given_name
45
+ if @set_blank
46
+ ''
47
+ elsif !@gender.nil? && @gender.code == 'M'
48
+ Faker::Name.male_first_name
49
+ elsif !@gender.nil? && @gender.code == 'F'
50
+ Faker::Name.female_first_name
51
+ else
52
+ Faker::Name.first_name
53
+ end
54
+ end
55
+
56
+ def define_family_name
57
+ if @set_blank
58
+ ''
59
+ else
60
+ Faker::Name.last_name
61
+ end
62
+ end
63
+
64
+ def define_middle_name
65
+ if @set_blank
66
+ ''
67
+ else
68
+ Faker::Name.middle_name
69
+ end
70
+ end
71
+
72
+ def define_suffix
73
+ if @set_blank
74
+ ''
75
+ else
76
+ Faker::Name.suffix
77
+ end
78
+ end
79
+
80
+ def define_prefix
81
+ if @set_blank
82
+ ''
83
+ else
84
+ Faker::Name.prefix
85
+ end
86
+ end
87
+
88
+ def define_degree(init_args = {})
89
+ if @set_blank
90
+ ''
91
+ elsif !init_args[:degree].nil?
92
+ degree_choices = Helper.get_array(init_args[:degree])
93
+ degree_choices.sample unless degree_choices.empty?
94
+ else
95
+ degrees_from_file
96
+ end
97
+ end
98
+
99
+ def degrees_from_file
100
+ degrees = Psych.load_file(@degree_data_file)
101
+ degrees.nil? ? '' : degrees.sample
102
+ end
103
+ end
104
+ end
@@ -1,85 +1,85 @@
1
- # frozen_string_literal: true
2
-
3
- module HealthcarePhony
4
- # Public: Generates a fake phone number
5
- class PhoneNumber
6
- attr_accessor :number,
7
- :country_code,
8
- :area_code,
9
- :exchange_code,
10
- :subscriber_number,
11
- :use_code,
12
- :equipment_type
13
-
14
- def initialize(init_args = {})
15
- # Public: Initializes a home phone number. Pass in hash of different parameters, currently this includes:
16
- # blank - An integer representing the % of times phone number components should be blank.
17
- # use_code_data_file - YAML file containing use codes to randomly choose from. If not specified then values from
18
- # {tele_use_code.yml}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/tele_use_code.yml] are used.
19
- # equipment_type_data_file - YAML file containing equipment type codes to randomly choose from. If not specified
20
- # then values {tele_equipment_type}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/tele_equipment_type.yml] will be used.
21
- @set_blank = !init_args[:blank].nil? && Helper.random_with_blank('X', init_args[:blank]) == ''
22
- @use_code_data_file = init_args[:use_code_data_file]
23
- @equipment_type_data_file = init_args[:equipment_type_data_file]
24
- define_country_code
25
- define_area_code
26
- define_exchange_code
27
- define_subscriber_number
28
- define_use_code
29
- define_equipment_type
30
- end
31
-
32
- private
33
-
34
- # Private: Boolean set during initialization if Address components should be set to blank.
35
- attr_accessor :set_blank
36
-
37
- # Private: Location of data file of use codes
38
- attr_accessor :use_code_data_file
39
-
40
- # Private: Location of data file of equipment types
41
- attr_accessor :equipment_type_data_file
42
-
43
- def define_country_code
44
- @country_code = Faker::PhoneNumber.country_code
45
- @country_code = '' unless @set_blank == false
46
- end
47
-
48
- def define_area_code
49
- @area_code = Faker::PhoneNumber.area_code
50
- @area_code = '' unless @set_blank == false
51
- end
52
-
53
- def define_exchange_code
54
- @exchange_code = Faker::PhoneNumber.exchange_code
55
- @exchange_code = '' unless @set_blank == false
56
- end
57
-
58
- def define_subscriber_number
59
- @subscriber_number = Faker::PhoneNumber.subscriber_number
60
- @subscriber_number = '' unless @set_blank == false
61
- end
62
-
63
- def define_use_code
64
- data_file = if !@use_code_data_file.nil?
65
- @use_code_data_file
66
- else
67
- "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/tele_use_code.yml"
68
- end
69
- use_codes = Psych.load_file(data_file)
70
- @use_code = use_codes.nil? ? '' : use_codes.sample
71
- @use_code = '' unless @set_blank == false
72
- end
73
-
74
- def define_equipment_type
75
- data_file = if !@equipment_type_data_file.nil?
76
- @equipment_type_data_file
77
- else
78
- "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/tele_equipment_type.yml"
79
- end
80
- equipment_types = Psych.load_file(data_file)
81
- @equipment_type = equipment_types.nil? ? '' : equipment_types.sample
82
- @equipment_type = '' unless @set_blank == false
83
- end
84
- end
85
- end
1
+ # frozen_string_literal: true
2
+
3
+ module HealthcarePhony
4
+ # Public: Generates a fake phone number
5
+ class PhoneNumber
6
+ attr_accessor :number,
7
+ :country_code,
8
+ :area_code,
9
+ :exchange_code,
10
+ :subscriber_number,
11
+ :use_code,
12
+ :equipment_type
13
+
14
+ def initialize(init_args = {})
15
+ # Public: Initializes a home phone number. Pass in hash of different parameters, currently this includes:
16
+ # blank - An integer representing the % of times phone number components should be blank.
17
+ # use_code_data_file - YAML file containing use codes to randomly choose from. If not specified then values from
18
+ # {tele_use_code.yml}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/tele_use_code.yml] are used.
19
+ # equipment_type_data_file - YAML file containing equipment type codes to randomly choose from. If not specified
20
+ # then values {tele_equipment_type}[https://github.com/austinmoody/healthcare_phony/blob/main/lib/healthcare_phony/data_files/tele_equipment_type.yml] will be used.
21
+ @set_blank = !init_args[:blank].nil? && Helper.random_with_blank('X', init_args[:blank]) == ''
22
+ @use_code_data_file = init_args[:use_code_data_file]
23
+ @equipment_type_data_file = init_args[:equipment_type_data_file]
24
+ define_country_code
25
+ define_area_code
26
+ define_exchange_code
27
+ define_subscriber_number
28
+ define_use_code
29
+ define_equipment_type
30
+ end
31
+
32
+ private
33
+
34
+ # Private: Boolean set during initialization if Address components should be set to blank.
35
+ attr_accessor :set_blank
36
+
37
+ # Private: Location of data file of use codes
38
+ attr_accessor :use_code_data_file
39
+
40
+ # Private: Location of data file of equipment types
41
+ attr_accessor :equipment_type_data_file
42
+
43
+ def define_country_code
44
+ @country_code = Faker::PhoneNumber.country_code
45
+ @country_code = '' unless @set_blank == false
46
+ end
47
+
48
+ def define_area_code
49
+ @area_code = Faker::PhoneNumber.area_code
50
+ @area_code = '' unless @set_blank == false
51
+ end
52
+
53
+ def define_exchange_code
54
+ @exchange_code = Faker::PhoneNumber.exchange_code
55
+ @exchange_code = '' unless @set_blank == false
56
+ end
57
+
58
+ def define_subscriber_number
59
+ @subscriber_number = Faker::PhoneNumber.subscriber_number
60
+ @subscriber_number = '' unless @set_blank == false
61
+ end
62
+
63
+ def define_use_code
64
+ data_file = if !@use_code_data_file.nil?
65
+ @use_code_data_file
66
+ else
67
+ "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/tele_use_code.yml"
68
+ end
69
+ use_codes = Psych.load_file(data_file)
70
+ @use_code = use_codes.nil? ? '' : use_codes.sample
71
+ @use_code = '' unless @set_blank == false
72
+ end
73
+
74
+ def define_equipment_type
75
+ data_file = if !@equipment_type_data_file.nil?
76
+ @equipment_type_data_file
77
+ else
78
+ "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/tele_equipment_type.yml"
79
+ end
80
+ equipment_types = Psych.load_file(data_file)
81
+ @equipment_type = equipment_types.nil? ? '' : equipment_types.sample
82
+ @equipment_type = '' unless @set_blank == false
83
+ end
84
+ end
85
+ end