Sha256: 3d48e5148cb0f01744e13da2988f74b18d81a99a22e59d7a2c597d704c8acee4

Contents?: true

Size: 866 Bytes

Versions: 7

Compression:

Stored size: 866 Bytes

Contents

require "capistrano/configuration"
require "capistrano/configuration/empty_filter"
require "capistrano/configuration/host_filter"
require "capistrano/configuration/null_filter"
require "capistrano/configuration/role_filter"

module Capistrano
  class Configuration
    class Filter
      def initialize(type, values=nil)
        raise "Invalid filter type #{type}" unless [:host, :role].include? type
        av = Array(values)
        @strategy = if av.empty? then EmptyFilter.new
                    elsif av.include?(:all) || av.include?("all") then NullFilter.new
                    elsif type == :host then HostFilter.new(values)
                    elsif type == :role then RoleFilter.new(values)
                    else NullFilter.new
                    end
      end

      def filter(servers)
        @strategy.filter servers
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
capistrano-3.8.0 lib/capistrano/configuration/filter.rb
capistrano-3.7.2 lib/capistrano/configuration/filter.rb
capistrano-3.7.1 lib/capistrano/configuration/filter.rb
capistrano-3.7.0 lib/capistrano/configuration/filter.rb
capistrano-3.7.0.beta1 lib/capistrano/configuration/filter.rb
capistrano-3.6.1 lib/capistrano/configuration/filter.rb
capistrano-3.6.0 lib/capistrano/configuration/filter.rb