Created
July 18, 2016 05:17
-
-
Save vcolavin/6f8d3b052b6b5febf8aa201c88b5ddca to your computer and use it in GitHub Desktop.
Example using modules within modules to create private namespaces
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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