class Generics::List::Mutable
Public Class Methods
new(*collection)
click to toggle source
@param [Class, Module] type
# File lib/generics/collections/list.rb, line 168 def initialize(*collection) collection.each { |value| compatible!(value) } @collection = collection.freeze end
Public Instance Methods
[]=(index, value)
click to toggle source
# File lib/generics/collections/list.rb, line 201 def []=(index, value) compatible!(value) @collection[index] = value end
add(value)
click to toggle source
Destructive
# File lib/generics/collections/list.rb, line 187 def add(value) compatible!(value) @collection.push(value) end
clone()
click to toggle source
Preserves frozen state and does copies singleton state @return [List::Mutable]
# File lib/generics/collections/list.rb, line 181 def clone self.class.new(*@collection.clone) end
delete(value)
click to toggle source
# File lib/generics/collections/list.rb, line 211 def delete(value) compatible!(value) @collection.delete(value) end
delete_at(index)
click to toggle source
# File lib/generics/collections/list.rb, line 216 def delete_at(index) @collection.delete_at(index) end
dup()
click to toggle source
Does not preserve frozen state and does not copy singleton state @return [List::Mutable]
# File lib/generics/collections/list.rb, line 175 def dup self.class.new(*@collection.dup) end
insert(index, *values)
click to toggle source
# File lib/generics/collections/list.rb, line 206 def insert(index, *values) values.each { |value| compatible!(value) } self.class.new(*@collection.insert(index, *values)) end
set(index, value) { |collection| ... }
click to toggle source
# File lib/generics/collections/list.rb, line 192 def set(index, value, &_block) compatible!(value) if block_given? @collection[index] = yield @collection[index] else @collection[index] = value end end
unshift(value)
click to toggle source
# File lib/generics/collections/list.rb, line 220 def unshift(value) compatible!(value) self.class.new(*@collection.unshift(value)) end