module Degenerate::Generators
Constants
- GENERATORS
- HTTP_STATUSES
- INTEGER_MAX
- INTEGER_MIN
Public Class Methods
any()
click to toggle source
# File lib/degenerate/generators.rb, line 31 def self.any send(GENERATORS.sample) end
array()
click to toggle source
# File lib/degenerate/generators.rb, line 22 def self.array ->(opts={}) { limit = opts[:limit] || random_int of = Array(opts [:of] || send([:integer, :string].sample).call(limit: 1000)) array_of(limit, *of) } end
http_status()
click to toggle source
# File lib/degenerate/generators.rb, line 35 def self.http_status ->(_={}) { HTTP_STATUSES.sample } end
integer()
click to toggle source
# File lib/degenerate/generators.rb, line 10 def self.integer ->(opts={}) { rand((opts[:min] || INTEGER_MIN)..(opts[:max] || INTEGER_MAX)) } end
string()
click to toggle source
# File lib/degenerate/generators.rb, line 14 def self.string ->(opts={}) { chars = opts[:of] || default_chars limit = opts[:limit] || random_int random_string_of(chars, limit) } end
Private Class Methods
array_of(limit, *generated)
click to toggle source
# File lib/degenerate/generators.rb, line 45 def self.array_of(limit, *generated) [].class.new(random_int(limit)) { generated.sample } end
default_chars()
click to toggle source
# File lib/degenerate/generators.rb, line 41 def self.default_chars ('1'..'z').to_a end
random_int(limit=9999)
click to toggle source
# File lib/degenerate/generators.rb, line 53 def self.random_int(limit=9999) Degenerate::Generators.integer.call(min: 0, max: limit) end
random_string_of(chars, limit)
click to toggle source
# File lib/degenerate/generators.rb, line 49 def self.random_string_of(chars, limit) [].class.new(random_int(limit)) { chars.sample }.join end