github_metadata 0.2.1 → 0.2.2
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/lib/github_metadata/version.rb +1 -1
- data/lib/github_metadata.rb +12 -5
- metadata +64 -69
data/lib/github_metadata.rb
CHANGED
@@ -47,7 +47,7 @@ class GithubMetadata
|
|
47
47
|
# to fetch the repo document and importantly will swallow GithubMetadata::RepoNotFound
|
48
48
|
# errors, returning nil instead so you can easily do something like this:
|
49
49
|
#
|
50
|
-
# if
|
50
|
+
# if metadata = GithubMetadata.fetch('rails', 'rails')
|
51
51
|
# ...
|
52
52
|
# end
|
53
53
|
def self.fetch(user, repo)
|
@@ -134,12 +134,17 @@ class GithubMetadata
|
|
134
134
|
# as instances of GithubMetadata::Commit
|
135
135
|
def recent_commits
|
136
136
|
@recent_commits ||= commits_feed.entries.map {|e| GithubMetadata::Commit.new(e) }
|
137
|
+
|
138
|
+
# TODO: Write tests for this error handling. See commits_feed method - this will result in NoMethodError 'entries' on nil
|
139
|
+
rescue NoMethodError => err
|
140
|
+
nil
|
137
141
|
end
|
138
142
|
|
139
143
|
# Returns the average date of recent commits (by default all (max 20), can be modified
|
140
144
|
# by giving the optional argument)
|
141
145
|
def average_recent_committed_at(num=100)
|
142
146
|
commit_times = recent_commits[0...num].map {|c| c.committed_at.to_f }
|
147
|
+
return nil if commit_times.empty?
|
143
148
|
average_time = commit_times.inject(0) {|s, i| s + i} / commit_times.length
|
144
149
|
Time.at(average_time).utc
|
145
150
|
end
|
@@ -154,11 +159,13 @@ class GithubMetadata
|
|
154
159
|
|
155
160
|
def commits_feed
|
156
161
|
return @commits_feed if @commits_feed
|
157
|
-
|
158
|
-
|
159
|
-
|
162
|
+
|
163
|
+
http_response = open(commits_feed_url)
|
164
|
+
if http_response.status[0].to_i == 200
|
165
|
+
# sub \n is required since github decided to make their atom feed invalid by adding a blank line before the xml instruct
|
166
|
+
@commits_feed = Feedzirra::Feed.parse(http_response.read.sub("\n", ''))
|
160
167
|
else
|
161
|
-
|
168
|
+
nil
|
162
169
|
end
|
163
170
|
end
|
164
171
|
|
metadata
CHANGED
@@ -1,83 +1,80 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_metadata
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Christoph Olszowka
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
date: 2011-05-23 00:00:00 +02:00
|
12
|
+
date: 2011-10-12 00:00:00.000000000 +02:00
|
14
13
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: nokogiri
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70134702788000 !ruby/object:Gem::Requirement
|
20
18
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
25
23
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: feedzirra
|
29
24
|
prerelease: false
|
30
|
-
|
25
|
+
version_requirements: *70134702788000
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: feedzirra
|
28
|
+
requirement: &70134702787580 !ruby/object:Gem::Requirement
|
31
29
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
36
34
|
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: i18n
|
40
35
|
prerelease: false
|
41
|
-
|
36
|
+
version_requirements: *70134702787580
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: i18n
|
39
|
+
requirement: &70134702787120 !ruby/object:Gem::Requirement
|
42
40
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
47
45
|
type: :runtime
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: rspec
|
51
46
|
prerelease: false
|
52
|
-
|
47
|
+
version_requirements: *70134702787120
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
requirement: &70134702786600 !ruby/object:Gem::Requirement
|
53
51
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
57
55
|
version: 2.0.0
|
58
56
|
type: :development
|
59
|
-
version_requirements: *id004
|
60
|
-
- !ruby/object:Gem::Dependency
|
61
|
-
name: simplecov
|
62
57
|
prerelease: false
|
63
|
-
|
58
|
+
version_requirements: *70134702786600
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: simplecov
|
61
|
+
requirement: &70134702786080 !ruby/object:Gem::Requirement
|
64
62
|
none: false
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
68
66
|
version: 0.4.1
|
69
67
|
type: :development
|
70
|
-
|
71
|
-
|
72
|
-
|
68
|
+
prerelease: false
|
69
|
+
version_requirements: *70134702786080
|
70
|
+
description: Extracts additional information like amount of committers, issues and
|
71
|
+
wiki pages from Github repos
|
72
|
+
email:
|
73
73
|
- christoph at olszowka de
|
74
74
|
executables: []
|
75
|
-
|
76
75
|
extensions: []
|
77
|
-
|
78
76
|
extra_rdoc_files: []
|
79
|
-
|
80
|
-
files:
|
77
|
+
files:
|
81
78
|
- .gitignore
|
82
79
|
- .rspec
|
83
80
|
- Gemfile
|
@@ -90,33 +87,31 @@ files:
|
|
90
87
|
- spec/github_metadata_spec.rb
|
91
88
|
- spec/spec_helper.rb
|
92
89
|
has_rdoc: true
|
93
|
-
homepage:
|
90
|
+
homepage: ''
|
94
91
|
licenses: []
|
95
|
-
|
96
92
|
post_install_message:
|
97
93
|
rdoc_options: []
|
98
|
-
|
99
|
-
require_paths:
|
94
|
+
require_paths:
|
100
95
|
- lib
|
101
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
102
97
|
none: false
|
103
|
-
requirements:
|
104
|
-
- -
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version:
|
107
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
103
|
none: false
|
109
|
-
requirements:
|
110
|
-
- -
|
111
|
-
- !ruby/object:Gem::Version
|
112
|
-
version:
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
113
108
|
requirements: []
|
114
|
-
|
115
109
|
rubyforge_project: github_metadata
|
116
|
-
rubygems_version: 1.6.
|
110
|
+
rubygems_version: 1.6.2
|
117
111
|
signing_key:
|
118
112
|
specification_version: 3
|
119
|
-
summary: Extracts additional information from Github repos that isn't available via
|
120
|
-
|
113
|
+
summary: Extracts additional information from Github repos that isn't available via
|
114
|
+
API
|
115
|
+
test_files:
|
121
116
|
- spec/github_metadata_spec.rb
|
122
117
|
- spec/spec_helper.rb
|