Class: DummyLogGenerator::Random
- Inherits:
-
Object
- Object
- DummyLogGenerator::Random
- Defined in:
- lib/dummy_log_generator/generator.rb
Instance Method Summary collapse
- #any(any) ⇒ Object
- #datetime(format: "%Y-%m-%d %H:%M:%S.%3N", random: false, value: nil) ⇒ Object
- #float(format: nil, range: nil, value: nil) ⇒ Object
-
#initialize ⇒ Random
constructor
A new instance of Random.
- #integer(format: nil, range: nil, countup: false, value: nil) ⇒ Object
- #rand(arg = nil) ⇒ Object
- #range(range) ⇒ Object
- #string(length: 8, any: nil, value: nil) ⇒ Object
Constructor Details
#initialize ⇒ Random
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 |