Sha256: 1e92f64e9f9f78122539907739106911e503cb9a4b9a945006bd5fa44474e001

Contents?: true

Size: 1.5 KB

Versions: 14

Compression:

Stored size: 1.5 KB

Contents

require "juicer"
require "juicer/install/base"
require "zip/zip"

module Juicer
  module Install
    #
    # Install and uninstall routines for the Mozilla Rhino jar.
    #
    class RhinoInstaller < Base
      attr_reader :latest

      def initialize(install_dir = Juicer.home)
        super(install_dir)
        @latest = "1_7R2-RC1"
        @website = "http://ftp.mozilla.org/pub/mozilla.org/js/"
      end

      #
      # Install Rhino. Downloads the jar file and stores it in the installation
      # directory along with the License text.
      #
      def install(version = nil)
        version = super((version || latest).gsub(/\./, "_"))
        base = "rhino#{version}"
        filename = download(File.join(@website, "#{base}.zip"))
        target = File.join(@install_dir, path)

        Zip::ZipFile.open(filename) do |file|
          FileUtils.mkdir_p(File.join(target, version))

          begin
            file.extract("#{base.sub(/-RC\d/, "")}/LICENSE.txt", File.join(target, version, "LICENSE.txt"))
          rescue Exception
            # Fail silently, some releases don't carry the license
          end

          file.extract("#{base.sub(/-RC\d/, "")}/js.jar", File.join(target, "bin", "#{base}.jar"))
        end
      end

      #
      # Uninstalls Rhino
      #
      def uninstall(version = nil)
        super((version || latest).gsub(/\./, "_")) do |dir, version|
          base = "rhino#{version}"
          File.delete(File.join(dir, "bin/", "#{base}.jar"))
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 3 rubygems

Version Path
psyho_juicer-1.0.9 lib/juicer/install/rhino_installer.rb
juicer-1.0.9 lib/juicer/install/rhino_installer.rb
juicer-1.0.8 lib/juicer/install/rhino_installer.rb
juicer-1.0.7 lib/juicer/install/rhino_installer.rb
psyho_juicer-1.0.7 lib/juicer/install/rhino_installer.rb
juicer-1.0.6 lib/juicer/install/rhino_installer.rb
juicer-1.0.5 lib/juicer/install/rhino_installer.rb
juicer-1.0.4 lib/juicer/install/rhino_installer.rb
juicer-1.0.3 lib/juicer/install/rhino_installer.rb
juicer-1.0.2 lib/juicer/install/rhino_installer.rb
juicer-1.0.1 lib/juicer/install/rhino_installer.rb
psyho_juicer-1.0.0 lib/juicer/install/rhino_installer.rb
juicer-1.0.0 lib/juicer/install/rhino_installer.rb
ktheory-juicer-1.0.0.ktheory1 lib/juicer/install/rhino_installer.rb