unresponsys 0.3.5 → 0.4.0

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