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.



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

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



170
171
172
# File 'lib/dummy_log_generator/generator.rb', line 170

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

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



147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'lib/dummy_log_generator/generator.rb', line 147

def datetime(format: "%Y-%m-%d %H:%M:%S.%3N", random: false, value: nil)
  if value
    Proc.new { value.sprintf(format) }
  elsif random
    Proc.new {
      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
    Proc.new { Time.now }
  end
end

#float(format: nil, range: nil, value: nil) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/dummy_log_generator/generator.rb', line 125

def float(format: nil, range: nil, value: nil)
  if format
    if value
      float = value.to_f
      Proc.new { sprintf(format, float) }
    elsif range
      Proc.new { sprintf(format, self.range(range)) }
    else
      Proc.new { r = rand(1..358); sprintf(format, r * Math.cos(r)) }
    end
  else
    if value
      float = value.to_f
      Proc.new { float }
    elsif range
      Proc.new { self.range(range) }
    else
      Proc.new { r = rand(1..358); r * Math.cos(r) }
    end
  end
end

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



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/dummy_log_generator/generator.rb', line 99

def integer(format: nil, range: nil, countup: false, value: nil)
  if format
    if value
      integer = sprintf(format, value.to_i)
      Proc.new { integer }
    elsif range
      Proc.new { sprintf(format, self.range(range)) }
    elsif countup
      Proc.new {|prev| sprintf(format, prev.to_i + 1) }
    else
      Proc.new { sprintf(format, rand(0..2,147,483,647)) }
    end
  else
    if value
      integer = value.to_i
      Proc.new { integer }
    elsif range
      Proc.new { self.range(range) }
    elsif countup
      Proc.new {|prev| prev + 1 }
    else
      Proc.new { rand(0..2,147,483,647) }
    end
  end
end

#rand(arg = nil) ⇒ Object



174
175
176
# File 'lib/dummy_log_generator/generator.rb', line 174

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

#range(range) ⇒ Object



166
167
168
# File 'lib/dummy_log_generator/generator.rb', line 166

def range(range)
  rand(range)
end

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



88
89
90
91
92
93
94
95
96
97
# File 'lib/dummy_log_generator/generator.rb', line 88

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