vng 0.1.19 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 706982b8a7566e56016073d4d5a0e049ed351da4cebab7ca002d7b52b49e46a8
4
- data.tar.gz: 15f60eb8f382d6d4d48903dec324b2251617ae46d28ba0c14fef5471a1060d35
3
+ metadata.gz: 12023fde89a99a074acccda625a78dbe9636c6f5037b01165cd7b7de7c1cb688
4
+ data.tar.gz: 5520d92c3ec6df2412878a884dab4167300a322ae7f4f6d9eb35de8e2e72ee1b
5
5
  SHA512:
6
- metadata.gz: 2a1b3bab28a45018a6a3876c066c9a1d95c376c1d336e83f607c822cbd5bb84b11222f36ce8ca22a9198bca7d0f67a90fd476e61b99601a10a021dc5115fec90
7
- data.tar.gz: 578f75157f4e0e326ec427cf64bc7c42b84dcecbcd37eaeec20cec7f4a6254b44c0eaaa1b69e4e614c64f9a183859041bbeb85b606a5b488daf75ce4cc850c18
6
+ metadata.gz: 12f82572869a7d545cd3d02604b365bbd5966b19e1d01d6f6e64e5a1bdd4d81880e297cb3f7af714e3795269550f16c9eb0bd03c5e5d047ca5e5fb7160ed18fc
7
+ data.tar.gz: 2092c2773ed63733529f25ce6d5ac9a474fe758371837d9c17793e28d1c1c1e9c6e5b7360a73a87a5e6c1ab206d8e86dc2cce63c419db278f46101afca32531e
data/.rubocop.yml ADDED
@@ -0,0 +1,17 @@
1
+ # Omakase Ruby styling for Rails
2
+ inherit_gem: { rubocop-rails-omakase: rubocop.yml }
3
+
4
+ AllCops:
5
+ TargetRubyVersion: 3.2.2
6
+
7
+ Style/StringLiterals:
8
+ Enabled: false
9
+
10
+ Layout/SpaceInsideArrayLiteralBrackets:
11
+ Enabled: false
12
+
13
+ Style/TrailingCommaInHashLiteral:
14
+ Enabled: false
15
+
16
+ Style/TrailingCommaInArrayLiteral:
17
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.0] - 2024-11-20
4
+
5
+ - First major release
6
+ - Includes all the methods added so far
7
+ - 100% code coverage and Rubocop-happy
8
+
9
+ ## [0.1.20] - 2024-11-20
10
+
11
+ - Adds Franchise.find
12
+
3
13
  ## [0.1.19] - 2024-11-19
4
14
 
5
15
  - Adds Route
data/lib/vng/asset.rb CHANGED
@@ -16,10 +16,10 @@ module Vng
16
16
  method: '3',
17
17
  clientID: client_id,
18
18
  Fields: [
19
- {fieldID: 1013, fieldValue: name},
20
- {fieldID: 1017, fieldValue: weight},
21
- {fieldID: 1014, optionID: breed_option_id},
22
- ]
19
+ { fieldID: 1013, fieldValue: name },
20
+ { fieldID: 1017, fieldValue: weight },
21
+ { fieldID: 1014, optionID: breed_option_id },
22
+ ],
23
23
  }
24
24
 
25
25
  data = request path: PATH, body: body
@@ -45,4 +45,3 @@ module Vng
45
45
  end
46
46
  end
47
47
  end
48
-
data/lib/vng/breed.rb CHANGED
@@ -16,7 +16,6 @@ module Vng
16
16
  @high_weight = high_weight
17
17
  end
18
18
 
19
- # TODO: Needs pagination
20
19
  def self.all
21
20
  data = request path: PATH
22
21
 
data/lib/vng/case.rb CHANGED
@@ -16,14 +16,14 @@ module Vng
16
16
  method: '3',
17
17
  clientID: client_id,
18
18
  Fields: [
19
- {fieldID: 219, optionID: 239}, # Status: open
20
- {fieldID: 220, fieldValue: summary}, # Summary:
21
- {fieldID: 230, fieldValue: comments}, # Comments:
22
- {fieldID: 226, optionID: 227}, # Type: 'General request'
23
- {fieldID: 227, optionID: 232}, # Preferred Contact Method: 'Phone'
24
- {fieldID: 228, fieldValue: phone}, # Phone Me Back at:
25
- {fieldID: 229, fieldValue: email}, # Email:
26
- {fieldID: 1023, fieldValue: zip}, # Zip Code:
19
+ { fieldID: 219, optionID: 239 }, # Status: open
20
+ { fieldID: 220, fieldValue: summary }, # Summary:
21
+ { fieldID: 230, fieldValue: comments }, # Comments:
22
+ { fieldID: 226, optionID: 227 }, # Type: 'General request'
23
+ { fieldID: 227, optionID: 232 }, # Preferred Contact Method: 'Phone'
24
+ { fieldID: 228, fieldValue: phone }, # Phone Me Back at:
25
+ { fieldID: 229, fieldValue: email }, # Email:
26
+ { fieldID: 1023, fieldValue: zip }, # Zip Code:
27
27
  ]
28
28
  }
29
29
 
@@ -42,4 +42,3 @@ module Vng
42
42
  end
43
43
  end
44
44
  end
45
-
data/lib/vng/config.rb CHANGED
@@ -42,4 +42,4 @@ module Vng
42
42
  # @note Config is the only module auto-loaded in the Vng module,
43
43
  # in order to have a syntax as easy as Vng.configure
44
44
  extend Config
45
- end
45
+ end
@@ -52,4 +52,4 @@ module Vng
52
52
  @mock = ENV['VNG_MOCK'] == '1'
53
53
  end
54
54
  end
55
- end
55
+ end
data/lib/vng/contact.rb CHANGED
@@ -20,33 +20,22 @@ module Vng
20
20
  method: '3',
21
21
  clientID: client_id,
22
22
  Fields: [
23
- {fieldID: 127, fieldValue: first_name},
24
- {fieldID: 128, fieldValue: last_name},
25
- {fieldID: 97, fieldValue: URI.encode_uri_component(email)},
26
- {fieldID: 96, fieldValue: phone},
23
+ { fieldID: 127, fieldValue: first_name },
24
+ { fieldID: 128, fieldValue: last_name },
25
+ { fieldID: 97, fieldValue: URI.encode_uri_component(email) },
26
+ { fieldID: 96, fieldValue: phone },
27
27
  ]
28
28
  }
29
29
 
30
30
  data = request path: PATH, body: body
31
31
 
32
32
  id = data['Contact']['objectID']
33
- first_name = data['Fields'].find{|field| field['fieldID'] == 127}['fieldValue']
34
- last_name = data['Fields'].find{|field| field['fieldID'] == 128}['fieldValue']
35
- email = data['Fields'].find{|field| field['fieldID'] == 97}['fieldValue']
36
- phone = data['Fields'].find{|field| field['fieldID'] == 96}['fieldValue']
33
+ first_name = value_for_field data, 127
34
+ last_name = value_for_field data, 128
35
+ email = value_for_field data, 97
36
+ phone = value_for_field data, 96
37
37
 
38
38
  new id: id, first_name: first_name, last_name: last_name, email: email, phone: phone
39
39
  end
40
-
41
- # Data validation failed. [{"fieldID"=>0, "fieldName"=>nil, "errNo"=>-1408, "errMsg"=>"Primary contact cannot be deleted."}]
42
- # def destroy
43
- # body = {
44
- # method: '4',
45
- # objectID: id,
46
- # }
47
- #
48
- # self.class.request path: PATH, body: body
49
- # end
50
40
  end
51
41
  end
52
-
data/lib/vng/franchise.rb CHANGED
@@ -5,12 +5,13 @@ module Vng
5
5
  class Franchise < Resource
6
6
  PATH = '/api/v1/resources/franchises/'
7
7
 
8
- attr_reader :id, :name, :gmt_offset
8
+ attr_reader :id, :name, :gmt_offset, :email
9
9
 
10
- def initialize(id:, name: nil, gmt_offset: nil)
10
+ def initialize(id:, name: nil, gmt_offset: nil, email: nil)
11
11
  @id = id
12
12
  @name = name
13
13
  @gmt_offset = gmt_offset
14
+ @email = email
14
15
  end
15
16
 
16
17
 
@@ -26,6 +27,17 @@ module Vng
26
27
  new(id: franchise_id) unless franchise_id == '0'
27
28
  end
28
29
 
30
+ def self.find(franchise_id)
31
+ body = {
32
+ method: '1',
33
+ objectID: franchise_id,
34
+ }
35
+
36
+ data = request path: PATH, body: body
37
+ email = value_for_field data, 9
38
+ new id: franchise_id, email: email
39
+ end
40
+
29
41
  def self.all
30
42
  data = request path: PATH
31
43
 
data/lib/vng/lead.rb CHANGED
@@ -18,32 +18,21 @@ module Vng
18
18
  body = {
19
19
  method: '3',
20
20
  Fields: [
21
- {fieldID: 121, optionID: '59'},
22
- {fieldID: 126, fieldValue: name},
23
- {fieldID: 238, fieldValue: URI.encode_uri_component(email)},
24
- {fieldID: 1024, fieldValue: phone},
21
+ { fieldID: 121, optionID: '59' },
22
+ { fieldID: 126, fieldValue: name },
23
+ { fieldID: 238, fieldValue: URI.encode_uri_component(email) },
24
+ { fieldID: 1024, fieldValue: phone },
25
25
  ]
26
26
  }
27
27
 
28
28
  data = request path: PATH, body: body
29
29
 
30
30
  id = data['Client']['objectID']
31
- name = data['Fields'].find{|field| field['fieldID'] == 126}['fieldValue']
32
- email = data['Fields'].find{|field| field['fieldID'] == 238}['fieldValue']
33
- phone = data['Fields'].find{|field| field['fieldID'] == 1024}['fieldValue']
31
+ name = value_for_field data, 127
32
+ email = value_for_field data, 238
33
+ phone = value_for_field data, 1024
34
34
 
35
35
  new id: id, name: name, email: email, phone: phone
36
36
  end
37
-
38
- # Data validation failed. [{"fieldID"=>0, "fieldName"=>nil, "errNo"=>-1201, "errMsg"=>"Lead ID does not exist."}]
39
- # TODO: has become an account meanwhile!! so this doesn't work
40
- # def destroy
41
- # body = {
42
- # method: '4',
43
- # objectID: id,
44
- # }
45
- #
46
- # self.class.request path: PATH, body: body
47
- # end
48
37
  end
49
38
  end
data/lib/vng/location.rb CHANGED
@@ -5,7 +5,7 @@ module Vng
5
5
  class Location < Resource
6
6
  PATH = '/api/v1/data/Locations/'
7
7
 
8
- # TODO: fetch from /system/objects/ method: 1, objectID: 20
8
+ # These could be fetched from /system/objects/ method: 1, objectID: 20
9
9
  STATES_OPTION_ID = {
10
10
  AK: 9879, AL: 9878, AR: 9877, AZ: 9880, CA: 9883, CO: 9876, CT: 9875,
11
11
  DC: 9874, DE: 9873, FL: 9872, GA: 9871, HI: 9870, IA: 9869, ID: 9868,
@@ -28,11 +28,11 @@ module Vng
28
28
  method: '3',
29
29
  clientID: client_id,
30
30
  Fields: [
31
- {fieldID: 779, optionID: 9906}, # 'USA'
32
- {fieldID: 778, optionID: STATES_OPTION_ID[state.to_sym]},
33
- {fieldID: 776, fieldValue: city},
34
- {fieldID: 773, fieldValue: address},
35
- {fieldID: 775, fieldValue: zip},
31
+ { fieldID: 779, optionID: 9906 }, # 'USA'
32
+ { fieldID: 778, optionID: STATES_OPTION_ID[state.to_sym] },
33
+ { fieldID: 776, fieldValue: city },
34
+ { fieldID: 773, fieldValue: address },
35
+ { fieldID: 775, fieldValue: zip },
36
36
  ]
37
37
  }
38
38
 
@@ -40,16 +40,5 @@ module Vng
40
40
 
41
41
  new id: data['Location']['objectID']
42
42
  end
43
-
44
- # Data validation failed. [{"fieldID"=>0, "fieldName"=>"", "errNo"=>-1809, "errMsg"=>"Primary location cannot be deleted."}]
45
- # def destroy
46
- # body = {
47
- # method: '4',
48
- # objectID: id,
49
- # }
50
- #
51
- # self.class.request path: PATH, body: body
52
- # end
53
43
  end
54
44
  end
55
-
@@ -7,7 +7,7 @@ module Vng
7
7
  private
8
8
  def self.request(path:, body: {}, query: {}, include_security_token: true)
9
9
  if Vng.configuration.mock
10
- mock_request path:, body:, query:
10
+ mock_request(path:, body:, query:)
11
11
  else
12
12
  http_request(path:, body:, query:, include_security_token:)
13
13
  end
@@ -16,57 +16,57 @@ module Vng
16
16
  def self.mock_request(path:, body:, query:)
17
17
  case path
18
18
  when '/api/v1/security/login/'
19
- {"securityToken"=>"1234567"}
19
+ { "securityToken"=>"1234567" }
20
20
  when '/api/v1/resources/zips/'
21
- {"Zips"=>[{"zip"=>"21765", "zoneName"=>"Brentwood", "state"=>"MD"}]}
21
+ { "Zips"=>[{ "zip"=>"21765", "zoneName"=>"Brentwood", "state"=>"MD" }] }
22
22
  when '/api/v1/resources/franchises/'
23
- {"Franchises"=>[
24
- {"franchiseID"=>106, "franchiseName"=>"Mississauga", "gmtOffsetFranchise"=>-300, "isActive"=>false},
25
- {"franchiseID"=>107, "franchiseName"=>"Boise", "gmtOffsetFranchise"=>-420, "isActive"=>true},
26
- ]}
23
+ { "Franchises"=>[
24
+ { "franchiseID"=>106, "franchiseName"=>"Mississauga", "gmtOffsetFranchise"=>-300, "isActive"=>false },
25
+ { "franchiseID"=>107, "franchiseName"=>"Boise", "gmtOffsetFranchise"=>-420, "isActive"=>true },
26
+ ] }
27
27
  when '/api/v1/resources/availability/'
28
28
  if body.key?(:zip)
29
- {"Ids"=>{"franchiseID"=>"172"}}
29
+ { "Ids"=>{ "franchiseID"=>"172" } }
30
30
  elsif body[:method] == '2'
31
- {"Ids"=>{"lockID"=>"1406328"}}
31
+ { "Ids"=>{ "lockID"=>"1406328" } }
32
32
  else
33
- {"Availability"=> [
34
- {"dayID"=>"20241119", "routeID"=>"8949", "startTime"=>"1080"},
35
- {"dayID"=>"20241119", "routeID"=>"8949", "startTime"=>"1110"},
36
- ]}
33
+ { "Availability"=> [
34
+ { "dayID"=>"20241119", "routeID"=>"8949", "startTime"=>"1080" },
35
+ { "dayID"=>"20241119", "routeID"=>"8949", "startTime"=>"1110" },
36
+ ] }
37
37
  end
38
38
  when '/api/v1/resources/breeds/'
39
- {"Breeds"=>[{"breedID"=>2, "breed"=>"Bulldog", "species"=>"Dog", "optionID"=>303, "breedLowWeight"=>30, "breedHighWeight"=>50}]}
39
+ { "Breeds"=>[{ "breedID"=>2, "breed"=>"Bulldog", "species"=>"Dog", "optionID"=>303, "breedLowWeight"=>30, "breedHighWeight"=>50 }] }
40
40
  when '/api/v1/data/Leads/'
41
- {"Client"=>{"objectID"=>"916347"}, "Fields"=>[
42
- {"fieldID"=>126, "fieldValue"=>"Vng Example"},
43
- {"fieldID"=>238, "fieldValue"=>"vng@example.com"},
44
- {"fieldID"=>1024, "fieldValue"=>"8648648640"},
45
- ]}
41
+ { "Client"=>{ "objectID"=>"916347" }, "Fields"=> [
42
+ { "fieldID"=>126, "fieldValue"=>"Vng Example" },
43
+ { "fieldID"=>238, "fieldValue"=>"vng@example.com" },
44
+ { "fieldID"=>1024, "fieldValue"=>"8648648640" },
45
+ ] }
46
46
  when '/api/v1/data/Contacts/'
47
- {"Contact"=>{"objectID"=>"2201007"}, "Fields"=>[
48
- {"fieldID"=>127, "fieldValue"=>"Vng"},
49
- {"fieldID"=>128, "fieldValue"=>"Example"},
50
- {"fieldID"=>97, "fieldValue"=>"vng@example.com"},
51
- {"fieldID"=>96, "fieldValue"=>"8648648640"},
52
- ]}
47
+ { "Contact"=>{ "objectID"=>"2201007" }, "Fields"=>[
48
+ { "fieldID"=>127, "fieldValue"=>"Vng" },
49
+ { "fieldID"=>128, "fieldValue"=>"Example" },
50
+ { "fieldID"=>97, "fieldValue"=>"vng@example.com" },
51
+ { "fieldID"=>96, "fieldValue"=>"8648648640" },
52
+ ] }
53
53
  when '/api/v1/data/Locations/'
54
- {"Location"=>{"objectID"=>"995681"}}
54
+ { "Location"=>{ "objectID"=>"995681" } }
55
55
  when '/api/v1/data/Assets/'
56
- {"Asset"=>{"objectID"=>"2201008"}}
56
+ { "Asset"=>{ "objectID"=>"2201008" } }
57
57
  when '/api/v1/data/priceLists/'
58
- {"PriceItems"=>[
59
- {"priceItemID"=>275111, "priceItem"=>"15 Step SPA Grooming", "value"=>85.0, "taxID"=>256, "durationPerUnit"=>45.0, "serviceBadge"=>"Required", "serviceCategory"=>"15 Step Spa", "isOnline"=>true, "isActive"=>true},
60
- {"priceItemID"=>275300, "priceItem"=>"De-Shedding Treatment", "value"=>20.0, "taxID"=>256, "durationPerUnit"=>15.0, "serviceBadge"=>nil, "serviceCategory"=>"De-Shed", "isOnline"=>true, "isActive"=>false},
61
- ]}
58
+ { "PriceItems"=>[
59
+ { "priceItemID"=>275111, "priceItem"=>"15 Step SPA Grooming", "value"=>85.0, "taxID"=>256, "durationPerUnit"=>45.0, "serviceBadge"=>"Required", "serviceCategory"=>"15 Step Spa", "isOnline"=>true, "isActive"=>true },
60
+ { "priceItemID"=>275300, "priceItem"=>"De-Shedding Treatment", "value"=>20.0, "taxID"=>256, "durationPerUnit"=>15.0, "serviceBadge"=>nil, "serviceCategory"=>"De-Shed", "isOnline"=>true, "isActive"=>false },
61
+ ] }
62
62
  when '/api/v1/resources/serviceTypes/'
63
- {"ServiceTypes"=>[
64
- {"serviceTypeID"=>14, "serviceType"=>"Pet Grooming", "duration"=>90, "isActive"=>true},
65
- ]}
63
+ { "ServiceTypes"=>[
64
+ { "serviceTypeID"=>14, "serviceType"=>"Pet Grooming", "duration"=>90, "isActive"=>true },
65
+ ] }
66
66
  when '/api/v1/data/WorkOrders/'
67
- {"WorkOrder"=>{"objectID"=>"4138030"}}
67
+ { "WorkOrder"=>{ "objectID"=>"4138030" } }
68
68
  when '/api/v1/data/Cases/'
69
- {"Case"=>{"objectID"=>"28460"}}
69
+ { "Case"=>{ "objectID"=>"28460" } }
70
70
  else
71
71
  {}
72
72
  end
data/lib/vng/resource.rb CHANGED
@@ -36,5 +36,10 @@ module Vng
36
36
  def self.security_token
37
37
  Vng.configuration.security_token
38
38
  end
39
+
40
+ def self.value_for_field(data, field_id)
41
+ field = data['Fields'].find { |field| field['fieldID'] == field_id }
42
+ field['fieldValue'] if field
43
+ end
39
44
  end
40
45
  end
data/lib/vng/route.rb CHANGED
@@ -12,7 +12,6 @@ module Vng
12
12
  @name = name
13
13
  end
14
14
 
15
- # TODO: Needs pagination
16
15
  def self.all
17
16
  data = request path: PATH
18
17
 
@@ -24,8 +24,6 @@ module Vng
24
24
  new token: data['securityToken']
25
25
  end
26
26
 
27
- # TODO: Check if it's not the correct one already or catch
28
- # Data validation failed. [{"fieldID"=>0, "fieldName"=>nil, "errNo"=>-5213, "errMsg"=>"Same franchise ID supplied."}]
29
27
  def assign_to(franchise_id:)
30
28
  body = {
31
29
  securityToken: @token,
@@ -35,7 +33,6 @@ module Vng
35
33
 
36
34
  self.class.request path: '/api/v1/security/session/', body: body, include_security_token: false
37
35
  rescue Vng::Error => e
38
- # TODO: improve: ignore if the token was already assigned to the franchise
39
36
  raise unless e.message.include? 'Same franchise ID supplied'
40
37
  end
41
38
 
@@ -43,8 +40,6 @@ module Vng
43
40
  query = { securityToken: @token }
44
41
  self.class.request path: '/api/v1/security/logout/', query: query
45
42
  rescue Vng::Error => e
46
- p "Vng:Error! #{e}"
47
- # TODO: improve: ignore if the token was already destroyed
48
43
  raise unless e.message.include?('Session expired') || e.message.include?('Session does not exist')
49
44
  end
50
45
  end
@@ -13,7 +13,6 @@ module Vng
13
13
  @duration = duration
14
14
  end
15
15
 
16
- # TODO: Needs pagination
17
16
  def self.all
18
17
  data = request path: PATH
19
18
 
data/lib/vng/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vng
2
- VERSION = '0.1.19'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -20,9 +20,9 @@ module Vng
20
20
  contactID: contact_id,
21
21
  locationID: location_id,
22
22
  Fields: [
23
- {fieldID: 200, fieldValue: summary},
24
- {fieldID: 186, fieldValue: duration.to_i},
25
- {fieldID: 201, optionID: '9537'} # label: Online Tentative
23
+ { fieldID: 200, fieldValue: summary },
24
+ { fieldID: 186, fieldValue: duration.to_i },
25
+ { fieldID: 201, optionID: '9537' } # label: Online Tentative
26
26
  ],
27
27
  Charges: charges_for(line_items)
28
28
  }
@@ -32,16 +32,6 @@ module Vng
32
32
  new id: data['WorkOrder']['objectID']
33
33
  end
34
34
 
35
- # TODO: This moves to "archived". actual cancelation is different
36
- # def destroy
37
- # body = {
38
- # method: '8',
39
- # objectID: id,
40
- # }
41
- #
42
- # data = self.class.request path: PATH, body: body
43
- # end
44
-
45
35
  private
46
36
 
47
37
  def self.charges_for(line_items)
@@ -57,13 +47,13 @@ module Vng
57
47
 
58
48
  def self.charge_fields_for(line_item)
59
49
  [
60
- {fieldID: 9289, fieldValue: line_item[:description]},
61
- {fieldID: 9287, fieldValue: line_item[:price]}, # Unit price
62
- {fieldID: 8673, fieldValue: line_item[:price]}, # Price item
63
- {fieldID: 813, fieldValue: line_item[:price]}, # Price
64
- {fieldID: 9286, fieldValue: line_item[:price]}, # Subtotal
65
- {fieldID: 9283, fieldValue: line_item[:price]}, # Total
66
- {fieldID: 9288, fieldValue: 1}, # Qty
50
+ { fieldID: 9289, fieldValue: line_item[:description] },
51
+ { fieldID: 9287, fieldValue: line_item[:price] }, # Unit price
52
+ { fieldID: 8673, fieldValue: line_item[:price] }, # Price item
53
+ { fieldID: 813, fieldValue: line_item[:price] }, # Price
54
+ { fieldID: 9286, fieldValue: line_item[:price] }, # Subtotal
55
+ { fieldID: 9283, fieldValue: line_item[:price] }, # Total
56
+ { fieldID: 9288, fieldValue: 1 }, # Qty
67
57
  ]
68
58
  end
69
59
  end
data/lib/vng/zip.rb CHANGED
@@ -13,7 +13,6 @@ module Vng
13
13
  @zone_name = zone_name
14
14
  end
15
15
 
16
- # TODO: Needs pagination
17
16
  def self.all
18
17
  data = request path: PATH
19
18
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - claudiob
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rubocop
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: A Ruby client for the Vonigo API.
28
42
  email:
29
43
  - claudiob@users.noreply.github.com
@@ -32,6 +46,7 @@ extensions: []
32
46
  extra_rdoc_files: []
33
47
  files:
34
48
  - ".rspec"
49
+ - ".rubocop.yml"
35
50
  - CHANGELOG.md
36
51
  - LICENSE.txt
37
52
  - README.md