class HealthcarePhony::PersonName

Public: Randomly generates a patient name.

Attributes

degree[RW]
degree_data_file[RW]
family_name[RW]
given_name[RW]
middle_name[RW]
prefix[RW]
set_blank[RW]

Private: Boolean set during initialization if Address components should be set to blank.

suffix[RW]

Public Class Methods

new(init_args = {}) click to toggle source

Public: Initializes an Address. Pass in hash of different parameters, currently this includes: blank - An integer representing the % of times PatientName components should be blank. gender - A Gender object which will be used to generate a Male or Female name if specified. degree_data_file - Location of YAML file containing a list of potential degrees to choose from. By default the gem supplied file will be used. The default file degree.yml.

# File lib/healthcare_phony/person_name.rb, line 18
def initialize(init_args = {})
  @set_blank = !init_args[:blank].nil? && Helper.random_with_blank('X', init_args[:blank]) == ''
  @gender = init_args[:gender]
  @degree_data_file = get_degree_data_file(init_args)
  @given_name = (init_args[:given_name_append].nil? ? '' : init_args[:given_name_append]) + define_given_name
  @family_name = (init_args[:family_name_append].nil? ? '' : init_args[:family_name_append]) + define_family_name
  @middle_name = define_middle_name
  @suffix = define_suffix
  @prefix = define_prefix
  @degree = define_degree(init_args)
end

Private Instance Methods

define_degree(init_args = {}) click to toggle source
# File lib/healthcare_phony/person_name.rb, line 88
def define_degree(init_args = {})
  if @set_blank
    ''
  elsif !init_args[:degree].nil?
    degree_choices = Helper.get_array(init_args[:degree])
    degree_choices.sample unless degree_choices.empty?
  else
    degrees_from_file
  end
end
define_family_name() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 56
def define_family_name
  if @set_blank
    ''
  else
    Faker::Name.last_name
  end
end
define_given_name() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 44
def define_given_name
  if @set_blank
    ''
  elsif !@gender.nil? && @gender.code == 'M'
    Faker::Name.male_first_name
  elsif !@gender.nil? && @gender.code == 'F'
    Faker::Name.female_first_name
  else
    Faker::Name.first_name
  end
end
define_middle_name() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 64
def define_middle_name
  if @set_blank
    ''
  else
    Faker::Name.middle_name
  end
end
define_prefix() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 80
def define_prefix
  if @set_blank
    ''
  else
    Faker::Name.prefix
  end
end
define_suffix() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 72
def define_suffix
  if @set_blank
    ''
  else
    Faker::Name.suffix
  end
end
degrees_from_file() click to toggle source
# File lib/healthcare_phony/person_name.rb, line 99
def degrees_from_file
  degrees = Psych.load_file(@degree_data_file)
  degrees.nil? ? '' : degrees.sample
end
get_degree_data_file(init_args = {}) click to toggle source
# File lib/healthcare_phony/person_name.rb, line 36
def get_degree_data_file(init_args = {})
  if !init_args[:degree_data_file].nil?
    init_args[:degree_data_file]
  else
    "#{::File.expand_path(::File.join("..", "data_files"), __FILE__)}/degree.yml"
  end
end