Module: PluckToHash::ClassMethods
- Defined in:
- lib/pluck_to_hash.rb
Instance Method Summary collapse
- #pluck_to_hash(*keys) ⇒ Object (also: #pluck_h)
- #pluck_to_struct(*keys) ⇒ Object (also: #pluck_s)
Instance Method Details
#pluck_to_hash(*keys) ⇒ Object Also known as: pluck_h
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/pluck_to_hash.rb', line 7 def pluck_to_hash(*keys) block_given = block_given? hash_type = keys[-1].is_a?(Hash) ? keys.pop.fetch(:hash_type,HashWithIndifferentAccess) : HashWithIndifferentAccess keys, formatted_keys = format_keys(keys) keys_one = keys.size == 1 pluck(*keys).map do |row| value = hash_type[formatted_keys.zip(keys_one ? [row] : row)] block_given ? yield(value) : value end end |
#pluck_to_struct(*keys) ⇒ Object Also known as: pluck_s
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/pluck_to_hash.rb', line 20 def pluck_to_struct(*keys) struct_type = keys[-1].is_a?(Hash) ? keys.pop.fetch(:struct_type,Struct) : Struct block_given = block_given? keys, formatted_keys = format_keys(keys) keys_one = keys.size == 1 struct = struct_type.new(*formatted_keys) pluck(*keys).map do |row| value = keys_one ? struct.new(*[row]) : struct.new(*row) block_given ? yield(value) : value end end |