github-calendar 1.0.0 → 1.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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/lib/github/calendar.rb +18 -23
  4. metadata +8 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 856e63c23cb5514fbc7977cbb20c65b0e4124c7f
4
- data.tar.gz: 09737875de871692c12bceb518d5d9f7c8f86311
3
+ metadata.gz: fbf50a1eafa4c9bc2d866e025534f0d01ee71ba5
4
+ data.tar.gz: 4d734ac9bf923934cca3d082f422ba1e01ba1d5e
5
5
  SHA512:
6
- metadata.gz: 50c57e384c669352a51e2a69d6cdb23972135d7fc2ef7799a6efe9ba99c6f212a496479a693f09f4e4bbdc34cf5d3bc86b1bb2fda8fe986a59ecff52f95de455
7
- data.tar.gz: 854848db35f10e0ead23a74e28b286fd78b10809abf77daae168d14ef81667d21c1ec97bc5bfb73289a05b7543f6c139636c2d8e853dde0b65e823df08eec131
6
+ metadata.gz: 275737388b653d3f376f3693c1cb504e4aa9777588b8c28253e8c0a2da4f0bedbc3c23111c25672ff5eff9542c77bc0d52973fc9896b65f5176e9ed89b026294
7
+ data.tar.gz: 1c24863ea5beb5276cf4c11d78952055aebbfca58de6539428acc57f48f4656a42242a51ceb98e841fa5651fc88a8573c93c27fc76295941dfca4d55bb4b8cbe
data/CHANGELOG.md CHANGED
@@ -1,4 +1,9 @@
1
1
  # Changelog
2
2
  ## Version 1
3
+ ### Version 1.1.0
4
+ * Bump Ruby to 2.3.0, Nokogiri to 1.6.7.2, and StringUtility to 2.7.1.
5
+ * Improve some redundant regex.
6
+ * Improve some documentation.
7
+
3
8
  ### Version 1.0.0
4
9
  * Initial release.
@@ -10,7 +10,7 @@ module GitHub
10
10
 
11
11
  # Gets the total number of contributions for the past year.
12
12
  # @param user [String] The username to get this data for.
13
- # @return [Int] An integer value of their total contributions this year.
13
+ # @return [Integer] An integer value of their total contributions this year.
14
14
  def get_total_year(user)
15
15
  source = get_page_source(user)
16
16
  string = source.css('span.contrib-number')[0].text
@@ -19,7 +19,7 @@ module GitHub
19
19
 
20
20
  # Gets the longest contribution streak (in days) that the user has had.
21
21
  # @param user [String] See #get_total_year
22
- # @return [Int] The user's longest contribution streak in days.
22
+ # @return [Integer] The user's longest contribution streak in days.
23
23
  def get_longest_streak(user)
24
24
  source = get_page_source(user)
25
25
  string = source.css('span.contrib-number')[1].text
@@ -28,7 +28,7 @@ module GitHub
28
28
 
29
29
  # Gets the current contribution streak (in days) that the user is in.
30
30
  # @param user [String] See #get_total_year
31
- # @return [Int] The user's current contribution streak in days.
31
+ # @return [Integer] The user's current contribution streak in days.
32
32
  def get_current_streak(user)
33
33
  source = get_page_source(user)
34
34
  string = source.css('span.contrib-number')[2].text
@@ -37,15 +37,14 @@ module GitHub
37
37
 
38
38
  # Gets the weekly contribution count for the past year.
39
39
  # @param user [String] See #get_total_year
40
- # @return [Hash] How many contributions they have done each week. Example:
41
- # { 0: 0, 1: 8, etc. }
40
+ # @return [Hash] How many contributions they have done each week. Example: { 0: 0, 1: 8, etc. }
42
41
  def get_weekly(user)
43
42
  weeks = get_calendar(user)
44
43
  ret = {}
45
44
  count = 0
46
45
  weeks[1..-1].each do |k|
47
46
  data = 0
48
- capture = k.to_s.scan(/data-count=\"(.*?)\"/)
47
+ capture = k.to_s.scan(/data-count="(.*?)"/)
49
48
  capture[1..-1].each do |ints|
50
49
  data += ints[0].to_i
51
50
  end
@@ -57,14 +56,13 @@ module GitHub
57
56
 
58
57
  # Gets the daily contribution count for the past year.
59
58
  # @param user [String] See #get_total_year
60
- # @return [Hash] How many contributions they have performed each day. See
61
- # #get_weekly
59
+ # @return [Hash] How many contributions they have performed each day. See #get_weekly
62
60
  def get_daily(user)
63
61
  weeks = get_calendar(user)
64
62
  ret = {}
65
63
  count = 0
66
64
  weeks[1..-1].each do |k|
67
- capture = k.to_s.scan(/data-count=\"(.*?)\"/)
65
+ capture = k.to_s.scan(/data-count="(.*?)"/)
68
66
  capture[1..-1].each do |i|
69
67
  ret[count] = i[0].to_i
70
68
  count += 1
@@ -75,9 +73,8 @@ module GitHub
75
73
 
76
74
  # Gets the monthly contribution count for the past year.
77
75
  # @param user [String] See #get_total_year
78
- # @return [Hash] How many contributions they have performed each month.
79
- # Months are listed as their string integers, e.g., 01 is January and
80
- # 12 is December.
76
+ # @return [Hash] How many contributions they have performed each month. Months are listed as their string integers,
77
+ # e.g., 01 is January and 12 is December.
81
78
  def get_monthly(user)
82
79
  weeks = get_calendar(user)
83
80
  ret = {
@@ -95,8 +92,8 @@ module GitHub
95
92
  '12' => 0
96
93
  }
97
94
  weeks[1..-1].each do |k|
98
- date = k.to_s.scan(/data-date=\".*-(.*?)-/)
99
- capture = k.to_s.scan(/data-count=\"(.*?)\"/)
95
+ date = k.to_s.scan(/data-date=".*-(.*?)-/)
96
+ capture = k.to_s.scan(/data-count="(.*?)"/)
100
97
  capture[1..-1].each do |i|
101
98
  ret[date[0][0]] += i[0].to_i
102
99
  end
@@ -106,7 +103,7 @@ module GitHub
106
103
 
107
104
  # Gets the average weekly number of contributions by the user.
108
105
  # @param user [String] See #get_total_year
109
- # @return [Int] The average number of contributions.
106
+ # @return [Integer] The average number of contributions.
110
107
  def get_average_week(user)
111
108
  weekly = get_weekly(user)
112
109
  get_average(weekly)
@@ -114,7 +111,7 @@ module GitHub
114
111
 
115
112
  # Gets the average daily number of contributions by the user.
116
113
  # @param user [String] See #get_total_year
117
- # @return [Int] See #get_average_week
114
+ # @return [Integer] See #get_average_week
118
115
  def get_average_day(user)
119
116
  daily = get_daily(user)
120
117
  get_average(daily)
@@ -122,7 +119,7 @@ module GitHub
122
119
 
123
120
  # Gets the average monthly number of contributions by the user.
124
121
  # @param user [String] See #get_total_year
125
- # @return [Int] See #get_average_week
122
+ # @return [Integer] See #get_average_week
126
123
  def get_average_month(user)
127
124
  monthly = get_monthly(user)
128
125
  get_average(monthly)
@@ -144,18 +141,16 @@ module GitHub
144
141
 
145
142
  # Gets the parsed calendar HTML source for the user profile.
146
143
  # @param user [String] See #get_total_year
147
- # @return [Nokogiri::XML::NodeSet] The NodeSet for all the g's in the
148
- # calendar. Consider this as an array of all the weeks. In iteration,
149
- # you will probably want to skip the first, as it is the total yearly.
150
- # @return [Nil] See #get_total_year
144
+ # @return [Nokogiri::XML::NodeSet] The NodeSet for all the g's in the calendar. Consider this as an array of all
145
+ # the weeks. In iteration, you will probably want to skip the first, as it is the total yearly.
151
146
  def get_calendar(user)
152
147
  source = get_page_source(user)
153
148
  source.css('svg.js-calendar-graph-svg g')
154
149
  end
155
150
 
156
151
  # Gets an average for all the integer values in a hash.
157
- # @param [Hash] The hash to get the average for.
158
- # @return [Int] The average of the values.
152
+ # @param hash [Hash] The hash to get the average for.
153
+ # @return [Integer] The average of the values.
159
154
  def get_average(hash)
160
155
  hash_max = hash.length
161
156
  hash_total = 0
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.0.0
4
+ version: 1.1.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: 2015-11-18 00:00:00.000000000 Z
11
+ date: 2016-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.6.6.2
19
+ version: 1.6.7.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: 1.6.6.2
26
+ version: 1.6.7.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: string-utility
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.5.0
33
+ version: 2.7.1
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: 2.5.0
40
+ version: 2.7.1
41
41
  description: A library that allows for quick HTML parsing of GitHub user profile contribution
42
42
  calendars. This project is part of the GitHub User Language Statistics project.
43
43
  email: elifosterwy@gmail.com
@@ -59,7 +59,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 2.2.3
62
+ version: 2.3.0
63
63
  required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
@@ -67,9 +67,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
67
67
  version: '0'
68
68
  requirements: []
69
69
  rubyforge_project:
70
- rubygems_version: 2.4.5.1
70
+ rubygems_version: 2.5.1
71
71
  signing_key:
72
72
  specification_version: 4
73
73
  summary: Getting GitHub user profile calendar data through HTML parsing.
74
74
  test_files: []
75
- has_rdoc: