Module: Rsodx::Delegate
- Included in:
- Service
- Defined in:
- lib/rsodx/delegate.rb
Instance Method Summary collapse
Instance Method Details
#delegate(*methods, to:, prefix: nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/rsodx/delegate.rb', line 5 def delegate(*methods, to:, prefix: nil) raise ArgumentError, "Missing target for delegation (to:)" unless to mod = Module.new do extend Forwardable methods.each do |method_name| delegated_name = if prefix prefix_str = prefix == true ? to.to_s : prefix.to_s "#{prefix_str}_#{method_name}" else method_name end def_delegator to, method_name, delegated_name end end include mod end |