Skip to content

Commit

Permalink
Initial import
Browse files Browse the repository at this point in the history
  • Loading branch information
stympy committed Nov 21, 2007
0 parents commit cf71d27
Show file tree
Hide file tree
Showing 28 changed files with 2,667 additions and 0 deletions.
4 changes: 4 additions & 0 deletions History.txt
@@ -0,0 +1,4 @@
== 0.1.0 2007-11-15

* 1 major enhancement:
* Initial release
20 changes: 20 additions & 0 deletions License.txt
@@ -0,0 +1,20 @@
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
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 changes: 24 additions & 0 deletions Manifest.txt
@@ -0,0 +1,24 @@
History.txt
License.txt
Manifest.txt
README.txt
Rakefile
config/hoe.rb
config/requirements.rb
lib/faker.rb
lib/faker/version.rb
log/debug.log
script/destroy
script/generate
script/txt2html
setup.rb
tasks/deployment.rake
tasks/environment.rake
tasks/website.rake
test/test_faker.rb
test/test_helper.rb
website/index.html
website/index.txt
website/javascripts/rounded_corners_lite.inc.js
website/stylesheets/screen.css
website/template.rhtml
16 changes: 16 additions & 0 deletions README.txt
@@ -0,0 +1,16 @@
Faker
=====

A port of Perl's Data::Faker library that generates fake data.

Current generators:
* Names: Full (default), first, and last
* Phone numbers

Usage
=====
> Faker::Name
=> Christophe Bartell

> Faker::Name.first
=>
4 changes: 4 additions & 0 deletions Rakefile
@@ -0,0 +1,4 @@
require 'config/requirements'
require 'config/hoe' # setup Hoe + all gem configuration

Dir['tasks/**/*.rake'].each { |rake| load rake }
71 changes: 71 additions & 0 deletions config/hoe.rb
@@ -0,0 +1,71 @@
require 'faker/version'

AUTHOR = 'Benjamin Curtis' # can also be an array of Authors
EMAIL = "benjamin.curtis@gmail.com"
DESCRIPTION = "A port of Perl's Data::Faker - Generates fake names, phone numbers, etc."
GEM_NAME = 'faker' # what ppl will type to install your gem
RUBYFORGE_PROJECT = 'faker' # The unix name for your project
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"

@config_file = "~/.rubyforge/user-config.yml"
@config = nil
RUBYFORGE_USERNAME = "unknown"
def rubyforge_username
unless @config
begin
@config = YAML.load(File.read(File.expand_path(@config_file)))
rescue
puts <<-EOS
ERROR: No rubyforge config file found: #{@config_file}
Run 'rubyforge setup' to prepare your env for access to Rubyforge
- See http://newgem.rubyforge.org/rubyforge.html for more details
EOS
exit
end
end
RUBYFORGE_USERNAME.replace @config["username"]
end


REV = nil
# UNCOMMENT IF REQUIRED:
# REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil
VERS = Faker::VERSION::STRING + (REV ? ".#{REV}" : "")
RDOC_OPTS = ['--quiet', '--title', 'faker documentation',
"--opname", "index.html",
"--line-numbers",
"--main", "README",
"--inline-source"]

class Hoe
def extra_deps
@extra_deps.reject! { |x| Array(x).first == 'hoe' }
@extra_deps
end
end

# Generate all the Rake tasks
# Run 'rake -T' to see list of generated tasks (from gem root directory)
hoe = Hoe.new(GEM_NAME, VERS) do |p|
p.author = AUTHOR
p.description = DESCRIPTION
p.email = EMAIL
p.summary = DESCRIPTION
p.url = HOMEPATH
p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
p.test_globs = ["test/**/test_*.rb"]
p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean.

# == Optional
p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
#p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]

#p.spec_extras = {} # A hash of extra values to set in the gemspec.

end

CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n")
PATH = (RUBYFORGE_PROJECT == GEM_NAME) ? RUBYFORGE_PROJECT : "#{RUBYFORGE_PROJECT}/#{GEM_NAME}"
hoe.remote_rdoc_dir = File.join(PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,''), 'rdoc')
hoe.rsync_args = '-av --delete --ignore-errors'
17 changes: 17 additions & 0 deletions config/requirements.rb
@@ -0,0 +1,17 @@
require 'fileutils'
include FileUtils

require 'rubygems'
%w[rake hoe newgem rubigen].each do |req_gem|
begin
require req_gem
rescue LoadError
puts "This Rakefile requires the '#{req_gem}' RubyGem."
puts "Installation: gem install #{req_gem} -y"
exit
end
end

$:.unshift(File.join(File.dirname(__FILE__), %w[.. lib]))

require 'faker'
6 changes: 6 additions & 0 deletions lib/extensions/array.rb
@@ -0,0 +1,6 @@
# Thank you facets!
class Array
def at_rand
self.at(rand(self.length))
end
end
14 changes: 14 additions & 0 deletions lib/faker.rb
@@ -0,0 +1,14 @@
$:.unshift File.dirname(__FILE__)

require 'faker/name'
require 'faker/phone_number'
require 'faker/company'
require 'faker/address'

require 'extensions/array'

module Faker
def self.numerify(number_string)
number_string.gsub(/#/) { rand(10).to_s }
end
end
40 changes: 40 additions & 0 deletions lib/faker/address.rb
@@ -0,0 +1,40 @@
module Faker
class Address
class << self
def zip_code
Faker.numerify(['#####', '#####-####'].at_rand)
end

def us_state
['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'].at_rand
end

def us_state_abbr
%w(AL AK AS AZ AR CA CO CT DE DC FM FL GA GU HI ID IL IN IA KS KY LA ME MH MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND MP OH OK OR PW PA PR RI SC SD TN TX UT VT VI VA WA WV WI WY AE AA AP).at_rand
end

def street_suffix
%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).at_rand
end

def street_name
[
Proc.new { [Name.last_name, street_suffix].join(' ') },
Proc.new { [Name.first_name, street_suffix].join(' ') }
].at_rand.call
end

def street_address
Faker.numerify([
Proc.new { '##### %s' % street_name },
Proc.new { '##### %s' % street_name },
Proc.new { '##### %s' % street_name },
Proc.new { '##### %s' % street_name },
Proc.new { '##### %s Apt. ###' % street_name },
Proc.new { '##### %s Suite ###' % street_name }
].at_rand.call)
end

end
end
end
19 changes: 19 additions & 0 deletions lib/faker/company.rb
@@ -0,0 +1,19 @@
module Faker
class Company
class << self
def name
Formats.at_rand.call
end

def suffix
%w(Inc and\ Sons LLC Group).at_rand
end
end

Formats = [
Proc.new { [ Name.last_name, suffix ].join(' ') },
Proc.new { [ Name.last_name, Name.last_name ].join('-') },
Proc.new { "%s, %s and %s" % [ Name.last_name, Name.last_name, Name.last_name ] }
]
end
end
38 changes: 38 additions & 0 deletions lib/faker/name.rb

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions lib/faker/phone_number.rb
@@ -0,0 +1,33 @@
module Faker
class PhoneNumber
class << self
def phone_number
Faker.numerify(Formats.at_rand)
end
end


Formats = [
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-#### x###',
'(###)###-#### x###',
'1-###-###-#### x###',
'###.###.#### x###',
'###-###-#### x####',
'(###)###-#### x####',
'1-###-###-#### x####',
'###.###.#### x####',
'###-###-#### x#####',
'(###)###-#### x#####',
'1-###-###-#### x#####',
'###.###.#### x#####'
]
end
end
9 changes: 9 additions & 0 deletions lib/faker/version.rb
@@ -0,0 +1,9 @@
module Faker #:nodoc:
module VERSION #:nodoc:
MAJOR = 0
MINOR = 1
TINY = 0

STRING = [MAJOR, MINOR, TINY].join('.')
end
end
14 changes: 14 additions & 0 deletions script/destroy
@@ -0,0 +1,14 @@
#!/usr/bin/env ruby
APP_ROOT = File.join(File.dirname(__FILE__), '..')

begin
require 'rubigen'
rescue LoadError
require 'rubygems'
require 'rubigen'
end
require 'rubigen/scripts/destroy'

ARGV.shift if ['--help', '-h'].include?(ARGV[0])
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
RubiGen::Scripts::Destroy.new.run(ARGV)
14 changes: 14 additions & 0 deletions script/generate
@@ -0,0 +1,14 @@
#!/usr/bin/env ruby
APP_ROOT = File.join(File.dirname(__FILE__), '..')

begin
require 'rubigen'
rescue LoadError
require 'rubygems'
require 'rubigen'
end
require 'rubigen/scripts/generate'

ARGV.shift if ['--help', '-h'].include?(ARGV[0])
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
RubiGen::Scripts::Generate.new.run(ARGV)

0 comments on commit cf71d27

Please sign in to comment.