Module: Tamiyo::YamlHelper
Defined Under Namespace
Classes: EventHandler, EventStream
Instance Method Summary
collapse
Instance Method Details
#emit_block_mapping ⇒ Object
56
57
58
59
60
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 56
def emit_block_mapping
@emit.start_mapping nil, nil, true, YAML::Nodes::Mapping::BLOCK
yield
@emit.end_mapping
end
|
#emit_block_sequence ⇒ Object
44
45
46
47
48
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 44
def emit_block_sequence
@emit.start_sequence nil, nil, true, YAML::Nodes::Sequence::BLOCK
yield
@emit.end_sequence
end
|
#emit_end_of_one_document ⇒ Object
14
15
16
17
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 14
def emit_end_of_one_document
@emit.end_document true
@emit.end_stream
end
|
#emit_flow_sequence ⇒ Object
50
51
52
53
54
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 50
def emit_flow_sequence
@emit.start_sequence nil, nil, true, YAML::Nodes::Sequence::FLOW
yield
@emit.end_sequence
end
|
#emit_literal(value) ⇒ Object
66
67
68
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 66
def emit_literal(value)
@emit.scalar value, nil, nil, false, true, YAML::Nodes::Scalar::LITERAL
end
|
#emit_pair(key, value) ⇒ Object
19
20
21
22
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 19
def emit_pair(key, value)
emit_plain key
emit_plain value
end
|
#emit_pair_with_literal_value(key, value) ⇒ Object
24
25
26
27
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 24
def emit_pair_with_literal_value(key, value)
emit_plain key
emit_literal value
end
|
#emit_pair_with_optional_sequence_value(key, value) ⇒ Object
29
30
31
32
33
34
35
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 29
def emit_pair_with_optional_sequence_value(key, value)
if value.kind_of? Array
emit_pair_with_sequence_value key, value
else
emit_pair key, value
end
end
|
#emit_pair_with_sequence_value(key, value) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 37
def emit_pair_with_sequence_value(key, value)
emit_plain key
emit_flow_sequence do
value.each { |element| emit_plain element }
end
end
|
#emit_plain(value) ⇒ Object
62
63
64
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 62
def emit_plain(value)
@emit.scalar value, nil, nil, true, false, Psych::Nodes::Scalar::PLAIN
end
|
#emit_start_of_one_document ⇒ Object
9
10
11
12
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 9
def emit_start_of_one_document
@emit.start_stream Psych::Nodes::Stream::UTF8
@emit.start_document [1, 1], [], true
end
|
#setup_yaml_emitter_for(file) ⇒ Object
5
6
7
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 5
def setup_yaml_emitter_for(file)
@emit = YAML::Emitter.new file
end
|
#yaml_event_stream_for(file) ⇒ Object
72
73
74
75
76
77
78
79
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 72
def yaml_event_stream_for(file)
queue = Queue.new
Thread.new do
handler = EventHandler.new queue
YAML::Parser.new(handler).parse file
end
EventStream.new queue
end
|