Frozen
Objects¶ ↑
frozen-objects provides some syntactic sugar of implicitly frozen objects and an freezing operator useful for example in class constants.
require "frozen-objects" class Foo SOME_ARRAY = Frozen::Array[:a, :b] # or any other Array constructing methods SOME_HASH = Frozen::Hash[:a => :b] # or any other Hash constructing methods SOME_STRING = Frozen::String::new("bar") end Foo::SOME_ARRAY.frozen? # will return true Foo::SOME_HASH.frozen? # will return true Foo::SOME_STRING.frozen? # will return true
All attempts to modify these objects will fail on RuntimeError
. Objects are reported as frozen of sure. From other points of view they are “normal” and fully compatible with Ruby implicitly non-frozen objects.
Freezing Operator¶ ↑
Frozen
module defines also frozen operator. It's intended for nice and simple freezing whatever. Consider example above:
require "frozen-objects" class Foo SOME_ARRAY = Frozen << [:a, :b] SOME_HASH = Frozen << {:a => :b} SOME_STRING = Frozen << "bar" WHATEVER = Frozen << SomeClass::new end
Both methods are equivalent. Select that one which is suitable for you.
Contributing¶ ↑
-
Fork it.
-
Create a branch (
git checkout -b 20101220-my-change
). -
Commit your changes (
git commit -am "Added something"
). -
Push to the branch (
git push origin 20101220-my-change
). -
Create an Issue with a link to your branch.
-
Enjoy a refreshing Diet Coke and wait.
Copyright¶ ↑
Copyright © 2011 Martin Kozák. See LICENSE.txt
for further details.