typed-array
Gem provides enforced-type functionality to Arrays
Copyright (c) 2011 Ryan Biesemeyer See LICENSE.txt for details
Ryan Biesemeyer mailto:[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