Skip to content

Instantly share code, notes, and snippets.

@davekapp
Created September 5, 2012 15:59
Show Gist options
  • Save davekapp/3638999 to your computer and use it in GitHub Desktop.
Save davekapp/3638999 to your computer and use it in GitHub Desktop.
Sample of some class method and class-instance-var inheritance
class DataHolder
class << self
attr_accessor :data1, :data2
def use_data
puts "I have #{data1} and #{data2}"
end
end
end
class DataHolderAlpha < DataHolder
end
class DataHolderBeta < DataHolder
end
DataHolder.data1 = "plain"
DataHolder.data2 = "jane"
DataHolder.use_data
# do something awesome here
DataHolderAlpha.data1 = "Alpha"
DataHolderAlpha.data2 = "Foo"
DataHolderBeta.data1 = "Beta"
DataHolderBeta.data2 = "Bar"
DataHolderAlpha.use_data
DataHolderBeta.use_data
# make sure these classes aren't bumping into each other
[DataHolder, DataHolderAlpha, DataHolderBeta].each do |klass|
klass.use_data
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment