Is there a way for me to do that on ruby ?
class Foo
def self.class_name
self.class.name
end
end
class Bar < Foo
end
class Tar < Foo
end
Bar.class_name
= ‘Bar’
Tar.class_name
= ‘Tar’
I want to get the class name of the class who called the instance method
from the parent class.
I tried the code above and it keeps getting me ‘Class’ as the result.
Is that possible in ruby ?
[]`s
===================
Alexandre Mondaini Calvão
“Nossa recompensa se encontra no esforço e não no resultado. Um esforço
total é uma vitória completa.” [Ghandi]
Is not instance method, is class method… My bad
===================
Alexandre Mondaini Calvão
“Nossa recompensa se encontra no esforço e não no resultado. Um esforço
total é uma vitória completa.” [Ghandi]
2014-10-10 0:17 GMT-03:00 Alexandre Calvão [email protected]:
You might want something like this.
class Foo
end
Foo.instance_eval do
def class_name
self.name
end
end
class Bar < Foo
end
class Tar < Foo
end
puts Foo.class_name
#=> Foo
puts Bar.class_name
#=> Bar
puts Tar.class_name
#=> Tar
Thanks Mike.
===================
Alexandre Mondaini Calvão
“Nossa recompensa se encontra no esforço e não no resultado. Um esforço
total é uma vitória completa.” [Ghandi]
2014-10-10 13:31 GMT-03:00 Mike [email protected]:
On 2014-Oct-10, at 12:31 , Mike [email protected] wrote:
end
#=> Foo
Is not instance method, is class method… My bad
class Foo
Is that possible in ruby ?
[]`s
===================
Alexandre Mondaini Calvo
“Nossa recompensa se encontra no esforo e no no resultado. Um esforo total uma
vitria completa.” [Ghandi]
Why do anything fancy? An instance know which class it is. Just ask for
the .class and then get that Class’s .name.
irb2.1.3> class Foo; end
#2.1.3 => nil
irb2.1.3> class Bar < Foo; end
#2.1.3 => nil
irb2.1.3> class Baz < Foo; end
#2.1.3 => nil
irb2.1.3> foo = Foo.new
#2.1.3 => #Foo:0x007f98940cb528
irb2.1.3> foo.class.name
#2.1.3 => “Foo”
irb2.1.3> bar = Bar.new
#2.1.3 => #Bar:0x007f98940b55c0
irb2.1.3> bar.class.name
#2.1.3 => “Bar”
irb2.1.3> baz = Baz.new
#2.1.3 => #Baz:0x007f98940b38d8
irb2.1.3> baz.class.name
#2.1.3 => “Baz”
-Rob