All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.torquebox.mojo.rubygems.RubygemsGateway Maven / Gradle / Ivy

The newest version!
/*
 * Sonatype Nexus (TM) Open Source Version
 * Copyright (c) 2008-present Sonatype, Inc.
 * All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
 *
 * This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
 * which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
 *
 * Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
 * of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
 * Eclipse Foundation. All other trademarks are the property of their respective owners.
 */
package org.torquebox.mojo.rubygems;

import java.io.InputStream;

/**
 * factory for all the ruby classes. all those ruby classes come with java interface
 * so they can be used easily from java.
 * 
 * @author christian
 *
 */
public interface RubygemsGateway
{
  /**
   * Cleans up resources used by gateway and terminates it along with the underlying scripting container.
   */
  void terminate();

  /**
   * create a new instance of GemspecHelper
   * @param gemspec the stream to the rzipped marshalled Gem::Specification ruby-object
   * @return an empty GemspecHelper
   */
  GemspecHelper newGemspecHelper(InputStream gemspec);

  /**
   * create a new instance of GemspecHelper
   * @param gem the stream to the from which the gemspec gets extracted
   * @return an empty GemspecHelper
   */
  GemspecHelper newGemspecHelperFromGem(InputStream gem);

  /**
   * create a new instance of DependencyHelper
   * @return an empty DependencyHelper
   */
  DependencyHelper newDependencyHelper();

  /**
   * create a new instance of SpecsHelper
   * @return an empty SpecsHelper
   */
  SpecsHelper newSpecsHelper();

  /**
   * create a new instance of MergeSpecsHelper
   * @return an empty MergeSpecsHelper
   */
  MergeSpecsHelper newMergeSpecsHelper();

  /**
   * create a new instance of DependencyData and parse
   * the given dependency data
   * @param dependency the input-stream with the dependency data
   * @param name of gem of the dependency data
   * @param modified when the dependency data were last modified
   * @return dependency data
   */
  DependencyData newDependencyData(InputStream dependency, String name, long modified);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy