/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.ruby.rake; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Status; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; import com.aptana.ruby.internal.rake.RakeTasksHelper; import com.aptana.ruby.launching.RubyLaunchingPlugin; /** * The activator class controls the plug-in life cycle */ public class RakePlugin extends AbstractUIPlugin { // The plug-in ID public static final String PLUGIN_ID = "com.aptana.ruby.rake"; //$NON-NLS-1$ // The shared instance private static RakePlugin plugin; private IRakeHelper rakeHelper; /** * The constructor */ public RakePlugin() { super(); } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ public void start(BundleContext context) throws Exception { plugin = this; super.start(context); } /* * (non-Javadoc) * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ public void stop(BundleContext context) throws Exception { rakeHelper = null; plugin = null; super.stop(context); } /** * Returns the shared instance * * @return the shared instance */ public static RakePlugin getDefault() { return plugin; } public String getRakePath(IProject project) { IPath wd = null; if (project != null) { wd = project.getLocation(); } IPath result = RubyLaunchingPlugin.getRakePath(wd); return (result == null) ? RubyLaunchingPlugin.RAKE : result.toOSString(); } public static void log(String message, Exception e) { getDefault().getLog().log(new Status(Status.ERROR, PLUGIN_ID, -1, message, e)); } public static void log(Exception e) { log(e.getMessage(), e); } public synchronized IRakeHelper getRakeHelper() { if (rakeHelper == null) { rakeHelper = new RakeTasksHelper(); } return rakeHelper; } }