riq 0.8.8 → 0.9.1

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: 6930e740162006d865dff1417751857418282d91
4
- data.tar.gz: 6d8149a2bec6a8a1220ba1314675703c5ce1a599
3
+ metadata.gz: 298db01f6539c6549b61843f84e90c13e3392c44
4
+ data.tar.gz: cf5dd577bd23f093e1112504a7713ced7da69e73
5
5
  SHA512:
6
- metadata.gz: 51fcceea1524ec5d3430f89ef5914ec76c0880dec883b922d9d8fe8a53f5aa4fc55568c1bdd2413a4c0dc4bb915259d2e25e4cb4ca022060100e4cf876b4bcf3
7
- data.tar.gz: 7d5a8ec9ae93455beebddd0a41abadbc6fdc371a53af672b37ea3aab3b567bdaaa6ab456dae5b8055831ef4bd09ffc92f30d4c9da9a7eccd52b56b251872cd63
6
+ metadata.gz: b491d52bd9c27e4c6f9873b24888d4037492b4e20cf90fb9e005b82642caf0003deccc7b017b4971dd48905dcbeedb47adf776d553b60f8def3046ad740d87f2
7
+ data.tar.gz: 7ecd4d753690f5d1661357a65bf49490a0d09fd1592067df167bce4f833ec25297551658b37de7f467801ce80d2e64e5fe8288d53b3dea8b254c08e7d04d3c01
data/lib/riq.rb CHANGED
@@ -1,7 +1,103 @@
1
- # Base file from which everything else is included
2
- Dir[__dir__ + '/riq/*.rb'].each {|file| require file }
3
-
4
1
  # The namespace from which all magic springs
5
2
  module RIQ
6
3
  # Could fetch defaults or something here
7
- end
4
+ end
5
+
6
+ # Monekypatches
7
+ # cry about it, nerd
8
+ module RIQExtensions
9
+ refine Symbol do
10
+ def to_cam
11
+ temp = self.to_s.split('_').map(&:capitalize).join
12
+ (temp[0].downcase + temp[1..-1]).to_sym
13
+ end
14
+
15
+ def to_snake
16
+ a = self.to_s.split('')
17
+ n = []
18
+ a.each do |l|
19
+ n << '_' if l.is_upper?
20
+ n << l.downcase
21
+ end
22
+ n = n[1..-1] if n.first == '_'
23
+ n.join.to_sym
24
+ end
25
+ end
26
+
27
+ refine String do
28
+ def is_upper?
29
+ !self[/[A-Z]/].nil? && self.length == 1
30
+ end
31
+
32
+ def is_lower?
33
+ !self[/[a-z]/].nil? && self.length == 1
34
+ end
35
+ end
36
+
37
+ refine Fixnum do
38
+ def cut_milis
39
+ self.to_s[0...-3].to_i
40
+ end
41
+
42
+ def to_sym
43
+ self.to_s.to_sym
44
+ end
45
+ end
46
+
47
+ refine Hash do
48
+ # Converts to RIQ API's [{raw: "VALUE"}] format
49
+ def to_raw
50
+ return {} if self.empty?
51
+ o = {}
52
+ self.each do |k, v|
53
+ o[k.to_cam] = [{raw: v}]
54
+ end
55
+ o
56
+ end
57
+
58
+ # Converts from RIQ API's [{raw: "VALUE"}] format
59
+ def from_raw
60
+ return {} if self.empty?
61
+ o = {}
62
+ self.each do |k,v|
63
+ if v.is_a?(Array) && v.first.include?(:raw)
64
+ o[k.to_sym.to_snake] = v.first[:raw]
65
+ else
66
+ o[k.to_sym.to_snake] = v
67
+ end
68
+ end
69
+ o
70
+ end
71
+
72
+ def to_cam
73
+ o = {}
74
+ self.each do |k,v|
75
+ o[k.to_cam] = v
76
+ end
77
+ o
78
+ end
79
+ end
80
+
81
+ refine Object do
82
+ def symbolize
83
+ return self unless self.respond_to? :keys
84
+ o = {}
85
+ self.each do |k, v|
86
+ if v.respond_to? :keys
87
+ o[k.to_sym.to_snake] = v.symbolize
88
+ else
89
+ if v.respond_to? :each
90
+ v.map! do |i|
91
+ i.symbolize
92
+ end
93
+ end
94
+ o[k.to_sym.to_snake] = v
95
+ end
96
+ end
97
+ o
98
+ end
99
+ end
100
+ end
101
+
102
+ # Base file from which everything else is included
103
+ Dir[__dir__ + '/riq/*.rb'].each {|file| require file }
@@ -1,4 +1,5 @@
1
1
  require_relative 'riq_obj'
2
+ using RIQExtensions
2
3
 
3
4
  module RIQ
4
5
  # Accounts represent companies (or other entities).
@@ -29,7 +30,7 @@ module RIQ
29
30
  def payload
30
31
  # TODO: find more elegant way to do this
31
32
  pld = data
32
- pld['fieldValues'] = to_raw(@field_values)
33
+ pld['fieldValues'] = @field_values.to_raw
33
34
  pld.delete(:field_values)
34
35
  pld.to_json
35
36
  end
@@ -45,19 +46,20 @@ module RIQ
45
46
  # TODO: double check that this works with arrays of stuff
46
47
  # or, have a format function that casts ints to string on save
47
48
  if value.nil?
48
- @field_values.fetch(key.to_s, nil)
49
+ @field_values.fetch(key.to_sym, nil)
49
50
  else
50
- @field_values[key.to_s] = value.to_s
51
- {key.to_s => value.to_s}
51
+ @field_values[key.to_sym] = value.to_s
52
+ {key.to_sym => value.to_s}
52
53
  end
53
54
  end
54
55
 
55
56
  private
56
57
  def init(obj = nil)
57
58
  unless obj.nil?
58
- @id = obj['id']
59
- @name = obj['name']
60
- @field_values = from_raw(obj['fieldValues'])
59
+ @id = obj[:id]
60
+ @name = obj[:name]
61
+ @field_values = obj[:field_values] ? obj[:field_values].from_raw : {}
62
+ @modified_date = obj[:modified_date].cut_milis if obj[:modified_date]
61
63
  else
62
64
  @id = nil
63
65
  @name = nil
@@ -1,3 +1,5 @@
1
+ using RIQExtensions
2
+
1
3
  module RIQ
2
4
  # Manages caching and fetching for a certain type of child object.
3
5
  class BatchManager
@@ -6,7 +8,8 @@ module RIQ
6
8
 
7
9
  # @param klass [RIQObject] The child class that's being fetched, such as {Account} or {List}
8
10
  # @param page_length [Integer] The number of items per page
9
- def initialize(klass, page_length = 200, fetch_options: {})
11
+ # @param opts [Hash] fetch options
12
+ def initialize(klass, page_length = 200, opts: {})
10
13
  @klass = klass
11
14
  begin
12
15
  raise unless @klass.ancestors.include? RIQ::RIQObject
@@ -17,7 +20,7 @@ module RIQ
17
20
  reset_cache
18
21
  # ruby says that nil is an argument and page_size was getting set to 0
19
22
  @page_length = page_length.nil? ? 200 : page_length
20
- @fetch_options = fetch_options
23
+ self.send(:fetch_options=, opts)
21
24
  @client = RIQ.client
22
25
  end
23
26
 
@@ -58,11 +61,12 @@ module RIQ
58
61
  options[k] = v
59
62
  end
60
63
  end
61
- @fetch_options = options
64
+ @fetch_options = options#.to_cam
62
65
  end
63
66
 
64
67
  private
65
68
  def next_item
69
+ # I believe this is resetting opts somehow/not respecting limit
66
70
  if @cache_index == @cache.size
67
71
  return nil if ![0, @page_length].include? @cache.size
68
72
  # puts "\n=== fetching page! (#{@page_index}) (#{@page_length})"
@@ -1,4 +1,5 @@
1
1
  require_relative 'riq_obj'
2
+ using RIQExtensions
2
3
 
3
4
  module RIQ
4
5
  # Contacts represent people in an Organization’s address book.
@@ -20,6 +21,7 @@ module RIQ
20
21
  {
21
22
  id: @id,
22
23
  properties: @properties
24
+ # modified_date: @modified_date
23
25
  }
24
26
  end
25
27
 
@@ -57,8 +59,11 @@ module RIQ
57
59
  val.each do |i|
58
60
  add(prop, i)
59
61
  end
62
+ return
60
63
  end
61
64
 
65
+ raise RIQError, 'Values must be strings' unless val.is_a? String
66
+
62
67
  # don't add duplicate
63
68
  if @properties[prop].select{|p| p[:value] == val}.empty?
64
69
  @properties[prop] << {value: val, metadata: {}}
@@ -105,8 +110,21 @@ module RIQ
105
110
 
106
111
  def init(obj = nil)
107
112
  unless obj.nil?
108
- @id = obj['id']
109
- @properties = symbolize(obj['properties'])
113
+ @id = obj[:id]
114
+ @modified_date = obj[:modified_date].cut_milis if obj[:modified_date]
115
+ @properties = {}
116
+ obj[:properties].each do |k,v|
117
+ raise RIQError, "Properties must be arrays, #{k} wasn't" if !v.is_a?(Array)
118
+
119
+ v.each do |i|
120
+ unless i.is_a?(Hash)
121
+ add(k, i)
122
+ else
123
+ @properties[k] = [] unless @properties.include?(k)
124
+ @properties[k] << i
125
+ end
126
+ end
127
+ end
110
128
  else
111
129
  @id = nil
112
130
  @properties = {}
@@ -1,4 +1,5 @@
1
1
  require_relative 'riq_obj'
2
+ using RIQExtensions
2
3
 
3
4
  module RIQ
4
5
  # Events represent interactions involving a Contact associated with a List Item.
@@ -48,9 +49,10 @@ module RIQ
48
49
  private
49
50
  def init(obj = nil)
50
51
  unless obj.nil?
51
- @subject = obj['subject']
52
- @body = obj['body']
53
- @participant_ids = obj['participantIds']
52
+ @subject = obj[:subject]
53
+ @body = obj[:body]
54
+ @participant_ids = []
55
+ obj[:participant_ids].each{|o| add_participant(o[:type], o[:value])}
54
56
  else
55
57
  @subject = nil
56
58
  @body = nil
@@ -62,9 +64,10 @@ module RIQ
62
64
 
63
65
  class << self
64
66
  # Convenience method to create new Events
67
+ # @param obj [Hash] Info to parse into event
65
68
  # @return [Event]
66
- def event
67
- Event.new
69
+ def event(obj = nil)
70
+ Event.new(obj)
68
71
  end
69
72
  end
70
73
  end
@@ -63,10 +63,10 @@ module RIQ
63
63
 
64
64
  def init(obj = nil)
65
65
  unless obj.nil?
66
- @id = obj['id']
67
- @title = obj['title']
68
- @type = obj['listType']
69
- @fields = obj['fields']
66
+ @id = obj[:id]
67
+ @title = obj[:title]
68
+ @type = obj[:listType]
69
+ @fields = obj[:fields]
70
70
  else
71
71
  @id = nil
72
72
  @title = nil
@@ -1,4 +1,5 @@
1
1
  require_relative 'riq_obj'
2
+ using RIQExtensions
2
3
 
3
4
  module RIQ
4
5
  # A List Item is a row in a List.
@@ -62,9 +63,9 @@ module RIQ
62
63
  pld = {}
63
64
  data.each do |k, v|
64
65
  if k == :field_values
65
- pld['fieldValues'] = to_raw(@field_values)
66
+ pld['fieldValues'] = @field_values.to_raw
66
67
  elsif k['_']
67
- pld[camel_case(k)] = v
68
+ pld[k.to_cam] = v
68
69
  else
69
70
  pld[k] = v
70
71
  end
@@ -83,10 +84,10 @@ module RIQ
83
84
  # TODO: double check that this works with arrays of stuff
84
85
  # or, have a format function that casts ints to string on save
85
86
  if value.nil?
86
- @field_values.fetch(key.to_s, nil)
87
+ @field_values.fetch(key.to_sym, nil)
87
88
  else
88
- @field_values[key.to_s] = value.to_s
89
- {key.to_s => value.to_s}
89
+ @field_values[key.to_sym] = value.to_s
90
+ {key.to_sym => value.to_s}
90
91
  end
91
92
  end
92
93
 
@@ -94,14 +95,14 @@ module RIQ
94
95
 
95
96
  def init(obj = nil)
96
97
  unless obj.nil?
97
- @id = obj['id']
98
- @list_id = obj['listId']
99
- @name = obj['name']
100
- @field_values = from_raw(obj['fieldValues'])
101
- @account_id = obj['accountId']
102
- @contact_ids = obj['contactIds']
103
- @modified_date = obj['modifiedDate']
104
- @created_date = obj['creaetedDate']
98
+ @id = obj[:id]
99
+ @list_id = obj[:list_id]
100
+ @name = obj[:name]
101
+ @field_values = obj[:field_values] ? obj[:field_values].from_raw : {}
102
+ @account_id = obj[:account_id]
103
+ @contact_ids = obj[:contact_ids] || []
104
+ @modified_date = obj[:modified_date].cut_milis if obj[:modified_date]
105
+ @created_date = obj[:creaeted_date].cut_milis if obj[:creaeted_date]
105
106
  else
106
107
  @id = nil
107
108
  @list_id = nil
@@ -1,4 +1,5 @@
1
1
  require_relative 'batch_manager'
2
+ require_relative 'list_item'
2
3
 
3
4
  module RIQ
4
5
  # Special child for initializing list items, who need to include extra info.
@@ -1,11 +1,14 @@
1
1
  require_relative 'client'
2
+ using RIQExtensions
2
3
 
3
4
  module RIQ
4
5
  # @abstract This class should not be used directly.
5
6
  # Instead, use a child such as {Contact} or {List}.
6
7
  class RIQObject
8
+
9
+
7
10
  attr_accessor :id
8
- # attr_reader :modified_date
11
+ attr_reader :modified_date
9
12
 
10
13
  # @param id [String, Hash] ObjectId or well-formatted hash of data (usually provided by another object
11
14
  # @return [RIQObject] Self
@@ -21,7 +24,7 @@ module RIQ
21
24
  else
22
25
  data = @client.get(node)
23
26
  end
24
- init(data)
27
+ init(data.symbolize)
25
28
  else
26
29
  init
27
30
  end
@@ -49,7 +52,7 @@ module RIQ
49
52
  pld = {}
50
53
  data.each do |k, v|
51
54
  if k['_']
52
- pld[camel_case(k)] = v
55
+ pld[k.to_cam] = v
53
56
  else
54
57
  pld[k] = v
55
58
  end
@@ -61,10 +64,10 @@ module RIQ
61
64
  def save(options = nil)
62
65
  if @id.nil?
63
66
  # create
64
- init(@client.post(node, payload, options: options))
67
+ init(@client.post(node, payload, options: options).symbolize)
65
68
  else
66
69
  # update
67
- init(@client.put(node, payload, options: options))
70
+ init(@client.put(node, payload, options: options).symbolize)
68
71
  end
69
72
  end
70
73
 
@@ -90,51 +93,6 @@ module RIQ
90
93
  raise RIQError, 'This should be overwritten'
91
94
  end
92
95
 
93
- # Converts to RIQ API's [{raw: "VALUE"}] format
94
- def to_raw(hsh)
95
- return {} if hsh.empty?
96
- obj = {}
97
- hsh.each do |k, v|
98
- obj[k] = [{raw: v}]
99
- end
100
- obj
101
- end
102
-
103
- # Converts from RIQ API's [{raw: "VALUE"}] format
104
- def from_raw(hsh)
105
- return {} if hsh.empty?
106
- obj = {}
107
- hsh.each do |k,v|
108
- obj[k] = v.first['raw']
109
- end
110
- obj
111
- end
112
-
113
- def camel_case(sym)
114
- temp = sym.to_s.split('_').map(&:capitalize).join
115
- temp[0].downcase + temp[1..-1]
116
- end
117
-
118
- # make everything a symbol
119
- def symbolize(h)
120
- return h unless h.respond_to? :keys
121
-
122
- obj = {}
123
- h.each do |k, v|
124
- if v.respond_to? :keys
125
- obj[k.to_sym] = symbolize(v)
126
- else
127
- if v.respond_to? :each
128
- v.map! do |i|
129
- symbolize(i)
130
- end
131
- end
132
- obj[k.to_sym] = v
133
- end
134
- end
135
- obj
136
- end
137
-
138
96
  # def exists
139
97
  # if @id.nil?
140
98
  # false
@@ -142,14 +100,5 @@ module RIQ
142
100
  # @client.fetch(node)
143
101
  # end
144
102
  # end
145
-
146
103
  end
147
-
148
- # Monkeypatches
149
- # class Symbol
150
- # def camel_case
151
- # temp = self.to_s.split('_').map(&:capitalize).join
152
- # temp[0].downcase + temp[1..-1]
153
- # end
154
- # end
155
104
  end
@@ -23,9 +23,9 @@ module RIQ
23
23
  private
24
24
  def init(obj = nil)
25
25
  unless obj.nil?
26
- @id = obj['id']
27
- @name = obj['name']
28
- @email = obj['email']
26
+ @id = obj[:id]
27
+ @name = obj[:name]
28
+ @email = obj[:email]
29
29
  else
30
30
  @id = nil
31
31
  @name = nil
@@ -4,7 +4,7 @@
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'riq'
7
- spec.version = '0.8.8'
7
+ spec.version = '0.9.1'
8
8
  spec.authors = ['David Brownman']
9
9
  spec.email = ['david@relateiq.com']
10
10
  spec.homepage = "https://github.com/relateiq/ruby-sdk"
@@ -16,7 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.required_ruby_version = '>= 1.9.3'
19
+ # 2.0 is min becuase use of refinements
20
+ spec.required_ruby_version = '>= 2.0.0'
20
21
  # spec.post_install_message = 'The power of relationship intelligence is in your hands!'
21
22
 
22
23
  # prod dependencies
@@ -1,4 +1,4 @@
1
1
  # testing!
2
2
 
3
3
  # require everything to run all tests
4
- Dir["#{File.dirname(__FILE__)}/*.rb"].each{|file| require_relative file.split('/').last}
4
+ Dir["#{__dir__}/*_*.rb"].each{|f| require_relative f}
@@ -7,6 +7,7 @@ describe RIQ::Account do
7
7
  # netflix account ID
8
8
  @netflix = RIQ.account('54e6542fe4b01ad3b7362bc4')
9
9
  @a = RIQ.account
10
+ @dat = RIQ.account({name: 'Glengarry', field_values: {'0' => 3}})
10
11
  end
11
12
 
12
13
  describe '#new' do
@@ -14,9 +15,14 @@ describe RIQ::Account do
14
15
  @netflix.name.must_equal 'Netflix'
15
16
  end
16
17
 
17
- it 'make blank account' do
18
+ it 'should make blank account' do
18
19
  @a.wont_be_nil
19
20
  end
21
+
22
+ it 'should take a data hash' do
23
+ @dat = RIQ.account({name: 'David'})
24
+ @dat.name.wont_be_nil
25
+ end
20
26
  end
21
27
 
22
28
  describe '#save' do
@@ -32,8 +38,7 @@ describe RIQ::Account do
32
38
  describe "#field_value" do
33
39
  it 'should fetch a field value' do
34
40
  @netflix.field_value(2).wont_be_nil
41
+ @dat.field_value(0).wont_be_nil
35
42
  end
36
43
  end
37
-
38
- # TODO: get all accounts
39
44
  end
@@ -12,6 +12,7 @@ describe RIQ::BatchManager do
12
12
  accounts = RIQ.accounts
13
13
  accounts.each do |a|
14
14
  a.id.wont_be_nil
15
+ a.name.wont_be_nil
15
16
  @c += 1
16
17
  break if @c >= 20
17
18
  end
@@ -36,10 +37,36 @@ describe RIQ::BatchManager do
36
37
  lists = RIQ.lists
37
38
  lists.each do |l|
38
39
  l.id.wont_be_nil
40
+ l.title.wont_be_nil
41
+ l.fields.wont_be_nil
39
42
  @c += 1
43
+ lic = 0
44
+ l.list_items.each do |li|
45
+ lic += 1
46
+ break if lic >= 5
47
+ end
48
+ lic.wont_equal 0
40
49
  break if @c >= 20
41
50
  end
42
51
  @c.wont_equal 0
43
52
  end
44
53
  end
54
+
55
+ describe '#first' do
56
+ it 'should get one contact' do
57
+ c = nil
58
+ c = RIQ.contacts.first
59
+ c.must_be_instance_of RIQ::Contact
60
+ end
61
+ end
62
+
63
+ # describe '#fetch_options' do
64
+ # it 'should respect limits' do
65
+ # b = RIQ.contacts(opts: {_limit: 3})
66
+ # b.each do |i|
67
+ # @c += 1
68
+ # end
69
+ # @c.must_equal 3
70
+ # end
71
+ # end
45
72
  end
@@ -7,6 +7,7 @@ describe RIQ::Contact do
7
7
  # sammy's contact ID
8
8
  @sammy = RIQ.contact('542b205be4b04cd81270dff9')
9
9
  @c = RIQ.contact
10
+ @dat = RIQ.contact({properties: {'name' => ['david'], email: ['dab@relateiq.com']}})
10
11
  end
11
12
 
12
13
  describe '#new' do
@@ -22,7 +23,6 @@ describe RIQ::Contact do
22
23
  describe '#save' do
23
24
  it 'should create new contact and delete it' do
24
25
  @c.add(:name, 'Ron Mexico')
25
- # @c.field_value(2, '1')
26
26
  @c.save
27
27
 
28
28
  @c.id.wont_be_nil
@@ -37,6 +37,18 @@ describe RIQ::Contact do
37
37
 
38
38
  @sammy.email.wont_equal @sammy.add(:email, 'jammari@stanford.edu')
39
39
  end
40
+
41
+ it 'should only take strings as properties' do
42
+ @c.add(:phone, '867-5309').wont_be_empty
43
+
44
+ begin
45
+ @c.add(:name, {value: 'Jenny'})
46
+ rescue RIQ::RIQError
47
+ nil.must_be_nil
48
+ else
49
+ 1.must_be_nil
50
+ end
51
+ end
40
52
  end
41
53
 
42
54
  describe '#upsert' do
@@ -0,0 +1,56 @@
1
+ require 'minitest/autorun'
2
+ require_relative '../lib/riq'
3
+
4
+ describe RIQ::Event do
5
+ before do
6
+ RIQ.init
7
+ # sammy's contact ID
8
+ @e = RIQ.event
9
+ @ev = RIQ.event({subject: "My Sub", body: "Very intersting body", 'participantIds' => [{type: :email, value: 'fake@fakerelateiq.com'}]})
10
+ end
11
+
12
+ describe '#new' do
13
+ it 'should start blank' do
14
+ @e.subject.must_be_nil
15
+ end
16
+
17
+ it 'should take a hash' do
18
+ @ev.subject.wont_be_nil
19
+ @ev.participant_ids.wont_be_empty
20
+ end
21
+ end
22
+
23
+ describe '#save' do
24
+ it 'should fail without subject'do
25
+ begin
26
+ @e.save
27
+ rescue RIQ::HTTPError
28
+ nil.must_be_nil
29
+ else
30
+ 1.must_be_nil
31
+ end
32
+ end
33
+
34
+ it 'should save with data' do
35
+ @ev.save.must_be_kind_of Hash
36
+ end
37
+ end
38
+
39
+ describe '#add_participant' do
40
+ it 'should add a participant' do
41
+ p = {type: :email, value: 'good'}
42
+ @e.add_participant(p[:type], p[:value])
43
+ @e.participant_ids.must_include p
44
+ end
45
+
46
+ it 'should reject bad types' do
47
+ begin
48
+ @e.add_participant(:blarg, 'bad type')
49
+ rescue RIQ::RIQError
50
+ nil.must_be_nil
51
+ else
52
+ 1.must_be_nil
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,42 @@
1
+ require 'minitest/autorun'
2
+ require_relative '../lib/riq'
3
+
4
+ describe RIQ::ListItem do
5
+ before do
6
+ RIQ.init
7
+ lid = '54ca9b25e4b0b29d80ce4b4e'
8
+ @l = RIQ.list(lid)
9
+ @li = @l.list_items.first
10
+ @blank = @l.list_item
11
+ end
12
+
13
+ describe '#field_value' do
14
+ it 'should return a value' do
15
+ @li.field_value(0).wont_be_nil
16
+ @blank.field_value(0).must_be_nil
17
+ end
18
+ end
19
+
20
+ describe '#save' do
21
+ it 'should create and delete' do
22
+ @blank.field_value(0, 1)
23
+ @blank.contact_ids << RIQ.contacts.first.id
24
+ @blank.save
25
+ @blank.id.wont_be_nil
26
+
27
+ assert(@blank.delete)
28
+ end
29
+
30
+ it 'should update' do
31
+ start = @li.field_value(0)
32
+ if start == '1'
33
+ @li.field_value(0, 0)
34
+ else
35
+ @li.field_value(0, 1)
36
+ end
37
+ @li.save
38
+
39
+ @li.field_value(0).wont_equal start
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Brownman
@@ -58,8 +58,8 @@ files:
58
58
  - lib/riq/error.rb
59
59
  - lib/riq/event.rb
60
60
  - lib/riq/list.rb
61
+ - lib/riq/list_item.rb
61
62
  - lib/riq/list_item_manager.rb
62
- - lib/riq/listitem.rb
63
63
  - lib/riq/riq_obj.rb
64
64
  - lib/riq/user.rb
65
65
  - riq.gemspec
@@ -67,6 +67,8 @@ files:
67
67
  - test/test_account.rb
68
68
  - test/test_batch_manager.rb
69
69
  - test/test_contact.rb
70
+ - test/test_event.rb
71
+ - test/test_list_item.rb
70
72
  homepage: https://github.com/relateiq/ruby-sdk
71
73
  licenses:
72
74
  - MIT
@@ -79,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - ">="
81
83
  - !ruby/object:Gem::Version
82
- version: 1.9.3
84
+ version: 2.0.0
83
85
  required_rubygems_version: !ruby/object:Gem::Requirement
84
86
  requirements:
85
87
  - - ">="
@@ -87,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
89
  version: '0'
88
90
  requirements: []
89
91
  rubyforge_project:
90
- rubygems_version: 2.4.6
92
+ rubygems_version: 2.2.2
91
93
  signing_key:
92
94
  specification_version: 4
93
95
  summary: Ruby RIQ API client
@@ -96,4 +98,6 @@ test_files:
96
98
  - test/test_account.rb
97
99
  - test/test_batch_manager.rb
98
100
  - test/test_contact.rb
101
+ - test/test_event.rb
102
+ - test/test_list_item.rb
99
103
  has_rdoc: