unresponsys 0.3.5 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a350c5273bc6ce627b267a064861def986886f0
4
- data.tar.gz: 4fdd7c8eb7cc221c4d6aa1c3d78d27a98ab40635
3
+ metadata.gz: 7ad00b0e458c1b1740c500dc74c84619d32eefe6
4
+ data.tar.gz: c8154f6112c4b87fca895b4343b63bd47ed1369f
5
5
  SHA512:
6
- metadata.gz: 1f2e0a734df43f365dc9bcf2f6a01ae9409539a05ba013f15eabab9226a66b7c2533d7c8a06e63e151d45f96219be5e502f2848e337e437f0937275cf0c80d47
7
- data.tar.gz: 7df6e15a7f97a32291421ecc878a7ade06aea657dd3181bdec97a44480cc3e4ec1d492951240490088fc558bcf402f6f593220927be512e030a5677cc6044e4e
6
+ metadata.gz: defb91efe2c2e71087fc4d7863a49a83d173a6a4a451489852c8c8a96b6e6823b051fd263466fafe7cc35ee85f47374bd9a1682fb0b1ac7e005f9121ec868d69
7
+ data.tar.gz: e5efb7ac81fb4fc38d6e55ae83fff871206420ede771c4a5fc0a2061801a8a75d7922d556e2d21c1c0f24063a70e746cf5be8c67b6a2e1857452b71d4cd5c000
@@ -1,12 +1,16 @@
1
1
  require 'unresponsys/client'
2
2
  require 'unresponsys/event'
3
+ require 'unresponsys/events'
3
4
  require 'unresponsys/extension_table'
5
+ require 'unresponsys/extension_tables'
4
6
  require 'unresponsys/errors'
5
7
  require 'unresponsys/folder'
6
8
  require 'unresponsys/helpers'
7
9
  require 'unresponsys/list'
8
10
  require 'unresponsys/member'
9
11
  require 'unresponsys/merge_rule'
12
+ require 'unresponsys/message'
13
+ require 'unresponsys/messages'
10
14
  require 'unresponsys/row'
11
15
  require 'unresponsys/supplemental_table'
12
16
  require 'unresponsys/version'
@@ -7,19 +7,36 @@ class Unresponsys
7
7
  def initialize(options = {})
8
8
  @event_name = options[:event]
9
9
  @member = options[:member]
10
+ @properties = options[:properties]
10
11
  end
11
12
 
12
13
  def save
13
- body = {
14
+ build_body
15
+ build_properties
16
+ response = client.post("/events/#{@event_name}", body: @body.to_json)
17
+ response.first['errorMessage'].blank?
18
+ end
19
+
20
+ private
21
+
22
+ def build_body
23
+ @body = {
14
24
  customEvent: {},
15
25
  recipientData: [{
16
- recipient: { listName: { objectName: @member.list.name }, recipientId: @member.riid }
26
+ recipient: {
27
+ listName: { objectName: @member.list.name },
28
+ recipientId: @member.riid
29
+ }
17
30
  }]
18
31
  }
32
+ end
19
33
 
20
- r = client.post("/events/#{@event_name}", body: body.to_json)
21
- return false if r.first['errorMessage'].present?
22
- true
34
+ def build_properties
35
+ return unless @properties.present?
36
+ @body[:recipientData].first[:optionalData] = []
37
+ @properties.each_pair do |key, val|
38
+ @body[:recipientData].first[:optionalData] << { name: key.to_s, value: val.to_s }
39
+ end
23
40
  end
24
41
  end
25
42
  end
@@ -0,0 +1,11 @@
1
+ class Unresponsys
2
+ class Events
3
+ def initialize(member)
4
+ @member = member
5
+ end
6
+
7
+ def new(event, properties = {})
8
+ Event.new(member: @member, event: event, properties: properties)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class Unresponsys
2
+ class ExtensionTables
3
+ def initialize(member)
4
+ @member = member
5
+ end
6
+
7
+ def find(name)
8
+ ExtensionTable.new(@member, name)
9
+ end
10
+ end
11
+ end
@@ -67,28 +67,12 @@ class Unresponsys
67
67
  @events ||= Events.new(self)
68
68
  end
69
69
 
70
- class Events
71
- def initialize(member)
72
- @member = member
73
- end
74
-
75
- def new(event, properties = {})
76
- Event.new(member: @member, event: event, properties: properties)
77
- end
78
- end
79
-
80
70
  def extension_tables
81
71
  @extension_tables ||= ExtensionTables.new(self)
82
72
  end
83
73
 
84
- class ExtensionTables
85
- def initialize(member)
86
- @member = member
87
- end
88
-
89
- def find(name)
90
- Unresponsys::ExtensionTable.new(@member, name)
91
- end
74
+ def messages
75
+ @messages ||= Messages.new(self)
92
76
  end
93
77
 
94
78
  def to_h
@@ -0,0 +1,41 @@
1
+ class Unresponsys
2
+ class Message
3
+ extend Forwardable
4
+ delegate [:client] => :member
5
+ attr_reader :member
6
+
7
+ def initialize(options = {})
8
+ @message_name = options[:message]
9
+ @member = options[:member]
10
+ @properties = options[:properties]
11
+ end
12
+
13
+ def save
14
+ build_body
15
+ build_properties
16
+ response = client.post("/campaigns/#{@message_name}/email", body: @body.to_json)
17
+ response.first['errorMessage'].blank?
18
+ end
19
+
20
+ private
21
+
22
+ def build_body
23
+ @body = {
24
+ recipientData: [{
25
+ recipient: {
26
+ listName: { objectName: @member.list.name },
27
+ recipientId: @member.riid
28
+ }
29
+ }]
30
+ }
31
+ end
32
+
33
+ def build_properties
34
+ return unless @properties.present?
35
+ @body[:recipientData].first[:optionalData] = []
36
+ @properties.each_pair do |key, val|
37
+ @body[:recipientData].first[:optionalData] << { name: key.to_s, value: val.to_s }
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,11 @@
1
+ class Unresponsys
2
+ class Messages
3
+ def initialize(member)
4
+ @member = member
5
+ end
6
+
7
+ def new(message, properties = {})
8
+ Message.new(member: @member, message: message, properties: properties)
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  class Unresponsys
2
- VERSION = '0.3.5'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::Event do
4
+
5
+ before(:each) do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+
9
+ VCR.use_cassette('get_existing_member') do
10
+ list = @client.lists.find('TestDataList')
11
+ @member = list.members.find('kwkimball@gmail.com')
12
+ end
13
+ end
14
+
15
+ describe '#save' do
16
+ before(:each) do
17
+ @event = @member.events.new('Sign_Up')
18
+ end
19
+
20
+ it 'posts to Responsys' do
21
+ VCR.use_cassette('save_new_event') do
22
+ expect(@client).to receive(:post).and_call_original
23
+ @event.save
24
+ end
25
+ end
26
+
27
+ it 'returns true' do
28
+ VCR.use_cassette('save_new_event') do
29
+ expect(@event.save).to eq(true)
30
+ end
31
+ end
32
+
33
+ context 'with undefined event' do
34
+ it 'returns an error' do
35
+ VCR.use_cassette('save_new_event_undefined') do
36
+ @event = @member.events.new('MyEvent')
37
+ expect { @event.save }.to raise_error(Unresponsys::NotFound)
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::ExtensionTable do
4
+
5
+ before :each do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+
9
+ VCR.use_cassette('get_existing_member') do
10
+ list = @client.lists.find('TestDataList')
11
+ @member = list.members.find('kwkimball@gmail.com')
12
+ end
13
+
14
+ @table = @member.extension_tables.find('TestExtensionTable')
15
+ end
16
+
17
+ describe '#update' do
18
+ context 'existing record' do
19
+ it 'posts to Responsys' do
20
+ VCR.use_cassette('update_existing_extension_row') do
21
+ expect(@client).to receive(:post).and_call_original
22
+ @table.update(title: 'My New Title')
23
+ end
24
+ end
25
+
26
+ it 'returns true' do
27
+ VCR.use_cassette('update_existing_extension_row') do
28
+ expect(@table.update(title: 'My New Title')).to eq(true)
29
+ end
30
+ end
31
+ end
32
+
33
+ context 'new record' do
34
+
35
+ end
36
+ end
37
+
38
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::Folder do
4
+
5
+ before(:each) do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+ end
9
+
10
+ it '.find returns an instance of Folder' do
11
+ folder = @client.folders.find('TestData')
12
+ expect(folder).to be_an_instance_of(Unresponsys::Folder)
13
+ end
14
+
15
+ context do
16
+ before :each do
17
+ @folder = @client.folders.find('TestData')
18
+ end
19
+
20
+ it '#supplemental_tables.find returns an instance of SupplementalTable' do
21
+ table = @folder.supplemental_tables.find('MyTable')
22
+ expect(table).to be_an_instance_of(Unresponsys::SupplementalTable)
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Monkey patches' do
4
+ describe Object do
5
+ it 'converts to responsys' do
6
+ obj = Object.new
7
+ expect(obj.to_responsys).to eq obj.to_s
8
+ end
9
+ end
10
+
11
+ describe String do
12
+ it 'converts to int' do
13
+ expect('123'.to_ruby).to eq 123
14
+ end
15
+
16
+ it 'doesnt convert hex strings to int' do
17
+ expect('1e9993'.to_ruby).to eq '1e9993'
18
+ end
19
+
20
+ it 'converts to float' do
21
+ expect('1.23'.to_ruby).to eq 1.23
22
+ end
23
+
24
+ it 'doesnt convert hex strings to float' do
25
+ expect('1e9993'.to_ruby).to eq '1e9993'
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::List do
4
+
5
+ before :each do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+
9
+ list = @client.lists.find('TestDataList')
10
+ member = list.members.new('kwkimball@gmail.com')
11
+ member.save
12
+ end
13
+
14
+ it '.find returns an instance of List' do
15
+ list = @client.lists.find('TestDataList')
16
+ expect(list).to be_an_instance_of(Unresponsys::List)
17
+ end
18
+
19
+ context do
20
+ before :each do
21
+ @list = @client.lists.find('TestDataList')
22
+ end
23
+
24
+ it '#members.find returns an instance of Member when a member exists' do
25
+ VCR.use_cassette('find_member_exists') do
26
+ member = @list.members.find('kwkimball@gmail.com')
27
+ expect(member).to be_an_instance_of(Unresponsys::Member)
28
+ end
29
+ end
30
+
31
+ it '#members.find raises an error when a member doesnt exist' do
32
+ VCR.use_cassette('find_member_doesnt_exist') do
33
+ expect {
34
+ @list.members.find('kwkimball+foo@gmail.com')
35
+ }.to raise_error(Unresponsys::NotFound)
36
+ end
37
+ end
38
+
39
+ it '#members.new returns an instance of Member' do
40
+ member = @list.members.new('kwkimball@gmail.com')
41
+ expect(member).to be_an_instance_of(Unresponsys::Member)
42
+ end
43
+ end
44
+
45
+ end
@@ -0,0 +1,144 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::Member do
4
+
5
+ before :each do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+ end
9
+
10
+ context 'when an existing member' do
11
+ before :each do
12
+ VCR.use_cassette('get_existing_member') do
13
+ @list = @client.lists.find('TestDataList')
14
+ @member = @list.members.find('kwkimball@gmail.com')
15
+ end
16
+ end
17
+
18
+ it 'Responsys attributes can be changed' do
19
+ @member.city = 'San Francisco'
20
+ expect(@member.city).to eq('San Francisco')
21
+ end
22
+
23
+ it 'custom attributes can be changed' do
24
+ @member.first_name = 'Kevin'
25
+ expect(@member.first_name).to eq('Kevin')
26
+ end
27
+
28
+ describe '#save' do
29
+ it 'posts to Responsys' do
30
+ VCR.use_cassette('save_existing_member') do
31
+ expect(@client).to receive(:post).and_call_original
32
+ @member.save
33
+ end
34
+ end
35
+
36
+ it 'returns true' do
37
+ VCR.use_cassette('save_existing_member') do
38
+ expect(@member.save).to eq(true)
39
+ end
40
+ end
41
+
42
+ it 'custom text attributes can be saved' do
43
+ VCR.use_cassette('save_existing_member_with_text') do
44
+ @member.last_name = 'Kimball'
45
+ @member.save
46
+ @member = @list.members.find('kwkimball@gmail.com')
47
+ expect(@member.last_name).to eq('Kimball')
48
+ end
49
+ end
50
+
51
+ it 'custom number attributes can be saved' do
52
+ VCR.use_cassette('save_existing_member_with_number') do
53
+ @member.total_revenue = 101.23
54
+ @member.save
55
+ @member = @list.members.find('kwkimball@gmail.com')
56
+ expect(@member.total_revenue).to eq(101.23)
57
+ end
58
+ end
59
+
60
+ it 'custom integer attributes can be saved' do
61
+ VCR.use_cassette('save_existing_member_with_integer') do
62
+ @member.age = 30
63
+ @member.save
64
+ @member = @list.members.find('kwkimball@gmail.com')
65
+ expect(@member.age).to eq(30)
66
+ end
67
+ end
68
+
69
+ it 'custom timestamp attributes can be saved' do
70
+ VCR.use_cassette('save_existing_member_with_timestamp') do
71
+ time = Time.new(2015, 10, 7, 5, 00, 00, '-07:00')
72
+ @member.last_purchase = time
73
+ @member.save
74
+ @member = @list.members.find('kwkimball@gmail.com')
75
+ expect(@member.last_purchase).to eq(time)
76
+ end
77
+ end
78
+
79
+ it 'custom boolean attributes can be saved' do
80
+ VCR.use_cassette('save_existing_member_with_boolean') do
81
+ @member.mom = false
82
+ @member.save
83
+ @member = @list.members.find('kwkimball@gmail.com')
84
+ expect(@member.mom).to eq(false)
85
+ end
86
+ end
87
+ end
88
+
89
+ it '#events.new returns an instance of Event' do
90
+ expect(@member.events.new('MyEvent')).to be_an_instance_of(Unresponsys::Event)
91
+ end
92
+
93
+ it '#extension_tables.find returns an instance of ExtensionTable' do
94
+ table = @member.extension_tables.find('MyTable')
95
+ expect(table).to be_an_instance_of(Unresponsys::ExtensionTable)
96
+ end
97
+ end
98
+
99
+ context 'when a new member' do
100
+ before :each do
101
+ list = @client.lists.find('TestDataList')
102
+ @member = list.members.new('kwkimball+bar@gmail.com')
103
+ end
104
+
105
+ it 'Responsys attributes can be changed' do
106
+ @member.city = 'San Francisco'
107
+ expect(@member.city).to eq('San Francisco')
108
+ end
109
+
110
+ it 'custom attributes can be changed' do
111
+ @member.first_name = 'Kevin'
112
+ expect(@member.first_name).to eq('Kevin')
113
+ end
114
+
115
+ describe '#save' do
116
+ it 'posts to Responsys' do
117
+ VCR.use_cassette('save_new_member') do
118
+ expect(@client).to receive(:post).and_call_original
119
+ @member.save
120
+ end
121
+ end
122
+
123
+ it 'returns true' do
124
+ VCR.use_cassette('save_new_member') do
125
+ expect(@member.save).to eq(true)
126
+ end
127
+ end
128
+ end
129
+
130
+ describe '#to_h' do
131
+ it 'returns the correct hash' do
132
+ @member.city = 'San Francisco'
133
+ @member.first_name = 'Kevin'
134
+ hash = {
135
+ 'EMAIL_ADDRESS_' => 'kwkimball+bar@gmail.com',
136
+ 'CITY_' => 'San Francisco',
137
+ 'FIRST_NAME' => 'Kevin'
138
+ }
139
+ expect(@member.to_h).to include(hash)
140
+ end
141
+ end
142
+ end
143
+
144
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::Message do
4
+
5
+ before(:each) do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+
9
+ VCR.use_cassette('get_existing_member') do
10
+ list = @client.lists.find('TestDataList')
11
+ @member = list.members.find('kwkimball@gmail.com')
12
+ end
13
+ end
14
+
15
+ describe '#save' do
16
+ before(:each) do
17
+ @message = @member.messages.new('KevinTest')
18
+ end
19
+
20
+ it 'posts to Responsys' do
21
+ VCR.use_cassette('save_new_message') do
22
+ expect(@client).to receive(:post).and_call_original
23
+ @message.save
24
+ end
25
+ end
26
+
27
+ it 'returns true' do
28
+ VCR.use_cassette('save_new_message') do
29
+ expect(@message.save).to eq(true)
30
+ end
31
+ end
32
+
33
+ context 'with optional data' do
34
+ it 'returns true' do
35
+ VCR.use_cassette('save_new_message_optional_data') do
36
+ @message = @member.messages.new('KevinTest', testdata: 'success')
37
+ expect(@message.save).to eq(true)
38
+ end
39
+ end
40
+ end
41
+
42
+ context 'with undefined campaign' do
43
+ it 'returns an error' do
44
+ VCR.use_cassette('save_new_message_undefined') do
45
+ @message = @member.messages.new('MyMessage')
46
+ expect { @message.save }.to raise_error(Unresponsys::NotFound)
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ end
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::Row do
4
+
5
+ before :each do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+ end
9
+
10
+ context 'when a new row' do
11
+ before :each do
12
+ folder = @client.folders.find('TestData')
13
+ @table = folder.supplemental_tables.find('TestTable')
14
+ @row = @table.rows.new(1)
15
+
16
+ # at least one field must be set
17
+ @row.title = 'My Title'
18
+ end
19
+
20
+ describe '#save' do
21
+ it 'posts to Responsys' do
22
+ VCR.use_cassette('save_new_row') do
23
+ expect(@client).to receive(:post).and_call_original
24
+ @row.save
25
+ end
26
+ end
27
+
28
+ it 'returns true' do
29
+ VCR.use_cassette('save_new_row') do
30
+ expect(@row.save).to eq(true)
31
+ end
32
+ end
33
+ end
34
+
35
+ describe '#to_h' do
36
+ it 'returns the correct hash' do
37
+ hash = {
38
+ 'ID_' => '1',
39
+ 'TITLE' => 'My Title'
40
+ }
41
+ expect(@row.to_h).to include(hash)
42
+ end
43
+ end
44
+ end
45
+
46
+ context 'when an existing row' do
47
+ before :each do
48
+ VCR.use_cassette('get_existing_row') do
49
+ folder = @client.folders.find('TestData')
50
+ @table = folder.supplemental_tables.find('TestTable')
51
+ @row = @table.rows.find(1)
52
+ end
53
+ end
54
+
55
+ describe '#destroy' do
56
+ it 'deletes to Responsys' do
57
+ VCR.use_cassette('delete_existing_row') do
58
+ expect(@client).to receive(:delete).and_call_original
59
+ @row.destroy
60
+ end
61
+ end
62
+
63
+ it 'returns true' do
64
+ VCR.use_cassette('delete_existing_row') do
65
+ expect(@row.destroy).to eq(true)
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,15 @@
1
+ require 'bundler/setup'
2
+ require 'dotenv'
3
+ require 'unresponsys'
4
+ require 'rspec'
5
+ require 'vcr'
6
+ require 'webmock'
7
+ require 'byebug'
8
+
9
+ Dotenv.load
10
+
11
+ VCR.configure do |c|
12
+ c.cassette_library_dir = 'fixtures/vcr_cassettes'
13
+ c.hook_into :webmock
14
+ c.allow_http_connections_when_no_cassette = true
15
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Unresponsys::SupplementalTable do
4
+
5
+ before :each do
6
+ @client = Unresponsys::Client.new(username: ENV['R_USER'], password: ENV['R_PASS'])
7
+ allow(@client).to receive(:authenticate).and_return(true)
8
+
9
+ folder = @client.folders.find('TestData')
10
+ @table = folder.supplemental_tables.find('TestTable')
11
+ end
12
+
13
+ it '#rows.find returns an instance of Row when a row exists' do
14
+ VCR.use_cassette('find_row_exists') do
15
+ row = @table.rows.find(1)
16
+ expect(row).to be_an_instance_of(Unresponsys::Row)
17
+ end
18
+ end
19
+
20
+ it '#rows.find raises an error when a row does not exist' do
21
+ VCR.use_cassette('find_row_doesnt_exist') do
22
+ expect {
23
+ @table.rows.find(2)
24
+ }.to raise_error(Unresponsys::NotFound)
25
+ end
26
+ end
27
+
28
+ it '#rows.new returns an instance of Row' do
29
+ row = @table.rows.new(2)
30
+ expect(row).to be_an_instance_of(Unresponsys::Row)
31
+ end
32
+
33
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unresponsys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Kimball
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
11
+ date: 2016-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -141,15 +141,29 @@ files:
141
141
  - lib/unresponsys/client.rb
142
142
  - lib/unresponsys/errors.rb
143
143
  - lib/unresponsys/event.rb
144
+ - lib/unresponsys/events.rb
144
145
  - lib/unresponsys/extension_table.rb
146
+ - lib/unresponsys/extension_tables.rb
145
147
  - lib/unresponsys/folder.rb
146
148
  - lib/unresponsys/helpers.rb
147
149
  - lib/unresponsys/list.rb
148
150
  - lib/unresponsys/member.rb
149
151
  - lib/unresponsys/merge_rule.rb
152
+ - lib/unresponsys/message.rb
153
+ - lib/unresponsys/messages.rb
150
154
  - lib/unresponsys/row.rb
151
155
  - lib/unresponsys/supplemental_table.rb
152
156
  - lib/unresponsys/version.rb
157
+ - spec/event_spec.rb
158
+ - spec/extension_table_spec.rb
159
+ - spec/folder_spec.rb
160
+ - spec/helpers_spec.rb
161
+ - spec/list_spec.rb
162
+ - spec/member_spec.rb
163
+ - spec/message_spec.rb
164
+ - spec/row_spec.rb
165
+ - spec/spec_helper.rb
166
+ - spec/supplemental_table_spec.rb
153
167
  homepage:
154
168
  licenses: []
155
169
  metadata: {}
@@ -173,4 +187,14 @@ rubygems_version: 2.4.6
173
187
  signing_key:
174
188
  specification_version: 4
175
189
  summary: an opinionated Ruby wrapper for Responsys REST API
176
- test_files: []
190
+ test_files:
191
+ - spec/event_spec.rb
192
+ - spec/extension_table_spec.rb
193
+ - spec/folder_spec.rb
194
+ - spec/helpers_spec.rb
195
+ - spec/list_spec.rb
196
+ - spec/member_spec.rb
197
+ - spec/message_spec.rb
198
+ - spec/row_spec.rb
199
+ - spec/spec_helper.rb
200
+ - spec/supplemental_table_spec.rb