Class: DummyLogGenerator::Random

Inherits:
Object
  • Object
show all
Defined in:
lib/dummy_log_generator/generator.rb

Instance Method Summary collapse

Constructor Details

#initializeRandom

Returns a new instance of Random.



36
37
38
39
# File 'lib/dummy_log_generator/generator.rb', line 36

def initialize
  @rand = ::Random.new(0)
  @chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a # no symbols and multi-bytes for now
end

Instance Method Details

#any(any) ⇒ Object



89
90
91
# File 'lib/dummy_log_generator/generator.rb', line 89

def any(any)
  any[rand(any.size-1)]
end

#datetime(format: "%Y-%m-%d %H:%M:%S.%3N", random: false, prev: nil) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/dummy_log_generator/generator.rb', line 69

def datetime(format: "%Y-%m-%d %H:%M:%S.%3N", random: false, prev: nil)
  time = if random
           y = rand(1970..2037);
           m = rand(1..12);
           d = rand(1..27);
           h = rand(0..23);
           min = rand(0..59);
           s = rand(0..59);
           usec = rand(0..999999);
           Time.local(y, m, d, h, min, s, usec)
         else
           Time.now
         end
  time.strftime(format)
end

#float(range: nil, prev: nil) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/dummy_log_generator/generator.rb', line 60

def float(range: nil, prev: nil)
  if range
    self.range(range)
  else
    r = rand(1..358)
    r * Math.cos(r) # cheat
  end
end

#integer(range: nil, countup: false, prev: nil) ⇒ Object



49
50
51
52
53
54
55
56
57
58
# File 'lib/dummy_log_generator/generator.rb', line 49

def integer(range: nil, countup: false, prev: nil)
  if range
    self.range(range)
  elsif countup
    prev ||= -1
    prev + 1
  else
    rand(0..2,147,483,647)
  end
end

#rand(arg = nil) ⇒ Object



93
94
95
# File 'lib/dummy_log_generator/generator.rb', line 93

def rand(arg = nil)
  @rand.rand(arg)
end

#range(range) ⇒ Object



85
86
87
# File 'lib/dummy_log_generator/generator.rb', line 85

def range(range)
  rand(range)
end

#string(length: 8, any: nil, prev: nil) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/dummy_log_generator/generator.rb', line 41

def string(length: 8, any: nil, prev: nil)
  if any
    self.any(any)
  else
    Array.new(length){@chars[rand(@chars.size-1)]}.join
  end
end