Sha256: 77e96770ae2ca8bab26383e5b3027b98a835bd062232be9622a2b646e5653e9f

Contents?: true

Size: 1016 Bytes

Versions: 2

Compression:

Stored size: 1016 Bytes

Contents

# encoding: utf-8
module Belka
  class Name
    class <<self
      def gender
        male = Kernel.rand(100) < 50
        yield(male) if block_given?
        male
      end

      def first_name(male = nil)
        pick_with_gender(male, Data::MaleNames, Data::FemaleNames)
      end

      def middle_name(male = nil)
        pick_with_gender(male, Data::MaleMiddleNames, Data::FemaleMiddleNames)
      end

      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

      def full_name(male = nil)
        male = gender if male.nil?

        "#{family_name(male)} #{first_name(male)} #{middle_name(male)}"
      end

      private

      def pick_with_gender(male, male_ary, female_ary)
        male = gender if male.nil?
        Belka.pick(male ? male_ary : female_ary)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
belka-0.0.4 lib/belka/name.rb
belka-0.0.2 lib/belka/name.rb