如何使用Ruby创建电子邮件地址生成器?

时间:2015-01-07 16:26:01

标签: ruby-on-rails ruby email generator

  def emails
    i = 0
    number = rand(252...4350)

    males = ["tom", "jack", "adam"]
    females = ["elizabeth", "rose", "juliet"]

    surnameMales = ["oak", "yew", "timber"]
    surnameFemales = ["rosewelth", "gates", "jobs"]

    providers = ["gmail.com", "hotmail.com", "yahoo.com"]

    while i <= 100 do
      @addresses << 
    end
  end

我想做的是选择一个随机数,名字,姓氏和提供者并将它们放在一起+在姓氏的末尾添加一个随机数,以便它看起来像这样:{{1}但是,有点卡在我必须把整个事情放在一起的地方。您可以告诉我,我想创建一个rose.gates643@gmail.com随机电子邮件用于测试目的。

您能否指出我如何能够完成我对100的打算?

3 个答案:

答案 0 :(得分:10)

您的目标是将此作为练习吗?或者这只是您尝试完成的事情?如果是后者,请安装faker gem并使用它:

Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"

100:

100.times.map { Faker::Internet.email }

答案 1 :(得分:2)

使用字符串插值和Array#sample的组合。

"#{females.sample}.#{surnameFemales.sample}#{rand(252...4350)}@#{providers.sample}"
>> "rose.rosewelth3266@gmail.com"

答案 2 :(得分:1)

有一个couple ways to join strings in Ruby。内联占位符似乎在这里最有意义:

@addressess << "#{ males.sample }.#{ surnameMales.sample }#{ number }@#{ providers.sample }"

在双引号字符串中,#{ expr }被评估并以内联为子。例如,"#{ 1 + 1 }"输出"2"

还有几种方法可以区分男性或女性 - 例如,检查随机数是偶数还是奇数:

name = if rand(1..100) % 2 == 0 ? "#{ males.sample }.#{ surnameMales.sample }" : "#{ females.sample }.#{ surnameFemales.sample }"
@addresses << "#{ name }#{ number }@#{ providers.sample }"