Code Monkey home page Code Monkey logo

ecomp's Introduction

ecomp

This is a placeholder readme file aiming to provide a quick starting point to anyone getting their hands dirty with ecomp.

The readme tries to assume no knowledge of using a Ruby project (gems & bundler etc.) and is likely to be incorrect!

Requirements

To run the ecomp tools, Ruby 2.1.2 must be available along with RubyGems and Bundler. Java analysis requires a JVM. JavaScript analysis requires nodejs. Ruby analysis requires no other tools.

Quickstart

Ensure you have Ruby 2.1.2 installed and RubyGems and Bundler, then in the directory you checked ecomp out to, run:

bundle

This will download and install the required gems that the tool requires to run.

In the directory you checked out ecomp to, run:

export PATH=$PATH:`pwd`/bin

You should now be able to execute the 'metrics' tool.

Usage

The metrics tool requires two arguments, a report output directory (where JSON files will be created) and a file glob string (e.g. **/*.java).

Examples

The following examples try to highlight typical usage of ecomp.

Using run_ecomp.sh

Ensuring that run_ecomp.sh is available in your PATH, complexity of a project can be calculated by issueing the following command:

run_ecomp.sh SVN_REPOSITORY PROJECT_NAME '**/*.SOURCE_EXTENSION'

A concrete example could be:

run_ecomp.sh http://myrepo.org/myjavaproject/trunk myjavaproject '**/*.java'

The run_ecomp.sh script will then use git svn to clone the repository to the myjavaproject, correcting the author names as it does so and will then use the metrics tool to start analysing the source of the project.

Once the complexity calculation is complete, the JSON files will then be made available to the public/data/myjavaproject directory, allowing for visualisation of the data to be accessible at http://a.sinatra.host:9292/#myjavaproject.

NOTE: The process is time consuming and involves going through all the previous commits to calculate a play-by-play dataset of complexity changes to each of the source files.

Web Site Options

To select your project either do

#project-name

And the defaults of 30 day range will apply

Or you can specify the following options but you must use project=project-name Starting with a hash and then joined using ampersands

To select your project

project=project-name

To select number of days back, this will override historical

days=integer-value

To select all history

historical

e.g. project with name project-name and range of 20 days

my.ip.addess:9292/#project=project-name&days=20

TODO

Documenting how to render the datasets so that the data may be visualised.

More to come.

ecomp's People

Contributors

beazlr02 avatar carriehall avatar chrisajs avatar crosslandwa avatar dhurrell avatar jonpbbc avatar kevinrutherford avatar lukejpreston avatar rthompson1991 avatar sdclibbery avatar sharps51 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.