Module: Tamiyo::YamlHelper
Defined Under Namespace
Classes: EventHandler, EventStream
Instance Method Summary
collapse
Instance Method Details
#emit_block_mapping ⇒ Object
68
69
70
71
72
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 68
def emit_block_mapping
@emit.start_mapping nil, nil, true, YAML::Nodes::Mapping::BLOCK
yield
@emit.end_mapping
end
|
#emit_block_sequence ⇒ Object
56
57
58
59
60
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 56
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
26
27
28
29
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 26
def emit_end_of_one_document
@emit.end_document true
@emit.end_stream
end
|
#emit_flow_sequence ⇒ Object
62
63
64
65
66
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 62
def emit_flow_sequence
@emit.start_sequence nil, nil, true, YAML::Nodes::Sequence::FLOW
yield
@emit.end_sequence
end
|
#emit_literal(value) ⇒ Object
78
79
80
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 78
def emit_literal(value)
@emit.scalar value, nil, nil, false, true, YAML::Nodes::Scalar::LITERAL
end
|
#emit_pair(key, value) ⇒ Object
31
32
33
34
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 31
def emit_pair(key, value)
emit_plain key
emit_plain value
end
|
#emit_pair_with_literal_value(key, value) ⇒ Object
36
37
38
39
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 36
def emit_pair_with_literal_value(key, value)
emit_plain key
emit_literal value
end
|
#emit_pair_with_optional_sequence_value(key, value) ⇒ Object
41
42
43
44
45
46
47
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 41
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
49
50
51
52
53
54
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 49
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
74
75
76
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 74
def emit_plain(value)
@emit.scalar value, nil, nil, true, false, Psych::Nodes::Scalar::PLAIN
end
|
#emit_start_of_one_document ⇒ Object
21
22
23
24
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 21
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
17
18
19
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 17
def setup_yaml_emitter_for(file)
@emit = YAML::Emitter.new file
end
|
#yaml_event_stream_for(file) ⇒ Object
84
85
86
87
88
89
90
91
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 84
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
|
#yaml_from(data) ⇒ Object
5
6
7
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 5
def yaml_from(data)
YAML.load data
end
|
#yaml_of(obj) ⇒ Object
11
12
13
|
# File 'lib/tamiyo/yaml/yaml_helper.rb', line 11
def yaml_of(obj)
YAML.dump obj
end
|