zonesync 0.12.0 → 0.13.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 +4 -4
- data/CLAUDE.md +0 -12
- data/lib/zonesync/cli.rb +1 -7
- data/lib/zonesync/cloudflare/proxied_support.rb +61 -0
- data/lib/zonesync/cloudflare.rb +48 -35
- data/lib/zonesync/diff.rb +41 -23
- data/lib/zonesync/errors.rb +5 -39
- data/lib/zonesync/generate.rb +1 -5
- data/lib/zonesync/http.rb +10 -21
- data/lib/zonesync/logger.rb +2 -7
- data/lib/zonesync/manifest.rb +7 -24
- data/lib/zonesync/parser.rb +3 -5
- data/lib/zonesync/provider.rb +19 -51
- data/lib/zonesync/record.rb +6 -18
- data/lib/zonesync/record_hash.rb +3 -6
- data/lib/zonesync/route53.rb +9 -24
- data/lib/zonesync/sync.rb +2 -6
- data/lib/zonesync/validator.rb +4 -17
- data/lib/zonesync/version.rb +1 -1
- data/lib/zonesync/zonefile.rb +2 -10
- data/lib/zonesync.rb +7 -17
- data/zonesync.gemspec +0 -4
- metadata +6 -114
- data/sorbet/config +0 -4
- data/sorbet/rbi/annotations/.gitattributes +0 -1
- data/sorbet/rbi/annotations/activesupport.rbi +0 -457
- data/sorbet/rbi/annotations/minitest.rbi +0 -119
- data/sorbet/rbi/annotations/webmock.rbi +0 -9
- data/sorbet/rbi/gems/.gitattributes +0 -1
- data/sorbet/rbi/gems/activesupport@8.0.1.rbi +0 -18474
- data/sorbet/rbi/gems/addressable@2.8.7.rbi +0 -1994
- data/sorbet/rbi/gems/base64@0.2.0.rbi +0 -507
- data/sorbet/rbi/gems/benchmark@0.4.0.rbi +0 -618
- data/sorbet/rbi/gems/bigdecimal@3.1.9.rbi +0 -9
- data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +0 -11645
- data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +0 -9
- data/sorbet/rbi/gems/crack@1.0.0.rbi +0 -145
- data/sorbet/rbi/gems/date@3.4.1.rbi +0 -75
- data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +0 -1131
- data/sorbet/rbi/gems/drb@2.2.1.rbi +0 -1347
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +0 -155
- data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +0 -353
- data/sorbet/rbi/gems/i18n@1.14.6.rbi +0 -2275
- data/sorbet/rbi/gems/io-console@0.8.0.rbi +0 -9
- data/sorbet/rbi/gems/logger@1.6.4.rbi +0 -940
- data/sorbet/rbi/gems/minitest@5.25.4.rbi +0 -1547
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
- data/sorbet/rbi/gems/parallel@1.26.3.rbi +0 -291
- data/sorbet/rbi/gems/polyglot@0.3.5.rbi +0 -42
- data/sorbet/rbi/gems/prism@1.3.0.rbi +0 -40040
- data/sorbet/rbi/gems/psych@5.2.2.rbi +0 -1785
- data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +0 -936
- data/sorbet/rbi/gems/rake@13.2.1.rbi +0 -3028
- data/sorbet/rbi/gems/rbi@0.2.2.rbi +0 -4527
- data/sorbet/rbi/gems/rdoc@6.10.0.rbi +0 -12766
- data/sorbet/rbi/gems/reline@0.6.0.rbi +0 -9
- data/sorbet/rbi/gems/rexml@3.4.0.rbi +0 -4974
- data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +0 -10896
- data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +0 -8183
- data/sorbet/rbi/gems/rspec-mocks@3.13.2.rbi +0 -5341
- data/sorbet/rbi/gems/rspec-support@3.13.2.rbi +0 -1630
- data/sorbet/rbi/gems/rspec@3.13.0.rbi +0 -83
- data/sorbet/rbi/gems/securerandom@0.4.1.rbi +0 -75
- data/sorbet/rbi/gems/spoom@1.5.0.rbi +0 -4932
- data/sorbet/rbi/gems/stringio@3.1.2.rbi +0 -9
- data/sorbet/rbi/gems/tapioca@0.16.6.rbi +0 -3611
- data/sorbet/rbi/gems/thor@1.3.2.rbi +0 -4378
- data/sorbet/rbi/gems/treetop@1.6.12.rbi +0 -1895
- data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5918
- data/sorbet/rbi/gems/uri@1.0.2.rbi +0 -2340
- data/sorbet/rbi/gems/webmock@3.24.0.rbi +0 -1780
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
- data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18379
- data/sorbet/rbi/todo.rbi +0 -7
- data/sorbet/tapioca/config.yml +0 -13
- data/sorbet/tapioca/require.rb +0 -4
data/lib/zonesync.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
require "sorbet-runtime"
|
|
1
|
+
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
require "zonesync/sync"
|
|
5
4
|
require "zonesync/generate"
|
|
@@ -16,29 +15,21 @@ begin # optional active_support dependency
|
|
|
16
15
|
rescue LoadError; end
|
|
17
16
|
|
|
18
17
|
module Zonesync
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
sig { params(source: T.nilable(String), destination: T.nilable(String), dry_run: T::Boolean, force: T::Boolean).void }
|
|
22
|
-
def self.call source: "Zonefile", destination: "zonesync", dry_run: false, force: false
|
|
23
|
-
source = T.must(source)
|
|
24
|
-
destination = T.must(destination).to_sym
|
|
18
|
+
def self.call(source: "Zonefile", destination: "zonesync", dry_run: false, force: false)
|
|
25
19
|
Sync.new(
|
|
26
20
|
Provider.from({ provider: "Filesystem", path: source }),
|
|
27
|
-
Provider.from(credentials(destination)),
|
|
21
|
+
Provider.from(credentials(destination.to_sym)),
|
|
28
22
|
).call(dry_run: dry_run, force: force)
|
|
29
23
|
end
|
|
30
24
|
|
|
31
|
-
|
|
32
|
-
def self.generate source: "zonesync", destination: "Zonefile"
|
|
33
|
-
source = T.must(source).to_sym
|
|
25
|
+
def self.generate(source: "zonesync", destination: "Zonefile")
|
|
34
26
|
Generate.new(
|
|
35
|
-
Provider.from(credentials(source)),
|
|
36
|
-
Provider.from({ provider: "Filesystem", path:
|
|
27
|
+
Provider.from(credentials(source.to_sym)),
|
|
28
|
+
Provider.from({ provider: "Filesystem", path: destination }),
|
|
37
29
|
).call
|
|
38
30
|
end
|
|
39
31
|
|
|
40
|
-
|
|
41
|
-
def self.credentials key
|
|
32
|
+
def self.credentials(key)
|
|
42
33
|
ActiveSupport::EncryptedConfiguration.new(
|
|
43
34
|
config_path: "config/credentials.yml.enc",
|
|
44
35
|
key_path: "config/master.key",
|
|
@@ -47,4 +38,3 @@ module Zonesync
|
|
|
47
38
|
).config[key]
|
|
48
39
|
end
|
|
49
40
|
end
|
|
50
|
-
|
data/zonesync.gemspec
CHANGED
|
@@ -27,14 +27,10 @@ Gem::Specification.new do |spec|
|
|
|
27
27
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
28
28
|
spec.require_paths = ["lib"]
|
|
29
29
|
|
|
30
|
-
spec.add_dependency "diff-lcs", "~>1.4"
|
|
31
30
|
spec.add_dependency "thor", "~>1.0"
|
|
32
31
|
spec.add_dependency "treetop", "~>1.6"
|
|
33
|
-
spec.add_dependency "sorbet-runtime"
|
|
34
32
|
|
|
35
33
|
spec.add_development_dependency "rake"
|
|
36
34
|
spec.add_development_dependency "rspec"
|
|
37
35
|
spec.add_development_dependency "webmock"
|
|
38
|
-
spec.add_development_dependency "sorbet"
|
|
39
|
-
spec.add_development_dependency "tapioca"
|
|
40
36
|
end
|
metadata
CHANGED
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zonesync
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Micah Geisel
|
|
8
8
|
- James Ottaway
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2025-
|
|
12
|
+
date: 2025-12-22 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
|
-
- !ruby/object:Gem::Dependency
|
|
15
|
-
name: diff-lcs
|
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
requirements:
|
|
18
|
-
- - "~>"
|
|
19
|
-
- !ruby/object:Gem::Version
|
|
20
|
-
version: '1.4'
|
|
21
|
-
type: :runtime
|
|
22
|
-
prerelease: false
|
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
-
requirements:
|
|
25
|
-
- - "~>"
|
|
26
|
-
- !ruby/object:Gem::Version
|
|
27
|
-
version: '1.4'
|
|
28
14
|
- !ruby/object:Gem::Dependency
|
|
29
15
|
name: thor
|
|
30
16
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -53,20 +39,6 @@ dependencies:
|
|
|
53
39
|
- - "~>"
|
|
54
40
|
- !ruby/object:Gem::Version
|
|
55
41
|
version: '1.6'
|
|
56
|
-
- !ruby/object:Gem::Dependency
|
|
57
|
-
name: sorbet-runtime
|
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
|
59
|
-
requirements:
|
|
60
|
-
- - ">="
|
|
61
|
-
- !ruby/object:Gem::Version
|
|
62
|
-
version: '0'
|
|
63
|
-
type: :runtime
|
|
64
|
-
prerelease: false
|
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
-
requirements:
|
|
67
|
-
- - ">="
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version: '0'
|
|
70
42
|
- !ruby/object:Gem::Dependency
|
|
71
43
|
name: rake
|
|
72
44
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,34 +81,6 @@ dependencies:
|
|
|
109
81
|
- - ">="
|
|
110
82
|
- !ruby/object:Gem::Version
|
|
111
83
|
version: '0'
|
|
112
|
-
- !ruby/object:Gem::Dependency
|
|
113
|
-
name: sorbet
|
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
|
115
|
-
requirements:
|
|
116
|
-
- - ">="
|
|
117
|
-
- !ruby/object:Gem::Version
|
|
118
|
-
version: '0'
|
|
119
|
-
type: :development
|
|
120
|
-
prerelease: false
|
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
122
|
-
requirements:
|
|
123
|
-
- - ">="
|
|
124
|
-
- !ruby/object:Gem::Version
|
|
125
|
-
version: '0'
|
|
126
|
-
- !ruby/object:Gem::Dependency
|
|
127
|
-
name: tapioca
|
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
requirements:
|
|
130
|
-
- - ">="
|
|
131
|
-
- !ruby/object:Gem::Version
|
|
132
|
-
version: '0'
|
|
133
|
-
type: :development
|
|
134
|
-
prerelease: false
|
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
136
|
-
requirements:
|
|
137
|
-
- - ">="
|
|
138
|
-
- !ruby/object:Gem::Version
|
|
139
|
-
version: '0'
|
|
140
84
|
description: Sync your Zone file with your DNS host
|
|
141
85
|
email:
|
|
142
86
|
- micah@botandrose.com
|
|
@@ -157,6 +101,7 @@ files:
|
|
|
157
101
|
- lib/zonesync.rb
|
|
158
102
|
- lib/zonesync/cli.rb
|
|
159
103
|
- lib/zonesync/cloudflare.rb
|
|
104
|
+
- lib/zonesync/cloudflare/proxied_support.rb
|
|
160
105
|
- lib/zonesync/diff.rb
|
|
161
106
|
- lib/zonesync/errors.rb
|
|
162
107
|
- lib/zonesync/generate.rb
|
|
@@ -175,59 +120,6 @@ files:
|
|
|
175
120
|
- lib/zonesync/zonefile.rb
|
|
176
121
|
- lib/zonesync/zonefile.treetop
|
|
177
122
|
- log/.keep
|
|
178
|
-
- sorbet/config
|
|
179
|
-
- sorbet/rbi/annotations/.gitattributes
|
|
180
|
-
- sorbet/rbi/annotations/activesupport.rbi
|
|
181
|
-
- sorbet/rbi/annotations/minitest.rbi
|
|
182
|
-
- sorbet/rbi/annotations/webmock.rbi
|
|
183
|
-
- sorbet/rbi/gems/.gitattributes
|
|
184
|
-
- sorbet/rbi/gems/activesupport@8.0.1.rbi
|
|
185
|
-
- sorbet/rbi/gems/addressable@2.8.7.rbi
|
|
186
|
-
- sorbet/rbi/gems/base64@0.2.0.rbi
|
|
187
|
-
- sorbet/rbi/gems/benchmark@0.4.0.rbi
|
|
188
|
-
- sorbet/rbi/gems/bigdecimal@3.1.9.rbi
|
|
189
|
-
- sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi
|
|
190
|
-
- sorbet/rbi/gems/connection_pool@2.4.1.rbi
|
|
191
|
-
- sorbet/rbi/gems/crack@1.0.0.rbi
|
|
192
|
-
- sorbet/rbi/gems/date@3.4.1.rbi
|
|
193
|
-
- sorbet/rbi/gems/diff-lcs@1.5.1.rbi
|
|
194
|
-
- sorbet/rbi/gems/drb@2.2.1.rbi
|
|
195
|
-
- sorbet/rbi/gems/erubi@1.13.1.rbi
|
|
196
|
-
- sorbet/rbi/gems/hashdiff@1.1.2.rbi
|
|
197
|
-
- sorbet/rbi/gems/i18n@1.14.6.rbi
|
|
198
|
-
- sorbet/rbi/gems/io-console@0.8.0.rbi
|
|
199
|
-
- sorbet/rbi/gems/logger@1.6.4.rbi
|
|
200
|
-
- sorbet/rbi/gems/minitest@5.25.4.rbi
|
|
201
|
-
- sorbet/rbi/gems/netrc@0.11.0.rbi
|
|
202
|
-
- sorbet/rbi/gems/parallel@1.26.3.rbi
|
|
203
|
-
- sorbet/rbi/gems/polyglot@0.3.5.rbi
|
|
204
|
-
- sorbet/rbi/gems/prism@1.3.0.rbi
|
|
205
|
-
- sorbet/rbi/gems/psych@5.2.2.rbi
|
|
206
|
-
- sorbet/rbi/gems/public_suffix@6.0.1.rbi
|
|
207
|
-
- sorbet/rbi/gems/rake@13.2.1.rbi
|
|
208
|
-
- sorbet/rbi/gems/rbi@0.2.2.rbi
|
|
209
|
-
- sorbet/rbi/gems/rdoc@6.10.0.rbi
|
|
210
|
-
- sorbet/rbi/gems/reline@0.6.0.rbi
|
|
211
|
-
- sorbet/rbi/gems/rexml@3.4.0.rbi
|
|
212
|
-
- sorbet/rbi/gems/rspec-core@3.13.2.rbi
|
|
213
|
-
- sorbet/rbi/gems/rspec-expectations@3.13.3.rbi
|
|
214
|
-
- sorbet/rbi/gems/rspec-mocks@3.13.2.rbi
|
|
215
|
-
- sorbet/rbi/gems/rspec-support@3.13.2.rbi
|
|
216
|
-
- sorbet/rbi/gems/rspec@3.13.0.rbi
|
|
217
|
-
- sorbet/rbi/gems/securerandom@0.4.1.rbi
|
|
218
|
-
- sorbet/rbi/gems/spoom@1.5.0.rbi
|
|
219
|
-
- sorbet/rbi/gems/stringio@3.1.2.rbi
|
|
220
|
-
- sorbet/rbi/gems/tapioca@0.16.6.rbi
|
|
221
|
-
- sorbet/rbi/gems/thor@1.3.2.rbi
|
|
222
|
-
- sorbet/rbi/gems/treetop@1.6.12.rbi
|
|
223
|
-
- sorbet/rbi/gems/tzinfo@2.0.6.rbi
|
|
224
|
-
- sorbet/rbi/gems/uri@1.0.2.rbi
|
|
225
|
-
- sorbet/rbi/gems/webmock@3.24.0.rbi
|
|
226
|
-
- sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
|
|
227
|
-
- sorbet/rbi/gems/yard@0.9.37.rbi
|
|
228
|
-
- sorbet/rbi/todo.rbi
|
|
229
|
-
- sorbet/tapioca/config.yml
|
|
230
|
-
- sorbet/tapioca/require.rb
|
|
231
123
|
- zonesync.gemspec
|
|
232
124
|
homepage: https://github.com/botandrose/zonesync
|
|
233
125
|
licenses:
|
|
@@ -235,7 +127,7 @@ licenses:
|
|
|
235
127
|
metadata:
|
|
236
128
|
homepage_uri: https://github.com/botandrose/zonesync
|
|
237
129
|
source_code_uri: https://github.com/botandrose/zonesync
|
|
238
|
-
post_install_message:
|
|
130
|
+
post_install_message:
|
|
239
131
|
rdoc_options: []
|
|
240
132
|
require_paths:
|
|
241
133
|
- lib
|
|
@@ -251,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
251
143
|
version: '0'
|
|
252
144
|
requirements: []
|
|
253
145
|
rubygems_version: 3.5.11
|
|
254
|
-
signing_key:
|
|
146
|
+
signing_key:
|
|
255
147
|
specification_version: 4
|
|
256
148
|
summary: Sync your Zone file with your DNS host
|
|
257
149
|
test_files: []
|
data/sorbet/config
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
**/*.rbi linguist-vendored=true
|
|
@@ -1,457 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
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 ActiveSupport::Testing::Declarative
|
|
8
|
-
sig { params(name: String, block: T.proc.bind(T.untyped).void).void }
|
|
9
|
-
def test(name, &block); end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
class ActiveSupport::EnvironmentInquirer
|
|
13
|
-
sig { returns(T::Boolean) }
|
|
14
|
-
def development?; end
|
|
15
|
-
|
|
16
|
-
sig { returns(T::Boolean) }
|
|
17
|
-
def production?; end
|
|
18
|
-
|
|
19
|
-
sig { returns(T::Boolean) }
|
|
20
|
-
def test?; end
|
|
21
|
-
|
|
22
|
-
# @method_missing: delegated to String through ActiveSupport::StringInquirer
|
|
23
|
-
sig { returns(T::Boolean) }
|
|
24
|
-
def staging?; end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
module ActiveSupport::Testing::SetupAndTeardown::ClassMethods
|
|
28
|
-
sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void }
|
|
29
|
-
def setup(*args, &block); end
|
|
30
|
-
|
|
31
|
-
sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void }
|
|
32
|
-
def teardown(*args, &block); end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
class ActiveSupport::TestCase
|
|
36
|
-
sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void }
|
|
37
|
-
def self.setup(*args, &block); end
|
|
38
|
-
|
|
39
|
-
sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void }
|
|
40
|
-
def self.teardown(*args, &block); end
|
|
41
|
-
|
|
42
|
-
sig { params(name: String, block: T.proc.bind(T.attached_class).void).void }
|
|
43
|
-
def self.test(name, &block); end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
class ActiveSupport::TimeWithZone
|
|
47
|
-
# @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing
|
|
48
|
-
include ::DateAndTime::Zones
|
|
49
|
-
|
|
50
|
-
# @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing
|
|
51
|
-
include ::DateAndTime::Calculations
|
|
52
|
-
|
|
53
|
-
sig { returns(FalseClass) }
|
|
54
|
-
def blank?; end
|
|
55
|
-
|
|
56
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
57
|
-
sig { returns(T.self_type) }
|
|
58
|
-
def presence; end
|
|
59
|
-
|
|
60
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
61
|
-
sig { returns(TrueClass) }
|
|
62
|
-
def present?; end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
class Object
|
|
66
|
-
sig { returns(T::Boolean) }
|
|
67
|
-
def blank?; end
|
|
68
|
-
|
|
69
|
-
sig { returns(FalseClass) }
|
|
70
|
-
def html_safe?; end
|
|
71
|
-
|
|
72
|
-
sig { returns(T.nilable(T.self_type)) }
|
|
73
|
-
def presence; end
|
|
74
|
-
|
|
75
|
-
sig { params(another_object: T.untyped).returns(T.nilable(T.self_type)) }
|
|
76
|
-
def presence_in(another_object); end
|
|
77
|
-
|
|
78
|
-
sig { returns(T::Boolean) }
|
|
79
|
-
def present?; end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
class Hash
|
|
83
|
-
sig { returns(T::Boolean) }
|
|
84
|
-
def blank?; end
|
|
85
|
-
|
|
86
|
-
sig { returns(T::Boolean) }
|
|
87
|
-
def present?; end
|
|
88
|
-
|
|
89
|
-
sig { returns(T::Boolean) }
|
|
90
|
-
def extractable_options?; end
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
class Array
|
|
94
|
-
sig { returns(T::Boolean) }
|
|
95
|
-
def blank?; end
|
|
96
|
-
|
|
97
|
-
sig { returns(T::Boolean) }
|
|
98
|
-
def present?; end
|
|
99
|
-
|
|
100
|
-
sig { params(position: Integer).returns(T.self_type) }
|
|
101
|
-
def from(position); end
|
|
102
|
-
|
|
103
|
-
sig { params(position: Integer).returns(T.self_type) }
|
|
104
|
-
def to(position); end
|
|
105
|
-
|
|
106
|
-
sig { params(elements: T.untyped).returns(T::Array[T.untyped]) }
|
|
107
|
-
def including(*elements); end
|
|
108
|
-
|
|
109
|
-
sig { params(elements: T.untyped).returns(T.self_type) }
|
|
110
|
-
def excluding(*elements); end
|
|
111
|
-
|
|
112
|
-
sig { params(elements: T.untyped).returns(T.self_type) }
|
|
113
|
-
def without(*elements); end
|
|
114
|
-
|
|
115
|
-
sig { returns(T.nilable(Elem)) }
|
|
116
|
-
def second; end
|
|
117
|
-
|
|
118
|
-
sig { returns(T.nilable(Elem)) }
|
|
119
|
-
def third; end
|
|
120
|
-
|
|
121
|
-
sig { returns(T.nilable(Elem)) }
|
|
122
|
-
def fourth; end
|
|
123
|
-
|
|
124
|
-
sig { returns(T.nilable(Elem)) }
|
|
125
|
-
def fifth; end
|
|
126
|
-
|
|
127
|
-
sig { returns(T.nilable(Elem)) }
|
|
128
|
-
def forty_two; end
|
|
129
|
-
|
|
130
|
-
sig { returns(T.nilable(Elem)) }
|
|
131
|
-
def third_to_last; end
|
|
132
|
-
|
|
133
|
-
sig { returns(T.nilable(Elem)) }
|
|
134
|
-
def second_to_last; end
|
|
135
|
-
|
|
136
|
-
sig { params(options: T::Hash[T.untyped, T.untyped]).returns(String) }
|
|
137
|
-
def to_sentence(options = {}); end
|
|
138
|
-
|
|
139
|
-
sig { params(format: Symbol).returns(String) }
|
|
140
|
-
def to_fs(format = :default); end
|
|
141
|
-
|
|
142
|
-
sig { params(format: Symbol).returns(String) }
|
|
143
|
-
def to_formatted_s(format = :default); end
|
|
144
|
-
|
|
145
|
-
sig { returns(String) }
|
|
146
|
-
def to_xml; end
|
|
147
|
-
|
|
148
|
-
sig { returns(T::Hash[T.untyped, T.untyped]) }
|
|
149
|
-
def extract_options!; end
|
|
150
|
-
|
|
151
|
-
sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) }
|
|
152
|
-
def in_groups(number, fill_with = T.unsafe(nil), &block); end
|
|
153
|
-
|
|
154
|
-
sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) }
|
|
155
|
-
def in_groups_of(number, fill_with = T.unsafe(nil), &block); end
|
|
156
|
-
|
|
157
|
-
sig { params(value: T.untyped, block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T::Array[T::Array[Elem]]) }
|
|
158
|
-
def split(value = nil, &block); end
|
|
159
|
-
|
|
160
|
-
sig { params(block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T.any(T::Array[Elem], T::Enumerator[Elem])) }
|
|
161
|
-
def extract!(&block); end
|
|
162
|
-
|
|
163
|
-
sig { returns(ActiveSupport::ArrayInquirer) }
|
|
164
|
-
def inquiry; end
|
|
165
|
-
|
|
166
|
-
sig { params(object: T.untyped).returns(T::Array[T.untyped]) }
|
|
167
|
-
def self.wrap(object); end
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
class Date
|
|
171
|
-
sig { returns(FalseClass) }
|
|
172
|
-
def blank?; end
|
|
173
|
-
|
|
174
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
175
|
-
sig { returns(T.self_type) }
|
|
176
|
-
def presence; end
|
|
177
|
-
|
|
178
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
179
|
-
sig { returns(TrueClass) }
|
|
180
|
-
def present?; end
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
class DateTime
|
|
184
|
-
sig { returns(FalseClass) }
|
|
185
|
-
def blank?; end
|
|
186
|
-
|
|
187
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
188
|
-
sig { returns(T.self_type) }
|
|
189
|
-
def presence; end
|
|
190
|
-
|
|
191
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
192
|
-
sig { returns(TrueClass) }
|
|
193
|
-
def present?; end
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
class NilClass
|
|
197
|
-
sig { returns(TrueClass) }
|
|
198
|
-
def blank?; end
|
|
199
|
-
|
|
200
|
-
# @shim: since `present?` is always false, `presence` always returns `nil`
|
|
201
|
-
sig { returns(NilClass) }
|
|
202
|
-
def presence; end
|
|
203
|
-
|
|
204
|
-
# @shim: since `blank?` is always true, `present?` always returns `false`
|
|
205
|
-
sig { returns(FalseClass) }
|
|
206
|
-
def present?; end
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
class FalseClass
|
|
210
|
-
sig { returns(TrueClass) }
|
|
211
|
-
def blank?; end
|
|
212
|
-
|
|
213
|
-
# @shim: since `present?` is always false, `presence` always returns `nil`
|
|
214
|
-
sig { returns(NilClass) }
|
|
215
|
-
def presence; end
|
|
216
|
-
|
|
217
|
-
# @shim: since `blank?` is always true, `present?` always returns `false`
|
|
218
|
-
sig { returns(FalseClass) }
|
|
219
|
-
def present?; end
|
|
220
|
-
end
|
|
221
|
-
|
|
222
|
-
class TrueClass
|
|
223
|
-
sig { returns(FalseClass) }
|
|
224
|
-
def blank?; end
|
|
225
|
-
|
|
226
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
227
|
-
sig { returns(T.self_type) }
|
|
228
|
-
def presence; end
|
|
229
|
-
|
|
230
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
231
|
-
sig { returns(TrueClass) }
|
|
232
|
-
def present?; end
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
class Numeric
|
|
236
|
-
sig { returns(FalseClass) }
|
|
237
|
-
def blank?; end
|
|
238
|
-
|
|
239
|
-
sig { returns(TrueClass) }
|
|
240
|
-
def html_safe?; end
|
|
241
|
-
|
|
242
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
243
|
-
sig { returns(T.self_type) }
|
|
244
|
-
def presence; end
|
|
245
|
-
|
|
246
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
247
|
-
sig { returns(TrueClass) }
|
|
248
|
-
def present?; end
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
class Time
|
|
252
|
-
sig { returns(FalseClass) }
|
|
253
|
-
def blank?; end
|
|
254
|
-
|
|
255
|
-
# @shim: since `present?` is always true, `presence` always returns `self`
|
|
256
|
-
sig { returns(T.self_type) }
|
|
257
|
-
def presence; end
|
|
258
|
-
|
|
259
|
-
# @shim: since `blank?` is always false, `present?` always returns `true`
|
|
260
|
-
sig { returns(TrueClass) }
|
|
261
|
-
def present?; end
|
|
262
|
-
|
|
263
|
-
sig { returns(ActiveSupport::TimeZone) }
|
|
264
|
-
def self.zone; end
|
|
265
|
-
|
|
266
|
-
sig { returns(T.any(ActiveSupport::TimeWithZone, ::Time)) }
|
|
267
|
-
def self.current; end
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
class Symbol
|
|
271
|
-
sig { returns(T::Boolean) }
|
|
272
|
-
def blank?; end
|
|
273
|
-
|
|
274
|
-
sig { returns(T::Boolean) }
|
|
275
|
-
def present?; end
|
|
276
|
-
|
|
277
|
-
# alias for `#start_with?`
|
|
278
|
-
sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
|
|
279
|
-
def starts_with?(*string_or_regexp); end
|
|
280
|
-
|
|
281
|
-
# alias for `#end_with?`
|
|
282
|
-
sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
|
|
283
|
-
def ends_with?(*string_or_regexp); end
|
|
284
|
-
end
|
|
285
|
-
|
|
286
|
-
class String
|
|
287
|
-
sig { returns(TrueClass) }
|
|
288
|
-
def acts_like_string?; end
|
|
289
|
-
|
|
290
|
-
# This is the subset of `#[]` sigs that have just 1 parameter.
|
|
291
|
-
# https://github.com/sorbet/sorbet/blob/40ad87b4dc7be23fa00c1369ac9f927053c68907/rbi/core/string.rbi#L270-L303
|
|
292
|
-
sig { params(position: Integer).returns(T.nilable(String)) }
|
|
293
|
-
sig { params(position: T.any(T::Range[Integer], Regexp)).returns(T.nilable(String)) }
|
|
294
|
-
sig { params(position: String).returns(T.nilable(String)) }
|
|
295
|
-
def at(position); end
|
|
296
|
-
|
|
297
|
-
sig { returns(String) }
|
|
298
|
-
def as_json; end
|
|
299
|
-
|
|
300
|
-
sig { returns(T::Boolean) }
|
|
301
|
-
def blank?; end
|
|
302
|
-
|
|
303
|
-
sig { params(first_letter: Symbol).returns(String) }
|
|
304
|
-
def camelcase(first_letter = :upper); end
|
|
305
|
-
|
|
306
|
-
sig { params(first_letter: Symbol).returns(String) }
|
|
307
|
-
def camelize(first_letter = :upper); end
|
|
308
|
-
|
|
309
|
-
sig { returns(String) }
|
|
310
|
-
def classify; end
|
|
311
|
-
|
|
312
|
-
sig { returns(T.untyped) }
|
|
313
|
-
def constantize; end
|
|
314
|
-
|
|
315
|
-
sig { returns(String) }
|
|
316
|
-
def dasherize; end
|
|
317
|
-
|
|
318
|
-
sig { returns(String) }
|
|
319
|
-
def deconstantize; end
|
|
320
|
-
|
|
321
|
-
sig { returns(String) }
|
|
322
|
-
def demodulize; end
|
|
323
|
-
|
|
324
|
-
# alias for `#end_with?`
|
|
325
|
-
sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
|
|
326
|
-
def ends_with?(*string_or_regexp); end
|
|
327
|
-
|
|
328
|
-
sig { returns(String) }
|
|
329
|
-
def downcase_first; end
|
|
330
|
-
|
|
331
|
-
sig { params(string: String).returns(T::Boolean) }
|
|
332
|
-
def exclude?(string); end
|
|
333
|
-
|
|
334
|
-
sig { params(limit: Integer).returns(String) }
|
|
335
|
-
def first(limit = 1); end
|
|
336
|
-
|
|
337
|
-
sig { params(separate_class_name_and_id_with_underscore: T::Boolean).returns(String) }
|
|
338
|
-
def foreign_key(separate_class_name_and_id_with_underscore = true); end
|
|
339
|
-
|
|
340
|
-
sig { params(position: Integer).returns(String) }
|
|
341
|
-
def from(position); end
|
|
342
|
-
|
|
343
|
-
sig { returns(ActiveSupport::SafeBuffer) }
|
|
344
|
-
def html_safe; end
|
|
345
|
-
|
|
346
|
-
sig { params(capitalize: T::Boolean, keep_id_suffix: T::Boolean).returns(String) }
|
|
347
|
-
def humanize(capitalize: true, keep_id_suffix: false); end
|
|
348
|
-
|
|
349
|
-
sig { params(zone: T.nilable(T.any(ActiveSupport::TimeZone, String))).returns(T.any(ActiveSupport::TimeWithZone, Time)) }
|
|
350
|
-
def in_time_zone(zone = ::Time.zone); end
|
|
351
|
-
|
|
352
|
-
sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(String) }
|
|
353
|
-
def indent(amount, indent_string = nil, indent_empty_lines = false); end
|
|
354
|
-
|
|
355
|
-
sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(T.nilable(String)) }
|
|
356
|
-
def indent!(amount, indent_string = nil, indent_empty_lines = false); end
|
|
357
|
-
|
|
358
|
-
sig { returns(ActiveSupport::StringInquirer) }
|
|
359
|
-
def inquiry; end
|
|
360
|
-
|
|
361
|
-
sig { returns(T::Boolean) }
|
|
362
|
-
def is_utf8?; end
|
|
363
|
-
|
|
364
|
-
sig { params(limit: Integer).returns(String) }
|
|
365
|
-
def last(limit = 1); end
|
|
366
|
-
|
|
367
|
-
sig { returns(ActiveSupport::Multibyte::Chars) }
|
|
368
|
-
def mb_chars; end
|
|
369
|
-
|
|
370
|
-
sig { params(separator: String, preserve_case: T::Boolean, locale: T.nilable(Symbol)).returns(String) }
|
|
371
|
-
def parameterize(separator: "-", preserve_case: false, locale: nil); end
|
|
372
|
-
|
|
373
|
-
sig { params(count: T.nilable(T.any(Integer, Symbol)), locale: T.nilable(Symbol)).returns(String) }
|
|
374
|
-
def pluralize(count = nil, locale = :en); end
|
|
375
|
-
|
|
376
|
-
sig { returns(T::Boolean) }
|
|
377
|
-
def present?; end
|
|
378
|
-
|
|
379
|
-
sig { params(patterns: T.any(String, Regexp)).returns(String) }
|
|
380
|
-
def remove(*patterns); end
|
|
381
|
-
|
|
382
|
-
sig { params(patterns: T.any(String, Regexp)).returns(String) }
|
|
383
|
-
def remove!(*patterns); end
|
|
384
|
-
|
|
385
|
-
sig { returns(T.untyped) }
|
|
386
|
-
def safe_constantize; end
|
|
387
|
-
|
|
388
|
-
sig { params(locale: Symbol).returns(String) }
|
|
389
|
-
def singularize(locale = :en); end
|
|
390
|
-
|
|
391
|
-
sig { returns(String) }
|
|
392
|
-
def squish; end
|
|
393
|
-
|
|
394
|
-
sig { returns(String) }
|
|
395
|
-
def squish!; end
|
|
396
|
-
|
|
397
|
-
# alias for `#start_with?`
|
|
398
|
-
sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
|
|
399
|
-
def starts_with?(*string_or_regexp); end
|
|
400
|
-
|
|
401
|
-
sig { returns(String) }
|
|
402
|
-
def strip_heredoc; end
|
|
403
|
-
|
|
404
|
-
sig { returns(String) }
|
|
405
|
-
def tableize; end
|
|
406
|
-
|
|
407
|
-
sig { params(keep_id_suffix: T::Boolean).returns(String) }
|
|
408
|
-
def titlecase(keep_id_suffix: false); end
|
|
409
|
-
|
|
410
|
-
sig { params(keep_id_suffix: T::Boolean).returns(String) }
|
|
411
|
-
def titleize(keep_id_suffix: false); end
|
|
412
|
-
|
|
413
|
-
sig { params(position: Integer).returns(String) }
|
|
414
|
-
def to(position); end
|
|
415
|
-
|
|
416
|
-
sig { returns(::Date) }
|
|
417
|
-
def to_date; end
|
|
418
|
-
|
|
419
|
-
sig { returns(::DateTime) }
|
|
420
|
-
def to_datetime; end
|
|
421
|
-
|
|
422
|
-
sig { params(form: T.nilable(Symbol)).returns(T.nilable(Time)) }
|
|
423
|
-
def to_time(form = :local); end
|
|
424
|
-
|
|
425
|
-
sig { params(truncate_to: Integer, options: T::Hash[Symbol, T.anything]).returns(String) }
|
|
426
|
-
def truncate(truncate_to, options = {}); end
|
|
427
|
-
|
|
428
|
-
sig { params(truncate_to: Integer, omission: T.nilable(String)).returns(String) }
|
|
429
|
-
def truncate_bytes(truncate_to, omission: "…"); end
|
|
430
|
-
|
|
431
|
-
sig { params(words_count: Integer, options: T::Hash[Symbol, T.anything]).returns(String) }
|
|
432
|
-
def truncate_words(words_count, options = {}); end
|
|
433
|
-
|
|
434
|
-
sig { returns(String) }
|
|
435
|
-
def underscore; end
|
|
436
|
-
|
|
437
|
-
sig { returns(String) }
|
|
438
|
-
def upcase_first; end
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
class ActiveSupport::ErrorReporter
|
|
442
|
-
# @version >= 7.1.0.beta1
|
|
443
|
-
sig { type_parameters(:Block, :Fallback).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), fallback: T.nilable(T.proc.returns(T.type_parameter(:Fallback))), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.any(T.type_parameter(:Block), T.type_parameter(:Fallback))) }
|
|
444
|
-
def handle(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), fallback: T.unsafe(nil), source: T.unsafe(nil), &blk); end
|
|
445
|
-
|
|
446
|
-
# @version >= 7.1.0.beta1
|
|
447
|
-
sig { type_parameters(:Block).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.type_parameter(:Block)) }
|
|
448
|
-
def record(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil), &blk); end
|
|
449
|
-
|
|
450
|
-
# @version >= 7.1.0.beta1
|
|
451
|
-
sig { params(error: Exception, handled: T::Boolean, severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
|
|
452
|
-
def report(error, handled: true, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
|
|
453
|
-
|
|
454
|
-
# @version >= 7.2.0.beta1
|
|
455
|
-
sig { params(error: T.any(Exception, String), severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
|
|
456
|
-
def unexpected(error, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
|
|
457
|
-
end
|