Sha256: 4372889ef30c7c4db89f5bd5e63345f9da11dc71b9d53a33dc32ab0d0f1f8cb4

Contents?: true

Size: 767 Bytes

Versions: 1

Compression:

Stored size: 767 Bytes

Contents

# Class: Hyde::Set
# A set of pages.

class Hyde
class Set < Array
  # Method: find (Hyde::Set)
  # Filters a set by given metadata criteria.
  #
  # ##  Example
  #     Page['/'].children.find(layout: 'default')
  #
  def find(by={})
    self.class.new(select do |page|
      by.inject(true) { |b, (field, value)| b &&= (page.meta.send(field) == value) }
    end)
  end

  # Method: except (Hyde::Set)
  # Filters a set by removing items matching the given metadata criteria.
  #
  # This is the opposite of {Hyde::Set::find}.
  #
  # ##  Example
  #     Page['/'].children.find(layout: 'default')
  #
  def except(by={})
    self.class.new(reject do |page|
      by.inject(true) { |b, (field, value)| b &&= (page.meta.send(field) == value) }
    end)
  end
end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hydeweb-0.2.3 lib/hyde/set.rb