Class: PipeDrive::FieldBase
- Inherits:
-
Base
- Object
- OpenStruct
- Base
- PipeDrive::FieldBase
show all
- Defined in:
- lib/pipe_drive/field_base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
bulk_delete, delete, #delete, find_by_id, #initialize, #parameterize, parameterize, requester, #requester, search_and_setup_by, update, #update
Class Method Details
.cache_keys ⇒ Object
52
53
54
|
# File 'lib/pipe_drive/field_base.rb', line 52
def cache_keys
PipeDrive.field_keys[correspond_resource.to_sym]
end
|
.cache_names ⇒ Object
56
57
58
|
# File 'lib/pipe_drive/field_base.rb', line 56
def cache_names
PipeDrive.field_names[correspond_resource.to_sym]
end
|
.correspond_resource ⇒ Object
20
21
22
|
# File 'lib/pipe_drive/field_base.rb', line 20
def correspond_resource
resource_name.sub('Field', '')
end
|
.create(opts) ⇒ Object
35
36
37
38
|
# File 'lib/pipe_drive/field_base.rb', line 35
def create(opts)
new_field = super(opts)
new_field.add_to_field_infos
end
|
.field_class ⇒ Object
16
17
18
|
# File 'lib/pipe_drive/field_base.rb', line 16
def field_class
self
end
|
.field_infos_map ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/pipe_drive/field_base.rb', line 40
def field_infos_map
field_keys_map = Hash.new{|hash, key| hash[key] = {}}
field_names_map = Hash.new{|hash, key| hash[key] = {}}
resource = correspond_resource.to_sym
list.each do |field|
field_name = parameterize(field.name, '_')
field_keys_map[resource][field_name.to_sym] = {id: field.id, key: field.key}
field_names_map[resource][field.key] = {id: field.id, name: field_name}
end
{key_map: field_keys_map, name_map: field_names_map}
end
|
.list(&block) ⇒ Object
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/pipe_drive/field_base.rb', line 24
def list(&block)
path = "/#{resource_name}s"
resources = requester.http_get(path) do |result|
result[:data].nil? ? [] : list_objects(result)
end
resources.each do |resource|
yield resource
end if block_given?
resources
end
|
.pipedrive_key_of(field_name) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/pipe_drive/field_base.rb', line 60
def pipedrive_key_of(field_name)
cache_field_name = field_name.is_a?(String) ? parameterize(field_name, '_').to_sym : field_name
pipedrive_key = cache_keys[cache_field_name]
return pipedrive_key[:key] unless pipedrive_key.nil?
PipeDrive.reset_field_infos!
pipedrive_key = cache_keys[cache_field_name]
if pipedrive_key.nil?
raise TargetNotFound.new(self.name, :field_name, field_name)
else
pipedrive_key[:key]
end
end
|
.pipedrive_name_of(field_key) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/pipe_drive/field_base.rb', line 73
def pipedrive_name_of(field_key)
pipedrive_name = cache_names[field_key]
return pipedrive_name[:name] unless pipedrive_name.nil?
PipeDrive.reset_field_infos!
pipedrive_name = cache_names[field_key]
if pipedrive_name.nil?
raise TargetNotFound.new(self.name, :field_key, field_key)
else
pipedrive_name[:name]
end
end
|
.resource_class ⇒ Object
12
13
14
|
# File 'lib/pipe_drive/field_base.rb', line 12
def resource_class
PipeDrive.const_get(correspond_resource.capitalize)
end
|
Instance Method Details
#add_to_field_infos ⇒ Object
3
4
5
6
7
8
|
# File 'lib/pipe_drive/field_base.rb', line 3
def add_to_field_infos
resource = self.class.correspond_resource.to_sym
field_name = parameterize(name, '_')
PipeDrive.field_keys[resource][field_name.to_sym] = {id: id, key: key}
PipeDrive.field_names[resource][key] = {id: id, name: field_name}
end
|