Module: DifferedDelegator
- Included in:
- Binder::AR
- Defined in:
- lib/active_record_binder.rb
Overview
Private: A simple module that delegates classes methods when needed, keeping the calls in memory.
Instance Method Summary collapse
Instance Method Details
#delegate_to(klass_or_object) ⇒ Object
19 20 21 22 23 24 25 26 27 |
# File 'lib/active_record_binder.rb', line 19 def delegate_to klass_or_object @delegators.each do |data| unless data.empty? name = data[:name] args = data[:params] klass_or_object.send(name, *args) end end end |
#register_delegators(*args) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/active_record_binder.rb', line 7 def register_delegators *args args.each do |delegator| delegator = delegator.to_s module_eval %Q{ def self.#{delegator} *parameters @delegators ||= [] @delegators << { name: :#{delegator}, params: parameters } end } end end |