spec/coerce_spec.rb in moosex-0.0.16 vs spec/coerce_spec.rb in moosex-0.0.17

- old
+ new

@@ -43,5 +43,39 @@ it "should coerce from builder" do ct = CoerceTest.new ct.attribute_lazy.should == 2048 end end +=begin +require 'moosex/types' + +class CoerceTest2 + include MooseX + include MooseX::Types + + has a: { is: :rw, coerce: :to_i } # if respond_to? then coerce + has b: { is: :rw, coerce: { to_i: true } } # always coerce + has c: { is: :rw, coerce: { to_i: false} } # if respond_to? then coerce + has d: { is: :rw, coerce: [ :to_s, :to_string ] } # try to apply one of + has e: { is: :rw, coerce: [ # if respond_to? then coerce via method/lambda + { to_s: lambda{|x| x.to_s.to_sym } }, # can add more, will be evaluated in order + { to_sym: :to_sym }, + ] + } + has f: { is: :rw, coerce: [ # should accept one array of + { String => lambda{|x| x.to_sym } }, # type => coerce + { Object => lambda{|x| x.to_s } }, + ] + } + has g: { is: :rw, coerce: { String => :to_sym } } # should accept one pair + has h: { is: :rw, coerce: { # should accept one type validator + isArray(String) => lambda{|obj| obj.join(",") } + } + } + has i: {is: :rw, isa: isString(format: /\w+:\w+/) } # validator with autocoerce! + +end + +describe CoerceTest2 do + +end +=end