class Faker::Internet

Public Class Methods

domain_name() click to toggle source
# File lib/faker/internet.rb, line 55
def domain_name
  [ fix_umlauts(domain_word), domain_suffix ].join('.')
end
domain_suffix() click to toggle source
# File lib/faker/internet.rb, line 74
def domain_suffix
  fetch('internet.domain_suffix')
end
domain_word() click to toggle source
# File lib/faker/internet.rb, line 70
def domain_word
  Company.name.split(' ').first.gsub(/\W/, '').downcase
end
email(name = nil) click to toggle source
# File lib/faker/internet.rb, line 4
def email(name = nil)
  [ user_name(name), domain_name ].join('@')
end
fix_umlauts(string) click to toggle source
# File lib/faker/internet.rb, line 59
def fix_umlauts(string)
  string.gsub(/[äöüß]/) do |match|
      case match.downcase
          when "ä" 'ae'
          when "ö" 'oe'
          when "ü" 'ue'
          when "ß" 'ss'
      end
  end
end
free_email(name = nil) click to toggle source
# File lib/faker/internet.rb, line 8
def free_email(name = nil)
  [ user_name(name), fetch('internet.free_email') ].join('@')
end
ip_v4_address() click to toggle source
# File lib/faker/internet.rb, line 84
def ip_v4_address
  ary = (2..254).to_a
  [ary.sample,
  ary.sample,
  ary.sample,
  ary.sample].join('.')
end
ip_v6_address() click to toggle source
# File lib/faker/internet.rb, line 92
def ip_v6_address
  @@ip_v6_space ||= (0..65535).to_a
  container = (1..8).map{ |_| @@ip_v6_space.sample }
  container.map{ |n| n.to_s(16) }.join(':')
end
mac_address(prefix='') click to toggle source
# File lib/faker/internet.rb, line 78
def mac_address(prefix='')
  prefix_digits = prefix.split(':').map{ |d| d.to_i(16) }
  address_digits = (6 - prefix_digits.size).times.map{ rand(256) }
  (prefix_digits + address_digits).map{ |d| '%02x' % d }.join(':')
end
password(min_length=0) click to toggle source
# File lib/faker/internet.rb, line 47
def password(min_length=0)
  temp = Lorem.words.join
  while temp.length < min_length
    temp += Lorem.word
  end
  return temp
end
safe_email(name = nil) click to toggle source
# File lib/faker/internet.rb, line 12
def safe_email(name = nil)
  [user_name(name), 'example.'+ %w[org com net].shuffle.first].join('@')
end
slug(words = nil, glue = nil) click to toggle source
# File lib/faker/internet.rb, line 102
def slug(words = nil, glue = nil)
  glue ||= %w[- _ .].sample
  (words || Faker::Lorem::words(2).join(' ')).gsub(' ', glue).downcase
end
url(host = domain_name, path = "/ click to toggle source
# File lib/faker/internet.rb, line 98
def url(host = domain_name, path = "/#{user_name}")
  "http://#{host}#{path}"
end
user_name(specifier = nil, separators = %w(. _)) click to toggle source
# File lib/faker/internet.rb, line 16
def user_name(specifier = nil, separators = %w(. _))
  if specifier.kind_of? String
    return specifier.scan(/\w+/).shuffle.join(separators.sample).downcase
  elsif specifier.kind_of? Integer
    tries = 0 # Don't try forever in case we get something like 1_000_000.
    begin
      result = user_name nil, separators
      tries += 1
    end while result.length < specifier and tries < 7
    until result.length >= specifier
      result = result * 2
    end
    return result
  elsif specifier.kind_of? Range
    tries = 0
    begin
      result = user_name specifier.min, separators
      tries += 1
    end while not specifier.include? result.length and tries < 7
    return result[0...specifier.max]
  end

  fix_umlauts([
    Proc.new { Name.first_name.gsub(/\W/, '').downcase },
    Proc.new {
      [ Name.first_name, Name.last_name ].map {|n|
        n.gsub(/\W/, '')
      }.join(separators.sample).downcase }
  ].sample.call)
end