Class: Faker::Number

Inherits:
Base
  • Object
show all
Defined in:
lib/faker/default/number.rb

Constant Summary

Constants inherited from Base

Base::Letters, Base::Numbers, Base::ULetters

Class Method Summary collapse

Methods inherited from Base

bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, translate, unique, with_locale

Class Method Details

.between(from = 1.00, to = 5000.00) ⇒ Object



58
59
60
# File 'lib/faker/default/number.rb', line 58

def between(from = 1.00, to = 5000.00)
  Faker::Base.rand_in_range(from, to)
end

.decimal(l_digits = 5, r_digits = 2) ⇒ Object



30
31
32
33
34
35
# File 'lib/faker/default/number.rb', line 30

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) ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/faker/default/number.rb', line 21

def decimal_part(digits = 10)
  num = ''
  if digits > 1
    num = non_zero_digit
    digits -= 1
  end
  leading_zero_number(digits) + num
end

.digitObject



41
42
43
# File 'lib/faker/default/number.rb', line 41

def digit
  rand(10).to_s
end

.hexadecimal(digits = 6) ⇒ Object



45
46
47
48
49
# File 'lib/faker/default/number.rb', line 45

def hexadecimal(digits = 6)
  hex = ''
  digits.times { hex += rand(15).to_s(16) }
  hex
end

.leading_zero_number(digits = 10) ⇒ Object



17
18
19
# File 'lib/faker/default/number.rb', line 17

def leading_zero_number(digits = 10)
  '0' + (2..digits).collect { digit }.join
end

.negative(from = -5000.00,, to = -1.00)) ⇒ Object



72
73
74
75
76
# File 'lib/faker/default/number.rb', line 72

def negative(from = -5000.00, to = -1.00)
  random_number = between(from, to)

  less_than_zero(random_number)
end

.non_zero_digitObject



37
38
39
# File 'lib/faker/default/number.rb', line 37

def non_zero_digit
  rand(1..9).to_s
end

.normal(mean = 1, standard_deviation = 1) ⇒ Object



51
52
53
54
55
56
# File 'lib/faker/default/number.rb', line 51

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) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/faker/default/number.rb', line 6

def number(digits = 10)
  num = ''

  if digits > 1
    num = non_zero_digit
    digits -= 1
  end

  num + (1..digits).collect { digit }.join
end

.positive(from = 1.00, to = 5000.00) ⇒ Object



66
67
68
69
70
# File 'lib/faker/default/number.rb', line 66

def positive(from = 1.00, to = 5000.00)
  random_number = between(from, to)

  greater_than_zero(random_number)
end

.within(range = 1.00..5000.00) ⇒ Object



62
63
64
# File 'lib/faker/default/number.rb', line 62

def within(range = 1.00..5000.00)
  between(range.min, range.max)
end