Class: Nanoc::Core::BasicItemRepCollectionView

Inherits:
View
  • Object
show all
Includes:
Enumerable
Defined in:
lib/nanoc/core/basic_item_rep_collection_view.rb

Defined Under Namespace

Classes: NoSuchItemRepError

Instance Method Summary collapse

Methods inherited from View

#_context, #frozen?, #inspect

Methods included from ContractsSupport

enabled?, included, setup_once, warn_about_performance

Constructor Details

#initialize(item_reps, context) ⇒ BasicItemRepCollectionView

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of BasicItemRepCollectionView.



15
16
17
18
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 15

def initialize(item_reps, context)
  super(context)
  @item_reps = item_reps
end

Instance Method Details

#[](rep_name) ⇒ nil, Nanoc::Core::BasicItemRepView

Return the item rep with the given name, or nil if no item rep exists.

Parameters:

  • rep_name (Symbol)

Returns:



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 58

def [](rep_name)
  case rep_name
  when Symbol
    res = @item_reps.find { |ir| ir.name == rep_name }
    res && view_class.new(res, @context)
  when Integer
    raise ArgumentError, "expected BasicItemRepCollectionView#[] to be called with a symbol (you likely want `.reps[:default]` rather than `.reps[#{rep_name}]`)"
  else
    raise ArgumentError, 'expected BasicItemRepCollectionView#[] to be called with a symbol'
  end
end

#_unwrapObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



21
22
23
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 21

def _unwrap
  @item_reps
end

#each {|item| ... } ⇒ self

Calls the given block once for each item rep, passing that item rep as a parameter.

Yield Parameters:

  • item (Object)

    rep view

Yield Returns:

  • (void)

Returns:

  • (self)


41
42
43
44
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 41

def each
  @item_reps.each { |ir| yield view_class.new(ir, @context) }
  self
end

#fetch(rep_name) ⇒ Nanoc::Core::BasicItemRepView

Return the item rep with the given name, or raises an exception if there is no rep with the given name.

Parameters:

  • rep_name (Symbol)

Returns:

Raises:

  • if no rep was found



78
79
80
81
82
83
84
85
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 78

def fetch(rep_name)
  res = @item_reps.find { |ir| ir.name == rep_name }
  if res
    view_class.new(res, @context)
  else
    raise NoSuchItemRepError.new(rep_name)
  end
end

#sizeInteger

Returns:

  • (Integer)


47
48
49
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 47

def size
  @item_reps.size
end

#to_aryObject



30
31
32
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 30

def to_ary
  @item_reps.map { |ir| view_class.new(ir, @context) }
end

#view_classObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



26
27
28
# File 'lib/nanoc/core/basic_item_rep_collection_view.rb', line 26

def view_class
  Nanoc::Core::BasicItemRepView
end