Class: Senkyoshi::Collection

Inherits:
Object
  • Object
show all
Defined in:
lib/senkyoshi/collection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resources = []) ⇒ Collection

Returns a new instance of Collection.



20
21
22
# File 'lib/senkyoshi/collection.rb', line 20

def initialize(resources = [])
  @resources = resources
end

Instance Attribute Details

#resourcesObject (readonly)

Returns the value of attribute resources.



18
19
20
# File 'lib/senkyoshi/collection.rb', line 18

def resources
  @resources
end

Instance Method Details

#add(resources) ⇒ Object



24
25
26
# File 'lib/senkyoshi/collection.rb', line 24

def add(resources)
  @resources.concat(resources)
end

#detect_xid(xid) ⇒ Object



28
29
30
31
32
# File 'lib/senkyoshi/collection.rb', line 28

def detect_xid(xid)
  @resources.detect do |resource|
    resource.matches_xid? xid
  end
end

#eachObject



48
49
50
51
52
53
# File 'lib/senkyoshi/collection.rb', line 48

def each
  @resources.each do |resource|
    yield resource
  end
  self
end

#find_by_id(id) ⇒ Object



34
35
36
# File 'lib/senkyoshi/collection.rb', line 34

def find_by_id(id)
  @resources.detect { |item| item.respond_to?(:id) && item.id == id }
end

#find_instances_not_of(types) ⇒ Object



42
43
44
45
46
# File 'lib/senkyoshi/collection.rb', line 42

def find_instances_not_of(types)
  @resources.select do |res|
    types.each { |type| res.class != type }
  end
end

#find_instances_of(class_name) ⇒ Object



38
39
40
# File 'lib/senkyoshi/collection.rb', line 38

def find_instances_of(class_name)
  @resources.select { |res| res.class == class_name }
end