Class: Synthra::Types::PersonalNames::FullName

Inherits:
Base
  • Object
show all
Defined in:
lib/synthra/types/personal_names/names.rb

Overview

FullName type

Instance Method Summary collapse

Instance Method Details

#generate_edge(rng, context, args) ⇒ Object



146
147
148
# File 'lib/synthra/types/personal_names/names.rb', line 146

def generate_edge(rng, context, args)
  ["", "A", "Very Long FullName That Exceeds Normal Limits"].sample(random: rng.instance_variable_get(:@random))
end

#generate_invalid(rng, context, args) ⇒ Object



150
151
152
# File 'lib/synthra/types/personal_names/names.rb', line 150

def generate_invalid(rng, context, args)
  [nil, 123, [], {}].sample(random: rng.instance_variable_get(:@random))
end

#generate_random(rng, context, args) ⇒ String

Generate random full name

Parameters:

Options Hash (args):

  • :format (String)

    format string (default: "first last")

Returns:

  • (String)

    generated full name



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/synthra/types/personal_names/names.rb', line 118

def generate_random(rng, context, args)
  format_str = args[:format] || "{first} {last}"

  # Try to use context values if available
  if context && context["first_name"] && context["last_name"]
    format_str.gsub("{first}", context["first_name"].to_s)
              .gsub("{last}", context["last_name"].to_s)
  elsif context && context[:first_name] && context[:last_name]
    format_str.gsub("{first}", context[:first_name].to_s)
              .gsub("{last}", context[:last_name].to_s)
  else
    # Generate from Faker
    adapter = faker_adapter(context)
    if adapter
      name = adapter.name

    else
      name = Faker::Name.name
    end

    name
  end

rescue StandardError
  rng.sample(["John Doe", "Jane Smith", "Peter Jones"])
end