Sha256: b0c617dd55115e641d33978221f60f8a7ddc5ed01e7249fb7cbe9d4a7144835e

Contents?: true

Size: 1.34 KB

Versions: 7

Compression:

Stored size: 1.34 KB

Contents

module PoolParty    
  module Resources
    
    def execute_if(attr_s="$hostname", str="", parent=self, &block)
      # parent = parent.is_a?(PoolParty::Cloud::Cloud) ? parent : parent.parent
      opts = {:attribute => attr_s, :equal => str}
      options = parent.respond_to?(:options) ? parent.options.merge!(opts) : opts
      # @c = PoolParty::Resources::Conditional.new(options, parent, &block)
      parent.add_resource(:conditional, options, parent, &block)
      # @c
    end
    
    class Conditional < Resource
      
      def initialize(opts={}, parent=self, &block)
        name "#{opts[:name] ? opts[:name] : opts[:attribute]} == #{opts[:equal]}"
        attribute opts[:attribute]
        equal opts[:equal]
        super
      end
      
      # This way, we only get other resources, and not the conditional
      # itself as a resource
      def virtual_resource?
        true
      end
      
      def printable?
        false
      end
      
      def duplicatable?
        false
      end
      
      def to_string(pre="")
        returning Array.new do |output|
          output << "# #{name.sanitize}"
          output << "case #{attribute} {"
          output << "#{equal} : { #{resources_string_from_resources(resources)} }"
          output << "default : {}"
          output << "}"
        end.join("\n")
      end
      
    end
    
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
auser-poolparty-0.2.23 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.24 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.25 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.26 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.35 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.36 lib/poolparty/pool/resources/conditional.rb
auser-poolparty-0.2.37 lib/poolparty/pool/resources/conditional.rb