hubspot-api-ruby 0.22.0 → 0.22.2

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: 8f3d97cfc276be3f205c542eb1352380c09bb8d407401b2b61f17a8700cd2a22
4
- data.tar.gz: 1de23e65dbaf0db5e7b6021a2581bc29f929d67f79cc4b82c8f692140513c250
3
+ metadata.gz: a1c4dba7d7f1b326dda694f28411d5f2ee995ff5e81cd1b6ffa5cc74485ecdb0
4
+ data.tar.gz: 81d1e069ad0cb2a2c4b8146627ef3410cd99ffbe0a3b6135650a807cc16792d4
5
5
  SHA512:
6
- metadata.gz: 72910346b6c2b93631f6f4f028c299e610a9cd0a4b2cb2aac60d406c0d6cdcb644fbf7569e774ce2a80066bb81607ab125d464b058c235f7e70e1625471eb98c
7
- data.tar.gz: 4003f625b0a6cdc5a446cd8422d41e23acb042d11e90b229e38bfd7e7188344cd0c72e11cf76f62fd99ed8ebb3aebf2743168e099cc0822e2923ea9ae3b88485
6
+ metadata.gz: 50e8e0acc2ba97a6fc0c967b5885f185f4fdf3062d81d06e75e2b2434fc0236b256b011b0ccca42a541232d934d7cec41d67ca0e8aa109c86f786854a2ffebf4
7
+ data.tar.gz: 0470bc959124fae32c3b7629ee517b47795f551668c437ef0158d05bef0ce2bd9e76b489d89b0ffd09bb6f77c1fd4c42d45e764d39e56386d84a28ae814e9681
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "hubspot-api-ruby"
3
- s.version = "0.22.0"
3
+ s.version = "0.22.2"
4
4
  s.require_paths = ["lib"]
5
5
  s.authors = ["Jonathan"]
6
6
  s.email = ["jonathan@hoggo.com"]
@@ -37,4 +37,5 @@ Gem::Specification.new do |s|
37
37
  s.add_development_dependency("byebug")
38
38
  s.add_development_dependency("faker")
39
39
  s.add_development_dependency("factory_bot")
40
+ s.add_development_dependency("irb")
40
41
  end
@@ -17,12 +17,13 @@ class Hubspot::Contact < Hubspot::Resource
17
17
  class << self
18
18
  def all(opts = {})
19
19
  Hubspot::PagedCollection.new(opts) do |options, after, limit|
20
- response = Hubspot::Connection.get_json(
21
- ALL_PATH,
22
- options.merge('limit' => limit, 'offset' => after, 'offset_param' => 'after')
23
- )
20
+ request_options = options.merge(limit:)
21
+ request_options[:after] = after if after.present?
22
+ response = Hubspot::Connection.get_json(ALL_PATH, request_options)
24
23
 
25
- contacts = response['results'].map { |result| from_result(result) }
24
+ contacts = response['results'].map do |result|
25
+ from_result result, id_field: Hubspot::Resource.id_field
26
+ end
26
27
  after = response.dig('paging', 'next', 'after')
27
28
  [contacts, after, after.present?]
28
29
  end
@@ -105,6 +106,14 @@ class Hubspot::Contact < Hubspot::Resource
105
106
  end
106
107
  end
107
108
 
109
+ def [](name)
110
+ return @changes[name] if changes.key? name
111
+
112
+ name_property = @properties[name]
113
+
114
+ name_property.is_a?(Hash) ? name_property['value'] : name_property
115
+ end
116
+
108
117
  def name
109
118
  [firstname, lastname].compact.join(' ')
110
119
  end
@@ -9,7 +9,7 @@ module Hubspot
9
9
  self.update_method = "put"
10
10
 
11
11
  class << self
12
- def from_result(result)
12
+ def from_result(result, id_field: self.id_field)
13
13
  resource = new(result[id_field])
14
14
  resource.send(:initialize_from, result.with_indifferent_access)
15
15
  resource
@@ -55,9 +55,12 @@ module Hubspot
55
55
  @changes = HashWithIndifferentAccess.new
56
56
  @properties = HashWithIndifferentAccess.new
57
57
 
58
- if id_or_properties.is_a?(Integer) || id_or_properties.nil?
58
+ case id_or_properties
59
+ when Integer, NilClass
59
60
  @id = id_or_properties
60
- elsif id_or_properties.is_a?(Hash)
61
+ when String
62
+ @id = Integer id_or_properties
63
+ when Hash
61
64
  @id = id_or_properties.delete(id_field) || id_or_properties.delete(:id)
62
65
 
63
66
  add_accessors(id_or_properties.keys)
@@ -227,11 +230,11 @@ module Hubspot
227
230
  singleton_class.instance_eval do
228
231
  keys.each do |k|
229
232
  # Define a getter
230
- define_method(k) { @changes[k.to_sym] || @properties.dig(k, 'value') }
233
+ define_method(k) { self[k] }
231
234
 
232
235
  # Define a setter
233
236
  define_method("#{k}=") do |v|
234
- @changes[k.to_sym] = v
237
+ @changes[k] = v
235
238
  end
236
239
  end
237
240
  end
@@ -244,9 +247,9 @@ module Hubspot
244
247
  add_accessors([attr])
245
248
 
246
249
  # Call the new setter
247
- return send(method_name, arguments[0])
250
+ send(method_name, arguments[0])
248
251
  elsif @properties.key?(method_name)
249
- return @properties[method_name]['value']
252
+ self[method_name]
250
253
  else
251
254
  super
252
255
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubspot-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.22.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan
@@ -247,6 +247,20 @@ dependencies:
247
247
  - - ">="
248
248
  - !ruby/object:Gem::Version
249
249
  version: '0'
250
+ - !ruby/object:Gem::Dependency
251
+ name: irb
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - ">="
255
+ - !ruby/object:Gem::Version
256
+ version: '0'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
250
264
  description: hubspot-api-ruby is a wrapper for the HubSpot REST API
251
265
  email:
252
266
  - jonathan@hoggo.com