Class: Jinx::KeyTransformerHash

Inherits:
Object
  • Object
show all
Includes:
Hasher
Defined in:
lib/jinx/helpers/hasher.rb

Overview

The KeyTransformerHash class applies a transformer block to each key in a base Hasher.

Instance Method Summary collapse

Methods included from Hasher

#==, #[], #assoc_values, #compact, #compose, #copy_recursive, #detect_hash_value, #detect_key, #detect_key_with_value, #detect_value, #difference, #each_key, #each_pair, #each_value, #enum_keys, #enum_keys_with_value, #enum_values, #filter, #filter_on_key, #filter_on_value, #flatten, #has_key?, #has_value?, #inspect, #join, #keys, #pretty_print, #pretty_print_cycle, #qp, #reject_keys, #reject_values, #select_keys, #select_values, #sort, #split, #to_hash, #to_s, #to_set, #transform_key, #transform_value, #union, #values

Methods included from Enumerable

#enumerate, #pp_s, #pretty_print, #pretty_print_cycle, #qp, #to_enum, #transitive_closure

Methods included from Collection

#compact, #compact_map, #detect_value, #detect_with_value, #difference, #empty?, #filter, #first, #flatten, #hashify, #intersect, #join, #last, #partial_sort, #partial_sort!, #partial_sort_by, #size, #to_compact_hash, #to_compact_hash_with_index, #to_series, #transform, #union

Constructor Details

#initialize(base) {|key| ... } ⇒ KeyTransformerHash

Creates a KeyTransformerHash on the base hash and key transformer block.

Parameters:

  • base (Hash)

    the hash to transform

Yields:

  • (key)

    transforms the base key

Yield Parameters:

  • key

    the base key to transform



511
512
513
514
# File 'lib/jinx/helpers/hasher.rb', line 511

def initialize(base, &transformer)
  @base = base
  @xfm = transformer
end

Instance Method Details

#each {|key, value| ... } ⇒ Object

Yields:

  • (key, value)

    operate on the transformed key and value

Yield Parameters:

  • key

    the transformed hash key

  • value

    the hash value



519
520
521
# File 'lib/jinx/helpers/hasher.rb', line 519

def each
  @base.each { |k, v| yield(@xfm.call(k), v) }
end