expo_notifier 0.1.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 (113) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -0
  3. data/CHANGELOG.md +3 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +172 -0
  6. data/Rakefile +17 -0
  7. data/lib/expo_notifier/mapper/base.rb +30 -0
  8. data/lib/expo_notifier/mapper/error.rb +24 -0
  9. data/lib/expo_notifier/mapper/push_message.rb +132 -0
  10. data/lib/expo_notifier/mapper/push_messages.rb +15 -0
  11. data/lib/expo_notifier/mapper/push_receipt.rb +23 -0
  12. data/lib/expo_notifier/mapper/push_receipt_error_details.rb +23 -0
  13. data/lib/expo_notifier/mapper/push_receipt_ids.rb +16 -0
  14. data/lib/expo_notifier/mapper/push_receipts.rb +38 -0
  15. data/lib/expo_notifier/mapper/push_ticket.rb +30 -0
  16. data/lib/expo_notifier/mapper/push_ticket_error_details.rb +19 -0
  17. data/lib/expo_notifier/mapper/push_tickets.rb +26 -0
  18. data/lib/expo_notifier/mapper/rich_content.rb +17 -0
  19. data/lib/expo_notifier/request/base.rb +162 -0
  20. data/lib/expo_notifier/request/get_push_notification_receipts.rb +18 -0
  21. data/lib/expo_notifier/request/send_push_notifications.rb +26 -0
  22. data/lib/expo_notifier/response.rb +93 -0
  23. data/lib/expo_notifier/sorbet_shim.rb +18 -0
  24. data/lib/expo_notifier/version.rb +6 -0
  25. data/lib/expo_notifier.rb +19 -0
  26. data/sorbet/config +6 -0
  27. data/sorbet/rbi/annotations/.gitattributes +1 -0
  28. data/sorbet/rbi/annotations/activesupport.rbi +495 -0
  29. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  30. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  31. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  32. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  33. data/sorbet/rbi/dsl/.gitattributes +1 -0
  34. data/sorbet/rbi/dsl/active_support/callbacks.rbi +21 -0
  35. data/sorbet/rbi/dsl/expo_notifier/mapper/base.rbi +12 -0
  36. data/sorbet/rbi/dsl/expo_notifier/mapper/error.rbi +42 -0
  37. data/sorbet/rbi/dsl/expo_notifier/mapper/push_message.rbi +263 -0
  38. data/sorbet/rbi/dsl/expo_notifier/mapper/push_messages.rbi +29 -0
  39. data/sorbet/rbi/dsl/expo_notifier/mapper/push_receipt.rbi +45 -0
  40. data/sorbet/rbi/dsl/expo_notifier/mapper/push_receipt_error_details.rbi +38 -0
  41. data/sorbet/rbi/dsl/expo_notifier/mapper/push_receipt_ids.rbi +20 -0
  42. data/sorbet/rbi/dsl/expo_notifier/mapper/push_receipts.rbi +25 -0
  43. data/sorbet/rbi/dsl/expo_notifier/mapper/push_ticket.rbi +59 -0
  44. data/sorbet/rbi/dsl/expo_notifier/mapper/push_ticket_error_details.rbi +32 -0
  45. data/sorbet/rbi/dsl/expo_notifier/mapper/push_tickets.rbi +54 -0
  46. data/sorbet/rbi/dsl/expo_notifier/mapper/rich_content.rbi +26 -0
  47. data/sorbet/rbi/dsl/time.rbi +13 -0
  48. data/sorbet/rbi/gems/.gitattributes +1 -0
  49. data/sorbet/rbi/gems/activesupport@8.1.1.rbi +22456 -0
  50. data/sorbet/rbi/gems/addressable@2.8.8.rbi +2005 -0
  51. data/sorbet/rbi/gems/ast@2.4.3.rbi +586 -0
  52. data/sorbet/rbi/gems/base64@0.3.0.rbi +545 -0
  53. data/sorbet/rbi/gems/benchmark@0.5.0.rbi +637 -0
  54. data/sorbet/rbi/gems/bigdecimal@4.0.1.rbi +409 -0
  55. data/sorbet/rbi/gems/booleans@0.1.3.rbi +31 -0
  56. data/sorbet/rbi/gems/concurrent-ruby@1.3.6.rbi +11729 -0
  57. data/sorbet/rbi/gems/connection_pool@3.0.2.rbi +9 -0
  58. data/sorbet/rbi/gems/crack@1.0.1.rbi +145 -0
  59. data/sorbet/rbi/gems/date@3.5.1.rbi +403 -0
  60. data/sorbet/rbi/gems/drb@2.2.3.rbi +1661 -0
  61. data/sorbet/rbi/gems/erb@6.0.1.rbi +815 -0
  62. data/sorbet/rbi/gems/erubi@1.13.1.rbi +157 -0
  63. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +72 -0
  64. data/sorbet/rbi/gems/faraday@2.14.0.rbi +3301 -0
  65. data/sorbet/rbi/gems/hashdiff@1.2.1.rbi +355 -0
  66. data/sorbet/rbi/gems/i18n@1.14.8.rbi +2383 -0
  67. data/sorbet/rbi/gems/io-console@0.8.2.rbi +9 -0
  68. data/sorbet/rbi/gems/json@2.18.0.rbi +2278 -0
  69. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +323 -0
  70. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  71. data/sorbet/rbi/gems/minitest@6.0.1.rbi +1524 -0
  72. data/sorbet/rbi/gems/net-http@0.9.1.rbi +4304 -0
  73. data/sorbet/rbi/gems/netrc@0.11.0.rbi +177 -0
  74. data/sorbet/rbi/gems/parallel@1.27.0.rbi +291 -0
  75. data/sorbet/rbi/gems/parser@3.3.10.0.rbi +5537 -0
  76. data/sorbet/rbi/gems/pp@0.6.3.rbi +390 -0
  77. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +477 -0
  78. data/sorbet/rbi/gems/prism@1.6.0.rbi +42126 -0
  79. data/sorbet/rbi/gems/psych@5.3.1.rbi +2556 -0
  80. data/sorbet/rbi/gems/public_suffix@7.0.2.rbi +957 -0
  81. data/sorbet/rbi/gems/racc@1.8.1.rbi +168 -0
  82. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +404 -0
  83. data/sorbet/rbi/gems/rake@13.3.1.rbi +3038 -0
  84. data/sorbet/rbi/gems/rbi@0.3.8.rbi +5238 -0
  85. data/sorbet/rbi/gems/rbs@4.0.0.dev.4.rbi +7805 -0
  86. data/sorbet/rbi/gems/regexp_parser@2.11.3.rbi +3849 -0
  87. data/sorbet/rbi/gems/reline@0.6.3.rbi +2995 -0
  88. data/sorbet/rbi/gems/require-hooks@0.2.2.rbi +110 -0
  89. data/sorbet/rbi/gems/rexml@3.4.4.rbi +5258 -0
  90. data/sorbet/rbi/gems/rubocop-espago@1.2.0.rbi +9 -0
  91. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  92. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  93. data/sorbet/rbi/gems/shale-builder@0.8.5.rbi +267 -0
  94. data/sorbet/rbi/gems/shale@1.2.2.rbi +2323 -0
  95. data/sorbet/rbi/gems/shoulda-context@2.0.0.rbi +563 -0
  96. data/sorbet/rbi/gems/spoom@1.7.11.rbi +5878 -0
  97. data/sorbet/rbi/gems/stringio@3.2.0.rbi +9 -0
  98. data/sorbet/rbi/gems/tapioca@0.17.4.rbi +3507 -0
  99. data/sorbet/rbi/gems/thor@1.4.0.rbi +4399 -0
  100. data/sorbet/rbi/gems/tsort@0.2.0.rbi +393 -0
  101. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5919 -0
  102. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +132 -0
  103. data/sorbet/rbi/gems/unicode-emoji@4.2.0.rbi +254 -0
  104. data/sorbet/rbi/gems/uri@1.1.1.rbi +2407 -0
  105. data/sorbet/rbi/gems/vcr@6.4.0.rbi +3055 -0
  106. data/sorbet/rbi/gems/webmock@3.26.1.rbi +1816 -0
  107. data/sorbet/rbi/shims/gems/set.rbi +2 -0
  108. data/sorbet/rbi/shims/gems/shale.rbi +27 -0
  109. data/sorbet/rbi/shims/gems/shoulda-context.rbi +20 -0
  110. data/sorbet/tapioca/config.yml +21 -0
  111. data/sorbet/tapioca/extensions/load_gem.rb +1 -0
  112. data/sorbet/tapioca/require.rb +15 -0
  113. metadata +228 -0
@@ -0,0 +1,2 @@
1
+ module Set::SubclassCompatible; end
2
+ module Set::SubclassCompatible::ClassMethods; end
@@ -0,0 +1,27 @@
1
+ # typed: true
2
+
3
+ module Shale
4
+ module Schema; end
5
+
6
+ class Mapper
7
+ class << self
8
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
9
+ def json(&block); end
10
+
11
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
12
+ def hsh(&block); end
13
+
14
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
15
+ def yaml(&block); end
16
+
17
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
18
+ def toml(&block); end
19
+
20
+ sig { params(block: T.proc.bind(Shale::Mapping::Dict).void).void }
21
+ def csv(&block); end
22
+
23
+ sig { params(block: T.proc.bind(Shale::Mapping::Xml).void).void }
24
+ def xml(&block); end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ # typed: true
2
+
3
+ class Minitest::Test
4
+ class << self
5
+ def context(name, &blk); end
6
+
7
+ def setup(&blk); end
8
+
9
+ def teardown(&blk); end
10
+
11
+ sig do
12
+ params(
13
+ name_or_matcher: String,
14
+ options: T.untyped,
15
+ blk: T.proc.bind(T.attached_class).void,
16
+ ).void
17
+ end
18
+ def should(name_or_matcher, options = T.unsafe(nil), &blk); end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ exclude:
5
+ - rubocop
6
+ - yard
7
+ - yard-sorbet
8
+ - rdoc
9
+ - debug
10
+ - language_server-protocol
11
+ - rubocop-ast
12
+ - rubocop-sorbet
13
+ - bundler-audit
14
+ # doc: true
15
+ # workers: 5
16
+ dsl:
17
+ # Add your `dsl` command parameters here:
18
+ #
19
+ # exclude:
20
+ # - SomeGeneratorName
21
+ # workers: 5
@@ -0,0 +1 @@
1
+ require_relative './../../../lib/expo_notifier'
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list)
5
+ require "active_support/all"
6
+ require "active_support/core_ext/string"
7
+ require "active_support/testing/time_helpers"
8
+ require 'minitest'
9
+ require 'faraday'
10
+ require 'sorbet-runtime'
11
+ require 'shale'
12
+ require 'shale/builder'
13
+ require 'expo_notifier'
14
+ require "minitest/autorun"
15
+ require "shoulda-context"
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: expo_notifier
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Michał Zaporski
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '6.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '6.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: faraday
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: shale
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.2'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.2'
54
+ - !ruby/object:Gem::Dependency
55
+ name: shale-builder
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.8'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.8'
68
+ - !ruby/object:Gem::Dependency
69
+ name: sorbet-runtime
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0.5'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0.5'
82
+ description: |
83
+ A Ruby client for the Expo Push Notifications API, providing typed request/response objects,
84
+ automatic payload mapping, error classification, and configurable HTTP behavior.
85
+ It is built on Faraday for HTTP communication.
86
+ email:
87
+ - focus16k@gmail.com
88
+ executables: []
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - ".ruby-version"
93
+ - CHANGELOG.md
94
+ - LICENSE.txt
95
+ - README.md
96
+ - Rakefile
97
+ - lib/expo_notifier.rb
98
+ - lib/expo_notifier/mapper/base.rb
99
+ - lib/expo_notifier/mapper/error.rb
100
+ - lib/expo_notifier/mapper/push_message.rb
101
+ - lib/expo_notifier/mapper/push_messages.rb
102
+ - lib/expo_notifier/mapper/push_receipt.rb
103
+ - lib/expo_notifier/mapper/push_receipt_error_details.rb
104
+ - lib/expo_notifier/mapper/push_receipt_ids.rb
105
+ - lib/expo_notifier/mapper/push_receipts.rb
106
+ - lib/expo_notifier/mapper/push_ticket.rb
107
+ - lib/expo_notifier/mapper/push_ticket_error_details.rb
108
+ - lib/expo_notifier/mapper/push_tickets.rb
109
+ - lib/expo_notifier/mapper/rich_content.rb
110
+ - lib/expo_notifier/request/base.rb
111
+ - lib/expo_notifier/request/get_push_notification_receipts.rb
112
+ - lib/expo_notifier/request/send_push_notifications.rb
113
+ - lib/expo_notifier/response.rb
114
+ - lib/expo_notifier/sorbet_shim.rb
115
+ - lib/expo_notifier/version.rb
116
+ - sorbet/config
117
+ - sorbet/rbi/annotations/.gitattributes
118
+ - sorbet/rbi/annotations/activesupport.rbi
119
+ - sorbet/rbi/annotations/faraday.rbi
120
+ - sorbet/rbi/annotations/minitest.rbi
121
+ - sorbet/rbi/annotations/rainbow.rbi
122
+ - sorbet/rbi/annotations/webmock.rbi
123
+ - sorbet/rbi/dsl/.gitattributes
124
+ - sorbet/rbi/dsl/active_support/callbacks.rbi
125
+ - sorbet/rbi/dsl/expo_notifier/mapper/base.rbi
126
+ - sorbet/rbi/dsl/expo_notifier/mapper/error.rbi
127
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_message.rbi
128
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_messages.rbi
129
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_receipt.rbi
130
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_receipt_error_details.rbi
131
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_receipt_ids.rbi
132
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_receipts.rbi
133
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_ticket.rbi
134
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_ticket_error_details.rbi
135
+ - sorbet/rbi/dsl/expo_notifier/mapper/push_tickets.rbi
136
+ - sorbet/rbi/dsl/expo_notifier/mapper/rich_content.rbi
137
+ - sorbet/rbi/dsl/time.rbi
138
+ - sorbet/rbi/gems/.gitattributes
139
+ - sorbet/rbi/gems/activesupport@8.1.1.rbi
140
+ - sorbet/rbi/gems/addressable@2.8.8.rbi
141
+ - sorbet/rbi/gems/ast@2.4.3.rbi
142
+ - sorbet/rbi/gems/base64@0.3.0.rbi
143
+ - sorbet/rbi/gems/benchmark@0.5.0.rbi
144
+ - sorbet/rbi/gems/bigdecimal@4.0.1.rbi
145
+ - sorbet/rbi/gems/booleans@0.1.3.rbi
146
+ - sorbet/rbi/gems/concurrent-ruby@1.3.6.rbi
147
+ - sorbet/rbi/gems/connection_pool@3.0.2.rbi
148
+ - sorbet/rbi/gems/crack@1.0.1.rbi
149
+ - sorbet/rbi/gems/date@3.5.1.rbi
150
+ - sorbet/rbi/gems/drb@2.2.3.rbi
151
+ - sorbet/rbi/gems/erb@6.0.1.rbi
152
+ - sorbet/rbi/gems/erubi@1.13.1.rbi
153
+ - sorbet/rbi/gems/faraday-net_http@3.4.2.rbi
154
+ - sorbet/rbi/gems/faraday@2.14.0.rbi
155
+ - sorbet/rbi/gems/hashdiff@1.2.1.rbi
156
+ - sorbet/rbi/gems/i18n@1.14.8.rbi
157
+ - sorbet/rbi/gems/io-console@0.8.2.rbi
158
+ - sorbet/rbi/gems/json@2.18.0.rbi
159
+ - sorbet/rbi/gems/lint_roller@1.1.0.rbi
160
+ - sorbet/rbi/gems/logger@1.7.0.rbi
161
+ - sorbet/rbi/gems/minitest@6.0.1.rbi
162
+ - sorbet/rbi/gems/net-http@0.9.1.rbi
163
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
164
+ - sorbet/rbi/gems/parallel@1.27.0.rbi
165
+ - sorbet/rbi/gems/parser@3.3.10.0.rbi
166
+ - sorbet/rbi/gems/pp@0.6.3.rbi
167
+ - sorbet/rbi/gems/prettyprint@0.2.0.rbi
168
+ - sorbet/rbi/gems/prism@1.6.0.rbi
169
+ - sorbet/rbi/gems/psych@5.3.1.rbi
170
+ - sorbet/rbi/gems/public_suffix@7.0.2.rbi
171
+ - sorbet/rbi/gems/racc@1.8.1.rbi
172
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
173
+ - sorbet/rbi/gems/rake@13.3.1.rbi
174
+ - sorbet/rbi/gems/rbi@0.3.8.rbi
175
+ - sorbet/rbi/gems/rbs@4.0.0.dev.4.rbi
176
+ - sorbet/rbi/gems/regexp_parser@2.11.3.rbi
177
+ - sorbet/rbi/gems/reline@0.6.3.rbi
178
+ - sorbet/rbi/gems/require-hooks@0.2.2.rbi
179
+ - sorbet/rbi/gems/rexml@3.4.4.rbi
180
+ - sorbet/rbi/gems/rubocop-espago@1.2.0.rbi
181
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
182
+ - sorbet/rbi/gems/securerandom@0.4.1.rbi
183
+ - sorbet/rbi/gems/shale-builder@0.8.5.rbi
184
+ - sorbet/rbi/gems/shale@1.2.2.rbi
185
+ - sorbet/rbi/gems/shoulda-context@2.0.0.rbi
186
+ - sorbet/rbi/gems/spoom@1.7.11.rbi
187
+ - sorbet/rbi/gems/stringio@3.2.0.rbi
188
+ - sorbet/rbi/gems/tapioca@0.17.4.rbi
189
+ - sorbet/rbi/gems/thor@1.4.0.rbi
190
+ - sorbet/rbi/gems/tsort@0.2.0.rbi
191
+ - sorbet/rbi/gems/tzinfo@2.0.6.rbi
192
+ - sorbet/rbi/gems/unicode-display_width@3.2.0.rbi
193
+ - sorbet/rbi/gems/unicode-emoji@4.2.0.rbi
194
+ - sorbet/rbi/gems/uri@1.1.1.rbi
195
+ - sorbet/rbi/gems/vcr@6.4.0.rbi
196
+ - sorbet/rbi/gems/webmock@3.26.1.rbi
197
+ - sorbet/rbi/shims/gems/set.rbi
198
+ - sorbet/rbi/shims/gems/shale.rbi
199
+ - sorbet/rbi/shims/gems/shoulda-context.rbi
200
+ - sorbet/tapioca/config.yml
201
+ - sorbet/tapioca/extensions/load_gem.rb
202
+ - sorbet/tapioca/require.rb
203
+ homepage: https://github.com/MichalZaporski/expo_notifier
204
+ licenses:
205
+ - MIT
206
+ metadata:
207
+ homepage_uri: https://github.com/MichalZaporski/expo_notifier
208
+ source_code_uri: https://github.com/MichalZaporski/expo_notifier
209
+ changelog_uri: https://github.com/MichalZaporski/expo_notifier/blob/main/CHANGELOG.md
210
+ rubygems_mfa_required: 'true'
211
+ rdoc_options: []
212
+ require_paths:
213
+ - lib
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: 3.0.0
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ requirements: []
225
+ rubygems_version: 4.0.3
226
+ specification_version: 4
227
+ summary: A Ruby gem for sending Expo push notifications, built on Faraday.
228
+ test_files: []