github-calendar 1.1.0 → 1.2.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/CHANGELOG.md +5 -0
- data/lib/github/calendar.rb +19 -20
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f05f60b5ed374e073c583e77a0940ffb3ec9710c
|
4
|
+
data.tar.gz: 1edb5b0427f24504e601695832d3de5f68108bd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fe87b15a86f10edcb208d177057d0b1d712dfdf95f44a50f2ee64ccb6fe2a2fb63c386edfac9077082870e081ebbba23438258f0173743b76d1a6b26261a465
|
7
|
+
data.tar.gz: 70bff1e4714f51fb1ff4433baca136f11e913cb8658fa791ff779052dc1f1908105605ed9180f3448e0be1bf702742b360c22dcfbb304367697f05bb07162fd8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
## Version 1
|
3
|
+
### Version 1.2.0
|
4
|
+
* Switch to Curb instead of OpenURI for the `#get_page_source` method, due to possible conflicted `Kernel#open` monkeypatches from Sinatra and OpenURI (#4, ghuls-web#15)
|
5
|
+
* Improve reliability of `#get_daily`, `#get_weekly`, and `#get_monthly` by properly using Nokogiri's Element methods.
|
6
|
+
* `#get_calendar` no longer gets the initial `g` (containing the entire calendar); just the individual weeks as a NodeSet.
|
7
|
+
|
3
8
|
### Version 1.1.0
|
4
9
|
* Bump Ruby to 2.3.0, Nokogiri to 1.6.7.2, and StringUtility to 2.7.1.
|
5
10
|
* Improve some redundant regex.
|
data/lib/github/calendar.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'curb'
|
2
2
|
require 'nokogiri'
|
3
3
|
require 'string-utility'
|
4
4
|
require_relative 'exceptions'
|
@@ -42,13 +42,12 @@ module GitHub
|
|
42
42
|
weeks = get_calendar(user)
|
43
43
|
ret = {}
|
44
44
|
count = 0
|
45
|
-
weeks
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
data += ints[0].to_i
|
45
|
+
weeks.each do |k|
|
46
|
+
week_data = 0
|
47
|
+
k.children.each do |element|
|
48
|
+
week_data += element.attribute('data-count').value.to_i
|
50
49
|
end
|
51
|
-
ret[count] =
|
50
|
+
ret[count] = week_data
|
52
51
|
count += 1
|
53
52
|
end
|
54
53
|
ret
|
@@ -61,10 +60,10 @@ module GitHub
|
|
61
60
|
weeks = get_calendar(user)
|
62
61
|
ret = {}
|
63
62
|
count = 0
|
64
|
-
weeks
|
65
|
-
|
66
|
-
|
67
|
-
ret[count] =
|
63
|
+
weeks.each do |k|
|
64
|
+
k.children.each do |day|
|
65
|
+
val = day.attribute('data-count').value.to_i
|
66
|
+
ret[count] = val
|
68
67
|
count += 1
|
69
68
|
end
|
70
69
|
end
|
@@ -91,11 +90,11 @@ module GitHub
|
|
91
90
|
'11' => 0,
|
92
91
|
'12' => 0
|
93
92
|
}
|
94
|
-
weeks
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
ret[date
|
93
|
+
weeks.each do |k|
|
94
|
+
k.children.each do |day|
|
95
|
+
date = day.attribute('data-date').value.split('-')[1]
|
96
|
+
count = day.attribute('data-count').value
|
97
|
+
ret[date] += count.to_i
|
99
98
|
end
|
100
99
|
end
|
101
100
|
ret
|
@@ -133,7 +132,7 @@ module GitHub
|
|
133
132
|
# @raise [UserNotFoundException] If the user is not found.
|
134
133
|
def get_page_source(user)
|
135
134
|
begin
|
136
|
-
Nokogiri::HTML(
|
135
|
+
Nokogiri::HTML(Curl.get("https://github.com/#{user}").body_str, &:noblanks)
|
137
136
|
rescue OpenURI::HTTPError
|
138
137
|
raise GitHub::Exceptions::UserNotFoundException.new(user)
|
139
138
|
end
|
@@ -141,11 +140,11 @@ module GitHub
|
|
141
140
|
|
142
141
|
# Gets the parsed calendar HTML source for the user profile.
|
143
142
|
# @param user [String] See #get_total_year
|
144
|
-
# @return [Nokogiri::XML::NodeSet] The NodeSet for all the
|
145
|
-
# the weeks.
|
143
|
+
# @return [Nokogiri::XML::NodeSet] The NodeSet for all the days in the calendar. Consider this as an array of all
|
144
|
+
# the weeks.
|
146
145
|
def get_calendar(user)
|
147
146
|
source = get_page_source(user)
|
148
|
-
source.css('svg.js-calendar-graph-svg g')
|
147
|
+
source.css('svg.js-calendar-graph-svg g g')
|
149
148
|
end
|
150
149
|
|
151
150
|
# Gets an average for all the integer values in a hash.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-calendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eli Foster
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.7.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: curb
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.9.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.9.1
|
41
55
|
description: A library that allows for quick HTML parsing of GitHub user profile contribution
|
42
56
|
calendars. This project is part of the GitHub User Language Statistics project.
|
43
57
|
email: elifosterwy@gmail.com
|