spec/lib/ruby-conf_spec.rb in ruby-conf-1.1.0 vs spec/lib/ruby-conf_spec.rb in ruby-conf-1.3.0
- old
+ new
@@ -14,32 +14,56 @@
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 ":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 "returns a config" do
- config = subject.define "config" do
+ it "returns a named config" do
+ config = subject.define "a_name" do
something "hi"
end
config.something.should == "hi"
+ subject.a_name.something.should == 'hi'
end
it "can be chained" do
subject.define "config", :as => :MyConfig do
love_song (RubyConf.define "love_song" do
title "in me all along"
end)
end
MyConfig.love_song.title.should == 'in me all along'
+ end
+ it "can be chained using do blocks instead of RubyConf.define" do
+ subject.define "config", :as => :MyConfig do
+ turtles do
+ teenage true
+ mutant true
+ ninja true
+
+ raphael do
+ mask "red"
+ end
+ end
+ end
+ MyConfig.turtles.mutant.should == true
+ MyConfig.turtles.raphael.mask.should == "red"
end
it "defines a new configuration with a given name" do
subject.define "thing" do end
subject.should respond_to(:thing)
end