Ruby on Rails
Monday, October 13, 2014
On 2014-Oct-10, at 12:31 , Mike <local.mat@gmail.com> wrote:
You might want something like this.class FooendFoo.instance_eval dodef class_nameself.nameendendclass Bar < Fooendclass Tar < Fooendputs Foo.class_name#=> Fooputs Bar.class_name#=> Barputs Tar.class_name#=> Tar
On Thursday, October 9, 2014 8:27:10 PM UTC-7, Alexandre Calvão wrote: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 <apo...@gmail.com>:Is there a way for me to do that on ruby ?class Foodef self.class_nameendendclass Bar < Fooendclass Tar < FooendBar.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]
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
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment