Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

major refactor of faker

  • Loading branch information...
commit d5d01a2abb5777da94e737b607941b7cd078d19d 1 parent 32dc9fd
Emmanuel Oga authored
26 History.txt
@@ -0,0 +1,26 @@
+== 0.3.2 2010-01-14
+* Several Optimizations, renamed gem packege to ffaker.
+== 0.3.1 2008-04-03
+* 1 minor enhancement:
+ * Added city to Address
+== 0.3.0 2008-01-01
+* 3 major enhancements:
+ * Added Lorem to generate fake Latin
+ * Added secondary_address to Address, and made inclusion of
+ secondary address in street_address optional (false by
+ default).
+ * Added UK address methods [Caius Durling]
+== 0.2.1 2007-12-05
+* 1 major enhancement:
+ * Dropped facets to avoid conflict with ActiveSupport
+* 2 minor enhancements:
+ * Changed the output of user_name to randomly separate with a . or _
+ * Added a few tests
+== 0.1.0 2007-11-22
+* 1 major enhancement:
+ * Initial release
@@ -1,4 +1,5 @@
-Copyright (c) 2009 Emmanuel Oga
+Copyright (c) 2010 Emmanuel Oga
+Copyright (c) 2007 Benjamin Curtis
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
24 README.rdoc
@@ -1,9 +1,28 @@
= ffaker
-Description goes here.
+Fast Faker == Faker refactored, cleaner and faster.
+= Faker
+A port of Perl's Data::Faker library that generates fake data.
+== Usage
+* => "Christophe Bartell"
+* => ""
+== Ffaker / Faker ==
+This version of the gem was modified by me (Emmanuel Oga) cause I was
+so annoyed on several ineficiencies on the original gem.
+And because I coult not find the original author on github (and I
+don't feel like working with the arcane rubyforge+svn tools) I
+just realised this gem using a different name.
== Note on Patches/Pull Requests
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
@@ -14,4 +33,5 @@ Description goes here.
== Copyright
+Copyright (c) 2007 Benjamin Curtis
Copyright (c) 2010 Emmanuel Oga. See LICENSE for details.
0  README.txt
No changes.
29 lib/faker.rb
@@ -0,0 +1,29 @@
+module Faker
+ require 'faker/utils/module_utils'
+ extend ModuleUtils
+ LETTERS = k('a'..'z')
+ def self.numerify(number_string)
+ number_string.gsub!(/#/) { rand(10).to_s }
+ number_string
+ end
+ def self.letterify(letter_string)
+ letter_string.gsub!(/\?/) { LETTERS.rand }
+ letter_string
+ end
+ def self.bothify(string)
+ self.letterify(self.numerify(string))
+ end
+ autoload :Address, 'faker/address'
+ autoload :Company, 'faker/company'
+ autoload :Internet, 'faker/internet'
+ autoload :Lorem, 'faker/lorem'
+ autoload :Name, 'faker/name'
+ autoload :PhoneNumber, 'faker/phone_number'
+ autoload :VERSION, 'faker/version'
143 lib/faker/address.rb
@@ -0,0 +1,143 @@
+module Faker
+ module Address
+ extend ModuleUtils
+ extend self
+ def zip_code
+ Faker.numerify ZIP_FORMATS.rand
+ end
+ def us_state
+ STATE.rand
+ end
+ def us_state_abbr
+ end
+ def city_prefix
+ end
+ def city_suffix
+ end
+ def city
+ case rand(4)
+ when 0 then '%s %s%s' % [city_prefix, Name.first_name, city_suffix]
+ when 1 then '%s %s' % [city_prefix, Name.first_name]
+ when 2 then '%s%s' % [Name.first_name, city_suffix]
+ when 3 then '%s%s' % [Name.last_name, city_suffix]
+ end
+ end
+ def street_suffix
+ end
+ def street_name
+ case rand(2)
+ when 0 then "#{Name.last_name}#{street_suffix}"
+ when 1 then "#{Name.first_name}#{street_suffix}"
+ end
+ end
+ def street_address(include_secondary = false)
+ str = case rand(3)
+ when 0 then '##### %s' % street_name
+ when 1 then '#### %s' % street_name
+ when 2 then '### %s' % street_name
+ end
+ str << ' ' << secondary_address if include_secondary
+ Faker.numerify(str)
+ end
+ def secondary_address
+ Faker.numerify(SEC_ADDR.rand)
+ end
+ # UK Variants
+ def uk_county
+ UK_COUNTY.rand
+ end
+ def uk_country
+ end
+ def uk_postcode
+ Faker.bothify(UK_POSTCODE.rand).upcase
+ end
+ ZIP_FORMATS = k ['#####', '#####-####']
+ STATE = k ['Alabama', 'Alaska', 'Arizona', 'Arkansas',
+ 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida',
+ 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas',
+ 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts',
+ 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana',
+ 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York',
+ 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon',
+ 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota',
+ 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',
+ 'West Virginia', 'Wisconsin', 'Wyoming']
+ CITY_PREFIXES = k %w(North East West South New Lake Port)
+ CITY_SUFFIXES = k %w(town ton land ville berg burgh borough bury view port
+ mouth stad furt chester mouth fort haven side shire)
+ STREET_SUFFIX = k %w(Alley Avenue Branch Bridge Brook Brooks
+ Burg Burgs Bypass Camp Canyon Cape Causeway Center Centers Circle Circles
+ Cliff Cliffs Club Common Corner Corners Course Court Courts Cove Coves
+ Creek Crescent Crest Crossing Crossroad Curve Dale Dam Divide Drive Drive
+ Drives Estate Estates Expressway Extension Extensions Fall Falls Ferry
+ Field Fields Flat Flats Ford Fords Forest Forge Forges Fork Forks Fort
+ Freeway Garden Gardens Gateway Glen Glens Green Greens Grove Groves Harbor
+ Harbors Haven Heights Highway Hill Hills Hollow Inlet Inlet Island Island
+ Islands Islands Isle Isle Junction Junctions Key Keys Knoll Knolls Lake
+ Lakes Land Landing Lane Light Lights Loaf Lock Locks Locks Lodge Lodge Loop
+ Mall Manor Manors Meadow Meadows Mews Mill Mills Mission Mission Motorway
+ Mount Mountain Mountain Mountains Mountains Neck Orchard Oval Overpass Park
+ Parks Parkway Parkways Pass Passage Path Pike Pine Pines Place Plain Plains
+ Plains Plaza Plaza Point Points Port Port Ports Ports Prairie Prairie
+ Radial Ramp Ranch Rapid Rapids Rest Ridge Ridges River Road Road Roads
+ Roads Route Row Rue Run Shoal Shoals Shore Shores Skyway Spring Springs
+ Springs Spur Spurs Square Square Squares Squares Station Station Stravenue
+ Stravenue Stream Stream Street Street Streets Summit Summit Terrace
+ Throughway Trace Track Trafficway Trail Trail Tunnel Tunnel Turnpike
+ Turnpike Underpass Union Unions Valley Valleys Via Viaduct View Views
+ Village Village Villages Ville Vista Vista Walk Walks Wall Way Ways Well
+ Wells)
+ SEC_ADDR = k ['Apt. ###', 'Suite ###']
+ UK_COUNTY = k ['Avon', 'Bedfordshire', 'Berkshire', 'Borders',
+ 'Buckinghamshire', 'Cambridgeshire', 'Central', 'Cheshire', 'Cleveland',
+ 'Clwyd', 'Cornwall', 'County Antrim', 'County Armagh', 'County Down',
+ 'County Fermanagh', 'County Londonderry', 'County Tyrone', 'Cumbria',
+ 'Derbyshire', 'Devon', 'Dorset', 'Dumfries and Galloway', 'Durham',
+ 'Dyfed', 'East Sussex', 'Essex', 'Fife', 'Gloucestershire', 'Grampian',
+ 'Greater Manchester', 'Gwent', 'Gwynedd County', 'Hampshire',
+ 'Herefordshire', 'Hertfordshire', 'Highlands and Islands', 'Humberside',
+ 'Isle of Wight', 'Kent', 'Lancashire', 'Leicestershire', 'Lincolnshire',
+ 'Lothian', 'Merseyside', 'Mid Glamorgan', 'Norfolk', 'North Yorkshire',
+ 'Northamptonshire', 'Northumberland', 'Nottinghamshire', 'Oxfordshire',
+ 'Powys', 'Rutland', 'Shropshire', 'Somerset', 'South Glamorgan',
+ 'South Yorkshire', 'Staffordshire', 'Strathclyde', 'Suffolk', 'Surrey',
+ 'Tayside', 'Tyne and Wear', 'Warwickshire', 'West Glamorgan', 'West Midlands',
+ 'West Sussex', 'West Yorkshire', 'Wiltshire', 'Worcestershire']
+ UK_COUNTRY = k ['England', 'Scotland', 'Wales', 'Northern Ireland']
+ UK_POSTCODE = k ['??# #??', '??## #??']
+ end
140 lib/faker/company.rb
@@ -0,0 +1,140 @@
+module Faker
+ module Company
+ extend ModuleUtils
+ extend self
+ def name
+ case rand(3)
+ when 0 then "#{Name.last_name} #{suffix}"
+ when 1 then "#{Name.last_name}-#{Name.last_name}"
+ when 2 then "%s, %s and %s" % [ Name.last_name, Name.last_name, Name.last_name ]
+ end
+ end
+ def suffix
+ end
+ # Generate a buzzword-laden catch phrase.
+ # Wordlist from
+ def catch_phrase
+ "#{CATCH_MID.rand}#{CATCH_MID.rand}#{CATCH_POS.rand}"
+ end
+ # When a straight answer won't do, BS to the rescue!
+ # Wordlist from
+ def bs
+ "#{BS_MID.rand}#{BS_MID.rand}#{BS_POS.rand}"
+ end
+ SUFFIXES = k %w(Inc and\ Sons LLC Group)
+ CATCH_PRE = k ["Adaptive", "Advanced", "Ameliorated", "Assimilated",
+ "Automated", "Balanced", "Business-focused", "Centralized", "Cloned",
+ "Compatible", "Configurable", "Cross-group", "Cross-platform",
+ "Customer-focused", "Customizable", "Decentralized", "De-engineered",
+ "Devolved", "Digitized", "Distributed", "Diverse", "Down-sized",
+ "Enhanced", "Enterprise-wide", "Ergonomic", "Exclusive", "Expanded",
+ "Extended", "Face to face", "Focused", "Front-line",
+ "Fully-configurable", "Function-based", "Fundamental", "Future-proofed",
+ "Grass-roots", "Horizontal", "Implemented", "Innovative", "Integrated",
+ "Intuitive", "Inverse", "Managed", "Mandatory", "Monitored",
+ "Multi-channelled", "Multi-lateral", "Multi-layered", "Multi-tiered",
+ "Networked", "Object-based", "Open-architected", "Open-source",
+ "Operative", "Optimized", "Optional", "Organic", "Organized",
+ "Persevering", "Persistent", "Phased", "Polarised", "Pre-emptive",
+ "Proactive", "Profit-focused", "Profound", "Programmable", "Progressive",
+ "Public-key", "Quality-focused", "Reactive", "Realigned",
+ "Re-contextualized", "Re-engineered", "Reduced", "Reverse-engineered",
+ "Right-sized", "Robust", "Seamless", "Secured", "Self-enabling",
+ "Sharable", "Stand-alone", "Streamlined", "Switchable", "Synchronised",
+ "Synergistic", "Synergized", "Team-oriented", "Total", "Triple-buffered",
+ "Universal", "Up-sized", "Upgradable", "User-centric", "User-friendly",
+ "Versatile", "Virtual", "Visionary", "Vision-oriented"]
+ CATCH_MID = k ["24 hour", "24/7", "3rd generation", "4th generation",
+ "5th generation", "6th generation", "actuating", "analyzing", "assymetric",
+ "asynchronous", "attitude-oriented", "background", "bandwidth-monitored",
+ "bi-directional", "bifurcated", "bottom-line", "clear-thinking",
+ "client-driven", "client-server", "coherent", "cohesive", "composite",
+ "context-sensitive", "contextually-based", "content-based", "dedicated",
+ "demand-driven", "didactic", "directional", "discrete", "disintermediate",
+ "dynamic", "eco-centric", "empowering", "encompassing", "even-keeled",
+ "executive", "explicit", "exuding", "fault-tolerant", "foreground",
+ "fresh-thinking", "full-range", "global", "grid-enabled", "heuristic",
+ "high-level", "holistic", "homogeneous", "human-resource", "hybrid",
+ "impactful", "incremental", "intangible", "interactive", "intermediate",
+ "leading edge", "local", "logistical", "maximized", "methodical",
+ "mission-critical", "mobile", "modular", "motivating", "multimedia",
+ "multi-state", "multi-tasking", "national", "needs-based", "neutral",
+ "next generation", "non-volatile", "object-oriented", "optimal", "optimizing",
+ "radical", "real-time", "reciprocal", "regional", "responsive", "scalable",
+ "secondary", "solution-oriented", "stable", "static", "systematic",
+ "systemic", "system-worthy", "tangible", "tertiary", "transitional",
+ "uniform", "upward-trending", "user-facing", "value-added", "web-enabled",
+ "well-modulated", "zero administration", "zero defect", "zero tolerance"]
+ CATCH_POS = k ["ability", "access", "adapter", "algorithm", "alliance",
+ "analyzer", "application", "approach", "architecture", "archive",
+ "artificial intelligence", "array", "attitude", "benchmark",
+ "budgetary management", "capability", "capacity", "challenge", "circuit",
+ "collaboration", "complexity", "concept", "conglomeration",
+ "contingency", "core", "customer loyalty", "database",
+ "data-warehouse", "definition", "emulation", "encoding", "encryption",
+ "extranet", "firmware", "flexibility", "focus group", "forecast",
+ "frame", "framework", "function", "functionalities", "Graphic Interface",
+ "groupware", "Graphical User Interface", "hardware",
+ "help-desk", "hierarchy", "hub", "implementation", "info-mediaries",
+ "infrastructure", "initiative", "installation", "instruction set",
+ "interface", "internet solution", "intranet", "knowledge user",
+ "knowledge base", "local area network", "leverage", "matrices",
+ "matrix", "methodology", "middleware", "migration", "model",
+ "moderator", "monitoring", "moratorium", "neural-net", "open architecture",
+ "open system", "orchestration", "paradigm", "parallelism", "policy",
+ "portal", "pricing structure", "process improvement", "product",
+ "productivity", "project", "projection", "protocol", "secured line",
+ "service-desk", "software", "solution", "standardization",
+ "strategy", "structure", "success", "superstructure", "support",
+ "synergy", "system engine", "task-force", "throughput",
+ "time-frame", "toolset", "utilisation", "website",
+ "workforce"]
+ BS_PRE = k ["implement", "utilize", "integrate", "streamline", "optimize",
+ "evolve", "transform", "embrace", "enable", "orchestrate", "leverage",
+ "reinvent", "aggregate", "architect", "enhance", "incentivize",
+ "morph", "empower", "envisioneer", "monetize", "harness", "facilitate",
+ "seize", "disintermediate", "synergize", "strategize", "deploy",
+ "brand", "grow", "target", "syndicate", "synthesize", "deliver",
+ "mesh", "incubate", "engage", "maximize", "benchmark", "expedite",
+ "reintermediate", "whiteboard", "visualize", "repurpose", "innovate",
+ "scale", "unleash", "drive", "extend", "engineer", "revolutionize",
+ "generate", "exploit", "transition", "e-enable", "iterate",
+ "cultivate", "matrix", "productize", "redefine", "recontextualize"]
+ BS_MID = k ["clicks-and-mortar", "value-added", "vertical", "proactive",
+ "robust", "revolutionary", "scalable", "leading-edge", "innovative",
+ "intuitive", "strategic", "e-business", "mission-critical", "sticky",
+ "one-to-one", "24/7", "end-to-end", "global", "B2B", "B2C", "granular",
+ "frictionless", "virtual", "viral", "dynamic", "24/365",
+ "best-of-breed", "killer", "magnetic", "bleeding-edge", "web-enabled",
+ "interactive", "dot-com", "sexy", "back-end", "real-time", "efficient",
+ "front-end", "distributed", "seamless", "extensible", "turn-key",
+ "world-class", "open-source", "cross-platform", "cross-media",
+ "synergistic", "bricks-and-clicks", "out-of-the-box", "enterprise",
+ "integrated", "impactful", "wireless", "transparent",
+ "next-generation", "cutting-edge", "user-centric", "visionary",
+ "customized", "ubiquitous", "plug-and-play", "collaborative",
+ "compelling", "holistic", "rich"]
+ BS_POS = k ["synergies", "web-readiness", "paradigms", "markets",
+ "partnerships", "infrastructures", "platforms", "initiatives",
+ "channels", "eyeballs", "communities", "ROI", "solutions", "e-tailers",
+ "e-services", "action-items", "portals", "niches", "technologies",
+ "content", "vortals", "supply-chains", "convergence", "relationships",
+ "architectures", "interfaces", "e-markets", "e-commerce", "systems",
+ "bandwidth", "infomediaries", "models", "mindshare", "deliverables",
+ "users", "schemas", "networks", "applications", "metrics",
+ "e-business", "functionalities", "experiences", "web services",
+ "methodologies"]
+ end
50 lib/faker/internet.rb
@@ -0,0 +1,50 @@
+module Faker
+ module Internet
+ extend ModuleUtils
+ extend self
+ def email(name = nil)
+ [ user_name(name), domain_name ].join('@')
+ end
+ def free_email(name = nil)
+ "#{user_name(name)}@#{HOSTS.rand}"
+ end
+ def user_name(name = nil)
+ if name
+ parts = ArrayUtils.shuffle(name.scan(/\w+/)).join(ArrayUtils.rand(%w(. _)))
+ parts.downcase!
+ parts
+ else
+ case rand(2)
+ when 0
+ Name.first_name.gsub(/\W/, '').downcase
+ when 1
+ parts = [ Name.first_name, Name.last_name ].each {|n| n.gsub!(/\W/, '') }
+ parts = parts.join ArrayUtils.rand(%w(. _))
+ parts.downcase!
+ parts
+ end
+ end
+ end
+ def domain_name
+ "#{domain_word}.#{domain_suffix}"
+ end
+ def domain_word
+ dw =' ').first
+ dw.gsub!(/\W/, '')
+ dw.downcase!
+ dw
+ end
+ def domain_suffix
+ end
+ HOSTS = k %w(
+ DOMAIN_SUFFIXES = k %w( com us uk ca biz info name)
+ end
59 lib/faker/lorem.rb
@@ -0,0 +1,59 @@
+module Faker
+ # Based on Perl's Text::Lorem
+ module Lorem
+ extend ModuleUtils
+ extend self
+ def words(num = 3)
+ WORDS.random_pick(num)
+ end
+ def sentence(word_count = 4)
+ s = words(word_count + rand(6))
+ s = s.join(' ')
+ s.capitalize!
+ "#{s}."
+ end
+ def sentences(sentence_count = 3)
+ (1..sentence_count).map { sentence }
+ end
+ def paragraph(sentence_count = 3)
+ sentences(sentence_count + rand(3)).join(' ')
+ end
+ def paragraphs(paragraph_count = 3)
+ (1..paragraph_count).map { paragraph }
+ end
+ WORDS = k %w(alias consequatur aut perferendis sit voluptatem accusantium
+ doloremque aperiam eaque ipsa quae ab illo inventore veritatis
+ et quasi architecto beatae vitae dicta sunt explicabo aspernatur
+ aut odit aut fugit sed quia consequuntur magni dolores eos qui
+ ratione voluptatem sequi nesciunt neque dolorem ipsum quia dolor
+ sit amet consectetur adipisci velit sed quia non numquam eius
+ modi tempora incidunt ut labore et dolore magnam aliquam quaerat
+ voluptatem ut enim ad minima veniam quis nostrum exercitationem
+ ullam corporis nemo enim ipsam voluptatem quia voluptas sit
+ suscipit laboriosam nisi ut aliquid ex ea commodi consequatur
+ quis autem vel eum iure reprehenderit qui in ea voluptate velit
+ esse quam nihil molestiae et iusto odio dignissimos ducimus qui
+ blanditiis praesentium laudantium totam rem voluptatum deleniti
+ atque corrupti quos dolores et quas molestias excepturi sint
+ occaecati cupiditate non provident sed ut perspiciatis unde
+ omnis iste natus error similique sunt in culpa qui officia
+ deserunt mollitia animi id est laborum et dolorum fuga et harum
+ quidem rerum facilis est et expedita distinctio nam libero
+ tempore cum soluta nobis est eligendi optio cumque nihil impedit
+ quo porro quisquam est qui minus id quod maxime placeat facere
+ possimus omnis voluptas assumenda est omnis dolor repellendus
+ temporibus autem quibusdam et aut consequatur vel illum qui
+ dolorem eum fugiat quo voluptas nulla pariatur at vero eos et
+ accusamus officiis debitis aut rerum necessitatibus saepe
+ eveniet ut et voluptates repudiandae sint et molestiae non
+ recusandae itaque earum rerum hic tenetur a sapiente delectus ut
+ aut reiciendis voluptatibus maiores doloribus asperiores
+ repellat)
+ end
374 lib/faker/name.rb
@@ -0,0 +1,374 @@
+module Faker
+ module Name
+ extend ModuleUtils
+ extend self
+ def name
+ case rand(10)
+ when 0 then "#{prefix}#{first_name}#{last_name}"
+ when 1 then "#{first_name}#{last_name}#{suffix}"
+ else "#{first_name}#{last_name}"
+ end
+ end
+ def first_name
+ end
+ def last_name
+ end
+ def prefix
+ end
+ def suffix
+ end
+ FIRST_NAMES = k %w(Aaliyah Aaron Abagail Abbey Abbie Abbigail Abby Abdiel Abdul
+ Abdullah Abe Abel Abelardo Abigail Abigale Abigayle Abner Abraham Ada Adah
+ Adalberto Adaline Adam Adan Addie Addison Adela Adelbert Adele Adelia
+ Adeline Adell Adella Adelle Aditya Adolf Adolfo Adolph Adolphus Adonis
+ Adrain Adrian Adriana Adrianna Adriel Adrien Adrienne Afton Aglae Agnes
+ Agustin Agustina Ahmad Ahmed Aida Aidan Aiden Aileen Aimee Aisha Aiyana
+ Akeem Al Alaina Alan Alana Alanis Alanna Alayna Alba Albert Alberta
+ Albertha Alberto Albin Albina Alda Alden Alec Aleen Alejandra Alejandrin
+ Alek Alena Alene Alessandra Alessandro Alessia Aletha Alex Alexa Alexander
+ Alexandra Alexandre Alexandrea Alexandria Alexandrine Alexandro Alexane
+ Alexanne Alexie Alexis Alexys Alexzander Alf Alfonso Alfonzo Alford Alfred
+ Alfreda Alfredo Ali Alia Alice Alicia Alisa Alisha Alison Alivia Aliya
+ Aliyah Aliza Alize Allan Allen Allene Allie Allison Ally Alphonso Alta
+ Althea Alva Alvah Alvena Alvera Alverta Alvina Alvis Alyce Alycia Alysa
+ Alysha Alyson Alysson Amalia Amanda Amani Amara Amari Amaya Amber Ambrose
+ Amelia Amelie Amely America Americo Amie Amina Amir Amira Amiya Amos Amparo
+ Amy Amya Ana Anabel Anabelle Anahi Anais Anastacio Anastasia Anderson Andre
+ Andreane Andreanne Andres Andrew Andy Angel Angela Angelica Angelina
+ Angeline Angelita Angelo Angie Angus Anibal Anika Anissa Anita Aniya Aniyah
+ Anjali Anna Annabel Annabell Annabelle Annalise Annamae Annamarie Anne
+ Annetta Annette Annie Ansel Ansley Anthony Antoinette Antone Antonetta
+ Antonette Antonia Antonietta Antonina Antonio Antwan Antwon Anya April Ara
+ Araceli Aracely Arch Archibald Ardella Arden Ardith Arely Ari Ariane
+ Arianna Aric Ariel Arielle Arjun Arlene Arlie Arlo Armand Armando Armani
+ Arnaldo Arne Arno Arnold Arnoldo Arnulfo Aron Art Arthur Arturo Arvel Arvid
+ Arvilla Aryanna Asa Asha Ashlee Ashleigh Ashley Ashly Ashlynn Ashton Ashtyn
+ Asia Assunta Astrid Athena Aubree Aubrey Audie Audra Audreanne Audrey
+ August Augusta Augustine Augustus Aurelia Aurelie Aurelio Aurore Austen
+ Austin Austyn Autumn Ava Avery Avis Axel Ayana Ayden Ayla Aylin Baby Bailee
+ Bailey Barbara Barney Baron Barrett Barry Bart Bartholome Barton Baylee
+ Beatrice Beau Beaulah Bell Bella Belle Ben Benedict Benjamin Bennett Bennie
+ Benny Benton Berenice Bernadette Bernadine Bernard Bernardo Berneice
+ Bernhard Bernice Bernie Berniece Bernita Berry Bert Berta Bertha Bertram
+ Bertrand Beryl Bessie Beth Bethany Bethel Betsy Bette Bettie Betty Bettye
+ Beulah Beverly Bianka Bill Billie Billy Birdie Blair Blaise Blake Blanca
+ Blanche Blaze Bo Bobbie Bobby Bonita Bonnie Boris Boyd Brad Braden Bradford
+ Bradley Bradly Brady Braeden Brain Brandi Brando Brandon Brandt Brandy
+ Brandyn Brannon Branson Brant Braulio Braxton Brayan Breana Breanna Breanne
+ Brenda Brendan Brenden Brendon Brenna Brennan Brennon Brent Bret Brett Bria
+ Brian Briana Brianne Brice Bridget Bridgette Bridie Brielle Brigitte
+ Brionna Brisa Britney Brittany Brock Broderick Brody Brook Brooke Brooklyn
+ Brooks Brown Bruce Bryana Bryce Brycen Bryon Buck Bud Buddy Buford Bulah
+ Burdette Burley Burnice Buster Cade Caden Caesar Caitlyn Cale Caleb Caleigh
+ Cali Calista Callie Camden Cameron Camila Camilla Camille Camren Camron
+ Camryn Camylle Candace Candelario Candice Candida Candido Cara Carey
+ Carissa Carlee Carleton Carley Carli Carlie Carlo Carlos Carlotta Carmel
+ Carmela Carmella Carmelo Carmen Carmine Carol Carolanne Carole Carolina
+ Caroline Carolyn Carolyne Carrie Carroll Carson Carter Cary Casandra Casey
+ Casimer Casimir Casper Cassandra Cassandre Cassidy Cassie Catalina Caterina
+ Catharine Catherine Cathrine Cathryn Cathy Cayla Ceasar Cecelia Cecil
+ Cecile Cecilia Cedrick Celestine Celestino Celia Celine Cesar Chad Chadd
+ Chadrick Chaim Chance Chandler Chanel Chanelle Charity Charlene Charles
+ Charley Charlie Charlotte Chase Chasity Chauncey Chaya Chaz Chelsea Chelsey
+ Chelsie Chesley Chester Chet Cheyanne Cheyenne Chloe Chris Christ Christa
+ Christelle Christian Christiana Christina Christine Christop Christophe
+ Christopher Christy Chyna Ciara Cicero Cielo Cierra Cindy Citlalli Clair
+ Claire Clara Clarabelle Clare Clarissa Clark Claud Claude Claudia Claudie
+ Claudine Clay Clemens Clement Clementina Clementine Clemmie Cleo Cleora
+ Cleta Cletus Cleve Cleveland Clifford Clifton Clint Clinton Clotilde Clovis
+ Cloyd Clyde Coby Cody Colby Cole Coleman Colin Colleen Collin Colt Colten
+ Colton Columbus Concepcion Conner Connie Connor Conor Conrad Constance
+ Constantin Consuelo Cooper Cora Coralie Corbin Cordelia Cordell Cordia
+ Cordie Corene Corine Cornelius Cornell Corrine Cortez Cortney Cory Coty
+ Courtney Coy Craig Crawford Creola Cristal Cristian Cristina Cristobal
+ Cristopher Cruz Crystal Crystel Cullen Curt Curtis Cydney Cynthia Cyril
+ Cyrus Dagmar Dahlia Daija Daisha Daisy Dakota Dale Dallas Dallin Dalton
+ Damaris Dameon Damian Damien Damion Damon Dan Dana Dandre Dane D'angelo
+ Dangelo Danial Daniela Daniella Danielle Danika Dannie Danny Dante Danyka
+ Daphne Daphnee Daphney Darby Daren Darian Dariana Darien Dario Darion
+ Darius Darlene Daron Darrel Darrell Darren Darrick Darrin Darrion Darron
+ Darryl Darwin Daryl Dashawn Dasia Dave David Davin Davion Davon Davonte
+ Dawn Dawson Dax Dayana Dayna Dayne Dayton Dean Deangelo Deanna Deborah
+ Declan Dedric Dedrick Dee Deion Deja Dejah Dejon Dejuan Delaney Delbert
+ Delfina Delia Delilah Dell Della Delmer Delores Delpha Delphia Delphine
+ Delta Demarco Demarcus Demario Demetris Demetrius Demond Dena Denis Dennis
+ Deon Deondre Deontae Deonte Dereck Derek Derick Deron Derrick Deshaun
+ Deshawn Desiree Desmond Dessie Destany Destin Destinee Destiney Destini
+ Destiny Devan Devante Deven Devin Devon Devonte Devyn Dewayne Dewitt Dexter
+ Diamond Diana Dianna Diego Dillan Dillon Dimitri Dina Dino Dion Dixie Dock
+ Dolly Dolores Domenic Domenica Domenick Domenico Domingo Dominic Dominique
+ Don Donald Donato Donavon Donna Donnell Donnie Donny Dora Dorcas Dorian
+ Doris Dorothea Dorothy Dorris Dortha Dorthy Doug Douglas Dovie Doyle Drake
+ Drew Duane Dudley Dulce Duncan Durward Dustin Dusty Dwight Dylan Earl
+ Earlene Earline Earnest Earnestine Easter Easton Ebba Ebony Ed Eda Edd
+ Eddie Eden Edgar Edgardo Edison Edmond Edmund Edna Eduardo Edward Edwardo
+ Edwin Edwina Edyth Edythe Effie Efrain Efren Eileen Einar Eino Eladio
+ Elaina Elbert Elda Eldon Eldora Eldred Eldridge Eleanora Eleanore Eleazar
+ Electa Elena Elenor Elenora Eleonore Elfrieda Eli Elian Eliane Elias
+ Eliezer Elijah Elinor Elinore Elisa Elisabeth Elise Eliseo Elisha Elissa
+ Eliza Elizabeth Ella Ellen Ellie Elliot Elliott Ellis Ellsworth Elmer
+ Elmira Elmo Elmore Elna Elnora Elody Eloisa Eloise Elouise Eloy Elroy Elsa
+ Else Elsie Elta Elton Elva Elvera Elvie Elvis Elwin Elwyn Elyse Elyssa Elza
+ Emanuel Emelia Emelie Emely Emerald Emerson Emery Emie Emil Emile Emilia
+ Emiliano Emilie Emilio Emily Emma Emmalee Emmanuel Emmanuelle Emmet Emmett
+ Emmie Emmitt Emmy Emory Ena Enid Enoch Enola Enos Enrico Enrique Ephraim
+ Era Eriberto Eric Erica Erich Erick Ericka Erik Erika Erin Erling Erna
+ Ernest Ernestina Ernestine Ernesto Ernie Ervin Erwin Eryn Esmeralda
+ Esperanza Esta Esteban Estefania Estel Estell Estella Estelle Estevan
+ Esther Estrella Etha Ethan Ethel Ethelyn Ethyl Ettie Eudora Eugene Eugenia
+ Eula Eulah Eulalia Euna Eunice Eusebio Eva Evalyn Evan Evangeline Evans Eve
+ Eveline Evelyn Everardo Everett Everette Evert Evie Ewald Ewell Ezekiel
+ Ezequiel Ezra Fabian Fabiola Fae Fannie Fanny Fatima Faustino Fausto Favian
+ Fay Faye Federico Felicia Felicita Felicity Felipa Felipe Felix Felton
+ Fermin Fern Fernando Ferne Fidel Filiberto Filomena Finn Fiona Flavie
+ Flavio Fleta Fletcher Flo Florence Florencio Florian Florida Florine
+ Flossie Floy Floyd Ford Forest Forrest Foster Frances Francesca Francesco
+ Francis Francisca Francisco Franco Frank Frankie Franz Fred Freda Freddie
+ Freddy Frederic Frederick Frederik Frederique Fredrick Fredy Freeda Freeman
+ Freida Frida Frieda Friedrich Fritz Furman Gabe Gabriel Gabriella Gabrielle
+ Gaetano Gage Gail Gardner Garett Garfield Garland Garnet Garnett Garret
+ Garrett Garrick Garrison Garry Garth Gaston Gavin Gay Gayle Gaylord Gene
+ General Genesis Genevieve Gennaro Genoveva Geo Geoffrey George Georgette
+ Georgiana Georgianna Geovanni Geovanny Geovany Gerald Geraldine Gerard
+ Gerardo Gerda Gerhard Germaine German Gerry Gerson Gertrude Gia Gianni
+ Gideon Gilbert Gilberto Gilda Giles Gillian Gina Gino Giovani Giovanna
+ Giovanni Giovanny Gisselle Giuseppe Gladyce Gladys Glen Glenda Glenna
+ Glennie Gloria Godfrey Golda Golden Gonzalo Gordon Grace Gracie Graciela
+ Grady Graham Grant Granville Grayce Grayson Green Greg Gregg Gregoria
+ Gregorio Gregory Greta Gretchen Greyson Griffin Grover Guadalupe Gudrun
+ Guido Guillermo Guiseppe Gunnar Gunner Gus Gussie Gust Gustavo Gustave Guy Gwen
+ Gwendolyn Hadley Hailee Hailey Hailie Hal Haleigh Haley Halie Halle Hallie
+ Hank Hanna Hannah Hans Hardy Harley Harmon Harmony Harold Harrison Harry
+ Harvey Haskell Hassan Hassie Hattie Haven Hayden Haylee Hayley Haylie Hazel
+ Hazle Heath Heather Heaven Heber Hector Heidi Helen Helena Helene Helga
+ Hellen Helmer Heloise Henderson Henri Henriette Henry Herbert Herman
+ Hermann Hermina Herminia Herminio Hershel Herta Hertha Hester Hettie
+ Hilario Hilbert Hilda Hildegard Hillard Hillary Hilma Hilton Hipolito Hiram
+ Hobart Holden Hollie Hollis Holly Hope Horace Horacio Hortense Hosea
+ Houston Howard Howell Hoyt Hubert Hudson Hugh Hulda Humberto Hunter Hyman
+ Ian Ibrahim Icie Ida Idell Idella Ignacio Ignatius Ike Ila Ilene Iliana Ima
+ Imani Imelda Immanuel Imogene Ines Irma Irving Irwin Isaac Isabel Isabell
+ Isabella Isabelle Isac Isadore Isai Isaiah Isaias Isidro Ismael Isobel Isom
+ Israel Issac Itzel Iva Ivah Ivory Ivy Izabella Izaiah Jabari Jace Jacey
+ Jacinthe Jacinto Jack Jackeline Jackie Jacklyn Jackson Jacky Jaclyn
+ Jacquelyn Jacques Jacynthe Jada Jade Jaden Jadon Jadyn Jaeden Jaida Jaiden
+ Jailyn Jaime Jairo Jakayla Jake Jakob Jaleel Jalen Jalon Jalyn Jamaal Jamal
+ Jamar Jamarcus Jamel Jameson Jamey Jamie Jamil Jamir Jamison Jammie Jan
+ Jana Janae Jane Janelle Janessa Janet Janice Janick Janie Janis Janiya
+ Jannie Jany Jaquan Jaquelin Jaqueline Jared Jaren Jarod Jaron Jarred
+ Jarrell Jarret Jarrett Jarrod Jarvis Jasen Jasmin Jason Jasper Jaunita
+ Javier Javon Javonte Jay Jayce Jaycee Jayda Jayde Jayden Jaydon Jaylan
+ Jaylen Jaylin Jaylon Jayme Jayne Jayson Jazlyn Jazmin Jazmyn Jazmyne Jean
+ Jeanette Jeanie Jeanne Jed Jedediah Jedidiah Jeff Jefferey Jeffery Jeffrey
+ Jeffry Jena Jenifer Jennie Jennifer Jennings Jennyfer Jensen Jerad Jerald
+ Jeramie Jeramy Jerel Jeremie Jeremy Jermain Jermaine Jermey Jerod Jerome
+ Jeromy Jerrell Jerrod Jerrold Jerry Jess Jesse Jessica Jessie Jessika Jessy
+ Jessyca Jesus Jett Jettie Jevon Jewel Jewell Jillian Jimmie Jimmy Jo Joan
+ Joana Joanie Joanne Joannie Joanny Joany Joaquin Jocelyn Jodie Jody Joe
+ Joel Joelle Joesph Joey Johan Johann Johanna Johathan John Johnathan
+ Johnathon Johnnie Johnny Johnpaul Johnson Jolie Jon Jonas Jonatan Jonathan
+ Jonathon Jordan Jordane Jordi Jordon Jordy Jordyn Jorge Jose Josefa
+ Josefina Joseph Josephine Josh Joshua Joshuah Josiah Josiane Josianne Josie
+ Josue Jovan Jovani Jovanny Jovany Joy Joyce Juana Juanita Judah Judd Jude
+ Judge Judson Judy Jules Julia Julian Juliana Julianne Julie Julien Juliet
+ Julio Julius June Junior Junius Justen Justice Justina Justine Juston
+ Justus Justyn Juvenal Juwan Kacey Kaci Kacie Kade Kaden Kadin Kaela Kaelyn
+ Kaia Kailee Kailey Kailyn Kaitlin Kaitlyn Kale Kaleb Kaleigh Kaley Kali
+ Kallie Kameron Kamille Kamren Kamron Kamryn Kane Kara Kareem Karelle Karen
+ Kari Kariane Karianne Karina Karine Karl Karlee Karley Karli Karlie
+ Karolann Karson Kasandra Kasey Kassandra Katarina Katelin Katelyn Katelynn
+ Katharina Katherine Katheryn Kathleen Kathlyn Kathryn Kathryne Katlyn
+ Katlynn Katrina Katrine Kattie Kavon Kay Kaya Kaycee Kayden Kayla Kaylah
+ Kaylee Kayleigh Kayley Kayli Kaylie Kaylin Keagan Keanu Keara Keaton Keegan
+ Keeley Keely Keenan Keira Keith Kellen Kelley Kelli Kellie Kelly Kelsi
+ Kelsie Kelton Kelvin Ken Kendall Kendra Kendrick Kenna Kennedi Kennedy
+ Kenneth Kennith Kenny Kenton Kenya Kenyatta Kenyon Keon Keshaun Keshawn
+ Keven Kevin Kevon Keyon Keyshawn Khalid Khalil Kian Kiana Kianna Kiara
+ Kiarra Kiel Kiera Kieran Kiley Kim Kimberly King Kip Kira Kirk Kirsten
+ Kirstin Kitty Kobe Koby Kody Kolby Kole Korbin Korey Kory Kraig Kris Krista
+ Kristian Kristin Kristina Kristofer Kristoffer Kristopher Kristy Krystal
+ Krystel Krystina Kurt Kurtis Kyla Kyle Kylee Kyleigh Kyler Kylie Kyra Lacey
+ Lacy Ladarius Lafayette Laila Laisha Lamar Lambert Lamont Lance Landen Lane
+ Laney Larissa Laron Larry Larue Laura Laurel Lauren Laurence Lauretta
+ Lauriane Laurianne Laurie Laurine Laury Lauryn Lavada Lavern Laverna
+ Laverne Lavina Lavinia Lavon Lavonne Lawrence Lawson Layla Layne Lazaro Lea
+ Leann Leanna Leanne Leatha Leda Lee Leif Leila Leilani Lela Lelah Leland
+ Lelia Lempi Lemuel Lenna Lennie Lenny Lenora Lenore Leo Leola Leon Leonard
+ Leonardo Leone Leonel Leonie Leonor Leonora Leopold Leopoldo Leora Lera
+ Lesley Leslie Lesly Lessie Lester Leta Letha Letitia Levi Lew Lewis Lexi
+ Lexie Lexus Lia Liam Liana Libbie Libby Lila Lilian Liliana Liliane Lilla
+ Lillian Lilliana Lillie Lilly Lily Lilyan Lina Lincoln Linda Lindsay
+ Lindsey Linnea Linnie Linwood Lionel Lisa Lisandro Lisette Litzy Liza
+ Lizeth Lizzie Llewellyn Lloyd Logan Lois Lola Lolita Loma Lon London Lonie
+ Lonnie Lonny Lonzo Lora Loraine Loren Lorena Lorenz Lorenza Lorenzo Lori
+ Lorine Lorna Lottie Lou Louie Louisa Lourdes Louvenia Lowell Loy Loyal
+ Loyce Lucas Luciano Lucie Lucienne Lucile Lucinda Lucio Lucious Lucius Lucy
+ Ludie Ludwig Lue Luella Luigi Luis Luisa Lukas Lula Lulu Luna Lupe Lura
+ Lurline Luther Luz Lyda Lydia Lyla Lynn Lyric Lysanne Mabel Mabelle Mable
+ Mac Macey Maci Macie Mack Mackenzie Macy Madaline Madalyn Maddison Madeline
+ Madelyn Madelynn Madge Madie Madilyn Madisen Madison Madisyn Madonna
+ Madyson Mae Maegan Maeve Mafalda Magali Magdalen Magdalena Maggie Magnolia
+ Magnus Maia Maida Maiya Major Makayla Makenna Makenzie Malachi Malcolm
+ Malika Malinda Mallie Mallory Malvina Mandy Manley Manuel Manuela Mara Marc
+ Marcel Marcelina Marcelino Marcella Marcelle Marcellus Marcelo Marcia Marco
+ Marcos Marcus Margaret Margarete Margarett Margaretta Margarette Margarita
+ Marge Margie Margot Margret Marguerite Maria Mariah Mariam Marian Mariana
+ Mariane Marianna Marianne Mariano Maribel Marie Mariela Marielle Marietta
+ Marilie Marilou Marilyne Marina Mario Marion Marisa Marisol Maritza
+ Marjolaine Marjorie Marjory Mark Markus Marlee Marlen Marlene Marley Marlin
+ Marlon Marques Marquis Marquise Marshall Marta Martin Martina Martine Marty
+ Marvin Mary Maryam Maryjane Maryse Mason Mateo Mathew Mathias Mathilde
+ Matilda Matilde Matt Matteo Mattie Maud Maude Maudie Maureen Maurice
+ Mauricio Maurine Maverick Mavis Max Maxie Maxime Maximilian Maximillia
+ Maximillian Maximo Maximus Maxine Maxwell May Maya Maybell Maybelle Maye
+ Maymie Maynard Mayra Mazie Mckayla Mckenna Mckenzie Meagan Meaghan Meda
+ Megane Meggie Meghan Mekhi Melany Melba Melisa Melissa Mellie Melody Melvin
+ Melvina Melyna Melyssa Mercedes Meredith Merl Merle Merlin Merritt Mertie
+ Mervin Meta Mia Micaela Micah Michael Michaela Michale Micheal Michel
+ Michele Michelle Miguel Mikayla Mike Mikel Milan Miles Milford Miller
+ Millie Milo Milton Mina Minerva Minnie Miracle Mireille Mireya Misael
+ Missouri Misty Mitchel Mitchell Mittie Modesta Modesto Mohamed Mohammad
+ Mohammed Moises Mollie Molly Mona Monica Monique Monroe Monserrat
+ Monserrate Montana Monte Monty Morgan Moriah Morris Mortimer Morton Mose
+ Moses Moshe Mossie Mozell Mozelle Muhammad Muriel Murl Murphy Murray
+ Mustafa Mya Myah Mylene Myles Myra Myriam Myrl Myrna Myron Myrtice Myrtie
+ Myrtis Myrtle Nadia Nakia Name Nannie Naomi Naomie Napoleon Narciso Nash
+ Nasir Nat Natalia Natalie Natasha Nathan Nathanael Nathanial Nathaniel
+ Nathen Nayeli Neal Ned Nedra Neha Neil Nelda Nella Nelle Nellie Nels Nelson
+ Neoma Nestor Nettie Neva Newell Newton Nia Nicholas Nicholaus Nichole Nick
+ Nicklaus Nickolas Nico Nicola Nicolas Nicole Nicolette Nigel Nikita Nikki
+ Nikko Niko Nikolas Nils Nina Noah Noble Noe Noel Noelia Noemi Noemie Noemy
+ Nola Nolan Nona Nora Norbert Norberto Norene Norma Norris Norval Norwood
+ Nova Novella Nya Nyah Nyasia Obie Oceane Ocie Octavia Oda Odell Odessa Odie
+ Ofelia Okey Ola Olaf Ole Olen Oleta Olga Olin Oliver Ollie Oma Omari Omer
+ Ona Onie Opal Ophelia Ora Oral Oran Oren Orie Orin Orion Orland Orlando
+ Orlo Orpha Orrin Orval Orville Osbaldo Osborne Oscar Osvaldo Oswald Oswaldo
+ Otha Otho Otilia Otis Ottilie Ottis Otto Ova Owen Ozella Pablo Paige Palma
+ Pamela Pansy Paolo Paris Parker Pascale Pasquale Pat Patience Patricia
+ Patrick Patsy Pattie Paul Paula Pauline Paxton Payton Pearl Pearlie
+ Pearline Pedro Peggie Penelope Percival Percy Perry Pete Peter Petra Peyton
+ Philip Phoebe Phyllis Pierce Pierre Pietro Pink Pinkie Piper Polly Porter
+ Precious Presley Preston Price Prince Princess Priscilla Providenci
+ Prudence Queen Queenie Quentin Quincy Quinn Quinten Quinton Rachael Rachel
+ Rachelle Rae Raegan Rafael Rafaela Raheem Rahsaan Rahul Raina Raleigh Ralph
+ Ramiro Ramon Ramona Randal Randall Randi Randy Ransom Raoul Raphael
+ Raphaelle Raquel Rashad Rashawn Rasheed Raul Raven Ray Raymond Raymundo
+ Reagan Reanna Reba Rebeca Rebecca Rebeka Rebekah Reece Reed Reese Regan
+ Reggie Reginald Reid Reilly Reina Reinhold Remington Rene Renee Ressie Reta
+ Retha Retta Reuben Reva Rex Rey Reyes Reymundo Reyna Reynold Rhea Rhett
+ Rhianna Rhiannon Rhoda Ricardo Richard Richie Richmond Rick Rickey Rickie
+ Ricky Rico Rigoberto Riley Rita River Robb Robbie Robert Roberta Roberto
+ Robin Robyn Rocio Rocky Rod Roderick Rodger Rodolfo Rodrick Rodrigo Roel
+ Rogelio Roger Rogers Rolando Rollin Roma Romaine Roman Ron Ronaldo Ronny
+ Roosevelt Rory Rosa Rosalee Rosalia Rosalind Rosalinda Rosalyn Rosamond
+ Rosanna Rosario Roscoe Rose Rosella Roselyn Rosemarie Rosemary Rosendo
+ Rosetta Rosie Rosina Roslyn Ross Rossie Rowan Rowena Rowland Roxane Roxanne
+ Roy Royal Royce Rozella Ruben Rubie Ruby Rubye Rudolph Rudy Rupert Russ
+ Russel Russell Rusty Ruth Ruthe Ruthie Ryan Ryann Ryder Rylan Rylee Ryleigh
+ Ryley Sabina Sabrina Sabryna Sadie Sadye Sage Saige Sallie Sally Salma
+ Salvador Salvatore Sam Samanta Samantha Samara Samir Sammie Sammy Samson
+ Sandra Sandrine Sandy Sanford Santa Santiago Santina Santino Santos Sarah
+ Sarai Sarina Sasha Saul Savanah Savanna Savannah Savion Scarlett Schuyler
+ Scot Scottie Scotty Seamus Sean Sebastian Sedrick Selena Selina Selmer
+ Serena Serenity Seth Shad Shaina Shakira Shana Shane Shanel Shanelle Shania
+ Shanie Shaniya Shanna Shannon Shanny Shanon Shany Sharon Shaun Shawn Shawna
+ Shaylee Shayna Shayne Shea Sheila Sheldon Shemar Sheridan Sherman Sherwood
+ Shirley Shyann Shyanne Sibyl Sid Sidney Sienna Sierra Sigmund Sigrid Sigurd
+ Silas Sim Simeon Simone Sincere Sister Skye Skyla Skylar Sofia Soledad
+ Solon Sonia Sonny Sonya Sophia Sophie Spencer Stacey Stacy Stan Stanford
+ Stanley Stanton Stefan Stefanie Stella Stephan Stephania Stephanie Stephany
+ Stephen Stephon Sterling Steve Stevie Stewart Stone Stuart Summer Sunny
+ Susan Susana Susanna Susie Suzanne Sven Syble Sydnee Sydney Sydni Sydnie
+ Sylvan Sylvester Sylvia Tabitha Tad Talia Talon Tamara Tamia Tania Tanner
+ Tanya Tara Taryn Tate Tatum Tatyana Taurean Tavares Taya Taylor Teagan Ted
+ Telly Terence Teresa Terrance Terrell Terrence Terrill Terry Tess Tessie
+ Tevin Thad Thaddeus Thalia Thea Thelma Theo Theodora Theodore Theresa
+ Therese Theresia Theron Thomas Thora Thurman Tia Tiana Tianna Tiara Tierra
+ Tiffany Tillman Timmothy Timmy Timothy Tina Tito Titus Tobin Toby Tod Tom
+ Tomas Tomasa Tommie Toney Toni Tony Torey Torrance Torrey Toy Trace Tracey
+ Tracy Travis Travon Tre Tremaine Tremayne Trent Trenton Tressa Tressie
+ Treva Trever Trevion Trevor Trey Trinity Trisha Tristian Tristin Triston
+ Troy Trudie Trycia Trystan Turner Twila Tyler Tyra Tyree Tyreek Tyrel
+ Tyrell Tyrese Tyrique Tyshawn Tyson Ubaldo Ulices Ulises Una Unique Urban
+ Uriah Uriel Ursula Vada Valentin Valentina Valentine Valerie Vallie Van
+ Vance Vanessa Vaughn Veda Velda Vella Velma Velva Vena Verda Verdie Vergie
+ Verla Verlie Vern Verna Verner Vernice Vernie Vernon Verona Veronica Vesta
+ Vicenta Vicente Vickie Vicky Victor Victoria Vida Vidal Vilma Vince Vincent
+ Vincenza Vincenzo Vinnie Viola Violet Violette Virgie Virgil Virginia
+ Virginie Vita Vito Viva Vivian Viviane Vivianne Vivien Vivienne Vladimir
+ Wade Waino Waldo Walker Wallace Walter Walton Wanda Ward Warren Watson Wava
+ Waylon Wayne Webster Weldon Wellington Wendell Wendy Werner Westley Weston
+ Whitney Wilber Wilbert Wilburn Wiley Wilford Wilfred Wilfredo Wilfrid
+ Wilhelm Wilhelmine Will Willa Willard William Willie Willis Willow Willy
+ Wilma Wilmer Wilson Wilton Winfield Winifred Winnifred Winona Winston
+ Woodrow Wyatt Wyman Xander Xavier Xzavier Yadira Yasmeen Yasmin Yasmine
+ Yazmin Yesenia Yessenia Yolanda Yoshiko Yvette Yvonne Zachariah Zachary
+ Zachery Zack Zackary Zackery Zakary Zander Zane Zaria Zechariah Zelda Zella
+ Zelma Zena Zetta Zion Zita Zoe Zoey Zoie Zoila Zola Zora Zula)
+ LAST_NAMES = k %w(Abbott Abernathy Abshire Adams Altenwerth Anderson
+ Ankunding Armstrong Auer Aufderhar Bahringer Bailey Balistreri Barrows
+ Bartell Bartoletti Barton Bashirian Batz Bauch Baumbach Bayer Beahan Beatty
+ Bechtelar Becker Bednar Beer Beier Berge Bergnaum Bergstrom Bernhard
+ Bernier Bins Blanda Blick Block Bode Boehm Bogan Bogisich Borer Bosco
+ Botsford Boyer Boyle Bradtke Brakus Braun Breitenberg Brekke Brown Bruen
+ Buckridge Carroll Carter Cartwright Casper Cassin Champlin Christiansen
+ Cole Collier Collins Conn Connelly Conroy Considine Corkery Cormier Corwin
+ Cremin Crist Crona Cronin Crooks Cruickshank Cummerata Cummings Dach
+ D'Amore Daniel Dare Daugherty Davis Deckow Denesik Dibbert Dickens Dicki
+ Dickinson Dietrich Donnelly Dooley Douglas Doyle DuBuque Durgan Ebert
+ Effertz Eichmann Emard Emmerich Erdman Ernser Fadel Fahey Farrell Fay
+ Feeney Feest Feil Ferry Fisher Flatley Frami Franecki Friesen Fritsch Funk
+ Gaylord Gerhold Gerlach Gibson Gislason Gleason Gleichner Glover Goldner
+ Goodwin Gorczany Gottlieb Goyette Grady Graham Grant Green Greenfelder
+ Greenholt Grimes Gulgowski Gusikowski Gutkowski Gutmann Haag Hackett
+ Hagenes Hahn Haley Halvorson Hamill Hammes Hand Hane Hansen Harber Harris
+ Hartmann Harvey Hauck Hayes Heaney Heathcote Hegmann Heidenreich Heller
+ Herman Hermann Hermiston Herzog Hessel Hettinger Hickle Hilll Hills Hilpert
+ Hintz Hirthe Hodkiewicz Hoeger Homenick Hoppe Howe Howell Hudson Huel Huels
+ Hyatt Jacobi Jacobs Jacobson Jakubowski Jaskolski Jast Jenkins Jerde Jewess
+ Johns Johnson Johnston Jones Kassulke Kautzer Keebler Keeling Kemmer
+ Kerluke Kertzmann Kessler Kiehn Kihn Kilback King Kirlin Klein Kling Klocko
+ Koch Koelpin Koepp Kohler Konopelski Koss Kovacek Kozey Krajcik Kreiger
+ Kris Kshlerin Kub Kuhic Kuhlman Kuhn Kulas Kunde Kunze Kuphal Kutch Kuvalis
+ Labadie Lakin Lang Langosh Langworth Larkin Larson Leannon Lebsack Ledner
+ Leffler Legros Lehner Lemke Lesch Leuschke Lind Lindgren Littel Little
+ Lockman Lowe Lubowitz Lueilwitz Luettgen Lynch Macejkovic Maggio Mann Mante
+ Marks Marquardt Marvin Mayer Mayert McClure McCullough McDermott McGlynn
+ McKenzie McLaughlin Medhurst Mertz Metz Miller Mills Mitchell Moen Mohr
+ Monahan Moore Morar Morissette Mosciski Mraz Mueller Muller Murazik Murphy
+ Murray Nader Nicolas Nienow Nikolaus Nitzsche Nolan Oberbrunner O'Connell
+ O'Conner O'Hara O'Keefe O'Kon Oga Okuneva Olson Ondricka O'Reilly Orn Ortiz
+ Osinski Pacocha Padberg Pagac Parisian Parker Paucek Pfannerstill Pfeffer
+ Pollich Pouros Powlowski Predovic Price Prohaska Prosacco Purdy Quigley
+ Quitzon Rath Ratke Rau Raynor Reichel Reichert Reilly Reinger Rempel Renner
+ Reynolds Rice Rippin Ritchie Robel Roberts Rodriguez Rogahn Rohan Rolfson
+ Romaguera Roob Rosenbaum Rowe Ruecker Runolfsdottir Runolfsson Runte Russel
+ Rutherford Ryan Sanford Satterfield Sauer Sawayn Schaden Schaefer
+ Schamberger Schiller Schimmel Schinner Schmeler Schmidt Schmitt Schneider
+ Schoen Schowalter Schroeder Schulist Schultz Schumm Schuppe Schuster Senger
+ Shanahan Shields Simonis Sipes Skiles Smith Smitham Spencer Spinka Sporer
+ Stamm Stanton Stark Stehr Steuber Stiedemann Stokes Stoltenberg Stracke
+ Streich Stroman Strosin Swaniawski Swift Terry Thiel Thompson Tillman Torp
+ Torphy Towne Toy Trantow Tremblay Treutel Tromp Turcotte Turner Ullrich
+ Upton Vandervort Veum Volkman Von VonRueden Waelchi Walker Walsh Walter
+ Ward Waters Watsica Weber Wehner Weimann Weissnat Welch West White Wiegand
+ Wilderman Wilkinson Will Williamson Willms Windler Wintheiser Wisoky Wisozk
+ Witting Wiza Wolf Wolff Wuckert Wunsch Wyman Yost Yundt Zboncak Zemlak
+ Ziemann Zieme Zulauf)
+ PREFIXES = k %w(Mr. Mrs. Ms. Miss Dr.)
+ end
33 lib/faker/phone_number.rb
@@ -0,0 +1,33 @@
+module Faker
+ module PhoneNumber
+ extend ModuleUtils
+ extend self
+ def phone_number
+ Faker.numerify(Formats.rand)
+ end
+ FORMATS = k [
+ '###-###-####',
+ '(###)###-####',
+ '1-###-###-####',
+ '###.###.####',
+ '###-###-####',
+ '(###)###-####',
+ '1-###-###-####',
+ '###.###.####',
+ '###-###-#### x###',
+ '(###)###-#### x###',
+ '1-###-###-#### x###',
+ '###.###.#### x###',
+ '###-###-#### x####',
+ '(###)###-#### x####',
+ '1-###-###-#### x####',
+ '###.###.#### x####',
+ '###-###-#### x#####',
+ '(###)###-#### x#####',
+ '1-###-###-#### x#####',
+ '###.###.#### x#####'
+ ]
+ end
45 lib/faker/utils/array_utils.rb
@@ -0,0 +1,45 @@
+module Faker
+ module ArrayUtils
+ def self.const_array(argument)
+ array = argument.is_a?(Array) ? argument : argument.to_a
+ array.extend ArrayUtils
+ array.freeze_all
+ array
+ end
+ def self.random_pick(array, n)
+ indexes = (0...array.length).sort_by{Kernel.rand}[0...n]
+ { |n| array[n].dup }
+ end
+ def self.rand(array)
+ array[Kernel.rand(array.length)].dup
+ end
+ def self.freeze_all(array)
+ array.each { |e| e.freeze }
+ array.freeze
+ array
+ end
+ def self.shuffle(array)
+ array.sort_by{Kernel.rand}
+ end
+ def random_pick(n)
+ ArrayUtils.random_pick(self, n)
+ end
+ def rand
+ ArrayUtils.rand(self)
+ end
+ def freeze_all
+ ArrayUtils.freeze_all(self)
+ end
+ def shuffle
+ ArrayUtils.shuffle(self)
+ end
+ end
9 lib/faker/utils/module_utils.rb
@@ -0,0 +1,9 @@
+require 'faker/utils/array_utils'
+module Faker
+ module ModuleUtils
+ def k(arg)
+ Faker::ArrayUtils.const_array(arg)
+ end
+ end
9 lib/faker/version.rb
@@ -0,0 +1,9 @@
+module Faker #:nodoc:
+ module VERSION #:nodoc:
+ MAJOR = 0
+ MINOR = 3
+ TINY = 2
+ STRING = [MAJOR, MINOR, TINY].join('.')
+ end
1  lib/ffaker.rb
@@ -0,0 +1 @@
+require 'faker'
12 scripts/benchmark.rb
@@ -0,0 +1,12 @@
+require File.dirname(__FILE__) + '/../lib/faker'
+require 'benchmark'
+N = 1_000_000
+ do |rep|
+"generating #{ N } names") do
+ N.times do
+ end
+ end
2  scripts/
@@ -0,0 +1,2 @@
+ruby-prof -pcall_tree profiling.rb
7 scripts/profiling.rb
@@ -0,0 +1,7 @@
+require File.dirname(__FILE__) + '/../lib/faker'
+N = 1_000_000
+N.times do
7 test/test_faker.rb
@@ -0,0 +1,7 @@
+require File.dirname(__FILE__) + '/test_helper.rb'
+class TestFaker < Test::Unit::TestCase
+ def test_numerify
+ assert Faker.numerify('###').match(/\d{3}/)
+ end
35 test/test_faker_internet.rb
@@ -0,0 +1,35 @@
+require File.dirname(__FILE__) + '/test_helper.rb'
+class TestFakerInternet < Test::Unit::TestCase
+ def setup
+ @tester = Faker::Internet
+ end
+ def test_email
+ assert\.\w+/)
+ end
+ def test_free_email
+ assert @tester.free_email.match(/.+@(gmail|hotmail|yahoo)\.com/)
+ end
+ def test_user_name
+ assert @tester.user_name.match(/[a-z]+((_|\.)[a-z]+)?/)
+ end
+ def test_user_name_with_arg
+ assert @tester.user_name('bo peep').match(/(bo(_|\.)peep|peep(_|\.)bo)/)
+ end
+ def test_domain_name
+ assert @tester.domain_name.match(/\w+\.\w+/)
+ end
+ def test_domain_word
+ assert @tester.domain_word.match(/^\w+$/)
+ end
+ def test_domain_suffix
+ assert @tester.domain_suffix.match(/^\w+(\.\w+)?/)
+ end
19 test/test_faker_name.rb
@@ -0,0 +1,19 @@
+require File.dirname(__FILE__) + '/test_helper.rb'
+class TestFakerName < Test::Unit::TestCase
+ def setup
+ @tester = Faker::Name
+ end
+ def test_name
+ assert\w+\.? ?){2,3}/)
+ end
+ def test_prefix
+ assert @tester.prefix.match(/[A-Z][a-z]+\.?/)
+ end
+ def test_suffix
+ assert @tester.suffix.match(/[A-Z][a-z]*\.?/)
+ end
7 test/test_ffaker.rb
@@ -1,7 +0,0 @@
-require 'helper'
-class TestFfaker < Test::Unit::TestCase
- def test_something_for_real
- flunk "hey buddy, you should probably rename this file and start testing for real"
- end
2  test/test_helper.rb
@@ -0,0 +1,2 @@
+require 'test/unit'
+require File.dirname(__FILE__) + '/../lib/faker'
Please sign in to comment.
Something went wrong with that request. Please try again.