Skip to content

Instantly share code, notes, and snippets.

@Shinpeim
Created June 9, 2015 07:06
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 Shinpeim/5118f23e23f390cae522 to your computer and use it in GitHub Desktop.
Save Shinpeim/5118f23e23f390cae522 to your computer and use it in GitHub Desktop.
module UserValidator
module AdministratorContext
def validate!
raise "name required" if @name.nil?
end
end
module UserContext
def validate!
end
end
end
class User
def initialize(name)
@name = name
end
def save!
validate!
end
def validate!
raise "abstract!"
end
end
u = User.new(nil)
u.extend UserValidator::AdministratorContext
begin
u.save!
rescue => e
p e
end
u = User.new(nil)
u.extend UserValidator::UserContext
u.save!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment