class FactoryHelper::Internet

Public Class Methods

device_token() click to toggle source
# File lib/factory-helper/internet.rb, line 108
def device_token
  FactoryHelper::Config.random.rand(16 ** 64).to_s(16).rjust(64, '0').
    chars.to_a.shuffle(:random => FactoryHelper::Config.random).join
end
domain_name() click to toggle source
# File lib/factory-helper/internet.rb, line 67
def domain_name
  [ fix_umlauts(domain_word), domain_suffix ].join('.')
end
domain_suffix() click to toggle source
# File lib/factory-helper/internet.rb, line 71
def domain_suffix
  fetch('internet.domain_suffix')
end
domain_word() click to toggle source
# File lib/factory-helper/internet.rb, line 117
def domain_word
  Lorem.word
end
email(name = nil) click to toggle source
# File lib/factory-helper/internet.rb, line 6
def email(name = nil)
  [ email_word, domain_name ].join('@')
end
fix_umlauts(string= '') click to toggle source
# File lib/factory-helper/internet.rb, line 113
def fix_umlauts string= ''
  fix_umlauts! string.dup
end
free_email(name = nil) click to toggle source
# File lib/factory-helper/internet.rb, line 10
def free_email(name = nil)
  [ user_name(name), fetch('internet.free_email') ].join('@')
end
ip_v4_address() click to toggle source
# File lib/factory-helper/internet.rb, line 83
def ip_v4_address
  ary = (2..254).to_a
  [ary.sample(:random => FactoryHelper::Config.random),
  ary.sample(:random => FactoryHelper::Config.random),
  ary.sample(:random => FactoryHelper::Config.random),
  ary.sample(:random => FactoryHelper::Config.random)].join('.')
end
ip_v6_address() click to toggle source
# File lib/factory-helper/internet.rb, line 91
def ip_v6_address
  @@ip_v6_space ||= (0..65535).to_a
  container = (1..8).map do |_|
    @@ip_v6_space.sample(:random => FactoryHelper::Config.random)
  end
  container.map{ |n| n.to_s(16) }.join(':')
end
mac_address(prefix='') click to toggle source
# File lib/factory-helper/internet.rb, line 75
def mac_address(prefix='')
  prefix_digits = prefix.split(':').map{ |d| d.to_i(16) }
  address_digits = (6 - prefix_digits.size).times.map do
    FactoryHelper::Config.random.rand(256)
  end
  (prefix_digits + address_digits).map{ |d| '%02x' % d }.join(':')
end
password(min_length = 8, max_length = 16) click to toggle source
# File lib/factory-helper/internet.rb, line 56
def password(min_length = 8, max_length = 16)
  temp = Lorem.characters(min_length)
  diff_length = max_length - min_length
  if diff_length > 0
    diff_rand = FactoryHelper::Config.random.rand(diff_length + 1)
    temp += Lorem.characters(diff_rand)
  end
  temp = temp[0..min_length] if min_length > 0
  return temp
end
safe_email(name = nil) click to toggle source
# File lib/factory-helper/internet.rb, line 14
def safe_email(name = nil)
  [
    user_name(name),
    'example.'+ %w[org com net].
      shuffle(:random => FactoryHelper::Config.random).first
  ].join('@')
end
slug(words = nil, glue = nil) click to toggle source
# File lib/factory-helper/internet.rb, line 103
def slug(words = nil, glue = nil)
  glue ||= %w[- _ .].sample(:random => FactoryHelper::Config.random)
  (words || FactoryHelper::Lorem::words(2).join(' ')).gsub(' ', glue).downcase
end
url(host = domain_name, path = "/ click to toggle source
# File lib/factory-helper/internet.rb, line 99
def url(host = domain_name, path = "/#{user_name}")
  "http://#{host}#{path}"
end
user_name(specifier = nil, separators = %w(. _)) click to toggle source
# File lib/factory-helper/internet.rb, line 22
def user_name(specifier = nil, separators = %w(. _))
  if specifier.kind_of? ::String
    return specifier.scan(/\w+/).
      shuffle(:random => FactoryHelper::Config.random).
      join(separators.sample(:random => FactoryHelper::Config.random)).
      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(:random => FactoryHelper::Config.random)).downcase }
  ].sample(:random => FactoryHelper::Config.random).call)
end

Private Class Methods

email_word() click to toggle source
# File lib/factory-helper/internet.rb, line 123
def email_word
  name= Name.first_name.downcase
  return name unless name.empty?
  I18n.with_locale('en') do
    return Name.first_name.downcase
  end
end
fix_umlauts!(string= ''.dup) click to toggle source
# File lib/factory-helper/internet.rb, line 131
def fix_umlauts! string= ''.dup
  {"ä" => 'ae', "ö" => 'oe', "ü" => 'ue', "ß" => 'ss'}.each do |key, val|
    string.gsub!(key.downcase, val.downcase)
    string.gsub!(key.upcase, val.upcase)
  end
  string
end