r19cov 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +18 -0
- data/ChangeLog +3 -0
- data/README.rdoc +15 -0
- data/Rakefile +73 -0
- data/bin/r19cov +8 -0
- data/lib/r19cov.rb +39 -0
- data/lib/r19cov/analyzer.rb +88 -0
- data/lib/r19cov/cli.rb +9 -0
- data/lib/r19cov/coverage.rb +41 -0
- data/lib/r19cov/coverage/summary.rb +42 -0
- data/lib/r19cov/option_parser.rb +42 -0
- data/lib/r19cov/options.rb +24 -0
- data/lib/r19cov/rake/spec_task.rb +66 -0
- data/lib/r19cov/report/html.rb +49 -0
- data/lib/r19cov/report/html/detail_page.rb +24 -0
- data/lib/r19cov/report/html/index_page.rb +24 -0
- data/lib/r19cov/report/html/page.rb +93 -0
- data/lib/r19cov/report/html/templates/detail.html.erb +75 -0
- data/lib/r19cov/report/html/templates/index.html.erb +99 -0
- data/lib/r19cov/report/html/templates/r19cov.css +225 -0
- data/lib/r19cov/report_factory.rb +11 -0
- data/lib/r19cov/version.rb +5 -0
- data/spec/r19cov/analyzer_spec.rb +40 -0
- data/spec/r19cov/option_parser_spec.rb +78 -0
- data/spec/r19cov/report/html/page_spec.rb +28 -0
- data/spec/r19cov/report_factory_spec.rb +13 -0
- data/spec/r19cov/version_spec.rb +9 -0
- data/spec/r19cov_spec.rb +36 -0
- data/spec/sample/bar.rb +5 -0
- data/spec/sample/baz.rb +5 -0
- data/spec/sample/exit_script.rb +8 -0
- data/spec/sample/foo.rb +5 -0
- data/spec/sample/sample_script.rb +16 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +16 -0
- metadata +98 -0
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require File.join(File.dirname(__FILE__), '..', 'spec_helper')
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe R19Cov::Analyzer do
         | 
| 6 | 
            +
              before(:all) do
         | 
| 7 | 
            +
                @output_dir = File.join(File.dirname(__FILE__), '..', '..', 'coverage')
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
              
         | 
| 10 | 
            +
              describe '#targets' do
         | 
| 11 | 
            +
                it 'should return script files to analyze coverage' do
         | 
| 12 | 
            +
                  options = %w(foo.rb bar.rb baz.rb)
         | 
| 13 | 
            +
                  files = options.dup
         | 
| 14 | 
            +
                  analyzer = R19Cov::Analyzer.new(options)
         | 
| 15 | 
            +
                  analyzer.targets.should == options
         | 
| 16 | 
            +
                  
         | 
| 17 | 
            +
                  options = %w(./lib/foo.rb ./lib/bar.rb ./lib/baz.rb)
         | 
| 18 | 
            +
                  files = options.dup
         | 
| 19 | 
            +
                  analyzer = R19Cov::Analyzer.new(options)
         | 
| 20 | 
            +
                  analyzer.targets.should == files
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              describe '#output_dir' do
         | 
| 25 | 
            +
                it 'should return output dir' do
         | 
| 26 | 
            +
                  options = [__FILE__]
         | 
| 27 | 
            +
                  analyzer = R19Cov::Analyzer.new(options)
         | 
| 28 | 
            +
                  analyzer.output_dir.should == File.expand_path(@output_dir)
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              describe '#analyze' do
         | 
| 33 | 
            +
                it 'should analyze coverage' do
         | 
| 34 | 
            +
                  options = [__FILE__]
         | 
| 35 | 
            +
                  analyzer = R19Cov::Analyzer.new(options)
         | 
| 36 | 
            +
                  analyzer.analyze
         | 
| 37 | 
            +
                  analyzer.should have_at_least(1).coverages
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -0,0 +1,78 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require File.join(File.dirname(__FILE__), '..', 'spec_helper')
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe R19Cov::OptionParser do
         | 
| 6 | 
            +
              before(:each) do
         | 
| 7 | 
            +
                @out = StringIO.new
         | 
| 8 | 
            +
                @err = StringIO.new
         | 
| 9 | 
            +
                @parser = R19Cov::OptionParser.new(@out, @err)
         | 
| 10 | 
            +
                @help_pattern = /Usage: r19cov \[options\] \(FILE\\|DIRECTORY\)\+ \[-- --extra-options\]/m
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
              def parse(args)
         | 
| 14 | 
            +
                @parser.parse(args)
         | 
| 15 | 
            +
                @parser.options
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              it 'should accept files to exclude' do
         | 
| 19 | 
            +
                options = parse(['--exclude', 'foo'])
         | 
| 20 | 
            +
                options.exclude.should == ['foo']
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
              
         | 
| 23 | 
            +
              it 'should accept -x form of files to exclude option' do
         | 
| 24 | 
            +
                options = parse(['-x', 'bar'])
         | 
| 25 | 
            +
                options.exclude.should == ['bar']
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              it 'should accept coverage report directory' do
         | 
| 29 | 
            +
                options = parse(['--output', 'foo'])
         | 
| 30 | 
            +
                options.output_dir.should == 'foo'
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
              
         | 
| 33 | 
            +
              it 'should accept -o form of coverage report directory' do
         | 
| 34 | 
            +
                options = parse(['-o', 'bar'])
         | 
| 35 | 
            +
                options.output_dir.should == 'bar'
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
              
         | 
| 38 | 
            +
              it 'should print help to stdout if no args' do
         | 
| 39 | 
            +
                options = parse([])
         | 
| 40 | 
            +
                @out.rewind
         | 
| 41 | 
            +
                @out.read.should match(@help_pattern)
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
                
         | 
| 44 | 
            +
              it 'should print help to stdout' do
         | 
| 45 | 
            +
                options = parse(['--help'])
         | 
| 46 | 
            +
                @out.rewind
         | 
| 47 | 
            +
                @out.read.should match(@help_pattern)
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
              it 'should acceopt -h form of help' do
         | 
| 51 | 
            +
                options = parse(['-h'])
         | 
| 52 | 
            +
                @out.rewind
         | 
| 53 | 
            +
                @out.read.should match(@help_pattern)
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
              
         | 
| 56 | 
            +
              it 'should print version to stdout' do
         | 
| 57 | 
            +
                options = parse(['--version'])
         | 
| 58 | 
            +
                @out.rewind
         | 
| 59 | 
            +
                @out.read.should match(/r19cov \d+\.\d+\.\d+/n)
         | 
| 60 | 
            +
              end
         | 
| 61 | 
            +
             | 
| 62 | 
            +
              it 'should accept -v form of print version to stdout' do
         | 
| 63 | 
            +
                options = parse(['-v'])
         | 
| 64 | 
            +
                @out.rewind
         | 
| 65 | 
            +
                @out.read.should match(/r19cov \d+\.\d+\.\d+/n)
         | 
| 66 | 
            +
              end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
              it 'should raise if passed invalid option' do
         | 
| 69 | 
            +
                lambda {
         | 
| 70 | 
            +
                  parse(['-a'])
         | 
| 71 | 
            +
                }.should raise_error ::OptionParser::InvalidOption
         | 
| 72 | 
            +
              end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
              it 'should recognize extra options' do
         | 
| 75 | 
            +
                parse(['--', 'foo', 'bar'])
         | 
| 76 | 
            +
                ARGV.should == ['foo', 'bar']
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
            end
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require File.join(File.dirname(__FILE__), '..', '..', '..', 'spec_helper')
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            class Foo
         | 
| 6 | 
            +
              include R19Cov::Report::HTML::Page
         | 
| 7 | 
            +
            end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            describe R19Cov::Report::HTML::Page do
         | 
| 10 | 
            +
              before(:all) do
         | 
| 11 | 
            +
                @foo = Foo.new
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
              
         | 
| 14 | 
            +
              describe '#filename_format' do
         | 
| 15 | 
            +
                it 'should round filename if length of filename is over MAX_FILENAME_SIZE' do
         | 
| 16 | 
            +
                  filename = '/foo/bar/baz/hoge'
         | 
| 17 | 
            +
                  @foo.filename_format(filename).should == filename
         | 
| 18 | 
            +
                  
         | 
| 19 | 
            +
                  filename = ('0123456789' * 7) + '.html'
         | 
| 20 | 
            +
                  @foo.filename_format(filename).should == '...56789' + ('0123456789' * 6) + '.html'
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                it 'should round filename if file is under current directory' do
         | 
| 24 | 
            +
                  filename = File.join(Dir.pwd, 'foo', 'bar')
         | 
| 25 | 
            +
                  @foo.filename_format(filename).should == './foo/bar'
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
            end
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require File.join(File.dirname(__FILE__), '..', 'spec_helper')
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            describe R19Cov::ReportFactory do
         | 
| 6 | 
            +
              describe '#create' do
         | 
| 7 | 
            +
                it 'should create spedified Report object' do
         | 
| 8 | 
            +
                  mock_options = mock('options')
         | 
| 9 | 
            +
                  mock_options.should_receive(:report).and_return(:html)
         | 
| 10 | 
            +
                  R19Cov::ReportFactory.create(mock_options).should be_an_instance_of(R19Cov::Report::HTML)
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
    
        data/spec/r19cov_spec.rb
    ADDED
    
    | @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require File.join(File.dirname(__FILE__), 'spec_helper')
         | 
| 4 | 
            +
            require 'fileutils'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            describe 'bin/r19cov' do
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              before(:all) do
         | 
| 9 | 
            +
                @coverage_dir = File.join(File.dirname(__FILE__), 'tmp')
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              after(:all) do
         | 
| 13 | 
            +
                FileUtils.rm_r(@coverage_dir) if File.exist?(@coverage_dir)
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              it 'should create `coverage` dir and report html files' do
         | 
| 17 | 
            +
                script = File.join(File.dirname(__FILE__), 'sample', 'sample_script.rb')
         | 
| 18 | 
            +
                sh [r19cov_bin, "-o #{@coverage_dir}", script].join(' ')
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                File.exist?(@coverage_dir).should be_true
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                report_files = Dir["#{@coverage_dir}/**/*"]
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                report_files.any?{ |f| f =~ /foo_rb.html/ }.should be_true
         | 
| 25 | 
            +
                report_files.any?{ |f| f =~ /bar_rb.html/ }.should be_true
         | 
| 26 | 
            +
                report_files.any?{ |f| f =~ /baz_rb.html/ }.should be_true
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              it 'should not exit if exit in a library' do
         | 
| 30 | 
            +
                script = File.join(File.dirname(__FILE__), 'sample', 'exit_script.rb')
         | 
| 31 | 
            +
                sh [r19cov_bin, "-o #{@coverage_dir}", script].join(' ')
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                report_files = Dir["#{@coverage_dir}/**/*"]
         | 
| 34 | 
            +
                report_files.any?{ |f| f =~ /exit_script_rb.html/ }.should be_true
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
    
        data/spec/sample/bar.rb
    ADDED
    
    
    
        data/spec/sample/baz.rb
    ADDED
    
    
    
        data/spec/sample/foo.rb
    ADDED
    
    
    
        data/spec/spec.opts
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            --colour
         | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'spec'
         | 
| 4 | 
            +
            require 'r19cov'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            def coverage_dir
         | 
| 7 | 
            +
              File.join(File.dirname(__FILE__), '..', 'coverage')
         | 
| 8 | 
            +
            end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            def sh(*args)
         | 
| 11 | 
            +
              `#{args.join(' ')}`
         | 
| 12 | 
            +
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            def r19cov_bin
         | 
| 15 | 
            +
              File.join(File.dirname(__FILE__), '..', 'bin', 'r19cov')
         | 
| 16 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,98 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            +
            name: r19cov
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 | 
            +
            platform: ruby
         | 
| 6 | 
            +
            authors: 
         | 
| 7 | 
            +
            - orepuri
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 | 
            +
            bindir: bin
         | 
| 10 | 
            +
            cert_chain: []
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            date: 2010-01-20 00:00:00 +09:00
         | 
| 13 | 
            +
            default_executable: 
         | 
| 14 | 
            +
            dependencies: 
         | 
| 15 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 16 | 
            +
              name: rspec
         | 
| 17 | 
            +
              type: :development
         | 
| 18 | 
            +
              version_requirement: 
         | 
| 19 | 
            +
              version_requirements: !ruby/object:Gem::Requirement 
         | 
| 20 | 
            +
                requirements: 
         | 
| 21 | 
            +
                - - "="
         | 
| 22 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 23 | 
            +
                    version: 1.2.9
         | 
| 24 | 
            +
                version: 
         | 
| 25 | 
            +
            description: Coverage Tool for Ruby 1.9
         | 
| 26 | 
            +
            email: orepuri@gmail.com
         | 
| 27 | 
            +
            executables: 
         | 
| 28 | 
            +
            - r19cov
         | 
| 29 | 
            +
            extensions: []
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            extra_rdoc_files: []
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            files: 
         | 
| 34 | 
            +
            - COPYING
         | 
| 35 | 
            +
            - ChangeLog
         | 
| 36 | 
            +
            - README.rdoc
         | 
| 37 | 
            +
            - Rakefile
         | 
| 38 | 
            +
            - lib/r19cov/analyzer.rb
         | 
| 39 | 
            +
            - lib/r19cov/cli.rb
         | 
| 40 | 
            +
            - lib/r19cov/coverage/summary.rb
         | 
| 41 | 
            +
            - lib/r19cov/coverage.rb
         | 
| 42 | 
            +
            - lib/r19cov/option_parser.rb
         | 
| 43 | 
            +
            - lib/r19cov/options.rb
         | 
| 44 | 
            +
            - lib/r19cov/rake/spec_task.rb
         | 
| 45 | 
            +
            - lib/r19cov/report/html/detail_page.rb
         | 
| 46 | 
            +
            - lib/r19cov/report/html/index_page.rb
         | 
| 47 | 
            +
            - lib/r19cov/report/html/page.rb
         | 
| 48 | 
            +
            - lib/r19cov/report/html/templates/detail.html.erb
         | 
| 49 | 
            +
            - lib/r19cov/report/html/templates/index.html.erb
         | 
| 50 | 
            +
            - lib/r19cov/report/html/templates/r19cov.css
         | 
| 51 | 
            +
            - lib/r19cov/report/html.rb
         | 
| 52 | 
            +
            - lib/r19cov/report_factory.rb
         | 
| 53 | 
            +
            - lib/r19cov/version.rb
         | 
| 54 | 
            +
            - lib/r19cov.rb
         | 
| 55 | 
            +
            - bin/r19cov
         | 
| 56 | 
            +
            - spec/r19cov/analyzer_spec.rb
         | 
| 57 | 
            +
            - spec/r19cov/option_parser_spec.rb
         | 
| 58 | 
            +
            - spec/r19cov/report/html/page_spec.rb
         | 
| 59 | 
            +
            - spec/r19cov/report_factory_spec.rb
         | 
| 60 | 
            +
            - spec/r19cov/version_spec.rb
         | 
| 61 | 
            +
            - spec/r19cov_spec.rb
         | 
| 62 | 
            +
            - spec/sample/bar.rb
         | 
| 63 | 
            +
            - spec/sample/baz.rb
         | 
| 64 | 
            +
            - spec/sample/exit_script.rb
         | 
| 65 | 
            +
            - spec/sample/foo.rb
         | 
| 66 | 
            +
            - spec/sample/sample_script.rb
         | 
| 67 | 
            +
            - spec/spec.opts
         | 
| 68 | 
            +
            - spec/spec_helper.rb
         | 
| 69 | 
            +
            has_rdoc: true
         | 
| 70 | 
            +
            homepage: http://github.com/orepuri
         | 
| 71 | 
            +
            licenses: []
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            post_install_message: 
         | 
| 74 | 
            +
            rdoc_options: []
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            require_paths: 
         | 
| 77 | 
            +
            - lib
         | 
| 78 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 79 | 
            +
              requirements: 
         | 
| 80 | 
            +
              - - ">="
         | 
| 81 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 82 | 
            +
                  version: "1.9"
         | 
| 83 | 
            +
              version: 
         | 
| 84 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 85 | 
            +
              requirements: 
         | 
| 86 | 
            +
              - - ">="
         | 
| 87 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 88 | 
            +
                  version: "0"
         | 
| 89 | 
            +
              version: 
         | 
| 90 | 
            +
            requirements: []
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            rubyforge_project: r19cov
         | 
| 93 | 
            +
            rubygems_version: 1.3.5
         | 
| 94 | 
            +
            signing_key: 
         | 
| 95 | 
            +
            specification_version: 3
         | 
| 96 | 
            +
            summary: R19Cov is a Coverage Tool for Ruby 1.9. It uses `coverage` library embeded in Ruby 1.9. R19Cov analyzes source code coverage and report in HTML format.
         | 
| 97 | 
            +
            test_files: []
         | 
| 98 | 
            +
             |