Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Properly implement to_hash #44

Merged
merged 1 commit into from Dec 30, 2012
Jump to file or symbol
Failed to load files and symbols.
+15 −2
Split
View
@@ -143,6 +143,11 @@ def []=(key,val)
create_accessor_for(key, val)
end
+ # Returns an instance of a Hash object
+ def to_hash
+ Hash[self]
+ end
+
# This handles naming collisions with Sinatra/Vlad/Capistrano. Since these use a set()
# helper that defines methods in Object, ANY method_missing ANYWHERE picks up the Vlad/Sinatra
# settings! So settings.deploy_to title actually calls Object.deploy_to (from set :deploy_to, "host"),
View
@@ -162,5 +162,13 @@ class NoSource < Settingslogic; end
it "should be a hash" do
Settings.send(:instance).should be_is_a(Hash)
end
-
-end
+
+ describe "#to_hash" do
+ it "should return a new instance of a Hash object" do
+ Settings.to_hash.should be_kind_of(Hash)
+ Settings.to_hash.class.name.should == "Hash"
+ Settings.to_hash.object_id.should_not == Settings.object_id
+ end
+ end
+
+end