Class: Hyde::Set

Inherits:
Array
  • Object
show all
Defined in:
lib/hyde/set.rb

Instance Method Summary collapse

Instance Method Details

#except(by = {}) ⇒ Object

Filters a set by removing items matching the given metadata criteria. This is the opposite of #find.



17
18
19
20
21
# File 'lib/hyde/set.rb', line 17

def except(by={})
  self.class.new(reject do |page|
    by.inject(true) { |b, (field, value)| b &&= (page.meta.send(field) == value) }
  end)
end

#find(by = {}) ⇒ Object

Filters a set by given metadata criteria.

Examples:

Page['/'].children.find(layout: 'default')


8
9
10
11
12
# File 'lib/hyde/set.rb', line 8

def find(by={})
  self.class.new(select do |page|
    by.inject(true) { |b, (field, value)| b &&= (page.meta.send(field) == value) }
  end)
end