Module: ExAequo::Base::Enumerable::Hash
- Included in:
- Hash
- Defined in:
- lib/ex_aequo/base/enumerable/hash.rb,
lib/ex_aequo/base/enumerable/hash/helper.rb
Defined Under Namespace
Classes: Helper
Instance Method Summary collapse
- #maph(&blk) ⇒ Object
- #mapk(&blk) ⇒ Object
- #mapv(&blk) ⇒ Object
- #slice_and_rest(*keys, default: None, ignore: false) ⇒ Object
Instance Method Details
#maph(&blk) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/ex_aequo/base/enumerable/hash.rb', line 10 def maph(&blk) inject({}) do |r, (k, v)| blk.(k, v) => [nk, nv] r.update(nk => nv) end end |
#mapk(&blk) ⇒ Object
17 18 19 |
# File 'lib/ex_aequo/base/enumerable/hash.rb', line 17 def mapk(&blk) maph { |k, v| [blk.(k), v] } end |
#mapv(&blk) ⇒ Object
21 22 23 |
# File 'lib/ex_aequo/base/enumerable/hash.rb', line 21 def mapv(&blk) maph { |k, v| [k, blk.(v)] } end |
#slice_and_rest(*keys, default: None, ignore: false) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/ex_aequo/base/enumerable/hash.rb', line 25 def slice_and_rest(*keys, default: None, ignore: false) raise ArgumentError, "must not provide default: and ignore: kwds" unless default == None || !ignore raise ArgumentError, "ignore keyword must be a boolean, not #{ignore}" unless [false, true].include? ignore Helper.new(self).slice_and_rest(keys, default:, ignore:) end |