spec/lib/ruby-conf_spec.rb in ruby-conf-2.7.2 vs spec/lib/ruby-conf_spec.rb in ruby-conf-2.8.0

- old
+ new

@@ -11,9 +11,49 @@ end subject { RubyConf } describe "lambda arguments" do + + it "uses bang to ensure lambdas get called only once" do + RubyConf.define :Lambang do + noargs -> { "#{rand(1000)}" } + bang ->(a, b) { "#{a}-#{b}-#{rand(1000)}" } + end + + normal = Lambang.noargs + Lambang.noargs!.should == normal + Lambang.noargs.should_not == normal + + bang = Lambang.noargs! + Lambang.noargs!.should == bang + + #reset it by not using bang + Lambang.noargs.should_not == bang + + bang2 = Lambang.noargs! + bang2.should_not == bang + Lambang.noargs!.should == bang2 + + + normal = Lambang.bang(:a, :b) + Lambang.bang!(:a, :b).should == normal + Lambang.bang(:a, :b).should_not == normal + + bangcd = Lambang.bang!(:c, :d) + bangef = Lambang.bang!(:e, :f) + Lambang.bang!(:c, :d).should == bangcd + Lambang.bang!(:e, :f).should == bangef + Lambang.bang!(:c, :d).should == bangcd + + #reset it by not using bang + Lambang.bang(:c, :d).should_not == bangcd + + bangcd2 = Lambang.bang!(:c, :d) + bangcd2.should_not == bangcd + Lambang.bang!(:c, :d).should == bangcd2 + end + it "handles hash arguments properly" do RubyConf.define :LambdaHashes do key ->(options) { options }