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