sendgrid-ruby 6.0.0 → 6.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +1 -1
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +8 -0
  5. data/.rubocop_todo.yml +111 -0
  6. data/.travis.yml +26 -25
  7. data/CHANGELOG.md +185 -10
  8. data/CODE_OF_CONDUCT.md +57 -25
  9. data/CONTRIBUTING.md +11 -23
  10. data/Dockerfile +14 -0
  11. data/FIRST_TIMERS.md +79 -0
  12. data/Gemfile +0 -1
  13. data/ISSUE_TEMPLATE.md +30 -0
  14. data/LICENSE +21 -0
  15. data/Makefile +15 -0
  16. data/PULL_REQUEST_TEMPLATE.md +31 -0
  17. data/README.md +28 -37
  18. data/Rakefile +2 -3
  19. data/TROUBLESHOOTING.md +9 -7
  20. data/USAGE.md +146 -39
  21. data/examples/accesssettings/accesssettings.rb +9 -12
  22. data/examples/alerts/alerts.rb +8 -11
  23. data/examples/apikeys/apikeys.rb +12 -15
  24. data/examples/asm/asm.rb +27 -30
  25. data/examples/browsers/browsers.rb +0 -3
  26. data/examples/campaigns/campaigns.rb +29 -32
  27. data/examples/categories/categories.rb +0 -3
  28. data/examples/clients/clients.rb +1 -4
  29. data/examples/contactdb/contactdb.rb +63 -66
  30. data/examples/devices/devices.rb +0 -3
  31. data/examples/emailactivity/emailactivity.rb +52 -0
  32. data/examples/geo/geo.rb +0 -3
  33. data/examples/helpers/eventwebhook/example.rb +16 -0
  34. data/examples/helpers/mail/example.rb +19 -13
  35. data/examples/helpers/settings/example.rb +1 -1
  36. data/examples/helpers/stats/example.rb +4 -4
  37. data/examples/ips/ips.rb +19 -22
  38. data/examples/mail/mail.rb +72 -75
  39. data/examples/mailboxproviders/mailboxproviders.rb +0 -3
  40. data/examples/mailsettings/mailsettings.rb +21 -24
  41. data/examples/partnersettings/partnersettings.rb +3 -6
  42. data/examples/scopes/scopes.rb +8 -10
  43. data/examples/senderauthentication/senderauthentication.rb +41 -44
  44. data/examples/senders/senders.rb +28 -31
  45. data/examples/stats/stats.rb +0 -3
  46. data/examples/subusers/subusers.rb +17 -20
  47. data/examples/suppression/suppression.rb +15 -18
  48. data/examples/templates/templates.rb +29 -31
  49. data/examples/trackingsettings/trackingsettings.rb +14 -17
  50. data/examples/user/user.rb +41 -44
  51. data/lib/rack/sendgrid_webhook_verification.rb +55 -0
  52. data/lib/sendgrid-ruby.rb +5 -1
  53. data/lib/sendgrid/base_interface.rb +40 -0
  54. data/lib/sendgrid/helpers/eventwebhook/eventwebhook.rb +50 -0
  55. data/lib/sendgrid/helpers/inbound/README.md +5 -5
  56. data/lib/sendgrid/helpers/inbound/app.rb +2 -2
  57. data/lib/sendgrid/helpers/inbound/public/index.html +1 -1
  58. data/lib/sendgrid/helpers/inbound/send.rb +3 -3
  59. data/lib/sendgrid/helpers/ip_management/ip_management.rb +1 -1
  60. data/lib/sendgrid/helpers/mail/README.md +3 -3
  61. data/lib/sendgrid/helpers/mail/asm.rb +4 -18
  62. data/lib/sendgrid/helpers/mail/attachment.rb +12 -43
  63. data/lib/sendgrid/helpers/mail/bcc_settings.rb +4 -18
  64. data/lib/sendgrid/helpers/mail/bypass_list_management.rb +6 -18
  65. data/lib/sendgrid/helpers/mail/category.rb +2 -4
  66. data/lib/sendgrid/helpers/mail/click_tracking.rb +4 -18
  67. data/lib/sendgrid/helpers/mail/content.rb +2 -3
  68. data/lib/sendgrid/helpers/mail/custom_arg.rb +4 -10
  69. data/lib/sendgrid/helpers/mail/email.rb +8 -5
  70. data/lib/sendgrid/helpers/mail/footer.rb +5 -27
  71. data/lib/sendgrid/helpers/mail/ganalytics.rb +9 -55
  72. data/lib/sendgrid/helpers/mail/header.rb +4 -10
  73. data/lib/sendgrid/helpers/mail/mail.rb +30 -48
  74. data/lib/sendgrid/helpers/mail/mail_settings.rb +7 -25
  75. data/lib/sendgrid/helpers/mail/open_tracking.rb +4 -18
  76. data/lib/sendgrid/helpers/mail/personalization.rb +32 -27
  77. data/lib/sendgrid/helpers/mail/section.rb +4 -10
  78. data/lib/sendgrid/helpers/mail/spam_check.rb +5 -27
  79. data/lib/sendgrid/helpers/mail/subscription_tracking.rb +6 -36
  80. data/lib/sendgrid/helpers/mail/substitution.rb +4 -10
  81. data/lib/sendgrid/helpers/mail/tracking_settings.rb +6 -20
  82. data/lib/sendgrid/helpers/permissions/scope.rb +2 -2
  83. data/lib/sendgrid/helpers/settings/README.md +2 -2
  84. data/lib/sendgrid/helpers/settings/settings.rb +1 -1
  85. data/lib/sendgrid/helpers/settings/tracking_settings_dto.rb +3 -5
  86. data/lib/sendgrid/helpers/stats/metrics.rb +5 -7
  87. data/lib/sendgrid/helpers/stats/stats_response.rb +0 -2
  88. data/lib/sendgrid/sendgrid.rb +21 -0
  89. data/lib/sendgrid/twilio_email.rb +21 -0
  90. data/lib/sendgrid/version.rb +1 -1
  91. data/mail_helper_v3.md +12 -12
  92. data/sendgrid-ruby.gemspec +11 -10
  93. data/spec/fixtures/event_webhook.rb +22 -0
  94. data/spec/rack/sendgrid_webhook_verification_spec.rb +142 -0
  95. data/spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb +105 -0
  96. data/spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb +1 -1
  97. data/spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb +1 -1
  98. data/spec/sendgrid/helpers/settings/settings_spec.rb +2 -2
  99. data/spec/sendgrid/helpers/settings/tracking_settings_dto_spec.rb +1 -1
  100. data/spec/sendgrid/helpers/settings/user_settings_dto_spec.rb +1 -1
  101. data/spec/sendgrid/helpers/stats/email_stats_spec.rb +22 -23
  102. data/spec/sendgrid/helpers/stats/metrics_spec.rb +19 -20
  103. data/spec/sendgrid/helpers/stats/stats_response_spec.rb +22 -23
  104. data/spec/sendgrid/sendgrid_spec.rb +11 -0
  105. data/spec/sendgrid/twilio_email_spec.rb +11 -0
  106. data/spec/spec_helper.rb +3 -1
  107. data/static/img/github-fork.png +0 -0
  108. data/static/img/github-sign-up.png +0 -0
  109. data/test/sendgrid/helpers/mail/test_attachment.rb +4 -6
  110. data/test/sendgrid/helpers/mail/test_category.rb +0 -2
  111. data/test/sendgrid/helpers/mail/test_email.rb +17 -10
  112. data/test/sendgrid/helpers/mail/test_mail.rb +101 -102
  113. data/test/sendgrid/helpers/mail/test_personalizations.rb +133 -93
  114. data/test/sendgrid/permissions/test_scopes.rb +1 -3
  115. data/test/sendgrid/test_sendgrid-ruby.rb +1967 -1985
  116. data/twilio_sendgrid_logo.png +0 -0
  117. data/use-cases/README.md +16 -0
  118. data/use-cases/domain-authentication.md +5 -0
  119. data/use-cases/email-statistics.md +52 -0
  120. data/use-cases/legacy-templates.md +98 -0
  121. data/use-cases/sms.md +39 -0
  122. data/use-cases/transactional-templates.md +111 -0
  123. data/use-cases/twilio-email.md +13 -0
  124. data/use-cases/twilio-setup.md +54 -0
  125. metadata +88 -34
  126. data/.github/ISSUE_TEMPLATE +0 -17
  127. data/.github/PULL_REQUEST_TEMPLATE +0 -26
  128. data/LICENSE.txt +0 -22
  129. data/USE_CASES.md +0 -377
  130. data/docker/Dockerfile +0 -12
  131. data/docker/README.md +0 -30
  132. data/lib/sendgrid/client.rb +0 -38
  133. data/test/prism.sh +0 -42
@@ -17,7 +17,7 @@
17
17
  # Installation
18
18
 
19
19
  In addition to the installation instructions in
20
- [the main readme](https://github.com/sendgrid/sendgrid-ruby/tree/master/#installation),
20
+ [the main readme](../../../../README.md#installation),
21
21
  you must also add sinatra to your Gemfile:
22
22
 
23
23
  ```
@@ -47,7 +47,7 @@ bundle install
47
47
  ruby ./lib/sendgrid/helpers/inbound/send.rb ./lib/sendgrid/helpers/inbound/sample_data/default_data.txt
48
48
  ```
49
49
 
50
- More sample data can be found [here](https://github.com/sendgrid/sendgrid-ruby/tree/master/lib/sendgrid/helpers/inbound/sample_data).
50
+ More sample data can be found [here](sample_data).
51
51
 
52
52
  View the results in the first terminal.
53
53
 
@@ -82,11 +82,11 @@ Next, send an email to [anything]@inbound.yourdomain.com, then look at the termi
82
82
 
83
83
  ## app.rb
84
84
 
85
- This module runs a [Sinatra](http://www.sinatrarb.com/) server, that by default (you can change those settings [here](https://github.com/sendgrid/sendgrid-ruby/blob/master/sendgrid/helpers/inbound/config.yml)), listens for POSTs on http://localhost:9292. When the server receives the POST, it parses and prints the key/value data.
85
+ This module runs a [Sinatra](http://www.sinatrarb.com/) server, that by default (you can change those settings [here](config.yml)), listens for POSTs on http://localhost:9292. When the server receives the POST, it parses and prints the key/value data.
86
86
 
87
87
  ## config.yml
88
88
 
89
- This module loads application environment variables (located in [config.yml](https://github.com/sendgrid/sendgrid-ruby/blob/master/sendgrid/helpers/inbound/config.yml)).
89
+ This module loads application environment variables (located in [config.yml](config.yml)).
90
90
 
91
91
  ## send.rb & /sample_data
92
92
 
@@ -95,4 +95,4 @@ This module is used to send sample test data. It is useful for testing and devel
95
95
  <a name="contributing"></a>
96
96
  # Contributing
97
97
 
98
- If you would like to contribute to this project, please see our [contributing guide](https://github.com/sendgrid/sendgrid-ruby/blob/master/CONTRIBUTING.md). Thanks!
98
+ If you would like to contribute to this project, please see our [contributing guide](../../../../CONTRIBUTING.md). Thanks!
@@ -18,7 +18,7 @@ require 'yaml'
18
18
  class Main < Sinatra::Base
19
19
  configure :production, :development do
20
20
  enable :logging
21
- set :config, YAML.load_file(File.dirname(__FILE__) + '/config.yml')
21
+ set :config, YAML.load_file("#{File.dirname(__FILE__)}/config.yml")
22
22
  end
23
23
 
24
24
  get '/' do
@@ -26,7 +26,7 @@ class Main < Sinatra::Base
26
26
  end
27
27
 
28
28
  post settings.config['endpoint'] do
29
- filtered = params.select {|k, v| settings.config['keys'].include?(k)}
29
+ filtered = params.select { |k, _v| settings.config['keys'].include?(k) }
30
30
  logger.info JSON.pretty_generate(filtered)
31
31
  end
32
32
  end
@@ -5,6 +5,6 @@
5
5
  <body>
6
6
  <h1>You have successfuly launched the server!</h1>
7
7
 
8
- Check out <a href="https://github.com/sendgrid/sendgrid-ruby/tree/master/sendgrid/helpers/inbound">the documentation</a> on how to use this software to utilize the SendGrid Inbound Parse webhook.
8
+ Check out <a href="https://github.com/sendgrid/sendgrid-ruby/tree/HEAD/sendgrid/helpers/inbound">the documentation</a> on how to use this software to utilize the SendGrid Inbound Parse webhook.
9
9
  </body>
10
10
  </html>
@@ -4,11 +4,11 @@ require 'ruby_http_client'
4
4
  require 'yaml'
5
5
  require 'optparse'
6
6
 
7
- OPTS = {}
7
+ OPTS = {}.freeze
8
8
  opt = OptionParser.new
9
- opt.on('--host=HOST') {|v| OPTS[:host] = v}
9
+ opt.on('--host=HOST') { |v| OPTS[:host] = v }
10
10
  argv = opt.parse!(ARGV)
11
- config = YAML.load_file(File.dirname(__FILE__) + '/config.yml')
11
+ config = YAML.load_file("#{File.dirname(__FILE__)}/config.yml")
12
12
  host = OPTS[:host] || config['host']
13
13
  client = SendGrid::Client.new(host: host)
14
14
  File.open(argv[0]) do |file|
@@ -11,7 +11,7 @@ module SendGrid
11
11
  def unassigned
12
12
  response = @sendgrid_client.ips.get
13
13
  ips = JSON.parse(response.body)
14
- ips.select {|ip| ip.subusers.empty?}
14
+ ips.select { |ip| ip.subusers.empty? }
15
15
  end
16
16
  end
17
17
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Quick Start
4
4
 
5
- Run the [example](https://github.com/sendgrid/sendgrid-ruby/tree/master/examples/helpers/mail) (make sure you have set your environment variable to include your SENDGRID_API_KEY).
5
+ Run the [example](../../../../examples/helpers/mail) (make sure you have set your environment variable to include your SENDGRID_API_KEY).
6
6
 
7
7
  ```bash
8
8
  ruby examples/helpers/mail/example.rb
@@ -10,5 +10,5 @@ ruby examples/helpers/mail/example.rb
10
10
 
11
11
  ## Usage
12
12
 
13
- - See the [example](https://github.com/sendgrid/sendgrid-ruby/tree/master/examples/helpers/mail) for a complete working example.
14
- - [Documentation](https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/overview.html)
13
+ - See the [example](../../../../examples/helpers/mail) for a complete working example.
14
+ - [Documentation](https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html)
@@ -2,31 +2,17 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class ASM
5
+ attr_accessor :group_id, :groups_to_display
6
+
5
7
  def initialize(group_id: nil, groups_to_display: nil)
6
8
  @group_id = group_id
7
9
  @groups_to_display = groups_to_display
8
10
  end
9
11
 
10
- def group_id=(group_id)
11
- @group_id = group_id
12
- end
13
-
14
- def group_id
15
- @group_id
16
- end
17
-
18
- def groups_to_display=(groups_to_display)
19
- @groups_to_display = groups_to_display
20
- end
21
-
22
- def groups_to_display
23
- @groups_to_display
24
- end
25
-
26
12
  def to_json(*)
27
13
  {
28
- 'group_id' => self.group_id,
29
- 'groups_to_display' => self.groups_to_display
14
+ 'group_id' => group_id,
15
+ 'groups_to_display' => groups_to_display
30
16
  }.delete_if { |_, value| value.to_s.strip == '' }
31
17
  end
32
18
  end
@@ -1,8 +1,9 @@
1
- require 'json'
2
1
  require 'base64'
3
2
 
4
3
  module SendGrid
5
4
  class Attachment
5
+ attr_accessor :type, :filename, :disposition, :content_id
6
+
6
7
  def initialize
7
8
  @content = nil
8
9
  @type = nil
@@ -19,52 +20,20 @@ module SendGrid
19
20
  def content
20
21
  return @encoded_content if @encoded_content
21
22
 
22
- if @content.respond_to?(:read)
23
- @encoded_content = encode @content
24
- else
25
- @encoded_content = @content
26
- end
27
- end
28
-
29
- def type=(type)
30
- @type = type
31
- end
32
-
33
- def type
34
- @type
35
- end
36
-
37
- def filename=(filename)
38
- @filename = filename
39
- end
40
-
41
- def filename
42
- @filename
43
- end
44
-
45
- def disposition=(disposition)
46
- @disposition = disposition
47
- end
48
-
49
- def disposition
50
- @disposition
51
- end
52
-
53
- def content_id=(content_id)
54
- @content_id = content_id
55
- end
56
-
57
- def content_id
58
- @content_id
23
+ @encoded_content = if @content.respond_to?(:read)
24
+ encode @content
25
+ else
26
+ @content
27
+ end
59
28
  end
60
29
 
61
30
  def to_json(*)
62
31
  {
63
- 'content' => self.content,
64
- 'type' => self.type,
65
- 'filename' => self.filename,
66
- 'disposition' => self.disposition,
67
- 'content_id' => self.content_id
32
+ 'content' => content,
33
+ 'type' => type,
34
+ 'filename' => filename,
35
+ 'disposition' => disposition,
36
+ 'content_id' => content_id
68
37
  }.delete_if { |_, value| value.to_s.strip == '' }
69
38
  end
70
39
 
@@ -2,31 +2,17 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class BccSettings
5
+ attr_accessor :enable, :email
6
+
5
7
  def initialize(enable: nil, email: nil)
6
8
  @enable = enable
7
9
  @email = email
8
10
  end
9
11
 
10
- def enable=(enable)
11
- @enable = enable
12
- end
13
-
14
- def enable
15
- @enable
16
- end
17
-
18
- def email=(email)
19
- @email = email
20
- end
21
-
22
- def email
23
- @email
24
- end
25
-
26
12
  def to_json(*)
27
13
  {
28
- 'enable' => self.enable,
29
- 'email' => self.email
14
+ 'enable' => enable,
15
+ 'email' => email
30
16
  }.delete_if { |_, value| value.to_s.strip == '' }
31
17
  end
32
18
  end
@@ -2,41 +2,29 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class BypassListManagement
5
- def initialize(enable: nil)
6
- @enable = enable
7
- end
5
+ attr_accessor :enable
8
6
 
9
- def enable=(enable)
7
+ def initialize(enable: nil)
10
8
  @enable = enable
11
9
  end
12
10
 
13
- def enable
14
- @enable
15
- end
16
-
17
11
  def to_json(*)
18
12
  {
19
- 'enable' => self.enable
13
+ 'enable' => enable
20
14
  }.delete_if { |_, value| value.to_s.strip == '' }
21
15
  end
22
16
  end
23
17
 
24
18
  class SandBoxMode
25
- def initialize(enable: nil)
26
- @enable = enable
27
- end
19
+ attr_accessor :enable
28
20
 
29
- def enable=(enable)
21
+ def initialize(enable: nil)
30
22
  @enable = enable
31
23
  end
32
24
 
33
- def enable
34
- @enable
35
- end
36
-
37
25
  def to_json(*)
38
26
  {
39
- 'enable' => self.enable
27
+ 'enable' => enable
40
28
  }.delete_if { |_, value| value.to_s.strip == '' }
41
29
  end
42
30
  end
@@ -1,5 +1,3 @@
1
- require 'json'
2
-
3
1
  module SendGrid
4
2
  class Category
5
3
  attr_accessor :name
@@ -14,7 +12,7 @@ module SendGrid
14
12
  }.delete_if { |_, value| value.to_s.strip == '' }
15
13
  end
16
14
 
17
- alias :category :name
18
- alias :category= :name=
15
+ alias category name
16
+ alias category= name=
19
17
  end
20
18
  end
@@ -2,31 +2,17 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class ClickTracking
5
+ attr_accessor :enable, :enable_text
6
+
5
7
  def initialize(enable: nil, enable_text: nil)
6
8
  @enable = enable
7
9
  @enable_text = enable_text
8
10
  end
9
11
 
10
- def enable=(enable)
11
- @enable = enable
12
- end
13
-
14
- def enable
15
- @enable
16
- end
17
-
18
- def enable_text=(enable_text)
19
- @enable_text = enable_text
20
- end
21
-
22
- def enable_text
23
- @enable_text
24
- end
25
-
26
12
  def to_json(*)
27
13
  {
28
- 'enable' => self.enable,
29
- 'enable_text' => self.enable_text
14
+ 'enable' => enable,
15
+ 'enable_text' => enable_text
30
16
  }.delete_if { |_, value| value.to_s.strip == '' }
31
17
  end
32
18
  end
@@ -2,7 +2,6 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class Content
5
-
6
5
  attr_accessor :type, :value
7
6
 
8
7
  def initialize(type: nil, value: nil)
@@ -12,8 +11,8 @@ module SendGrid
12
11
 
13
12
  def to_json(*)
14
13
  {
15
- 'type' => self.type,
16
- 'value' => self.value
14
+ 'type' => type,
15
+ 'value' => value
17
16
  }.delete_if { |_, value| value.to_s.strip == '' }
18
17
  end
19
18
  end
@@ -2,22 +2,16 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class CustomArg
5
+ attr_accessor :custom_arg
6
+
5
7
  def initialize(key: nil, value: nil)
6
8
  @custom_arg = {}
7
- (key.nil? || value.nil?) ? @custom_arg = nil : @custom_arg[key.to_s] = value.to_s
8
- end
9
-
10
- def custom_arg=(custom_arg)
11
- @custom_arg = custom_arg
12
- end
13
-
14
- def custom_arg
15
- @custom_arg
9
+ key.nil? || value.nil? ? @custom_arg = nil : @custom_arg[key.to_s] = value.to_s
16
10
  end
17
11
 
18
12
  def to_json(*)
19
13
  {
20
- 'custom_arg' => self.custom_arg
14
+ 'custom_arg' => custom_arg
21
15
  }.delete_if { |_, value| value.to_s.strip == '' }
22
16
  end
23
17
  end
@@ -2,10 +2,11 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class Email
5
-
6
5
  attr_accessor :email, :name
7
6
 
8
- def initialize(email: nil, name: nil)
7
+ # @param [String] email required e-mail address
8
+ # @param [String] name optionally personification
9
+ def initialize(email:, name: nil)
9
10
  if name
10
11
  @email = email
11
12
  @name = name
@@ -16,13 +17,15 @@ module SendGrid
16
17
 
17
18
  def split_email(email)
18
19
  split = /(?:(?<address>.+)\s)?<?(?<email>.+@[^>]+)>?/.match(email)
19
- return split[:email], split[:address]
20
+ raise ArgumentError, "email (#{email}) is invalid" unless split
21
+
22
+ [split[:email], split[:address]]
20
23
  end
21
24
 
22
25
  def to_json(*)
23
26
  {
24
- 'email' => self.email,
25
- 'name' => self.name
27
+ 'email' => email,
28
+ 'name' => name
26
29
  }.delete_if { |_, value| value.to_s.strip == '' }
27
30
  end
28
31
  end
@@ -2,41 +2,19 @@ require 'json'
2
2
 
3
3
  module SendGrid
4
4
  class Footer
5
- def initialize(enable: nil, text: nil, html: nil)
6
- @enable = enable
7
- @text = text
8
- @html = html
9
- end
5
+ attr_accessor :enable, :text, :html
10
6
 
11
- def enable=(enable)
7
+ def initialize(enable: nil, text: nil, html: nil)
12
8
  @enable = enable
13
- end
14
-
15
- def enable
16
- @enable
17
- end
18
-
19
- def text=(text)
20
9
  @text = text
21
- end
22
-
23
- def text
24
- @text
25
- end
26
-
27
- def html=(html)
28
10
  @html = html
29
11
  end
30
12
 
31
- def html
32
- @html
33
- end
34
-
35
13
  def to_json(*)
36
14
  {
37
- 'enable' => self.enable,
38
- 'text' => self.text,
39
- 'html' => self.html
15
+ 'enable' => enable,
16
+ 'text' => text,
17
+ 'html' => html
40
18
  }.delete_if { |_, value| value.to_s.strip == '' }
41
19
  end
42
20
  end