class Belka::Name

Public Class Methods

family_name(male = nil) click to toggle source
# File lib/belka/name.rb, line 19
def family_name(male = nil)
  male = gender if male.nil?

  famname = Belka.pick(Data::FamilyNames)

  if famname.is_a? Array
    famname[0] + famname[male ? 1 : 2]
  else
    male ? famname : famname + 'а'
  end
end
first_name(male = nil) click to toggle source
# File lib/belka/name.rb, line 11
def first_name(male = nil)
  pick_with_gender(male, Data::MaleNames, Data::FemaleNames)
end
full_name(male = nil) click to toggle source
# File lib/belka/name.rb, line 31
def full_name(male = nil)
  male = gender if male.nil?

  "#{family_name(male)} #{first_name(male)} #{middle_name(male)}"
end
gender() { |male| ... } click to toggle source
# File lib/belka/name.rb, line 5
def gender
  male = Kernel.rand(100) < 50
  yield(male) if block_given?
  male
end
middle_name(male = nil) click to toggle source
# File lib/belka/name.rb, line 15
def middle_name(male = nil)
  pick_with_gender(male, Data::MaleMiddleNames, Data::FemaleMiddleNames)
end

Private Class Methods

pick_with_gender(male, male_ary, female_ary) click to toggle source
# File lib/belka/name.rb, line 39
def pick_with_gender(male, male_ary, female_ary)
  male = gender if male.nil?
  Belka.pick(male ? male_ary : female_ary)
end