riq 1.2.3 → 1.2.4

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
  SHA1:
3
- metadata.gz: 44e1a65cfe5ee7fd358a1e2501dcf0b8337c3009
4
- data.tar.gz: a54186ee04fdaadc5108f555b2f3f52a216add48
3
+ metadata.gz: e1ad088e4572ee54ccf64de0cdfc02065a58c14f
4
+ data.tar.gz: 6ec252f6dca5d4d6b1ba11e103c31a53a5f7c30e
5
5
  SHA512:
6
- metadata.gz: 49728059e9bfef8a878b4eca7f56b66f754c5f8c7af4d9184d11c6553bfb4bfd1511015b533e9b5cabe94416efa7a9dddb9337ec2faf875c166077ef35364d17
7
- data.tar.gz: a95180127bac0e331297a5b27a74eb5ac34c113f90bb6b5c7a3b961b783cf83f7e069e14f79dc4a67459690c56426cd20b78e3eaa7526fa3f25766deb2858266
6
+ metadata.gz: 35eb89ed912f26e31545a7c79be5ac2732a16b591f1bb380cdf4b4098f94d5298ab0d35fe0d44f41d7a4a54dbbb4a14393ebef4a102c5fb8f8e2da8588b2c148
7
+ data.tar.gz: 130a655a2a4d7dece4f354ff513c9caa31dc71cd4fcc92f011a9f0b8e8caaf3cf6b55da408bf272a9a9f881d3eb1775142a70b1d47608079875590b0638ad56d
data/lib/riq.rb CHANGED
@@ -13,6 +13,7 @@ module RIQExtensions
13
13
  end
14
14
 
15
15
  def to_snake
16
+ # could also change this to self.split(/(?=[A-Z])/).join('_').downcase
16
17
  a = self.to_s.split('')
17
18
  n = []
18
19
  a.each do |l|
@@ -31,21 +31,42 @@ module RIQ
31
31
  get_prop(:name)
32
32
  end
33
33
 
34
+ # @!macro [new] prop
35
+ # @return [String] the preferred value for $0
36
+ def primary_name
37
+ get_primary_prop(:name)
38
+ end
39
+
34
40
  # @macro prop
35
41
  def phone
36
42
  get_prop(:phone)
37
43
  end
38
44
 
45
+ # @macro prop
46
+ def primary_phone
47
+ get_primary_prop(:phone)
48
+ end
49
+
39
50
  # @macro prop
40
51
  def email
41
52
  get_prop(:email)
42
53
  end
43
54
 
55
+ # @macro prop
56
+ def primary_email
57
+ get_primary_prop(:email)
58
+ end
59
+
44
60
  # @macro prop
45
61
  def address
46
62
  get_prop(:address)
47
63
  end
48
64
 
65
+ # @macro prop
66
+ def primary_address
67
+ get_primary_prop(:address)
68
+ end
69
+
49
70
  # Adds property with correct scaffolding
50
71
  # @param prop [Symbol] Type Property to add, such as :name or :email
51
72
  # @param val [String, Array] Value(s) to add
@@ -144,6 +165,25 @@ module RIQ
144
165
  []
145
166
  end
146
167
  end
168
+
169
+ def get_primary_prop(prop)
170
+ if @properties.include?(prop)
171
+ preferred = @properties[prop].map do |p|
172
+ metadata = (p || {})[:metadata]
173
+ # grades each property, 0 is more likely to be picked
174
+ [
175
+ [
176
+ (metadata || {})[:primary] == 'true' ? 0 : 1,
177
+ (metadata || {})[:inactive] == 'true' ? 1 : 0
178
+ ],
179
+ p[:value]
180
+ ]
181
+ end
182
+ preferred.sort_by { |p| p[0] }.first[1]
183
+ else
184
+ nil
185
+ end
186
+ end
147
187
  end
148
188
 
149
189
  class << self
@@ -155,4 +195,4 @@ module RIQ
155
195
  Contact.new(id)
156
196
  end
157
197
  end
158
- end
198
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'riq'
5
- spec.version = '1.2.3'
5
+ spec.version = '1.2.4'
6
6
  spec.authors = ['David Brownman']
7
7
  spec.email = ['david@relateiq.com']
8
8
  spec.homepage = "https://github.com/relateiq/ruby-sdk"
@@ -29,6 +29,34 @@ describe RIQ::Contact do
29
29
  end
30
30
  end
31
31
 
32
+ describe '#name' do
33
+ it 'returns an array of property values' do
34
+ @sammy = create_sammy
35
+ @sammy.name.must_equal ['Sammynammari', 'Sammy Nammari']
36
+ end
37
+ end
38
+
39
+ describe '#primary_name' do
40
+ it 'returns the preferred property value' do
41
+ @sammy = create_sammy
42
+ @sammy.primary_name.must_equal 'Sammy Nammari'
43
+ end
44
+ end
45
+
46
+ describe '#email' do
47
+ it 'returns an array of property values' do
48
+ @sammy = create_sammy
49
+ @sammy.email.must_equal ['sammy.nammari@gmail.com', 'nammari@stanford.edu', 'sammy@relateiq.com']
50
+ end
51
+ end
52
+
53
+ describe '#primary_email' do
54
+ it 'returns the preferred property value' do
55
+ @sammy = create_sammy
56
+ @sammy.primary_email.must_equal 'sammy@relateiq.com'
57
+ end
58
+ end
59
+
32
60
  describe '#save' do
33
61
  it 'should create new contact and delete it' do
34
62
  @c = create_blank_contact
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Brownman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-22 00:00:00.000000000 Z
11
+ date: 2015-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty