module Belka

Constants

VERSION

Public Class Methods

numerify(number_string) click to toggle source
# File lib/belka.rb, line 2
def self.numerify(number_string)
  number_string.gsub('#') { rand(10).to_s }
end
pick(variants) click to toggle source
# File lib/belka.rb, line 6
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
pick_multi(variants, count) click to toggle source
# File lib/belka.rb, line 21
def self.pick_multi(variants, count)
  variants.shuffle.take(count)
end
weighted_pick(variants) click to toggle source
# File lib/belka.rb, line 25
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