Class: KeyValueName::Collection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/key_value_name/collection.rb

Overview

A collection of KeyValueNames.

Instance Method Summary collapse

Constructor Details

#initialize(klass, parent) ⇒ Collection

Returns a new instance of Collection.



10
11
12
13
# File 'lib/key_value_name/collection.rb', line 10

def initialize(klass, parent)
  @klass = klass
  @parent = parent
end

Instance Method Details

#allObject



25
26
27
# File 'lib/key_value_name/collection.rb', line 25

def all
  @klass.glob(@parent).sort
end

#each(&block) ⇒ Object



21
22
23
# File 'lib/key_value_name/collection.rb', line 21

def each(&block)
  all.each(&block)
end

#find_by(**kwargs) ⇒ Object



37
38
39
# File 'lib/key_value_name/collection.rb', line 37

def find_by(**kwargs)
  where(**kwargs).first
end

#new(*args) ⇒ Object



15
16
17
18
19
# File 'lib/key_value_name/collection.rb', line 15

def new(*args)
  object = @klass.new(*args)
  object.parent = @parent
  object
end

#where(**kwargs) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/key_value_name/collection.rb', line 29

def where(**kwargs)
  all.select do |name|
    kwargs.all? do |key, value|
      name[key] == value
    end
  end
end