Assigning a variable based on existence of other variables in ruby 1.9 -


i got job fix webistrano installation , stuck in situation have receipt wherein following assignment broke after update ruby 1.8 ruby 1.9.3

if defined? var_one != nil   var_to_be_used = var_one else   $logger.info(var_one)   var_to_be_used = var_two end 

i have made sure (by adding above log-entries) var_one , var_two hold expected values. example when expect var_one hold value got following log:

** value in var_one
*** undefined local variable or method `var_two' #<capistrano::configuration::namespaces::namespace:0x000000032a6040>

the first case never reached. script goes else case - when var_one holds string.

how can fix it?

i solved with

var_to_be_used ||= var_one rescue var_to_be_used ||= var_two rescue nil 

accessing via var_one.nil? caused undefined local variable or method 'var_one' again.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

css - Can I use the :after pseudo-element on an input field? -