Sha256: e29d3d06173ddab161b6cae241108c1cff45e8f258dcbbf741ca630e6d7a5d1d

Contents?: true

Size: 949 Bytes

Versions: 2

Compression:

Stored size: 949 Bytes

Contents

module Belka
  def self.numerify(number_string)
    number_string.gsub('#') { rand(10).to_s }
  end

  def self.pick(variants)
    case variants
    when Array
      variants[rand(variants.size)]
    when String
      variants[rand(variants.length),1]
    when Range
      if variants.exclude_end?
        rand(variants.last - variants.first) + variants.first
      else
        rand((variants.last+1) - variants.first) + variants.first
      end
    end
  end

  def self.pick_multi(variants, count)
    variants.shuffle.take(count)
  end

  def self.weighted_pick(variants)
    total_sum = variants.inject(0) { |sum, var| sum + var[1] }
    rnd = rand(total_sum)

    sum = 0
    variants.each do |var|
      sum += var[1]
      return var[0] if rnd < sum
    end

    # этого не может быть
    raise
  end
end

require 'belka/data'
require 'belka/name'
require 'belka/phone_number'
require 'belka/address'
require 'belka/company'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
belka-0.0.4 lib/belka.rb
belka-0.0.2 lib/belka.rb