whatsapp_sdk 0.12.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql-analysis.yml +8 -6
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +0 -3
  5. data/CHANGELOG.md +9 -7
  6. data/Gemfile +0 -4
  7. data/Gemfile.lock +1 -20
  8. data/README.md +35 -55
  9. data/SECURITY.md +21 -0
  10. data/example.rb +23 -15
  11. data/lib/whatsapp_sdk/api/api_configuration.rb +2 -5
  12. data/lib/whatsapp_sdk/api/business_profile.rb +0 -12
  13. data/lib/whatsapp_sdk/api/client.rb +7 -43
  14. data/lib/whatsapp_sdk/api/medias.rb +8 -15
  15. data/lib/whatsapp_sdk/api/messages.rb +4 -81
  16. data/lib/whatsapp_sdk/api/phone_numbers.rb +0 -14
  17. data/lib/whatsapp_sdk/api/request.rb +0 -2
  18. data/lib/whatsapp_sdk/api/response.rb +1 -20
  19. data/lib/whatsapp_sdk/api/responses/business_profile_data_response.rb +11 -34
  20. data/lib/whatsapp_sdk/api/responses/data_response.rb +0 -9
  21. data/lib/whatsapp_sdk/api/responses/error_response.rb +1 -8
  22. data/lib/whatsapp_sdk/api/responses/generic_error_response.rb +8 -26
  23. data/lib/whatsapp_sdk/api/responses/media_data_response.rb +8 -26
  24. data/lib/whatsapp_sdk/api/responses/message_data_response.rb +4 -20
  25. data/lib/whatsapp_sdk/api/responses/message_error_response.rb +0 -1
  26. data/lib/whatsapp_sdk/api/responses/message_template_namespace_data_response.rb +3 -13
  27. data/lib/whatsapp_sdk/api/responses/phone_number_data_response.rb +19 -37
  28. data/lib/whatsapp_sdk/api/responses/phone_numbers_data_response.rb +2 -9
  29. data/lib/whatsapp_sdk/api/responses/read_message_data_response.rb +1 -6
  30. data/lib/whatsapp_sdk/api/responses/success_response.rb +1 -5
  31. data/lib/whatsapp_sdk/api/responses/template_data_response.rb +2 -7
  32. data/lib/whatsapp_sdk/api/responses/templates_data_response.rb +2 -9
  33. data/lib/whatsapp_sdk/api/templates.rb +3 -27
  34. data/lib/whatsapp_sdk/configuration.rb +2 -24
  35. data/lib/whatsapp_sdk/error.rb +0 -1
  36. data/lib/whatsapp_sdk/resource/address.rb +1 -30
  37. data/lib/whatsapp_sdk/resource/address_type.rb +3 -8
  38. data/lib/whatsapp_sdk/resource/business_profile.rb +0 -3
  39. data/lib/whatsapp_sdk/resource/button_parameter.rb +4 -20
  40. data/lib/whatsapp_sdk/resource/component.rb +12 -43
  41. data/lib/whatsapp_sdk/resource/contact.rb +1 -30
  42. data/lib/whatsapp_sdk/resource/contact_response.rb +1 -9
  43. data/lib/whatsapp_sdk/resource/currency.rb +0 -8
  44. data/lib/whatsapp_sdk/resource/date_time.rb +0 -6
  45. data/lib/whatsapp_sdk/resource/email.rb +1 -10
  46. data/lib/whatsapp_sdk/resource/errors.rb +1 -17
  47. data/lib/whatsapp_sdk/resource/interactive.rb +6 -27
  48. data/lib/whatsapp_sdk/resource/interactive_action.rb +10 -24
  49. data/lib/whatsapp_sdk/resource/interactive_action_reply_button.rb +5 -19
  50. data/lib/whatsapp_sdk/resource/interactive_action_section.rb +1 -11
  51. data/lib/whatsapp_sdk/resource/interactive_action_section_row.rb +0 -11
  52. data/lib/whatsapp_sdk/resource/interactive_body.rb +0 -10
  53. data/lib/whatsapp_sdk/resource/interactive_footer.rb +0 -10
  54. data/lib/whatsapp_sdk/resource/interactive_header.rb +25 -53
  55. data/lib/whatsapp_sdk/resource/location.rb +44 -0
  56. data/lib/whatsapp_sdk/resource/media.rb +10 -46
  57. data/lib/whatsapp_sdk/resource/media_types.rb +0 -3
  58. data/lib/whatsapp_sdk/resource/message.rb +0 -5
  59. data/lib/whatsapp_sdk/resource/name.rb +1 -28
  60. data/lib/whatsapp_sdk/resource/org.rb +1 -13
  61. data/lib/whatsapp_sdk/resource/parameter_object.rb +71 -74
  62. data/lib/whatsapp_sdk/resource/phone_number.rb +1 -13
  63. data/lib/whatsapp_sdk/resource/template.rb +23 -36
  64. data/lib/whatsapp_sdk/resource/url.rb +1 -10
  65. data/lib/whatsapp_sdk/version.rb +1 -2
  66. data/lib/whatsapp_sdk.rb +0 -4
  67. data/whatsapp_sdk.gemspec +0 -3
  68. metadata +5 -49
  69. data/sorbet/config +0 -6
  70. data/sorbet/rbi/annotations/faraday.rbi +0 -17
  71. data/sorbet/rbi/annotations/mocha.rbi +0 -34
  72. data/sorbet/rbi/annotations/rainbow.rbi +0 -269
  73. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +0 -270
  74. data/sorbet/rbi/gems/faraday-net_http@2.0.3.rbi +0 -182
  75. data/sorbet/rbi/gems/faraday@2.3.0.rbi +0 -2494
  76. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -272
  77. data/sorbet/rbi/gems/minitest@5.16.1.rbi +0 -1459
  78. data/sorbet/rbi/gems/mocha@1.14.0.rbi +0 -60
  79. data/sorbet/rbi/gems/multipart-post@2.2.3.rbi +0 -239
  80. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -150
  81. data/sorbet/rbi/gems/oj@3.13.14.rbi +0 -589
  82. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +0 -867
  83. data/sorbet/rbi/todo.rbi +0 -8
  84. data/sorbet/shims/request.rbi +0 -10
  85. data/sorbet/tapioca/config.yml +0 -13
  86. data/sorbet/tapioca/require.rb +0 -4
@@ -1,56 +1,43 @@
1
- # typed: strict
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module WhatsappSdk
5
4
  module Resource
6
5
  class Template
7
- extend T::Sig
6
+ module Status
7
+ PENDING_DELETION = "PENDING_DELETION"
8
+ APPROVED = "APPROVED"
9
+ PENDING = "PENDING"
10
+ REJECTED = "REJECTED"
8
11
 
9
- sig { returns(String) }
10
- attr_accessor :id
12
+ STATUSES = [PENDING_DELETION, APPROVED, PENDING, REJECTED].freeze
11
13
 
12
- class Status < T::Enum
13
- extend T::Sig
14
+ def valid?(status)
15
+ STATUSES.include?(status)
16
+ end
14
17
 
15
- enums do
16
- PENDING_DELETION = new("PENDING_DELETION")
17
- APPROVED = new("APPROVED")
18
- PENDING = new("PENDING")
19
- REJECTED = new("REJECTED")
18
+ def serialize(status)
19
+ STATUSES.include?(status) ? status : nil
20
20
  end
21
21
  end
22
22
 
23
- sig { returns(Status) }
24
- attr_accessor :status
23
+ module Category
24
+ AUTHENTICATION = "AUTHENTICATION"
25
+ MARKETING = "MARKETING"
26
+ UTILITY = "UTILITY"
25
27
 
26
- class Category < T::Enum
27
- extend T::Sig
28
+ CATEGORIES = [AUTHENTICATION, MARKETING, UTILITY].freeze
28
29
 
29
- enums do
30
- AUTHENTICATION = new("AUTHENTICATION")
31
- MARKETING = new("MARKETING")
32
- UTILITY = new("UTILITY")
30
+ def self.valid?(category)
31
+ CATEGORIES.include?(category)
33
32
  end
34
- end
35
-
36
- sig { returns(Category) }
37
- attr_accessor :category
38
-
39
- sig { returns(T.nilable(String)) }
40
- attr_accessor :language
41
33
 
42
- sig { returns(T.nilable(String)) }
43
- attr_accessor :name
34
+ def self.serialize(category)
35
+ CATEGORIES.include?(category) ? category : nil
36
+ end
37
+ end
44
38
 
45
- sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
46
- attr_accessor :components_json
39
+ attr_accessor :id, :status, :category, :language, :name, :components_json
47
40
 
48
- sig do
49
- params(
50
- id: String, status: Status, category: Category, language: T.nilable(String), name: T.nilable(String),
51
- components_json: T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])
52
- ).void
53
- end
54
41
  def initialize(id:, status:, category:, language: nil, name: nil, components_json: nil)
55
42
  @id = id
56
43
  @status = status
@@ -1,24 +1,15 @@
1
- # typed: strict
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module WhatsappSdk
5
4
  module Resource
6
5
  class Url
7
- extend T::Sig
6
+ attr_accessor :url, :type
8
7
 
9
- sig { returns(String) }
10
- attr_accessor :url
11
-
12
- sig { returns(AddressType) }
13
- attr_accessor :type
14
-
15
- sig { params(url: String, type: AddressType).void }
16
8
  def initialize(url:, type:)
17
9
  @url = url
18
10
  @type = type
19
11
  end
20
12
 
21
- sig { returns(T::Hash[T.untyped, T.untyped]) }
22
13
  def to_h
23
14
  {
24
15
  url: @url,
@@ -1,6 +1,5 @@
1
- # typed: strict
2
1
  # frozen_string_literal: true
3
2
 
4
3
  module WhatsappSdk
5
- VERSION = "0.12.1"
4
+ VERSION = "0.13.0"
6
5
  end
data/lib/whatsapp_sdk.rb CHANGED
@@ -4,16 +4,12 @@
4
4
  require "zeitwerk"
5
5
  require "faraday"
6
6
  require "faraday/multipart"
7
- require "sorbet-runtime"
8
7
 
9
8
  loader = Zeitwerk::Loader.for_gem
10
9
  loader.setup
11
10
 
12
11
  module WhatsappSdk
13
12
  class << self
14
- extend T::Sig
15
-
16
- sig { returns(Configuration) }
17
13
  def configuration
18
14
  @configuration ||= Configuration.new
19
15
  end
data/whatsapp_sdk.gemspec CHANGED
@@ -43,9 +43,6 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency("bundler", "~> 2.3")
44
44
  spec.add_development_dependency("minitest", "~> 5.0")
45
45
  spec.add_development_dependency("rake", "~> 12.3")
46
- spec.add_development_dependency('sorbet', "~>0.5")
47
-
48
- spec.add_runtime_dependency('sorbet-runtime', "~>0.5")
49
46
 
50
47
  spec.add_dependency("faraday", "~> 2")
51
48
  spec.add_dependency("faraday-multipart", "~> 1")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whatsapp_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ignacio-chiazzo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-04 00:00:00.000000000 Z
11
+ date: 2024-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,34 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '12.3'
55
- - !ruby/object:Gem::Dependency
56
- name: sorbet
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.5'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.5'
69
- - !ruby/object:Gem::Dependency
70
- name: sorbet-runtime
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '0.5'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '0.5'
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: faraday
85
57
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +120,7 @@ files:
148
120
  - LICENSE.txt
149
121
  - README.md
150
122
  - Rakefile
123
+ - SECURITY.md
151
124
  - bin/console
152
125
  - bin/setup
153
126
  - bin/tapioca
@@ -198,6 +171,7 @@ files:
198
171
  - lib/whatsapp_sdk/resource/interactive_footer.rb
199
172
  - lib/whatsapp_sdk/resource/interactive_header.rb
200
173
  - lib/whatsapp_sdk/resource/languages.rb
174
+ - lib/whatsapp_sdk/resource/location.rb
201
175
  - lib/whatsapp_sdk/resource/media.rb
202
176
  - lib/whatsapp_sdk/resource/media_types.rb
203
177
  - lib/whatsapp_sdk/resource/message.rb
@@ -208,24 +182,6 @@ files:
208
182
  - lib/whatsapp_sdk/resource/template.rb
209
183
  - lib/whatsapp_sdk/resource/url.rb
210
184
  - lib/whatsapp_sdk/version.rb
211
- - sorbet/config
212
- - sorbet/rbi/annotations/faraday.rbi
213
- - sorbet/rbi/annotations/mocha.rbi
214
- - sorbet/rbi/annotations/rainbow.rbi
215
- - sorbet/rbi/gems/faraday-multipart@1.0.4.rbi
216
- - sorbet/rbi/gems/faraday-net_http@2.0.3.rbi
217
- - sorbet/rbi/gems/faraday@2.3.0.rbi
218
- - sorbet/rbi/gems/method_source@1.0.0.rbi
219
- - sorbet/rbi/gems/minitest@5.16.1.rbi
220
- - sorbet/rbi/gems/mocha@1.14.0.rbi
221
- - sorbet/rbi/gems/multipart-post@2.2.3.rbi
222
- - sorbet/rbi/gems/netrc@0.11.0.rbi
223
- - sorbet/rbi/gems/oj@3.13.14.rbi
224
- - sorbet/rbi/gems/zeitwerk@2.6.0.rbi
225
- - sorbet/rbi/todo.rbi
226
- - sorbet/shims/request.rbi
227
- - sorbet/tapioca/config.yml
228
- - sorbet/tapioca/require.rb
229
185
  - tmp/whatsapp.png
230
186
  - whatsapp_sdk.gemspec
231
187
  homepage: https://github.com/ignacio-chiazzo/ruby_whatsapp_sdk
@@ -251,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
207
  - !ruby/object:Gem::Version
252
208
  version: '0'
253
209
  requirements: []
254
- rubygems_version: 3.1.6
210
+ rubygems_version: 3.3.3
255
211
  signing_key:
256
212
  specification_version: 4
257
213
  summary: Use the Ruby Whatsapp SDK to communicate with Whatsapp API using the Cloud
data/sorbet/config DELETED
@@ -1,6 +0,0 @@
1
- --dir
2
- .
3
- --ignore=vendor/
4
- --ignore=testing.rb
5
- --ignore=example.rb
6
- --enable-experimental-requires-ancestor
@@ -1,17 +0,0 @@
1
- # typed: strict
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This file was pulled from a central RBI files repository.
5
- # Please run `bin/tapioca annotations` to update it.
6
-
7
- module Faraday
8
- class << self
9
- sig { params(url: T.untyped, options: T::Hash[Symbol, T.untyped], block: T.nilable(T.proc.params(connection: Faraday::Connection).void)).returns(Faraday::Connection) }
10
- def new(url = nil, options = {}, &block); end
11
- end
12
- end
13
-
14
- class Faraday::Response
15
- sig { returns(T::Boolean) }
16
- def success?; end
17
- end
@@ -1,34 +0,0 @@
1
- # typed: strict
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This file was pulled from a central RBI files repository.
5
- # Please run `bin/tapioca annotations` to update it.
6
-
7
- module Mocha::API
8
- sig { params(arguments: T.untyped).returns(Mocha::Mock) }
9
- def mock(*arguments); end
10
-
11
- sig { params(arguments: T.untyped).returns(T.untyped) }
12
- def stub(*arguments); end
13
- end
14
-
15
- module Mocha::ClassMethods
16
- sig { returns(Mocha::Mock) }
17
- def any_instance; end
18
- end
19
-
20
- class Mocha::Expectation
21
- sig { params(expected_parameters: T.untyped, matching_block: T.nilable(T.proc.params(actual_parameters: T.untyped).void)).returns(Mocha::Expectation) }
22
- def with(*expected_parameters, &matching_block); end
23
-
24
- sig { params(values: T.untyped).returns(Mocha::Expectation) }
25
- def returns(*values); end
26
- end
27
-
28
- module Mocha::ObjectMethods
29
- sig { params(expected_methods_vs_return_values: T.untyped).returns(Mocha::Expectation) }
30
- def expects(expected_methods_vs_return_values); end
31
-
32
- sig { params(stubbed_methods_vs_return_values: T.untyped).returns(Mocha::Expectation) }
33
- def stubs(stubbed_methods_vs_return_values); end
34
- end
@@ -1,269 +0,0 @@
1
- # typed: strict
2
-
3
- # DO NOT EDIT MANUALLY
4
- # This file was pulled from a central RBI files repository.
5
- # Please run `bin/tapioca annotations` to update it.
6
-
7
- module Rainbow
8
- # @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12
9
- sig { returns(T::Boolean) }
10
- attr_accessor :enabled
11
-
12
- class Color
13
- sig { returns(Symbol) }
14
- attr_reader :ground
15
-
16
- sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) }
17
- def self.build(ground, values); end
18
-
19
- sig { params(hex: String).returns([Integer, Integer, Integer]) }
20
- def self.parse_hex_color(hex); end
21
-
22
- class Indexed < Rainbow::Color
23
- sig { returns(Integer) }
24
- attr_reader :num
25
-
26
- sig { params(ground: Symbol, num: Integer).void }
27
- def initialize(ground, num); end
28
-
29
- sig { returns(T::Array[Integer]) }
30
- def codes; end
31
- end
32
-
33
- class Named < Rainbow::Color::Indexed
34
- NAMES = T.let(nil, T::Hash[Symbol, Integer])
35
-
36
- sig { params(ground: Symbol, name: Symbol).void }
37
- def initialize(ground, name); end
38
-
39
- sig { returns(T::Array[Symbol]) }
40
- def self.color_names; end
41
-
42
- sig { returns(String) }
43
- def self.valid_names; end
44
- end
45
-
46
- class RGB < Rainbow::Color::Indexed
47
- sig { returns(Integer) }
48
- attr_reader :r, :g, :b
49
-
50
- sig { params(ground: Symbol, values: Integer).void }
51
- def initialize(ground, *values); end
52
-
53
- sig { returns(T::Array[Integer]) }
54
- def codes; end
55
-
56
- sig { params(value: Numeric).returns(Integer) }
57
- def self.to_ansi_domain(value); end
58
- end
59
-
60
- class X11Named < Rainbow::Color::RGB
61
- include Rainbow::X11ColorNames
62
-
63
- sig { returns(T::Array[Symbol]) }
64
- def self.color_names; end
65
-
66
- sig { returns(String) }
67
- def self.valid_names; end
68
-
69
- sig { params(ground: Symbol, name: Symbol).void }
70
- def initialize(ground, name); end
71
- end
72
- end
73
-
74
- sig { returns(Wrapper) }
75
- def self.global; end
76
-
77
- sig { returns(T::Boolean) }
78
- def self.enabled; end
79
-
80
- sig { params(value: T::Boolean).returns(T::Boolean) }
81
- def self.enabled=(value); end
82
-
83
- sig { params(string: String).returns(String) }
84
- def self.uncolor(string); end
85
-
86
- class NullPresenter < String
87
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
88
- def color(*values); end
89
-
90
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
91
- def foreground(*values); end
92
-
93
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
94
- def fg(*values); end
95
-
96
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
97
- def background(*values); end
98
-
99
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) }
100
- def bg(*values); end
101
-
102
- sig { returns(NullPresenter) }
103
- def reset; end
104
-
105
- sig { returns(NullPresenter) }
106
- def bright; end
107
-
108
- sig { returns(NullPresenter) }
109
- def faint; end
110
-
111
- sig { returns(NullPresenter) }
112
- def italic; end
113
-
114
- sig { returns(NullPresenter) }
115
- def underline; end
116
-
117
- sig { returns(NullPresenter) }
118
- def blink; end
119
-
120
- sig { returns(NullPresenter) }
121
- def inverse; end
122
-
123
- sig { returns(NullPresenter) }
124
- def hide; end
125
-
126
- sig { returns(NullPresenter) }
127
- def cross_out; end
128
-
129
- sig { returns(NullPresenter) }
130
- def black; end
131
-
132
- sig { returns(NullPresenter) }
133
- def red; end
134
-
135
- sig { returns(NullPresenter) }
136
- def green; end
137
-
138
- sig { returns(NullPresenter) }
139
- def yellow; end
140
-
141
- sig { returns(NullPresenter) }
142
- def blue; end
143
-
144
- sig { returns(NullPresenter) }
145
- def magenta; end
146
-
147
- sig { returns(NullPresenter) }
148
- def cyan; end
149
-
150
- sig { returns(NullPresenter) }
151
- def white; end
152
-
153
- sig { returns(NullPresenter) }
154
- def bold; end
155
-
156
- sig { returns(NullPresenter) }
157
- def dark; end
158
-
159
- sig { returns(NullPresenter) }
160
- def strike; end
161
- end
162
-
163
- class Presenter < String
164
- TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer])
165
-
166
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
167
- def color(*values); end
168
-
169
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
170
- def foreground(*values); end
171
-
172
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
173
- def fg(*values); end
174
-
175
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
176
- def background(*values); end
177
-
178
- sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) }
179
- def bg(*values); end
180
-
181
- sig { returns(Presenter) }
182
- def reset; end
183
-
184
- sig { returns(Presenter) }
185
- def bright; end
186
-
187
- sig { returns(Presenter) }
188
- def faint; end
189
-
190
- sig { returns(Presenter) }
191
- def italic; end
192
-
193
- sig { returns(Presenter) }
194
- def underline; end
195
-
196
- sig { returns(Presenter) }
197
- def blink; end
198
-
199
- sig { returns(Presenter) }
200
- def inverse; end
201
-
202
- sig { returns(Presenter) }
203
- def hide; end
204
-
205
- sig { returns(Presenter) }
206
- def cross_out; end
207
-
208
- sig { returns(Presenter) }
209
- def black; end
210
-
211
- sig { returns(Presenter) }
212
- def red; end
213
-
214
- sig { returns(Presenter) }
215
- def green; end
216
-
217
- sig { returns(Presenter) }
218
- def yellow; end
219
-
220
- sig { returns(Presenter) }
221
- def blue; end
222
-
223
- sig { returns(Presenter) }
224
- def magenta; end
225
-
226
- sig { returns(Presenter) }
227
- def cyan; end
228
-
229
- sig { returns(Presenter) }
230
- def white; end
231
-
232
- sig { returns(Presenter) }
233
- def bold; end
234
-
235
- sig { returns(Presenter) }
236
- def dark; end
237
-
238
- sig { returns(Presenter) }
239
- def strike; end
240
- end
241
-
242
- class StringUtils
243
- sig { params(string: String, codes: T::Array[Integer]).returns(String) }
244
- def self.wrap_with_sgr(string, codes); end
245
-
246
- sig { params(string: String).returns(String) }
247
- def self.uncolor(string); end
248
- end
249
-
250
- VERSION = T.let(nil, String)
251
-
252
- class Wrapper
253
- sig { returns(T::Boolean) }
254
- attr_accessor :enabled
255
-
256
- sig { params(enabled: T::Boolean).void }
257
- def initialize(enabled = true); end
258
-
259
- sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) }
260
- def wrap(string); end
261
- end
262
-
263
- module X11ColorNames
264
- NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]])
265
- end
266
- end
267
-
268
- sig { params(string: String).returns(Rainbow::Presenter) }
269
- def Rainbow(string); end