class Gendered::Name

Constants

VALID_GENDERS

Attributes

to_s[R]
value[R]

Public Class Methods

new(value) click to toggle source
# File lib/gendered/name.rb, line 7
def initialize(value)
  @value = value

  @gender, @probability, @sample_size = nil, nil, nil
end

Public Instance Methods

female?() click to toggle source
# File lib/gendered/name.rb, line 61
def female?
  return :not_guessed unless guessed?
  gender == :female
end
gender() click to toggle source
# File lib/gendered/name.rb, line 52
def gender
  @gender || :not_guessed
end
gender=(value) click to toggle source
# File lib/gendered/name.rb, line 46
def gender=(value)
  symbol = value.to_sym
  raise ArgumentError, "not a valid gender" unless VALID_GENDERS.include?(symbol)
  @gender = symbol
end
guess!(options = {}) click to toggle source
# File lib/gendered/name.rb, line 19
def guess!(options = {})
  Guesser.new(self, options).guess!
  gender
end
guessed?() click to toggle source
# File lib/gendered/name.rb, line 15
def guessed?
  !!@gender
end
male?() click to toggle source
# File lib/gendered/name.rb, line 56
def male?
  return :not_guessed unless guessed?
  gender == :male
end
probability() click to toggle source
# File lib/gendered/name.rb, line 31
def probability
  @probability || :unknown
end
probability=(value) click to toggle source
# File lib/gendered/name.rb, line 24
def probability=(value)
  decimal = BigDecimal(value.to_s)
  raise ArgumentError, "value not between 0.01 and 1.0" if decimal <= 0 || decimal > 1

  @probability = decimal
end
sample_size() click to toggle source
# File lib/gendered/name.rb, line 42
def sample_size
  @sample_size || :unknown
end
sample_size=(value) click to toggle source
# File lib/gendered/name.rb, line 35
def sample_size=(value)
  integer = Integer(value)
  raise ArgumentError, "value not greater than or equal to 0" if integer < 0

  @sample_size = integer
end