app/business_logic/domain/acceptable_releases.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module Domain
  class AcceptableReleases
    include Enumerable

    def initialize(releases, rule_klass:)
      @releases = releases
      @rule_klass = rule_klass
    end

    def each(&block)
      acceptable_releases.each(&block)
    end

    private

    def acceptable_releases
      @releases.select do |release|
        @rule_klass.new(release).acceptable?
      end
    end
  end
end