Sha256: e769353dba523ac9109de90842ef6e1b203a8209bd886af9c07d28c46afcafc0

Contents?: true

Size: 934 Bytes

Versions: 4

Compression:

Stored size: 934 Bytes

Contents

# frozen_string_literal: true

module Avm
  module ApplicationStereotypes
    class Base
      module Detection
        common_concern

        module ClassMethods
          # @return [Class<Avm::Sources::Base>, nil]
          def detect(object)
            return singleton_instance if
            %w[name instance_class source_class].any? { |t| send("detect_by_#{t}?", object) }
          end

          # @return [Boolean]
          def detect_by_instance_class?(object)
            object.is_a?(::Class) && singleton_instance.instance_class == object
          end

          # @return [Boolean]
          def detect_by_name?(object)
            object.is_a?(::String) && singleton_instance.name == object
          end

          # @return [Boolean]
          def detect_by_source_class?(object)
            object.is_a?(::Class) && singleton_instance.source_class == object
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
avm-0.28.0 lib/avm/application_stereotypes/base/detection.rb
eac_tools-0.10.0 sub/avm/lib/avm/application_stereotypes/base/detection.rb
avm-0.27.0 lib/avm/application_stereotypes/base/detection.rb
eac_tools-0.9.0 sub/avm/lib/avm/application_stereotypes/base/detection.rb