sprinkle-tool/sprinkle

View on GitHub
lib/sprinkle/installers/npm.rb

Summary

Maintainability
A
45 mins
Test Coverage
module Sprinkle
  module Installers
    # = Npm package Installed
    #
    # Installs an npm module
    #
    # == Example Usage
    #
    #   package :magic_beans do
    #     npm 'grunt'
    #   end
    #
    #   verify { has_npm 'grunt' }
    class Npm < Installer

      attr_accessor :package_name

      api do
        def npm(package, &block)
          install Npm.new(self, package, &block)
        end
      end

      verify_api do
        def has_npm(package)
          @commands << "npm --global list | grep \"#{package}@\""
        end
      end

      def initialize(parent, package_name, &block) #:nodoc:
        super parent, &block
        @package_name = package_name
      end

    protected

      def install_commands #:nodoc:
        "npm install --global #{@package_name}"
      end

    end
  end
end