hubba 0.4.0 → 0.5.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 +4 -4
- data/lib/hubba/stats.rb +59 -5
- data/lib/hubba/version.rb +1 -1
- data/test/stats/jekyll~minima.json +8 -4
- data/test/test_stats.rb +38 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 319b35fe1bf80f076adbd6a784a85e6e688aa8a4
|
4
|
+
data.tar.gz: 1382ba38baefab59976acd68e5e1f1d3dec6de17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 791b9e53b4f3efcc0f866e76cbcf18e253be680c1656eaa358343e5f39fad7002a4a0e4a07103f395f6741e3e36f27117c2de199d3d6f3eb35ef584a5ddfe099
|
7
|
+
data.tar.gz: 6ef11031170d0300efd81c5213a996ec09a65b458328ab178825062c4ce07cf8e9a9b594ec58bc8d0078e748e4208bb98793b3e67e75456acdc8d2af7caa99e3
|
data/lib/hubba/stats.rb
CHANGED
@@ -22,6 +22,13 @@ module Hubba
|
|
22
22
|
def updated_at() @updated_at ||= @data['updated_at'] ? DateTime.strptime( @data['updated_at'], '%Y-%m-%dT%H:%M:%S') : nil; end
|
23
23
|
def pushed_at() @pushed_at ||= @data['pushed_at'] ? DateTime.strptime( @data['pushed_at'], '%Y-%m-%dT%H:%M:%S') : nil; end
|
24
24
|
|
25
|
+
## date (only) versions
|
26
|
+
def created() @created ||= @data['created_at'] ? Date.strptime( @data['created_at'], '%Y-%m-%d') : nil; end
|
27
|
+
def updated() @updated ||= @data['updated_at'] ? Date.strptime( @data['updated_at'], '%Y-%m-%d') : nil; end
|
28
|
+
def pushed() @pushed ||= @data['pushed_at'] ? Date.strptime( @data['pushed_at'], '%Y-%m-%d') : nil; end
|
29
|
+
|
30
|
+
|
31
|
+
|
25
32
|
def history() @history ||= @data['history'] ? build_history( @data['history'] ) : nil; end
|
26
33
|
|
27
34
|
def size
|
@@ -34,14 +41,56 @@ module Hubba
|
|
34
41
|
@stars ||= history ? history[0].stars : 0
|
35
42
|
end
|
36
43
|
|
44
|
+
|
45
|
+
def commits() @data['commits']; end
|
46
|
+
|
47
|
+
def last_commit() ## convenience shortcut; get first/last commit (use [0]) or nil
|
48
|
+
if @data['commits'] && @data['commits'][0]
|
49
|
+
@data['commits'][0]
|
50
|
+
else
|
51
|
+
nil
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def committed() ## last commit date (from author NOT committer)
|
56
|
+
@committed ||= last_commit ? Date.strptime( last_commit['author']['date'], '%Y-%m-%d') : nil
|
57
|
+
end
|
58
|
+
|
59
|
+
def committed_at() ## last commit date (from author NOT committer)
|
60
|
+
@committed_at ||= last_commit ? DateTime.strptime( last_commit['author']['date'], '%Y-%m-%dT%H:%M:%S') : nil
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
def last_commit_message() ## convenience shortcut; last commit message
|
65
|
+
h = last_commit
|
66
|
+
|
67
|
+
committer_name = h['committer']['name']
|
68
|
+
author_name = h['author']['name']
|
69
|
+
message = h['message']
|
70
|
+
|
71
|
+
buf = ""
|
72
|
+
buf << message
|
73
|
+
buf << " by #{author_name}"
|
74
|
+
|
75
|
+
if committer_name != author_name
|
76
|
+
buf << " w/ #{committer_name}"
|
77
|
+
end
|
78
|
+
end # method commit_message
|
79
|
+
|
80
|
+
|
81
|
+
|
37
82
|
def reset_cache
|
38
83
|
## reset (invalidate) cached values from data hash
|
39
84
|
## use after reading or fetching
|
40
|
-
@full_name
|
41
|
-
@created_at
|
42
|
-
@
|
43
|
-
@
|
44
|
-
@
|
85
|
+
@full_name = nil
|
86
|
+
@created_at = @updated_at = @pushed_at = nil
|
87
|
+
@created = @updated = @pused = nil
|
88
|
+
@history = nil
|
89
|
+
@size = nil
|
90
|
+
@stars = nil
|
91
|
+
|
92
|
+
@committed_at = nil
|
93
|
+
@committed = nil
|
45
94
|
end
|
46
95
|
|
47
96
|
|
@@ -56,6 +105,7 @@ module Hubba
|
|
56
105
|
def initialize( date:, stars: )
|
57
106
|
@date = date
|
58
107
|
@stars = stars
|
108
|
+
@next = nil
|
59
109
|
end
|
60
110
|
|
61
111
|
## link items (append item at the end/tail)
|
@@ -204,6 +254,10 @@ module Hubba
|
|
204
254
|
'date' => commits.data[0]['commit']['committer']['date'],
|
205
255
|
'name' => commits.data[0]['commit']['committer']['name']
|
206
256
|
},
|
257
|
+
'author' => {
|
258
|
+
'date' => commits.data[0]['commit']['author']['date'],
|
259
|
+
'name' => commits.data[0]['commit']['author']['name']
|
260
|
+
},
|
207
261
|
'message' => commits.data[0]['commit']['message']
|
208
262
|
}
|
209
263
|
|
data/lib/hubba/version.rb
CHANGED
@@ -11,11 +11,15 @@
|
|
11
11
|
},
|
12
12
|
"commits": [
|
13
13
|
{
|
14
|
+
"author": {
|
15
|
+
"name": "ashmaroli",
|
16
|
+
"date": "2018-02-21T19:35:59Z"
|
17
|
+
},
|
14
18
|
"committer": {
|
15
|
-
"
|
16
|
-
"
|
19
|
+
"name": "Frank Taillandier",
|
20
|
+
"date": "2018-02-21T19:35:59Z"
|
17
21
|
},
|
18
|
-
"message": "
|
22
|
+
"message": "social icons should resolve baseurl properly (#201)"
|
19
23
|
}
|
20
24
|
]
|
21
|
-
}
|
25
|
+
}
|
data/test/test_stats.rb
CHANGED
@@ -10,6 +10,44 @@ require 'helper'
|
|
10
10
|
|
11
11
|
class TestStats < MiniTest::Test
|
12
12
|
|
13
|
+
|
14
|
+
def test_jekyll_minima
|
15
|
+
|
16
|
+
stats = Hubba::Stats.new( 'jekyll/minima' )
|
17
|
+
|
18
|
+
assert_equal 0, stats.size
|
19
|
+
assert_equal 0, stats.stars
|
20
|
+
assert_nil stats.history
|
21
|
+
|
22
|
+
stats.read( data_dir: "#{Hubba.root}/test/stats" )
|
23
|
+
|
24
|
+
assert_equal 321, stats.size
|
25
|
+
assert_equal 717, stats.stars
|
26
|
+
assert_equal 717, stats.history[0].stars
|
27
|
+
assert_equal 1, stats.history.size
|
28
|
+
|
29
|
+
assert_equal Date.new(2018, 2, 12 ), stats.history[0].date
|
30
|
+
|
31
|
+
assert_nil stats.history[0].diff_days
|
32
|
+
|
33
|
+
assert_equal Date.new(2018, 2, 21 ), stats.committed
|
34
|
+
assert_equal Date.new(2016, 5, 20 ), stats.created
|
35
|
+
assert_equal Date.new(2018, 2, 11 ), stats.updated
|
36
|
+
assert_equal Date.new(2018, 2, 7 ), stats.pushed
|
37
|
+
|
38
|
+
assert_equal DateTime.new(2018, 2, 21, 19, 35, 59 ), stats.committed_at
|
39
|
+
assert_equal DateTime.new(2016, 5, 20, 23, 7, 56 ), stats.created_at
|
40
|
+
assert_equal DateTime.new(2018, 2, 11, 16, 13, 33 ), stats.updated_at
|
41
|
+
assert_equal DateTime.new(2018, 2, 7, 22, 14, 11 ), stats.pushed_at
|
42
|
+
|
43
|
+
|
44
|
+
pp stats.last_commit
|
45
|
+
pp stats.last_commit_message
|
46
|
+
pp stats.history_str ## pp history pretty printed to string (buffer)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
|
13
51
|
def test_awesome_blockchains
|
14
52
|
|
15
53
|
stats = Hubba::Stats.new( 'openblockchains/awesome-blockchains' )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hubba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logutils
|