aris
November 9, 2012, 8:29am
1
When I have this pattern
sign_me(@user, :event => :authentication, :subdomain =>
subdomain)
how can I write it to avoid sending the :subdomain option if
subdomain.nil?
( if possible …)
sign_me(@user, :event => :authentication #?, :subdomain =>
subdomain unless subdomain.nil? )
On Fri, Nov 9, 2012 at 3:27 PM, Erwin [email protected] wrote:
When I have this pattern
sign_me(@user, :event => :authentication, :subdomain => subdomain)
how can I write it to avoid sending the :subdomain option if
subdomain.nil? ( if possible …)
sign_me(@user, :event => :authentication #?, :subdomain =>
subdomain unless subdomain.nil? )
I’m not sure if it’s possible to do it in a single line (as far as you
want
to have a tidy code)
opts = { event: :authentication }
opts[:subdomain] = subdomain if subdomain
sign_me @user , opts
–
thanks
Le vendredi 9 novembre 2012 08:27:59 UTC+1, Erwin a crit :
On 9 November 2012 07:27, Erwin [email protected] wrote:
When I have this pattern
sign_me(@user, :event => :authentication, :subdomain => subdomain)
how can I write it to avoid sending the :subdomain option if subdomain.nil?
( if possible …)
sign_me(@user, :event => :authentication #?, :subdomain => subdomain
unless subdomain.nil? )
You could try
sign_me(@user , :event => :authentication, (:subdomain =>
subdomain unless subdomain.nil?) )
or
sign_me(@user , :event => :authentication, :subdomain =>
(subdomain unless subdomain.nil?) )
Colin
On 9 November 2012 09:37, Jim Ruther N. [email protected] wrote:
subdomain unless subdomain.nil?) )
from
/home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:47:in
`start’
from
/home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:8:in
`start’
from
/home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands.rb:41:in
<top (required)>' from script/rails:6:in
require’
from script/rails:6:in `’
I am not surprised that did not work, my answer was not intended to
convey any suggestion that it would work, just something that would be
interesting to try.
or
sign_me(@user , :event => :authentication, :subdomain =>
(subdomain unless subdomain.nil?) )
and this still passes subdomain as a key if used in a hash but if used in a
routes helper, this will work
Yes, it will pass the subdomain as nil, so it depends on the context
whether this is satisfactory.
Colin
I have a related question.
I was suggesting Erwin to use just:
sign_me(@user , :event => :authentication #?, :subdomain => subdomain)
because if subdomain is nil, sign_me should correctly handle it.
I mean, in an hypothetical sign_in method I’d write:
def sign_me(user, options)
if options[:subdomain]
# do_something
end
end
if subdomain is nil the method handles it correctly.
but with this code:
def sign_me(user, options)
if options.has_key? :subdomain
# do_something
end
end
this goes wrong (“options.has_key? :subdomain” is true)! So I’d say the
first implementation seems more correct, do you agree with me or I’
missing something important about checking hash parameters?
On 9 November 2012 13:44, Tommaso V. [email protected]
wrote:
# do_something
end
end
if subdomain is nil the method handles it correctly.
That is the way I would do it.
Colin
Thanks Colin
I finally decided to keep the :subdomain option and let the method
decide
about what to do with it ( seems to be the common pattern)
Le vendredi 9 novembre 2012 10:26:34 UTC+1, Colin L. a crit :
On Fri, Nov 9, 2012 at 5:25 PM, Colin L. [email protected]
wrote:
subdomain
unless subdomain.nil? )
You could try
sign_me(@user , :event => :authentication, (:subdomain =>
subdomain unless subdomain.nil?) )
I was surprised that you answered this Colin so I tried it out but I got
a
syntax error
app.root_path(foo: ‘me’, (bar: ‘blah’ if false))
SyntaxError: (irb):17: syntax error, unexpected tLABEL
app.root_path(foo: ‘me’, (bar: ‘blah’ if false))
^
(irb):17: syntax error, unexpected ‘)’, expecting tASSOC
from
/home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:47:in
start' from /home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands/console.rb:8:in
start’
from
/home/jim/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.2/lib/rails/commands.rb:41:in
<top (required)>' from script/rails:6:in
require’
from script/rails:6:in `’
or
sign_me(@user , :event => :authentication, :subdomain =>
(subdomain unless subdomain.nil?) )
and this still passes subdomain as a key if used in a hash but if used
in a
routes helper, this will work
app.root_path(foo: ‘me’, bar: (‘blah’ if false))
=> “/?foo=me”
https://groups.google.com/d/msg/rubyonrails-talk/-/TOTAudTTAa8J .
For more options, visit https://groups.google.com/groups/opt_out .
–