Class: ArrayCollection::Collect

Inherits:
Object
  • Object
show all
Extended by:
Hooks
Defined in:
lib/array_collection/collect.rb

Overview

Set of chainable collections

Instance Method Summary collapse

Methods included from Hooks

before

Constructor Details

#initialize(items) ⇒ Collect

Returns a new instance of Collect.



12
13
14
15
# File 'lib/array_collection/collect.rb', line 12

def initialize(items)
  parsed_hash = parse(items)
  @items, @is_json = get_arrayable_items(parsed_hash)
end

Instance Method Details

#allObject



17
18
19
# File 'lib/array_collection/collect.rb', line 17

def all
  parse_output(@items)
end

#append(value) ⇒ Object



45
46
47
# File 'lib/array_collection/collect.rb', line 45

def append(value)
  clone(ArrayCollection::CollectionArray.append(@items, value))
end

#count(&block) ⇒ Object



21
22
23
# File 'lib/array_collection/collect.rb', line 21

def count(&block)
  @items.count(&block)
end

#diff(items) ⇒ Object



53
54
55
# File 'lib/array_collection/collect.rb', line 53

def diff(items)
  clone(ArrayCollection::CollectionArray.diff(@items, items))
end

#except(*keys) ⇒ Object



77
78
79
# File 'lib/array_collection/collect.rb', line 77

def except(*keys)
  clone(ArrayCollection::CollectionArray.except(@items, *keys.map(&:to_sym)))
end

#filter(&block) ⇒ Object



57
58
59
# File 'lib/array_collection/collect.rb', line 57

def filter(&block)
  clone(ArrayCollection::CollectionArray.filter(@items, &block))
end

#full_join(items, left_key, right_key) ⇒ Object



109
110
111
# File 'lib/array_collection/collect.rb', line 109

def full_join(items, left_key, right_key)
  clone(ArrayCollection::CollectionArray.full_join(@items, get_arrayable_items(items), left_key, right_key))
end

#index_of(value) ⇒ Object



25
26
27
# File 'lib/array_collection/collect.rb', line 25

def index_of(value)
  @items.index(value)
end

#inner_join(items, left_key, right_key) ⇒ Object



97
98
99
# File 'lib/array_collection/collect.rb', line 97

def inner_join(items, left_key, right_key)
  clone(ArrayCollection::CollectionArray.inner_join(@items, get_arrayable_items(items), left_key, right_key))
end

#key_by(key, &block) ⇒ Object



29
30
31
# File 'lib/array_collection/collect.rb', line 29

def key_by(key, &block)
  ArrayCollection::CollectionArray.key_by(@items, key.to_sym, &block)
end

#left_join(items, left_key, right_key) ⇒ Object



101
102
103
# File 'lib/array_collection/collect.rb', line 101

def left_join(items, left_key, right_key)
  clone(ArrayCollection::CollectionArray.left_join(@items, get_arrayable_items(items), left_key, right_key))
end

#map(&block) ⇒ Object



81
82
83
# File 'lib/array_collection/collect.rb', line 81

def map(&block)
  clone(ArrayCollection::CollectionArray.map(@items, &block))
end

#only(*keys) ⇒ Object



73
74
75
# File 'lib/array_collection/collect.rb', line 73

def only(*keys)
  clone(ArrayCollection::CollectionArray.only(@items, *keys.map(&:to_sym)))
end

#prepend(value) ⇒ Object



49
50
51
# File 'lib/array_collection/collect.rb', line 49

def prepend(value)
  clone(ArrayCollection::CollectionArray.prepend(@items, value))
end

#right_join(items, left_key, right_key) ⇒ Object



105
106
107
# File 'lib/array_collection/collect.rb', line 105

def right_join(items, left_key, right_key)
  clone(ArrayCollection::CollectionArray.right_join(@items, get_arrayable_items(items), left_key, right_key))
end

#sort(&block) ⇒ Object



85
86
87
# File 'lib/array_collection/collect.rb', line 85

def sort(&block)
  clone(@items.sort(&block))
end

#sort_by_key(key) ⇒ Object



93
94
95
# File 'lib/array_collection/collect.rb', line 93

def sort_by_key(key)
  clone(@items.sort_by { |item| item[key.to_sym] })
end

#sort_desc(&block) ⇒ Object



89
90
91
# File 'lib/array_collection/collect.rb', line 89

def sort_desc(&block)
  clone(@items.sort(&block).reverse)
end

#uniqObject



69
70
71
# File 'lib/array_collection/collect.rb', line 69

def uniq
  clone(@items.uniq)
end

#unless(boolean) {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



39
40
41
42
43
# File 'lib/array_collection/collect.rb', line 39

def unless(boolean)
  return self if boolean == true

  yield(self)
end

#when(boolean) {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



33
34
35
36
37
# File 'lib/array_collection/collect.rb', line 33

def when(boolean)
  return self if boolean == false

  yield(self)
end

#where(key, *args) ⇒ Object



61
62
63
# File 'lib/array_collection/collect.rb', line 61

def where(key, *args)
  clone(ArrayCollection::CollectionArray.where(@items, key, *args))
end

#where_not_nilObject



65
66
67
# File 'lib/array_collection/collect.rb', line 65

def where_not_nil
  clone(ArrayCollection::CollectionArray.where_not_nil(@items))
end