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