Hi,
what is the preferred way to see if an object already includes a
instance variable?
for now i do something like:
@my_object.instance_variables.include? “var_name”
Cheers
detlef
Hi,
what is the preferred way to see if an object already includes a
instance variable?
for now i do something like:
@my_object.instance_variables.include? “var_name”
Cheers
detlef
Hi,
AFAIK it’s the only way.
Question: Why does Object#instance_varialbe_get have no documentation?
It’s behaviour isn’t that clear in cases like
Hi Detief, Aur,
On 2/19/07, SonOfLilit [email protected] wrote:
Hi,
AFAIK it’s the only way.
There’s also:
obj.instance_eval{defined?(@foo)}
As you’re hopefully aware, though, it’s probably not particularly
straightforward because it’s discouraged in general. Peeking at an
object’s instance variables is kinda intruding on its privacy. There
are some valid uses to be sure, but usually I think you’re better off
providing accessors for anything of interest outside the object.
Question: Why does Object#instance_varialbe_get have no documentation?
It’s behaviour isn’t that clear in cases like
Where are you looking? “ri instance_variable_get” gives me docs.
Regards,
George.
On 2/19/07, SonOfLilit [email protected] wrote:
aur-sarafs-computer:~ aursaraf$ ri Object#instance_variable_get -T
------------------------------------------- Object#instance_variable_get
instance_variable_get(ivarname)(no description...)
aur-sarafs-computer:~ aursaraf$ ruby -v
ruby 1.8.5 (2006-12-04 patchlevel 2) [i686-darwin8.8.1]
Returns the value of the given instance variable (or throws a
NameError exception). The @ part of the variable name should be
included for regular instance variables
class Fred
def initialize(p1, p2)
@a, @b = p1, p2
end
end
fred = Fred.new('cat', 99)
fred.instance_variable_get(:@a) #=> "cat"
fred.instance_variable_get("@b") #=> 99
g@bang:~$ ruby -v
ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux]
Maybe a version thing? (Just guessing.)
Regards,
George.
(no description...)
aur-sarafs-computer:~ aursaraf$ ruby -v
ruby 1.8.5 (2006-12-04 patchlevel 2) [i686-darwin8.8.1]
Rdoc is there !!
ri instance_variable_get
------------------------------------------- Object#instance_variable_get
obj.instance_variable_get(symbol) => obj
Returns the value of the given instance variable (or throws a
+NameError+ exception). The +@+ part of the variable name should be
included for regular instance variables
class Fred
def initialize(p1, p2)
@a, @b = p1, p2
end
end
fred = Fred.new('cat', 99)
fred.instance_variable_get(:@a) #=> "cat"
fred.instance_variable_get("@b") #=> 99
On 2/18/07, SonOfLilit [email protected] wrote:
straightforward because it’s discouraged in general. Peeking at an
object’s instance variables is kinda intruding on its privacy. There
are some valid uses to be sure, but usually I think you’re better off
providing accessors for anything of interest outside the object.Question: Why does Object#instance_varialbe_get have no documentation?
It’s behaviour isn’t that clear in cases likeWhere are you looking? “ri instance_variable_get” gives me docs.
(no description...)
E:\Documents and Settings\Jason>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]
documentation here:
http://www.ruby-doc.org/core/classes/Object.src/M000323.html
FYI I get the same thing.
E:\Documents and Settings\Jason>ri instance_variable_get
------------------------------------------- Object#instance_variable_get
instance_variable_get(ivarname)(no description...)
E:\Documents and Settings\Jason>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]
same here:
(no description...)
giles-computer:giles [02-18 08:00] ~
! ruby -v
ruby 1.8.5 (2006-08-25) [i686-darwin8.8.3]
haven’t had any trouble with ri on this machine before, that I remember.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs