salesforce_record 1.0.0 → 1.1.0
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 +4 -4
- data/README.md +1 -1
- data/lib/salesforce_record/attributes.rb +6 -29
- data/lib/salesforce_record/fields.rb +10 -7
- data/lib/salesforce_record/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a953ac9865b62a867d452be1cd9753b12aef5d2f
|
4
|
+
data.tar.gz: 1c4766debc25075c6dc6eff5d968c3e736e87ec5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2be6072868e2b2c6d38aa7df5ef724d569d122ed4f15fcb38947f62a2deceebaeb0d288bf66ee0e4d6d2a59618ea6ecab84c66c55420f30fb15fe87fc52c678a
|
7
|
+
data.tar.gz: 0b0e764afb74998afffa6a64e29426b1572d15f48ef359ad2b97dcbc6db577e423b4a041401ffb6e23e46bd059feaf3281560234a892fe2a2f2b51c90f7789c1
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# SalesforceRecord
|
2
2
|
|
3
|
-
[](https://travis-ci.org/mru2/salesforce_record) [](https://coveralls.io/r/mru2/salesforce_record) [](https://codeclimate.com/github/mru2/salesforce_record)
|
3
|
+
[](http://badge.fury.io/rb/salesforce_record) [](https://travis-ci.org/mru2/salesforce_record) [](https://coveralls.io/r/mru2/salesforce_record) [](https://codeclimate.com/github/mru2/salesforce_record)
|
4
4
|
|
5
5
|
ActiveRecord-like mixin for querying, fetching and updating Salesforce models
|
6
6
|
|
@@ -63,13 +63,13 @@ module SalesforceRecord
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# Parse fields coming from salesforce
|
66
|
-
def parse_salesforce_fields(
|
67
|
-
{}
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
end
|
66
|
+
def parse_salesforce_fields(sf_response)
|
67
|
+
res = {}
|
68
|
+
self.salesforce_fields.each do |_, field|
|
69
|
+
value = field.find_value_in(sf_response)
|
70
|
+
res[field.local_name] = value if !value.nil?
|
72
71
|
end
|
72
|
+
res
|
73
73
|
end
|
74
74
|
|
75
75
|
# Encode fields for salesforce
|
@@ -82,18 +82,6 @@ module SalesforceRecord
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
# Parse a field coming from salesforce (type)
|
86
|
-
def parse_salesforce_field(name, value)
|
87
|
-
# If existing, parse it depending on type
|
88
|
-
if (field = get_field name)
|
89
|
-
{ field.local_name => field.parse(value) }
|
90
|
-
|
91
|
-
# Else, try to find if it is an alias
|
92
|
-
else
|
93
|
-
find_matching_alias(name => value)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
85
|
# Encode a field from salesforce
|
98
86
|
def encode_salesforce_field(name, value)
|
99
87
|
# If existing, encode it depending on type and alias
|
@@ -118,17 +106,6 @@ module SalesforceRecord
|
|
118
106
|
has_field?(name) && self.salesforce_fields[name].remote_name
|
119
107
|
end
|
120
108
|
|
121
|
-
|
122
|
-
# Tries to find a salesforce alias matching a nested hash. Returns the alias name and corresponding value if found
|
123
|
-
def find_matching_alias(nested_hash)
|
124
|
-
self.salesforce_fields.each do |name, field|
|
125
|
-
if (value = field.is_alias_of(nested_hash))
|
126
|
-
return parse_salesforce_field(name, value)
|
127
|
-
end
|
128
|
-
end
|
129
|
-
return nil
|
130
|
-
end
|
131
|
-
|
132
109
|
end
|
133
110
|
|
134
111
|
|
@@ -33,18 +33,21 @@ module SalesforceRecord
|
|
33
33
|
!!@remote_name
|
34
34
|
end
|
35
35
|
|
36
|
-
#
|
37
|
-
def
|
38
|
-
|
39
|
-
|
36
|
+
# Find the value in a hash, handling nesting and aliases
|
37
|
+
def find_value_in(hash)
|
38
|
+
value = hash[remote_name] || deep_fetch(hash)
|
39
|
+
|
40
|
+
value.nil? ? nil : parse(value)
|
40
41
|
end
|
41
42
|
|
43
|
+
|
42
44
|
private
|
43
45
|
|
44
|
-
# Helper : fetch
|
45
|
-
def deep_fetch(hash
|
46
|
+
# Helper : fetch the value deep in a hash
|
47
|
+
def deep_fetch(hash)
|
48
|
+
keys = remote_name.to_s.split('.').map(&:to_sym)
|
46
49
|
keys.inject(hash){|subhash, key| subhash.is_a?(Hash) && subhash[key] }
|
47
|
-
end
|
50
|
+
end
|
48
51
|
end
|
49
52
|
|
50
53
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: salesforce_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ClicRDV
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: salesforce_adapter
|
@@ -87,9 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
89
|
rubyforge_project:
|
90
|
-
rubygems_version: 2.2.
|
90
|
+
rubygems_version: 2.2.2
|
91
91
|
signing_key:
|
92
92
|
specification_version: 4
|
93
93
|
summary: ActiveRecord-like mixin for querying, fetching and updating Salesforce models
|
94
94
|
test_files: []
|
95
|
-
has_rdoc:
|