pipedrive_jetrockets 0.0.68 → 0.0.69

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: b960c1164a47c256c53017e6ab343a2471ab8c41248aa933b0f4657b1ca87165
4
- data.tar.gz: 87ea6bb5d26da4d6b282063d87a2176ee54aeb824ec30dce5be0a5509dfebe0f
3
+ metadata.gz: dff17bb1ab5a4d627d53222fec2511cb508691994723076ce63a18d1235f8da8
4
+ data.tar.gz: 21678c725aa915630193af75f6bcb5fa2c42bef845aec6547a0dd00eb0277bb4
5
5
  SHA512:
6
- metadata.gz: 6a1e4ed44cb37a0a46d736e410ac1466760b38207a01c2ee5af0d7dc63f5e85382a921357e43409c990fa72e87eb9fb15fa3576d35c785854a93065cafdb5ae8
7
- data.tar.gz: 7c7a6171c3314d661d3089a3d1f0cb5a146aaa09bf090a152ca991e7c5b2827b31739656ee49da841a074e682fa8d34bdc118e82a221c43bd81ff5c8816e2843
6
+ metadata.gz: 5719dea759b152fd605da1353b5876eabdf520bad53a3516c629e5fe540240d13411b24df507117a8a098a7182767d6f7e3198ce9be5d3ad86cad0a5760ab876
7
+ data.tar.gz: fc40a7b0da214fd13cabf3b80a58e3ed4d79a3e187ef77475469a60ee5e6247e4e0e3a54761bca49b15c54d254b171082ea9bdafc3ed43ac0956d99b213009c1
@@ -5,19 +5,13 @@ module PipedriveJetrockets
5
5
  class Deal < Entity
6
6
  attr_accessor :organization, :person
7
7
  def initialize(hash)
8
- @@key_name_hash ||= Pipedrive.deal_fields.key_name_hash
8
+ @@key_name_hash ||= Pipedrive.deal_fields.key_field_hash
9
9
  super(hash.except(*@@key_name_hash.keys))
10
10
 
11
11
  org_id = hash['org_id']
12
12
  person_id = hash['person_id']
13
13
 
14
- @@key_name_hash.each do |key, name|
15
- name = name.underscore.gsub(' ','_')
16
- name = name.gsub('%','percent').gsub(/[^a-zA-Z0-9_]/,'')
17
- name = transform_field_name(key, name)
18
- instance_variable_set("@#{name}", hash[key])
19
- Deal.class_eval {attr_accessor name}
20
- end
14
+ assign_custom_fields(@@key_name_hash, hash)
21
15
 
22
16
  if org_id
23
17
  if org_id.kind_of? Integer
@@ -7,6 +7,22 @@ module PipedriveJetrockets
7
7
  end
8
8
  end
9
9
 
10
+ def assign_custom_fields(key_name_hash, entity_hash)
11
+ key_name_hash.each do |key, field|
12
+ name = field.name
13
+ name = name.underscore.gsub(' ','_')
14
+ name = name.gsub('%','percent').gsub(/[^a-zA-Z0-9_]/,'')
15
+ name = transform_field_name(key, name)
16
+ if field.field_type == 'enum'
17
+ option_id = entity_hash[key]
18
+ instance_variable_set("@#{name}", field.options_hash[option_id])
19
+ else
20
+ instance_variable_set("@#{name}", entity_hash[key])
21
+ end
22
+ self.class.class_eval {attr_accessor name}
23
+ end
24
+ end
25
+
10
26
  def transform_field_name(key, name)
11
27
  hash = ::CUSTOM_FIELD_NAMES
12
28
  class_name = self.class.name.demodulize.underscore.to_sym
@@ -5,5 +5,10 @@ module PipedriveJetrockets
5
5
  super
6
6
  @is_subfield ||= false
7
7
  end
8
+
9
+ def options_hash
10
+ return {} unless @options
11
+ @options.map{|option|{option['id'].to_s => option['label']}}.inject(:merge)
12
+ end
8
13
  end
9
14
  end
@@ -6,6 +6,10 @@ module PipedriveJetrockets
6
6
  @resource_name = resource_name
7
7
  end
8
8
 
9
+ def key_field_hash
10
+ Pipedrive.send("#{@resource_name.split(/(?=[A-Z])/).first}_fields").all.select{|field|field.edit_flag || field.is_subfield}.map{|field|{field.key => field}}.inject(:merge) || {}
11
+ end
12
+
9
13
  def key_name_hash
10
14
  Pipedrive.send("#{@resource_name.split(/(?=[A-Z])/).first}_fields").all.select{|field|field.edit_flag || field.is_subfield}.map{|field|{field.key => field.name}}.inject(:merge) || {}
11
15
  end
@@ -1,16 +1,11 @@
1
1
  module PipedriveJetrockets
2
2
  class Organization < Entity
3
3
  def initialize(hash)
4
- @@key_name_hash ||= Pipedrive.organization_fields.key_name_hash
4
+ @@key_name_hash ||= Pipedrive.organization_fields.key_field_hash
5
5
  super(hash.except(*@@key_name_hash.keys))
6
6
  @id = hash['value'] if hash['value'].present?
7
7
 
8
- @@key_name_hash.each do |key, name|
9
- name = name.underscore.gsub(' ','_')
10
- name = name.gsub('%','percent').gsub(/[^a-zA-Z0-9_]/,'')
11
- instance_variable_set("@#{name}", hash[key])
12
- Organization.class_eval {attr_accessor name}
13
- end
8
+ assign_custom_fields(@@key_name_hash, hash)
14
9
  end
15
10
  end
16
11
  end
@@ -2,7 +2,7 @@ module PipedriveJetrockets
2
2
  class Person < Entity
3
3
  attr_accessor :email, :phone, :organization, :id
4
4
  def initialize(hash)
5
- @@key_name_hash ||= Pipedrive.person_fields.key_name_hash
5
+ @@key_name_hash ||= Pipedrive.person_fields.key_field_hash
6
6
  super(hash.except(*@@key_name_hash.keys))
7
7
  @email = hash['email'].first['value'] if hash['email']
8
8
  @phone = hash['phone'].first['value'] if hash['phone']
@@ -18,12 +18,7 @@ module PipedriveJetrockets
18
18
 
19
19
  @id = hash['value'] if hash['value'].present?
20
20
 
21
- @@key_name_hash.each do |key, name|
22
- name = name.underscore.gsub(' ','_')
23
- name = name.gsub('%','percent').gsub(/[^a-zA-Z0-9_]/,'')
24
- instance_variable_set("@#{name}", hash[key])
25
- Person.class_eval {attr_accessor name}
26
- end
21
+ assign_custom_fields(@@key_name_hash, hash)
27
22
  end
28
23
  end
29
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipedrive_jetrockets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.68
4
+ version: 0.0.69
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agafonov Maksim