Sha256: 99159ddb78ee23affadf380aa5158173a62b2e428575b571d2ed785b9745c015

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

# frozen_string_literal: true

require_relative "object/instance_variable_delete"
require_relative "object/instance_variable_fetch"
require_relative "object/memoize_including_falsy_values"
require_relative "object/resolve_class"
require_relative "object/resolve_type"

module ConvenientService
  module Utils
    module Object
      class << self
        ##
        # @example
        #   ConvenientService::Utils::Object.instance_variable_delete("abc", :@foo)
        #
        def instance_variable_delete(...)
          InstanceVariableDelete.call(...)
        end

        ##
        # @example
        #   ConvenientService::Utils::Object.instance_variable_fetch("abc", :@foo) { :bar }
        #
        def instance_variable_fetch(...)
          InstanceVariableFetch.call(...)
        end

        ##
        # @example
        #   object = Object.new.tap { |object| object.instance_eval { self.class.attr_reader :foo } }
        #
        #   ConvenientService::Utils::Object.memoize_including_falsy_values(object, :@foo) { false }
        #
        def memoize_including_falsy_values(...)
          MemoizeIncludingFalsyValues.call(...)
        end

        ##
        # @example
        #   ConvenientService::Utils::Object.resolve_class("foo")
        #
        def resolve_class(...)
          ResolveClass.call(...)
        end

        ##
        # @example
        #   ConvenientService::Utils::Object.resolve_type("foo")
        #
        def resolve_type(...)
          ResolveType.call(...)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convenient_service-0.12.0 lib/convenient_service/utils/object.rb