Sha256: cf955b2238bb426319347e56f41cd3af3d6263fc6c5c8b0b8adee9b96fda6a1c

Contents?: true

Size: 757 Bytes

Versions: 1

Compression:

Stored size: 757 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
        base.send(proc_or_method, object)
      end
    end

    def safe_call_method(base, method)
      return nil unless base.respond_to?(method)

      base.send(method)
    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.0 lib/object_attorney/helpers.rb