class Faker::Number

Public Class Methods

between(from = 1.00, to = 5000.00) click to toggle source
# File lib/faker/number.rb, line 53
def between(from = 1.00, to = 5000.00)
  Faker::Base.rand_in_range(from, to)
end
decimal(l_digits = 5, r_digits = 2) click to toggle source
# File lib/faker/number.rb, line 26
def decimal(l_digits = 5, r_digits = 2)
  l_d = number(l_digits)
  r_d = decimal_part(r_digits)
  "#{l_d}.#{r_d}"
end
decimal_part(digits = 10) click to toggle source
# File lib/faker/number.rb, line 17
def decimal_part(digits = 10)
  num = ''
  if digits > 1
    num = non_zero_digit
    digits -= 1
  end
  leading_zero_number(digits) + num
end
digit() click to toggle source
# File lib/faker/number.rb, line 36
def digit
  rand(10).to_s
end
hexadecimal(digits = 6) click to toggle source
# File lib/faker/number.rb, line 40
def hexadecimal(digits = 6)
  hex = ''
  digits.times { hex += rand(15).to_s(16) }
  hex
end
leading_zero_number(digits = 10) click to toggle source
# File lib/faker/number.rb, line 13
def leading_zero_number(digits = 10)
  (1..digits).collect { digit }.join
end
negative(from = -5000.00, to = -1.00) click to toggle source
# File lib/faker/number.rb, line 62
def negative(from = -5000.00, to = -1.00)
  random_number = between(from, to)
  less_than_zero(random_number)
end
non_zero_digit() click to toggle source
# File lib/faker/number.rb, line 32
def non_zero_digit
  rand(1..9).to_s
end
normal(mean = 1, standard_deviation = 1) click to toggle source
# File lib/faker/number.rb, line 46
def normal(mean = 1, standard_deviation = 1)
  theta = 2 * Math::PI * rand
  rho = Math.sqrt(-2 * Math.log(1 - rand))
  scale = standard_deviation * rho
  mean + scale * Math.cos(theta)
end
number(digits = 10) click to toggle source
# File lib/faker/number.rb, line 4
def number(digits = 10)
  num = ''
  if digits > 1
    num = non_zero_digit
    digits -= 1
  end
  num + leading_zero_number(digits)
end
positive(from = 1.00, to = 5000.00) click to toggle source
# File lib/faker/number.rb, line 57
def positive(from = 1.00, to = 5000.00)
  random_number = between(from, to)
  greater_than_zero(random_number)
end

Private Class Methods

greater_than_zero(number) click to toggle source
# File lib/faker/number.rb, line 69
def greater_than_zero(number)
  should_be(number, :>)
end
less_than_zero(number) click to toggle source
# File lib/faker/number.rb, line 73
def less_than_zero(number)
  should_be(number, :<)
end
should_be(number, method_to_compare) click to toggle source
# File lib/faker/number.rb, line 77
def should_be(number, method_to_compare)
  if number.send(method_to_compare, 0)
    number
  else
    number * -1
  end
end