Sha256: 1c17698e4f2def4c5d40d111d8823081e833dd838e042878d915fd934a23ae08

Contents?: true

Size: 1.22 KB

Versions: 205

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require 'avm/application_stereotypes/base'
require 'avm/registry/application_stereotypes/stereotype_builder'
require 'eac_ruby_utils/core_ext'

module Avm
  module Registry
    class ApplicationStereotypes
      class BuildAvailable
        enable_method_class

        common_constructor :owner

        def result
          reset_buffer
          read_registries
          buffer.values.map(&:build)
        end

        private

        attr_accessor :buffer

        def read_object(type, object)
          buffer[object.stereotype_namespace_module] ||=
            ::Avm::Registry::ApplicationStereotypes::StereotypeBuilder
              .new(object.stereotype_namespace_module)
          buffer[object.stereotype_namespace_module].add_object(type, object)
        end

        def read_registries
          ::Avm::ApplicationStereotypes::Base.lists.resource.each_value do |resource|
            read_registry(resource)
          end
        end

        def read_registry(resource)
          ::Avm::Registry.send(resource.to_s.pluralize).available
            .each { |obj| read_object(resource, obj) }
        end

        def reset_buffer
          self.buffer = {}
        end
      end
    end
  end
end

Version data entries

205 entries across 205 versions & 2 rubygems

Version Path
avm-0.94.1 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.98.0 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.94.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.94.0 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.93.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.92.0 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.92.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.91.0 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.90.1 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.87.1 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.90.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.87.0 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.89.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.86.12 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.88.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.86.11 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.87.0 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.86.8 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb
avm-0.86.2 lib/avm/registry/application_stereotypes/build_available.rb
eac_tools-0.86.7 sub/avm/lib/avm/registry/application_stereotypes/build_available.rb