Class: FIRM::Serializable::MethodResolver
- Inherits:
-
Object
- Object
- FIRM::Serializable::MethodResolver
- Defined in:
- lib/firm/serializable.rb
Overview
Small utility class for delayed method resolving
Instance Method Summary collapse
-
#initialize(klass, mtd_id, default = false) ⇒ MethodResolver
constructor
A new instance of MethodResolver.
- #resolve ⇒ Object
Constructor Details
#initialize(klass, mtd_id, default = false) ⇒ MethodResolver
Returns a new instance of MethodResolver.
546 547 548 549 550 |
# File 'lib/firm/serializable.rb', line 546 def initialize(klass, mtd_id, default=false) @klass = klass @mtd_id = mtd_id @default = default end |
Instance Method Details
#resolve ⇒ Object
552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 |
# File 'lib/firm/serializable.rb', line 552 def resolve m = @klass.instance_method(@mtd_id) rescue nil if m # check arity == 0 if m.arity>0 unless @default Kernel.raise ArgumentError, "Deserialize finalizer method #{@klass}#{@mtd_id} should not expect any argument", caller end else return ->(obj) { m.bind(obj).call } end end nil end |