typed-array
Gem provides enforced-type functionality to Arrays
Copyright © 2011 Ryan Biesemeyer See LICENSE.txt for details
Ryan Biesemeyer [email protected]
Example
Create Standard Class
require 'typed-array'
class Things < Array
extend TypedArray
restrict_types Thing1,Thing2
end
Generate Class using Factory
require 'typed-array'
things = TypedArray(Thing1,Thing2)
Adding items to the Array
# All standard Array interfaces are implemented, including block-processing
# and variable-number of arguments. For methods that would usually return an
# Array, they instead return an instance of the current class (except to_a).
#
# The difference is that if the method would generate an Array including the
# wrong types, TypedArray::UnexpectedTypeException is raised and the call is
# aborted before modifying the enforced TypedArray instance.
require 'typed-array'
symbols = TypedArray(Symbol).new([:foo,:bar,:baz,:bingo])
begin
integers = TypedArray(Integer).new([1,3,7,2,:symbol])
rescue TypedArray::UnexpectedTypeException
puts "An error occured: #{$!}"
end