unresponsys 0.3.0 → 0.3.5
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 +4 -4
- data/lib/unresponsys.rb +1 -2
- data/lib/unresponsys/extension_table.rb +8 -0
- data/lib/unresponsys/helpers.rb +50 -0
- data/lib/unresponsys/member.rb +13 -21
- data/lib/unresponsys/merge_rule.rb +17 -0
- data/lib/unresponsys/row.rb +22 -6
- data/lib/unresponsys/supplemental_table.rb +8 -0
- data/lib/unresponsys/version.rb +1 -1
- metadata +39 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a350c5273bc6ce627b267a064861def986886f0
|
4
|
+
data.tar.gz: 4fdd7c8eb7cc221c4d6aa1c3d78d27a98ab40635
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f2e0a734df43f365dc9bcf2f6a01ae9409539a05ba013f15eabab9226a66b7c2533d7c8a06e63e151d45f96219be5e502f2848e337e437f0937275cf0c80d47
|
7
|
+
data.tar.gz: 7df6e15a7f97a32291421ecc878a7ade06aea657dd3181bdec97a44480cc3e4ec1d492951240490088fc558bcf402f6f593220927be512e030a5677cc6044e4e
|
data/lib/unresponsys.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'active_support'
|
2
|
-
require 'active_support/all'
|
3
1
|
require 'unresponsys/client'
|
4
2
|
require 'unresponsys/event'
|
5
3
|
require 'unresponsys/extension_table'
|
@@ -8,6 +6,7 @@ require 'unresponsys/folder'
|
|
8
6
|
require 'unresponsys/helpers'
|
9
7
|
require 'unresponsys/list'
|
10
8
|
require 'unresponsys/member'
|
9
|
+
require 'unresponsys/merge_rule'
|
11
10
|
require 'unresponsys/row'
|
12
11
|
require 'unresponsys/supplemental_table'
|
13
12
|
require 'unresponsys/version'
|
data/lib/unresponsys/helpers.rb
CHANGED
@@ -6,9 +6,23 @@ class Object
|
|
6
6
|
def to_ruby
|
7
7
|
self
|
8
8
|
end
|
9
|
+
|
10
|
+
def blank?
|
11
|
+
respond_to?(:empty?) ? !!empty? : !self
|
12
|
+
end
|
13
|
+
|
14
|
+
def present?
|
15
|
+
!blank?
|
16
|
+
end
|
17
|
+
|
18
|
+
def presence
|
19
|
+
self if present?
|
20
|
+
end
|
9
21
|
end
|
10
22
|
|
11
23
|
class String
|
24
|
+
BLANK_RE = /\A[[:space:]]*\z/ unless defined? BLANK_RE
|
25
|
+
|
12
26
|
def is_i?
|
13
27
|
return false if self.include?('.')
|
14
28
|
return false if self.match(/e|E/)
|
@@ -45,6 +59,10 @@ class String
|
|
45
59
|
return self.to_bool if self.is_bool?
|
46
60
|
self
|
47
61
|
end
|
62
|
+
|
63
|
+
def blank?
|
64
|
+
BLANK_RE === self
|
65
|
+
end
|
48
66
|
end
|
49
67
|
|
50
68
|
class Date
|
@@ -63,16 +81,48 @@ class Time
|
|
63
81
|
def to_responsys
|
64
82
|
self.strftime('%Y-%m-%d %H:%M:%S')
|
65
83
|
end
|
84
|
+
|
85
|
+
def blank?
|
86
|
+
false
|
87
|
+
end
|
66
88
|
end
|
67
89
|
|
68
90
|
class TrueClass
|
69
91
|
def to_responsys
|
70
92
|
'T'
|
71
93
|
end
|
94
|
+
|
95
|
+
def blank?
|
96
|
+
false
|
97
|
+
end
|
72
98
|
end
|
73
99
|
|
74
100
|
class FalseClass
|
75
101
|
def to_responsys
|
76
102
|
'F'
|
77
103
|
end
|
104
|
+
|
105
|
+
def blank?
|
106
|
+
true
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
class NilClass
|
111
|
+
def blank?
|
112
|
+
true
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class Array
|
117
|
+
alias_method :blank?, :empty?
|
118
|
+
end
|
119
|
+
|
120
|
+
class Hash
|
121
|
+
alias_method :blank?, :empty?
|
122
|
+
end
|
123
|
+
|
124
|
+
class Numeric
|
125
|
+
def blank?
|
126
|
+
false
|
127
|
+
end
|
78
128
|
end
|
data/lib/unresponsys/member.rb
CHANGED
@@ -31,15 +31,13 @@ class Unresponsys
|
|
31
31
|
|
32
32
|
def save
|
33
33
|
record_data = { fieldNames: [], records: [[]], mapTemplateName: nil }
|
34
|
-
|
34
|
+
|
35
|
+
to_h.each do |key, val|
|
35
36
|
record_data[:fieldNames] << key
|
36
|
-
var = "@#{key.downcase.chomp('_')}".to_sym
|
37
|
-
val = self.instance_variable_get(var)
|
38
|
-
val = val.to_responsys
|
39
37
|
record_data[:records][0] << val
|
40
38
|
end
|
41
39
|
|
42
|
-
options = { body: { recordData: record_data, mergeRule:
|
40
|
+
options = { body: { recordData: record_data, mergeRule: MergeRule.new.to_h }.to_json }
|
43
41
|
r = client.post("/lists/#{@list.name}/members", options)
|
44
42
|
return false if r['recordData']['records'][0][0].include?('MERGEFAILED')
|
45
43
|
|
@@ -93,6 +91,16 @@ class Unresponsys
|
|
93
91
|
end
|
94
92
|
end
|
95
93
|
|
94
|
+
def to_h
|
95
|
+
hash = {}
|
96
|
+
@changed.uniq.each do |key|
|
97
|
+
var = "@#{key.downcase.chomp('_')}".to_sym
|
98
|
+
val = self.instance_variable_get(var)
|
99
|
+
hash[key] = val.to_responsys
|
100
|
+
end
|
101
|
+
hash
|
102
|
+
end
|
103
|
+
|
96
104
|
private
|
97
105
|
|
98
106
|
def default_fields
|
@@ -132,21 +140,5 @@ class Unresponsys
|
|
132
140
|
MODIFIED_DATE_
|
133
141
|
)
|
134
142
|
end
|
135
|
-
|
136
|
-
def merge_rule
|
137
|
-
{
|
138
|
-
insertOnNoMatch: true,
|
139
|
-
updateOnMatch: 'REPLACE_ALL',
|
140
|
-
matchColumnName1: 'EMAIL_ADDRESS_',
|
141
|
-
matchColumnName2: nil,
|
142
|
-
matchOperator: nil,
|
143
|
-
optinValue: 'I',
|
144
|
-
optoutValue: 'O',
|
145
|
-
defaultPermissionStatus: 'OPTIN',
|
146
|
-
htmlValue: 'H',
|
147
|
-
textValue: 'T',
|
148
|
-
rejectRecordIfChannelEmpty: nil,
|
149
|
-
}
|
150
|
-
end
|
151
143
|
end
|
152
144
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class Unresponsys::MergeRule
|
2
|
+
def to_h
|
3
|
+
{
|
4
|
+
insertOnNoMatch: true,
|
5
|
+
updateOnMatch: 'REPLACE_ALL',
|
6
|
+
matchColumnName1: 'EMAIL_ADDRESS_',
|
7
|
+
matchColumnName2: nil,
|
8
|
+
matchOperator: nil,
|
9
|
+
optinValue: 'I',
|
10
|
+
optoutValue: 'O',
|
11
|
+
defaultPermissionStatus: 'OPTIN',
|
12
|
+
htmlValue: 'H',
|
13
|
+
textValue: 'T',
|
14
|
+
rejectRecordIfChannelEmpty: nil,
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
data/lib/unresponsys/row.rb
CHANGED
@@ -28,11 +28,8 @@ class Unresponsys
|
|
28
28
|
def save
|
29
29
|
record_data = { fieldNames: [], records: [{ fieldValues: [] }], mapTemplateName: nil }
|
30
30
|
|
31
|
-
|
31
|
+
to_h.each do |key, val|
|
32
32
|
record_data[:fieldNames] << key
|
33
|
-
var = "@#{key.downcase.chomp('_')}".to_sym
|
34
|
-
val = self.instance_variable_get(var)
|
35
|
-
val = val.to_responsys
|
36
33
|
record_data[:records][0][:fieldValues] << val
|
37
34
|
end
|
38
35
|
|
@@ -44,7 +41,7 @@ class Unresponsys
|
|
44
41
|
}
|
45
42
|
}
|
46
43
|
|
47
|
-
if @table.
|
44
|
+
if @table.supplemental_table?
|
48
45
|
url = "/folders/#{@table.folder.name}/suppData/#{@table.name}"
|
49
46
|
else
|
50
47
|
options[:body][:matchColumn] = 'RIID'
|
@@ -54,13 +51,22 @@ class Unresponsys
|
|
54
51
|
options[:body] = options[:body].to_json
|
55
52
|
r = client.post(url, options)
|
56
53
|
|
57
|
-
if @table.
|
54
|
+
if @table.supplemental_table?
|
58
55
|
r['errorMessage'].blank?
|
59
56
|
else
|
60
57
|
r[0]['errorMessage'].blank?
|
61
58
|
end
|
62
59
|
end
|
63
60
|
|
61
|
+
def destroy
|
62
|
+
fail 'Not yet implemented' if @table.extension_table?
|
63
|
+
|
64
|
+
options = { query: { qa: 'ID_', id: @id.to_responsys, fs: 'all' } }
|
65
|
+
response = @table.client.delete("/folders/#{@table.folder.name}/suppData/#{@table.name}/members", options)
|
66
|
+
|
67
|
+
response['errorMessage'].blank?
|
68
|
+
end
|
69
|
+
|
64
70
|
# allow to access custom fields on new record
|
65
71
|
def method_missing(sym, *args, &block)
|
66
72
|
setter = sym.to_s.include?('=')
|
@@ -77,5 +83,15 @@ class Unresponsys
|
|
77
83
|
self.instance_variable_get(var)
|
78
84
|
end
|
79
85
|
end
|
86
|
+
|
87
|
+
def to_h
|
88
|
+
hash = {}
|
89
|
+
@fields.each_pair do |key, val|
|
90
|
+
var = "@#{key.downcase.chomp('_')}".to_sym
|
91
|
+
val = self.instance_variable_get(var)
|
92
|
+
hash[key] = val.to_responsys
|
93
|
+
end
|
94
|
+
hash
|
95
|
+
end
|
80
96
|
end
|
81
97
|
end
|
data/lib/unresponsys/version.rb
CHANGED
metadata
CHANGED
@@ -1,47 +1,42 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unresponsys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
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-
|
11
|
+
date: 2016-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.13
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
19
|
+
version: '0.13'
|
24
20
|
- - ">="
|
25
21
|
- !ruby/object:Gem::Version
|
26
22
|
version: 0.13.5
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: activesupport
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 3.0.0
|
34
23
|
type: :runtime
|
35
24
|
prerelease: false
|
36
25
|
version_requirements: !ruby/object:Gem::Requirement
|
37
26
|
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.13'
|
38
30
|
- - ">="
|
39
31
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
32
|
+
version: 0.13.5
|
41
33
|
- !ruby/object:Gem::Dependency
|
42
34
|
name: rspec
|
43
35
|
requirement: !ruby/object:Gem::Requirement
|
44
36
|
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.4'
|
45
40
|
- - ">="
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: 3.4.0
|
@@ -49,6 +44,9 @@ dependencies:
|
|
49
44
|
prerelease: false
|
50
45
|
version_requirements: !ruby/object:Gem::Requirement
|
51
46
|
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.4'
|
52
50
|
- - ">="
|
53
51
|
- !ruby/object:Gem::Version
|
54
52
|
version: 3.4.0
|
@@ -56,6 +54,9 @@ dependencies:
|
|
56
54
|
name: vcr
|
57
55
|
requirement: !ruby/object:Gem::Requirement
|
58
56
|
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.0'
|
59
60
|
- - ">="
|
60
61
|
- !ruby/object:Gem::Version
|
61
62
|
version: 3.0.0
|
@@ -63,6 +64,9 @@ dependencies:
|
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.0'
|
66
70
|
- - ">="
|
67
71
|
- !ruby/object:Gem::Version
|
68
72
|
version: 3.0.0
|
@@ -70,6 +74,9 @@ dependencies:
|
|
70
74
|
name: webmock
|
71
75
|
requirement: !ruby/object:Gem::Requirement
|
72
76
|
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.22'
|
73
80
|
- - ">="
|
74
81
|
- !ruby/object:Gem::Version
|
75
82
|
version: 1.22.3
|
@@ -77,6 +84,9 @@ dependencies:
|
|
77
84
|
prerelease: false
|
78
85
|
version_requirements: !ruby/object:Gem::Requirement
|
79
86
|
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.22'
|
80
90
|
- - ">="
|
81
91
|
- !ruby/object:Gem::Version
|
82
92
|
version: 1.22.3
|
@@ -84,6 +94,9 @@ dependencies:
|
|
84
94
|
name: dotenv
|
85
95
|
requirement: !ruby/object:Gem::Requirement
|
86
96
|
requirements:
|
97
|
+
- - "~>"
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '2.0'
|
87
100
|
- - ">="
|
88
101
|
- !ruby/object:Gem::Version
|
89
102
|
version: 2.0.2
|
@@ -91,6 +104,9 @@ dependencies:
|
|
91
104
|
prerelease: false
|
92
105
|
version_requirements: !ruby/object:Gem::Requirement
|
93
106
|
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.0'
|
94
110
|
- - ">="
|
95
111
|
- !ruby/object:Gem::Version
|
96
112
|
version: 2.0.2
|
@@ -98,6 +114,9 @@ dependencies:
|
|
98
114
|
name: byebug
|
99
115
|
requirement: !ruby/object:Gem::Requirement
|
100
116
|
requirements:
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '8.0'
|
101
120
|
- - ">="
|
102
121
|
- !ruby/object:Gem::Version
|
103
122
|
version: 8.0.1
|
@@ -105,6 +124,9 @@ dependencies:
|
|
105
124
|
prerelease: false
|
106
125
|
version_requirements: !ruby/object:Gem::Requirement
|
107
126
|
requirements:
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '8.0'
|
108
130
|
- - ">="
|
109
131
|
- !ruby/object:Gem::Version
|
110
132
|
version: 8.0.1
|
@@ -124,6 +146,7 @@ files:
|
|
124
146
|
- lib/unresponsys/helpers.rb
|
125
147
|
- lib/unresponsys/list.rb
|
126
148
|
- lib/unresponsys/member.rb
|
149
|
+
- lib/unresponsys/merge_rule.rb
|
127
150
|
- lib/unresponsys/row.rb
|
128
151
|
- lib/unresponsys/supplemental_table.rb
|
129
152
|
- lib/unresponsys/version.rb
|