On Wed, Oct 14, 2009 at 07:19:38PM +0200, J.Daniel Schmidt wrote:
> ref: refs/heads/master
> commit 9e8e1a7d81cbdd2970a6264e456aed01331cb79d
> Author: J. Daniel Schmidt <[email protected]>
> Date:   Wed Oct 14 19:19:38 2009 +0200
> 
>     add json support, small fixes in controllers, cleanup

You can use "git add -i" to easily split unrelated changes to
separate commits:
http://book.git-scm.com/4_interactive_adding.html

> ---
>  .../app/controllers/configuration_controller.rb    |   42 ++++++++++++++---
>  .../app/controllers/registration_controller.rb     |   15 +++---
>  plugins/registration/app/models/registration.rb    |   46 ++++++++++++++-----
>  .../app/views/configuration/show.json.erb          |    2 +-
>  4 files changed, 77 insertions(+), 28 deletions(-)
> 
> diff --git a/plugins/registration/app/controllers/registration_controller.rb 
> b/plugins/registration/app/controllers/registration_controller.rb
> index bb80661..7ce1c05 100644
> --- a/plugins/registration/app/controllers/registration_controller.rb
> +++ b/plugins/registration/app/controllers/registration_controller.rb
> @@ -9,20 +9,21 @@ class RegistrationController < ApplicationController
>      # POST to registration => run registration
>      @registration = Registration.new({})
>  
> -    # TODO: parse post data and set context data
> +    # TODO overwrite context data if defined
>      #[email protected]_context( { } )
> +
> +    # TODO: parse post data and set the arguments
> +    # @registration.set_arguments( { } )
> +
>      ret = @registration.register
> +    headers["Status"] = "400 Bad Request" if ret == 3

Is the intent to report to the upper layers (UI) that the lower
layer (YaPI) encountered invalid data? Then you are supposed to 
  raise InvalidParameters.new :some_item => "Missing"
http://lists.opensuse.org/yast-devel/2009-09/msg00117.html

> --- a/plugins/registration/app/models/registration.rb
> +++ b/plugins/registration/app/models/registration.rb
> @@ -27,8 +29,8 @@ class Registration
>      return if hash.nil?
>  
>      # merge custom context data
> -    if hash.class.to_s == 'Hash'
> -       @context.merge hash
> +    if hash.class == Hash
> +       hash.each {|k, v|  @context.merge!( { k => ['s', "#{v.to_s}"] } ) }

In '"#{v.to_s}"' you are doing the string conversion twice
needlessly. Once is enough:
$ irb
irb(main):001:0> a = :A
=> :A
irb(main):002:0> "#{a.to_s}"
=> "A"
irb(main):003:0> "#{a}"
=> "A"
irb(main):004:0> a.to_s
=> "A"

Also, what is the point of merging a single keyed hash?
  @context[k] = ['s', v.to_s]
seems enough.
I see, it is influenced by the old deleted code. But then I'd
recommend keeping '@context.merge! hash' (with "!") and doing the variant
conversion in a separate step, because it will be unnecessary,
eventually:
  https://bugzilla.novell.com/show_bug.cgi?id=538050


>      else
>        raise "Invalid or missing registration initialization context data."
>      end
> @@ -44,19 +46,26 @@ class Registration
>      self.initialize hash
>    end
>  
> -  def set_arguments(hash)
> -    @arguments = hash
> +  def add_argument(key, value)
> +    @arguments.merge!( { key => [ 'a{ss}',{ 'value' => "#{value.to_s}" } ] } 
> )
>    end
>  
>    def add_arguments(hash)
> -    @arguments.merge hash
> +    hash.each {|k, v| self.add_argument k, v }
> +  end
> +
> +  def set_arguments(hash)
> +    @arguments = {}
> +    self.add_arguments hash
>    end
-- 
Martin Vidner, YaST developer
http://en.opensuse.org/User:Mvidner

Kuracke oddeleni v restauraci je jako fekalni oddeleni v bazenu
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to