Class: ExplicitDelegator
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- ExplicitDelegator
show all
- Defined in:
- lib/explicit_delegator.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of ExplicitDelegator.
3
4
5
6
|
# File 'lib/explicit_delegator.rb', line 3
def initialize(obj)
super(obj)
ensure_defined
end
|
Class Method Details
.enforce_definitions(*methods) ⇒ Object
20
21
22
23
24
|
# File 'lib/explicit_delegator.rb', line 20
def self.enforce_definitions(*methods)
define_method(:enforced_methods) do
return methods
end
end
|
Instance Method Details
#enforced_methods ⇒ Object
8
9
10
|
# File 'lib/explicit_delegator.rb', line 8
def enforced_methods
[]
end
|
#ensure_defined ⇒ Object
12
13
14
15
16
17
18
|
# File 'lib/explicit_delegator.rb', line 12
def ensure_defined
missing_methods = []
enforced_methods.each do |method|
missing_methods << method unless __getobj__.methods.include?(method)
end
raise "Methods required to use #{self.class}: #{missing_methods}" unless missing_methods.empty?
end
|