githubchart 1.1.0 → 3.1.1
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 -0
- data/.prospectus +8 -8
- data/.rubocop.yml +2 -2
- data/.travis.yml +8 -15
- data/CHANGELOG.md +24 -0
- data/Gemfile +0 -1
- data/README.md +1 -2
- data/bin/githubchart +15 -10
- data/githubchart.gemspec +8 -6
- data/lib/githubchart.rb +21 -2
- data/lib/githubchart/svg.rb +37 -28
- data/lib/githubchart/version.rb +1 -1
- data/spec/githubchart/svg_spec.rb +16 -11
- data/spec/githubchart_spec.rb +12 -4
- metadata +31 -18
- data/circle.yml +0 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: e48f3f535441ab20fe77836268a92837324868897746d1e1fad41058bf4e6267
|
|
4
|
+
data.tar.gz: 0b56932b2b156217e3da81a0f99ece4d2dbf0b5802bd456b066562d4fe9ca8ff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fc030737c81d2f3a47f48ce48f470ccf067a7c99bf88f0e427b05ab2544883dba87592d4ba8ca84e61a5e7fa04d94044243d1f33e92d2911faa3aa3e9c35fc75
|
|
7
|
+
data.tar.gz: 80bc87ebcb7330a88a508b958899ddf981b638ed714f18be9d434a6e6a0aef70c488c8dda403ee1093f12c06779f040de12cffbf2bc909243cae747ff12c9a89
|
data/.circle-ruby
ADDED
data/.prospectus
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
my_slug = 'akerl/githubchart'
|
|
2
|
+
|
|
3
|
+
Prospectus.extra_dep('file', 'prospectus_travis')
|
|
4
|
+
Prospectus.extra_dep('file', 'prospectus_gems')
|
|
5
|
+
|
|
1
6
|
item do
|
|
2
|
-
|
|
3
|
-
static
|
|
4
|
-
set 'green'
|
|
5
|
-
end
|
|
7
|
+
noop
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
slug 'akerl/githubchart'
|
|
10
|
-
end
|
|
9
|
+
extend ProspectusGems::Gemspec.new
|
|
10
|
+
extend ProspectusTravis::Build.new(my_slug)
|
|
11
11
|
end
|
data/.rubocop.yml
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
inherit_gem:
|
|
2
|
+
goodcop: .rubocop.yml
|
data/.travis.yml
CHANGED
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
rvm
|
|
5
|
-
|
|
6
|
-
-
|
|
7
|
-
- 2.2.0
|
|
8
|
-
- 2.1.6
|
|
9
|
-
- 2.0.0-p598
|
|
10
|
-
- 1.9.3-p551
|
|
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
|
|
11
7
|
notifications:
|
|
12
8
|
email: false
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- "%{repository}/%{branch}/%{build_number}: %{message} -- %{build_url}"
|
|
16
|
-
channels:
|
|
17
|
-
- irc.oftc.net#akerl
|
|
9
|
+
slack:
|
|
10
|
+
secure: XOIlpE54Yq450PGd3VI7atmVplX+WRmz+karIxlC+PEWgEbE3G9lCuIKez8OvJ+bS357KEsyF9k2ZhmaxJvQXKtMgQn6I7zBmjBRPm9xAb/ynFujquGsjW+OMAiP/3elq8DS6yvVYUDWBDgRv6SxHF/rLKliuSh4S8NrnuTyfokoWx4i/dIBQyujU6kmRW+2DIfkSY1wTyyb7Qo9HFH3ekOeJrYg+bK2Sm5HSLK+ATKpJ8nWvLirK8KIsQbCSj+Hkt61yBC+3pst51EUI5CwlHF1qxLy9T/eezY+bnUD/0WwcJX10co6K62+qykvN/4pKqYubfSsnYVmU3sZgk0FfRfBNOaYwai6mbZxxcFn4kIUOYoGTML/NTe7bu9dbtbHAM751x/V/tFM1V4m6xap451WQoommuMIcOuGS/OgzeOkc12VQ0X5nXM0DA20MOZKlMUJR+XlYu6derwIvOEOPlazZq8Ta4LQNrMaqax5IzJVyNsSqXMsEkpXDVSpvkwdXeBMy6X02ozNQOrcefoGGLhAtrnewyJnchDxhIy/aG2TUYx6qMGi/zxGr+yKyev2Op3Qwg8FAhJ2Nk3Noa+Tm9ZErcfKhVykowGFYdBurD0M+9eouz4LRQP+JOfvUjmdduEZ9H+uzTou3OCr3pCj+6PLltQRT7C7hNz1YCzocUc=
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
# 3.1.1 / 2020-08-13
|
|
2
|
+
|
|
3
|
+
* [ENHANCEMENT] Update GithubStats dep
|
|
4
|
+
|
|
5
|
+
# 3.1.0 / 2017-10-03
|
|
6
|
+
|
|
7
|
+
* [ENHANCEMENT] GitHub updated their styling; this updated matches that change
|
|
8
|
+
|
|
9
|
+
# 3.0.0 / 2017-09-29
|
|
10
|
+
|
|
11
|
+
* [ENHANCEMENT] Upgrade to latest githubstats with better error messages
|
|
12
|
+
|
|
13
|
+
# 2.1.0 / 2017-08-25
|
|
14
|
+
|
|
15
|
+
* [ENHANCEMENT] Upgrade to latest githubstats
|
|
16
|
+
|
|
17
|
+
# 2.0.1 / 2016-11-08
|
|
18
|
+
|
|
19
|
+
* [BUGFIX] Actually update changelog in release
|
|
20
|
+
|
|
21
|
+
# 2.0.0 / 2016-11-07
|
|
22
|
+
|
|
23
|
+
* [FEATURE] Add support for svg_square as a rendering type, thanks @blerchin
|
|
24
|
+
|
|
1
25
|
# 1.1.0 / 2016-05-19
|
|
2
26
|
|
|
3
27
|
* [BUGFIX] Upgrade to newer GithubStats that fixes streak parsing
|
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -2,8 +2,7 @@ GithubChart
|
|
|
2
2
|
============
|
|
3
3
|
|
|
4
4
|
[](https://rubygems.org/gems/githubchart)
|
|
5
|
-
[](https://circleci.com/gh/akerl/githubchart)
|
|
5
|
+
[](https://travis-ci.com/akerl/githubchart)
|
|
7
6
|
[](https://codecov.io/github/akerl/githubchart)
|
|
8
7
|
[](https://www.codacy.com/app/akerl/githubchart)
|
|
9
8
|
[](https://tldrlegal.com/license/mit-license)
|
data/bin/githubchart
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
require 'githubchart'
|
|
4
4
|
require 'optparse'
|
|
5
5
|
|
|
6
|
+
# rubocop:disable Metrics/BlockLength
|
|
6
7
|
options = {}
|
|
8
|
+
render_type = 'svg'.freeze
|
|
9
|
+
|
|
7
10
|
OptionParser.new do |opts|
|
|
8
11
|
opts.banner =
|
|
9
12
|
"Usage: githubchart (-u username) (-t type) path/for/new/image\n"
|
|
@@ -18,7 +21,6 @@ OptionParser.new do |opts|
|
|
|
18
21
|
if options.include? :user
|
|
19
22
|
raise 'The --user and --input flags are incompatible with each other.'
|
|
20
23
|
end
|
|
21
|
-
|
|
22
24
|
if input.eql? '-'
|
|
23
25
|
raise 'No data provided on stdin' if STDIN.tty?
|
|
24
26
|
contents = STDIN.read
|
|
@@ -26,21 +28,17 @@ OptionParser.new do |opts|
|
|
|
26
28
|
raise 'File does not exist' unless File.exist? input
|
|
27
29
|
contents = File.read input
|
|
28
30
|
end
|
|
29
|
-
|
|
30
31
|
begin
|
|
31
32
|
parsed = JSON.parse(contents)
|
|
32
|
-
rescue => e
|
|
33
|
+
rescue StandardError => e
|
|
33
34
|
raise "Unable to parse JSON data provided: #{e}"
|
|
34
35
|
end
|
|
35
|
-
|
|
36
36
|
options[:data] = GithubStats::Data.new(parsed)
|
|
37
37
|
end
|
|
38
38
|
opts.on('-cSCHEME', '--colors SCHEME', 'Pick a color scheme') do |scheme|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
raise 'Unknown color scheme provided'
|
|
43
|
-
end
|
|
39
|
+
is_good_scheme = GithubChart::COLOR_SCHEMES.include? scheme.to_sym
|
|
40
|
+
raise('Unknown color scheme provided') unless is_good_scheme
|
|
41
|
+
options[:colors] = scheme.to_sym
|
|
44
42
|
end
|
|
45
43
|
opts.on('-s', '--schemes', 'List known color schemes') do
|
|
46
44
|
puts 'Color schemes:'
|
|
@@ -49,15 +47,22 @@ OptionParser.new do |opts|
|
|
|
49
47
|
end
|
|
50
48
|
exit
|
|
51
49
|
end
|
|
50
|
+
opts.on('-t TYPE', '--type TYPE', 'What type to render') do |type|
|
|
51
|
+
raise('Unsupported render type') unless GithubChart.supported.include?(
|
|
52
|
+
type.to_sym
|
|
53
|
+
)
|
|
54
|
+
render_type = type
|
|
55
|
+
end
|
|
52
56
|
opts.on_tail('-v', '--version', 'Show version') do
|
|
53
57
|
puts GithubChart::VERSION
|
|
54
58
|
exit
|
|
55
59
|
end
|
|
56
60
|
end.parse!
|
|
61
|
+
# rubocop:enable Metrics/BlockLength
|
|
57
62
|
|
|
58
63
|
SVG_Path = ARGV.shift
|
|
59
64
|
|
|
60
|
-
Chart = GithubChart.new(options).
|
|
65
|
+
Chart = GithubChart.new(options).render(render_type)
|
|
61
66
|
|
|
62
67
|
if SVG_Path.nil?
|
|
63
68
|
puts Chart
|
data/githubchart.gemspec
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
require 'English'
|
|
2
|
+
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
|
2
3
|
require 'githubchart/version'
|
|
3
4
|
|
|
4
5
|
Gem::Specification.new do |s|
|
|
@@ -16,13 +17,14 @@ Gem::Specification.new do |s|
|
|
|
16
17
|
s.test_files = `git ls-files spec/*`.split
|
|
17
18
|
s.executables = ['githubchart']
|
|
18
19
|
|
|
19
|
-
s.add_runtime_dependency 'githubstats', '~>
|
|
20
|
+
s.add_runtime_dependency 'githubstats', '~> 3.0.2'
|
|
20
21
|
s.add_runtime_dependency 'svgplot', '~> 1.0.0'
|
|
21
22
|
|
|
22
|
-
s.add_development_dependency 'rubocop', '~> 0.
|
|
23
|
-
s.add_development_dependency '
|
|
23
|
+
s.add_development_dependency 'rubocop', '~> 0.76.0'
|
|
24
|
+
s.add_development_dependency 'goodcop', '~> 0.8.0'
|
|
25
|
+
s.add_development_dependency 'rake', '~> 13.0.0'
|
|
24
26
|
s.add_development_dependency 'codecov', '~> 0.1.1'
|
|
25
|
-
s.add_development_dependency 'rspec', '~> 3.
|
|
26
|
-
s.add_development_dependency 'fuubar', '~> 2.
|
|
27
|
+
s.add_development_dependency 'rspec', '~> 3.9.0'
|
|
28
|
+
s.add_development_dependency 'fuubar', '~> 2.5.0'
|
|
27
29
|
end
|
|
28
30
|
|
data/lib/githubchart.rb
CHANGED
|
@@ -40,7 +40,8 @@ module GithubChart
|
|
|
40
40
|
##
|
|
41
41
|
# Color schemes for gradient
|
|
42
42
|
COLOR_SCHEMES = {
|
|
43
|
-
default: ['#eeeeee', '#
|
|
43
|
+
default: ['#eeeeee', '#c6e48b', '#7bc96f', '#239a3b', '#196127'],
|
|
44
|
+
old: ['#eeeeee', '#d6e685', '#8cc665', '#44a340', '#1e6823'],
|
|
44
45
|
halloween: ['#EEEEEE', '#FFEE4A', '#FFC501', '#FE9600', '#03001C']
|
|
45
46
|
}.freeze
|
|
46
47
|
|
|
@@ -57,13 +58,31 @@ module GithubChart
|
|
|
57
58
|
|
|
58
59
|
def initialize(params = {})
|
|
59
60
|
params = { user: params } unless params.is_a? Hash
|
|
60
|
-
@stats = params
|
|
61
|
+
@stats = load_stats(params[:data], params[:user])
|
|
61
62
|
@colors = params[:colors] || :default
|
|
62
63
|
@colors = COLOR_SCHEMES[@colors] unless @colors.is_a? Array
|
|
63
64
|
end
|
|
64
65
|
|
|
66
|
+
def render(type)
|
|
67
|
+
unless GithubChart.supports? type
|
|
68
|
+
raise NameError, "Format #{type} is unsupported."
|
|
69
|
+
end
|
|
70
|
+
send("render_#{type}".to_sym)
|
|
71
|
+
end
|
|
72
|
+
|
|
65
73
|
private
|
|
66
74
|
|
|
75
|
+
##
|
|
76
|
+
# Load stats from provided arg or github
|
|
77
|
+
|
|
78
|
+
def load_stats(data, user)
|
|
79
|
+
return data if data
|
|
80
|
+
raise('No data or user provided') unless user
|
|
81
|
+
stats = GithubStats.new(user).data
|
|
82
|
+
raise("Failed to find data for #{user} on GitHub") unless stats
|
|
83
|
+
stats
|
|
84
|
+
end
|
|
85
|
+
|
|
67
86
|
##
|
|
68
87
|
# Convert the data into a matrix of weeks
|
|
69
88
|
# The fill value is used to pad the front and backdd
|
data/lib/githubchart/svg.rb
CHANGED
|
@@ -7,61 +7,68 @@ module GithubChart
|
|
|
7
7
|
# Declare SVG support
|
|
8
8
|
|
|
9
9
|
add_support(:svg)
|
|
10
|
+
add_support(:svg_square)
|
|
10
11
|
|
|
11
12
|
##
|
|
12
13
|
# Convert stats into SVG
|
|
13
14
|
class Chart
|
|
14
|
-
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
CUBE_SIZE = 12
|
|
18
|
+
X_PAD = 27
|
|
19
|
+
Y_PAD = 20
|
|
20
|
+
|
|
21
|
+
def render_svg
|
|
15
22
|
grid = matrix
|
|
16
|
-
chart = SVGPlot.new(width:
|
|
17
|
-
height:
|
|
23
|
+
chart = SVGPlot.new(width: CUBE_SIZE * grid.column_size + X_PAD,
|
|
24
|
+
height: CUBE_SIZE * grid.row_size + Y_PAD)
|
|
18
25
|
svg_add_points grid, chart
|
|
19
26
|
svg_add_weekdays chart
|
|
20
27
|
svg_add_months chart
|
|
21
28
|
chart.to_s
|
|
22
29
|
end
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
def render_svg_square
|
|
32
|
+
grid = matrix.minor(0, 7, -7, 7)
|
|
33
|
+
chart = SVGPlot.new(width: CUBE_SIZE * grid.column_size - 2,
|
|
34
|
+
height: CUBE_SIZE * grid.row_size - 2)
|
|
35
|
+
svg_add_points grid, chart, 0, 0
|
|
36
|
+
chart.to_s
|
|
37
|
+
end
|
|
25
38
|
|
|
26
|
-
|
|
39
|
+
##
|
|
40
|
+
# Define shared label style
|
|
41
|
+
|
|
42
|
+
SVG_SHARED_STYLE = {
|
|
43
|
+
fill: '#767676',
|
|
44
|
+
'text-anchor': 'start',
|
|
45
|
+
'text-align': 'center',
|
|
46
|
+
'font-family': '-apple-system, BlinkMacSystemFont, \'Segoe UI\', Helvetica, Arial, sans-serif, \'Apple Color Emoji\', \'Segoe UI Emoji\', \'Segoe UI Symbol\'', # rubocop:disable Metrics/LineLength
|
|
47
|
+
'white-space': 'nowrap'
|
|
48
|
+
}.freeze
|
|
27
49
|
|
|
28
50
|
##
|
|
29
51
|
# Define style for weekday labels
|
|
30
52
|
|
|
31
|
-
SVG_WEEKDAY_STYLE =
|
|
32
|
-
:fill => '#ccc',
|
|
33
|
-
:'text-anchor' => 'middle',
|
|
34
|
-
:'text-align' => 'center',
|
|
35
|
-
:font => '9px Helvetica, arial, freesans, clean, sans-serif',
|
|
36
|
-
:'white-space' => 'nowrap',
|
|
37
|
-
:display => 'display'
|
|
38
|
-
}.freeze
|
|
53
|
+
SVG_WEEKDAY_STYLE = SVG_SHARED_STYLE.dup.merge('font-size': '9px').freeze
|
|
39
54
|
|
|
40
55
|
##
|
|
41
56
|
# Define Style for month labels
|
|
42
57
|
|
|
43
|
-
SVG_MONTH_STYLE =
|
|
44
|
-
:fill => '#aaa',
|
|
45
|
-
:'text-align' => 'center',
|
|
46
|
-
:font => '10px Helvetica, arial, freesans, clean, sans-serif',
|
|
47
|
-
:'white-space' => 'nowrap',
|
|
48
|
-
:display => 'block'
|
|
49
|
-
}.freeze
|
|
58
|
+
SVG_MONTH_STYLE = SVG_SHARED_STYLE.dup.merge('font-size': '10px').freeze
|
|
50
59
|
|
|
51
60
|
def svg_point_style(point)
|
|
52
61
|
{
|
|
53
62
|
fill: @colors[@stats.quartile(point.score)],
|
|
54
|
-
|
|
63
|
+
'shape-rendering': 'crispedges'
|
|
55
64
|
}
|
|
56
65
|
end
|
|
57
66
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
def svg_add_points(grid, chart)
|
|
67
|
+
def svg_add_points(grid, chart, xpadding = X_PAD, ypadding = Y_PAD)
|
|
61
68
|
grid.each_with_index do |point, y, x|
|
|
62
69
|
next if point.score == -1
|
|
63
70
|
chart.rectangle(
|
|
64
|
-
(x *
|
|
71
|
+
(x * CUBE_SIZE) + xpadding, (y * CUBE_SIZE) + ypadding, 10, 10,
|
|
65
72
|
data: { score: point.score, date: point.date },
|
|
66
73
|
style: svg_point_style(point)
|
|
67
74
|
)
|
|
@@ -70,10 +77,11 @@ module GithubChart
|
|
|
70
77
|
|
|
71
78
|
def svg_add_weekday(chart, point)
|
|
72
79
|
index = point.date.wday
|
|
73
|
-
letter = point.date.strftime('%a')
|
|
80
|
+
letter = point.date.strftime('%a')
|
|
74
81
|
style = SVG_WEEKDAY_STYLE.dup
|
|
75
82
|
style[:display] = 'none' unless [1, 3, 5].include? index
|
|
76
|
-
|
|
83
|
+
shift = index > 3 ? 29 : 28
|
|
84
|
+
chart.text(0, CUBE_SIZE * index + shift, style: style) { raw letter }
|
|
77
85
|
end
|
|
78
86
|
|
|
79
87
|
def svg_add_weekdays(chart)
|
|
@@ -96,7 +104,8 @@ module GithubChart
|
|
|
96
104
|
offsets.shift if [1, 2].include? offsets[1].last
|
|
97
105
|
offsets.each do |month, offset|
|
|
98
106
|
next if offset > 50
|
|
99
|
-
|
|
107
|
+
x = CUBE_SIZE * offset + X_PAD
|
|
108
|
+
chart.text(x, 10, style: SVG_MONTH_STYLE) { raw month }
|
|
100
109
|
end
|
|
101
110
|
end
|
|
102
111
|
end
|
data/lib/githubchart/version.rb
CHANGED
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'tempfile'
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
def test_svg(type)
|
|
5
|
+
file = Tempfile.new('svg')
|
|
6
|
+
file.write(GithubChart.new(user: 'akerl').render(type))
|
|
7
|
+
path = file.path
|
|
8
|
+
file.close
|
|
9
|
+
res = `file #{path}`
|
|
10
|
+
file.unlink
|
|
11
|
+
res
|
|
12
|
+
end
|
|
6
13
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
describe GithubChart::Chart do
|
|
15
|
+
describe '#render_svg' do
|
|
16
|
+
it 'makes an SVG' do
|
|
17
|
+
expect(test_svg(:svg)).to include('Scalable Vector Graphic')
|
|
18
|
+
end
|
|
12
19
|
end
|
|
13
20
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
describe '#svg' do
|
|
21
|
+
describe '#render_svg_square' do
|
|
17
22
|
it 'makes an SVG' do
|
|
18
|
-
expect(
|
|
23
|
+
expect(test_svg(:svg_square)).to include('Scalable Vector Graphic')
|
|
19
24
|
end
|
|
20
25
|
end
|
|
21
26
|
end
|
data/spec/githubchart_spec.rb
CHANGED
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
describe GithubChart do
|
|
4
4
|
describe '#new' do
|
|
5
5
|
it 'creates a new Chart object' do
|
|
6
|
-
expect(GithubChart.new).to be_an_instance_of GithubChart::Chart
|
|
6
|
+
expect(GithubChart.new(data: [])).to be_an_instance_of GithubChart::Chart
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
@@ -22,10 +22,11 @@ describe GithubChart do
|
|
|
22
22
|
|
|
23
23
|
describe GithubChart::Chart do
|
|
24
24
|
it 'has default colors' do
|
|
25
|
-
expect(GithubChart.new.colors.last).to eql '#
|
|
25
|
+
expect(GithubChart.new(data: []).colors.last).to eql '#196127'
|
|
26
26
|
end
|
|
27
27
|
it 'lets you override the colors' do
|
|
28
|
-
|
|
28
|
+
colors = [1, 2, 3, 4, 5]
|
|
29
|
+
expect(GithubChart.new(data: [], colors: colors).colors.last).to eql 5
|
|
29
30
|
end
|
|
30
31
|
it 'lets you pass external data' do
|
|
31
32
|
data = JSON.parse(File.read('spec/examples/input.json'))
|
|
@@ -33,10 +34,17 @@ describe GithubChart do
|
|
|
33
34
|
end
|
|
34
35
|
it 'creates a data object when not provided' do
|
|
35
36
|
expect(
|
|
36
|
-
GithubChart.new(
|
|
37
|
+
GithubChart.new(user: 'akerl').stats
|
|
37
38
|
).to be_an_instance_of GithubStats::Data
|
|
38
39
|
end
|
|
39
40
|
end
|
|
41
|
+
|
|
42
|
+
describe '#render' do
|
|
43
|
+
it 'raises error if render type is unsupported' do
|
|
44
|
+
expect { GithubChart.new(user: 'akerl').render(:dog) }
|
|
45
|
+
.to raise_error(NameError)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
40
48
|
end
|
|
41
49
|
|
|
42
50
|
describe ::Integer do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: githubchart
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1
|
|
4
|
+
version: 3.1.1
|
|
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-08-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: githubstats
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 3.0.2
|
|
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:
|
|
26
|
+
version: 3.0.2
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: svgplot
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,28 +44,42 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.
|
|
47
|
+
version: 0.76.0
|
|
48
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: 0.
|
|
54
|
+
version: 0.76.0
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: goodcop
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.8.0
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.8.0
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rake
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
58
72
|
requirements:
|
|
59
73
|
- - "~>"
|
|
60
74
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
75
|
+
version: 13.0.0
|
|
62
76
|
type: :development
|
|
63
77
|
prerelease: false
|
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
79
|
requirements:
|
|
66
80
|
- - "~>"
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
82
|
+
version: 13.0.0
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: codecov
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,28 +100,28 @@ dependencies:
|
|
|
86
100
|
requirements:
|
|
87
101
|
- - "~>"
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 3.
|
|
103
|
+
version: 3.9.0
|
|
90
104
|
type: :development
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
108
|
- - "~>"
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 3.
|
|
110
|
+
version: 3.9.0
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: fuubar
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
115
|
- - "~>"
|
|
102
116
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 2.
|
|
117
|
+
version: 2.5.0
|
|
104
118
|
type: :development
|
|
105
119
|
prerelease: false
|
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
121
|
requirements:
|
|
108
122
|
- - "~>"
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 2.
|
|
124
|
+
version: 2.5.0
|
|
111
125
|
description: Uses GithubStats to grab Github contributions scores and converts that
|
|
112
126
|
into an SVG
|
|
113
127
|
email: me@lesaker.org
|
|
@@ -116,6 +130,7 @@ executables:
|
|
|
116
130
|
extensions: []
|
|
117
131
|
extra_rdoc_files: []
|
|
118
132
|
files:
|
|
133
|
+
- ".circle-ruby"
|
|
119
134
|
- ".gitignore"
|
|
120
135
|
- ".prospectus"
|
|
121
136
|
- ".rspec"
|
|
@@ -127,7 +142,6 @@ files:
|
|
|
127
142
|
- README.md
|
|
128
143
|
- Rakefile
|
|
129
144
|
- bin/githubchart
|
|
130
|
-
- circle.yml
|
|
131
145
|
- examples/chart.svg
|
|
132
146
|
- examples/other_user.svg
|
|
133
147
|
- githubchart.gemspec
|
|
@@ -142,7 +156,7 @@ homepage: https://github.com/akerl/githubchart
|
|
|
142
156
|
licenses:
|
|
143
157
|
- MIT
|
|
144
158
|
metadata: {}
|
|
145
|
-
post_install_message:
|
|
159
|
+
post_install_message:
|
|
146
160
|
rdoc_options: []
|
|
147
161
|
require_paths:
|
|
148
162
|
- lib
|
|
@@ -157,9 +171,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
157
171
|
- !ruby/object:Gem::Version
|
|
158
172
|
version: '0'
|
|
159
173
|
requirements: []
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
signing_key:
|
|
174
|
+
rubygems_version: 3.1.2
|
|
175
|
+
signing_key:
|
|
163
176
|
specification_version: 4
|
|
164
177
|
summary: Generate an SVG of Github contributions data
|
|
165
178
|
test_files:
|
data/circle.yml
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
dependencies:
|
|
2
|
-
override:
|
|
3
|
-
- 'rvm-exec 1.9.3-p551 bundle install'
|
|
4
|
-
- 'rvm-exec 2.0.0-p645 bundle install'
|
|
5
|
-
- 'rvm-exec 2.1.6 bundle install'
|
|
6
|
-
- 'rvm-exec 2.2.2 bundle install'
|
|
7
|
-
test:
|
|
8
|
-
override:
|
|
9
|
-
- 'rvm-exec 1.9.3-p551 bundle exec rake'
|
|
10
|
-
- 'rvm-exec 2.0.0-p645 bundle exec rake'
|
|
11
|
-
- 'rvm-exec 2.1.6 bundle exec rake'
|
|
12
|
-
- 'rvm-exec 2.2.2 bundle exec rake'
|