Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/everyday-cli-utils/override.rb
Class Method Summary collapse
- .class_overrides(s) ⇒ Object
- .override(method_name, &block) ⇒ Object
- .true_overrides ⇒ Object
- .true_overrides=(overrides) ⇒ Object
Instance Method Summary collapse
- #create_method(name, &block) ⇒ Object
- #override(method_name, &block) ⇒ Object
- #overrides ⇒ Object
- #true_overrides ⇒ Object
- #true_overrides=(overrides) ⇒ Object
Class Method Details
.class_overrides(s) ⇒ Object
81 82 83 |
# File 'lib/everyday-cli-utils/override.rb', line 81 def class_overrides(s) @overrides && @overrides.get(s) end |
.override(method_name, &block) ⇒ Object
93 94 95 96 97 98 99 100 |
# File 'lib/everyday-cli-utils/override.rb', line 93 def override(method_name, &block) self.class_eval { original_method = instance_method(method_name.to_sym) self.true_overrides ||= MethodOverrides.new self.true_overrides.store_override(method_name.to_sym, original_method) self.create_method(method_name.to_sym, &block) } end |
.true_overrides ⇒ Object
85 86 87 |
# File 'lib/everyday-cli-utils/override.rb', line 85 def true_overrides @overrides end |
.true_overrides=(overrides) ⇒ Object
89 90 91 |
# File 'lib/everyday-cli-utils/override.rb', line 89 def true_overrides=(overrides) @overrides = overrides end |
Instance Method Details
#create_method(name, &block) ⇒ Object
52 53 54 |
# File 'lib/everyday-cli-utils/override.rb', line 52 def create_method(name, &block) self.send(:define_method, name, &block) end |
#override(method_name, &block) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/everyday-cli-utils/override.rb', line 68 def override(method_name, &block) s2 = self class << self self end.class_eval { original_method = instance_method(method_name.to_sym) s2.true_overrides ||= MethodOverrides.new s2.true_overrides.store_override(method_name.to_sym, original_method) self.create_method(method_name.to_sym, &block) } end |
#overrides ⇒ Object
56 57 58 |
# File 'lib/everyday-cli-utils/override.rb', line 56 def overrides (@overrides && @overrides.get(self)) || self.class.class_overrides(self) end |
#true_overrides ⇒ Object
60 61 62 |
# File 'lib/everyday-cli-utils/override.rb', line 60 def true_overrides @overrides end |
#true_overrides=(overrides) ⇒ Object
64 65 66 |
# File 'lib/everyday-cli-utils/override.rb', line 64 def true_overrides=(overrides) @overrides = overrides end |