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



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

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

.date_stringObject



104
105
106
# File 'lib/assert/factory.rb', line 104

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

.datetime_stringObject



108
109
110
# File 'lib/assert/factory.rb', line 108

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

.dir_path_string(length = nil) ⇒ Object



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

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

.file_name_string(length = nil) ⇒ Object



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

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

.file_path_stringObject



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

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



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

def self.float(max = nil)
  (self.integer((max || 100) - 1) + rand).to_f
end

.hex_string(length = nil) ⇒ Object



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

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



95
96
97
# File 'lib/assert/factory.rb', line 95

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

.slug_string(length = nil) ⇒ Object



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

def self.slug_string(length = nil)
  length ||= 8
  self.string(length).scan(/.{1,4}/).join('-')
end

.string(length = nil) ⇒ Object



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

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

.time_stringObject



112
113
114
# File 'lib/assert/factory.rb', line 112

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

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



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

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