codefumes_harvester 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/Manifest.txt +6 -4
- data/README.txt +4 -1
- data/Rakefile +8 -3
- data/bin/{harvest_repo_metrics → cf_harvest_repo_metrics} +2 -3
- data/lib/{harvest_repo_metrics → cf_harvest_repo_metrics}/cli.rb +18 -8
- data/lib/codefumes_harvester.rb +1 -1
- data/lib/codefumes_harvester/harvester.rb +7 -10
- data/lib/codefumes_harvester/quick_metric.rb +1 -1
- data/lib/codefumes_harvester/source_control.rb +2 -2
- data/spec/{harvest_repo_metrics_cli_spec.rb → cf_harvest_repo_metrics/cli_spec.rb} +5 -5
- data/spec/codometer_harvester/source_control_spec.rb +4 -4
- data/spec/fixtures/sample_project_dirs/no_scm/description +4 -0
- data/spec/spec.opts +1 -1
- data/tasks/codefumes.rake +1 -1
- data/tasks/rspec.rake +21 -0
- metadata +31 -15
- data/PostInstall.txt +0 -7
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 0.1.5 / 09-13-09
|
2
|
+
|
3
|
+
* Renamed harvest_repo_metrics -> bin/cf_harvest_repo_metrics
|
4
|
+
|
5
|
+
== 0.1.4 / 09-13-09
|
6
|
+
|
7
|
+
* Moved feedback printing from publish_data! out to CLI#execute
|
8
|
+
* Renamed #local_revision_identifier to #local_commit_identifier
|
9
|
+
|
1
10
|
== 0.1.3 / 09-12-09
|
2
11
|
|
3
12
|
* Cached commit stats when building Payload hash to prevent Grit::Git::GitTimeout exceptions
|
data/Manifest.txt
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
History.txt
|
2
2
|
Manifest.txt
|
3
|
-
PostInstall.txt
|
4
3
|
README.txt
|
5
4
|
Rakefile
|
6
|
-
bin/
|
5
|
+
bin/cf_harvest_repo_metrics
|
6
|
+
lib/cf_harvest_repo_metrics/cli.rb
|
7
7
|
lib/codefumes_harvester.rb
|
8
8
|
lib/codefumes_harvester/errors.rb
|
9
9
|
lib/codefumes_harvester/harvester.rb
|
10
10
|
lib/codefumes_harvester/quick_metric.rb
|
11
11
|
lib/codefumes_harvester/source_control.rb
|
12
|
-
|
12
|
+
spec/cf_harvest_repo_metrics/cli_spec.rb
|
13
13
|
spec/codometer_harvester/harvester_spec.rb
|
14
14
|
spec/codometer_harvester/source_control_spec.rb
|
15
|
-
spec/
|
15
|
+
spec/fixtures/sample_project_dirs/no_scm/description
|
16
|
+
spec/spec.opts
|
16
17
|
spec/spec_helper.rb
|
17
18
|
tasks/codefumes.rake
|
19
|
+
tasks/rspec.rake
|
data/README.txt
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
= codefumes_harvester
|
2
2
|
|
3
3
|
* http://codefumes.rubyforge.org/codefumes_harvester
|
4
|
-
*
|
4
|
+
* Wiki: https://github.com/cosyn/codefumes_harvester/wikis
|
5
|
+
* Repository: https://github.com/cosyn/codefumes_harvester
|
6
|
+
* Official CodeFumes.com gems: http://codefumes.rubyforge.org
|
7
|
+
* Website: http://www.codefumes.com
|
5
8
|
|
6
9
|
== DESCRIPTION:
|
7
10
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
%w[rubygems rake rake/clean fileutils rubigen hoe].each { |f| require f }
|
2
|
-
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift('lib') unless $LOAD_PATH.include?('lib')
|
4
|
+
require 'lib/codefumes_harvester'
|
3
5
|
|
4
6
|
begin
|
5
7
|
require "hanna/rdoctask"
|
@@ -16,8 +18,11 @@ end
|
|
16
18
|
$hoe = Hoe.spec('codefumes_harvester') do
|
17
19
|
self.rubyforge_name = 'codefumes'
|
18
20
|
self.summary = "Tools for sending repository history and metrics to CodeFumes.com"
|
19
|
-
self.extra_deps = [['codefumes','>= 0.1.
|
20
|
-
self.extra_dev_deps = [['
|
21
|
+
self.extra_deps = [['codefumes','>= 0.1.3'],['mojombo-grit','>= 1.1.1']]
|
22
|
+
self.extra_dev_deps = [['jscruggs-metric_fu', ">= 1.1.5"],
|
23
|
+
['mojombo-chronic', ">= 0.3.0"],
|
24
|
+
['rubigen', ">= 1.5.2"]
|
25
|
+
]
|
21
26
|
developer('Tom Kersten', 'tom.kersten@cosyntech.com')
|
22
27
|
developer('Joe Banks', 'freemarmoset@gmail.com')
|
23
28
|
end
|
@@ -4,7 +4,6 @@
|
|
4
4
|
# Copyright (c) 2009. All rights reserved.
|
5
5
|
|
6
6
|
require File.expand_path(File.dirname(__FILE__) + "/../lib/codefumes_harvester")
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + "/../lib/cf_harvest_repo_metrics/cli")
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
HarvestRepoMetric::CLI.execute(STDOUT, ARGV)
|
9
|
+
CfHarvestRepoMetrics::CLI.execute(STDOUT, ARGV)
|
@@ -1,9 +1,6 @@
|
|
1
|
-
$:.unshift(File.dirname(__FILE__)) unless
|
2
|
-
$:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
|
3
|
-
|
4
1
|
require 'optparse'
|
5
2
|
|
6
|
-
module
|
3
|
+
module CfHarvestRepoMetrics
|
7
4
|
# Class by the +harvest_metric+ script for command line parsing and
|
8
5
|
# delegation to the Harvester class.
|
9
6
|
class CLI
|
@@ -15,11 +12,18 @@ module HarvestRepoMetric
|
|
15
12
|
parse_command_line_options!(stdout, arguments)
|
16
13
|
harvester = Harvester.new(@options)
|
17
14
|
|
18
|
-
if harvester.publish_data!
|
19
|
-
stdout.puts "Project saved to CodeFumes.com. Visit #{harvester.short_uri}"
|
20
|
-
else
|
15
|
+
if (results = harvester.publish_data!) == false
|
21
16
|
stdout.puts "Error saving project...please try again or file a bug report."
|
22
17
|
exit(1)
|
18
|
+
else
|
19
|
+
if results.empty?
|
20
|
+
stdout.puts "Local repository is in sync with server. No updates posted."
|
21
|
+
else
|
22
|
+
puts "Successfully saved #{results[:successful_count]} of #{results[:total_count]} payloads."
|
23
|
+
stdout.puts "Project saved to CodeFumes.com. Visit #{harvester.short_uri}"
|
24
|
+
end
|
25
|
+
puts "Exiting."
|
26
|
+
puts
|
23
27
|
end
|
24
28
|
end
|
25
29
|
|
@@ -52,6 +56,12 @@ module HarvestRepoMetric
|
|
52
56
|
opts.on("-n", "--name [PROJECT_NAME]",
|
53
57
|
"Name of project."
|
54
58
|
) {|name| @options[:name] = name}
|
59
|
+
opts.on("-l", "--local",
|
60
|
+
"Send requests to localhost. (Testing/Development)"
|
61
|
+
) { CodeFumes::API.mode(:local) }
|
62
|
+
opts.on("-t", "--test",
|
63
|
+
"Send requests to test.codefumes.com. (Testing/Development)"
|
64
|
+
) { CodeFumes::API.mode(:test) }
|
55
65
|
opts.parse!(cl_arguments)
|
56
66
|
end
|
57
67
|
rescue Errno::ENOTDIR
|
@@ -60,4 +70,4 @@ module HarvestRepoMetric
|
|
60
70
|
end
|
61
71
|
end
|
62
72
|
end
|
63
|
-
end
|
73
|
+
end
|
data/lib/codefumes_harvester.rb
CHANGED
@@ -34,22 +34,19 @@ module CodeFumesHarvester
|
|
34
34
|
# synchronizes the repository's commit history, and prints the
|
35
35
|
# results to STDOUT.
|
36
36
|
#
|
37
|
-
# Returns
|
37
|
+
# Returns a Hash containing the keys :successful_count and :total_count
|
38
|
+
# if the process succeeded and updates were posted to the server with
|
39
|
+
# their associated values.
|
40
|
+
#
|
41
|
+
# Returns and empty Hash if the local repository is in sync with the
|
42
|
+
# server and no updates were posted.
|
38
43
|
#
|
39
44
|
# Returns +false+ if the process failed.
|
40
45
|
def publish_data!
|
41
46
|
if @project.save
|
42
47
|
store_public_key_in_repository
|
43
48
|
update_codefumes_config_file
|
44
|
-
|
45
|
-
if payload_results.nil?
|
46
|
-
puts "Local repository is in sync with server. No updates posted."
|
47
|
-
else
|
48
|
-
puts "Successfully saved #{payload_results[:successful_count]} of #{payload_results[:total_count]} payloads."
|
49
|
-
end
|
50
|
-
puts "Exiting."
|
51
|
-
puts
|
52
|
-
true
|
49
|
+
generate_and_save_payload || {}
|
53
50
|
else
|
54
51
|
false
|
55
52
|
end
|
@@ -8,7 +8,7 @@ module CodeFumesHarvester
|
|
8
8
|
# Returns +false+ if the request failed.
|
9
9
|
def self.save(custom_attributes, repository_path = './')
|
10
10
|
repo = SourceControl.new(repository_path)
|
11
|
-
commit = {:identifier => repo.
|
11
|
+
commit = {:identifier => repo.local_commit_identifier,
|
12
12
|
:custom_attributes => custom_attributes
|
13
13
|
}
|
14
14
|
content = {:commits => [commit]}
|
@@ -83,9 +83,9 @@ module CodeFumesHarvester
|
|
83
83
|
CodeFumes::ConfigFile.options_for_project(public_key)[:private_key]
|
84
84
|
end
|
85
85
|
|
86
|
-
# Returns the current
|
86
|
+
# Returns the current commit identifier of the underlying
|
87
87
|
# repository ('HEAD' of the supplied branch in git parlance).
|
88
|
-
def
|
88
|
+
def local_commit_identifier(branch_name = "master")
|
89
89
|
raise ArgumentError, "nil branch name supplied" if branch_name.nil?
|
90
90
|
@repository.get_head(branch_name).commit.sha
|
91
91
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '
|
2
|
-
require '
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
require 'cf_harvest_repo_metrics/cli'
|
3
3
|
|
4
|
-
describe
|
4
|
+
describe CfHarvestRepoMetrics::CLI, "execute" do
|
5
5
|
before(:each) do
|
6
6
|
@stdout_io = StringIO.new
|
7
|
-
|
7
|
+
CfHarvestRepoMetrics::CLI.execute(@stdout_io, ["-p", GIT_FIXTURE_REPO_PATH])
|
8
8
|
@stdout_io.rewind
|
9
9
|
@stdout = @stdout_io.read
|
10
10
|
end
|
@@ -23,4 +23,4 @@ describe HarvestRepoMetric::CLI, "execute" do
|
|
23
23
|
it "creates a .codefumes_config file" do
|
24
24
|
File.exist?(CodeFumes::ConfigFile.path).should be_true
|
25
25
|
end
|
26
|
-
end
|
26
|
+
end
|
@@ -41,7 +41,7 @@ describe SourceControl do
|
|
41
41
|
@repository = SourceControl.new(git_repo_path)
|
42
42
|
end
|
43
43
|
|
44
|
-
it "returns the identifer (sha/
|
44
|
+
it "returns the identifer (sha/commit #) of the first commit" do
|
45
45
|
@repository.initial_commit_identifier.should == "a8b3e73fc5e4bc46bbdf5c1cab38cb2ce47ba2d0"
|
46
46
|
end
|
47
47
|
end
|
@@ -175,14 +175,14 @@ describe SourceControl do
|
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
178
|
-
describe "
|
178
|
+
describe "local_commit_identifier" do
|
179
179
|
before(:each) do
|
180
180
|
git_repo_path = File.expand_path(File.dirname(__FILE__) + '/../fixtures/sample_project_dirs/git_repository')
|
181
181
|
@repository = SourceControl.new(git_repo_path)
|
182
182
|
end
|
183
183
|
|
184
|
-
it "returns the current
|
185
|
-
@repository.
|
184
|
+
it "returns the current commit identifier for the local repository" do
|
185
|
+
@repository.local_commit_identifier.should == "7dc0e73fea4625204b7c1e6a48e9a57025be4d7e"
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
-
-format specdoc
|
data/tasks/codefumes.rake
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
namespace :cf do
|
2
2
|
desc "Send scm metrics to Codefumes.com"
|
3
3
|
task :store_repo_metrics, [:public_key, :private_key] do |tsk, args|
|
4
|
-
harvest_repo_metrics_executable = File.expand_path(File.dirname(__FILE__) + "/../bin/
|
4
|
+
harvest_repo_metrics_executable = File.expand_path(File.dirname(__FILE__) + "/../bin/cf_harvest_repo_metrics")
|
5
5
|
options = args.public_key.nil? ? "" : "-k #{args.public_key}"
|
6
6
|
options += args.private_key.nil? ? "" : " -a #{args.private_key}"
|
7
7
|
sh "#{harvest_repo_metrics_executable} #{options}"
|
data/tasks/rspec.rake
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
begin
|
2
|
+
require 'spec'
|
3
|
+
rescue LoadError
|
4
|
+
require 'rubygems'
|
5
|
+
require 'spec'
|
6
|
+
end
|
7
|
+
begin
|
8
|
+
require 'spec/rake/spectask'
|
9
|
+
rescue LoadError
|
10
|
+
puts <<-EOS
|
11
|
+
To use rspec for testing you must install rspec gem:
|
12
|
+
gem install rspec
|
13
|
+
EOS
|
14
|
+
exit(0)
|
15
|
+
end
|
16
|
+
|
17
|
+
desc "Run the specs under spec/models"
|
18
|
+
Spec::Rake::SpecTask.new do |t|
|
19
|
+
t.spec_opts = ['--options', "spec/spec.opts"]
|
20
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
21
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codefumes_harvester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Kersten
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
13
|
+
date: 2010-02-20 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
requirements:
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: 0.1.
|
24
|
+
version: 0.1.3
|
25
25
|
version:
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mojombo-grit
|
@@ -33,6 +33,16 @@ dependencies:
|
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 1.1.1
|
35
35
|
version:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: jscruggs-metric_fu
|
38
|
+
type: :development
|
39
|
+
version_requirement:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.1.5
|
45
|
+
version:
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: mojombo-chronic
|
38
48
|
type: :development
|
@@ -44,14 +54,14 @@ dependencies:
|
|
44
54
|
version: 0.3.0
|
45
55
|
version:
|
46
56
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
57
|
+
name: rubigen
|
48
58
|
type: :development
|
49
59
|
version_requirement:
|
50
60
|
version_requirements: !ruby/object:Gem::Requirement
|
51
61
|
requirements:
|
52
62
|
- - ">="
|
53
63
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
64
|
+
version: 1.5.2
|
55
65
|
version:
|
56
66
|
- !ruby/object:Gem::Dependency
|
57
67
|
name: hoe
|
@@ -61,41 +71,47 @@ dependencies:
|
|
61
71
|
requirements:
|
62
72
|
- - ">="
|
63
73
|
- !ruby/object:Gem::Version
|
64
|
-
version: 2.
|
74
|
+
version: 2.5.0
|
65
75
|
version:
|
66
|
-
description:
|
76
|
+
description: |-
|
77
|
+
CodeFumesHarvester provides a set of high-level tools for gathering
|
78
|
+
history and common metrics from a local repository and sending them to
|
79
|
+
CodeFumes.com[http://codefumes.com].
|
67
80
|
email:
|
68
81
|
- tom.kersten@cosyntech.com
|
69
82
|
- freemarmoset@gmail.com
|
70
83
|
executables:
|
71
|
-
-
|
84
|
+
- cf_harvest_repo_metrics
|
72
85
|
extensions: []
|
73
86
|
|
74
87
|
extra_rdoc_files:
|
75
88
|
- History.txt
|
76
89
|
- Manifest.txt
|
77
|
-
- PostInstall.txt
|
78
90
|
- README.txt
|
79
91
|
files:
|
80
92
|
- History.txt
|
81
93
|
- Manifest.txt
|
82
|
-
- PostInstall.txt
|
83
94
|
- README.txt
|
84
95
|
- Rakefile
|
85
|
-
- bin/
|
96
|
+
- bin/cf_harvest_repo_metrics
|
97
|
+
- lib/cf_harvest_repo_metrics/cli.rb
|
86
98
|
- lib/codefumes_harvester.rb
|
87
99
|
- lib/codefumes_harvester/errors.rb
|
88
100
|
- lib/codefumes_harvester/harvester.rb
|
89
101
|
- lib/codefumes_harvester/quick_metric.rb
|
90
102
|
- lib/codefumes_harvester/source_control.rb
|
91
|
-
-
|
103
|
+
- spec/cf_harvest_repo_metrics/cli_spec.rb
|
92
104
|
- spec/codometer_harvester/harvester_spec.rb
|
93
105
|
- spec/codometer_harvester/source_control_spec.rb
|
94
|
-
- spec/
|
106
|
+
- spec/fixtures/sample_project_dirs/no_scm/description
|
107
|
+
- spec/spec.opts
|
95
108
|
- spec/spec_helper.rb
|
96
109
|
- tasks/codefumes.rake
|
110
|
+
- tasks/rspec.rake
|
97
111
|
has_rdoc: true
|
98
112
|
homepage: http://codefumes.rubyforge.org/codefumes_harvester
|
113
|
+
licenses: []
|
114
|
+
|
99
115
|
post_install_message:
|
100
116
|
rdoc_options:
|
101
117
|
- --main
|
@@ -117,9 +133,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
133
|
requirements: []
|
118
134
|
|
119
135
|
rubyforge_project: codefumes
|
120
|
-
rubygems_version: 1.3.
|
136
|
+
rubygems_version: 1.3.5
|
121
137
|
signing_key:
|
122
|
-
specification_version:
|
138
|
+
specification_version: 3
|
123
139
|
summary: Tools for sending repository history and metrics to CodeFumes.com
|
124
140
|
test_files: []
|
125
141
|
|