metrical 0.0.6 → 0.0.7

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.
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ pkg/*
4
+ .rvmrc
5
+ tmp/
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ MetricFu::Configuration.run do |config|
3
+ config.metrics -= [ :rcov ]
4
+ end
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in metrical.gemspec
4
+ gemspec
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ metrical (0.0.7)
5
+ main (~> 4.6.0)
6
+ metric_fu (~> 2.1.1)
7
+ rake
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ Saikuro (1.1.0)
13
+ activesupport (3.1.0)
14
+ multi_json (~> 1.0)
15
+ arrayfields (4.7.4)
16
+ chronic (0.3.0)
17
+ churn (0.0.13)
18
+ chronic (>= 0.2.3)
19
+ hirb
20
+ json_pure
21
+ main
22
+ ruby_parser (~> 2.0.4)
23
+ sexp_processor (~> 3.0.3)
24
+ colored (1.2)
25
+ erubis (2.7.0)
26
+ fattr (2.2.0)
27
+ flay (1.4.3)
28
+ ruby_parser (~> 2.0)
29
+ sexp_processor (~> 3.0)
30
+ flog (2.5.2)
31
+ ruby_parser (~> 2.0)
32
+ sexp_processor (~> 3.0)
33
+ haml (3.1.3)
34
+ hirb (0.5.0)
35
+ i18n (0.6.0)
36
+ json_pure (1.5.4)
37
+ spruz (~> 0.2.8)
38
+ main (4.6.0)
39
+ arrayfields (>= 4.7.4)
40
+ fattr (>= 2.1.0)
41
+ map (>= 2.0.0)
42
+ map (4.5.0)
43
+ metric_fu (2.1.1)
44
+ Saikuro (>= 1.1.0)
45
+ activesupport (>= 2.0.0)
46
+ chronic (~> 0.3.0)
47
+ churn (>= 0.0.7)
48
+ flay (>= 1.2.1)
49
+ flog (>= 2.3.0)
50
+ rails_best_practices (>= 0.6.4)
51
+ rcov (>= 0.8.3.3)
52
+ reek (>= 1.2.6)
53
+ roodi (>= 2.1.0)
54
+ syntax
55
+ multi_json (1.0.3)
56
+ rails_best_practices (0.10.1)
57
+ activesupport
58
+ colored
59
+ erubis
60
+ haml
61
+ i18n
62
+ ruby-progressbar
63
+ ruby_parser
64
+ rake (0.9.2)
65
+ rcov (0.9.10)
66
+ reek (1.2.8)
67
+ ruby2ruby (~> 1.2)
68
+ ruby_parser (~> 2.0)
69
+ sexp_processor (~> 3.0)
70
+ roodi (2.1.0)
71
+ ruby_parser
72
+ ruby-progressbar (0.0.10)
73
+ ruby2ruby (1.3.0)
74
+ ruby_parser (~> 2.0)
75
+ sexp_processor (~> 3.0)
76
+ ruby_parser (2.0.6)
77
+ sexp_processor (~> 3.0)
78
+ sexp_processor (3.0.6)
79
+ spruz (0.2.13)
80
+ syntax (1.0.0)
81
+
82
+ PLATFORMS
83
+ ruby
84
+
85
+ DEPENDENCIES
86
+ metrical!
@@ -0,0 +1,79 @@
1
+ # Metrical
2
+
3
+ MetricFu is awesome! Metrical strives to make it a little bit easier to get working.
4
+
5
+ ## Features
6
+
7
+ ### Metrical doesn't intrude on your project
8
+
9
+ Metrical makes it easy to run MetricFu without making it a project dependency. Bundler requires
10
+ that everything you need go inside the Gemfile. MetricFu is rather big project with a ton of
11
+ dependencies. Including that inside your Gemfile just clutters it up.
12
+
13
+ Also, MetricFu wants to be installed inside your Rakefile. With Metrical, you can configure MetricFu
14
+ in a separate file, `.metrics` in the root of your project.
15
+
16
+ ### Cleverer defaults
17
+
18
+ Normally, RCov would work on a black-listing basis. This means that your coverage reports would
19
+ occasionally be flooded with code outside your project. No longer, because the default is now to
20
+ exclude everything and only include your `lib` and `app` directories. It also fixes some issues with
21
+ loading RSpec.
22
+
23
+ ## Usage
24
+
25
+ Install:
26
+
27
+ gem install metrical
28
+
29
+ Run:
30
+
31
+ metrical
32
+
33
+ ## Configuration
34
+
35
+ You can configure MetricFu in a `.metrics` file in the root of your project.
36
+
37
+ MetricFu::Configuration.run do |config|
38
+ config.metrics -= [ :rcov ]
39
+ end
40
+
41
+ For more information on configuring your metrics, please visit the
42
+ [MetricFu homepage](http://metric-fu.rubyforge.org/).
43
+
44
+ And that's all there is too it. If you have any suggestions, ideas or bug fixes,
45
+ please drop me a line, or make a github issue.
46
+
47
+ ## Known issues
48
+
49
+ ### RCov and Ruby 1.9
50
+
51
+ RCov doesn't work with Ruby 1.9. You should use something like
52
+ [SimpleCov](https://github.com/colszowka/simplecov). Unfortunately, it hasn't been included into
53
+ MetricFu yet. Until then, make sure to remove RCov from MetricFu, as the example above shows.
54
+
55
+ ### New syntax in Ruby 1.9
56
+
57
+ Most metrics can't cope with the new syntax in Ruby 1.9. There is nothing I can do about that, or
58
+ the creator of these metrics, because the root lie in the code parser they use. Either don't use the
59
+ new syntax or exclude these metrics in your `.metrics` file.
60
+
61
+ ### Roodi vs. Psych
62
+
63
+ If you're running Ruby 1.9 with Psych as your default YAML parser (possible in 1.9.2, and the
64
+ default in 1.9.3), you might get an error message. I have no clue what to do about it. Some help on
65
+ this would be greatly appreciated.
66
+
67
+ ### Gem dependency issues
68
+
69
+ Metrical depends on a lot of other gems. Not all gem authors adhere to guidelines such as
70
+ [SemVer](http://semver.org/). This means that sometimes, when a new version of a gem is released,
71
+ things break. I try to fix the issues I come across inside Metrical, by making a dependency of a
72
+ dependency a fixed dependency of Metrical. It's difficult to do this right.
73
+
74
+ If you get a message like `can't activate X, already activated Y`, or something similar, you can
75
+ open an issue. Please include the entire error message and the output of `gem list` and the version
76
+ of Ruby you are using.
77
+
78
+ ---
79
+ Copyright 2010-2011, [Iain Hecker](http://iain.nl) - Released under the MIT License.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -1,44 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'json'
4
- require 'metric_fu'
5
2
 
6
- # Required for RCOV
7
- require 'active_support'
8
- require 'active_support/core_ext'
9
-
10
- # Load default configuration
11
- MetricFu::Configuration.run {}
12
-
13
- # RCov fixes (should be okay for everybody)
14
- test_files = Dir['{spec,test}/**/*_{spec,test}.rb']
15
- MetricFu::Configuration.run do |config|
16
- config.rcov[:test_files] = test_files
17
- config.rcov[:rcov_opts] = [
18
- "--sort coverage",
19
- "--no-html",
20
- "--text-coverage",
21
- "--no-color",
22
- "--profile",
23
- "--exclude-only '.*'",
24
- '--include-file "\Aapp,\Alib"'
25
- ]
26
- config.rcov[:rcov_opts] << "-Ispec" if File.exist?("spec")
27
- end
28
-
29
- # Load local metrics settings
30
- file = File.join(Dir.pwd, '.metrics')
31
- load file if File.exist?(file)
32
-
33
- # Run metric fu!
34
- MetricFu.metrics.each {|metric| MetricFu.report.add(metric) }
35
- MetricFu.report.save_output(MetricFu.report.to_yaml, MetricFu.base_directory, "report.yml")
36
- MetricFu.report.save_output(MetricFu.report.to_yaml, MetricFu.data_directory, "#{Time.now.strftime("%Y%m%d")}.yml")
37
- MetricFu.report.save_templatized_report
38
-
39
- MetricFu.graphs.each {|graph| MetricFu.graph.add(graph, MetricFu.graph_engine) }
40
- MetricFu.graph.generate
41
-
42
- if MetricFu.report.open_in_browser?
43
- MetricFu.report.show_in_browser(MetricFu.output_directory)
44
- end
3
+ require "metrical"
4
+ Metrical.run(*ARGV)
@@ -0,0 +1,66 @@
1
+ require "metrical/version"
2
+
3
+ require 'rubygems'
4
+ require 'json'
5
+ require 'metric_fu'
6
+
7
+ # Required for RCOV
8
+ require 'active_support'
9
+ require 'active_support/core_ext'
10
+
11
+ module Metrical
12
+ extend self
13
+
14
+ def run(*)
15
+ load_defaults
16
+ set_new_rcov_defaults
17
+ load_user_configuration
18
+ run_metric_fu
19
+ open_in_browser
20
+ end
21
+
22
+ private
23
+
24
+ def load_defaults
25
+ MetricFu::Configuration.run {}
26
+ end
27
+
28
+ def set_new_rcov_defaults
29
+ test_files = Dir['{spec,test}/**/*_{spec,test}.rb']
30
+ MetricFu::Configuration.run do |config|
31
+ config.rcov[:test_files] = test_files
32
+ config.rcov[:rcov_opts] = [
33
+ "--sort coverage",
34
+ "--no-html",
35
+ "--text-coverage",
36
+ "--no-color",
37
+ "--profile",
38
+ "--exclude-only '.*'",
39
+ '--include-file "\Aapp,\Alib"'
40
+ ]
41
+ config.rcov[:rcov_opts] << "-Ispec" if File.exist?("spec")
42
+ end
43
+ end
44
+
45
+ def load_user_configuration
46
+ file = File.join(Dir.pwd, '.metrics')
47
+ load file if File.exist?(file)
48
+ end
49
+
50
+ def run_metric_fu
51
+ MetricFu.metrics.each {|metric| MetricFu.report.add(metric) }
52
+ MetricFu.report.save_output(MetricFu.report.to_yaml, MetricFu.base_directory, "report.yml")
53
+ MetricFu.report.save_output(MetricFu.report.to_yaml, MetricFu.data_directory, "#{Time.now.strftime("%Y%m%d")}.yml")
54
+ MetricFu.report.save_templatized_report
55
+
56
+ MetricFu.graphs.each {|graph| MetricFu.graph.add(graph, MetricFu.graph_engine) }
57
+ MetricFu.graph.generate
58
+ end
59
+
60
+ def open_in_browser
61
+ if MetricFu.report.open_in_browser?
62
+ MetricFu.report.show_in_browser(MetricFu.output_directory)
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,3 @@
1
+ module Metrical
2
+ VERSION = "0.0.7"
3
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "metrical/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "metrical"
7
+ s.version = Metrical::VERSION
8
+ s.authors = ["iain"]
9
+ s.email = ["iain@iain.nl"]
10
+ s.homepage = "https://github.com/iain/metrical"
11
+ s.summary = %q{Run metric_fu without making it a project dependency}
12
+ s.description = %q{MetricFu is awesome! The only problem is that it's kinda obtrusive. Metrical provides a executable so you can run metric fu on any project without making changes to the project.}
13
+
14
+ s.rubyforge_project = "metrical"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_runtime_dependency "metric_fu", "~> 2.1.1"
22
+ s.add_runtime_dependency "main", "~> 4.6.0"
23
+ s.add_runtime_dependency "rake"
24
+ end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metrical
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Iain Hecker
8
+ - iain
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-23 00:00:00.000000000Z
12
+ date: 2011-09-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: metric_fu
16
- requirement: &2173559780 !ruby/object:Gem::Requirement
16
+ requirement: &2173451920 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,46 +21,53 @@ dependencies:
21
21
  version: 2.1.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2173559780
24
+ version_requirements: *2173451920
25
25
  - !ruby/object:Gem::Dependency
26
- name: activesupport
27
- requirement: &2173559340 !ruby/object:Gem::Requirement
26
+ name: main
27
+ requirement: &2173451400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
- - - ! '>='
30
+ - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 4.6.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2173559340
35
+ version_requirements: *2173451400
36
36
  - !ruby/object:Gem::Dependency
37
- name: main
38
- requirement: &2173558720 !ruby/object:Gem::Requirement
37
+ name: rake
38
+ requirement: &2173450960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ~>
41
+ - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
- version: 4.6.0
43
+ version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2173558720
46
+ version_requirements: *2173450960
47
47
  description: MetricFu is awesome! The only problem is that it's kinda obtrusive. Metrical
48
48
  provides a executable so you can run metric fu on any project without making changes
49
49
  to the project.
50
- email: iain@iain.nl
50
+ email:
51
+ - iain@iain.nl
51
52
  executables:
52
53
  - metrical
53
54
  extensions: []
54
55
  extra_rdoc_files: []
55
56
  files:
56
- - README.rdoc
57
+ - .gitignore
58
+ - .metrics
59
+ - Gemfile
60
+ - Gemfile.lock
61
+ - README.md
62
+ - Rakefile
57
63
  - bin/metrical
58
- homepage: http://github.com/iain/metrical/
64
+ - lib/metrical.rb
65
+ - lib/metrical/version.rb
66
+ - metrical.gemspec
67
+ homepage: https://github.com/iain/metrical
59
68
  licenses: []
60
69
  post_install_message:
61
- rdoc_options:
62
- - --main
63
- - README.rdoc
70
+ rdoc_options: []
64
71
  require_paths:
65
72
  - lib
66
73
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -76,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
83
  - !ruby/object:Gem::Version
77
84
  version: '0'
78
85
  requirements: []
79
- rubyforge_project:
86
+ rubyforge_project: metrical
80
87
  rubygems_version: 1.8.6
81
88
  signing_key:
82
89
  specification_version: 3
@@ -1,31 +0,0 @@
1
- = Metrical
2
-
3
- MetricFu is awesome! Metrical strives to make it a little bit easier to get working.
4
-
5
- * Don't make MetricFu or any metrics part of the dependencies of your project;
6
- so you don't need to add anything to your Gemfile.
7
-
8
- * You can run MetricFu in any project:
9
-
10
- $ gem install metrical
11
- $ cd /path/of/your/project
12
- $ metrical
13
-
14
- * Per project configuration can be done in a simple <tt>.metrics</tt> file in
15
- the root directory of your project. In here you can configure MetricFu as
16
- you normally would. Example:
17
-
18
- MetricFu::Configuration.run do
19
- config.graph_engine = :gchart
20
- end
21
-
22
- For more information on configuring your metrics, please visit the
23
- {MetricFu homepage}[http://metric-fu.rubyforge.org/]. Any configuration options you
24
- see there can be done in the <tt>.metrics</tt> file.
25
-
26
- And that's all there is too it. If you have any suggestions, ideas or bug fixes,
27
- please drop me a line, or make a github issue.
28
-
29
- ---
30
-
31
- Copyright 2010, Iain Hecker (iain@iain.nl) - Released under the MIT License.