Package hudson.plugins.rubyMetrics.railsStats

Source Code of hudson.plugins.rubyMetrics.railsStats.RailsStatsPublisher$DescriptorImpl

package hudson.plugins.rubyMetrics.railsStats;

import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.plugins.rake.Rake;
import hudson.plugins.rake.RubyInstallation;
import hudson.plugins.rubyMetrics.AbstractRailsTaskPublisher;
import hudson.plugins.rubyMetrics.railsStats.model.RailsStatsResults;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.Publisher;
import org.kohsuke.stapler.DataBoundConstructor;

import java.io.ByteArrayOutputStream;

/**
* Rails stats {@link Publisher}
*
* @author David Calavera
*
*/
@SuppressWarnings("unchecked")
public class RailsStatsPublisher extends AbstractRailsTaskPublisher {

    @DataBoundConstructor
    public RailsStatsPublisher(String rakeInstallation, String rakeWorkingDir) {
        super(rakeInstallation, rakeWorkingDir, "stats");
    }

    protected void buildAction(ByteArrayOutputStream out, AbstractBuild<?, ?> build) {
        final RailsStatsParser parser = new RailsStatsParser();
        RailsStatsResults results = parser.parse(out);

        RailsStatsBuildAction action = new RailsStatsBuildAction(build, results);
        build.getActions().add(action);
    }

    @Override
    public Action getProjectAction(AbstractProject<?,?> project) {
        return new RailsStatsProjectAction(project);
    }

    @Extension
    public static final DescriptorImpl DESCRIPTOR = new DescriptorImpl();

    public static final class DescriptorImpl extends BuildStepDescriptor<Publisher> {

        protected DescriptorImpl() {
            super(RailsStatsPublisher.class);
        }

        @Override
        public String getHelpFile() {
            return "/plugin/rubyMetrics/railsStatsHelp.html";
        }

        @Override
        public String getDisplayName() {
            return "Publish Rails stats report";
        }

        public RubyInstallation[] getRakeInstallations() {
            return Rake.DESCRIPTOR.getInstallations();
        }

        @Override
        public boolean isApplicable(Class<? extends AbstractProject> jobType) {
            return true;
        }

    }

    @Override
    public BuildStepDescriptor<Publisher> getDescriptor() {
        return DESCRIPTOR;
    }

}
TOP

Related Classes of hudson.plugins.rubyMetrics.railsStats.RailsStatsPublisher$DescriptorImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.