gh 0.2.2 → 0.2.3
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.
- data/README.md +1 -0
- data/lib/gh/normalizer.rb +29 -15
- data/lib/gh/version.rb +1 -1
- data/spec/normalizer_spec.rb +12 -0
- metadata +12 -12
data/README.md
CHANGED
@@ -111,6 +111,7 @@ I hope so, we use it in production for [Travis CI](http://travis-ci.org/). The w
|
|
111
111
|
|
112
112
|
## History
|
113
113
|
|
114
|
+
* 2012-04-10: 0.2.3 - better normalization
|
114
115
|
* 2012-04-10: 0.2.2 - improved link following
|
115
116
|
* 2012-04-10: 0.2.1 - bug fix release
|
116
117
|
* 2012-04-10: 0.2.0 - added link following plus bug fixes (mainly encoding issues)
|
data/lib/gh/normalizer.rb
CHANGED
@@ -48,7 +48,12 @@ module GH
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def modify_time(hash, key, value)
|
51
|
-
|
51
|
+
return unless key == 'timestamp'
|
52
|
+
time = Time.at(value)
|
53
|
+
rescue TypeError
|
54
|
+
time = Time.parse(value.to_s)
|
55
|
+
ensure
|
56
|
+
hash['date'] = time.xmlschema if time
|
52
57
|
end
|
53
58
|
|
54
59
|
def modify_user(hash)
|
@@ -57,6 +62,15 @@ module GH
|
|
57
62
|
|
58
63
|
hash['committer'] ||= hash['author'] if hash['author']
|
59
64
|
hash['author'] ||= hash['committer'] if hash['committer']
|
65
|
+
|
66
|
+
modify_user_fields hash['owner']
|
67
|
+
modify_user_fields hash['user']
|
68
|
+
end
|
69
|
+
|
70
|
+
def modify_user_fields(hash)
|
71
|
+
return unless Hash === hash
|
72
|
+
hash['login'] = hash.delete('name') if hash['name']
|
73
|
+
set_link hash, 'self', "users/#{hash['login']}" unless links(hash).include? 'self'
|
60
74
|
end
|
61
75
|
|
62
76
|
def modify_url(hash, key, value)
|
@@ -73,20 +87,20 @@ module GH
|
|
73
87
|
|
74
88
|
def modify_key(key, value = nil)
|
75
89
|
case key
|
76
|
-
when 'gravatar_url'
|
77
|
-
when 'org'
|
78
|
-
when 'orgs'
|
79
|
-
when 'username'
|
80
|
-
when 'repo'
|
81
|
-
when 'repos'
|
82
|
-
when /^repos?_(.*)$/
|
83
|
-
when /^(.*)_repo$/
|
84
|
-
when /^(.*)_repos$/
|
85
|
-
when 'commit', 'commit_id' then value =~ /^\w{40}$/ ? 'sha' : key
|
86
|
-
when 'comments'
|
87
|
-
when 'forks'
|
88
|
-
when 'repositories'
|
89
|
-
when /^(.*)s_count$/
|
90
|
+
when 'gravatar_url' then 'avatar_url'
|
91
|
+
when 'org' then 'organization'
|
92
|
+
when 'orgs' then 'organizations'
|
93
|
+
when 'username' then 'login'
|
94
|
+
when 'repo' then 'repository'
|
95
|
+
when 'repos' then modify_key('repositories', value)
|
96
|
+
when /^repos?_(.*)$/ then "repository_#{$1}"
|
97
|
+
when /^(.*)_repo$/ then "#{$1}_repository"
|
98
|
+
when /^(.*)_repos$/ then "#{$1}_repositories"
|
99
|
+
when 'commit', 'commit_id', 'id' then value =~ /^\w{40}$/ ? 'sha' : key
|
100
|
+
when 'comments' then Numeric === value ? 'comment_count' : key
|
101
|
+
when 'forks' then Numeric === value ? 'fork_count' : key
|
102
|
+
when 'repositories' then Numeric === value ? 'repository_count' : key
|
103
|
+
when /^(.*)s_count$/ then "#{$1}_count"
|
90
104
|
else key
|
91
105
|
end
|
92
106
|
end
|
data/lib/gh/version.rb
CHANGED
data/spec/normalizer_spec.rb
CHANGED
@@ -205,6 +205,18 @@ describe GH::Normalizer do
|
|
205
205
|
end
|
206
206
|
end
|
207
207
|
|
208
|
+
context 'time' do
|
209
|
+
it 'transforms timestamps stored in "timestamp" to a date in "date"' do
|
210
|
+
normalize 'timestamp' => 1234
|
211
|
+
normalized['date'].should be == Time.at(1234).xmlschema
|
212
|
+
end
|
213
|
+
|
214
|
+
it 'transforms dates stored in "timestamp" to a date in "date"' do
|
215
|
+
normalize 'timestamp' => "2012-04-12T17:29:51+02:00"
|
216
|
+
normalized['date'].should be == Time.parse("2012-04-12T17:29:51+02:00").xmlschema
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
208
220
|
context 'links' do
|
209
221
|
it 'generates link entries from link headers' do
|
210
222
|
pending
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70266152433620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70266152433620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: webmock
|
27
|
-
requirement: &
|
27
|
+
requirement: &70266152433160 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70266152433160
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: faraday
|
38
|
-
requirement: &
|
38
|
+
requirement: &70266152432640 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0.7'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70266152432640
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: backports
|
49
|
-
requirement: &
|
49
|
+
requirement: &70266152432140 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '2.3'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70266152432140
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: multi_json
|
60
|
-
requirement: &
|
60
|
+
requirement: &70266152431660 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '1.0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70266152431660
|
69
69
|
description: multi-layer client for the github api v3
|
70
70
|
email:
|
71
71
|
- konstantin.mailinglists@googlemail.com
|