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