sendgrid-ruby 6.0.0 → 6.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.
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