Sha256: e120e3c6022fcda71b37f1b18ac775a29801a2f3397e45dd0ec6f80e92f46af1
Contents?: true
Size: 896 Bytes
Versions: 1
Compression:
Stored size: 896 Bytes
Contents
require "forwardable" module RodeoClown class EC2 < Struct.new(:ec2) def self.instances ec2.instances end def self.ec2 @ec2 ||= AWS::EC2.new end def self.by_name(name) new instances[name] end # # options: keys: [ foo... , scope: :all], [:values scope: any] # def self.filter_instances(options = {}) filtered = filter_by_tag_options(instances, options[:keys], :tagged) filter_by_tag_options(filtered, options[:values], :tagged_values) end def self.filter_by_tag_options(instances, options, filter = :tagged_values) return instances if options.nil? || options.empty? all = options.delete(:scope) == :all vals = options.delete(:values) if all vals.inject(instances) { |i, value| i.send(filter, value) } else instances.send filter, *vals end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rodeo_clown-0.0.1 | lib/rodeo_clown/ec2.rb |