Module: PluckIt

Defined in:
lib/pluckit.rb,
lib/pluckit/pluck.rb

Constant Summary collapse

VERSION =
'1.1.0'

Class Method Summary collapse

Class Method Details

.pluck(enumerable, *handles) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/pluckit/pluck.rb', line 5

def pluck enumerable, *handles
  items = enumerable.each_with_object(
    enumerable.clone.clear
  )
  # TODO: if no clone / clear, use new

  if enumerable.is_a?(Hash)
    items.each do |(key, val), res|
      res[key] = pluckit(val, *handles)
    end
  elsif enumerable.is_a?(Set)
    items.each do |val, res|
      res.add pluckit(val, *handles)
    end
  else
    items.each do |val, res|
      res << pluckit(val, *handles)
    end
  end
end

.pluckit(v, *handles) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/pluckit/pluck.rb', line 27

def pluckit v, *handles
  if handles.count > 1
    handles.map {|h| pluckit_single v, h }
  else
    pluckit_single v, handles.first
  end
end