Class: MethodOverrides
Class Method Summary collapse
- .register_override(s, s2, method_name, &block) ⇒ Object
- .store_true_override(s, s2, method_name) ⇒ Object
Instance Method Summary collapse
- #empty?(method_name) ⇒ Boolean
- #get(obj) ⇒ Object
-
#initialize ⇒ MethodOverrides
constructor
A new instance of MethodOverrides.
- #store_override(method_name, method) ⇒ Object
Constructor Details
#initialize ⇒ MethodOverrides
Returns a new instance of MethodOverrides.
2 3 4 |
# File 'lib/everyday-cli-utils/override.rb', line 2 def initialize @overrides = {} end |
Class Method Details
.register_override(s, s2, method_name, &block) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/everyday-cli-utils/override.rb', line 20 def register_override(s, s2, method_name, &block) s.class_eval { MethodOverrides.store_true_override(s, s2, method_name) s.create_method(method_name.to_sym, &block) } end |
.store_true_override(s, s2, method_name) ⇒ Object
27 28 29 30 31 |
# File 'lib/everyday-cli-utils/override.rb', line 27 def store_true_override(s, s2, method_name) original_method = s.instance_method(method_name.to_sym) s2.true_overrides ||= MethodOverrides.new s2.true_overrides.store_override(method_name.to_sym, original_method) end |
Instance Method Details
#empty?(method_name) ⇒ Boolean
6 7 8 |
# File 'lib/everyday-cli-utils/override.rb', line 6 def empty?(method_name) @overrides[method_name].nil? || @overrides[method_name].empty? end |
#get(obj) ⇒ Object
15 16 17 |
# File 'lib/everyday-cli-utils/override.rb', line 15 def get(obj) OverridesInstance.new(@overrides, obj) end |
#store_override(method_name, method) ⇒ Object
10 11 12 13 |
# File 'lib/everyday-cli-utils/override.rb', line 10 def store_override(method_name, method) @overrides[method_name] ||= [] @overrides[method_name] << method end |