R/tw_GH.R

# person -----------------------------------------------
person_tw_GH = R6Class(
  "person_tw_GH",
  inherit = person_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '{first_name_male} {last_name_male}',
      '{first_name_male} {last_name_male}',
      '{first_name_male} {last_name_male}',
      '{first_name_male} {last_name_male}',
      '{first_name_male} {last_name_male}-{last_name_male}',
      '{first_name_female} {last_name_female}',
      '{first_name_female} {last_name_female}',
      '{first_name_female} {last_name_female}',
      '{first_name_female} {last_name_female}',
      '{first_name_female} {last_name_female}-{last_name_female}',
      '{prefix_male} {first_name_male} {last_name_male}',
      '{prefix_female} {first_name_female} {last_name_female}',
      '{prefix_male} {first_name_male} {last_name_male}',
      '{prefix_female} {first_name_female} {last_name_female}'
    ),

    # names from https://en.wikipedia.org/wiki/Ghanaian_name,
    # https://buzzghana.com/ghanaian-names/,
    # https://en.wikipedia.org/wiki/Akan_names,

    first_names_male = c(
      'Aaron',
      'Abeiku',
      'Adam',
      'Adrian',
      'Akwesi',
      'Albert',
      'Alex',
      'Alexander',
      'Andrew',
      'Anthony',
      'Antony',
      'Arthur',
      'Ben',
      'Benjamin',
      'Bernard',
      'Bruce',
      'Carl',
      'Charles',
      'Christian',
      'Clifford',
      'Colins',
      'Daniel',
      'Danny',
      'David',
      'Denis',
      'Dennis',
      'Derrick',
      'Dominic',
      'Donald',
      'Douglas',
      'Duncan',
      'Edward',
      'Ekow',
      'Elliot',
      'Elliott',
      'Eric',
      'Fiifi',
      'Francis',
      'Frank',
      'Frederick',
      'George',
      'Gerald',
      'Gordon',
      'Graham',
      'Gregory',
      'Harry',
      'Henry',
      'Howard',
      'Isaac',
      'Akwasi',
      'Jack',
      'Jacob',
      'Jake',
      'James',
      'Jason',
      'Jeffrey',
      'Jeremy',
      'Joe',
      'Joel',
      'John',
      'Jonathan',
      'Joojo',
      'Joseph',
      'Josh',
      'Joshua',
      'Josiah',
      'Julian',
      'Justin',
      'Karl',
      'Kenneth',
      'Kevin',
      'Kofi',
      'Kojo',
      'Kujoe',
      'Kwabena',
      'Kwadwo',
      'Kwaku',
      'Kwame',
      'Kwamena',
      'Kwasi',
      'Kweku',
      'Kwesi',
      'Kyle',
      'Lawrence',
      'Leslie',
      'Louis',
      'Luke',
      'Malcolm',
      'Marcus',
      'Mark',
      'Martin',
      'Mathew',
      'Matthew',
      'Max',
      'Michael',
      'Nathan',
      'Nicholas',
      'Nigel',
      'Oliver',
      'Patrick',
      'Paul',
      'Peter',
      'Philip',
      'Phillip',
      'Raymond',
      'Richard',
      'Robert',
      'Roger',
      'Ronald',
      'Russell',
      'Sam',
      'Samuel',
      'Shaun',
      'Simon',
      'Stanley',
      'Stephen',
      'Steven',
      'Terence',
      'Thomas',
      'Timothy',
      'Tom',
      'Tony',
      'Victor',
      'Vincent',
      'William',
      'Yaw'
    ),

    first_names_female = c(
      'Aba',
      'Abena',
      'Abigail',
      'Adwoa',
      'Afia',
      'Afua',
      'Akos',
      'Akosua',
      'Akua',
      'Akumaa',
      'Alice',
      'Ama',
      'Amanda',
      'Amber',
      'Amelia',
      'Angela',
      'Ann',
      'Annette',
      'Awesi',
      'Baaba',
      'Barbara',
      'Beatrice',
      'COmfort',
      'Caroline',
      'Catherine',
      'Charlotte',
      'Christina',
      'Comfort',
      'Constance',
      'Danielle',
      'Deborah',
      'Debra',
      'Denise',
      'Dora',
      'Dorcas',
      'Dorothy',
      'Eliabeth',
      'Elizabeth',
      'Emily',
      'Emma',
      'Ernestina',
      'Esi',
      'Eunice',
      'Felicia',
      'Francesca',
      'Gemma',
      'Georgia',
      'Georgina',
      'Gifty',
      'Grace',
      'Grace',
      'Hannabel',
      'Hannah',
      'Harriet',
      'Helen',
      'Irene',
      'Janet',
      'Janet',
      'Janice',
      'Jasmine',
      'Jennifer',
      'Jessica',
      'Jill',
      'Joanna',
      'Josephine',
      'Joyce',
      'Joyce',
      'Judith',
      'Julia',
      'Juliana',
      'Julie',
      'Karen',
      'Kate',
      'Katherine',
      'Katy',
      'Lawrencia',
      'Linda',
      'Lisa',
      'Lorraine',
      'Lucy',
      'Lucy',
      'Lydia',
      'Lydia',
      'Mandy',
      'Margaret',
      'Margaret',
      'Maria',
      'Marian',
      'Marilyn',
      'Mary',
      'Mary',
      'Maureen',
      'Michelle',
      'Millicent',
      'Nana Ama',
      'Naomi',
      'Natalie',
      'Natasha',
      'Nicola',
      'Nimakoah',
      'Olivia',
      'Pamela',
      'Patricia',
      'Paula',
      'Priscilla',
      'Rachael',
      'Rachel',
      'Rebecca',
      'Rebecca',
      'Regina',
      'Rita',
      'Roselyn',
      'Rosemary',
      'Rosemary',
      'Ruth',
      'Salomey',
      'Samantha',
      'Sandra',
      'Sarah',
      'Sarah',
      'Sarah',
      'Sharon',
      'Sheila',
      'Shirley',
      'Stephanie',
      'Susan',
      'Susan',
      'Sylvia',
      'Teresa',
      'Tina',
      'Tracy',
      'Vanessa',
      'Veronica',
      'Victoria',
      'Vida',
      'Wendy',
      'Yaa',
      'Yvonne'
    ),

    first_names = c(
      'Aaron',
      'Abeiku',
      'Adam',
      'Adrian',
      'Akwesi',
      'Albert',
      'Alex',
      'Alexander',
      'Andrew',
      'Anthony',
      'Antony',
      'Arthur',
      'Ben',
      'Benjamin',
      'Bernard',
      'Bruce',
      'Carl',
      'Charles',
      'Christian',
      'Clifford',
      'Colins',
      'Daniel',
      'Danny',
      'David',
      'Denis',
      'Dennis',
      'Derrick',
      'Dominic',
      'Donald',
      'Douglas',
      'Duncan',
      'Edward',
      'Ekow',
      'Elliot',
      'Elliott',
      'Eric',
      'Fiifi',
      'Francis',
      'Frank',
      'Frederick',
      'George',
      'Gerald',
      'Gordon',
      'Graham',
      'Gregory',
      'Harry',
      'Henry',
      'Howard',
      'Isaac',
      'Akwasi',
      'Jack',
      'Jacob',
      'Jake',
      'James',
      'Jason',
      'Jeffrey',
      'Jeremy',
      'Joe',
      'Joel',
      'John',
      'Jonathan',
      'Joojo',
      'Joseph',
      'Josh',
      'Joshua',
      'Josiah',
      'Julian',
      'Justin',
      'Karl',
      'Kenneth',
      'Kevin',
      'Kofi',
      'Kojo',
      'Kujoe',
      'Kwabena',
      'Kwadwo',
      'Kwaku',
      'Kwame',
      'Kwamena',
      'Kwasi',
      'Kweku',
      'Kwesi',
      'Kyle',
      'Lawrence',
      'Leslie',
      'Louis',
      'Luke',
      'Malcolm',
      'Marcus',
      'Mark',
      'Martin',
      'Mathew',
      'Matthew',
      'Max',
      'Michael',
      'Nathan',
      'Nicholas',
      'Nigel',
      'Oliver',
      'Patrick',
      'Paul',
      'Peter',
      'Philip',
      'Phillip',
      'Raymond',
      'Richard',
      'Robert',
      'Roger',
      'Ronald',
      'Russell',
      'Sam',
      'Samuel',
      'Shaun',
      'Simon',
      'Stanley',
      'Stephen',
      'Steven',
      'Terence',
      'Thomas',
      'Timothy',
      'Tom',
      'Tony',
      'Victor',
      'Vincent',
      'William',
      'Yaw',
      'Aba',
      'Abena',
      'Abigail',
      'Adwoa',
      'Afia',
      'Afua',
      'Akos',
      'Akosua',
      'Akua',
      'Akumaa',
      'Alice',
      'Ama',
      'Amanda',
      'Amber',
      'Amelia',
      'Angela',
      'Ann',
      'Annette',
      'Awesi',
      'Baaba',
      'Barbara',
      'Beatrice',
      'COmfort',
      'Caroline',
      'Catherine',
      'Charlotte',
      'Christina',
      'Comfort',
      'Constance',
      'Danielle',
      'Deborah',
      'Debra',
      'Denise',
      'Dora',
      'Dorcas',
      'Dorothy',
      'Eliabeth',
      'Elizabeth',
      'Emily',
      'Emma',
      'Ernestina',
      'Esi',
      'Eunice',
      'Felicia',
      'Francesca',
      'Gemma',
      'Georgia',
      'Georgina',
      'Gifty',
      'Grace',
      'Grace',
      'Hannabel',
      'Hannah',
      'Harriet',
      'Helen',
      'Irene',
      'Janet',
      'Janet',
      'Janice',
      'Jasmine',
      'Jennifer',
      'Jessica',
      'Jill',
      'Joanna',
      'Josephine',
      'Joyce',
      'Joyce',
      'Judith',
      'Julia',
      'Juliana',
      'Julie',
      'Karen',
      'Kate',
      'Katherine',
      'Katy',
      'Lawrencia',
      'Linda',
      'Lisa',
      'Lorraine',
      'Lucy',
      'Lucy',
      'Lydia',
      'Lydia',
      'Mandy',
      'Margaret',
      'Margaret',
      'Maria',
      'Marian',
      'Marilyn',
      'Mary',
      'Mary',
      'Maureen',
      'Michelle',
      'Millicent',
      'Nana Ama',
      'Naomi',
      'Natalie',
      'Natasha',
      'Nicola',
      'Nimakoah',
      'Olivia',
      'Pamela',
      'Patricia',
      'Paula',
      'Priscilla',
      'Rachael',
      'Rachel',
      'Rebecca',
      'Rebecca',
      'Regina',
      'Rita',
      'Roselyn',
      'Rosemary',
      'Rosemary',
      'Ruth',
      'Salomey',
      'Samantha',
      'Sandra',
      'Sarah',
      'Sarah',
      'Sarah',
      'Sharon',
      'Sheila',
      'Shirley',
      'Stephanie',
      'Susan',
      'Susan',
      'Sylvia',
      'Teresa',
      'Tina',
      'Tracy',
      'Vanessa',
      'Veronica',
      'Victoria',
      'Vida',
      'Wendy',
      'Yaa',
      'Yvonne'
    ),

    last_names_male = c(
      'Acheampong',
      'Adomah',
      'Adomako',
      'Adu',
      'Adusei',
      'Adutwum',
      'Afirifa',
      'Afoakwa',
      'Agyapong',
      'Agyapong',
      'Agyare',
      'Agyei',
      'Agyemang',
      'Ahortor',
      'Akoto',
      'Akowua',
      'Akyeamfu\u0254',
      'Akyeampong',
      'Akyena',
      'Akyer\u03b5ko',
      'Amo',
      'Amoa',
      'Amoako',
      'Amoasi',
      'Ampadu',
      'Ampofo',
      'Amponsah',
      'Andorful',
      'Ankra',
      'Anokye',
      'Ansa',
      'Antwi',
      'Antwi',
      'Appia',
      'Appiah',
      'Asamoa',
      'Asamoah',
      'Asante',
      'Asare',
      'Asenso',
      'Asiama',
      'Asiedu',
      'Ata',
      'Awuah',
      'Baa',
      'Baafi',
      'Baah',
      'Baawia',
      'Badu',
      'Boadi',
      'Boadu',
      'Boahen',
      'Boakye',
      'Boaten',
      'Boateng',
      'Bona',
      'Bonsra',
      'Bonsu',
      'Daako',
      'Danso',
      'Darko',
      'Donkor',
      'Duah',
      'Dwamena',
      'Fofie',
      'Fosu',
      'Gyamfi',
      'Gyasi',
      'Karikari',
      'Koomson',
      'Kumi',
      'Kusi',
      'Kwaakye',
      'Kwarteng',
      'Kyei',
      'Mensa',
      'Mensah',
      'Nkansa',
      'Nkansah',
      'Nkrumah',
      'Nsia',
      'Nti',
      'Ntiamoa',
      'Ntim',
      'Nyaako',
      'Nyame',
      'Nyantakyi',
      'Obeng',
      'Ofori',
      'Ofosu',
      'Okyere',
      'Omani',
      'Opoku',
      'Oppong',
      'Opuku',
      'Osei',
      'Oti',
      'Otiwa',
      'Otuo',
      'Owusu',
      'Prempeh',
      'Quartey',
      'Safo',
      'Sarpong',
      'Takyi',
      'Tawia',
      'Tutu',
      'Tweneboa',
      'Twumasi',
      'Wiafe',
      'Yaamoa',
      'Yawson',
      'Yeboa',
      'Yeboah',
      'Yirenkyi'
    ),

    last_names_female = c(
      'Aboraa',
      'Abrafi',
      'Acheampong',
      'Adoma',
      'Adomah',
      'Adomako',
      'Adu',
      'Adusei',
      'Adutwum',
      'Adutwumwaa',
      'Adwubi',
      'Afirifa',
      'Afoakwa',
      'Afrakomaa',
      'Agyapomaa',
      'Agyapong',
      'Agyapong',
      'Agyare',
      'Agyei',
      'Agyeiwaa',
      'Agyemang',
      'Ahortor',
      'Akoaa',
      'Akoto',
      'Akowua',
      'Akyaa',
      'Akyeamfu\u0254',
      'Akyeampomaa',
      'Akyeampong',
      'Akyena',
      'Akyer\u03b5',
      'Akyer\u03b5ko',
      'Ak\u0254maa',
      'Amo',
      'Amoa',
      'Amoako',
      'Amoakowaa',
      'Amoanimaa',
      'Amoasi',
      'Ampadu',
      'Ampofo',
      'Ampofowaa',
      'Ampoma',
      'Amponsa',
      'Amponsa',
      'Andorful',
      'Anima',
      'Ankra',
      'Anokye',
      'Ansa',
      'Ansomaa',
      'Ansomah',
      'Antwi',
      'Antwi',
      'Antwiwaa',
      'Appia',
      'Appiah',
      'Asamoa',
      'Asamoah',
      'Asante',
      'Asantewaa',
      'Asare',
      'Asenso',
      'Asiama',
      'Asiedu',
      'Asieduwaa',
      'Ata',
      'Ataa',
      'Awuah',
      'Baa',
      'Baafi',
      'Baah',
      'Baawia',
      'Badu',
      'Boadi',
      'Boadu',
      'Boahen',
      'Boakye',
      'Boakye',
      'Boakyewaa',
      'Boatemaa',
      'Boatemaah',
      'Boaten',
      'Boateng',
      'Bona',
      'Bonsra',
      'Bonsu',
      'Daako',
      'Daakoaa',
      'Danso',
      'Darko',
      'Donkor',
      'Duah',
      'Dufie',
      'Dwamena',
      'Fofie',
      'Foriwaa',
      'Fosu',
      'Fosua',
      'Frema',
      'Frimpomaa',
      'Gyamfi',
      'Gyamfi',
      'Gyamfiaa',
      'Gyasi',
      'Gyasiwaa',
      'Karikari',
      'Koomson',
      'Kumi',
      'Kusi',
      'Kusiwaa',
      'Kwaakye',
      'Kwaakyewaa',
      'Kwartemaa',
      'Kwarteng',
      'Kyei',
      'Kyeiwaa',
      'Kyerewaa',
      'Mansa',
      'Mensa',
      'Mensah',
      'Nkansa',
      'Nkansah',
      'Nkrumah',
      'Nsia',
      'Nti',
      'Ntiamoa',
      'Ntim',
      'Nyaako',
      'Nyaakoaa',
      'Nyame',
      'Nyantakyi',
      'Obeng',
      'Ofori',
      'Ofosu',
      'Okyere',
      'Okyere',
      'Omani',
      'Opoku',
      'Oppong',
      'Opuku',
      'Osei',
      'Oti',
      'Otiwa',
      'Otuo',
      'Owusu',
      'Owusuwaa',
      'Pokuaa',
      'Pomaa',
      'Prempeh',
      'Quartey',
      'Safo',
      'Safo',
      'Safoaa',
      'Sarpong',
      'Serwaa',
      'Takyi',
      'Tawia',
      'Tiwaa',
      'Tutu',
      'Tweneboa',
      'Twumasi',
      'Wiafe',
      'Yaamoa',
      'Yawson',
      'Yeboa',
      'Yeboah',
      'Yirenkyi'
    ),

    last_names = c(
      'Acheampong',
      'Adomah',
      'Adomako',
      'Adu',
      'Adusei',
      'Adutwum',
      'Afirifa',
      'Afoakwa',
      'Agyapong',
      'Agyapong',
      'Agyare',
      'Agyei',
      'Agyemang',
      'Ahortor',
      'Akoto',
      'Akowua',
      'Akyeamfu\u0254',
      'Akyeampong',
      'Akyena',
      'Akyer\u03b5ko',
      'Amo',
      'Amoa',
      'Amoako',
      'Amoasi',
      'Ampadu',
      'Ampofo',
      'Amponsah',
      'Andorful',
      'Ankra',
      'Anokye',
      'Ansa',
      'Antwi',
      'Antwi',
      'Appia',
      'Appiah',
      'Asamoa',
      'Asamoah',
      'Asante',
      'Asare',
      'Asenso',
      'Asiama',
      'Asiedu',
      'Ata',
      'Awuah',
      'Baa',
      'Baafi',
      'Baah',
      'Baawia',
      'Badu',
      'Boadi',
      'Boadu',
      'Boahen',
      'Boakye',
      'Boaten',
      'Boateng',
      'Bona',
      'Bonsra',
      'Bonsu',
      'Daako',
      'Danso',
      'Darko',
      'Donkor',
      'Duah',
      'Dwamena',
      'Fofie',
      'Fosu',
      'Gyamfi',
      'Gyasi',
      'Karikari',
      'Koomson',
      'Kumi',
      'Kusi',
      'Kwaakye',
      'Kwarteng',
      'Kyei',
      'Mensa',
      'Mensah',
      'Nkansa',
      'Nkansah',
      'Nkrumah',
      'Nsia',
      'Nti',
      'Ntiamoa',
      'Ntim',
      'Nyaako',
      'Nyame',
      'Nyantakyi',
      'Obeng',
      'Ofori',
      'Ofosu',
      'Okyere',
      'Omani',
      'Opoku',
      'Oppong',
      'Opuku',
      'Osei',
      'Oti',
      'Otiwa',
      'Otuo',
      'Owusu',
      'Prempeh',
      'Quartey',
      'Safo',
      'Sarpong',
      'Takyi',
      'Tawia',
      'Tutu',
      'Tweneboa',
      'Twumasi',
      'Wiafe',
      'Yaamoa',
      'Yawson',
      'Yeboa',
      'Yeboah',
      'Yirenkyi',
      'Aboraa',
      'Abrafi',
      'Acheampong',
      'Adoma',
      'Adomah',
      'Adomako',
      'Adu',
      'Adusei',
      'Adutwum',
      'Adutwumwaa',
      'Adwubi',
      'Afirifa',
      'Afoakwa',
      'Afrakomaa',
      'Agyapomaa',
      'Agyapong',
      'Agyapong',
      'Agyare',
      'Agyei',
      'Agyeiwaa',
      'Agyemang',
      'Ahortor',
      'Akoaa',
      'Akoto',
      'Akowua',
      'Akyaa',
      'Akyeamfu\u0254',
      'Akyeampomaa',
      'Akyeampong',
      'Akyena',
      'Akyer\u03b5',
      'Akyer\u03b5ko',
      'Ak\u0254maa',
      'Amo',
      'Amoa',
      'Amoako',
      'Amoakowaa',
      'Amoanimaa',
      'Amoasi',
      'Ampadu',
      'Ampofo',
      'Ampofowaa',
      'Ampoma',
      'Amponsa',
      'Amponsa',
      'Andorful',
      'Anima',
      'Ankra',
      'Anokye',
      'Ansa',
      'Ansomaa',
      'Ansomah',
      'Antwi',
      'Antwi',
      'Antwiwaa',
      'Appia',
      'Appiah',
      'Asamoa',
      'Asamoah',
      'Asante',
      'Asantewaa',
      'Asare',
      'Asenso',
      'Asiama',
      'Asiedu',
      'Asieduwaa',
      'Ata',
      'Ataa',
      'Awuah',
      'Baa',
      'Baafi',
      'Baah',
      'Baawia',
      'Badu',
      'Boadi',
      'Boadu',
      'Boahen',
      'Boakye',
      'Boakye',
      'Boakyewaa',
      'Boatemaa',
      'Boatemaah',
      'Boaten',
      'Boateng',
      'Bona',
      'Bonsra',
      'Bonsu',
      'Daako',
      'Daakoaa',
      'Danso',
      'Darko',
      'Donkor',
      'Duah',
      'Dufie',
      'Dwamena',
      'Fofie',
      'Foriwaa',
      'Fosu',
      'Fosua',
      'Frema',
      'Frimpomaa',
      'Gyamfi',
      'Gyamfi',
      'Gyamfiaa',
      'Gyasi',
      'Gyasiwaa',
      'Karikari',
      'Koomson',
      'Kumi',
      'Kusi',
      'Kusiwaa',
      'Kwaakye',
      'Kwaakyewaa',
      'Kwartemaa',
      'Kwarteng',
      'Kyei',
      'Kyeiwaa',
      'Kyerewaa',
      'Mansa',
      'Mensa',
      'Mensah',
      'Nkansa',
      'Nkansah',
      'Nkrumah',
      'Nsia',
      'Nti',
      'Ntiamoa',
      'Ntim',
      'Nyaako',
      'Nyaakoaa',
      'Nyame',
      'Nyantakyi',
      'Obeng',
      'Ofori',
      'Ofosu',
      'Okyere',
      'Okyere',
      'Omani',
      'Opoku',
      'Oppong',
      'Opuku',
      'Osei',
      'Oti',
      'Otiwa',
      'Otuo',
      'Owusu',
      'Owusuwaa',
      'Pokuaa',
      'Pomaa',
      'Prempeh',
      'Quartey',
      'Safo',
      'Safo',
      'Safoaa',
      'Sarpong',
      'Serwaa',
      'Takyi',
      'Tawia',
      'Tiwaa',
      'Tutu',
      'Tweneboa',
      'Twumasi',
      'Wiafe',
      'Yaamoa',
      'Yawson',
      'Yeboa',
      'Yeboah',
      'Yirenkyi'
    ),

    prefixes_female = c('Mrs.', 'Ms.', 'Miss', 'Dr.',
                        'Mama', 'Maame', 'Awura', 'Sista',
                        'Osofo Maame'),

    prefixes_male = c('Mr.', 'Dr.', 'Agya', 'Owura', 'Osofo')
  )
)

# phone_number ----------------------------
phone_number_tw_GH = R6Class(
  "phone_number_tw_GH",
  inherit = phone_number_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '+23327#######',
      '+23357#######',
      '+23355#######',
      '+23324#######',
      '+23354#######',
      '+23320#######',
      '+23350#######',
      '+23326#######',
      '+23356#######',
      '+23328#######',
      '024#######',
      '054#######',
      '055#######',
      '027#######',
      '057#######',
      '020#######',
      '050#######',
      '026#######',
      '056#######',
      '028#######'
    )
  )
)
# credit_card -----------------
credit_card_tw_GH = R6Class(
  "credit_card_tw_GH",
  inherit = credit_card_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_tw_GH$new())$.__enclos_env__$private$first_names,
    last_names = (person_tw_GH$new())$.__enclos_env__$private$last_names,
    first_name = (person_tw_GH$new())$first_name,
    last_name = (person_tw_GH$new())$last_name
  )
)



# company -------------------------
company_tw_GH = R6Class(
  "company_tw_GH",
  inherit = company_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_tw_GH$new())$.__enclos_env__$private$first_names,
    last_names = (person_tw_GH$new())$.__enclos_env__$private$last_names,
    first_name = (person_tw_GH$new())$first_name,
    last_name = (person_tw_GH$new())$last_name
  )
)

# address -----------------------------------------------------------------
address_tw_GH = R6Class(
  "address_tw_GH",
  inherit = address_en_US,
  cloneable = FALSE,
  private = list(
    first_names = (person_tw_GH$new())$.__enclos_env__$private$first_names,
    last_names = (person_tw_GH$new())$.__enclos_env__$private$last_names,
    first_name = (person_tw_GH$new())$first_name,
    last_name = (person_tw_GH$new())$last_name
  )
)


# internet -------------------------
internet_tw_GH = R6Class(
  "internet_tw_GH",
  inherit = internet_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_tw_GH$new())$.__enclos_env__$private$first_names,
    last_names = (person_tw_GH$new())$.__enclos_env__$private$last_names,
    first_name = (person_tw_GH$new())$first_name,
    last_name = (person_tw_GH$new())$last_name
  ),
  public = list(
    domain_word = function() {
      company = (company_tw_GH$new())$company()
      company_elements = str_split(company, " ")[[1]]
      company = private$to_ascii(company_elements[1])
      return(private$slugify(company, allow_unicode = TRUE))
    }
  )
)
# profile   ------------
profile_tw_GH = R6Class(
  "profile_tw_GH",
  inherit = profile_init,
  cloneable = FALSE,
  public = list(
    simple_profile = function(sex) {
      # Generates a basic profile with personal informations
      SEX = c("F", "M")
      if (missing(sex)) {
        sex = sample(SEX, 1)
      }
      if (!(sex %in% SEX)) {
        sex = sample(SEX, 1)
      }

      name = ifelse(sex == "F",
                    (person_tw_GH$new())$name_female(),
                    (person_tw_GH$new())$name_male())
      temp = list(
        "username" = (internet_tw_GH$new())$user_name(),
        "name" = name,
        "sex" = sex,
        "address" = (address_tw_GH$new())$address(),
        "mail" = (internet_tw_GH$new())$free_email(),
        "birthdate" = (date_time_init$new())$date_of_birth()
      )
      return(temp)
    },

    profile = function(fields, sex) {
      # Generates a complete profile.
      # If "fields" is not empty, only the fields in the list will be returned

      if (missing(fields)) fields = c()

      field = list(
        "job" = (job_init$new())$job(),
        "company" = (company_tw_GH$new())$company(),
        "ssn" = (ssn_en_US$new())$ssn(),
        "residence" = (address_tw_GH$new())$address(),
        "current_location" = c((geo_init$new())$latitude(),
                               (geo_init$new())$longitude()),
        "blood_group" = sample(c(
          "A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"), 1),
        "website" = replicate(sample(seq(4), 1), (internet_tw_GH$new())$url())
      )

      field = append(field, self$simple_profile(sex))
      # field selection

      if (length(fields)) {
        nms = intersect(names(field), fields)
        field = field[nms]
      }
      return(field)
    }

  )
)
LuYang19/faker documentation built on Jan. 3, 2020, 12:07 a.m.