h1. continuous4r h2.
What is it ? continuous4r is a continuous integration tool for Ruby on Rails. With it, you can aggregate reports of the best analysis, quality, and tests tools for Ruby on Rails. By just launching one Rake task and customizing a XML file describing your project, continuous4r builds for you an entire website in a Maven-like form/design. h2. Requirements h2. Installing
[sudo] gem install continuous4r
h2. Release notes for 0.0.3 version h2. Release notes for 0.0.2 version h2. The basics h3. Preparing your project In order to have access to continuous4r Rake tasks, you must open your Rakefile, and add to the end :
require 'continuous4r'
h3. Initializing your project In order to initialize your project, you must create your continuous4r-project.xml file. Just type this command and the file will be created :
rake continuous4r:init
Here is the content of this file, you can customize it to suite your needs :

    FIXME project description
    FIXME project URL
    FIXME Logo URL
    
        FIXME your company name here
        FIXME your company website URL here
        FIXME your company logo URL here
    
    
        
    
    
        [Trac|Bugzilla|Mantis|etc...]
        BUGTRACKER_URL
        BUGTRACKER_URL_ACCOUNT_CREATION
        BUGTRACKER_URL_SEARCH_TICKETS
        BUGTRACKER_URL_TICKETS_LIST
        BUGTRACKER_URL_TICKET_ADD
    
    
    
        
    

h3. Building your project When your project file is suitable, type :
rake continuous4r:build
When the build is finished, you can find your site in the RAILS_ROOT/tmp/continuous4r directory. h2. Features h3. Proxy configuration If you are behind a HTTP proxy within your company, you can configure it with a simple YAML file. Create a file named proxy.yml within your USER_HOME/.continuous4r directory, with the following content :
proxy:
  server: my.proxy.server
  port: my_port
  login: my_login
  password: my_password
When you will run the build task, if there is a need for continuous4r to find something on the internet (via Rubygems), it will automatically use this configuration. h3. CruiseControl.rb integration If you heard about Continuous Integration, and are a fan of CruiseControl.rb, just customize your project to build the 'continuous4r:build' Rake task, and a 'continuous4r' artifact will appear on your build page. h3. Running tests By default the behaviour of continuous4r is to ignore the fact that there are failures in your tests (because the failures are noticed within the tests report). If you want continuous4r to stop on tests failures, then you must set the "ignore-tests-failures" flag to false in your project file. h3. Tasks continuous4r built-in tasks are the core of the gem. They produce reports with some of the best code-related tools for Ruby on Rails. These tasks are described below : h4. dcov Dcov task produces a report related to the coverage of your Ruby documentation (rdoc). If there is a class, a module or a method which is not documented, this task finds it and reports it. Screenshot : h4. rcov Rcov is a tool which produces a report for the coverage of your Ruby code against you tests. Screenshot : h4. rdoc Produces your project documentation. h4. stats Produces what you get if you run 'rake stats', but in HTML format. h4. changelog Produces a HTML report of your code changes in your favorite source content manager. Git and Subversion are supported. Screenshot : h4. flog Flog is a tool which measures the complexity of your Ruby code. Screenshot : h4. xdoclet A task which transforms your Ruby files in HTML format with syntax highlighting support. This task is used via links in other tasks (look flog screenshot for example). Screenshot : h4. flay Flay task finds duplicates in your Ruby code. Screenshot : h4. reek Reek is code smell detector for Ruby. If there is something bad in your code, it tells you. Screenshot : h4. roodi Roodi parses your Ruby code and warns you about design issues. Screenshot : h4. saikuro Saikuro analyzes the cyclomatic complexity of your Ruby code. Screenshot : h4. tests Task to run your tests and make a report with details (type, success/failure, result). Screenshot : h4. zentest ZenTest is a test tool. It runs a Ruby file against its test file, and generates a convention-delta report if your tests are not good enough. Screenshot : h2. Help needed This version 0.0.2 has many improvements, but is still a pre-RC version of continuous4r. I'm planning on orienting the gem to collect some statistics about the tasks, and make a global quality report with graphs. I'm searching for volunteers to test, or work on this tool. With a more substancial amount of quality and work, this tool will be really great. h2. License This code is free to use under the terms of the MIT license. h2. Contact Comments are welcome. Send an email to "Vincent Dubois":mailto:duboisv@hotmail.com, or post a message on the forum.