Skip to content

Instantly share code, notes, and snippets.

@yvesvanbroekhoven
Created February 21, 2013 15:19
Show Gist options
  • Save yvesvanbroekhoven/5005401 to your computer and use it in GitHub Desktop.
Save yvesvanbroekhoven/5005401 to your computer and use it in GitHub Desktop.
Ruby singleton & inheritance
class Parent
def self.name(name)
@name = name
puts @name
end
def whoami
puts "I'm the parent #{@name}"
end
name('dad')
end
class Child < Parent
def self.name
super
end
end
@fd
Copy link

fd commented Feb 21, 2013

  • L4 zet een instance variable op het object Parent (self) dat nu toevallig ook een Class is.
  • L9 zal nooit 'dad' printen omdat dat word uitgevoerd op een object dat een Parent is.

Maw:

  • Parent.new.class => Parent
  • Parent.class => Class

@yvesvanbroekhoven
Copy link
Author

class Parent

  def self.name(name = nil)
    if name
      @name = name
    else
      @name
    end
  end

  def whoami
    puts "I'm #{self.class.name}"
  end

  name('dad')

end

class Child < Parent

  def self.name(name = nil)
    super
  end

  name('babydoll')
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment