Class: Gimei::Name

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/gimei/name.rb

Defined Under Namespace

Classes: First, Last, NameWord

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gender = nil) ⇒ Name

Returns a new instance of Name.



24
25
26
27
28
# File 'lib/gimei/name.rb', line 24

def initialize(gender = nil)
  @gender = gender || Gimei::GENDERS.sample(random: Gimei.config.rng) #: :male | :female
  @first = First.new @gender
  @last = Last.new
end

Instance Attribute Details

#firstObject (readonly) Also known as: given

Returns the value of attribute first.



2
3
4
# File 'lib/gimei/name.rb', line 2

def first
  @first
end

#genderObject (readonly)

Returns the value of attribute gender.



2
3
4
# File 'lib/gimei/name.rb', line 2

def gender
  @gender
end

#lastObject (readonly) Also known as: family

Returns the value of attribute last.



2
3
4
# File 'lib/gimei/name.rb', line 2

def last
  @last
end

Class Method Details

.femaleObject



11
12
13
# File 'lib/gimei/name.rb', line 11

def female
  new(:female)
end

.maleObject



7
8
9
# File 'lib/gimei/name.rb', line 7

def male
  new(:male)
end

Instance Method Details

#female?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/gimei/name.rb', line 50

def female?
  @gender == :female
end

#hiraganaObject



34
35
36
# File 'lib/gimei/name.rb', line 34

def hiragana
  "#{last.hiragana} #{first.hiragana}"
end

#kanjiObject Also known as: to_s



30
31
32
# File 'lib/gimei/name.rb', line 30

def kanji
  "#{last.kanji} #{first.kanji}"
end

#katakanaObject



38
39
40
# File 'lib/gimei/name.rb', line 38

def katakana
  "#{last.katakana} #{first.katakana}"
end

#male?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/gimei/name.rb', line 46

def male?
  @gender == :male
end

#romajiObject



42
43
44
# File 'lib/gimei/name.rb', line 42

def romaji
  "#{first.romaji} #{last.romaji}"
end