Sha256: 89a893a98f183b52e0d032c78d3b62953748cc44741d6eb8b4a4ef7b25a025d1
Contents?: true
Size: 850 Bytes
Versions: 1
Compression:
Stored size: 850 Bytes
Contents
require 'object_attorney/errors' module ObjectAttorney module Helpers module_function def marked_for_destruction?(object) return false unless object.respond_to?(:marked_for_destruction?) object.marked_for_destruction? end def call_proc_or_method(base, proc_or_method, object = nil) if proc_or_method.is_a?(Proc) base.instance_exec(object, &proc_or_method) else call_method!(base, proc_or_method, object) end end def call_method!(base, method, *args) unless base.respond_to?(method) raise NotImplementedError, "#{base} does not respond to #{method}" end base.send(method, *args) end def extend_errors_if_necessary(object) return if object.respond_to?(:errors) object.class.class_eval { include Errors } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
object_attorney-3.0.2 | lib/object_attorney/helpers.rb |