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