Gem provides enforced-type functionality to Arrays
Copyright © 2011 Ryan Biesemeyer See LICENSE.txt for details
Ryan Biesemeyer [email protected]
require 'typed-array' class Things < Array extend TypedArray restrict_types Thing1,Thing2 end
require 'typed-array' things = TypedArray(Thing1,Thing2)
# 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