Module: Yaoc::MappingBase
- Defined in:
- lib/yaoc/mapping_base.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
- #converter_methods ⇒ Object
- #deferrer_strategy(proc) ⇒ Object
- #fetcher ⇒ Object
- #fill_result_from_proc(result, key, proc, deferred = false) ⇒ Object
- #fill_result_with_value(result, key, value) ⇒ Object
- #to_proc ⇒ Object
Class Method Details
.included(other) ⇒ Object
4 5 6 |
# File 'lib/yaoc/mapping_base.rb', line 4 def self.included(other) other.extend(ClassMethods) end |
Instance Method Details
#call ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/yaoc/mapping_base.rb', line 20 def call unless to_convert.nil? self.class.mapping_strategy.call(self) else nil end end |
#converter_methods ⇒ Object
47 48 49 |
# File 'lib/yaoc/mapping_base.rb', line 47 def converter_methods self.class.converter_methods end |
#deferrer_strategy(proc) ⇒ Object
42 43 44 |
# File 'lib/yaoc/mapping_base.rb', line 42 def deferrer_strategy(proc) Yaoc::Helper::ToProcDelegator.new(proc) end |
#fetcher ⇒ Object
51 52 53 |
# File 'lib/yaoc/mapping_base.rb', line 51 def fetcher defined?(super) ? super : :fetch end |
#fill_result_from_proc(result, key, proc, deferred = false) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/yaoc/mapping_base.rb', line 32 def fill_result_from_proc(result, key, proc, deferred=false) value = if deferred deferrer_strategy(proc) else proc.call end fill_result_with_value(result, key, value) end |
#fill_result_with_value(result, key, value) ⇒ Object
28 29 30 |
# File 'lib/yaoc/mapping_base.rb', line 28 def fill_result_with_value(result, key, value) result.tap{|taped_result| taped_result[key] = value} end |
#to_proc ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/yaoc/mapping_base.rb', line 8 def to_proc ->(to_convert){ old_to_convert = self.to_convert begin self.to_convert = to_convert call ensure self.to_convert = old_to_convert end } end |