Class: Namey::Generator
- Inherits:
-
Object
- Object
- Namey::Generator
- Defined in:
- lib/namey/generator.rb
Overview
Main class for namey, handles generating a name.
Instance Method Summary collapse
-
#female(frequency = :common, surname = true) ⇒ Object
generate a female name.
-
#generate(params = {}) ⇒ Object
generate a name using the supplied parameter hash.
-
#initialize(dbname = nil) ⇒ Generator
constructor
initialize the name generator *
dbname
- Sequel style db URI ex: ‘sqlite://foo.db’. -
#male(frequency = :common, surname = true) ⇒ Object
generate a male name.
-
#name(frequency = :common, surname = true) ⇒ Object
generate a name.
-
#surname(frequency = :common) ⇒ Object
generate a surname.
Constructor Details
Instance Method Details
#female(frequency = :common, surname = true) ⇒ Object
generate a female name
-
frequency
- :common, :rare, :all -
surname
- true if you want a full name, false if you just want a first name
41 42 43 |
# File 'lib/namey/generator.rb', line 41 def female(frequency = :common, surname = true) generate(:type => :female, :frequency => frequency, :with_surname => surname) end |
#generate(params = {}) ⇒ Object
generate a name using the supplied parameter hash
-
params
- A hash of parameters
Params
-
:type
- :male, :female, :surname -
:frequency
- :common, :rare, :all -
:min_freq
- raw frequency values to specify a precise range -
:max_freq
- raw frequency values to specify a precise range
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/namey/generator.rb', line 63 def generate(params = {}) params = { :type => random_gender, :frequency => :common, :with_surname => true }.merge(params) if ! ( params[:min_freq] || params[:max_freq] ) params[:min_freq], params[:max_freq] = frequency_values(params[:frequency]) else # # do some basic data validation in case someone is being a knucklehead # params[:min_freq] = params[:min_freq].to_i params[:max_freq] = params[:max_freq].to_i params[:max_freq] = params[:min_freq] + 1 if params[:max_freq] <= params[:min_freq] # max_freq needs to be at least 4 to get any results back, # because the most common male name only rates 3.3 # JAMES 3.318 3.318 1 params[:max_freq] = 4 if params[:max_freq] < 4 end name = get_name(params[:type], params[:min_freq], params[:max_freq]) # add surname if needed if params[:type] != :surname && params[:with_surname] == true name = "#{name} #{get_name(:surname, params[:min_freq], params[:max_freq])}" end name end |
#male(frequency = :common, surname = true) ⇒ Object
generate a male name
-
frequency
- :common, :rare, :all -
surname
- true if you want a full name, false if you just want a first name
32 33 34 |
# File 'lib/namey/generator.rb', line 32 def male(frequency = :common, surname = true) generate(:type => :male, :frequency => frequency, :with_surname => surname) end |
#name(frequency = :common, surname = true) ⇒ Object
generate a name
-
frequency
- :common, :rare, :all -
surname
- true if you want a full name, false if you just want a first name
23 24 25 |
# File 'lib/namey/generator.rb', line 23 def name(frequency = :common, surname = true) generate(:frequency => frequency, :with_surname =>surname) end |
#surname(frequency = :common) ⇒ Object
generate a surname
-
frequency
- :common, :rare, :all
49 50 51 |
# File 'lib/namey/generator.rb', line 49 def surname(frequency = :common) generate(:type => :surname, :frequency => frequency) end |