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

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

Raises:

  • (ArgumentError)


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