On 2014-Oct-10, at 12:31 , Mike <local....@gmail.com> wrote: > 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 > > > > 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 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] >
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 -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/F27EF066-FD80-4956-9E08-1203479AAA22%40agileconsultingllc.com. For more options, visit https://groups.google.com/d/optout.