Module: Tamiyo::YamlHelper

Included in:
DataStore, Tamiyo::Yaml::YamlSink, Tamiyo::Yaml::YamlSource
Defined in:
lib/tamiyo/yaml/yaml_helper.rb,
lib/tamiyo/yaml/yaml_helper.rb,
lib/tamiyo/yaml/yaml_helper.rb,
lib/tamiyo/yaml/yaml_helper.rb

Defined Under Namespace

Classes: EventHandler, EventStream

Instance Method Summary collapse

Instance Method Details

#emit_block_mappingObject



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_sequenceObject



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_documentObject



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_sequenceObject



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_documentObject



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