sorbet-schema 0.5.0 → 0.5.1
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/CHANGELOG.md +7 -0
- data/Gemfile.lock +27 -27
- data/lib/sorbet-schema/version.rb +1 -1
- data/lib/typed/coercion/struct_coercer.rb +35 -1
- data/sorbet/rbi/gems/{builder@3.2.4.rbi → builder@3.3.0.rbi} +22 -25
- data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.0.rbi} +19 -15
- data/sorbet/rbi/gems/{minitest-reporters@1.6.1.rbi → minitest-reporters@1.7.1.rbi} +47 -40
- data/sorbet/rbi/gems/{minitest@5.23.1.rbi → minitest@5.24.0.rbi} +159 -151
- data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.25.1.rbi} +26 -20
- data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@0.30.0.rbi} +5670 -4445
- data/sorbet/rbi/gems/{rexml@3.2.8.rbi → rexml@3.3.0.rbi} +69 -62
- data/sorbet/rbi/gems/{rubocop@1.63.5.rbi → rubocop@1.64.1.rbi} +660 -344
- data/sorbet/rbi/gems/{standard@1.36.0.rbi → standard@1.39.0.rbi} +159 -90
- data/sorbet/rbi/gems/{tapioca@0.14.2.rbi → tapioca@0.14.4.rbi} +89 -76
- data/sorbet/rbi/gems/{zeitwerk@2.6.15.rbi → zeitwerk@2.6.16.rbi} +115 -78
- metadata +17 -17
- /data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.3.0.rbi} +0 -0
- /data/sorbet/rbi/gems/{reline@0.5.7.rbi → reline@0.5.9.rbi} +0 -0
- /data/sorbet/rbi/gems/{rubocop-performance@1.21.0.rbi → rubocop-performance@1.21.1.rbi} +0 -0
- /data/sorbet/rbi/gems/{stringio@3.1.0.rbi → stringio@3.1.1.rbi} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 32a23b4d9a5e1eda6fcf49b64428f55fbf1d89f63754de35bf2e0e3a875e018c
|
|
4
|
+
data.tar.gz: e76f273b8e566f78e6c18effa1699e3f6afa17311abee06a2183778e7a97f93a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5e7dcb508366dcda8311bf089ae6877c8ff5ba8fc41e0bec9adcd18ca8f3b3723693cd5139a1ee34d46dfcf0643d511edc04d689a93715e72aa33a2f764454e2
|
|
7
|
+
data.tar.gz: bf2c62a198b37caae70736bd1aa954476ef2697c44aa793381f91787b4ad6b78bad0e731a69c3dddb4c7398a3a07092cdebf779d95e27be1fbb68d43bf74958f
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.5.1](https://github.com/maxveldink/sorbet-schema/compare/v0.5.0...v0.5.1) (2024-06-26)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* support nested structs ([#102](https://github.com/maxveldink/sorbet-schema/issues/102)) ([08428e1](https://github.com/maxveldink/sorbet-schema/commit/08428e18afdbb4121ef2f290e8a85651b2e13edf))
|
|
13
|
+
|
|
7
14
|
## [0.5.0](https://github.com/maxveldink/sorbet-schema/compare/v0.4.2...v0.5.0) (2024-04-19)
|
|
8
15
|
|
|
9
16
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
sorbet-schema (0.5.
|
|
4
|
+
sorbet-schema (0.5.1)
|
|
5
5
|
sorbet-result (~> 1.1)
|
|
6
6
|
sorbet-runtime (~> 0.5)
|
|
7
7
|
sorbet-struct-comparable (~> 1.3)
|
|
@@ -13,32 +13,32 @@ GEM
|
|
|
13
13
|
ansi (1.5.0)
|
|
14
14
|
ast (2.4.2)
|
|
15
15
|
bigdecimal (3.1.8)
|
|
16
|
-
builder (3.
|
|
16
|
+
builder (3.3.0)
|
|
17
17
|
debug (1.9.2)
|
|
18
18
|
irb (~> 1.10)
|
|
19
19
|
reline (>= 0.3.8)
|
|
20
|
-
erubi (1.
|
|
20
|
+
erubi (1.13.0)
|
|
21
21
|
io-console (0.7.2)
|
|
22
|
-
irb (1.13.
|
|
22
|
+
irb (1.13.2)
|
|
23
23
|
rdoc (>= 4.0.0)
|
|
24
24
|
reline (>= 0.4.2)
|
|
25
25
|
json (2.7.2)
|
|
26
26
|
language_server-protocol (3.17.0.3)
|
|
27
27
|
lint_roller (1.1.0)
|
|
28
|
-
minitest (5.
|
|
28
|
+
minitest (5.24.0)
|
|
29
29
|
minitest-focus (1.4.0)
|
|
30
30
|
minitest (>= 4, < 6)
|
|
31
|
-
minitest-reporters (1.
|
|
31
|
+
minitest-reporters (1.7.1)
|
|
32
32
|
ansi
|
|
33
33
|
builder
|
|
34
34
|
minitest (>= 5.0)
|
|
35
35
|
ruby-progressbar
|
|
36
36
|
netrc (0.11.0)
|
|
37
|
-
parallel (1.
|
|
38
|
-
parser (3.3.
|
|
37
|
+
parallel (1.25.1)
|
|
38
|
+
parser (3.3.3.0)
|
|
39
39
|
ast (~> 2.4.1)
|
|
40
40
|
racc
|
|
41
|
-
prism (0.
|
|
41
|
+
prism (0.30.0)
|
|
42
42
|
psych (5.1.2)
|
|
43
43
|
stringio
|
|
44
44
|
racc (1.8.0)
|
|
@@ -50,11 +50,11 @@ GEM
|
|
|
50
50
|
rdoc (6.7.0)
|
|
51
51
|
psych (>= 4.0.0)
|
|
52
52
|
regexp_parser (2.9.2)
|
|
53
|
-
reline (0.5.
|
|
53
|
+
reline (0.5.9)
|
|
54
54
|
io-console (~> 0.5)
|
|
55
|
-
rexml (3.
|
|
56
|
-
strscan
|
|
57
|
-
rubocop (1.
|
|
55
|
+
rexml (3.3.0)
|
|
56
|
+
strscan
|
|
57
|
+
rubocop (1.64.1)
|
|
58
58
|
json (~> 2.3)
|
|
59
59
|
language_server-protocol (>= 3.17.0)
|
|
60
60
|
parallel (~> 1.10)
|
|
@@ -67,22 +67,22 @@ GEM
|
|
|
67
67
|
unicode-display_width (>= 2.4.0, < 3.0)
|
|
68
68
|
rubocop-ast (1.31.3)
|
|
69
69
|
parser (>= 3.3.1.0)
|
|
70
|
-
rubocop-performance (1.21.
|
|
70
|
+
rubocop-performance (1.21.1)
|
|
71
71
|
rubocop (>= 1.48.1, < 2.0)
|
|
72
72
|
rubocop-ast (>= 1.31.1, < 2.0)
|
|
73
73
|
rubocop-sorbet (0.7.8)
|
|
74
74
|
rubocop (>= 0.90.0)
|
|
75
75
|
ruby-progressbar (1.13.0)
|
|
76
|
-
sorbet (0.5.
|
|
77
|
-
sorbet-static (= 0.5.
|
|
76
|
+
sorbet (0.5.11444)
|
|
77
|
+
sorbet-static (= 0.5.11444)
|
|
78
78
|
sorbet-result (1.1.0)
|
|
79
79
|
sorbet-runtime (~> 0.5)
|
|
80
|
-
sorbet-runtime (0.5.
|
|
81
|
-
sorbet-static (0.5.
|
|
82
|
-
sorbet-static (0.5.
|
|
83
|
-
sorbet-static-and-runtime (0.5.
|
|
84
|
-
sorbet (= 0.5.
|
|
85
|
-
sorbet-runtime (= 0.5.
|
|
80
|
+
sorbet-runtime (0.5.11444)
|
|
81
|
+
sorbet-static (0.5.11444-universal-darwin)
|
|
82
|
+
sorbet-static (0.5.11444-x86_64-linux)
|
|
83
|
+
sorbet-static-and-runtime (0.5.11444)
|
|
84
|
+
sorbet (= 0.5.11444)
|
|
85
|
+
sorbet-runtime (= 0.5.11444)
|
|
86
86
|
sorbet-struct-comparable (1.3.0)
|
|
87
87
|
sorbet-runtime (>= 0.5)
|
|
88
88
|
spoom (1.3.2)
|
|
@@ -90,10 +90,10 @@ GEM
|
|
|
90
90
|
prism (>= 0.19.0)
|
|
91
91
|
sorbet-static-and-runtime (>= 0.5.10187)
|
|
92
92
|
thor (>= 0.19.2)
|
|
93
|
-
standard (1.
|
|
93
|
+
standard (1.39.0)
|
|
94
94
|
language_server-protocol (~> 3.17.0.2)
|
|
95
95
|
lint_roller (~> 1.0)
|
|
96
|
-
rubocop (~> 1.
|
|
96
|
+
rubocop (~> 1.64.0)
|
|
97
97
|
standard-custom (~> 1.0.0)
|
|
98
98
|
standard-performance (~> 1.4)
|
|
99
99
|
standard-custom (1.0.2)
|
|
@@ -105,9 +105,9 @@ GEM
|
|
|
105
105
|
standard-sorbet (0.0.2)
|
|
106
106
|
lint_roller (~> 1.1)
|
|
107
107
|
rubocop-sorbet (~> 0.7.0)
|
|
108
|
-
stringio (3.1.
|
|
108
|
+
stringio (3.1.1)
|
|
109
109
|
strscan (3.1.0)
|
|
110
|
-
tapioca (0.14.
|
|
110
|
+
tapioca (0.14.4)
|
|
111
111
|
bundler (>= 2.2.25)
|
|
112
112
|
netrc (>= 0.11.0)
|
|
113
113
|
parallel (>= 1.21.0)
|
|
@@ -122,7 +122,7 @@ GEM
|
|
|
122
122
|
yard-sorbet (0.8.1)
|
|
123
123
|
sorbet-runtime (>= 0.5)
|
|
124
124
|
yard (>= 0.9)
|
|
125
|
-
zeitwerk (2.6.
|
|
125
|
+
zeitwerk (2.6.16)
|
|
126
126
|
|
|
127
127
|
PLATFORMS
|
|
128
128
|
arm64-darwin-22
|
|
@@ -21,7 +21,41 @@ module Typed
|
|
|
21
21
|
|
|
22
22
|
return Failure.new(CoercionError.new("Value of type '#{value.class}' cannot be coerced to #{type} Struct.")) unless value.is_a?(Hash)
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
values = {}
|
|
25
|
+
|
|
26
|
+
type = T.cast(type, T::Types::Simple)
|
|
27
|
+
|
|
28
|
+
type.raw_type.props.each do |name, prop|
|
|
29
|
+
attribute_type = prop[:type_object]
|
|
30
|
+
value = HashTransformer.new.deep_symbolize_keys(value)
|
|
31
|
+
|
|
32
|
+
if value[name].nil?
|
|
33
|
+
# if the value is nil but the type is nilable, no need to coerce
|
|
34
|
+
next if attribute_type.respond_to?(:valid?) && attribute_type.valid?(value[name])
|
|
35
|
+
|
|
36
|
+
return Typed::Failure.new(CoercionError.new("#{name} is required but nil given"))
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# now that we've done the nil check, we can unwrap the nilable type to get the raw type
|
|
40
|
+
simple_attribute_type = attribute_type.respond_to?(:unwrap_nilable) ? attribute_type.unwrap_nilable : attribute_type
|
|
41
|
+
|
|
42
|
+
# if the prop is a struct, we need to recursively coerce it
|
|
43
|
+
if simple_attribute_type.respond_to?(:raw_type) && simple_attribute_type.raw_type <= T::Struct
|
|
44
|
+
Typed::HashSerializer
|
|
45
|
+
.new(schema: simple_attribute_type.raw_type.schema)
|
|
46
|
+
.deserialize(value[name])
|
|
47
|
+
.and_then { |struct| Typed::Success.new(values[name] = struct) }
|
|
48
|
+
.on_error { |error| return Typed::Failure.new(CoercionError.new("Nested hash for #{type} could not be coerced to #{name}, error: #{error}")) }
|
|
49
|
+
else
|
|
50
|
+
value = HashTransformer.new.deep_symbolize_keys(value)
|
|
51
|
+
|
|
52
|
+
Coercion
|
|
53
|
+
.coerce(type: attribute_type, value: value[name])
|
|
54
|
+
.and_then { |coerced_value| Typed::Success.new(values[name] = coerced_value) }
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
Success.new(type.raw_type.new(values))
|
|
25
59
|
rescue ArgumentError, RuntimeError
|
|
26
60
|
Failure.new(CoercionError.new("Given hash could not be coerced to #{type}."))
|
|
27
61
|
end
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# If the Builder::XChar module is not currently defined, fail on any
|
|
9
9
|
# name clashes in standard library classes.
|
|
10
10
|
#
|
|
11
|
-
# source://builder//lib/builder/
|
|
11
|
+
# source://builder//lib/builder/xmlbase.rb#4
|
|
12
12
|
module Builder
|
|
13
13
|
class << self
|
|
14
14
|
# source://builder//lib/builder/xchar.rb#13
|
|
@@ -16,12 +16,9 @@ module Builder
|
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
# source://builder//lib/builder/blankslate.rb#19
|
|
20
|
-
Builder::BlankSlate = BasicObject
|
|
21
|
-
|
|
22
19
|
# Generic error for builder
|
|
23
20
|
#
|
|
24
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
21
|
+
# source://builder//lib/builder/xmlbase.rb#7
|
|
25
22
|
class Builder::IllegalBlockError < ::RuntimeError; end
|
|
26
23
|
|
|
27
24
|
# source://builder//lib/builder/xchar.rb#33
|
|
@@ -86,7 +83,7 @@ Builder::XChar::XML_PREDEFINED = T.let(T.unsafe(nil), Regexp)
|
|
|
86
83
|
# XmlBase is a base class for building XML builders. See
|
|
87
84
|
# Builder::XmlMarkup and Builder::XmlEvents for examples.
|
|
88
85
|
#
|
|
89
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
86
|
+
# source://builder//lib/builder/xmlbase.rb#11
|
|
90
87
|
class Builder::XmlBase < ::BasicObject
|
|
91
88
|
# Create an XML markup builder.
|
|
92
89
|
#
|
|
@@ -101,7 +98,7 @@ class Builder::XmlBase < ::BasicObject
|
|
|
101
98
|
#
|
|
102
99
|
# @return [XmlBase] a new instance of XmlBase
|
|
103
100
|
#
|
|
104
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
101
|
+
# source://builder//lib/builder/xmlbase.rb#27
|
|
105
102
|
def initialize(indent = T.unsafe(nil), initial = T.unsafe(nil), encoding = T.unsafe(nil)); end
|
|
106
103
|
|
|
107
104
|
# Append text to the output target without escaping any markup.
|
|
@@ -118,19 +115,19 @@ class Builder::XmlBase < ::BasicObject
|
|
|
118
115
|
# method/operation builders can use other builders as their
|
|
119
116
|
# targets.
|
|
120
117
|
#
|
|
121
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
118
|
+
# source://builder//lib/builder/xmlbase.rb#116
|
|
122
119
|
def <<(text); end
|
|
123
120
|
|
|
124
121
|
# @return [Boolean]
|
|
125
122
|
#
|
|
126
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
123
|
+
# source://builder//lib/builder/xmlbase.rb#33
|
|
127
124
|
def explicit_nil_handling?; end
|
|
128
125
|
|
|
129
126
|
# Create XML markup based on the name of the method. This method
|
|
130
127
|
# is never invoked directly, but is called for each markup method
|
|
131
128
|
# in the markup block that isn't cached.
|
|
132
129
|
#
|
|
133
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
130
|
+
# source://builder//lib/builder/xmlbase.rb#90
|
|
134
131
|
def method_missing(sym, *args, &block); end
|
|
135
132
|
|
|
136
133
|
# For some reason, nil? is sent to the XmlMarkup object. If nil?
|
|
@@ -142,14 +139,14 @@ class Builder::XmlBase < ::BasicObject
|
|
|
142
139
|
#
|
|
143
140
|
# @return [Boolean]
|
|
144
141
|
#
|
|
145
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
142
|
+
# source://builder//lib/builder/xmlbase.rb#126
|
|
146
143
|
def nil?; end
|
|
147
144
|
|
|
148
145
|
# Create a tag named +sym+. Other than the first argument which
|
|
149
146
|
# is the tag name, the arguments are the same as the tags
|
|
150
147
|
# implemented via <tt>method_missing</tt>.
|
|
151
148
|
#
|
|
152
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
149
|
+
# source://builder//lib/builder/xmlbase.rb#40
|
|
153
150
|
def tag!(sym, *args, &block); end
|
|
154
151
|
|
|
155
152
|
# Append text to the output target. Escape any markup. May be
|
|
@@ -157,24 +154,24 @@ class Builder::XmlBase < ::BasicObject
|
|
|
157
154
|
#
|
|
158
155
|
# builder.p { |b| b.br; b.text! "HI" } #=> <p><br/>HI</p>
|
|
159
156
|
#
|
|
160
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
157
|
+
# source://builder//lib/builder/xmlbase.rb#99
|
|
161
158
|
def text!(text); end
|
|
162
159
|
|
|
163
160
|
private
|
|
164
161
|
|
|
165
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
162
|
+
# source://builder//lib/builder/xmlbase.rb#134
|
|
166
163
|
def _escape(text); end
|
|
167
164
|
|
|
168
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
165
|
+
# source://builder//lib/builder/xmlbase.rb#157
|
|
169
166
|
def _escape_attribute(text); end
|
|
170
167
|
|
|
171
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
168
|
+
# source://builder//lib/builder/xmlbase.rb#167
|
|
172
169
|
def _indent; end
|
|
173
170
|
|
|
174
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
171
|
+
# source://builder//lib/builder/xmlbase.rb#172
|
|
175
172
|
def _nested_structures(block); end
|
|
176
173
|
|
|
177
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
174
|
+
# source://builder//lib/builder/xmlbase.rb#162
|
|
178
175
|
def _newline; end
|
|
179
176
|
|
|
180
177
|
# If XmlBase.cache_method_calls = true, we dynamicly create the method
|
|
@@ -184,20 +181,20 @@ class Builder::XmlBase < ::BasicObject
|
|
|
184
181
|
# method_missing is very slow, this speeds up document generation
|
|
185
182
|
# significantly.
|
|
186
183
|
#
|
|
187
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
184
|
+
# source://builder//lib/builder/xmlbase.rb#185
|
|
188
185
|
def cache_method_call(sym); end
|
|
189
186
|
|
|
190
187
|
class << self
|
|
191
188
|
# Returns the value of attribute cache_method_calls.
|
|
192
189
|
#
|
|
193
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
190
|
+
# source://builder//lib/builder/xmlbase.rb#14
|
|
194
191
|
def cache_method_calls; end
|
|
195
192
|
|
|
196
193
|
# Sets the attribute cache_method_calls
|
|
197
194
|
#
|
|
198
195
|
# @param value the value to set the attribute cache_method_calls to.
|
|
199
196
|
#
|
|
200
|
-
# source://builder//lib/builder/xmlbase.rb#
|
|
197
|
+
# source://builder//lib/builder/xmlbase.rb#14
|
|
201
198
|
def cache_method_calls=(_arg0); end
|
|
202
199
|
end
|
|
203
200
|
end
|
|
@@ -348,15 +345,15 @@ end
|
|
|
348
345
|
#
|
|
349
346
|
# Example:
|
|
350
347
|
#
|
|
351
|
-
# xm = Builder.new(:indent=>2)
|
|
348
|
+
# xm = Builder::XmlMarkup.new(:indent=>2)
|
|
352
349
|
# # xm will produce nicely formatted and indented XML.
|
|
353
350
|
#
|
|
354
|
-
# xm = Builder.new(:indent=>2, :margin=>4)
|
|
351
|
+
# xm = Builder::XmlMarkup.new(:indent=>2, :margin=>4)
|
|
355
352
|
# # xm will produce nicely formatted and indented XML with 2
|
|
356
353
|
# # spaces per indent and an over all indentation level of 4.
|
|
357
354
|
#
|
|
358
355
|
# builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2)
|
|
359
|
-
# builder.name { |b| b.first("Jim"); b.last("Weirich) }
|
|
356
|
+
# builder.name { |b| b.first("Jim"); b.last("Weirich") }
|
|
360
357
|
# # prints:
|
|
361
358
|
# # <name>
|
|
362
359
|
# # <first>Jim</first>
|
|
@@ -385,7 +382,7 @@ end
|
|
|
385
382
|
#
|
|
386
383
|
# xml_builder = Builder::XmlMarkup.new
|
|
387
384
|
# xml_builder.div { |xml|
|
|
388
|
-
# xml.
|
|
385
|
+
# xml.strong("text")
|
|
389
386
|
# }
|
|
390
387
|
#
|
|
391
388
|
# source://builder//lib/builder/xmlmarkup.rb#161
|
|
@@ -7,12 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
# source://erubi//lib/erubi.rb#3
|
|
9
9
|
module Erubi
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def h(_arg0); end
|
|
13
|
+
|
|
10
14
|
class << self
|
|
11
15
|
def h(_arg0); end
|
|
12
16
|
end
|
|
13
17
|
end
|
|
14
18
|
|
|
15
|
-
# source://erubi//lib/erubi.rb#
|
|
19
|
+
# source://erubi//lib/erubi.rb#51
|
|
16
20
|
class Erubi::Engine
|
|
17
21
|
# Initialize a new Erubi::Engine. Options:
|
|
18
22
|
# +:bufval+ :: The value to use for the buffer variable, as a string (default <tt>'::String.new'</tt>).
|
|
@@ -43,64 +47,64 @@ class Erubi::Engine
|
|
|
43
47
|
#
|
|
44
48
|
# @return [Engine] a new instance of Engine
|
|
45
49
|
#
|
|
46
|
-
# source://erubi//lib/erubi.rb#
|
|
50
|
+
# source://erubi//lib/erubi.rb#91
|
|
47
51
|
def initialize(input, properties = T.unsafe(nil)); end
|
|
48
52
|
|
|
49
53
|
# The variable name used for the buffer variable.
|
|
50
54
|
#
|
|
51
|
-
# source://erubi//lib/erubi.rb#
|
|
55
|
+
# source://erubi//lib/erubi.rb#62
|
|
52
56
|
def bufvar; end
|
|
53
57
|
|
|
54
58
|
# The filename of the template, if one was given.
|
|
55
59
|
#
|
|
56
|
-
# source://erubi//lib/erubi.rb#
|
|
60
|
+
# source://erubi//lib/erubi.rb#59
|
|
57
61
|
def filename; end
|
|
58
62
|
|
|
59
63
|
# The frozen ruby source code generated from the template, which can be evaled.
|
|
60
64
|
#
|
|
61
|
-
# source://erubi//lib/erubi.rb#
|
|
65
|
+
# source://erubi//lib/erubi.rb#56
|
|
62
66
|
def src; end
|
|
63
67
|
|
|
64
68
|
private
|
|
65
69
|
|
|
66
70
|
# Add ruby code to the template
|
|
67
71
|
#
|
|
68
|
-
# source://erubi//lib/erubi.rb#
|
|
72
|
+
# source://erubi//lib/erubi.rb#223
|
|
69
73
|
def add_code(code); end
|
|
70
74
|
|
|
71
75
|
# Add the given ruby expression result to the template,
|
|
72
76
|
# escaping it based on the indicator given and escape flag.
|
|
73
77
|
#
|
|
74
|
-
# source://erubi//lib/erubi.rb#
|
|
78
|
+
# source://erubi//lib/erubi.rb#232
|
|
75
79
|
def add_expression(indicator, code); end
|
|
76
80
|
|
|
77
81
|
# Add the result of Ruby expression to the template
|
|
78
82
|
#
|
|
79
|
-
# source://erubi//lib/erubi.rb#
|
|
83
|
+
# source://erubi//lib/erubi.rb#241
|
|
80
84
|
def add_expression_result(code); end
|
|
81
85
|
|
|
82
86
|
# Add the escaped result of Ruby expression to the template
|
|
83
87
|
#
|
|
84
|
-
# source://erubi//lib/erubi.rb#
|
|
88
|
+
# source://erubi//lib/erubi.rb#246
|
|
85
89
|
def add_expression_result_escaped(code); end
|
|
86
90
|
|
|
87
91
|
# Add the given postamble to the src. Can be overridden in subclasses
|
|
88
92
|
# to make additional changes to src that depend on the current state.
|
|
89
93
|
#
|
|
90
|
-
# source://erubi//lib/erubi.rb#
|
|
94
|
+
# source://erubi//lib/erubi.rb#252
|
|
91
95
|
def add_postamble(postamble); end
|
|
92
96
|
|
|
93
97
|
# Add raw text to the template. Modifies argument if argument is mutable as a memory optimization.
|
|
94
98
|
# Must be called with a string, cannot be called with nil (Rails's subclass depends on it).
|
|
95
99
|
#
|
|
96
|
-
# source://erubi//lib/erubi.rb#
|
|
100
|
+
# source://erubi//lib/erubi.rb#210
|
|
97
101
|
def add_text(text); end
|
|
98
102
|
|
|
99
103
|
# Raise an exception, as the base engine class does not support handling other indicators.
|
|
100
104
|
#
|
|
101
105
|
# @raise [ArgumentError]
|
|
102
106
|
#
|
|
103
|
-
# source://erubi//lib/erubi.rb#
|
|
107
|
+
# source://erubi//lib/erubi.rb#258
|
|
104
108
|
def handle(indicator, code, tailch, rspace, lspace); end
|
|
105
109
|
|
|
106
110
|
# Make sure that any current expression has been terminated.
|
|
@@ -108,7 +112,7 @@ class Erubi::Engine
|
|
|
108
112
|
# the chain_appends option is used, expressions may not be
|
|
109
113
|
# terminated.
|
|
110
114
|
#
|
|
111
|
-
# source://erubi//lib/erubi.rb#
|
|
115
|
+
# source://erubi//lib/erubi.rb#286
|
|
112
116
|
def terminate_expression; end
|
|
113
117
|
|
|
114
118
|
# Make sure the buffer variable is the target of the next append
|
|
@@ -118,13 +122,13 @@ class Erubi::Engine
|
|
|
118
122
|
# This method should only be called if the block will result in
|
|
119
123
|
# code where << will append to the bufvar.
|
|
120
124
|
#
|
|
121
|
-
# source://erubi//lib/erubi.rb#
|
|
125
|
+
# source://erubi//lib/erubi.rb#268
|
|
122
126
|
def with_buffer; end
|
|
123
127
|
end
|
|
124
128
|
|
|
125
129
|
# The default regular expression used for scanning.
|
|
126
130
|
#
|
|
127
|
-
# source://erubi//lib/erubi.rb#
|
|
131
|
+
# source://erubi//lib/erubi.rb#53
|
|
128
132
|
Erubi::Engine::DEFAULT_REGEXP = T.let(T.unsafe(nil), Regexp)
|
|
129
133
|
|
|
130
134
|
# source://erubi//lib/erubi.rb#17
|