pipedrive_jetrockets 0.0.68 → 0.0.69

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: 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