riq 1.2.3 → 1.2.4

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