Skip to content

Instantly share code, notes, and snippets.

@seanredmond
Forked from anonymous/ruby_fiddle.rb
Created June 14, 2012 20:06
Show Gist options
  • Save seanredmond/2932605 to your computer and use it in GitHub Desktop.
Save seanredmond/2932605 to your computer and use it in GitHub Desktop.
Simple example of using class variable from a mixin
module MX
@testvar = 'abc'
def ModTest
'This is ModTest.'
end
def self.ModVarTest
"This is ModVarTest. #{@testvar}"
end
def self.SetVar(v)
@testvar = v
end
end
class A
extend MX
def self.Test
puts 'This is test.'
end
def self.TestMixin
puts self.ModTest
end
def self.TestMixinVar
puts MX.ModVarTest
end
def self.SetMixinVar(v)
MX.SetVar(v)
end
end
class B
extend MX
def self.AlsoTestMixinVar
puts MX.ModVarTest
end
end
A.Test
A.TestMixin
A.TestMixinVar
B.AlsoTestMixinVar
A.SetMixinVar('fghj')
A.TestMixinVar
B.AlsoTestMixinVar
MX.SetVar('234')
A.TestMixinVar
B.AlsoTestMixinVar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment