spec/lib/ruby-conf_spec.rb in ruby-conf-1.4.0 vs spec/lib/ruby-conf_spec.rb in ruby-conf-1.4.1

- old
+ new

@@ -12,28 +12,71 @@ #RubyConf.namespace.thingy describe RubyConf do subject { RubyConf } - + describe ".define" do context "no arguments" do it "returns anonymous config" do config = subject.define do equality true end config.equality.should be_true end end + context ":inherit" do + let(:inherited_config) do + RubyConf.define "inherited_config" do + basic do + thing do + origin "swamp" + end + end + + laboritory :inherits => basic do + thing do + strong true + end + end + + city :inherits => basic do + thing do + origin "ocean" + end + end + + end + end + it "pre-loads a config with a existing config" do + inherited_config.laboritory.thing.origin.should == inherited_config.basic.thing.origin + end + it "does not overwrite values" do + inherited_config.city.thing.origin.should == "ocean" + end + end context ":as" do it "creates a global Constant" do subject.define "rails_database", :as => :RailsDatabase do production :host => 'localhost', :password => 'cake', :username => 'eggs2legit' end ::RailsDatabase.production[:host].should == 'localhost' ::RailsDatabase.production[:username].should_not be_nil ::RailsDatabase.production[:password].should_not be_nil end + end + it "can reopen configs" do + config = subject.define do + godzilla do + spines false + awesome true + end + end + config.godzilla do + spines true + end + config.godzilla.spines.should == true + config.godzilla.awesome.should == true end it "returns a named config" do config = subject.define "a_name" do something "hi" end