yaml_converters 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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