spoll 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 84c96351fb151e16778a9bf6d8d47ccdf88bd30a
4
- data.tar.gz: e6e8ead477d379bc25b94bb3d7e8cbf49fd70d43
3
+ metadata.gz: e4c93138850732759a693db59dfc427df18a4373
4
+ data.tar.gz: 11442e2b93c26c15628bbaf4810f9feb25f7743b
5
5
  SHA512:
6
- metadata.gz: 043a9f772592a874b40a8325cb501a80b8b6acd36b3041fc3923a679b5e9826f37fbccb609041212bf2068bf55959fd291e2111f2523424a6f191edb996e18e0
7
- data.tar.gz: 566a87841753105ac4c180ab94056f660974f08ad20d18633f665fc5d1eadea71e7fa7c27e8253ecebd953688ea11d5c481dfd69ed665eb910f9a8366e6c1d1e
6
+ metadata.gz: cfb0e5fa0a51855c086ccd07bd2ae8c3da7f77d85275f6f32ce12c2fad6c22d6f77d8f238e1ea4e50ac92d9d2e59c77f21d26de794553b9c52d67c980992590a
7
+ data.tar.gz: e6b7cf1c1e4148f1d1ee3bbf8d28cd0e77d55410a6bf5aec3daa0915aecc57f7119e2e269334b04eba941cc79eacb71e2edd7a4cd9721da055bf0199eb30d42f
@@ -19,12 +19,7 @@ module Spoll
19
19
  end
20
20
 
21
21
  def get_match(id, params = {})
22
- json = get("/matches/#{id}", params)
23
- response = Spoll::Response.new(json)
24
- match = Models::Match.new(json.parsed['match'])
25
- match.set_relations(response)
26
- response.match = match
27
- response
22
+ get("/matches/#{id}", params)
28
23
  end
29
24
 
30
25
  def get_events(params)
@@ -32,12 +27,7 @@ module Spoll
32
27
  end
33
28
 
34
29
  def get_event(id, params = {})
35
- json = get("/events/#{id}", params)
36
- response = Spoll::Response.new(json)
37
- event = Models::Event.new(json.parsed['event'])
38
- event.set_relations(response)
39
- response.event = event
40
- response
30
+ get("/events/#{id}", params)
41
31
  end
42
32
 
43
33
  private
@@ -60,7 +50,8 @@ module Spoll
60
50
 
61
51
  def request(method, url, params, body)
62
52
  with_retry do
63
- token.send(method, "/#{version}/#{url}", headers: HEADERS, params: params, body: body.to_json)
53
+ json = token.send(method, "/#{version}/#{url}", headers: HEADERS, params: params, body: body.to_json)
54
+ Spoll::Response.new(json)
64
55
  end
65
56
  end
66
57
 
@@ -14,10 +14,11 @@ module Spoll
14
14
  @teams = []
15
15
 
16
16
  includes = [
17
- { model: Spoll::Models::Match, key: 'matches', attribute: @matches },
18
- { model: Spoll::Models::Event, key: 'events', attribute: @events },
19
- { model: Spoll::Models::EventType, key: 'event_types', attribute: @event_types },
20
- { model: Spoll::Models::Team, key: 'teams', attribute: @teams }
17
+ { model: Spoll::Models::Match, key: 'match', attribute: 'match' },
18
+ { model: Spoll::Models::Match, key: 'matches', attribute: 'matches' },
19
+ { model: Spoll::Models::Event, key: 'events', attribute: 'events' },
20
+ { model: Spoll::Models::EventType, key: 'event_types', attribute: 'event_types' },
21
+ { model: Spoll::Models::Team, key: 'teams', attribute: 'teams' }
21
22
  ]
22
23
 
23
24
  load_includes(includes)
@@ -38,16 +39,31 @@ module Spoll
38
39
 
39
40
  def load_include(model, key, attribute)
40
41
  if @response.parsed.key?(key)
41
- @response.parsed[key].each do |record|
42
- attribute << model.new(record)
42
+ parsed = @response.parsed[key]
43
+
44
+ if parsed.is_a?(Array)
45
+ load_array(attribute, parsed, model)
46
+ else
47
+ load_single(attribute, parsed, model)
43
48
  end
44
49
  end
45
50
  end
46
51
 
52
+ def load_array(attribute, array, model)
53
+ array.each do |record|
54
+ send(attribute) << model.new(record)
55
+ end
56
+ end
57
+
58
+ def load_single(attribute, value, model)
59
+ self.send("#{attribute}=", model.new(value))
60
+ end
61
+
47
62
  def set_relations(includes)
48
63
  includes.each do |hash|
49
- hash[:attribute].each do |record|
50
- record.set_relations(self)
64
+ [*hash[:attribute]].each do |record|
65
+ attribute = send(record)
66
+ attribute.set_relations(self) if attribute.present?
51
67
  end
52
68
  end
53
69
  end
@@ -1,3 +1,3 @@
1
1
  module Spoll
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - "İ. Emre Kutlu"
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-11 00:00:00.000000000 Z
11
+ date: 2016-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  requirements: []
112
112
  rubyforge_project:
113
- rubygems_version: 2.4.5
113
+ rubygems_version: 2.6.7
114
114
  signing_key:
115
115
  specification_version: 4
116
116
  summary: API client for spoll