githubstats 1.4.0 → 3.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.
- checksums.yaml +5 -5
- data/.circle-ruby +4 -3
- data/.prospectus +5 -19
- data/.rubocop.yml +4 -3
- data/.travis.yml +10 -0
- data/CHANGELOG.md +19 -0
- data/Gemfile +0 -1
- data/README.md +1 -3
- data/Rakefile +1 -2
- data/githubstats.gemspec +11 -10
- data/lib/githubstats.rb +32 -27
- data/lib/githubstats/data.rb +21 -3
- data/lib/githubstats/version.rb +1 -1
- data/spec/githubstats/data_spec.rb +2 -2
- data/spec/githubstats_spec.rb +5 -3
- metadata +34 -35
- data/circle.yml +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 63d1760b40fbefddd2aa5c8fba01de7eb8b9d4924ba16c3e6e32030265d1a4a7
|
|
4
|
+
data.tar.gz: b7c45953695c48422332f089338443e9d622d4c25991676a32e6ed28b9e7402d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ed67ab09a4247ed69c8a12d597010ca7dd1e7f76add17553834d54fa350a3bd93fc402575fdf202ee05bf486ca2c1c386d8f8800daff3b1c8bf17b3704fc6ab5
|
|
7
|
+
data.tar.gz: 0154bdd9747143f0974313aff0a53b03d8252fab6e104af13ebade18d20057cbd8a62c0057032ccef9e9a60d3a441f66d1521a9cac1bd9efe700b87b3fe014f3
|
data/.circle-ruby
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
2.
|
|
2
|
-
2.3
|
|
3
|
-
2.
|
|
1
|
+
2.6.1
|
|
2
|
+
2.5.3
|
|
3
|
+
2.4.5
|
|
4
|
+
2.3.8
|
data/.prospectus
CHANGED
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
Prospectus.extra_dep('file', 'prospectus_circleci')
|
|
2
|
-
|
|
3
1
|
my_slug = 'akerl/githubstats'
|
|
4
2
|
|
|
3
|
+
Prospectus.extra_dep('file', 'prospectus_travis')
|
|
4
|
+
Prospectus.extra_dep('file', 'prospectus_gems')
|
|
5
|
+
|
|
5
6
|
item do
|
|
6
7
|
noop
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
name 'gems'
|
|
11
|
-
|
|
12
|
-
expected do
|
|
13
|
-
static
|
|
14
|
-
set 'green'
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
actual do
|
|
18
|
-
gemnasium
|
|
19
|
-
slug my_slug
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
extend ProspectusCircleci::Build.new(my_slug)
|
|
9
|
+
extend ProspectusGems::Gemspec.new
|
|
10
|
+
extend ProspectusTravis::Build.new(my_slug)
|
|
25
11
|
end
|
data/.rubocop.yml
CHANGED
data/.travis.yml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
dist: xenial
|
|
2
|
+
install:
|
|
3
|
+
- for i in $(cat .circle-ruby) ; do rvm install $i || exit 1 ; done
|
|
4
|
+
- for i in $(cat .circle-ruby) ; do rvm-exec $i bundle install || exit 1 ; done
|
|
5
|
+
script:
|
|
6
|
+
- for i in $(cat .circle-ruby) ; do rvm-exec $i bundle exec rake || exit 1 ; done
|
|
7
|
+
notifications:
|
|
8
|
+
email: false
|
|
9
|
+
slack:
|
|
10
|
+
secure: PQOCIfuacnmF9MMGmZseYwGn8HfxmL1m7qqftoWhDkkp8oKLKVaSfoMPGAADWQsWLBl4JQC+z/lRH8I2gXChQjZhKZBz15bFH6mwFBI82DXidVNVxt27g/uR3RMT8GfGw8CkgW8DsSpNF+E4pBPOKONFLhj9Y0xdpAID7slrPwd6wDdpi4oDXvnfTO4ZfUZbB3OGT0nnzcH4gCiKXKijv4MRzHTVpvbwe+P3TOKkTY0V21B++YSBpX1tIYt6cLOHaDFQT4DScwFajtvynpwWf3PCRMCATganpyEqEpkiUp+dSg1h2WjYilAwVHkLnNaESUFKeTLQGIXpKMj4+3yHlIPPG6M2MawgwhSDuYy1IAE/81+Y06V9Sn9PPnICsjV1+W0LxnCms13t1JcVWrzVOtlzyCInKr8ENAX6Ku6SSQaouuqYghm1maG8ZtNhqyByqGctov7noLUH6T+lHS8ODr22cLg6f0lzVn5d13/aha9OvTZV7DN6uVCfwpbAL9S+u1TNtjrDhJQFohSe7X+jb+KxN7sLZR5Z5RKwM8sx6Tadf3rrvVRF5+jQxpb2IgjakV2QgxmVDrZDu3XXWbRUYMlGbmR4EEwDaKPJsjKh8KIu6GS6rhrQHiwvwDH6FQcXdeQsieLaVTBoKnE1slYvRMVTMZxFkAbI2dIt+H06c7c=
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# 3.1.0 / 2020-10-06
|
|
2
|
+
|
|
3
|
+
* [FEATURE] Remove curb dependency, which allows githubstats to work on Windows systems. Thanks @ajmeese7!
|
|
4
|
+
|
|
5
|
+
# 3.0.1 / 2018-08-19
|
|
6
|
+
|
|
7
|
+
* [BUGFIX] Fix cap used to decide when to use real_streak GitHub polling
|
|
8
|
+
|
|
9
|
+
# 3.0.0 / 2018-07-18
|
|
10
|
+
|
|
11
|
+
* [BUGFIX] Update to work with recent GitHub changes for historic streak lookup API
|
|
12
|
+
* [FEATURE] Historic GitHub streaks now show actual stats instead of `-1` placeholders
|
|
13
|
+
* [FEATURE] It is now possible to convert a datapoint back to its original format with `.to_a`
|
|
14
|
+
* [FEATURE] Added `.start_date` and `.end_date` to Data object
|
|
15
|
+
|
|
16
|
+
# 2.0.0 / 2017-09-29
|
|
17
|
+
|
|
18
|
+
* [BUGFIX] Fail cleanly if Github responds with a bad HTTP code
|
|
19
|
+
|
|
1
20
|
# 1.4.0 / 2017-06-09
|
|
2
21
|
|
|
3
22
|
* [ENHANCEMENT] Cache more data methods
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -2,10 +2,8 @@ GithubStats
|
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
4
|
[](https://rubygems.org/gems/githubstats)
|
|
5
|
-
[](https://circleci.com/gh/akerl/githubstats)
|
|
5
|
+
[](https://travis-ci.com/akerl/githubstats)
|
|
7
6
|
[](https://codecov.io/github/akerl/githubstats)
|
|
8
|
-
[](https://www.codacy.com/app/akerl/githubstats)
|
|
9
7
|
[](https://tldrlegal.com/license/mit-license)
|
|
10
8
|
|
|
11
9
|
Grabs Github contribution statistics and presents it in an easily consumable format.
|
data/Rakefile
CHANGED
|
@@ -7,8 +7,7 @@ RSpec::Core::RakeTask.new(:spec)
|
|
|
7
7
|
|
|
8
8
|
desc 'Run Rubocop on the gem'
|
|
9
9
|
RuboCop::RakeTask.new(:rubocop) do |task|
|
|
10
|
-
task.patterns = ['lib/**/*.rb', 'spec/**/*.rb']
|
|
11
10
|
task.fail_on_error = true
|
|
12
11
|
end
|
|
13
12
|
|
|
14
|
-
task default: [
|
|
13
|
+
task default: %i[spec rubocop build install]
|
data/githubstats.gemspec
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
require 'English'
|
|
2
|
+
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
|
2
3
|
require 'githubstats/version'
|
|
3
4
|
|
|
4
5
|
Gem::Specification.new do |s|
|
|
5
6
|
s.name = 'githubstats'
|
|
6
7
|
s.version = GithubStats::VERSION
|
|
7
|
-
s.date = Time.now.strftime(
|
|
8
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
|
8
9
|
|
|
9
10
|
s.summary = 'Present Github contributions stats in a consumable format'
|
|
10
|
-
s.description =
|
|
11
|
+
s.description = 'Pulls the statistics from Github\'s user contribution chart and provides an interface for analyzing that data' # rubocop:disable Metrics/LineLength
|
|
11
12
|
s.authors = ['Les Aker']
|
|
12
13
|
s.email = 'me@lesaker.org'
|
|
13
14
|
s.homepage = 'https://github.com/akerl/githubstats'
|
|
@@ -17,14 +18,14 @@ Gem::Specification.new do |s|
|
|
|
17
18
|
s.test_files = `git ls-files spec/*`.split
|
|
18
19
|
s.executables = ['githubstats']
|
|
19
20
|
|
|
20
|
-
s.add_runtime_dependency 'curb', '~> 0.9.0'
|
|
21
21
|
s.add_runtime_dependency 'basiccache', '~> 1.0.0'
|
|
22
|
-
s.add_runtime_dependency 'nokogiri', '~> 1.8
|
|
22
|
+
s.add_runtime_dependency 'nokogiri', '~> 1.10.8'
|
|
23
23
|
|
|
24
|
-
s.add_development_dependency 'timecop', '~> 0.8.0'
|
|
25
|
-
s.add_development_dependency 'rubocop', '~> 0.49.0'
|
|
26
|
-
s.add_development_dependency 'rake', '~> 12.0.0'
|
|
27
24
|
s.add_development_dependency 'codecov', '~> 0.1.1'
|
|
28
|
-
s.add_development_dependency '
|
|
29
|
-
s.add_development_dependency '
|
|
25
|
+
s.add_development_dependency 'fuubar', '~> 2.5.0'
|
|
26
|
+
s.add_development_dependency 'goodcop', '~> 0.8.0'
|
|
27
|
+
s.add_development_dependency 'rake', '~> 13.0.0'
|
|
28
|
+
s.add_development_dependency 'rspec', '~> 3.9.0'
|
|
29
|
+
s.add_development_dependency 'rubocop', '~> 0.76.0'
|
|
30
|
+
s.add_development_dependency 'timecop', '~> 0.9.0'
|
|
30
31
|
end
|
data/lib/githubstats.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'curb'
|
|
4
3
|
require 'json'
|
|
5
4
|
require 'nokogiri'
|
|
5
|
+
require 'net/http'
|
|
6
6
|
require 'date'
|
|
7
7
|
require 'basiccache'
|
|
8
8
|
|
|
@@ -34,14 +34,14 @@ module GithubStats
|
|
|
34
34
|
##
|
|
35
35
|
# Default URL for grabbing data
|
|
36
36
|
|
|
37
|
-
DEFAULT_URL = "#{DEFAULT_HOST}/users/%s/contributions"
|
|
37
|
+
DEFAULT_URL = "#{DEFAULT_HOST}/users/%s/contributions"
|
|
38
38
|
|
|
39
39
|
##
|
|
40
40
|
# User object
|
|
41
41
|
class User
|
|
42
42
|
include MethodCacher
|
|
43
43
|
|
|
44
|
-
attr_reader :name, :url, :
|
|
44
|
+
attr_reader :name, :url, :last_updated
|
|
45
45
|
|
|
46
46
|
##
|
|
47
47
|
# Creates a new user object
|
|
@@ -51,8 +51,7 @@ module GithubStats
|
|
|
51
51
|
@name = params[:name] || guess_user
|
|
52
52
|
@url = (params[:url] || DEFAULT_URL) % @name
|
|
53
53
|
@last_updated = nil
|
|
54
|
-
enable_caching %i[streak longest_streak streaks
|
|
55
|
-
real_streak_start]
|
|
54
|
+
enable_caching %i[streak longest_streak streaks]
|
|
56
55
|
end
|
|
57
56
|
|
|
58
57
|
##
|
|
@@ -74,7 +73,7 @@ module GithubStats
|
|
|
74
73
|
|
|
75
74
|
def streaks
|
|
76
75
|
naive = data.streaks
|
|
77
|
-
return naive if naive.last.nil? || naive.last.size <
|
|
76
|
+
return naive if naive.last.nil? || naive.last.size < 364
|
|
78
77
|
[real_streak]
|
|
79
78
|
end
|
|
80
79
|
|
|
@@ -82,7 +81,7 @@ module GithubStats
|
|
|
82
81
|
# Set a custom longest_streak to account for the overriden streak
|
|
83
82
|
|
|
84
83
|
def longest_streak
|
|
85
|
-
return data.longest_streak if data.longest_streak.size <
|
|
84
|
+
return data.longest_streak if data.longest_streak.size < 364
|
|
86
85
|
streak
|
|
87
86
|
end
|
|
88
87
|
|
|
@@ -118,40 +117,46 @@ module GithubStats
|
|
|
118
117
|
|
|
119
118
|
def load_data
|
|
120
119
|
@data = GithubStats::Data.new download
|
|
121
|
-
@last_updated =
|
|
120
|
+
@last_updated = Time.now
|
|
122
121
|
end
|
|
123
122
|
|
|
124
123
|
##
|
|
125
|
-
# Set a custom longest_streak that takes into account GitHub
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
def
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
124
|
+
# Set a custom longest_streak that takes into account GitHub's
|
|
125
|
+
# historical records
|
|
126
|
+
|
|
127
|
+
def real_streak_rewind(partial_streak)
|
|
128
|
+
new_data = download(partial_streak.first.date - 1)
|
|
129
|
+
old_data = partial_streak.map(&:to_a)
|
|
130
|
+
new_stats = GithubStats::Data.new(new_data + old_data)
|
|
131
|
+
partial_streak = new_stats.streaks.last
|
|
132
|
+
return partial_streak if partial_streak.first.date != new_stats.start_date
|
|
133
|
+
real_streak_rewind partial_streak
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def real_streak
|
|
137
|
-
|
|
138
|
-
first_date = existing.first.date
|
|
139
|
-
extra_size = (first_date - real_streak_start(first_date))
|
|
140
|
-
[-1] * extra_size + existing
|
|
137
|
+
@real_streak ||= real_streak_rewind(data.streaks.last)
|
|
141
138
|
end
|
|
142
139
|
|
|
143
140
|
##
|
|
144
141
|
# Downloads new data from Github
|
|
145
142
|
|
|
146
|
-
def download(
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
html = Nokogiri::HTML(svg)
|
|
143
|
+
def download(to_date = nil)
|
|
144
|
+
resp = request(to_date)
|
|
145
|
+
html = Nokogiri::HTML(resp)
|
|
150
146
|
html.css('.day').map do |x|
|
|
151
147
|
x.attributes.values_at('data-date', 'data-count').map(&:value)
|
|
152
148
|
end
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def request(to_date = nil)
|
|
152
|
+
url = to_date ? @url + "?to=#{to_date.strftime('%Y-%m-%d')}" : @url
|
|
153
|
+
# https://stackoverflow.com/a/5786863/6456163
|
|
154
|
+
resp = Net::HTTP.get_response(URI(url))
|
|
155
|
+
code = resp.code
|
|
156
|
+
raise("Failed loading data from GitHub: #{url} #{code}") if code != '200'
|
|
157
|
+
resp.body
|
|
158
|
+
rescue SocketError
|
|
159
|
+
raise RuntimeError
|
|
155
160
|
end
|
|
156
161
|
|
|
157
162
|
def method_missing(sym, *args, &block)
|
data/lib/githubstats/data.rb
CHANGED
|
@@ -12,7 +12,11 @@ module GithubStats
|
|
|
12
12
|
##
|
|
13
13
|
# Helper struct for defining datapoints
|
|
14
14
|
|
|
15
|
-
Datapoint = Struct.new(:date, :score)
|
|
15
|
+
Datapoint = Struct.new(:date, :score) do
|
|
16
|
+
def to_a
|
|
17
|
+
[date.strftime('%Y-%m-%d'), score.to_s]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
16
20
|
|
|
17
21
|
##
|
|
18
22
|
# Data class for calculations
|
|
@@ -31,7 +35,8 @@ module GithubStats
|
|
|
31
35
|
def initialize(data)
|
|
32
36
|
@raw = data.map { |d, s| Datapoint.new(Date.parse(d), s.to_i) }
|
|
33
37
|
enable_caching %i[to_h today streaks longest_streak streak max mean
|
|
34
|
-
std_var quartile_boundaries quartiles
|
|
38
|
+
std_var quartile_boundaries quartiles start_date
|
|
39
|
+
end_date]
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
##
|
|
@@ -43,6 +48,19 @@ module GithubStats
|
|
|
43
48
|
end
|
|
44
49
|
end
|
|
45
50
|
|
|
51
|
+
##
|
|
52
|
+
# The start of the dataset
|
|
53
|
+
|
|
54
|
+
def start_date
|
|
55
|
+
@raw.first.date
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
##
|
|
59
|
+
# The end of the dataset
|
|
60
|
+
def end_date
|
|
61
|
+
@raw.last.date
|
|
62
|
+
end
|
|
63
|
+
|
|
46
64
|
##
|
|
47
65
|
# The score for today
|
|
48
66
|
|
|
@@ -162,7 +180,7 @@ module GithubStats
|
|
|
162
180
|
# Return the quartile of a given score
|
|
163
181
|
|
|
164
182
|
def quartile(score)
|
|
165
|
-
return nil if score
|
|
183
|
+
return nil if score.negative? || score > max.score
|
|
166
184
|
quartile_boundaries.count { |bound| score > bound }
|
|
167
185
|
end
|
|
168
186
|
|
data/lib/githubstats/version.rb
CHANGED
|
@@ -7,8 +7,8 @@ describe GithubStats do
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it 'defines a Datapoint object' do
|
|
10
|
-
a = GithubStats::Datapoint.new(
|
|
11
|
-
expect(a.date).to be_an_instance_of
|
|
10
|
+
a = GithubStats::Datapoint.new(Time.now, 4)
|
|
11
|
+
expect(a.date).to be_an_instance_of Time
|
|
12
12
|
expect(a.score).to eql 4
|
|
13
13
|
end
|
|
14
14
|
|
data/spec/githubstats_spec.rb
CHANGED
|
@@ -10,7 +10,9 @@ describe GithubStats do
|
|
|
10
10
|
describe GithubStats::User do
|
|
11
11
|
let(:named_user) { GithubStats::User.new 'akerl' }
|
|
12
12
|
let(:unnamed_user) { GithubStats::User.new }
|
|
13
|
-
let(:hash_user)
|
|
13
|
+
let(:hash_user) do
|
|
14
|
+
GithubStats::User.new(name: 'fly', url: 'https://URL-%s')
|
|
15
|
+
end
|
|
14
16
|
|
|
15
17
|
context 'when created with a string' do
|
|
16
18
|
it 'uses that string as the username' do
|
|
@@ -30,7 +32,7 @@ describe GithubStats do
|
|
|
30
32
|
expect(hash_user.name).to eql 'fly'
|
|
31
33
|
end
|
|
32
34
|
it 'uses the URL from the hash' do
|
|
33
|
-
expect(hash_user.url).to eql 'URL-
|
|
35
|
+
expect(hash_user.url).to eql 'https://URL-fly'
|
|
34
36
|
end
|
|
35
37
|
end
|
|
36
38
|
|
|
@@ -39,7 +41,7 @@ describe GithubStats do
|
|
|
39
41
|
expect(named_user.last_updated).to be_nil
|
|
40
42
|
named_user.data
|
|
41
43
|
expect(named_user.instance_variables).to include(:@data)
|
|
42
|
-
expect(named_user.last_updated).to be_an_instance_of
|
|
44
|
+
expect(named_user.last_updated).to be_an_instance_of Time
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
it 'raises an exception if it cannot load data' do
|
metadata
CHANGED
|
@@ -1,141 +1,141 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: githubstats
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 3.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Les Aker
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-10-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: basiccache
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.
|
|
19
|
+
version: 1.0.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.
|
|
26
|
+
version: 1.0.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: nokogiri
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.10.8
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 1.10.8
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: codecov
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
48
|
-
type: :
|
|
47
|
+
version: 0.1.1
|
|
48
|
+
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 0.1.1
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: fuubar
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 2.5.0
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 2.5.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: goodcop
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0.
|
|
75
|
+
version: 0.8.0
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0.
|
|
82
|
+
version: 0.8.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: rake
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: 13.0.0
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
96
|
+
version: 13.0.0
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: rspec
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
103
|
+
version: 3.9.0
|
|
104
104
|
type: :development
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: 3.9.0
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: rubocop
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - "~>"
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: 0.76.0
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
124
|
+
version: 0.76.0
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: timecop
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version:
|
|
131
|
+
version: 0.9.0
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version:
|
|
138
|
+
version: 0.9.0
|
|
139
139
|
description: Pulls the statistics from Github's user contribution chart and provides
|
|
140
140
|
an interface for analyzing that data
|
|
141
141
|
email: me@lesaker.org
|
|
@@ -149,13 +149,13 @@ files:
|
|
|
149
149
|
- ".prospectus"
|
|
150
150
|
- ".rspec"
|
|
151
151
|
- ".rubocop.yml"
|
|
152
|
+
- ".travis.yml"
|
|
152
153
|
- CHANGELOG.md
|
|
153
154
|
- Gemfile
|
|
154
155
|
- LICENSE
|
|
155
156
|
- README.md
|
|
156
157
|
- Rakefile
|
|
157
158
|
- bin/githubstats
|
|
158
|
-
- circle.yml
|
|
159
159
|
- githubstats.gemspec
|
|
160
160
|
- lib/githubstats.rb
|
|
161
161
|
- lib/githubstats/data.rb
|
|
@@ -175,7 +175,7 @@ homepage: https://github.com/akerl/githubstats
|
|
|
175
175
|
licenses:
|
|
176
176
|
- MIT
|
|
177
177
|
metadata: {}
|
|
178
|
-
post_install_message:
|
|
178
|
+
post_install_message:
|
|
179
179
|
rdoc_options: []
|
|
180
180
|
require_paths:
|
|
181
181
|
- lib
|
|
@@ -190,9 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
190
190
|
- !ruby/object:Gem::Version
|
|
191
191
|
version: '0'
|
|
192
192
|
requirements: []
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
signing_key:
|
|
193
|
+
rubygems_version: 3.1.2
|
|
194
|
+
signing_key:
|
|
196
195
|
specification_version: 4
|
|
197
196
|
summary: Present Github contributions stats in a consumable format
|
|
198
197
|
test_files:
|
data/circle.yml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
dependencies:
|
|
2
|
-
override:
|
|
3
|
-
- 'for i in $(cat .circle-ruby) ; do rvm-exec $i gem update --system --no-doc || exit 1 ; done'
|
|
4
|
-
- 'for i in $(cat .circle-ruby) ; do rvm-exec $i bundle install || exit 1 ; done'
|
|
5
|
-
test:
|
|
6
|
-
override:
|
|
7
|
-
- 'for i in $(cat .circle-ruby) ; do rvm-exec $i bundle exec rake || exit 1 ; done'
|