@private
# File lib/aws/ec2/filtered_collection.rb, line 20 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 38 def filter filter_name, *values filters = @filters.dup filters << { :name => filter_name, :values => values.flatten } collection_with(:filters => filters) end
@private
# File lib/aws/ec2/filtered_collection.rb, line 45 def filtered_request client_method, options = {}, &block options[:filters] = @filters unless @filters.empty? client.send(client_method, options) end
@private
# File lib/aws/ec2/filtered_collection.rb, line 84 def collection_with(options = {}) self.class.new(preserved_options.merge(options)) end
# File lib/aws/ec2/filtered_collection.rb, line 69 def filter_value_for filter_name @filters.each do |filter| return filter[:values].first if filter[:name] == filter_name end nil end
@private
# File lib/aws/ec2/filtered_collection.rb, line 78 def preserved_options { :config => config, :filters => @filters } end
# File lib/aws/ec2/filtered_collection.rb, line 60 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 51 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