a_parser_client 0.1.6 → 0.1.12
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/Gemfile.lock +4 -4
- data/README.md +19 -17
- data/a_parser_client.gemspec +1 -1
- data/bin/console +4 -10
- data/lib/a_parser_client.rb +16 -208
- data/lib/a_parser_client/api.rb +238 -0
- data/lib/a_parser_client/version.rb +3 -1
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bb17cbf3c7f7242c9b4b59029f9e0b4cc1b5f69d0232047cf9876a78f654579d
|
|
4
|
+
data.tar.gz: ef2ab37b08492563235b4fd80de9462f86c684b4cea8d42da1daea17c5643bc0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 67e35c398c10bbf1016b9c204f8dd5a71568442b9a9abd023c1da0af5f8882c9a7fb5ec59c1f16123855f74b705f3352757e8f92a137b9483fa298bfa50e72c6
|
|
7
|
+
data.tar.gz: 19c44de33e962c58597eb226584ae4e19cf2be134d82263f021592ca6301b85de32d408b971494e6fe9b87a91a8f82fd4da61f0880e64665e953a7c16d69eef5
|
data/Gemfile.lock
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
a_parser_client (0.1.
|
|
4
|
+
a_parser_client (0.1.12)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
9
|
diff-lcs (1.3)
|
|
10
|
-
rake (
|
|
10
|
+
rake (13.0.1)
|
|
11
11
|
rspec (3.8.0)
|
|
12
12
|
rspec-core (~> 3.8.0)
|
|
13
13
|
rspec-expectations (~> 3.8.0)
|
|
@@ -28,8 +28,8 @@ PLATFORMS
|
|
|
28
28
|
DEPENDENCIES
|
|
29
29
|
a_parser_client!
|
|
30
30
|
bundler (~> 2.0)
|
|
31
|
-
rake (~>
|
|
31
|
+
rake (~> 13.0)
|
|
32
32
|
rspec (~> 3.0)
|
|
33
33
|
|
|
34
34
|
BUNDLED WITH
|
|
35
|
-
2.
|
|
35
|
+
2.2.6
|
data/README.md
CHANGED
|
@@ -8,27 +8,29 @@ This is a test release, more API coverage is upcoming.
|
|
|
8
8
|
|
|
9
9
|
Covered for now:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
11
|
+
- ping
|
|
12
|
+
- info
|
|
13
|
+
- getTaskList
|
|
14
|
+
- getTaskState
|
|
15
|
+
- getTaskConf
|
|
16
|
+
- addTask
|
|
17
|
+
- changeTaskStatus
|
|
18
|
+
- getAccountsCount
|
|
19
|
+
- getProxies
|
|
20
|
+
- update
|
|
21
|
+
- getTaskResultsFile
|
|
22
|
+
- deleteTaskResultsFile
|
|
23
|
+
- moveTask
|
|
24
|
+
- getParserInfo
|
|
25
|
+
- getParserPreset
|
|
26
|
+
- oneRequest
|
|
27
|
+
- bulkRequest
|
|
26
28
|
|
|
27
29
|
TODO:
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
- bulkRequest
|
|
31
|
+
Some automation procedures:
|
|
31
32
|
|
|
33
|
+
- multitasks operations (like stop all tasks etc.)
|
|
32
34
|
|
|
33
35
|
|
|
34
36
|
## Installation
|
data/a_parser_client.gemspec
CHANGED
|
@@ -29,6 +29,6 @@ Gem::Specification.new do |spec|
|
|
|
29
29
|
spec.require_paths = ["lib"]
|
|
30
30
|
|
|
31
31
|
spec.add_development_dependency "bundler", "~> 2.0"
|
|
32
|
-
spec.add_development_dependency "rake", "~>
|
|
32
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
|
33
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
34
34
|
end
|
data/bin/console
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
2
3
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'a_parser_client'
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
-
|
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require "pry"
|
|
11
|
-
# Pry.start
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
7
|
+
require 'irb'
|
|
14
8
|
IRB.start(__FILE__)
|
data/lib/a_parser_client.rb
CHANGED
|
@@ -1,219 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'a_parser_client/version'
|
|
4
|
+
require 'a_parser_client/api'
|
|
2
5
|
|
|
3
6
|
module AParserClient
|
|
4
7
|
class Error < StandardError; end
|
|
5
8
|
|
|
6
|
-
class
|
|
7
|
-
|
|
8
|
-
require "open-uri"
|
|
9
|
-
require "net/http"
|
|
10
|
-
|
|
11
|
-
attr :api_url, :api_password, :alive
|
|
12
|
-
|
|
13
|
-
def initialize(api_url, api_password)
|
|
14
|
-
if api_url =~ URI::regexp
|
|
15
|
-
@api_url = api_url
|
|
16
|
-
@api_password = api_password
|
|
17
|
-
@alive = self.alive?
|
|
18
|
-
else
|
|
19
|
-
raise "Bad API URL provided."
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def ping
|
|
24
|
-
request = {
|
|
25
|
-
password: @api_pass,
|
|
26
|
-
action: 'ping'
|
|
27
|
-
}
|
|
28
|
-
do_it request
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
#updates alive status
|
|
32
|
-
def alive?
|
|
33
|
-
@alive = ping ? true : false
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
def get_task_list(completed=false)
|
|
38
|
-
request = {
|
|
39
|
-
password: @api_password,
|
|
40
|
-
action: 'getTasksList',
|
|
41
|
-
data: {completed: completed ? 1 : 0}
|
|
42
|
-
}
|
|
43
|
-
do_it request
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def get_task_state(task_id)
|
|
47
|
-
request = {
|
|
48
|
-
password: @api_password,
|
|
49
|
-
action: 'getTaskState',
|
|
50
|
-
data: {taskUid: task_id}
|
|
51
|
-
}
|
|
52
|
-
do_it request
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def get_task_conf(task_id)
|
|
56
|
-
request = {
|
|
57
|
-
password: @api_password,
|
|
58
|
-
action: 'getTaskConf',
|
|
59
|
-
data: {taskUid: task_id}
|
|
60
|
-
}
|
|
61
|
-
do_it request
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
def get_info
|
|
66
|
-
request = {
|
|
67
|
-
password: @api_password,
|
|
68
|
-
action: 'info',
|
|
69
|
-
}
|
|
70
|
-
do_it request
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def add_task(task_type='text', queries_array=[], queries_file=nil, config, preset, parsers, result_file_name)
|
|
74
|
-
request = {
|
|
75
|
-
password: @api_password,
|
|
76
|
-
action: 'addTask',
|
|
77
|
-
data: {
|
|
78
|
-
queriesFrom: task_type,
|
|
79
|
-
queries: (task_type == 'text' ? queries_array : queries_file),
|
|
80
|
-
configPreset: config,
|
|
81
|
-
preset: preset,
|
|
82
|
-
parsers: parsers,
|
|
83
|
-
resultsFileName: result_file_name
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
do_it request
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def change_task_status(task_id, to_status)
|
|
90
|
-
request = {
|
|
91
|
-
password: @api_password,
|
|
92
|
-
action: 'changeTaskStatus',
|
|
93
|
-
data: {
|
|
94
|
-
taskUid: task_id,
|
|
95
|
-
toStatus: to_status
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
do_it request
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def get_accounts_count
|
|
102
|
-
request = {
|
|
103
|
-
password: @api_password,
|
|
104
|
-
action: 'getAccountsCount',
|
|
105
|
-
data: {}
|
|
106
|
-
}
|
|
107
|
-
do_it request
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
def get_proxies
|
|
112
|
-
request = {
|
|
113
|
-
password: @api_password,
|
|
114
|
-
action: 'getProxies'
|
|
115
|
-
}
|
|
116
|
-
do_it request
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def update!
|
|
120
|
-
request = {
|
|
121
|
-
password: @api_password,
|
|
122
|
-
action: 'update',
|
|
123
|
-
data: {}
|
|
124
|
-
}
|
|
125
|
-
do_it request
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def get_task_results_file(task_id)
|
|
129
|
-
request = {
|
|
130
|
-
password: @api_password,
|
|
131
|
-
action: 'getTaskResultsFile',
|
|
132
|
-
data: {taskUid: task_id}
|
|
133
|
-
}
|
|
134
|
-
do_it request
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
def delete_task_results_file(task_id)
|
|
138
|
-
request = {
|
|
139
|
-
password: @api_password,
|
|
140
|
-
action: 'deleteTaskResultsFile',
|
|
141
|
-
data: {taskUid: task_id}
|
|
142
|
-
}
|
|
143
|
-
do_it request
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def move_task(task_id, direction)
|
|
147
|
-
request = {
|
|
148
|
-
password: @api_password,
|
|
149
|
-
action: 'moveTask',
|
|
150
|
-
data: {
|
|
151
|
-
taskUid: task_id,
|
|
152
|
-
toStatus: direction
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
do_it request
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
def get_parser_info(parser_name)
|
|
159
|
-
request = {
|
|
160
|
-
password: @api_password,
|
|
161
|
-
action: 'getParserInfo',
|
|
162
|
-
data: {
|
|
163
|
-
parser: parser_name
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
do_it request
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
def get_parser_preset(parser_name, preset_name)
|
|
171
|
-
request = {
|
|
172
|
-
password: @api_password,
|
|
173
|
-
action: 'getParserInfo',
|
|
174
|
-
data: {
|
|
175
|
-
parser: parser_name,
|
|
176
|
-
reset: preset_name
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
do_it request
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
private # internal use only
|
|
9
|
+
class Control
|
|
10
|
+
attr_reader :tasks, :driver
|
|
184
11
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
response = send_request(request_body)
|
|
188
|
-
return response
|
|
189
|
-
end
|
|
12
|
+
def initialize(api_driver)
|
|
13
|
+
@driver = api_driver
|
|
190
14
|
|
|
191
|
-
|
|
192
|
-
uri = URI @api_url
|
|
15
|
+
raise 'No API driver provided.' unless @driver
|
|
193
16
|
|
|
194
|
-
|
|
195
|
-
req.body = (request)
|
|
196
|
-
req.content_type = 'text/plain; charset=UTF-8'
|
|
17
|
+
raise 'API driver should be alive to take control of parser.' unless @driver.alive?
|
|
197
18
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
http.request(req)
|
|
201
|
-
}
|
|
202
|
-
rescue Exception => e
|
|
203
|
-
puts "Send request error: #{e}"
|
|
204
|
-
end
|
|
19
|
+
@tasks = fetch_tasks
|
|
20
|
+
end
|
|
205
21
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
raise "Not a JSON type response from the server #{@api_url}. Probably not an API endpoint."
|
|
211
|
-
end
|
|
212
|
-
else
|
|
213
|
-
nil
|
|
214
|
-
end
|
|
215
|
-
end
|
|
216
|
-
|
|
217
|
-
|
|
22
|
+
def fetch_tasks
|
|
23
|
+
data = @driver.get_tasks_list
|
|
24
|
+
data['data'] || []
|
|
25
|
+
end
|
|
218
26
|
end
|
|
219
27
|
end
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module AParserClient
|
|
4
|
+
class API
|
|
5
|
+
require 'json'
|
|
6
|
+
require 'open-uri'
|
|
7
|
+
require 'net/http'
|
|
8
|
+
|
|
9
|
+
attr :api_url, :api_password, :alive
|
|
10
|
+
|
|
11
|
+
def initialize(api_url, api_password)
|
|
12
|
+
raise 'Bad API URL provided.' unless api_url =~ URI::DEFAULT_PARSER.make_regexp
|
|
13
|
+
|
|
14
|
+
@api_url = api_url
|
|
15
|
+
@api_password = api_password
|
|
16
|
+
@alive = alive?
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def ping
|
|
20
|
+
request = {
|
|
21
|
+
password: @api_password,
|
|
22
|
+
action: 'ping'
|
|
23
|
+
}
|
|
24
|
+
do_it request
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# updates alive status
|
|
28
|
+
def alive?
|
|
29
|
+
@alive = ping ? true : false
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def get_tasks_list(completed = false)
|
|
33
|
+
request = {
|
|
34
|
+
password: @api_password,
|
|
35
|
+
action: 'getTasksList',
|
|
36
|
+
data: { completed: completed ? 1 : 0 }
|
|
37
|
+
}
|
|
38
|
+
do_it request
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def get_task_state(task_id)
|
|
42
|
+
request = {
|
|
43
|
+
password: @api_password,
|
|
44
|
+
action: 'getTaskState',
|
|
45
|
+
data: { taskUid: task_id }
|
|
46
|
+
}
|
|
47
|
+
do_it request
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def get_task_conf(task_id)
|
|
51
|
+
request = {
|
|
52
|
+
password: @api_password,
|
|
53
|
+
action: 'getTaskConf',
|
|
54
|
+
data: { taskUid: task_id }
|
|
55
|
+
}
|
|
56
|
+
do_it request
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def get_info
|
|
60
|
+
request = {
|
|
61
|
+
password: @api_password,
|
|
62
|
+
action: 'info',
|
|
63
|
+
}
|
|
64
|
+
do_it request
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def add_task(task_type = 'text', queries_array = [], queries_file = nil, config, preset, parsers, result_file_name)
|
|
68
|
+
request = {
|
|
69
|
+
password: @api_password,
|
|
70
|
+
action: 'addTask',
|
|
71
|
+
data: {
|
|
72
|
+
queriesFrom: task_type,
|
|
73
|
+
queries: (task_type == 'text' ? queries_array : queries_file),
|
|
74
|
+
configPreset: config,
|
|
75
|
+
preset: preset,
|
|
76
|
+
parsers: parsers,
|
|
77
|
+
resultsFileName: result_file_name
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
do_it request
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def one_request(query, parser, preset = 'default', config_preset = 'default', options = [])
|
|
84
|
+
request = {
|
|
85
|
+
password: @api_password,
|
|
86
|
+
action: 'oneRequest',
|
|
87
|
+
data: {
|
|
88
|
+
query: query,
|
|
89
|
+
parser: parser,
|
|
90
|
+
configPreset: config_preset,
|
|
91
|
+
preset: preset,
|
|
92
|
+
options: options
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
do_it request
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def bulk_request(queries, parser, preset, config_preset, threads, raw_results, need_data, options)
|
|
99
|
+
request = {
|
|
100
|
+
password: @api_password,
|
|
101
|
+
action: 'bulkRequest',
|
|
102
|
+
data: {
|
|
103
|
+
queries: queries,
|
|
104
|
+
parser: parser,
|
|
105
|
+
configPreset: config_preset,
|
|
106
|
+
preset: preset,
|
|
107
|
+
threads: threads,
|
|
108
|
+
rawResults: raw_results,
|
|
109
|
+
needData: need_data,
|
|
110
|
+
options: options
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
do_it request
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def change_task_status(task_id, to_status)
|
|
117
|
+
request = {
|
|
118
|
+
password: @api_password,
|
|
119
|
+
action: 'changeTaskStatus',
|
|
120
|
+
data: {
|
|
121
|
+
taskUid: task_id,
|
|
122
|
+
toStatus: to_status
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
do_it request
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def get_accounts_count
|
|
129
|
+
request = {
|
|
130
|
+
password: @api_password,
|
|
131
|
+
action: 'getAccountsCount',
|
|
132
|
+
data: {}
|
|
133
|
+
}
|
|
134
|
+
do_it request
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def get_proxies
|
|
138
|
+
request = {
|
|
139
|
+
password: @api_password,
|
|
140
|
+
action: 'getProxies'
|
|
141
|
+
}
|
|
142
|
+
do_it request
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def update!
|
|
146
|
+
request = {
|
|
147
|
+
password: @api_password,
|
|
148
|
+
action: 'update',
|
|
149
|
+
data: {}
|
|
150
|
+
}
|
|
151
|
+
do_it request
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def get_task_results_file(task_id)
|
|
155
|
+
request = {
|
|
156
|
+
password: @api_password,
|
|
157
|
+
action: 'getTaskResultsFile',
|
|
158
|
+
data: { taskUid: task_id }
|
|
159
|
+
}
|
|
160
|
+
do_it request
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def delete_task_results_file(task_id)
|
|
164
|
+
request = {
|
|
165
|
+
password: @api_password,
|
|
166
|
+
action: 'deleteTaskResultsFile',
|
|
167
|
+
data: { taskUid: task_id }
|
|
168
|
+
}
|
|
169
|
+
do_it request
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def move_task(task_id, direction)
|
|
173
|
+
request = {
|
|
174
|
+
password: @api_password,
|
|
175
|
+
action: 'moveTask',
|
|
176
|
+
data: {
|
|
177
|
+
taskUid: task_id,
|
|
178
|
+
toStatus: direction
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
do_it request
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def get_parser_info(parser_name)
|
|
185
|
+
request = {
|
|
186
|
+
password: @api_password,
|
|
187
|
+
action: 'getParserInfo',
|
|
188
|
+
data: {
|
|
189
|
+
parser: parser_name
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
do_it request
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def get_parser_preset(parser_name, preset_name)
|
|
196
|
+
request = {
|
|
197
|
+
password: @api_password,
|
|
198
|
+
action: 'getParserInfo',
|
|
199
|
+
data: {
|
|
200
|
+
parser: parser_name,
|
|
201
|
+
reset: preset_name
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
do_it request
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
private # internal use only
|
|
208
|
+
|
|
209
|
+
def do_it(request)
|
|
210
|
+
request_body = request.to_json
|
|
211
|
+
send_request(request_body)
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
def send_request(request)
|
|
215
|
+
uri = URI @api_url
|
|
216
|
+
|
|
217
|
+
req = Net::HTTP::Post.new uri
|
|
218
|
+
req.body = (request)
|
|
219
|
+
req.content_type = 'text/plain; charset=UTF-8'
|
|
220
|
+
|
|
221
|
+
begin
|
|
222
|
+
res = Net::HTTP.start(uri.hostname, uri.port) do |http|
|
|
223
|
+
http.request(req)
|
|
224
|
+
end
|
|
225
|
+
rescue StandardError => e
|
|
226
|
+
puts "Send request error: #{e}"
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
return unless res
|
|
230
|
+
|
|
231
|
+
begin
|
|
232
|
+
JSON.parse res.body
|
|
233
|
+
rescue JSON::ParserError => e
|
|
234
|
+
raise "Not a JSON type response from the server #{@api_url}. Probably not an API endpoint. Error: #{e}"
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: a_parser_client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yaroslav Shevchenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-03-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '13.0'
|
|
34
34
|
type: :development
|
|
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: '
|
|
40
|
+
version: '13.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,6 +72,7 @@ files:
|
|
|
72
72
|
- bin/console
|
|
73
73
|
- bin/setup
|
|
74
74
|
- lib/a_parser_client.rb
|
|
75
|
+
- lib/a_parser_client/api.rb
|
|
75
76
|
- lib/a_parser_client/version.rb
|
|
76
77
|
homepage: https://github.com/yvshevchenko/a_parser_client
|
|
77
78
|
licenses:
|
|
@@ -96,8 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
96
97
|
- !ruby/object:Gem::Version
|
|
97
98
|
version: '0'
|
|
98
99
|
requirements: []
|
|
99
|
-
|
|
100
|
-
rubygems_version: 2.7.7
|
|
100
|
+
rubygems_version: 3.1.4
|
|
101
101
|
signing_key:
|
|
102
102
|
specification_version: 4
|
|
103
103
|
summary: A simple inerface to A-Parser API.
|