hphones-ruby 0.0.1 → 0.0.2

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: 25c61ef3e11a0f877c8ec0af76a6f06bf90d2894
4
- data.tar.gz: a8e4ef5f8e023996fb7f1466e8ef5f680e01061d
3
+ metadata.gz: 00556e53ee71c148c31b173d0087ec8818fc09b7
4
+ data.tar.gz: b8fa6073496428027d4d248d2481de0c65991446
5
5
  SHA512:
6
- metadata.gz: 4ec366fd27a90871e0f2ebd0163759f0aa1cb3ca4cb98e163acc0d8f75c2eb6a07de9a4752f7a1123f6173201f7b816ce8e38830a87fc2b95433ed17e182e9b7
7
- data.tar.gz: b4643d98c4eb0abcb32b2ee48666da54fb38cf5d1a8e4f2055c8e3969dabded10933eb43bcc47a662f3b2b0d4c8a926d65e4492b3f63bd19b59f4fa9e637a3ec
6
+ metadata.gz: 52e5a06556cab0dcefeab73fc80ac516d41d32c5fbb6c317c6d1708ec6d07f13f16c5161900d0d1eef9bfdd57589e9a43dc35417d3a7e8bfd08726c243de64e2
7
+ data.tar.gz: eb9ca2256f2ae56806700530b9002f9e05755bb9b801089a1949560d3a00323401cc6db14826673b8929213bcd15db2a6469e1ebec4776dbe45bf16581b4d852
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hphones-ruby (0.0.1)
4
+ hphones-ruby (0.0.2)
5
5
  faraday
6
6
  hashie
7
7
 
@@ -13,7 +13,7 @@ GEM
13
13
  dotenv (2.2.1)
14
14
  faraday (0.13.1)
15
15
  multipart-post (>= 1.2, < 3)
16
- hashie (3.5.6)
16
+ hashie (3.5.7)
17
17
  method_source (0.9.0)
18
18
  multipart-post (2.0.0)
19
19
  pry (0.11.3)
@@ -1,10 +1,12 @@
1
1
  get_index:
2
2
  method: get
3
+ response: json
3
4
  params:
4
5
  - key: cmd
5
6
  value: getIndex
6
7
  get_artist:
7
8
  method: get
9
+ response: json
8
10
  params:
9
11
  - key: cmd
10
12
  value: getArtist
@@ -12,6 +14,7 @@ get_artist:
12
14
  required: true
13
15
  get_album:
14
16
  method: get
17
+ response: json
15
18
  params:
16
19
  - key: cmd
17
20
  value: getAlbum
@@ -19,32 +22,38 @@ get_album:
19
22
  required: true
20
23
  get_upcoming:
21
24
  method: get
25
+ response: json
22
26
  params:
23
27
  - key: cmd
24
28
  value: getUpcoming
25
29
  get_wanted:
26
30
  method: get
31
+ response: json
27
32
  params:
28
33
  - key: cmd
29
34
  value: getWanted
30
35
  get_similar:
31
36
  method: get
37
+ response: json
32
38
  params:
33
39
  - key: cmd
34
40
  value: getSimilar
35
41
  get_history:
36
42
  method: get
43
+ response: json
37
44
  params:
38
45
  - key: cmd
39
46
  value: getHistory
40
47
  # NOT WORKING YET
41
48
  # get_logs:
42
49
  # method: get
50
+ # response: json
43
51
  # params:
44
52
  # - key: cmd
45
53
  # value: getLogs
46
54
  find_artist:
47
55
  method: get
56
+ response: json
48
57
  params:
49
58
  - key: cmd
50
59
  value: findArtist
@@ -54,6 +63,7 @@ find_artist:
54
63
  required: false
55
64
  find_album:
56
65
  method: get
66
+ response: json
57
67
  params:
58
68
  - key: cmd
59
69
  value: findAlbum
@@ -63,6 +73,7 @@ find_album:
63
73
  required: false
64
74
  add_artist:
65
75
  method: get
76
+ response: status
66
77
  params:
67
78
  - key: cmd
68
79
  value: addArtist
@@ -70,6 +81,7 @@ add_artist:
70
81
  required: true
71
82
  add_album:
72
83
  method: get
84
+ response: status
73
85
  params:
74
86
  - key: cmd
75
87
  value: addAlbum
@@ -77,6 +89,7 @@ add_album:
77
89
  required: true
78
90
  del_artist:
79
91
  method: get
92
+ response: status
80
93
  params:
81
94
  - key: cmd
82
95
  value: delArtist
@@ -84,6 +97,7 @@ del_artist:
84
97
  required: true
85
98
  pause_artist:
86
99
  method: get
100
+ response: status
87
101
  params:
88
102
  - key: cmd
89
103
  value: pauseArtist
@@ -91,6 +105,7 @@ pause_artist:
91
105
  required: true
92
106
  resume_artist:
93
107
  method: get
108
+ response: status
94
109
  params:
95
110
  - key: cmd
96
111
  value: resumeArtist
@@ -98,6 +113,7 @@ resume_artist:
98
113
  required: true
99
114
  refresh_artist:
100
115
  method: get
116
+ response: status
101
117
  params:
102
118
  - key: cmd
103
119
  value: refreshArtist
@@ -105,6 +121,7 @@ refresh_artist:
105
121
  required: true
106
122
  queue_album:
107
123
  method: get
124
+ response: status
108
125
  params:
109
126
  - key: cmd
110
127
  value: queueAlbum
@@ -116,6 +133,7 @@ queue_album:
116
133
  required: false
117
134
  unqueue_album:
118
135
  method: get
136
+ response: status
119
137
  params:
120
138
  - key: cmd
121
139
  value: unqueueAlbum
@@ -123,11 +141,13 @@ unqueue_album:
123
141
  required: true
124
142
  force_search:
125
143
  method: get
144
+ response: status
126
145
  params:
127
146
  - key: cmd
128
147
  value: forceSearch
129
148
  force_process:
130
149
  method: get
150
+ response: status
131
151
  params:
132
152
  - key: cmd
133
153
  value: forceProcess
@@ -135,6 +155,7 @@ force_process:
135
155
  required: false
136
156
  force_active_artists_update:
137
157
  method: get
158
+ response: status
138
159
  params:
139
160
  - key: cmd
140
161
  value: forceActiveArtistsUpdate
@@ -145,26 +166,31 @@ get_version:
145
166
  value: getVersion
146
167
  check_github:
147
168
  method: get
169
+ response: status
148
170
  params:
149
171
  - key: cmd
150
172
  value: checkGithub
151
173
  shutdown:
152
174
  method: get
175
+ response: status
153
176
  params:
154
177
  - key: cmd
155
178
  value: shutdown
156
179
  restart:
157
180
  method: get
181
+ response: status
158
182
  params:
159
183
  - key: cmd
160
184
  value: restart
161
185
  update:
162
186
  method: get
187
+ response: status
163
188
  params:
164
189
  - key: cmd
165
190
  value: update
166
191
  get_artist_art:
167
192
  method: get
193
+ response: path
168
194
  params:
169
195
  - key: cmd
170
196
  value: getArtistArt
@@ -172,6 +198,7 @@ get_artist_art:
172
198
  required: true
173
199
  get_artist_info:
174
200
  method: get
201
+ response: json
175
202
  params:
176
203
  - key: cmd
177
204
  value: getArtistInfo
@@ -179,6 +206,7 @@ get_artist_info:
179
206
  required: true
180
207
  get_album_info:
181
208
  method: get
209
+ response: json
182
210
  params:
183
211
  - key: cmd
184
212
  value: getAlbumInfo
@@ -186,6 +214,7 @@ get_album_info:
186
214
  required: true
187
215
  get_artist_thumb:
188
216
  method: get
217
+ response: path
189
218
  params:
190
219
  - key: cmd
191
220
  value: getArtistThumb
@@ -193,6 +222,7 @@ get_artist_thumb:
193
222
  required: true
194
223
  get_album_thumb:
195
224
  method: get
225
+ response: path
196
226
  params:
197
227
  - key: cmd
198
228
  value: getAlbumThumb
@@ -200,6 +230,7 @@ get_album_thumb:
200
230
  required: true
201
231
  choose_specific_download:
202
232
  method: get
233
+ response: json
203
234
  params:
204
235
  - key: cmd
205
236
  value: choose_specific_download
@@ -52,7 +52,7 @@ class Hphones
52
52
  super
53
53
  end
54
54
 
55
- def respond_to_missing?(mth)
55
+ def respond_to_missing?(mth, *)
56
56
  !!lookup_endpoint(mth) || super
57
57
  end
58
58
 
@@ -11,7 +11,7 @@ class Hphones
11
11
  class MissingParameterError < StandardError; end
12
12
 
13
13
  # The path to the endpoints file.
14
- ENDPOINTS_PATH = File.join('data', 'endpoints.yml')
14
+ ENDPOINTS_PATH = File.join(File.dirname(__FILE__), '..', '..', 'data', 'endpoints.yml')
15
15
 
16
16
  class << self
17
17
  def lookup(key)
@@ -37,10 +37,14 @@ class Hphones
37
37
 
38
38
  def fetch
39
39
  api_params = compile_params
40
- req = Hphones::Request.new(api)
40
+ req = Hphones::Request.new(api, self)
41
41
  req.send endpoint_info['method'], api_params
42
42
  end
43
43
 
44
+ def response_type
45
+ endpoint_info['response']
46
+ end
47
+
44
48
  private
45
49
 
46
50
  attr_reader :key, :api, :params
@@ -5,16 +5,21 @@ class Hphones
5
5
  # Represents an API request
6
6
  #
7
7
  class Request
8
- attr_reader :api
8
+ attr_reader :api, :endpoint
9
9
 
10
- def initialize(api)
10
+ def initialize(api, endpoint)
11
11
  @api = api
12
+ @endpoint = endpoint
12
13
  end
13
14
 
14
15
  def get(params = {})
15
16
  conn = api.connection
16
17
  compiled_params = params.merge('apikey' => api.api_key)
17
- Hphones::Response.new(conn.get(api.base_path, compiled_params))
18
+ Hphones::Response.new(self, conn.get(api.base_path, compiled_params))
19
+ end
20
+
21
+ def response_type
22
+ endpoint.response_type
18
23
  end
19
24
  end
20
25
  end
@@ -8,20 +8,51 @@ class Hphones
8
8
  # Represents an API response
9
9
  #
10
10
  class Response
11
- def initialize(http_response)
11
+ STATUS_OK = 'OK'
12
+
13
+ RESPONSE_TYPE_JSON = 'json'
14
+ RESPONSE_TYPE_STATUS = 'status'
15
+ RESPONSE_TYPE_PATH = 'path'
16
+
17
+ def initialize(request, http_response)
12
18
  @http_response = http_response
19
+ @request = request
13
20
  end
14
21
 
15
22
  def data
16
- @data ||= parse_json http_response.body
23
+ @data ||= parse_data http_response.body
17
24
  end
18
25
 
19
26
  private
20
27
 
21
- attr_reader :http_response
28
+ attr_reader :request, :http_response
29
+
30
+ def parse_data(body)
31
+ case request.response_type
32
+ when RESPONSE_TYPE_JSON
33
+ parse_json body
34
+ when RESPONSE_TYPE_STATUS
35
+ parse_status body
36
+ when RESPONSE_TYPE_PATH
37
+ parse_path body
38
+ end
39
+ end
40
+
41
+ def parse_json(body)
42
+ JSON.parse body
43
+ end
44
+
45
+ def parse_status(body)
46
+ case body
47
+ when STATUS_OK
48
+ true
49
+ else
50
+ false
51
+ end
52
+ end
22
53
 
23
- def parse_json(json_str)
24
- JSON.parse json_str
54
+ def parse_path(body)
55
+ body
25
56
  end
26
57
  end
27
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Hphones
4
- VERSION = '0.0.1'
4
+ VERSION = '0.0.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hphones-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Guillen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-07 00:00:00.000000000 Z
11
+ date: 2017-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday