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 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
@@ -6,8 +6,8 @@ module YamlConverters
6
6
  @result = {}
7
7
  end
8
8
 
9
- def write(hash)
10
- @result.deep_merge!(hash)
9
+ def write(key, value)
10
+ @result.deep_merge!({ key => value })
11
11
  end
12
12
  end
13
13
  end
@@ -1,3 +1,3 @@
1
1
  module YamlConverters
2
- VERSION = "0.0.1"
2
+ VERSION = '0.1.0'
3
3
  end
@@ -28,7 +28,7 @@ module YamlConverters
28
28
 
29
29
  if !value.is_a?(Hash)
30
30
  result[current_prefix] = value
31
- @segment_writer.write({ current_prefix => value })
31
+ @segment_writer.write(current_prefix, value)
32
32
  else
33
33
  flatten_hash(value, current_prefix, result)
34
34
  end
@@ -1,12 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe YamlConverters::SegmentToHashWriter do
4
- subject { described_class.new }
5
- let(:hash) { { 'key' => 'value' } }
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(hash)
10
- end.to change { subject.result }.from({}).to(hash)
10
+ subject.write(key, value)
11
+ end.to change { subject.result }.from({}).to({ key => value })
11
12
  end
12
13
  end
@@ -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.1
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-28 00:00:00.000000000 Z
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: '0'
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: '0'
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: -872080065287608122
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: -872080065287608122
147
+ hash: 4349722421781478138
147
148
  requirements: []
148
149
  rubyforge_project:
149
150
  rubygems_version: 1.8.24