sauce_whisk 0.0.10 → 0.0.11
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 +6 -14
- data/.ruby-version +1 -1
- data/Gemfile +1 -4
- data/README.md +23 -8
- data/lib/sauce_whisk/tunnels.rb +0 -1
- data/lib/sauce_whisk/version.rb +1 -1
- data/lib/sauce_whisk.rb +7 -0
- metadata +19 -65
- data/vendor/psych/lib/psych/class_loader.rb +0 -101
- data/vendor/psych/lib/psych/coder.rb +0 -94
- data/vendor/psych/lib/psych/core_ext.rb +0 -35
- data/vendor/psych/lib/psych/deprecated.rb +0 -85
- data/vendor/psych/lib/psych/exception.rb +0 -13
- data/vendor/psych/lib/psych/handler.rb +0 -249
- data/vendor/psych/lib/psych/handlers/document_stream.rb +0 -22
- data/vendor/psych/lib/psych/handlers/recorder.rb +0 -39
- data/vendor/psych/lib/psych/json/ruby_events.rb +0 -19
- data/vendor/psych/lib/psych/json/stream.rb +0 -16
- data/vendor/psych/lib/psych/json/tree_builder.rb +0 -12
- data/vendor/psych/lib/psych/json/yaml_events.rb +0 -29
- data/vendor/psych/lib/psych/nodes/alias.rb +0 -18
- data/vendor/psych/lib/psych/nodes/document.rb +0 -60
- data/vendor/psych/lib/psych/nodes/mapping.rb +0 -56
- data/vendor/psych/lib/psych/nodes/node.rb +0 -55
- data/vendor/psych/lib/psych/nodes/scalar.rb +0 -67
- data/vendor/psych/lib/psych/nodes/sequence.rb +0 -81
- data/vendor/psych/lib/psych/nodes/stream.rb +0 -37
- data/vendor/psych/lib/psych/nodes.rb +0 -77
- data/vendor/psych/lib/psych/omap.rb +0 -4
- data/vendor/psych/lib/psych/parser.rb +0 -51
- data/vendor/psych/lib/psych/scalar_scanner.rb +0 -149
- data/vendor/psych/lib/psych/set.rb +0 -4
- data/vendor/psych/lib/psych/stream.rb +0 -37
- data/vendor/psych/lib/psych/streaming.rb +0 -27
- data/vendor/psych/lib/psych/syntax_error.rb +0 -21
- data/vendor/psych/lib/psych/tree_builder.rb +0 -96
- data/vendor/psych/lib/psych/visitors/depth_first.rb +0 -26
- data/vendor/psych/lib/psych/visitors/emitter.rb +0 -51
- data/vendor/psych/lib/psych/visitors/json_tree.rb +0 -24
- data/vendor/psych/lib/psych/visitors/to_ruby.rb +0 -372
- data/vendor/psych/lib/psych/visitors/visitor.rb +0 -19
- data/vendor/psych/lib/psych/visitors/yaml_tree.rb +0 -496
- data/vendor/psych/lib/psych/visitors.rb +0 -6
- data/vendor/psych/lib/psych/y.rb +0 -9
- data/vendor/psych/lib/psych.bundle +0 -0
- data/vendor/psych/lib/psych.rb +0 -497
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/Makefile +0 -221
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/mkmf.log +0 -50
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych.bundle +0 -0
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych.o +0 -0
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych_emitter.o +0 -0
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych_parser.o +0 -0
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych_to_ruby.o +0 -0
- data/vendor/psych/tmp/x86_64-darwin12.3.0/psych/1.9.3/psych_yaml_tree.o +0 -0
@@ -1,372 +0,0 @@
|
|
1
|
-
require 'psych/scalar_scanner'
|
2
|
-
require 'psych/class_loader'
|
3
|
-
require 'psych/exception'
|
4
|
-
|
5
|
-
unless defined?(Regexp::NOENCODING)
|
6
|
-
Regexp::NOENCODING = 32
|
7
|
-
end
|
8
|
-
|
9
|
-
module Psych
|
10
|
-
module Visitors
|
11
|
-
###
|
12
|
-
# This class walks a YAML AST, converting each node to ruby
|
13
|
-
class ToRuby < Psych::Visitors::Visitor
|
14
|
-
def self.create
|
15
|
-
class_loader = ClassLoader.new
|
16
|
-
scanner = ScalarScanner.new class_loader
|
17
|
-
new(scanner, class_loader)
|
18
|
-
end
|
19
|
-
|
20
|
-
attr_reader :class_loader
|
21
|
-
|
22
|
-
def initialize ss, class_loader
|
23
|
-
super()
|
24
|
-
@st = {}
|
25
|
-
@ss = ss
|
26
|
-
@domain_types = Psych.domain_types
|
27
|
-
@class_loader = class_loader
|
28
|
-
end
|
29
|
-
|
30
|
-
def accept target
|
31
|
-
result = super
|
32
|
-
return result if @domain_types.empty? || !target.tag
|
33
|
-
|
34
|
-
key = target.tag.sub(/^[!\/]*/, '').sub(/(,\d+)\//, '\1:')
|
35
|
-
key = "tag:#{key}" unless key =~ /^(tag:|x-private)/
|
36
|
-
|
37
|
-
if @domain_types.key? key
|
38
|
-
value, block = @domain_types[key]
|
39
|
-
return block.call value, result
|
40
|
-
end
|
41
|
-
|
42
|
-
result
|
43
|
-
end
|
44
|
-
|
45
|
-
def deserialize o
|
46
|
-
if klass = resolve_class(Psych.load_tags[o.tag])
|
47
|
-
instance = klass.allocate
|
48
|
-
|
49
|
-
if instance.respond_to?(:init_with)
|
50
|
-
coder = Psych::Coder.new(o.tag)
|
51
|
-
coder.scalar = o.value
|
52
|
-
instance.init_with coder
|
53
|
-
end
|
54
|
-
|
55
|
-
return instance
|
56
|
-
end
|
57
|
-
|
58
|
-
return o.value if o.quoted
|
59
|
-
return @ss.tokenize(o.value) unless o.tag
|
60
|
-
|
61
|
-
case o.tag
|
62
|
-
when '!binary', 'tag:yaml.org,2002:binary'
|
63
|
-
o.value.unpack('m').first
|
64
|
-
when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
|
65
|
-
klass = resolve_class($1)
|
66
|
-
if klass
|
67
|
-
klass.allocate.replace o.value
|
68
|
-
else
|
69
|
-
o.value
|
70
|
-
end
|
71
|
-
when '!ruby/object:BigDecimal'
|
72
|
-
require 'bigdecimal'
|
73
|
-
class_loader.big_decimal._load o.value
|
74
|
-
when "!ruby/object:DateTime"
|
75
|
-
class_loader.date_time
|
76
|
-
require 'date'
|
77
|
-
@ss.parse_time(o.value).to_datetime
|
78
|
-
when "!ruby/object:Complex"
|
79
|
-
class_loader.complex
|
80
|
-
Complex(o.value)
|
81
|
-
when "!ruby/object:Rational"
|
82
|
-
class_loader.rational
|
83
|
-
Rational(o.value)
|
84
|
-
when "!ruby/class", "!ruby/module"
|
85
|
-
resolve_class o.value
|
86
|
-
when "tag:yaml.org,2002:float", "!float"
|
87
|
-
Float(@ss.tokenize(o.value))
|
88
|
-
when "!ruby/regexp"
|
89
|
-
klass = class_loader.regexp
|
90
|
-
o.value =~ /^\/(.*)\/([mixn]*)$/
|
91
|
-
source = $1
|
92
|
-
options = 0
|
93
|
-
lang = nil
|
94
|
-
($2 || '').split('').each do |option|
|
95
|
-
case option
|
96
|
-
when 'x' then options |= Regexp::EXTENDED
|
97
|
-
when 'i' then options |= Regexp::IGNORECASE
|
98
|
-
when 'm' then options |= Regexp::MULTILINE
|
99
|
-
when 'n' then options |= Regexp::NOENCODING
|
100
|
-
else lang = option
|
101
|
-
end
|
102
|
-
end
|
103
|
-
klass.new(*[source, options, lang].compact)
|
104
|
-
when "!ruby/range"
|
105
|
-
klass = class_loader.range
|
106
|
-
args = o.value.split(/([.]{2,3})/, 2).map { |s|
|
107
|
-
accept Nodes::Scalar.new(s)
|
108
|
-
}
|
109
|
-
args.push(args.delete_at(1) == '...')
|
110
|
-
klass.new(*args)
|
111
|
-
when /^!ruby\/sym(bol)?:?(.*)?$/
|
112
|
-
class_loader.symbolize o.value
|
113
|
-
else
|
114
|
-
@ss.tokenize o.value
|
115
|
-
end
|
116
|
-
end
|
117
|
-
private :deserialize
|
118
|
-
|
119
|
-
def visit_Psych_Nodes_Scalar o
|
120
|
-
register o, deserialize(o)
|
121
|
-
end
|
122
|
-
|
123
|
-
def visit_Psych_Nodes_Sequence o
|
124
|
-
if klass = resolve_class(Psych.load_tags[o.tag])
|
125
|
-
instance = klass.allocate
|
126
|
-
|
127
|
-
if instance.respond_to?(:init_with)
|
128
|
-
coder = Psych::Coder.new(o.tag)
|
129
|
-
coder.seq = o.children.map { |c| accept c }
|
130
|
-
instance.init_with coder
|
131
|
-
end
|
132
|
-
|
133
|
-
return instance
|
134
|
-
end
|
135
|
-
|
136
|
-
case o.tag
|
137
|
-
when nil
|
138
|
-
register_empty(o)
|
139
|
-
when '!omap', 'tag:yaml.org,2002:omap'
|
140
|
-
map = register(o, Psych::Omap.new)
|
141
|
-
o.children.each { |a|
|
142
|
-
map[accept(a.children.first)] = accept a.children.last
|
143
|
-
}
|
144
|
-
map
|
145
|
-
when /^!(?:seq|ruby\/array):(.*)$/
|
146
|
-
klass = resolve_class($1)
|
147
|
-
list = register(o, klass.allocate)
|
148
|
-
o.children.each { |c| list.push accept c }
|
149
|
-
list
|
150
|
-
else
|
151
|
-
register_empty(o)
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
def visit_Psych_Nodes_Mapping o
|
156
|
-
if Psych.load_tags[o.tag]
|
157
|
-
return revive(resolve_class(Psych.load_tags[o.tag]), o)
|
158
|
-
end
|
159
|
-
return revive_hash({}, o) unless o.tag
|
160
|
-
|
161
|
-
case o.tag
|
162
|
-
when /^!ruby\/struct:?(.*)?$/
|
163
|
-
klass = resolve_class($1) if $1
|
164
|
-
|
165
|
-
if klass
|
166
|
-
s = register(o, klass.allocate)
|
167
|
-
|
168
|
-
members = {}
|
169
|
-
struct_members = s.members.map { |x| class_loader.symbolize x }
|
170
|
-
o.children.each_slice(2) do |k,v|
|
171
|
-
member = accept(k)
|
172
|
-
value = accept(v)
|
173
|
-
if struct_members.include?(class_loader.symbolize(member))
|
174
|
-
s.send("#{member}=", value)
|
175
|
-
else
|
176
|
-
members[member.to_s.sub(/^@/, '')] = value
|
177
|
-
end
|
178
|
-
end
|
179
|
-
init_with(s, members, o)
|
180
|
-
else
|
181
|
-
klass = class_loader.struct
|
182
|
-
members = o.children.map { |c| accept c }
|
183
|
-
h = Hash[*members]
|
184
|
-
klass.new(*h.map { |k,v|
|
185
|
-
class_loader.symbolize k
|
186
|
-
}).new(*h.map { |k,v| v })
|
187
|
-
end
|
188
|
-
|
189
|
-
when /^!ruby\/object:?(.*)?$/
|
190
|
-
name = $1 || 'Object'
|
191
|
-
|
192
|
-
if name == 'Complex'
|
193
|
-
class_loader.complex
|
194
|
-
h = Hash[*o.children.map { |c| accept c }]
|
195
|
-
register o, Complex(h['real'], h['image'])
|
196
|
-
elsif name == 'Rational'
|
197
|
-
class_loader.rational
|
198
|
-
h = Hash[*o.children.map { |c| accept c }]
|
199
|
-
register o, Rational(h['numerator'], h['denominator'])
|
200
|
-
else
|
201
|
-
obj = revive((resolve_class(name) || class_loader.object), o)
|
202
|
-
obj
|
203
|
-
end
|
204
|
-
|
205
|
-
when /^!(?:str|ruby\/string)(?::(.*))?/, 'tag:yaml.org,2002:str'
|
206
|
-
klass = resolve_class($1)
|
207
|
-
members = {}
|
208
|
-
string = nil
|
209
|
-
|
210
|
-
o.children.each_slice(2) do |k,v|
|
211
|
-
key = accept k
|
212
|
-
value = accept v
|
213
|
-
|
214
|
-
if key == 'str'
|
215
|
-
if klass
|
216
|
-
string = klass.allocate.replace value
|
217
|
-
else
|
218
|
-
string = value
|
219
|
-
end
|
220
|
-
register(o, string)
|
221
|
-
else
|
222
|
-
members[key] = value
|
223
|
-
end
|
224
|
-
end
|
225
|
-
init_with(string, members.map { |k,v| [k.to_s.sub(/^@/, ''),v] }, o)
|
226
|
-
when /^!ruby\/array:(.*)$/
|
227
|
-
klass = resolve_class($1)
|
228
|
-
list = register(o, klass.allocate)
|
229
|
-
|
230
|
-
members = Hash[o.children.map { |c| accept c }.each_slice(2).to_a]
|
231
|
-
list.replace members['internal']
|
232
|
-
|
233
|
-
members['ivars'].each do |ivar, v|
|
234
|
-
list.instance_variable_set ivar, v
|
235
|
-
end
|
236
|
-
list
|
237
|
-
|
238
|
-
when '!ruby/range'
|
239
|
-
klass = class_loader.range
|
240
|
-
h = Hash[*o.children.map { |c| accept c }]
|
241
|
-
register o, klass.new(h['begin'], h['end'], h['excl'])
|
242
|
-
|
243
|
-
when /^!ruby\/exception:?(.*)?$/
|
244
|
-
h = Hash[*o.children.map { |c| accept c }]
|
245
|
-
|
246
|
-
e = build_exception((resolve_class($1) || class_loader.exception),
|
247
|
-
h.delete('message'))
|
248
|
-
init_with(e, h, o)
|
249
|
-
|
250
|
-
when '!set', 'tag:yaml.org,2002:set'
|
251
|
-
set = class_loader.psych_set.new
|
252
|
-
@st[o.anchor] = set if o.anchor
|
253
|
-
o.children.each_slice(2) do |k,v|
|
254
|
-
set[accept(k)] = accept(v)
|
255
|
-
end
|
256
|
-
set
|
257
|
-
|
258
|
-
when /^!map:(.*)$/, /^!ruby\/hash:(.*)$/
|
259
|
-
revive_hash resolve_class($1).new, o
|
260
|
-
|
261
|
-
when '!omap', 'tag:yaml.org,2002:omap'
|
262
|
-
map = register(o, class_loader.psych_omap.new)
|
263
|
-
o.children.each_slice(2) do |l,r|
|
264
|
-
map[accept(l)] = accept r
|
265
|
-
end
|
266
|
-
map
|
267
|
-
|
268
|
-
else
|
269
|
-
revive_hash({}, o)
|
270
|
-
end
|
271
|
-
end
|
272
|
-
|
273
|
-
def visit_Psych_Nodes_Document o
|
274
|
-
accept o.root
|
275
|
-
end
|
276
|
-
|
277
|
-
def visit_Psych_Nodes_Stream o
|
278
|
-
o.children.map { |c| accept c }
|
279
|
-
end
|
280
|
-
|
281
|
-
def visit_Psych_Nodes_Alias o
|
282
|
-
@st.fetch(o.anchor) { raise BadAlias, "Unknown alias: #{o.anchor}" }
|
283
|
-
end
|
284
|
-
|
285
|
-
private
|
286
|
-
def register node, object
|
287
|
-
@st[node.anchor] = object if node.anchor
|
288
|
-
object
|
289
|
-
end
|
290
|
-
|
291
|
-
def register_empty object
|
292
|
-
list = register(object, [])
|
293
|
-
object.children.each { |c| list.push accept c }
|
294
|
-
list
|
295
|
-
end
|
296
|
-
|
297
|
-
def revive_hash hash, o
|
298
|
-
@st[o.anchor] = hash if o.anchor
|
299
|
-
|
300
|
-
o.children.each_slice(2) { |k,v|
|
301
|
-
key = accept(k)
|
302
|
-
val = accept(v)
|
303
|
-
|
304
|
-
if key == '<<'
|
305
|
-
case v
|
306
|
-
when Nodes::Alias
|
307
|
-
begin
|
308
|
-
hash.merge! val
|
309
|
-
rescue TypeError
|
310
|
-
hash[key] = val
|
311
|
-
end
|
312
|
-
when Nodes::Sequence
|
313
|
-
begin
|
314
|
-
h = {}
|
315
|
-
val.reverse_each do |value|
|
316
|
-
h.merge! value
|
317
|
-
end
|
318
|
-
hash.merge! h
|
319
|
-
rescue TypeError
|
320
|
-
hash[key] = val
|
321
|
-
end
|
322
|
-
else
|
323
|
-
hash[key] = val
|
324
|
-
end
|
325
|
-
else
|
326
|
-
hash[key] = val
|
327
|
-
end
|
328
|
-
|
329
|
-
}
|
330
|
-
hash
|
331
|
-
end
|
332
|
-
|
333
|
-
def merge_key hash, key, val
|
334
|
-
end
|
335
|
-
|
336
|
-
def revive klass, node
|
337
|
-
s = klass.allocate
|
338
|
-
@st[node.anchor] = s if node.anchor
|
339
|
-
h = Hash[*node.children.map { |c| accept c }]
|
340
|
-
init_with(s, h, node)
|
341
|
-
end
|
342
|
-
|
343
|
-
def init_with o, h, node
|
344
|
-
c = Psych::Coder.new(node.tag)
|
345
|
-
c.map = h
|
346
|
-
|
347
|
-
if o.respond_to?(:init_with)
|
348
|
-
o.init_with c
|
349
|
-
elsif o.respond_to?(:yaml_initialize)
|
350
|
-
if $VERBOSE
|
351
|
-
warn "Implementing #{o.class}#yaml_initialize is deprecated, please implement \"init_with(coder)\""
|
352
|
-
end
|
353
|
-
o.yaml_initialize c.tag, c.map
|
354
|
-
else
|
355
|
-
h.each { |k,v| o.instance_variable_set(:"@#{k}", v) }
|
356
|
-
end
|
357
|
-
o
|
358
|
-
end
|
359
|
-
|
360
|
-
# Convert +klassname+ to a Class
|
361
|
-
def resolve_class klassname
|
362
|
-
class_loader.load klassname
|
363
|
-
end
|
364
|
-
end
|
365
|
-
|
366
|
-
class NoAliasRuby < ToRuby
|
367
|
-
def visit_Psych_Nodes_Alias o
|
368
|
-
raise BadAlias, "Unknown alias: #{o.anchor}"
|
369
|
-
end
|
370
|
-
end
|
371
|
-
end
|
372
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Psych
|
2
|
-
module Visitors
|
3
|
-
class Visitor
|
4
|
-
def accept target
|
5
|
-
visit target
|
6
|
-
end
|
7
|
-
|
8
|
-
private
|
9
|
-
|
10
|
-
DISPATCH = Hash.new do |hash, klass|
|
11
|
-
hash[klass] = "visit_#{klass.name.gsub('::', '_')}"
|
12
|
-
end
|
13
|
-
|
14
|
-
def visit target
|
15
|
-
send DISPATCH[target.class], target
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|