= random_data
This gem provides a Random singleton class with a series of methods for generating random test data including names, mailing addresses, dates, phone numbers, e-mail addresses, and text. Instead of:
foo.name = "John Doe"
You get:
foo.name = "#{Random.firstname} #{Random.initial} #{Random.lastname}"
== Installation
sudo gem install random_data
or get the gem manually from http://rubyforge.org/frs/?group_id=4458
== Methods
=== Contact Methods
Random.phone, Random.international_phone, Random.email
=== Time/Date Methods
Random.date, Random.date_between, Random.departure_and_return_dates, Random.adt_chd_inf_birthday
=== Location Methods
Random.address_line_1, Random.address_line_2, Random.zipcode, Random.uk_post_code, Random.state_code, Random.state_full, Random.country, Random.city
=== Name Methods
Random.firstname, Random.firstname_male, Random.firstname_female, Random.initial, Random.lastname
=== Text Methods
Random.alphanumeric, Random.paragraphs
=== Grammatical Methods
Random.grammatical_construct
=== Number Methods
Random.number, Random.bit, Random.bits, Random.cpf, Random.random_card_number
Random.random_number_with_size(20) # => "25895277473360037460"
=== Boolean Methods
Random.boolean
=== Markov Generator Methods
Random.MarkovGenerator.new
Random.MarkovGenerator.insert
Random.MarkovGenerator.generate
=== Array Extension
Array.rand
Array.roulette
=== Choose From File Methods
Random implements a method_missing helper that will choose a line at random from a file in your load path. See Random::method_missing for details.
Note that some methods take parameters to bound or limit the amount of data returned. See RDocs for details.
== Examples of Some Methods
>>Random.alphanumeric
=> "cfbutm3vYfhZXil0"
>> Random.alphanumeric(5)
=> "XYVyn"
>> Random.paragraphs
=> "Ulysses, fighting evil and tyranny with all his power and with all of his might. Ulysses, fighting evil and tyranny with all his power and with all
of his might. \n\nHe's got style, a groovy style, and a car that just won't stop. \n\n"
>> Random.paragraphs(3)
=> "Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum. Down the road that's where I'll always be.
He's got style, a groovy style, and a car that just won't stop. I've gotten burned over Cheryl Tiegs and blown up for Raquel Welch, but when I end up in the
hay it's only hay hey hey. Hey there where ya goin, not exactly knowin'. \n\nLorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. I might jump an open drawbridge or Tarzan from a vine, beause I'm the unknown stuntman that makes Eastwood look so
fine. He just keeps on movin' and ladies keep improvin'. Rolling down to Dallas - who is providin my palace?. Every stop I make I make a new friend; Can't
stay for long just turn around and I'm gone again. \n\nAlways fighting all the evil forces bringing peace and justice to all. \n\n"
>> Random.firstname
=> "Thomas"
>> Random.initial
=> "E"
>> Random.lastname
=> "Robinson"
>> Random.date
=> Sun, 09 Sep 2007
(Returns an actual date object, shown here in its to_s form)
>> Random.date(1000)
=> Sun, 26 Nov 2006
>> Random.departure_and_return_dates
=> {
:departure_date=>#,
:return_date=>#,
:formated_departure_date=>"2015-06-27",
:formated_return_date=>"2015-07-02"
}
>> Random.departure_and_return_dates(30..40)
=> {
:departure_date=>#,
:return_date=>#,
:formated_departure_date=>"2015-05-17",
:formated_return_date=>"2015-05-24"
}
>> Random.passenger_birthdate("adult")
=> {:age => adt_age,
:month => month,
:day => rand(1..month_adt_days)
}
>> Random.email
=> "zrodriguez@example.com"
>> Random.phone
=> "564-103-8353"
>> Random.international_phone
=> "011-24-37-9704"
>> Random.address_line_1
=> "38367 Adams Rd"
>> Random.address_line_2
=> "Lot 247"
>> Random.zipcode
=> 22904
(Note that the zipcodes are totally random and may not be real zipcodes)
>> Random.state_code
=> "MD"
>> Random.state_full
=> "New Mexico"
>> Random.country
=> "Philippines"
>> Random.random_card_number("^5(?:[1-5]|[7-9])[0-9]+$", 16)
=> "5367179454341632"
== Contact
Let me know if you have patches, comments, or suggestions: mailto:mike@subelsky.com
== Special Thanks
Major thanks to Hugh Sasse and {Paul Barry}[http://paulbarry.com/] for their contributions.
== Copyright
Copyright (c) 2008 {Mike Subelsky}[http://subelsky.com/], Baltimore, Maryland, released under the MIT license.