Class: Nanoc::ItemArray
- Inherits:
-
Object
- Object
- Nanoc::ItemArray
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/nanoc/base/source_data/item_array.rb
Overview
Acts as an array, but allows fetching items using identifiers, e.g. @items['/blah/']
.
Constant Summary
- EXCLUDED_METHODS =
[ :[], :at, :slice, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :freeze, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :equal?, :instance_eval, :instance_exec, :__send__, :__id__ ]
- DELEGATED_METHODS =
(Array.instance_methods + Enumerable.instance_methods).map(&:to_sym) - EXCLUDED_METHODS
Instance Method Summary (collapse)
-
- (Object) [](*args)
(also: #slice)
-
- (Object) at(arg)
-
- (Object) freeze
-
- (ItemArray) initialize
constructor
A new instance of ItemArray.
Constructor Details
- (ItemArray) initialize
Returns a new instance of ItemArray
22 23 24 |
# File 'lib/nanoc/base/source_data/item_array.rb', line 22 def initialize @items = [] end |
Instance Method Details
- (Object) [](*args) Also known as: slice
32 33 34 35 36 37 38 39 40 |
# File 'lib/nanoc/base/source_data/item_array.rb', line 32 def [](*args) if 1 == args.size && args.first.is_a?(String) item_with_identifier(args.first) elsif 1 == args.size && args.first.is_a?(Regexp) @items.select { |i| i.identifier =~ args.first } else @items[*args] end end |
- (Object) at(arg)
43 44 45 46 47 48 49 |
# File 'lib/nanoc/base/source_data/item_array.rb', line 43 def at(arg) if arg.is_a?(String) item_with_identifier(arg) else @items[arg] end end |
- (Object) freeze
26 27 28 29 30 |
# File 'lib/nanoc/base/source_data/item_array.rb', line 26 def freeze @items.freeze build_mapping super end |