spec/dslh_spec.rb in dslh-0.4.0 vs spec/dslh_spec.rb in dslh-0.4.1

- old
+ new

@@ -3023,6 +3023,69 @@ expect(errmsg).to eq expected_errmsg expect(e.message).to eq expected_errmsg end end end + + context 'idetify using root key' do + it 'eval' do + h = Dslh.eval do + employees "foo" do + code 101 + email "foo@winebarrel.com" + end + employees "bar" do + code 102 + email "bar@winebarrel.com" + end + employees2 "foo2" do + code 201 + email "foo@winebarrel.com" + end + employees2 "bar2" do + code 202 + email "bar@winebarrel.com" + end + end + + expect(h).to eq( + {"employees"=> + {"foo"=>{"code"=>101, "email"=>"foo@winebarrel.com"}, + "bar"=>{"code"=>102, "email"=>"bar@winebarrel.com"}}, + "employees2"=> + {"foo2"=>{"code"=>201, "email"=>"foo@winebarrel.com"}, + "bar2"=>{"code"=>202, "email"=>"bar@winebarrel.com"}}} + ) + end + + it 'deval' do + h = {"employees"=> + {"foo"=>{"code"=>101, "email"=>"foo@winebarrel.com"}, + "bar"=>{"code"=>102, "email"=>"bar@winebarrel.com"}}, + "employees2"=> + {"foo2"=>{"code"=>201, "email"=>"foo@winebarrel.com"}, + "bar2"=>{"code"=>202, "email"=>"bar@winebarrel.com"}}} + + + dsl = Dslh.deval(h, :root_identify => true) + + expect(dsl).to eq <<-EOS +employees "foo" do + code 101 + email "foo@winebarrel.com" +end +employees "bar" do + code 102 + email "bar@winebarrel.com" +end +employees2 "foo2" do + code 201 + email "foo@winebarrel.com" +end +employees2 "bar2" do + code 202 + email "bar@winebarrel.com" +end + EOS + end + end end