# File lib/aws/ec2/filtered_collection.rb, line 19 def initialize options = {} @filters = options[:filters] || [] super end
Specify one or more criteria to filter elastic IP addresses by. A subsequent call to each will limit the results returned by provided filters.
* Chain multiple calls of #filter together to AND multiple conditions together. * Supply multiple values to a singler #filter call to OR those value conditions together. * '*' matches one or more characters and '?' matches any one character.
# File lib/aws/ec2/filtered_collection.rb, line 35 def filter filter_name, *values filters = @filters.dup filters << { :name => filter_name, :values => values.flatten } collection_with(:filters => filters) end
@api private
# File lib/aws/ec2/filtered_collection.rb, line 42 def filtered_request client_method, options = {}, &block options[:filters] = @filters unless @filters.empty? client.send(client_method, options) end
@api private
# File lib/aws/ec2/filtered_collection.rb, line 81 def collection_with(options = {}) self.class.new(preserved_options.merge(options)) end
# File lib/aws/ec2/filtered_collection.rb, line 66 def filter_value_for filter_name @filters.each do |filter| return filter[:values].first if filter[:name] == filter_name end nil end
@api private
# File lib/aws/ec2/filtered_collection.rb, line 75 def preserved_options { :config => config, :filters => @filters } end
# File lib/aws/ec2/filtered_collection.rb, line 57 def subnet_id_option options subnet_id = options.delete(:subnet) subnet_id ||= options[:subnet_id] subnet_id ||= filter_value_for('subnet-id') subnet_id = subnet_id.id if subnet_id.is_a?(Subnet) subnet_id end
# File lib/aws/ec2/filtered_collection.rb, line 48 def vpc_id_option options vpc_id = options[:vpc] vpc_id ||= options[:vpc_id] vpc_id ||= filter_value_for('vpc-id') vpc_id = vpc_id.id if vpc_id.is_a?(VPC) vpc_id end