Module: Literal::Modifiers::Final
- Defined in:
- lib/literal/modifiers/final.rb
Instance Method Summary collapse
Instance Method Details
#final(method_name) ⇒ Object
4 5 6 7 |
# File 'lib/literal/modifiers/final.rb', line 4 def final(method_name) final_methods[method_name] = true method_name end |
#final_methods ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/literal/modifiers/final.rb', line 17 def final_methods return @final_methods if defined?(@final_methods) if is_a?(Class) && superclass.is_a?(Literal::Modifiers) @final_methods = superclass.final_methods.dup else @final_methods = Concurrent::Map.new end end |
#method_added(method_name) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/literal/modifiers/final.rb', line 9 def method_added(method_name) if final_methods[method_name] raise "Method #{method_name} is final and cannot be overridden." end super end |