lib/hashery/static_hash.rb in hashery-1.5.0 vs lib/hashery/static_hash.rb in hashery-2.0.0
- old
+ new
@@ -1,48 +1,53 @@
-# = StaticHash
-#
-# A Hash object which raises an error if any
-# previously-defined key attempts to be set again.
-#
-# == Synopsis
-#
-# foo = StaticHash.new
-# foo['name'] = 'Tom' #=> 'Tom'
-# foo['age'] = 30 #=> 30
-# foo['name'] = 'Bob'
-#
-# _produces_
-#
-# ArgumentError: Duplicate key for StaticHash -- 'name'
-#
-# == Credit
-#
-# StaticHash has it's orgins in Gavin Kistner's WriteOnceHash
-# class found in his +basiclibrary.rb+ script.
+module Hashery
-class StaticHash < Hash
+ # StaticHash ia a Hash object which raises an error if any
+ # previously-defined key attempts to be set again.
+ #
+ # foo = StaticHash.new
+ # foo['name'] = 'Tom' #=> 'Tom'
+ # foo['age'] = 30 #=> 30
+ # foo['name'] = 'Bob'
+ #
+ # produces
+ #
+ # ArgumentError: Duplicate key for StaticHash -- 'name'
+ #
+ # StaticHash has it's orgins in Gavin Kistner's WriteOnceHash
+ # class found in his +basiclibrary.rb+ script.
+ #
+ # TODO: Maybe StaticHash isn't bets name for this class?
+ #
+ class StaticHash < CRUDHash
- # Set a value for a key. Raises an error if that key already
- # exists with a different value.
-
- def []=(key, value)
- if key?(key) && self[key] != value
- raise ArgumentError, "Duplicate key for StaticHash -- #{key.inspect}"
+ #
+ # Set a value for a key. Raises an error if that key already
+ # exists with a different value.
+ #
+ # key - Index key to associate with value.
+ # value - Value to associate with key.
+ #
+ # Retruns value.
+ #
+ def store(key, value)
+ if key?(key) && read(key) != value
+ raise ArgumentError, "Duplicate key for StaticHash -- #{key.inspect}"
+ end
+ super(key, value)
end
- super(key, value)
- end
- #
- def update(hash)
- dups = (keys | hash.keys)
- if dups.empty?
- super(hash)
- else
- raise ArgumentError, "Duplicate key for StaticHash -- #{dups.inspect}"
- end
- end
+ #
+ #def update(hash)
+ # dups = (keys | hash.keys)
+ # if dups.empty?
+ # super(hash)
+ # else
+ # raise ArgumentError, "Duplicate key for StaticHash -- #{dups.inspect}"
+ # end
+ #end
- #
- alias_method :merge!, :update
+ #
+ #alias_method :merge!, :update
-end
+ end
+end