I like to concatenate a string out of some variables, some of which
are nil. Instead of getting always a "can't convert nil into String
(TypeError)" message, I would like to have "nil" appended to my
string, as in Java null objects are printed as null in Strings.
Something like this:
words = Hash.new
words[0]="one"
allWords = "all words:"
allWords << words[0]
allWords << words[1]
# --> can't convert nil into String (TypeError)
Is this possible? Or how can I handle nil objects for this case?
On 2/23/07, tchick <monsorno-nospam@gmx.de> wrote:
Hi *,
I like to concatenate a string out of some variables, some of which
are nil. Instead of getting always a "can't convert nil into String
(TypeError)" message, I would like to have "nil" appended to my
string, as in Java null objects are printed as null in Strings.
Something like this:
words = Hash.new
words[0]="one"
allWords = "all words:"
allWords << words[0]
allWords << words[1]
# --> can't convert nil into String (TypeError)
Is this possible? Or how can I handle nil objects for this case?
Hi.
There are some ways to do it. The simplest I can suggest is:
allWords << (w[1] || "nil")
with the disadvantage you'd have to state it everywhere you expect a
nil value.
Another way is
class String
alias old_concat <<
def <<(something)
something = "nil" if something.nil?
old_concat(something)
end
end
in which case is not recommended to mess up with core classes.
···
On Feb 23, 7:55 am, "tchick" <monsorno-nos...@gmx.de> wrote:
Hi *,
I like to concatenate a string out of some variables, some of which
are nil. Instead of getting always a "can't convert nil into String
(TypeError)" message, I would like to have "nil" appended to my
string, as in Java null objects are printed as null in Strings.
Something like this:
Is this possible? Or how can I handle nil objects for this case?
If you're adventerous (ie. your code is essentially standalone and in
no danger of effecting others):
class NilClass
def to_str
""
end
end
T.
···
On Feb 23, 9:00 am, "tchick" <monsorno-nos...@gmx.de> wrote:
Hi *,
I like to concatenate a string out of some variables, some of which
are nil. Instead of getting always a "can't convert nil into String
(TypeError)" message, I would like to have "nil" appended to my
string, as in Java null objects are printed as null in Strings.
Something like this:
words = Hash.new
words[0]="one"
allWords = "all words:"
allWords << words[0]
allWords << words[1]
# --> can't convert nil into String (TypeError)
Is this possible? Or how can I handle nil objects for this case?
What I'm actually trying is this: I have an array of hashes,
and I like to make strings out of them. Some of the hashes
do not have values for some keys, so when putting together
the string, I get the error message, but I just want to add
"nil" or something else for this case.
···
On 23 Feb., 15:19, Harry <ruby.hardw...@gmail.com> wrote:
What I'm actually trying is this: I have an array of hashes,
and I like to make strings out of them. Some of the hashes
do not have values for some keys, so when putting together
the string, I get the error message, but I just want to add
"nil" or something else for this case.
words = Hash.new "nil" # I suppose this is what Harry thought of
words[0]="one"
allWords = "all words:"
allWords << words[0]
allWords << words[1]
p allWords # => "all words:onenil"
Regards,
Pit
···
On 23 Feb., 15:19, Harry <ruby.hardw...@gmail.com> wrote: