versafleet 0.1.0 → 0.2.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
  SHA256:
3
- metadata.gz: 2872dea00a6a74e0da415d8aff37a0e9273664d2ceb5769e697879ac7d5f13d3
4
- data.tar.gz: 5101033d3ed26baff22805df056213059a2d1639b98608773e732ed885ceea45
3
+ metadata.gz: 35ddde324fb63af2273c9141dc2e0eb5e7125aac77ff4445c7bafa7d831a42e6
4
+ data.tar.gz: 102437b0f17c395bc7925a3f0f411a6b2ac8f06241564143e8ed01798be94bf4
5
5
  SHA512:
6
- metadata.gz: bc310498781806260dac85344782a306a0f4677f38dc686b7b887a02c00f6135c2249cf8aa688730b02870113bba01d4626c5e435f950b4cbc6dbad58ed41fb5
7
- data.tar.gz: 3228a237fec17275742a3720cb7c48d61b9c1ac0a0fe478f272aacd88eaa82bd997aa6837a7b81bf4c2ffb126ebbd82b86ca177cf9ffb8ab837b1125a91fcf4c
6
+ metadata.gz: 3bafe01ca74150bf2f02e8a6eb0f8f87b79aa28d72e63e5d444ecd92427dfc25688d7755ff3ed91a33cf648981af6ddf95fc115a8da41f0865c9529a0f148845
7
+ data.tar.gz: 5fc7fc2ff39a0bcfb76435d027a1ce5b9b132f8debf45db63798f6f0c6e93c8de452caa36c782dcbdf73bf57115fa358b4a60256f88c45d00423f4c93d0fed97
data/README.md CHANGED
@@ -19,6 +19,8 @@ gem "versafleet"
19
19
 
20
20
  To access the API, you'll need to create a `Versafleet::Client` and pass in your API Key and Secret Key. See [How to obtain API keys](https://versafleet.docs.apiary.io/#introduction/to-obtain-api-keys-(please-keep-them-safe!))
21
21
 
22
+ Need more details? See [VersaFleet API Documentation](https://rubydoc.info/gems/versafleet) to see how it works internally.
23
+
22
24
  ```ruby
23
25
  client = Versafleet::Client.new(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
24
26
  ```
@@ -62,7 +64,7 @@ client.tasks.create(task_attributes: {})
62
64
  # assign task to driver
63
65
  client.tasks.assign(task_id: task_id, task: {driver_id: driver_id, vehicle_id: vehicle_id, remarks: "Notes"})
64
66
  # assign multiple tasks to driver
65
- client.tasks.assign_multiple(task: {ids: [], driver_id: driver_id, vehicle_id: vehicle_id, remarks: "Notes")
67
+ client.tasks.assign_multiple(task: {ids: [], driver_id: driver_id, vehicle_id: vehicle_id, remarks: "Notes"})
66
68
  # unassign task
67
69
  client.tasks.unassign(task_id: task_id)
68
70
  # unassign multiple tasks
@@ -87,9 +89,22 @@ client.tasks.completion_histories(task_id: task_id)
87
89
  client.tasks.base_completion_histories(task_id: task_id)
88
90
  ```
89
91
 
92
+ ### Drivers
93
+
94
+ ```ruby
95
+ # list drivers
96
+ client.drivers.list
97
+ # get a driver details
98
+ client.drivers.retrieve(driver_id: driver_id)
99
+ # create driver
100
+ client.drivers.create(driver: {name: "Yolo", dob: "1990-09-09"})
101
+ # update driver
102
+ client.drivers.update(driver_id: driver_id, driver: {name: "Yolo update"})
103
+ ```
104
+
90
105
  ## TO DO
91
106
 
92
- - [ ] Add API Documentation
107
+ - [x] Add API Documentation ([#2](https://github.com/maful/versafleet-ruby/pull/2))
93
108
  - [ ] Add Docker support
94
109
  - [ ] Support to All VersaFleet API endpoints.
95
110
 
@@ -1,22 +1,53 @@
1
1
  module Versafleet
2
2
  class Client
3
+ # Default API endpoint
3
4
  BASE_URL = "https://api.versafleet.co/api"
4
5
 
5
- attr_reader :client_id, :client_secret
6
+ # @return [String] Gets the VersaFleet API Key
7
+ attr_reader :client_id
6
8
 
9
+ # @return [String] Gets the VersaFleet Secret Key
10
+ attr_reader :client_secret
11
+
12
+ # Initialize a new VersaFlet client
13
+ #
14
+ # == Example:
15
+ #
16
+ # client = Versafleet::Client.new(client_id: ENV["CLIENT_ID"], client_secret: ENV["CLIENT_SECRET"])
17
+ # # use Jobs resource
18
+ # client.jobs.list
19
+ #
20
+ # @param client_id [String] VersaFleet API Key
21
+ # @param client_secret [String] VersaFleet Secret Key
7
22
  def initialize(client_id:, client_secret:)
8
23
  @client_id = client_id
9
24
  @client_secret = client_secret
10
25
  end
11
26
 
27
+ # Jobs Resource instance
28
+ #
29
+ # @return [JobsResource]
12
30
  def jobs
13
31
  JobsResource.new(self)
14
32
  end
15
33
 
34
+ # Tasks Resource instance
35
+ #
36
+ # @return [TasksResource]
16
37
  def tasks
17
38
  TasksResource.new(self)
18
39
  end
19
40
 
41
+ # Drivers Resource instance
42
+ #
43
+ # @return [DriversResource]
44
+ def drivers
45
+ DriversResource.new(self)
46
+ end
47
+
48
+ # Initializes a new Faraday connection
49
+ #
50
+ # @return [Faraday::Connection]
20
51
  def connection
21
52
  @connection ||= Faraday.new(params: default_params) do |conn|
22
53
  conn.url_prefix = BASE_URL
@@ -0,0 +1,4 @@
1
+ module Versafleet
2
+ class Driver < Object
3
+ end
4
+ end
@@ -0,0 +1,67 @@
1
+ module Versafleet
2
+ class DriversResource < Resource
3
+ # List All Drivers
4
+ #
5
+ # == Examples:
6
+ #
7
+ # client.drivers.list
8
+ # # set per page to 20
9
+ # client.drivers.list(per_page: 20)
10
+ # # move to page 2
11
+ # client.drivers.list(page: 2, per_page: 20)
12
+ #
13
+ # {https://versafleet.docs.apiary.io/#reference/0/drivers-api/list-all-drivers VersaFleet API}
14
+ #
15
+ # @param params [Hash] the filter query
16
+ # @return [Collection]
17
+ def list(**params)
18
+ response = get_request("drivers", params: params)
19
+ Collection.from_response(response, key: "drivers", type: Driver)
20
+ end
21
+
22
+ # Get Driver details
23
+ #
24
+ # == Examples:
25
+ #
26
+ # client.drivers.retrieve(driver_id: 123)
27
+ #
28
+ # {https://versafleet.docs.apiary.io/#reference/0/drivers-api/show-a-driver VersaFleet API}
29
+ #
30
+ # @param driver_id [Integer] Driver ID
31
+ # @return [Driver]
32
+ def retrieve(driver_id:)
33
+ Driver.new get_request("drivers/#{driver_id}").body.dig("driver")
34
+ end
35
+
36
+ # Create a Driver
37
+ #
38
+ # == Examples:
39
+ #
40
+ # client.drivers.create(driver: {name: "Yolo", dob: "1990-09-09"})
41
+ #
42
+ # {https://versafleet.docs.apiary.io/#reference/0/drivers-api/create-a-driver VersaFleet API}
43
+ #
44
+ # @param driver [Hash] Driver request payload
45
+ # @return [Driver]
46
+ def create(driver:)
47
+ payload = {driver: driver}
48
+ Driver.new post_request("drivers", body: payload).body.dig("driver")
49
+ end
50
+
51
+ # Update Driver
52
+ #
53
+ # == Examples:
54
+ #
55
+ # client.drivers.update(driver_id: 123, driver: {name: "John"})
56
+ #
57
+ # {https://versafleet.docs.apiary.io/#reference/0/drivers-api/update-a-driver VersaFleet API}
58
+ #
59
+ # @param driver_id [Integer] Driver ID
60
+ # @param driver [Hash] Driver request payload
61
+ # @return [Driver]
62
+ def update(driver_id:, driver:)
63
+ payload = {driver: driver}
64
+ Driver.new put_request("drivers/#{driver_id}", body: payload).body.dig("driver")
65
+ end
66
+ end
67
+ end
@@ -1,26 +1,95 @@
1
1
  module Versafleet
2
2
  class JobsResource < Resource
3
+ # List All Jobs
4
+ #
5
+ # == Examples:
6
+ #
7
+ # client.jobs.list
8
+ # # set per page to 20
9
+ # client.jobs.list(per_page: 20)
10
+ # # move to page 2
11
+ # client.jobs.list(page: 2, per_page: 20)
12
+ # # filter by Customer ID
13
+ # client.jobs.list(customer_id: 1231)
14
+ #
15
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/list-all-jobs VersaFleet API}
16
+ #
17
+ # @param params [Hash] the filter query
18
+ # @return [Collection]
3
19
  def list(**params)
4
20
  response = get_request("v2/jobs", params: params)
5
21
  Collection.from_response(response, key: "jobs", type: Job)
6
22
  end
7
23
 
24
+ # Create a Job
25
+ #
26
+ # == Examples:
27
+ #
28
+ # # see the VersaFleet API for the request body reference
29
+ # client.jobs.create(job: {})
30
+ #
31
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/create-a-new-job VersaFleet API}
32
+ #
33
+ # @param attributes [Hash] Request body
34
+ # @return [Job]
8
35
  def create(**attributes)
9
36
  Job.new post_request("v2/jobs", body: attributes).body.dig("job")
10
37
  end
11
38
 
39
+ # Update Job
40
+ #
41
+ # == Examples:
42
+ #
43
+ # # see the VersaFleet API for the request body reference
44
+ # client.jobs.update(job_id: 123, job: {})
45
+ #
46
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/update-job-or-base-task-details VersaFleet API}
47
+ #
48
+ # @param job_id [Integer] Job ID
49
+ # @param attributes [Hash] Request body
50
+ # @return [Job]
12
51
  def update(job_id:, **attributes)
13
52
  Job.new put_request("v2/jobs/#{job_id}", body: attributes).body.dig("job")
14
53
  end
15
54
 
55
+ # Get Job details
56
+ #
57
+ # == Examples:
58
+ #
59
+ # client.jobs.retrieve(job_id: 123)
60
+ #
61
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/view-details-of-a-job VersaFleet API}
62
+ #
63
+ # @param job_id [Integer] Job ID
64
+ # @return [Job]
16
65
  def retrieve(job_id:)
17
66
  Job.new get_request("v2/jobs/#{job_id}").body.dig("job")
18
67
  end
19
68
 
69
+ # Cancel a Job
70
+ #
71
+ # == Examples:
72
+ #
73
+ # client.jobs.cancel(job_id: 123)
74
+ #
75
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/cancel-a-job VersaFleet API}
76
+ #
77
+ # @param job_id [Integer] Job ID
20
78
  def cancel(job_id:)
79
+ # TODO: Remove Job object return
21
80
  Job.new put_request("v2/jobs/#{job_id}/cancel", body: {}).body
22
81
  end
23
82
 
83
+ # List Tasks of Job
84
+ #
85
+ # == Examples:
86
+ #
87
+ # client.jobs.list_tasks(job_id: 123)
88
+ #
89
+ # {https://versafleet.docs.apiary.io/#reference/0/jobs-v2-api/list-tasks-of-job VersaFleet API}
90
+ #
91
+ # @param job_id [Integer] Job ID
92
+ # @return [Collection]
24
93
  def list_tasks(job_id:)
25
94
  response = get_request("v2/jobs/#{job_id}/tasks")
26
95
  Collection.from_response(response, key: "tasks", type: Task)
@@ -1,86 +1,280 @@
1
1
  module Versafleet
2
2
  class TasksResource < Resource
3
+ # List All Tasks
4
+ #
5
+ # == Examples:
6
+ #
7
+ # client.tasks.list
8
+ # # set per page to 20
9
+ # client.tasks.list(per_page: 20)
10
+ # # set specific date
11
+ # client.tasks.list(date: "2021-01-01")
12
+ #
13
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/list-all-tasks VersaFleet API}
14
+ #
15
+ # @param params [Hash] the filter query
16
+ # @return [Collection]
3
17
  def list(**params)
4
18
  response = get_request("tasks", params: params)
5
19
  Collection.from_response(response, key: "tasks", type: Task)
6
20
  end
7
21
 
22
+ # List All Tasks by State
23
+ #
24
+ # == Examples:
25
+ #
26
+ # client.tasks.list_by_state
27
+ # # tasks by state
28
+ # client.tasks.list_by_state(state: "completed")
29
+ #
30
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/list-all-tasks-by-state VersaFleet API}
31
+ #
32
+ # @param params [Hash] the filter query
33
+ # @return [Collection]
8
34
  def list_by_state(**params)
9
35
  response = get_request("tasks/by_state", params: params)
10
36
  Collection.from_response(response, key: "tasks", type: Task)
11
37
  end
12
38
 
39
+ # Get Task details
40
+ #
41
+ # == Examples:
42
+ #
43
+ # client.tasks.retrieve(task_id: 123)
44
+ #
45
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/view-details-of-a-task VersaFleet API}
46
+ #
47
+ # @param task_id [Integer] Task ID
48
+ # @return [Task]
13
49
  def retrieve(task_id:)
14
50
  Task.new get_request("tasks/#{task_id}").body.dig("task")
15
51
  end
16
52
 
53
+ # Get Task details by Tracking ID
54
+ #
55
+ # == Examples:
56
+ #
57
+ # client.tasks.retrieve_by_tracking_id(tracking_id: "1234567891100")
58
+ #
59
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/view-limited-task-details-from-tracking-id VersaFleet API}
60
+ #
61
+ # @param tracking_id [String] Tracking ID
62
+ # @return [Task]
17
63
  def retrieve_by_tracking_id(tracking_id:)
18
64
  Task.new post_request("tasks/#{tracking_id}/track", body: {}).body.dig("task")
19
65
  end
20
66
 
67
+ # Update Task
68
+ #
69
+ # == Examples:
70
+ #
71
+ # client.tasks.update(task_id: 123, task_attributes: {})
72
+ #
73
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/update-a-task-detail VersaFleet API}
74
+ #
75
+ # @param task_id [Integer] Task ID
76
+ # @param task_attributes [Hash] Task request payload
77
+ # @return [Task]
21
78
  def update(task_id:, task_attributes:)
22
79
  payload = {task_attributes: task_attributes}
23
80
  Task.new put_request("tasks/#{task_id}", body: payload).body.dig("task")
24
81
  end
25
82
 
26
- # TODO: Add support for allocate_id
83
+ # Add Task to Job
84
+ #
85
+ # == Examples:
86
+ #
87
+ # client.tasks.create(task_attributes: {})
88
+ #
89
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/add-a-new-task-to-a-job VersaFleet API}
90
+ #
91
+ # @param task_attributes [Hash] Task request payload
92
+ # @return [Task]
27
93
  def create(task_attributes:)
94
+ # TODO: Add support for allocate_id
28
95
  payload = {task_attributes: task_attributes}
29
96
  Task.new post_request("tasks", body: payload).body.dig("task")
30
97
  end
31
98
 
99
+ # Assign a Driver to Task
100
+ #
101
+ # == Examples:
102
+ #
103
+ # client.tasks.assign(task_id: 123, task: {driver_id: 12, vehicle_id: 3, remarks: "Notes"})
104
+ #
105
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/assign-a-driver-to-a-task VersaFleet API}
106
+ #
107
+ # @param task_id [Integer] Task ID
108
+ # @param task [Hash] Driver and Vehicle details
109
+ # @return [Task]
32
110
  def assign(task_id:, task:)
33
111
  payload = {task: task}
34
112
  Task.new put_request("tasks/#{task_id}/assign", body: payload).body.dig("task")
35
113
  end
36
114
 
115
+ # Assign a Driver to Multiple Tasks
116
+ #
117
+ # == Examples:
118
+ #
119
+ # client.tasks.assign_multiple(task: {ids: [12,21], driver_id: 11, vehicle_id: 2, remarks: "Notes"})
120
+ #
121
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/assign-a-driver-to-multiple-tasks VersaFleet API}
122
+ #
123
+ # @param task [Hash] Task IDs, Driver and Vehicle details
37
124
  def assign_multiple(task:)
38
125
  payload = {task: task}
39
126
  put_request("tasks/assign", body: payload).body
40
127
  end
41
128
 
129
+ # Unssign a Driver from Task
130
+ #
131
+ # == Examples:
132
+ #
133
+ # client.tasks.unassign(task_id: 123)
134
+ #
135
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/unassign-a-driver-from-a-task VersaFleet API}
136
+ #
137
+ # @param task_id [Integer] Task ID
138
+ # @return [Task]
42
139
  def unassign(task_id:)
43
140
  Task.new put_request("tasks/#{task_id}/unassign", body: {}).body.dig("task")
44
141
  end
45
142
 
143
+ # Unsssign a Driver from Multiple Tasks
144
+ #
145
+ # == Examples:
146
+ #
147
+ # client.tasks.unassign_multiple(task: {ids: [123,213]})
148
+ #
149
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/unassign-a-driver-from-multiple-tasks VersaFleet API}
150
+ #
151
+ # @param task [Hash] Task IDs
46
152
  def unassign_multiple(task:)
47
153
  payload = {task: task}
48
154
  put_request("tasks/unassign", body: payload).body
49
155
  end
50
156
 
157
+ # Cancel a Task
158
+ #
159
+ # == Examples:
160
+ #
161
+ # client.tasks.cancel(task_id: 123)
162
+ #
163
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/cancel-a-task VersaFleet API}
164
+ #
165
+ # @param task_id [Integer] Task ID
51
166
  def cancel(task_id:)
52
167
  put_request("tasks/#{task_id}/cancel", body: {}).body
53
168
  end
54
169
 
170
+ # Complete a Task
171
+ #
172
+ # == Examples:
173
+ #
174
+ # client.tasks.complete(task_id: 123)
175
+ #
176
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/complete-/-succeed-a-task VersaFleet API}
177
+ #
178
+ # @param task_id [Integer] Task ID
55
179
  def complete(task_id:)
56
180
  put_request("tasks/#{task_id}/set_successful", body: {}).body
57
181
  end
58
182
 
183
+ # Incomplete a Task
184
+ #
185
+ # == Examples:
186
+ #
187
+ # client.tasks.incomplete(task_id: 123)
188
+ #
189
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/incomplete-/-fail-a-task VersaFleet API}
190
+ #
191
+ # @param task_id [Integer] Task ID
59
192
  def incomplete(task_id:)
60
193
  put_request("tasks/#{task_id}/set_failed", body: {}).body
61
194
  end
62
195
 
196
+ # Set a Task State
197
+ #
198
+ # == Examples:
199
+ #
200
+ # client.tasks.set_state(task_id: 123, to_state: "waiting_for_acknowledgement")
201
+ #
202
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/set-a-task-state VersaFleet API}
203
+ #
204
+ # @param task_id [Integer] Task ID
205
+ # @param to_state [String] Task state
63
206
  def set_state(task_id:, to_state:)
64
207
  payload = {to_state: to_state}
65
208
  put_request("tasks/#{task_id}/state", body: payload).body
66
209
  end
67
210
 
211
+ # Archive a Task
212
+ #
213
+ # == Examples:
214
+ #
215
+ # client.tasks.archive(task_id: 123)
216
+ #
217
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/archive-a-task VersaFleet API}
218
+ #
219
+ # @param task_id [Integer] Task ID
220
+ # @return [Task]
68
221
  def archive(task_id:)
69
222
  Task.new put_request("tasks/#{task_id}/archive", body: {}).body.dig("task")
70
223
  end
71
224
 
225
+ # Unarchive a Task
226
+ #
227
+ # == Examples:
228
+ #
229
+ # client.tasks.unarchive(task_id: 123)
230
+ #
231
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/unarchive-a-task VersaFleet API}
232
+ #
233
+ # @param task_id [Integer] Task ID
234
+ # @return [Task]
72
235
  def unarchive(task_id:)
73
236
  Task.new put_request("tasks/#{task_id}/unarchive", body: {}).body.dig("task")
74
237
  end
75
238
 
239
+ # View Task Completion Histories of a Task
240
+ #
241
+ # == Examples:
242
+ #
243
+ # client.tasks.completion_histories(task_id: 123)
244
+ #
245
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/view-task-completion-histories-of-a-task VersaFleet API}
246
+ #
247
+ # @param task_id [Integer] Task ID
248
+ # @return [Task]
76
249
  def completion_histories(task_id:)
77
250
  Task.new get_request("tasks/#{task_id}/task_completion_histories").body
78
251
  end
79
252
 
253
+ # View Base Task Completion Histories of a Task
254
+ #
255
+ # == Examples:
256
+ #
257
+ # client.tasks.base_completion_histories(task_id: 123)
258
+ #
259
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/view-base-task-completion-histories-of-a-task VersaFleet API}
260
+ #
261
+ # @param task_id [Integer] Task ID
262
+ # @return [Task]
80
263
  def base_completion_histories(task_id:)
81
264
  Task.new get_request("tasks/#{task_id}/base_task_completion_histories").body
82
265
  end
83
266
 
267
+ # Allocate a Task
268
+ #
269
+ # == Examples:
270
+ #
271
+ # client.tasks.allocate(task_id: 123, sub_account_id: 211)
272
+ #
273
+ # {https://versafleet.docs.apiary.io/#reference/0/tasks-api/allocate-a-task VersaFleet API}
274
+ #
275
+ # @param task_id [Integer] Task ID
276
+ # @param sub_account_id [Integer] Transporter ID
277
+ # @return [Task]
84
278
  def allocate(task_id:, sub_account_id:)
85
279
  payload = {task: {allocatee_id: sub_account_id}}
86
280
  Task.new put_request("tasks/#{task_id}/allocate", body: payload).body.dig("task")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Versafleet
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/versafleet.rb CHANGED
@@ -12,8 +12,10 @@ module Versafleet
12
12
  # Resources (like high level API endpoints)
13
13
  autoload :JobsResource, "versafleet/resources/jobs"
14
14
  autoload :TasksResource, "versafleet/resources/tasks"
15
+ autoload :DriversResource, "versafleet/resources/drivers"
15
16
 
16
17
  # Classes used to return a nicer object wrapping the response data
17
18
  autoload :Job, "versafleet/objects/job"
18
19
  autoload :Task, "versafleet/objects/task"
20
+ autoload :Driver, "versafleet/objects/driver"
19
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: versafleet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maful Prayoga A
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-13 00:00:00.000000000 Z
11
+ date: 2021-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -38,14 +38,13 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
- description:
41
+ description:
42
42
  email:
43
43
  - mafulprayoga@gmail.com
44
44
  executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - ".github/workflows/release.yml"
49
48
  - ".github/workflows/test.yml"
50
49
  - ".gitignore"
51
50
  - CODE_OF_CONDUCT.md
@@ -60,9 +59,11 @@ files:
60
59
  - lib/versafleet/collection.rb
61
60
  - lib/versafleet/error.rb
62
61
  - lib/versafleet/object.rb
62
+ - lib/versafleet/objects/driver.rb
63
63
  - lib/versafleet/objects/job.rb
64
64
  - lib/versafleet/objects/task.rb
65
65
  - lib/versafleet/resource.rb
66
+ - lib/versafleet/resources/drivers.rb
66
67
  - lib/versafleet/resources/jobs.rb
67
68
  - lib/versafleet/resources/tasks.rb
68
69
  - lib/versafleet/version.rb
@@ -75,7 +76,7 @@ metadata:
75
76
  bug_tracker_uri: https://github.com/maful/versafleet-ruby/issues
76
77
  source_code_uri: https://github.com/maful/versafleet-ruby
77
78
  github_repo: https://github.com/maful/versafleet-ruby
78
- post_install_message:
79
+ post_install_message:
79
80
  rdoc_options: []
80
81
  require_paths:
81
82
  - lib
@@ -91,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
92
  version: '0'
92
93
  requirements: []
93
94
  rubygems_version: 3.2.22
94
- signing_key:
95
+ signing_key:
95
96
  specification_version: 4
96
97
  summary: Ruby bindings for the VersaFleet API
97
98
  test_files: []
@@ -1,41 +0,0 @@
1
- name: Build + Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*.*.*"
7
-
8
- jobs:
9
- build:
10
- runs-on: ubuntu-20.04
11
-
12
- strategy:
13
- matrix:
14
- ruby: ["2.5", "2.6", "2.7", "3.0"]
15
-
16
- steps:
17
- - uses: actions/checkout@v2
18
-
19
- - name: Set up Ruby
20
- uses: ruby/setup-ruby@v1
21
- with:
22
- ruby-version: ${{ matrix.ruby }}
23
- bundler-cache: true
24
-
25
- - name: StandardRb check
26
- run: bundle exec standardrb
27
-
28
- - name: Run tests
29
- run: |
30
- bundle exec rake test
31
-
32
- - name: Publish to RubyGems
33
- run: |
34
- mkdir -p $HOME/.gem
35
- touch $HOME/.gem/credentials
36
- chmod 0600 $HOME/.gem/credentials
37
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
38
- gem build *.gemspec
39
- gem push *.gem
40
- env:
41
- GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"