yaml_converters 0.0.1 → 0.1.0
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.
- data/CHANGELOG.md +15 -0
- data/README.md +34 -2
- data/lib/yaml_converters/segment_to_hash_writer.rb +2 -2
- data/lib/yaml_converters/version.rb +1 -1
- data/lib/yaml_converters/yaml_to_segments_converter.rb +1 -1
- data/spec/segment_to_hash_writer_spec.rb +5 -4
- data/yaml_converters.gemspec +2 -2
- metadata +8 -7
data/CHANGELOG.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## Version 0.1 (2012-07-29)
|
4
|
+
|
5
|
+
* Add CHANGELOG
|
6
|
+
* Change API of `segment_writer` - provide key and value explicitly,
|
7
|
+
instead of a hash
|
8
|
+
* Bump Psych dependency to `>= 1.3.3`
|
9
|
+
|
10
|
+
## Version 0.0.1 (2012-07-28)
|
11
|
+
|
12
|
+
* Initial implementation of `YamlConverters::YamlToSegmentsConverter`
|
13
|
+
* Initial implementation of `YamlConverters::SegmentsToYamlConverter`
|
14
|
+
* Example implementation of `segment_writer`
|
15
|
+
* Example implementation of `yaml_writer`
|
data/README.md
CHANGED
@@ -25,12 +25,28 @@ You can pass custom `segment_writer` to dump generated segments
|
|
25
25
|
somewhere (database, for example). Custom writer should respond to
|
26
26
|
two public methods:
|
27
27
|
|
28
|
-
* `write` - performs actual key-value pair dumping
|
28
|
+
* `write(key, value)` - performs actual key-value pair dumping
|
29
29
|
* `result` - returns whatever you want from `convert`
|
30
30
|
|
31
31
|
Default `segment_writer` is an instance of
|
32
32
|
`YamlConverters::SegmentToHashWriter` that returns a `Hash`.
|
33
33
|
|
34
|
+
``` ruby
|
35
|
+
module YamlConverters
|
36
|
+
class SegmentToHashWriter
|
37
|
+
attr_reader :result
|
38
|
+
|
39
|
+
def initialize
|
40
|
+
@result = {}
|
41
|
+
end
|
42
|
+
|
43
|
+
def write(key, value)
|
44
|
+
@result.deep_merge!({ key => value })
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
```
|
49
|
+
|
34
50
|
Use `YamlConverters::SegmentsToYamlConverter#convert` to dump segments
|
35
51
|
(key-value pairs) to YAML file.
|
36
52
|
|
@@ -38,12 +54,28 @@ You can pass custom `yaml_writer` to dump generated YAML file
|
|
38
54
|
somewhere (file, for example). Custom writer should respond to
|
39
55
|
two public methods:
|
40
56
|
|
41
|
-
* `write` - performs actual YAML string dumping
|
57
|
+
* `write(yaml_string)` - performs actual YAML string dumping
|
42
58
|
* `result` - returns whatever you want from `convert`
|
43
59
|
|
44
60
|
Default `yaml_writer` is an instance of
|
45
61
|
`YamlConverters::YamlToStringWriter` that returns a `String`.
|
46
62
|
|
63
|
+
``` ruby
|
64
|
+
module YamlConverters
|
65
|
+
class YamlToStringWriter
|
66
|
+
attr_reader :result
|
67
|
+
|
68
|
+
def initialize
|
69
|
+
@result = ''
|
70
|
+
end
|
71
|
+
|
72
|
+
def write(yaml)
|
73
|
+
@result = yaml
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
47
79
|
## Acknowledgements
|
48
80
|
|
49
81
|
Implementation of flattening a YAML file and generating a YAML file
|
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe YamlConverters::SegmentToHashWriter do
|
4
|
-
subject
|
5
|
-
let(:
|
4
|
+
subject { described_class.new }
|
5
|
+
let(:key) { 'key' }
|
6
|
+
let(:value) { 'value' }
|
6
7
|
|
7
8
|
it 'should return the same hash' do
|
8
9
|
expect do
|
9
|
-
subject.write(
|
10
|
-
end.to change { subject.result }.from({}).to(
|
10
|
+
subject.write(key, value)
|
11
|
+
end.to change { subject.result }.from({}).to({ key => value })
|
11
12
|
end
|
12
13
|
end
|
data/yaml_converters.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ['ja@jestem.tw']
|
11
11
|
gem.description = %q{Convert YAML to segments and back}
|
12
12
|
gem.summary = %q{Convert YAML to segments and back}
|
13
|
-
gem.homepage = ''
|
13
|
+
gem.homepage = 'https://github.com/tomekw/yaml_converters'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
|
20
20
|
gem.add_dependency('activesupport')
|
21
|
-
gem.add_dependency('psych')
|
21
|
+
gem.add_dependency('psych', '>= 1.3.3')
|
22
22
|
|
23
23
|
gem.add_development_dependency('rake')
|
24
24
|
gem.add_development_dependency('rspec')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml_converters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 1.3.3
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 1.3.3
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rake
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +100,7 @@ extra_rdoc_files: []
|
|
100
100
|
files:
|
101
101
|
- .gitignore
|
102
102
|
- .rspec
|
103
|
+
- CHANGELOG.md
|
103
104
|
- Gemfile
|
104
105
|
- LICENSE.txt
|
105
106
|
- README.md
|
@@ -120,7 +121,7 @@ files:
|
|
120
121
|
- spec/yaml_to_segments_converter_spec.rb
|
121
122
|
- spec/yaml_to_string_writer_spec.rb
|
122
123
|
- yaml_converters.gemspec
|
123
|
-
homepage:
|
124
|
+
homepage: https://github.com/tomekw/yaml_converters
|
124
125
|
licenses: []
|
125
126
|
post_install_message:
|
126
127
|
rdoc_options: []
|
@@ -134,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
135
|
version: '0'
|
135
136
|
segments:
|
136
137
|
- 0
|
137
|
-
hash:
|
138
|
+
hash: 4349722421781478138
|
138
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
140
|
none: false
|
140
141
|
requirements:
|
@@ -143,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
144
|
version: '0'
|
144
145
|
segments:
|
145
146
|
- 0
|
146
|
-
hash:
|
147
|
+
hash: 4349722421781478138
|
147
148
|
requirements: []
|
148
149
|
rubyforge_project:
|
149
150
|
rubygems_version: 1.8.24
|