Module: Assert::Factory::Random

Defined in:
lib/assert/factory.rb

Constant Summary collapse

DICTIONARY =
[*'a'..'z'].freeze

Class Method Summary collapse

Class Method Details

.binaryObject



155
156
157
# File 'lib/assert/factory.rb', line 155

def self.binary
  [ self.integer(10000) ].pack('N*')
end

.date_stringObject



110
111
112
# File 'lib/assert/factory.rb', line 110

def self.date_string
  Time.now.strftime("%Y-%m-%d")
end

.datetime_stringObject



114
115
116
# File 'lib/assert/factory.rb', line 114

def self.datetime_string
  Time.now.strftime("%Y-%m-%d %H:%M:%S")
end

.dir_path_string(length = nil) ⇒ Object



137
138
139
140
# File 'lib/assert/factory.rb', line 137

def self.dir_path_string(length = nil)
  length ||= 12
  File.join(*self.string(length).scan(/.{1,4}/))
end

.email_string(domain = nil, length = nil) ⇒ Object



150
151
152
153
# File 'lib/assert/factory.rb', line 150

def self.email_string(domain = nil, length = nil)
  domain ||= "#{self.string(5)}.com"
  "#{self.string(length)}@#{domain}"
end

.file_name_string(length = nil) ⇒ Object



132
133
134
135
# File 'lib/assert/factory.rb', line 132

def self.file_name_string(length = nil)
  length ||= 6
  "#{self.string(length)}.#{self.string(3)}"
end

.file_path_stringObject



142
143
144
# File 'lib/assert/factory.rb', line 142

def self.file_path_string
  File.join(self.dir_path_string, self.file_name_string)
end

.float(max = nil) ⇒ Object

‘rand` with no args gives a float between 0 and 1



106
107
108
# File 'lib/assert/factory.rb', line 106

def self.float(max = nil)
  (max || 100).to_f * rand
end

.hex_string(length = nil) ⇒ Object



127
128
129
130
# File 'lib/assert/factory.rb', line 127

def self.hex_string(length = nil)
  length ||= 10
  self.integer(("f" * length).hex - 1).to_s(16).rjust(length, '0')
end

.integer(max = nil) ⇒ Object

rand given a max int value returns integers between 0 and max-1



101
102
103
# File 'lib/assert/factory.rb', line 101

def self.integer(max = nil)
  rand(max || 32_766) + 1
end

.string(length = nil) ⇒ Object



123
124
125
# File 'lib/assert/factory.rb', line 123

def self.string(length = nil)
  [*0..((length || 10) - 1)].map{ |n| DICTIONARY[rand(DICTIONARY.size)] }.join
end

.time_stringObject



118
119
120
# File 'lib/assert/factory.rb', line 118

def self.time_string
  Time.now.strftime("%H:%M:%S")
end

.url_string(host = nil, length = nil) ⇒ Object



146
147
148
# File 'lib/assert/factory.rb', line 146

def self.url_string(host = nil, length = nil)
  File.join(host.to_s, self.dir_path_string(length))
end