githubstats 2.0.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c24647a4f63470021797a9309535a4438a830c1b
4
- data.tar.gz: 7c42bba5c6566f54cab50f0e8873e0e1c3506a44
2
+ SHA256:
3
+ metadata.gz: aa26d02c85e58b01ee8553a90a628aed98fa010b89142b056187d28467eb710a
4
+ data.tar.gz: b6671f2fa390ad49016cee0bc816a28d7063f7d2fc48a8b60aff5a6c4ebccdc0
5
5
  SHA512:
6
- metadata.gz: ca040015df256cea023906e5504f59b38ca5fe552e2b3f4e44956e8faf9793be060896afa655252699e1f7d84d84673b3ebce091b8a53aac5ab7466ba9a787bb
7
- data.tar.gz: 5cff21515fdd91ebba43d39cdb9fb6a3c95122f95a9f5fb2e1d205e98f0dc7ad72b64628a52bfeacc86d6721ff5af82109f2d7e952b1291fb162477802ce7085
6
+ metadata.gz: 4de055321d31ac225c4b519866a6a475268e20117daa8ba5f93164bfb00531d79722efadfe9bb655d81dc1cda91bb20d809f3d8c61657e1290b94e53f7c33f06
7
+ data.tar.gz: 7dd16f5fcb857c6f312123969f469080247886463d708fb270770bd169b35e1f192ae26e1dbc5b879d91a4c843bccabd7be72521b1f08b27f727e5c45647683f
data/.circle-ruby CHANGED
@@ -1,3 +1,4 @@
1
- 2.4.2
2
- 2.3.5
3
- 2.2.8
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
- deps do
9
- item do
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/.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.2.0 / 2021-02-06
2
+
3
+ * [BUGFIX] Update to handle GitHub changes to contribution data CSS
4
+
5
+ # 3.1.0 / 2020-10-06
6
+
7
+ * [FEATURE] Remove curb dependency, which allows githubstats to work on Windows systems. Thanks @ajmeese7!
8
+
9
+ # 3.0.1 / 2018-08-19
10
+
11
+ * [BUGFIX] Fix cap used to decide when to use real_streak GitHub polling
12
+
13
+ # 3.0.0 / 2018-07-18
14
+
15
+ * [BUGFIX] Update to work with recent GitHub changes for historic streak lookup API
16
+ * [FEATURE] Historic GitHub streaks now show actual stats instead of `-1` placeholders
17
+ * [FEATURE] It is now possible to convert a datapoint back to its original format with `.to_a`
18
+ * [FEATURE] Added `.start_date` and `.end_date` to Data object
19
+
1
20
  # 2.0.0 / 2017-09-29
2
21
 
3
22
  * [BUGFIX] Fail cleanly if Github responds with a bad HTTP code
data/README.md CHANGED
@@ -2,10 +2,8 @@ GithubStats
2
2
  =========
3
3
 
4
4
  [![Gem Version](https://img.shields.io/gem/v/githubstats.svg)](https://rubygems.org/gems/githubstats)
5
- [![Dependency Status](https://img.shields.io/gemnasium/akerl/githubstats.svg)](https://gemnasium.com/akerl/githubstats)
6
- [![Build Status](https://img.shields.io/circleci/project/akerl/githubstats/master.svg)](https://circleci.com/gh/akerl/githubstats)
5
+ [![Build Status](https://img.shields.io/travis/com/akerl/githubstats.svg)](https://travis-ci.com/akerl/githubstats)
7
6
  [![Coverage Status](https://img.shields.io/codecov/c/github/akerl/githubstats.svg)](https://codecov.io/github/akerl/githubstats)
8
- [![Code Quality](https://img.shields.io/codacy/d25d2521df3f4a6b8369edd419438d97.svg)](https://www.codacy.com/app/akerl/githubstats)
9
7
  [![MIT Licensed](https://img.shields.io/badge/license-MIT-green.svg)](https://tldrlegal.com/license/mit-license)
10
8
 
11
9
  Grabs Github contribution statistics and presents it in an easily consumable format.
data/githubstats.gemspec CHANGED
@@ -1,14 +1,15 @@
1
1
  require 'English'
2
- $LOAD_PATH.unshift File.expand_path('../lib/', __FILE__)
2
+ $LOAD_PATH.unshift File.expand_path('lib', __dir__)
3
3
  require 'githubstats/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'githubstats'
7
7
  s.version = GithubStats::VERSION
8
8
  s.date = Time.now.strftime('%Y-%m-%d')
9
+ s.required_ruby_version = '>= 2.5.0'
9
10
 
10
11
  s.summary = 'Present Github contributions stats in a consumable format'
11
- s.description = 'Pulls the statistics from Github\'s user contribution chart and provides an interface for analyzing that data' # rubocop:disable Metrics/LineLength
12
+ s.description = 'Pulls the statistics from Github\'s user contribution chart and provides an interface for analyzing that data' # rubocop:disable Layout/LineLength
12
13
  s.authors = ['Les Aker']
13
14
  s.email = 'me@lesaker.org'
14
15
  s.homepage = 'https://github.com/akerl/githubstats'
@@ -18,15 +19,13 @@ Gem::Specification.new do |s|
18
19
  s.test_files = `git ls-files spec/*`.split
19
20
  s.executables = ['githubstats']
20
21
 
21
- s.add_runtime_dependency 'curb', '~> 0.9.0'
22
22
  s.add_runtime_dependency 'basiccache', '~> 1.0.0'
23
- s.add_runtime_dependency 'nokogiri', '~> 1.8.0'
23
+ s.add_runtime_dependency 'nokogiri', '~> 1.10.8'
24
24
 
25
- s.add_development_dependency 'timecop', '~> 0.9.0'
26
- s.add_development_dependency 'rubocop', '~> 0.50.0'
27
- s.add_development_dependency 'goodcop', '~> 0.1.0'
28
- s.add_development_dependency 'rake', '~> 12.1.0'
29
25
  s.add_development_dependency 'codecov', '~> 0.1.1'
30
- s.add_development_dependency 'rspec', '~> 3.6.0'
31
- s.add_development_dependency 'fuubar', '~> 2.2.0'
26
+ s.add_development_dependency 'fuubar', '~> 2.5.0'
27
+ s.add_development_dependency 'goodcop', '~> 0.9.3'
28
+ s.add_development_dependency 'rake', '~> 13.0.0'
29
+ s.add_development_dependency 'rspec', '~> 3.9.0'
30
+ s.add_development_dependency 'timecop', '~> 0.9.0'
32
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,7 +34,7 @@ module GithubStats
34
34
  ##
35
35
  # Default URL for grabbing data
36
36
 
37
- DEFAULT_URL = "#{DEFAULT_HOST}/users/%s/contributions".freeze
37
+ DEFAULT_URL = "#{DEFAULT_HOST}/users/%s/contributions"
38
38
 
39
39
  ##
40
40
  # 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 real_streak
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 < 365
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 < 365
84
+ return data.longest_streak if data.longest_streak.size < 364
86
85
  streak
87
86
  end
88
87
 
@@ -118,42 +117,49 @@ module GithubStats
118
117
 
119
118
  def load_data
120
119
  @data = GithubStats::Data.new download
121
- @last_updated = DateTime.now
120
+ @last_updated = Time.now
122
121
  end
123
122
 
124
123
  ##
125
- # Set a custom longest_streak that takes into account GitHub,
126
- # which reports full length but only gives data for a year
127
-
128
- def real_streak_start(chart_start)
129
- res = GithubStats::Data.new download(chart_start.strftime('%Y-%m-%d'))
130
- last_streak_start = res.streaks.last.first.date
131
- new_chart_start = res.raw.first.date
132
- return last_streak_start unless last_streak_start == new_chart_start
133
- real_streak_start(new_chart_start)
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
- existing = data.streaks.last
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(from = nil)
147
- url = from ? @url + "?from=#{from}" : @url
148
- res = Curl::Easy.perform(url)
149
- code = res.response_code
150
- raise("Failed loading data from GitHub: #{url} #{code}") if code != 200
151
- html = Nokogiri::HTML(res.body_str)
152
- html.css('.day').map do |x|
143
+ def download(to_date = nil)
144
+ resp = request(to_date)
145
+ html = Nokogiri::HTML(resp)
146
+ svg = html.at_css('svg.js-calendar-graph-svg')
147
+ svg.css('.ContributionCalendar-day').map do |x|
153
148
  x.attributes.values_at('data-date', 'data-count').map(&:value)
154
149
  end
155
150
  end
156
151
 
152
+ def request(to_date = nil)
153
+ url = to_date ? @url + "?to=#{to_date.strftime('%Y-%m-%d')}" : @url
154
+ # https://stackoverflow.com/a/5786863/6456163
155
+ resp = Net::HTTP.get_response(URI(url))
156
+ code = resp.code
157
+ raise("Failed loading data from GitHub: #{url} #{code}") if code != '200'
158
+ resp.body
159
+ rescue SocketError
160
+ raise RuntimeError
161
+ end
162
+
157
163
  def method_missing(sym, *args, &block)
158
164
  load_data if @last_updated.nil?
159
165
  return super unless @data.respond_to? sym
@@ -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
 
@@ -102,7 +120,7 @@ module GithubStats
102
120
  # The mean score
103
121
 
104
122
  def mean
105
- scores.reduce(:+) / @raw.size.to_f
123
+ scores.sum / @raw.size.to_f
106
124
  end
107
125
 
108
126
  ##
@@ -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 < 0 || score > max.score
183
+ return nil if score.negative? || score > max.score
166
184
  quartile_boundaries.count { |bound| score > bound }
167
185
  end
168
186
 
@@ -179,9 +197,7 @@ module GithubStats
179
197
  def _pad(data, index, fill_value, goal)
180
198
  mod = index * -2 - 1 # 0 index moves -1 in time, -1 move +1 in time
181
199
  point = GithubStats::Datapoint
182
- until data[index].date.wday == goal
183
- data.insert index, point.new(data[index].date + mod, fill_value)
184
- end
200
+ data.insert index, point.new(data[index].date + mod, fill_value) until data[index].date.wday == goal
185
201
  data
186
202
  end
187
203
  end
@@ -3,5 +3,5 @@
3
3
  ##
4
4
  # Define the version
5
5
  module GithubStats
6
- VERSION = '2.0.0'.freeze
6
+ VERSION = '3.2.0'
7
7
  end
@@ -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(DateTime.now, 4)
11
- expect(a.date).to be_an_instance_of DateTime
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
 
@@ -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) { GithubStats::User.new(name: 'fly', url: 'URL-FOR-%s') }
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-FOR-fly'
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 DateTime
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,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: githubstats
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.2.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: 2017-09-29 00:00:00.000000000 Z
11
+ date: 2021-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: curb
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.9.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.9.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: basiccache
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,112 +30,98 @@ dependencies:
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 1.8.0
33
+ version: 1.10.8
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 1.8.0
40
+ version: 1.10.8
55
41
  - !ruby/object:Gem::Dependency
56
- name: timecop
42
+ name: codecov
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: 0.9.0
47
+ version: 0.1.1
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: 0.9.0
54
+ version: 0.1.1
69
55
  - !ruby/object:Gem::Dependency
70
- name: rubocop
56
+ name: fuubar
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 0.50.0
61
+ version: 2.5.0
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: 0.50.0
68
+ version: 2.5.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: goodcop
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 0.1.0
75
+ version: 0.9.3
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 0.1.0
82
+ version: 0.9.3
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: rake
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 12.1.0
89
+ version: 13.0.0
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 12.1.0
111
- - !ruby/object:Gem::Dependency
112
- name: codecov
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.1.1
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.1.1
96
+ version: 13.0.0
125
97
  - !ruby/object:Gem::Dependency
126
98
  name: rspec
127
99
  requirement: !ruby/object:Gem::Requirement
128
100
  requirements:
129
101
  - - "~>"
130
102
  - !ruby/object:Gem::Version
131
- version: 3.6.0
103
+ version: 3.9.0
132
104
  type: :development
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
135
107
  requirements:
136
108
  - - "~>"
137
109
  - !ruby/object:Gem::Version
138
- version: 3.6.0
110
+ version: 3.9.0
139
111
  - !ruby/object:Gem::Dependency
140
- name: fuubar
112
+ name: timecop
141
113
  requirement: !ruby/object:Gem::Requirement
142
114
  requirements:
143
115
  - - "~>"
144
116
  - !ruby/object:Gem::Version
145
- version: 2.2.0
117
+ version: 0.9.0
146
118
  type: :development
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
122
  - - "~>"
151
123
  - !ruby/object:Gem::Version
152
- version: 2.2.0
124
+ version: 0.9.0
153
125
  description: Pulls the statistics from Github's user contribution chart and provides
154
126
  an interface for analyzing that data
155
127
  email: me@lesaker.org
@@ -163,13 +135,13 @@ files:
163
135
  - ".prospectus"
164
136
  - ".rspec"
165
137
  - ".rubocop.yml"
138
+ - ".travis.yml"
166
139
  - CHANGELOG.md
167
140
  - Gemfile
168
141
  - LICENSE
169
142
  - README.md
170
143
  - Rakefile
171
144
  - bin/githubstats
172
- - circle.yml
173
145
  - githubstats.gemspec
174
146
  - lib/githubstats.rb
175
147
  - lib/githubstats/data.rb
@@ -189,7 +161,7 @@ homepage: https://github.com/akerl/githubstats
189
161
  licenses:
190
162
  - MIT
191
163
  metadata: {}
192
- post_install_message:
164
+ post_install_message:
193
165
  rdoc_options: []
194
166
  require_paths:
195
167
  - lib
@@ -197,16 +169,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
197
169
  requirements:
198
170
  - - ">="
199
171
  - !ruby/object:Gem::Version
200
- version: '0'
172
+ version: 2.5.0
201
173
  required_rubygems_version: !ruby/object:Gem::Requirement
202
174
  requirements:
203
175
  - - ">="
204
176
  - !ruby/object:Gem::Version
205
177
  version: '0'
206
178
  requirements: []
207
- rubyforge_project:
208
- rubygems_version: 2.6.13
209
- signing_key:
179
+ rubygems_version: 3.1.2
180
+ signing_key:
210
181
  specification_version: 4
211
182
  summary: Present Github contributions stats in a consumable format
212
183
  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'