Module: Deprecate::Deprecatable
- Included in:
- Object
- Defined in:
- lib/deprecate.rb
Instance Method Summary collapse
- #__deprecated_run_action__(method_name, replacement = nil) ⇒ Object
- #deprecate(sym, replacement = nil, scope = nil) ⇒ Object
Instance Method Details
#__deprecated_run_action__(method_name, replacement = nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/deprecate.rb', line 29 def __deprecated_run_action__(method_name, replacement = nil) method_key = "#{self.class.name}##{method_name}" return if Deprecate.config[:warn_once] && Deprecate.warned_methods[method_key] replacement_text = replacement ? " (use #{replacement} instead)" : "" caller_info = if Deprecate.config[:show_caller] caller_location = caller_locations(3, 1) caller_location && caller_location.first ? caller_location.first.to_s : "unknown" else "unknown" end = Deprecate.config[:message_format] % { method: method_name, replacement: replacement_text, caller: caller_info } Deprecate.config[:output_stream].puts() Deprecate.warned_methods[method_key] = true if Deprecate.config[:warn_once] end |
#deprecate(sym, replacement = nil, scope = nil) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/deprecate.rb', line 51 def deprecate(sym, replacement=nil, scope=nil) unless sym.is_a?(Symbol) raise ArgumentError, 'deprecate() requires symbols for its first argument.' end meth = instance_method(sym) unless scope pub = public_instance_methods pro = protected_instance_methods pri = private_instance_methods if pub.include?(sym) || pub.include?(sym.to_s) scope = :public elsif pro.include?(sym) || pro.include?(sym.to_s) scope = :protected elsif pri.include?(sym) || pri.include?(sym.to_s) scope = :private end end define_method(sym) do |*args| __deprecated_run_action__(sym, replacement) meth.bind(self).call(*args) end method(scope).call(sym) if scope return scope end |