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
41
42
43
|
# File 'lib/pipe_drive/field_base.rb', line 41
def cache_keys
PipeDrive.field_keys[correspond_resource.to_sym]
end
|
.correspond_resource ⇒ Object
11
12
13
|
# File 'lib/pipe_drive/field_base.rb', line 11
def correspond_resource
resource_name.sub('Field', '')
end
|
.create(opts) ⇒ Object
26
27
28
29
|
# File 'lib/pipe_drive/field_base.rb', line 26
def create(opts)
new_field = super(opts)
new_field.add_to_field_keys
end
|
.field_keys_map ⇒ Object
31
32
33
34
35
36
37
38
39
|
# File 'lib/pipe_drive/field_base.rb', line 31
def field_keys_map
field_keys_map = Hash.new{|hash, key| hash[key] = {}}
resource = correspond_resource.to_sym
list.each do |field|
field_name = parameterize(field.name, '_').to_sym
field_keys_map[resource][field_name] = field.key
end
field_keys_map
end
|
.list(&block) ⇒ Object
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/pipe_drive/field_base.rb', line 15
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
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/pipe_drive/field_base.rb', line 45
def pipedrive_key_of(field_name)
cache_field_name = parameterize(field_name, '_').to_sym
pipedrive_key = cache_keys[cache_field_name]
return pipedrive_key unless pipedrive_key.nil?
PipeDrive.reset_field_keys!
pipedrive_key = cache_keys[cache_field_name]
if pipedrive_key.nil?
raise TargetNotFound.new(self.name, :name, field_name)
else
pipedrive_key
end
end
|
Instance Method Details
#add_to_field_keys ⇒ Object
3
4
5
6
7
|
# File 'lib/pipe_drive/field_base.rb', line 3
def add_to_field_keys
resource = self.class.correspond_resource.to_sym
field_name = parameterize(name, '_').to_sym
PipeDrive.field_keys[resource][field_name] = key
end
|