Skip to content

yeukfei02/rando

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rando

random item function in ruby

similar to Rando but in ruby

# install lib
bundle add rando
rando = Rando.new
rando.rando()                       # a floating-point number between 0 and 1 (could be exactly 0, but never exactly 1)  
rando.rando(5)                      # an integer between 0 and 5 (could be 0 or 5)  
rando.rando(5, 10)                  # a random integer between 5 and 10 (could be 5 or 10)  
rando.rando(5, "float")             # a floating-point number between 0 and 5 (could be exactly 0, but never exactly 5)  
rando.rando(5, 10, "float")         # a floating-point number between 5 and 10 (could be exactly 5, but never exactly 10)  
rando.rando(true, false)            # either true or false  
rando.rando(["a", "b"])             # {index:..., value:...} object representing a value of the provided array OR false if array is empty  
rando.rando({a: 1, b: 2})           # {key:..., value:...} object representing a property of the provided object OR false if object has no properties
rando.rando("Gee willikers!")       # a character from the provided string OR false if the string is empty. Reoccurring characters will naturally form a more likely return value  
rando.rando(nil)                    # ANY invalid arguments return false  
rando.rando_sequence(5)              # an array of integers from 0 through 5 in random order  
rando.rando_sequence(5, 10)          # an array of integers from 5 through 10 in random order  
rando.rando_sequence(["a", "b"])     # an array of {index:..., value:...} objects representing the values of the provided array in random order  
rando.rando_sequence({a: 1, b: 2})   # an array of {key:..., value:...} objects representing the properties of the provided object in random order     
rando.rando_sequence("Good gravy!")  # an array of the characters of the provided string in random order  
rando.rando_sequence(nil)            # ANY invalid arguments return false

Requirement

  • install ruby (v2.7)
  • install gem
  • install bundle

Testing and run

// install ruby dependencies
$ bundle install

// build executable
$ gem build rando.gemspec

// remove gem version in rubygems
$ gem yank rando -v <version>

// publish new version to rubygems
$ gem push rando-<version>.gem

// run test
$ bundle exec rspec

// rubocop
$ rubocop --auto-correct
$ rubocop -A

// reek
$ reek