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
-~----------~----~----~----~------~----~------~--~---

Reply via email to