Sha256: bd7690e5d246d0aa7bf1cd6e49ef6ebbff36f44899533ee2b4555ba66ed86806

Contents?: true

Size: 1013 Bytes

Versions: 71

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Data
    class Package
      class BasePerformer
        acts_as_abstract :result
        enable_speaker
        enable_listable
        lists.add_symbol :option, :excludes, :includes
        common_constructor :package, :options, default: [{}] do
          self.options = ::Avm::Data::Package::BasePerformer.lists.option
                           .hash_keys_validate!(options)
        end

        # @return [Set<Symbol>]
        def excludes
          ::Set.new((options[OPTION_EXCLUDES] || []).map(&:to_sym))
        end

        # @return [Set<Symbol>]
        def includes
          ::Set.new((options[OPTION_INCLUDES] || []).map(&:to_sym))
        end

        # @return [Hash<Symbol, Avm::Data::Unit]
        def selected_units
          r = package.units
          r = r.slice(*includes.to_a) if includes.any?
          r = r.except(*excludes.to_a) if excludes.any?
          r
        end
      end
    end
  end
end

Version data entries

71 entries across 71 versions & 2 rubygems

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