socketlabs-injectionapi 1.2.1 → 1.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
  SHA256:
3
- metadata.gz: 9fce0b211f96b88503365f93ed1270eb5d943d835e21e53fcbee2806621354f0
4
- data.tar.gz: bae74a7c4e920b89fdea11aaed1efce1166ccd9ff923ef39f9e04278118eed06
3
+ metadata.gz: 166ba13c298ad93c8c2ea44c9a2af22399a3a00c5bde303e7daabfd080cd0563
4
+ data.tar.gz: b1fcab9c9778c858306c8dfa5bc3f117a043df81383207878c2c4cb566196ec6
5
5
  SHA512:
6
- metadata.gz: 8004fdece9672ae94d3f3fef5838504cb65606f21ff656210a7a91741b0ec713aecc56bcd0926864e5524dc75869bca3914fc98f3f3f9be808243fb859c035e0
7
- data.tar.gz: 8a7114b59e0f8ec6c8ad416b30743d346cccd9de03c84a0b2380bf14885a25a7a0d146f7be6017a92dae2af381b8a339dfe442e128a74f67042801274a0b18b5
6
+ metadata.gz: 9b793d816754372596a2c8681bb6d5ec226d4a06a4b6985d0ebe801883adbbdeab1c2973a666500c95b642639084c24dd03e6e524cc0b45e4424eb15c548053d
7
+ data.tar.gz: 3700a0da0d4a12a79446dd45fcf63043909cc454efc6963341164a5cfdf55e6b33f2c5337540cb1b9035dbcaa4ba15f3e79e93b2352e07d16285e9b5eaffef04
data/.gitignore CHANGED
@@ -49,3 +49,5 @@ build-iPhoneSimulator/
49
49
 
50
50
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
51
51
  .rvmrc
52
+
53
+ .idea
data/README.MD CHANGED
@@ -14,7 +14,7 @@ The SocketLabs Email Delivery Ruby library allows you to easily send email messa
14
14
  <a name="prerequisites-and-installation" id="prerequisites-and-installation"></a>
15
15
  # Prerequisites and Installation
16
16
  ## Prerequisites
17
- * A supported Ruby version (2.4 and above)
17
+ * A supported Ruby version (3.1 and above)
18
18
  * A SocketLabs account. If you don't have one yet, you can [sign up for a free account](https://signup.socketlabs.com/step-1?plan=free) to get started.
19
19
 
20
20
  ## Installation
data/gemfile.lock CHANGED
@@ -1,17 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- socketlabs-injectionapi (1.2.1)
4
+ socketlabs-injectionapi (1.4.1)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
9
 
10
10
  PLATFORMS
11
+ x64-mingw-ucrt
11
12
  x64-mingw32
12
13
 
13
14
  DEPENDENCIES
14
15
  socketlabs-injectionapi!
15
16
 
16
17
  BUNDLED WITH
17
- 2.1.4
18
+ 2.3.7
@@ -4,10 +4,12 @@ require_relative '../message/email_address.rb'
4
4
  require_relative '../message/bulk_message.rb'
5
5
  require_relative '../message/bulk_recipient.rb'
6
6
  require_relative '../message/custom_header.rb'
7
+ require_relative '../message/metadata.rb'
7
8
 
8
9
  require_relative 'serialization/address_json.rb'
9
10
  require_relative 'serialization/attachment_json.rb'
10
11
  require_relative 'serialization/custom_header_json.rb'
12
+ require_relative 'serialization/metadata_json.rb'
11
13
  require_relative 'serialization/message_json.rb'
12
14
  require_relative 'serialization/merge_data_json.rb'
13
15
 
@@ -68,6 +70,8 @@ module SocketLabs
68
70
  message_json.charset = message.charset
69
71
  message_json.from_email_address = email_address_to_address_json(message.from_email_address)
70
72
  message_json.custom_headers = populate_custom_headers(message.custom_headers)
73
+ message_json.metadata = populate_metadata(message.metadata)
74
+ message_json.tags = message.tags
71
75
  message_json.attachments = populate_attachments(message.attachments)
72
76
 
73
77
  unless message.api_template.nil?
@@ -80,7 +84,7 @@ module SocketLabs
80
84
 
81
85
  end
82
86
 
83
- # Converts a list of Attachment objects to a List of AttachmentJson objects.
87
+ # Converts a list of CustomHeader objects to a List of CustomHeaderJson objects.
84
88
  # @param [Array] custom_headers: list of CustomHeader to convert
85
89
  # @return [Array] the converted list of CustomHeaderJson
86
90
  def populate_custom_headers(custom_headers)
@@ -103,6 +107,29 @@ module SocketLabs
103
107
 
104
108
  end
105
109
 
110
+ # Converts a list of Metadata objects to a List of MetadataJson objects.
111
+ # @param [Array] metadata: list of Metadata to convert
112
+ # @return [Array] the converted list of MetadataJson
113
+ def populate_metadata(metadata)
114
+
115
+ if metadata.nil? || metadata.empty?
116
+ nil
117
+ end
118
+
119
+ metadata_json = Array.new
120
+
121
+ metadata.each do |header|
122
+ if header.instance_of? Metadata
123
+ metadata_json.push(MetadataJson.new(header.key, header.value))
124
+ elsif header.instance_of? Hash
125
+ metadata_json.push(MetadataJson.new(header[:key], header[:value]))
126
+ end
127
+ end
128
+
129
+ metadata_json
130
+
131
+ end
132
+
106
133
  # Converts a list of Attachment objects to a List of AttachmentJson objects.
107
134
  # @param [Attachment] attachments: list of Attachment to convert
108
135
  # @return [Array] the converted list of AttachmentJson
@@ -27,39 +27,39 @@ module SocketLabs
27
27
 
28
28
  def send(request)
29
29
 
30
- if @retry_settings.maximum_number_of_retries == 0
31
- response = @http_client.send_request(request)
32
- response
33
- end
34
-
35
30
  attempts = 0
31
+ exception = nil
36
32
 
37
33
  loop do
38
34
  wait_interval = @retry_settings.get_next_wait_interval(attempts)
35
+ attempts += 1
39
36
 
40
37
  begin
41
38
  response = @http_client.send_request(request)
42
39
 
43
- if (@error_codes.include? response.status_code.to_i) && (attempts < @retry_settings.maximum_number_of_retries)
44
- attempts += 1
40
+ if @error_codes.include? response.status_code.to_i
41
+ exception = SocketLabs::InjectionApi::Exceptions::ServerException.new("Failed to send email. Received #{response.status_code} from server.")
42
+ sleep(wait_interval)
45
43
  else
46
- response
44
+ return response
47
45
  end
48
46
 
49
47
  rescue Timeout::Error => exception
50
- attempts += 1
51
-
52
- if attempts > @retry_settings.maximum_number_of_retries
53
- raise exception
54
- end
48
+ exception = exception
49
+
50
+ break if attempts > @retry_settings.maximum_number_of_retries
55
51
  sleep(wait_interval)
56
52
 
57
53
  rescue Exception => exception
58
54
  raise exception
59
55
  end
60
56
 
57
+ break if attempts > @retry_settings.maximum_number_of_retries
61
58
  end
62
59
 
60
+ raise exception if exception
61
+
62
+ false
63
63
  end
64
64
 
65
65
  end
@@ -4,6 +4,7 @@ require_relative '../message/email_address.rb'
4
4
  require_relative '../message/bulk_message.rb'
5
5
  require_relative '../message/bulk_recipient.rb'
6
6
  require_relative '../message/custom_header.rb'
7
+ require_relative '../message/metadata.rb'
7
8
 
8
9
  module SocketLabs
9
10
  module InjectionApi
@@ -44,7 +45,7 @@ module SocketLabs
44
45
  SendResponse.new(result=SendResult.enum["AuthenticationValidationFailed"])
45
46
  end
46
47
 
47
- if server_id.nil? || server_id.empty?
48
+ if server_id.nil? || (!server_id.is_a?(Integer) && server_id.empty?)
48
49
  SendResponse.new(result=SendResult.enum["AuthenticationValidationFailed"])
49
50
  end
50
51
 
@@ -82,6 +83,9 @@ module SocketLabs
82
83
  unless has_valid_custom_headers(message.custom_headers)
83
84
  SendResult.enum["MessageValidationInvalidCustomHeaders"]
84
85
  end
86
+ unless has_valid_metadata(message.metadata)
87
+ SendResult.enum["MessageValidationInvalidMetadata"]
88
+ end
85
89
 
86
90
  SendResult.enum["Success"]
87
91
 
@@ -351,6 +355,25 @@ module SocketLabs
351
355
 
352
356
  end
353
357
 
358
+ # Check if the list of metadata is valid
359
+ # @param [Array] metadata
360
+ # @return [Array]
361
+ def has_valid_metadata(metadata)
362
+
363
+ unless metadata.nil? || metadata.empty?
364
+ metadata.each do |item|
365
+ if item.instance_of? Metadata
366
+ unless item.is_valid
367
+ false
368
+ end
369
+ end
370
+ end
371
+ end
372
+
373
+ true
374
+
375
+ end
376
+
354
377
  # @param [BasicMessage] message
355
378
  # @return [SendResponse]
356
379
  def validate_basic_message(message)
@@ -44,6 +44,8 @@ module SocketLabs
44
44
  @merge_data = MergeDataJson.new
45
45
  @attachments = Array.new
46
46
  @custom_headers = Array.new
47
+ @metadata = Array.new
48
+ @tags = Array.new
47
49
  @to_email_address = Array.new
48
50
  @cc_email_address = Array.new
49
51
  @bcc_email_address = Array.new
@@ -82,6 +84,7 @@ module SocketLabs
82
84
  def custom_headers
83
85
  @custom_headers
84
86
  end
87
+
85
88
  # Set the list of CustomHeaderJson.
86
89
  # @param [Array] value
87
90
  def custom_headers=(value)
@@ -103,6 +106,63 @@ module SocketLabs
103
106
  end
104
107
  end
105
108
 
109
+ #metadata
110
+ # Get the list of MetadataJson.
111
+ # @return [Array]
112
+ def metadata
113
+ @metadata
114
+ end
115
+
116
+ # Set the list of MetadataJson.
117
+ # @param [Array] value
118
+ def metadata=(value)
119
+ @metadata = Array.new
120
+ unless value.nil? || value.empty?
121
+ value.each do |v1|
122
+ if v1.instance_of? MetadataJson
123
+ @metadata.push(v1)
124
+ end
125
+ end
126
+ end
127
+ end
128
+
129
+ # Add a MetadataJson to the metadata list
130
+ # @param [MetadataJson] value
131
+ def add_metadata(value)
132
+ if value.instance_of? MetadataJson
133
+ @metadata.push(value)
134
+ end
135
+ end
136
+
137
+ # Get the list of tags added to the message.
138
+ def tags
139
+ @tags
140
+ end
141
+
142
+ # Set the list of tags added to the message.
143
+ def tags=(value)
144
+ @tags = Array.new
145
+ unless value.nil? || value.empty?
146
+ value.each do |v1|
147
+ if v1.kind_of? String
148
+ @tags.push(v1)
149
+ else
150
+ raise StandardError("Invalid type for tag, type of 'String' was expected")
151
+ end
152
+ end
153
+ end
154
+ end
155
+
156
+ # Add a Tag to the message.
157
+ # @param [String] value
158
+ def add_metadata(value = nil)
159
+
160
+ if value.kind_of? String
161
+ @tags.push(value)
162
+ end
163
+
164
+ end
165
+
106
166
  # Get the To email address list
107
167
  # @return [Array]
108
168
  def to_email_address
@@ -233,6 +293,18 @@ module SocketLabs
233
293
  json[:customHeaders] = e
234
294
  end
235
295
 
296
+ unless @metadata.nil? || @metadata.length == 0
297
+ e = Array.new
298
+ @metadata.each do |value|
299
+ e.push(value.to_hash)
300
+ end
301
+ json[:metadata] = e
302
+ end
303
+
304
+ unless @tags.nil? || @tags.length == 0
305
+ json[:tags] = @tags
306
+ end
307
+
236
308
  unless @attachments.nil? || @attachments.length == 0
237
309
  e = Array.new
238
310
  @attachments.each do |value|
@@ -0,0 +1,40 @@
1
+ module SocketLabs
2
+ module InjectionApi
3
+ module Core
4
+ module Serialization
5
+
6
+ # Represents metadata as a key and value pair.
7
+ # To be serialized into JSON string before sending to the Injection Api.
8
+ class MetadataJson
9
+
10
+ # key of the metadata.
11
+ attr_accessor :key
12
+ # value of the metadata.
13
+ attr_accessor :value
14
+
15
+ # Initializes a new instance of the MetadataJson class
16
+ # @param [String] key
17
+ # @param [String] value
18
+ def initialize(
19
+ key = nil,
20
+ value = nil
21
+ )
22
+ @key = key
23
+ @value = value
24
+ end
25
+
26
+ # build json hash for MetadataJson
27
+ # @return [hash]
28
+ def to_hash
29
+ {
30
+ :key => @key,
31
+ :value => @value
32
+ }
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,7 @@
1
+ module SocketLabs
2
+ module InjectionApi
3
+ module Exceptions
4
+ class ServerException < Exception;end
5
+ end
6
+ end
7
+ end
@@ -12,6 +12,7 @@ module SocketLabs
12
12
  @to_email_address = Array.new
13
13
  @cc_email_address = Array.new
14
14
  @bcc_email_address = Array.new
15
+ @tags = Array.new
15
16
 
16
17
  end
17
18
 
@@ -87,6 +88,8 @@ module SocketLabs
87
88
  replyTo: @reply_to_email_address,
88
89
  attachments: @attachments,
89
90
  customHeaders: @custom_headers,
91
+ metadata: @metadata,
92
+ tags: @tags,
90
93
  to: @to_email_address,
91
94
  cc: @cc_email_address,
92
95
  bcc: @bcc_email_address
@@ -55,6 +55,8 @@ module SocketLabs
55
55
  replyTo: @reply_to_email_address,
56
56
  attachments: @attachments,
57
57
  customHeaders: @custom_headers,
58
+ metadata: @metadata,
59
+ tags: @tags,
58
60
  to: @to_recipient,
59
61
  global_merge_data: @global_merge_data
60
62
  }
@@ -20,11 +20,11 @@ module SocketLabs
20
20
  # (Optional) Either TextBody or HtmlBody must be used with the AmpBody or use a ApiTemplate
21
21
  attr_accessor :api_template
22
22
  # the custom MailingId for the message.
23
- # See https://www.injectionapi.com/blog/best-practices-for-using-custom-mailingids-and-messageids/
23
+ # See https://www.socketlabs.com/blog/best-practices-for-using-custom-mailingids-and-messageids/
24
24
  # for more information.
25
25
  attr_accessor :mailing_id
26
26
  # the custom MessageId for the message.
27
- # See https://www.injectionapi.com/blog/best-practices-for-using-custom-mailingids-and-messageids/
27
+ # See https://www.socketlabs.com/blog/best-practices-for-using-custom-mailingids-and-messageids/
28
28
  # for more information.
29
29
  attr_accessor :message_id
30
30
  # the optional character set. Default is UTF-8
@@ -77,6 +77,8 @@ module SocketLabs
77
77
 
78
78
  @attachments = Array.new
79
79
  @custom_headers = Array.new
80
+ @metadata = Array.new
81
+ @tags = Array.new
80
82
 
81
83
  end
82
84
 
@@ -140,6 +142,7 @@ module SocketLabs
140
142
  def custom_headers
141
143
  @custom_headers
142
144
  end
145
+
143
146
  # Set the list of custom message headers added to the message.
144
147
  def custom_headers=(value)
145
148
  @custom_headers = Array.new
@@ -153,6 +156,7 @@ module SocketLabs
153
156
  end
154
157
  end
155
158
  end
159
+
156
160
  # Add a CustomHeader to the message.
157
161
  # @param [String/CustomHeader] name
158
162
  # @param [String] value
@@ -168,6 +172,68 @@ module SocketLabs
168
172
 
169
173
  end
170
174
 
175
+ # Get the list of metadata added to the message.
176
+ def metadata
177
+ @metadata
178
+ end
179
+
180
+ # Set the list of metadata added to the message.
181
+ def metadata=(value)
182
+ @metadata = Array.new
183
+ unless value.nil? || value.empty?
184
+ value.each do |v1|
185
+ if v1.instance_of? Metadata
186
+ @metadata.push(v1)
187
+ else
188
+ raise StandardError("Invalid type for metadata, type of 'Metadata' was expected")
189
+ end
190
+ end
191
+ end
192
+ end
193
+
194
+ # Add a Metadata to the message.
195
+ # @param [String/Metadata] key
196
+ # @param [String] value
197
+ def add_metadata(key, value = nil)
198
+
199
+ if key.kind_of? Metadata
200
+ @metadata.push(key)
201
+
202
+ elsif key.kind_of? String
203
+ @metadata.push(Metadata.new(key, value))
204
+
205
+ end
206
+
207
+ end
208
+
209
+ # Get the list of tags added to the message.
210
+ def tags
211
+ @tags
212
+ end
213
+
214
+ # Set the list of tags added to the message.
215
+ def tags=(value)
216
+ @tags = Array.new
217
+ unless value.nil? || value.empty?
218
+ value.each do |v1|
219
+ if v1.kind_of? String
220
+ @tags.push(v1)
221
+ else
222
+ raise StandardError("Invalid type for tag, type of 'String' was expected")
223
+ end
224
+ end
225
+ end
226
+ end
227
+
228
+ # Add a Tag to the message.
229
+ # @param [String] value
230
+ def add_tag(value = nil)
231
+
232
+ if value.kind_of? String
233
+ @tags.push(value)
234
+ end
235
+
236
+ end
171
237
 
172
238
 
173
239
  end
@@ -0,0 +1,52 @@
1
+ require_relative '../core/string_extension.rb'
2
+
3
+ module SocketLabs
4
+ module InjectionApi
5
+ module Message
6
+
7
+ # Represents metadata as a key-value pair.
8
+ # Example:
9
+ #
10
+ # metadata1 = Metadata.new
11
+ # metadata1.key = "key1"
12
+ # metadata1.value = "value1"
13
+ #
14
+ # metadata2 = Metadata.new("key2", "value2")
15
+
16
+ class Metadata
17
+
18
+ # the key of the metadata item
19
+ attr_accessor :key
20
+ # the value of the metadata item
21
+ attr_accessor :value
22
+
23
+ # Initializes a new instance of the Metadata class
24
+ # @param [String] key
25
+ # @param [String] value
26
+ def initialize(
27
+ key = nil,
28
+ value = nil
29
+ )
30
+ @key = key
31
+ @value = value
32
+ end
33
+
34
+ # Determines if the Metadata is valid.
35
+ # @return [Boolean]
36
+ def is_valid
37
+ valid_key = !(@key.nil? || @key.empty?)
38
+ valid_value = !(@value.nil? || @value.empty?)
39
+
40
+ valid_key && valid_value
41
+ end
42
+
43
+ # Represents the Metadata key-value pair as a String
44
+ # @return [String]
45
+ def to_s
46
+ "#{@key}, #{@value}"
47
+ end
48
+
49
+ end
50
+ end
51
+ end
52
+ end
@@ -308,6 +308,14 @@ module SocketLabs
308
308
  :value =>37,
309
309
  :message =>"SDK Validation Error: Expected messageType of basic or bulk"
310
310
 
311
+ },
312
+
313
+ # SDK Validation Error: Message contains invalid metadata
314
+ "MessageValidationInvalidMetadata" =>
315
+ {
316
+ :name =>"MessageValidationInvalidMetadata",
317
+ :value =>38,
318
+ :message =>"SDK Validation Error: Message contains invalid metadata"
311
319
  }
312
320
 
313
321
  }
@@ -98,9 +98,9 @@ module SocketLabs
98
98
  response = retry_handler.send(request)
99
99
 
100
100
  parser = InjectionResponseParser.new
101
- parser.parse(response)
101
+ result = parser.parse(response)
102
102
 
103
- @response_json = parser.to_json
103
+ @response_json = result.to_json
104
104
 
105
105
  end
106
106
 
@@ -127,9 +127,9 @@ module SocketLabs
127
127
  response = retry_handler.send(request)
128
128
 
129
129
  parser = InjectionResponseParser.new
130
- parser.parse(response)
130
+ result = parser.parse(response)
131
131
 
132
- @response_json = parser.to_json
132
+ @response_json = result.to_json
133
133
 
134
134
  end
135
135
 
@@ -1,5 +1,5 @@
1
1
  module SocketLabs
2
2
  module InjectionApi
3
- VERSION = '1.2.1'
3
+ VERSION = '1.4.0'
4
4
  end
5
5
  end
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  require_relative 'socketlabs/injectionapi/core/send_validator'
2
4
  require_relative 'socketlabs/injectionapi/core/string_extension'
3
5
  require_relative 'socketlabs/injectionapi/address_result'
@@ -26,4 +28,5 @@ require_relative 'socketlabs/injectionapi/core/serialization/message_result_dto'
26
28
  require_relative 'socketlabs/injectionapi/core/injection_request_factory'
27
29
  require_relative 'socketlabs/injectionapi/core/http_request'
28
30
  require_relative 'socketlabs/injectionapi/core/retryhandler'
29
- require_relative 'socketlabs/injectionapi/core/http_response'
31
+ require_relative 'socketlabs/injectionapi/core/http_response'
32
+ require_relative 'socketlabs/injectionapi/exceptions/server_exception'
@@ -6,13 +6,13 @@ require 'socketlabs/version.rb'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'socketlabs-injectionapi'
8
8
  spec.version = SocketLabs::InjectionApi::VERSION
9
- spec.authors = ['David Schrenker', 'Praneeth Chandra']
9
+ spec.authors = ['David Schrenker', 'Praneeth Chandra', 'Reid Workman']
10
10
  spec.email = 'developers@socketlabs.com'
11
11
  spec.summary = 'SocketLabs Injection Api'
12
12
  spec.description = 'SocketLabs Email Delivery Ruby Client library'
13
13
  spec.homepage = 'https://github.com/socketlabs/socketlabs-ruby'
14
14
 
15
- spec.required_ruby_version = '>= 2.4'
15
+ spec.required_ruby_version = '>= 3.1.2'
16
16
 
17
17
  spec.license = 'MIT'
18
18
  files = `git ls-files -z`.split("\x0").reject do |f|
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socketlabs-injectionapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Schrenker
8
8
  - Praneeth Chandra
9
- autorequire:
9
+ - Reid Workman
10
+ autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2021-04-13 00:00:00.000000000 Z
13
+ date: 2023-01-18 00:00:00.000000000 Z
13
14
  dependencies: []
14
15
  description: SocketLabs Email Delivery Ruby Client library
15
16
  email: developers@socketlabs.com
@@ -18,12 +19,6 @@ extensions: []
18
19
  extra_rdoc_files: []
19
20
  files:
20
21
  - ".gitignore"
21
- - ".idea/inspectionProfiles/Project_Default.xml"
22
- - ".idea/misc.xml"
23
- - ".idea/modules.xml"
24
- - ".idea/socketlabs-ruby.iml"
25
- - ".idea/vcs.xml"
26
- - ".idea/workspace.xml"
27
22
  - CONTRIBUTING.md
28
23
  - LICENSE.MD
29
24
  - README.MD
@@ -46,7 +41,9 @@ files:
46
41
  - lib/socketlabs/injectionapi/core/serialization/merge_field_json.rb
47
42
  - lib/socketlabs/injectionapi/core/serialization/message_json.rb
48
43
  - lib/socketlabs/injectionapi/core/serialization/message_result_dto.rb
44
+ - lib/socketlabs/injectionapi/core/serialization/metadata_json.rb
49
45
  - lib/socketlabs/injectionapi/core/string_extension.rb
46
+ - lib/socketlabs/injectionapi/exceptions/server_exception.rb
50
47
  - lib/socketlabs/injectionapi/message/attachment.rb
51
48
  - lib/socketlabs/injectionapi/message/basic_message.rb
52
49
  - lib/socketlabs/injectionapi/message/bulk_message.rb
@@ -55,6 +52,7 @@ files:
55
52
  - lib/socketlabs/injectionapi/message/email_address.rb
56
53
  - lib/socketlabs/injectionapi/message/merge_data.rb
57
54
  - lib/socketlabs/injectionapi/message/message_base.rb
55
+ - lib/socketlabs/injectionapi/message/metadata.rb
58
56
  - lib/socketlabs/injectionapi/proxy.rb
59
57
  - lib/socketlabs/injectionapi/retrysettings.rb
60
58
  - lib/socketlabs/injectionapi/send_response.rb
@@ -66,7 +64,7 @@ homepage: https://github.com/socketlabs/socketlabs-ruby
66
64
  licenses:
67
65
  - MIT
68
66
  metadata: {}
69
- post_install_message:
67
+ post_install_message:
70
68
  rdoc_options: []
71
69
  require_paths:
72
70
  - lib
@@ -74,15 +72,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
74
72
  requirements:
75
73
  - - ">="
76
74
  - !ruby/object:Gem::Version
77
- version: '2.4'
75
+ version: 3.1.2
78
76
  required_rubygems_version: !ruby/object:Gem::Requirement
79
77
  requirements:
80
78
  - - ">="
81
79
  - !ruby/object:Gem::Version
82
80
  version: '0'
83
81
  requirements: []
84
- rubygems_version: 3.0.3
85
- signing_key:
82
+ rubygems_version: 3.3.7
83
+ signing_key:
86
84
  specification_version: 4
87
85
  summary: SocketLabs Injection Api
88
86
  test_files: []
@@ -1,7 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
- <inspection_tool class="RubyTooManyInstanceVariablesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
6
- </profile>
7
- </component>
data/.idea/misc.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="JavaScriptSettings">
4
- <option name="languageLevel" value="ES6" />
5
- </component>
6
- <component name="ProjectRootManager" version="2" project-jdk-name="ruby-2.2.6-p396" project-jdk-type="RUBY_SDK" />
7
- </project>
data/.idea/modules.xml DELETED
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/socketlabs-ruby.iml" filepath="$PROJECT_DIR$/.idea/socketlabs-ruby.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,12 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="RUBY_MODULE" version="4">
3
- <component name="ModuleRunConfigurationManager">
4
- <shared />
5
- </component>
6
- <component name="NewModuleRootManager">
7
- <content url="file://$MODULE_DIR$" />
8
- <orderEntry type="jdk" jdkName="ruby-2.6.6-p146" jdkType="RUBY_SDK" />
9
- <orderEntry type="sourceFolder" forTests="false" />
10
- <orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.4, ruby-2.6.6-p146) [gem]" level="application" />
11
- </component>
12
- </module>
data/.idea/vcs.xml DELETED
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- <mapping directory="$PROJECT_DIR$/socketlabs-injectionapi-1.0.0" vcs="Git" />
6
- </component>
7
- </project>
data/.idea/workspace.xml DELETED
@@ -1,417 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AnalysisUIOptions">
4
- <option name="SCOPE_TYPE" value="3" />
5
- </component>
6
- <component name="ChangeListManager">
7
- <list default="true" id="85d88e06-b233-47b5-8542-3cede01dcf1c" name="Default Changelist" comment="">
8
- <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
9
- <change beforePath="$PROJECT_DIR$/README.MD" beforeDir="false" afterPath="$PROJECT_DIR$/README.MD" afterDir="false" />
10
- <change beforePath="$PROJECT_DIR$/gemfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gemfile.lock" afterDir="false" />
11
- <change beforePath="$PROJECT_DIR$/lib/socketlabs/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/socketlabs/version.rb" afterDir="false" />
12
- </list>
13
- <option name="SHOW_DIALOG" value="false" />
14
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
15
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
16
- <option name="LAST_RESOLUTION" value="IGNORE" />
17
- </component>
18
- <component name="CoverageDataManager">
19
- <SUITE FILE_PATH="coverage/socketlabs_ruby@test.rcov" NAME="basic_send_complex Coverage Results" MODIFIED="1579119951554" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
20
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send_complex.rcov" NAME="bulk_send_complex Coverage Results" MODIFIED="1579527705705" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
21
- </component>
22
- <component name="FileTemplateManagerImpl">
23
- <option name="RECENT_TEMPLATES">
24
- <list>
25
- <option value="Ruby Module Template" />
26
- <option value="Ruby Class Template" />
27
- <option value="Ruby Class" />
28
- <option value="Ruby File" />
29
- </list>
30
- </option>
31
- </component>
32
- <component name="Git.Settings">
33
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
34
- </component>
35
- <component name="JsFlowSettings">
36
- <service-enabled>true</service-enabled>
37
- <exe-path />
38
- <other-services-enabled>true</other-services-enabled>
39
- <auto-save>true</auto-save>
40
- </component>
41
- <component name="ProjectId" id="1Wf8exPEJ9I7WRFA1Z68UdLNPKa" />
42
- <component name="ProjectInspectionProfilesVisibleTreeState">
43
- <entry key="Project Default">
44
- <profile-state>
45
- <expanded-state>
46
- <State />
47
- <State>
48
- <id>Ruby</id>
49
- </State>
50
- </expanded-state>
51
- <selected-state>
52
- <State>
53
- <id>RubyDeadCode</id>
54
- </State>
55
- </selected-state>
56
- </profile-state>
57
- </entry>
58
- </component>
59
- <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
60
- <component name="ProjectViewState">
61
- <option name="hideEmptyMiddlePackages" value="true" />
62
- <option name="showLibraryContents" value="true" />
63
- </component>
64
- <component name="PropertiesComponent">
65
- <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
66
- <property name="WebServerToolWindowFactoryState" value="false" />
67
- <property name="last_opened_file_path" value="$PROJECT_DIR$/examples/bulk" />
68
- <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
69
- </component>
70
- <component name="RecentsManager">
71
- <key name="MoveFile.RECENT_KEYS">
72
- <recent name="C:\Projects\socketlabs-ruby\examples\basic" />
73
- <recent name="C:\Projects\socketlabs-ruby\lib" />
74
- <recent name="C:\Projects\socketlabs-ruby\socketlabs\injectionapi" />
75
- <recent name="C:\Projects\socketlabs-ruby" />
76
- <recent name="C:\Projects\socketlabs-ruby\socketlabs\injectionapi\message" />
77
- </key>
78
- <key name="CopyFile.RECENT_KEYS">
79
- <recent name="C:\Projects\forks\socketlabs-ruby\examples\bulk" />
80
- <recent name="C:\Projects\socketlabs-ruby\examples\bulk" />
81
- <recent name="C:\Projects\socketlabs-ruby\examples" />
82
- <recent name="C:\Projects\socketlabs-ruby\socketlabs\injectionapi" />
83
- <recent name="C:\Projects\socketlabs-ruby\socketlabs\injectionapi\message" />
84
- </key>
85
- </component>
86
- <component name="RunAnythingCache">
87
- <option name="a">
88
- <command value="gem install bundler" />
89
- <command value="bundle Install" />
90
- <command value="gem install ruby_http_client" />
91
- </option>
92
- </component>
93
- <component name="RunManager" selected="Ruby.example_code">
94
- <configuration name="basic_send" type="RubyRunConfigurationType" factoryName="Ruby">
95
- <module name="socketlabs-ruby" />
96
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
97
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
98
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
99
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
100
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
101
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
102
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
103
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
104
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send.rb" />
105
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
106
- <method v="2" />
107
- </configuration>
108
- <configuration name="basic_send_complex" type="RubyRunConfigurationType" factoryName="Ruby">
109
- <module name="socketlabs-ruby" />
110
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
111
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
112
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
113
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="ruby-2.2.6-p396" />
114
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
115
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
116
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
117
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
118
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_complex.rb" />
119
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
120
- <method v="2" />
121
- </configuration>
122
- <configuration name="basic_send_from_html_file" type="RubyRunConfigurationType" factoryName="Ruby">
123
- <module name="socketlabs-ruby" />
124
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
125
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
126
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
127
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
128
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
129
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
130
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
131
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
132
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_from_html_file.rb" />
133
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
134
- <method v="2" />
135
- </configuration>
136
- <configuration name="basic_send_with_api_template" type="RubyRunConfigurationType" factoryName="Ruby">
137
- <module name="socketlabs-ruby" />
138
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
139
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
140
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
141
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
142
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
143
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
144
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
145
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
146
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_api_template.rb" />
147
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
148
- <method v="2" />
149
- </configuration>
150
- <configuration name="basic_send_with_ascii_charset" type="RubyRunConfigurationType" factoryName="Ruby">
151
- <module name="socketlabs-ruby" />
152
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
153
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
154
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
155
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
156
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
157
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
158
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
159
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
160
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_ascii_charset.rb" />
161
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
162
- <method v="2" />
163
- </configuration>
164
- <configuration name="basic_send_with_attachment" type="RubyRunConfigurationType" factoryName="Ruby">
165
- <module name="socketlabs-ruby" />
166
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
167
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
168
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
169
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
170
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
171
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
172
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
173
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
174
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_attachment.rb" />
175
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
176
- <method v="2" />
177
- </configuration>
178
- <configuration name="basic_send_with_custom_headers" type="RubyRunConfigurationType" factoryName="Ruby">
179
- <module name="socketlabs-ruby" />
180
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
181
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
182
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
183
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
184
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
185
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
186
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
187
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
188
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_custom_headers.rb" />
189
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
190
- <method v="2" />
191
- </configuration>
192
- <configuration name="basic_send_with_embedded_image" type="RubyRunConfigurationType" factoryName="Ruby">
193
- <module name="socketlabs-ruby" />
194
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
195
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
196
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
197
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
198
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
199
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
200
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
201
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
202
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_embedded_image.rb" />
203
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
204
- <method v="2" />
205
- </configuration>
206
- <configuration name="basic_send_with_proxy" type="RubyRunConfigurationType" factoryName="Ruby">
207
- <module name="socketlabs-ruby" />
208
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
209
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/basic" />
210
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
211
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
212
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
213
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
214
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
215
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
216
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/basic/basic_send_with_proxy.rb" />
217
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
218
- <method v="2" />
219
- </configuration>
220
- <configuration name="bulk_send" type="RubyRunConfigurationType" factoryName="Ruby">
221
- <module name="socketlabs-ruby" />
222
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
223
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
224
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
225
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
226
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
227
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
228
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
229
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
230
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/bulk/bulk_send.rb" />
231
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
232
- <method v="2" />
233
- </configuration>
234
- <configuration name="bulk_send_complex" type="RubyRunConfigurationType" factoryName="Ruby">
235
- <module name="socketlabs-ruby" />
236
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
237
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
238
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
239
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
240
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
241
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
242
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
243
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
244
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/bulk/bulk_send_complex.rb" />
245
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
246
- <method v="2" />
247
- </configuration>
248
- <configuration name="bulk_send_from_data_source_with_merge_data" type="RubyRunConfigurationType" factoryName="Ruby">
249
- <module name="socketlabs-ruby" />
250
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
251
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
252
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
253
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
254
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
255
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
256
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
257
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
258
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/bulk/bulk_send_from_data_source_with_merge_data.rb" />
259
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
260
- <method v="2" />
261
- </configuration>
262
- <configuration name="bulk_send_with_ascii_charset_merge_data" type="RubyRunConfigurationType" factoryName="Ruby">
263
- <module name="socketlabs-ruby" />
264
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
265
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
266
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
267
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
268
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
269
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
270
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
271
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
272
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/bulk/bulk_send_with_ascii_charset_merge_data.rb" />
273
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
274
- <method v="2" />
275
- </configuration>
276
- <configuration name="bulk_send_with_merge_data" type="RubyRunConfigurationType" factoryName="Ruby">
277
- <module name="socketlabs-ruby" />
278
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
279
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
280
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
281
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
282
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
283
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
284
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
285
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
286
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/bulk/bulk_send_with_merge_data.rb" />
287
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
288
- <method v="2" />
289
- </configuration>
290
- <configuration name="example_code" type="RubyRunConfigurationType" factoryName="Ruby">
291
- <module name="socketlabs-ruby" />
292
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="" />
293
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/examples/bulk/" />
294
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
295
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
296
- <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
297
- <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
298
- <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
299
- <EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov" />
300
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/examples/example_code.rb" />
301
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
302
- <method v="2" />
303
- </configuration>
304
- <list>
305
- <item itemvalue="Ruby.basic_send" />
306
- <item itemvalue="Ruby.basic_send_complex" />
307
- <item itemvalue="Ruby.basic_send_from_html_file" />
308
- <item itemvalue="Ruby.basic_send_with_api_template" />
309
- <item itemvalue="Ruby.basic_send_with_ascii_charset" />
310
- <item itemvalue="Ruby.basic_send_with_attachment" />
311
- <item itemvalue="Ruby.basic_send_with_custom_headers" />
312
- <item itemvalue="Ruby.basic_send_with_embedded_image" />
313
- <item itemvalue="Ruby.basic_send_with_proxy" />
314
- <item itemvalue="Ruby.bulk_send" />
315
- <item itemvalue="Ruby.bulk_send_complex" />
316
- <item itemvalue="Ruby.bulk_send_from_data_source_with_merge_data" />
317
- <item itemvalue="Ruby.bulk_send_with_ascii_charset_merge_data" />
318
- <item itemvalue="Ruby.bulk_send_with_merge_data" />
319
- <item itemvalue="Ruby.example_code" />
320
- </list>
321
- </component>
322
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
323
- <component name="SpringUtil" SPRING_PRE_LOADER_OPTION="true" RAKE_SPRING_PRE_LOADER_OPTION="false" RAILS_SPRING_PRE_LOADER_OPTION="false" />
324
- <component name="TaskManager">
325
- <task active="true" id="Default" summary="Default task">
326
- <changelist id="85d88e06-b233-47b5-8542-3cede01dcf1c" name="Default Changelist" comment="" />
327
- <created>1542655219702</created>
328
- <option name="number" value="Default" />
329
- <option name="presentableId" value="Default" />
330
- <updated>1542655219702</updated>
331
- <workItem from="1542655222310" duration="2395000" />
332
- <workItem from="1542722401180" duration="4463000" />
333
- <workItem from="1542728668440" duration="1492000" />
334
- <workItem from="1543247220874" duration="99000" />
335
- <workItem from="1543248671163" duration="161000" />
336
- <workItem from="1543248868852" duration="779000" />
337
- <workItem from="1543260358909" duration="434000" />
338
- <workItem from="1543260814560" duration="358000" />
339
- <workItem from="1543261194383" duration="13477000" />
340
- <workItem from="1543338710473" duration="1391000" />
341
- <workItem from="1543432311090" duration="598000" />
342
- <workItem from="1561659329172" duration="107000" />
343
- <workItem from="1577987118187" duration="1631000" />
344
- <workItem from="1577995758496" duration="15836000" />
345
- <workItem from="1578319256496" duration="906000" />
346
- <workItem from="1578424576814" duration="24144000" />
347
- <workItem from="1578583612651" duration="21557000" />
348
- <workItem from="1579285524030" duration="11653000" />
349
- <workItem from="1579527438339" duration="228000" />
350
- <workItem from="1579529396526" duration="17580000" />
351
- <workItem from="1579786700388" duration="35630000" />
352
- <workItem from="1580318657330" duration="17000" />
353
- <workItem from="1596209797155" duration="13791000" />
354
- <workItem from="1596561671262" duration="3442000" />
355
- <workItem from="1596570240506" duration="4367000" />
356
- </task>
357
- <servers />
358
- </component>
359
- <component name="TypeScriptGeneratedFilesManager">
360
- <option name="version" value="3" />
361
- </component>
362
- <component name="Vcs.Log.Tabs.Properties">
363
- <option name="oldMeFiltersMigrated" value="true" />
364
- </component>
365
- <component name="WindowStateProjectService">
366
- <state width="1493" height="160" key="GridCell.Tab.0.bottom" timestamp="1596574157638">
367
- <screen x="0" y="0" width="1536" height="824" />
368
- </state>
369
- <state width="1493" height="160" key="GridCell.Tab.0.bottom/0.0.1536.824@0.0.1536.824" timestamp="1596574157638" />
370
- <state width="1493" height="160" key="GridCell.Tab.0.center" timestamp="1596574157638">
371
- <screen x="0" y="0" width="1536" height="824" />
372
- </state>
373
- <state width="1493" height="160" key="GridCell.Tab.0.center/0.0.1536.824@0.0.1536.824" timestamp="1596574157638" />
374
- <state width="1493" height="160" key="GridCell.Tab.0.left" timestamp="1596574157638">
375
- <screen x="0" y="0" width="1536" height="824" />
376
- </state>
377
- <state width="1493" height="160" key="GridCell.Tab.0.left/0.0.1536.824@0.0.1536.824" timestamp="1596574157638" />
378
- <state width="1493" height="160" key="GridCell.Tab.0.right" timestamp="1596574157638">
379
- <screen x="0" y="0" width="1536" height="824" />
380
- </state>
381
- <state width="1493" height="160" key="GridCell.Tab.0.right/0.0.1536.824@0.0.1536.824" timestamp="1596574157638" />
382
- <state x="278" y="58" key="SettingsEditor" timestamp="1596568157811">
383
- <screen x="0" y="0" width="1536" height="824" />
384
- </state>
385
- <state x="278" y="58" key="SettingsEditor/0.0.1536.824@0.0.1536.824" timestamp="1596568157811" />
386
- <state x="222" y="11" width="1116" height="801" key="find.popup" timestamp="1596633144560">
387
- <screen x="0" y="0" width="1536" height="824" />
388
- </state>
389
- <state x="222" y="11" width="1116" height="801" key="find.popup/0.0.1536.824@0.0.1536.824" timestamp="1596633144560" />
390
- </component>
391
- <component name="XDebuggerManager">
392
- <watches-manager>
393
- <configuration name="RubyRunConfigurationType">
394
- <watch expression="@body" />
395
- <watch expression="value" />
396
- </configuration>
397
- </watches-manager>
398
- </component>
399
- <component name="com.intellij.coverage.CoverageDataManagerImpl">
400
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_ascii_charset.rcov" NAME="basic_send_with_ascii_charset Coverage Results" MODIFIED="1580218384809" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
401
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_attachment.rcov" NAME="basic_send_with_attachment Coverage Results" MODIFIED="1579790742609" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
402
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_amp_body.rcov" NAME="basic_send_with_amp_body Coverage Results" MODIFIED="1598377002712" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
403
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send_from_data_source_with_merge_data.rcov" NAME="bulk_send_from_data_source_with_merge_data Coverage Results" MODIFIED="1580218138668" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
404
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_complex.rcov" NAME="basic_send_complex Coverage Results" MODIFIED="1579791684895" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
405
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send_with_merge_data.rcov" NAME="bulk_send_with_merge_data Coverage Results" MODIFIED="1580218838740" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
406
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_custom_headers.rcov" NAME="basic_send_with_custom_headers Coverage Results" MODIFIED="1579790723504" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
407
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_embedded_image.rcov" NAME="basic_send_with_embedded_image Coverage Results" MODIFIED="1579790668047" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
408
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send.rcov" NAME="basic_send Coverage Results" MODIFIED="1579800210587" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
409
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_api_template.rcov" NAME="basic_send_with_api_template Coverage Results" MODIFIED="1579790803165" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
410
- <SUITE FILE_PATH="coverage/socketlabs_ruby@example_code.rcov" NAME="example_code Coverage Results" MODIFIED="1618319668269" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
411
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send.rcov" NAME="bulk_send Coverage Results" MODIFIED="1580217378528" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
412
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send_with_ascii_charset_merge_data.rcov" NAME="bulk_send_with_ascii_charset_merge_data Coverage Results" MODIFIED="1580218733739" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
413
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_from_html_file.rcov" NAME="basic_send_from_html_file Coverage Results" MODIFIED="1579791581439" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
414
- <SUITE FILE_PATH="coverage/socketlabs_ruby@bulk_send_complex.rcov" NAME="bulk_send_complex Coverage Results" MODIFIED="1579800706226" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/bulk/" MODULE_NAME="socketlabs-ruby" />
415
- <SUITE FILE_PATH="coverage/socketlabs_ruby@basic_send_with_proxy.rcov" NAME="basic_send_with_proxy Coverage Results" MODIFIED="1579800569525" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/examples/basic" MODULE_NAME="socketlabs-ruby" />
416
- </component>
417
- </project>