Hmm, If your #1469 hasn't been merged, then yeah, rebasing is good. And I don't think that it matters for the mode, because that's handled pretty transparently by the yaml et al conversion. It really only matters for query arguments, like 'recurse => 2' in this case.
On Mar 10, 2009, at 4:31 AM, Brice Figureau wrote: > > +1, this is essentially the same thing I contributed as the second > patch > for #1469, except yours is better than mine as it handles floating > points numbers. > That also means, there will be some conflict if you merge my patch. > Should I rebase #1469 on top of this patch and get rid of the second > part? > > I was wondering if that won't add some issues is if you ever have to > transfer file modes through this way. > > Thanks, > Brice > > On Tue, 2009-03-10 at 00:51 -0500, Luke Kanies wrote: >> Signed-off-by: Luke Kanies <[email protected]> >> --- >> lib/puppet/indirector/rest.rb | 1 + >> lib/puppet/network/http/handler.rb | 2 ++ >> spec/unit/indirector/rest.rb | 10 ++++++++++ >> spec/unit/network/http/mongrel/rest.rb | 12 ++++++++++++ >> 4 files changed, 25 insertions(+), 0 deletions(-) >> >> diff --git a/lib/puppet/indirector/rest.rb b/lib/puppet/indirector/ >> rest.rb >> index ce459b9..23ed56d 100644 >> --- a/lib/puppet/indirector/rest.rb >> +++ b/lib/puppet/indirector/rest.rb >> @@ -94,6 +94,7 @@ class Puppet::Indirector::REST < >> Puppet::Indirector::Terminus >> case value >> when nil; next >> when true, false; value = value.to_s >> + when Fixnum, Bignum, Float; value = value # nothing >> when String; value = URI.escape(value) >> when Symbol; value = URI.escape(value.to_s) >> when Array; value = URI.escape(YAML.dump(value)) >> diff --git a/lib/puppet/network/http/handler.rb b/lib/puppet/ >> network/http/handler.rb >> index cce6798..7f6bd41 100644 >> --- a/lib/puppet/network/http/handler.rb >> +++ b/lib/puppet/network/http/handler.rb >> @@ -193,6 +193,8 @@ module Puppet::Network::HTTP::Handler >> else >> value = true if value == "true" >> value = false if value == "false" >> + value = Integer(value) if value =~ /^\d+$/ >> + value = value.to_f if value =~ /^\d+\.\d+$/ >> end >> result[param.to_sym] = value >> result >> diff --git a/spec/unit/indirector/rest.rb b/spec/unit/indirector/ >> rest.rb >> index 4fa30b2..8ed50d3 100755 >> --- a/spec/unit/indirector/rest.rb >> +++ b/spec/unit/indirector/rest.rb >> @@ -194,6 +194,16 @@ describe Puppet::Indirector::REST do >> @searcher.query_string(@request).should == "? >> one=#{escaping}" >> end >> >> + it "should convert to a string all option values that are >> integers" do >> + @request.stubs(:options).returns(:one => 50) >> + @searcher.query_string(@request).should == "?one=50" >> + end >> + >> + it "should convert to a string all option values that are >> floating point numbers" do >> + @request.stubs(:options).returns(:one => 1.2) >> + @searcher.query_string(@request).should == "?one=1.2" >> + end >> + >> it "should convert to a string and URI-escape all option >> values that are symbols" do >> escaping = URI.escape("sym bol") >> @request.stubs(:options).returns(:one => :"sym bol") >> diff --git a/spec/unit/network/http/mongrel/rest.rb b/spec/unit/ >> network/http/mongrel/rest.rb >> index e72d4f5..c03698d 100755 >> --- a/spec/unit/network/http/mongrel/rest.rb >> +++ b/spec/unit/network/http/mongrel/rest.rb >> @@ -128,6 +128,18 @@ describe "Puppet::Network::HTTP::MongrelREST" do >> result[:foo].should be_false >> end >> >> + it "should convert integer arguments to Integers" do >> + @request.expects(:params).returns('QUERY_STRING' >> => 'foo=15') >> + result = @handler.params(@request) >> + result[:foo].should == 15 >> + end >> + >> + it "should convert floating point arguments to Floats" >> do >> + @request.expects(:params).returns('QUERY_STRING' >> => 'foo=1.5') >> + result = @handler.params(@request) >> + result[:foo].should == 1.5 >> + end >> + >> it "should YAML-load and URI-decode values that are >> YAML-encoded" do >> escaping = URI.escape(YAML.dump(%w{one two})) >> @request.expects(:params).returns('QUERY_STRING' => >> "foo=#{escaping}") > > > > -- To define recursion, we must first define recursion. --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en -~----------~----~----~----~------~----~------~--~---
