Skip to content

Epigene/hashrush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hashrush

Extends Ruby Hash class with the .rush method (and it's long_and_expressive alias .build_from_symbol_variables) .
Use when building hashes from pre-loaded variables to avoid repetition.

Installation

gem 'hashrush', '~> 2.0.0' and bundle

Usage

You might be familiar with making hashes like so:

# Pre-load values, trivialized here
name = @user.name
age = @user.age

# Build hash
hash = {name: name, age: age}

# Use hash in new object instantiation
@view_variable = GemNamespace::Class.new(hash)

Hashrush shortens step 2. Use like this:

# Pre-load values, trivialized here
name = "Bill"
@age = 21 # since v2

# Build hash
hash = Hash.rush(binding, :name, :@age)
# symbol arguments can also be packed in an array
hash = Hash.rush(binding, [:name, :@age])
# symbol arguments can also use symbol array shorthand
hash = Hash.rush(binding,
  %i|name @age|
)

hash
#=> {name: "Bill", age: 21}

# NB, rushing will strip the '@' from instance variables and '@@' from class variables

# Use hash in new object instantiation
@view_variable = GemNamespace::Class.new(hash)

Since binding.eval is used, the binding object must be passed exlicitly as the first argument, sorry.

About

Simple hash building from pre-defined variables

Resources

License

Stars

Watchers

Forks

Packages

No packages published