Sha256: 30f1be384785ec0fa908cf5f200aab5b8919daa8586b67f8d91af67ad8f5e80d

Contents?: true

Size: 949 Bytes

Versions: 12

Compression:

Stored size: 949 Bytes

Contents

module Sprinkle
  module Installers
    # This is a abstract class installer that most all the package installers
    # inherit from (deb, *BSD pkg, rpm, etc)
    class PackageInstaller < Installer
      
      attr_accessor :packages #:nodoc:

      def initialize(parent, *packages, &block) #:nodoc:
        options = packages.extract_options!
        super parent, options, &block
        @packages = [*packages].flatten
      end
      
      def self.auto_api
        method_name = self.to_s.underscore.split("/").last
        class_name = self.to_s
        api do
          method="def #{method_name}(*names, &block)
            install #{class_name}.new(self, *names, &block)
          end"
          eval(method)
        end
      end
      
      # called by subclasses of PackageInstaller
      def install_package(*names, &block) #:nodoc:
        install Sprinkle::Installers::class.new(self, *names, &block)
      end

    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
sprinkle-0.7.1.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.7.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.7 lib/sprinkle/installers/package_installer.rb
sprinkle-0.6.2 lib/sprinkle/installers/package_installer.rb
sprinkle-0.6.1.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.6.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.6.0 lib/sprinkle/installers/package_installer.rb
sprinkle-0.5.2 lib/sprinkle/installers/package_installer.rb
sprinkle-0.5.1.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.5.1 lib/sprinkle/installers/package_installer.rb
sprinkle-0.5.0 lib/sprinkle/installers/package_installer.rb
sprinkle-0.5.0.rc1 lib/sprinkle/installers/package_installer.rb