Skip to content

Instantly share code, notes, and snippets.

@vcolavin
Created July 18, 2016 05:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vcolavin/6f8d3b052b6b5febf8aa201c88b5ddca to your computer and use it in GitHub Desktop.
Save vcolavin/6f8d3b052b6b5febf8aa201c88b5ddca to your computer and use it in GitHub Desktop.
Example using modules within modules to create private namespaces
module MyFirstModule
def first_public_method(my_string)
return "#{my_string} #{PrivateMethods.private_method}"
end
module PrivateMethods
def self.private_method
1
end
end
end
module MySecondModule
def second_public_method(my_string)
return "#{my_string} #{PrivateMethods.private_method}"
end
module PrivateMethods
def self.private_method
2
end
end
end
class MyClass
include MyFirstModule
include MySecondModule
end
puts MyClass.new.first_public_method("hey") # => "hey 1"
puts MyClass.new.second_public_method("hey") # => "hey 2"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment