module Bai2::AttrReaderFromIvarHash
Helps define methods that simply read from a hash ivar. For example, imagine this class:
class Person def initialize @info = { first_name: 'John', last_name: 'Smith', } end attr_reader_from_ivar_hash :@info, :first_name, :last_name end
That last statement will automagically create methods `.first_name`, and `.last_name` on `Person`, which saves a whole bunch of typing :).
Public Instance Methods
attr_reader_from_ivar_hash(ivar, *keys)
click to toggle source
# File lib/bai2/attr-reader-from-ivar-hash.rb, line 23 def attr_reader_from_ivar_hash(ivar, *keys) keys.each do |key| define_method(key) do (instance_variable_get(ivar) || {})[key] end end end