structurebutcher 0.8.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/structurebutcher.rb +16 -19
  3. metadata +12 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: db853d50c1ba07f0bc5a4e4d990c4586b4ba17d5
4
- data.tar.gz: 337b870faf1fad12a15767be0b246958286442da
2
+ SHA256:
3
+ metadata.gz: 8c41f74f3eb3fd798e6f50858de0dbaa8ec5945614a760b4bde3d7a3841a13df
4
+ data.tar.gz: faad2ff531b90159b5e9f7b02a48763eeaab96b9ade42970cbb16eab4f5c4b3e
5
5
  SHA512:
6
- metadata.gz: b694dce96c8783c94d473fdb581f56b504c4d181985e0bfcf7061cb7b7f5eb5eaad9f1c6f0a627c2a3d9a1f7d09c11647a35c5a1de8a07d43262bcb93af3ee0e
7
- data.tar.gz: 592094360fa418d177bc3e7dbede2832978d16cfa8a17cbfdd07f740e62e472b611d9b5b8a45852125fc2a249814408224178b44d0ca1c043f25957dd2d256b7
6
+ metadata.gz: c06bae11fe8749678f9098205287b8309a89b58a877235b3ecaf499695c83f9a6333628f626e5db21e9f4a6452fec9cdc7cec4207aeaae2e7cdcad584e6b4b34
7
+ data.tar.gz: 977527c33cb82b2a09515ea41304b3ed4f8f1e9cd367056714397f13ca50f7eee6a5e798a50ba0846e1e69e21a7cea355245fd2af43e26dd963702d0f10f3244
@@ -10,18 +10,6 @@ require 'base64'
10
10
  #amputovat, implantovat
11
11
  #amputate, implantate
12
12
 
13
- class Hash
14
- def sort_by_key(recursive = false, &block)
15
- self.keys.sort(&block).reduce({}) do |seed, key|
16
- seed[key] = self[key]
17
- if recursive && seed[key].is_a?(Hash)
18
- seed[key] = seed[key].sort_by_key(true, &block)
19
- end
20
- seed
21
- end
22
- end
23
- end
24
-
25
13
  class StructureButcher
26
14
  def split_escape(str)
27
15
  output = []
@@ -85,7 +73,7 @@ class StructureButcher
85
73
 
86
74
  storer = StructureButcher::Storer.new
87
75
 
88
- storer.save_structure(body.sort_by_key(true), body_file, "yaml")
76
+ storer.save_structure(body, body_file, "yaml")
89
77
  end
90
78
 
91
79
  def implantate_struct_into_file(body_file, slot, part_struct)
@@ -102,7 +90,7 @@ class StructureButcher
102
90
  butcher.implantate(body, slot, part_struct)
103
91
 
104
92
  storer = StructureButcher::Storer.new
105
- storer.save_structure(body.sort_by_key(true), body_file, "yaml")
93
+ storer.save_structure(body, body_file, "yaml")
106
94
  end
107
95
  end
108
96
 
@@ -165,7 +153,7 @@ class StructureButcher::Parser
165
153
  result = recursive_stringify_keys(YAML.load_file(filename))
166
154
  rescue
167
155
  msg = "Error parsing '" + filename + "': " + $!.message
168
- raise AbortException.new(msg)
156
+ raise Exception.new(msg)
169
157
  end
170
158
  return result
171
159
  end
@@ -176,7 +164,7 @@ class StructureButcher::Parser
176
164
  result = recursive_stringify_keys(JavaProperties.load(filename))
177
165
  rescue
178
166
  msg = "Error parsing '" + filename + "': " + $!.message
179
- raise AbortException.new(msg)
167
+ raise Exception.new(msg)
180
168
  end
181
169
  return result
182
170
  end
@@ -184,10 +172,10 @@ class StructureButcher::Parser
184
172
  def load_hocon(filename)
185
173
  result = nil
186
174
  begin
187
- result = recursive_stringify_keys(Hocon.load(filename))
175
+ result = recursive_stringify_keys(Hocon.load(filename, {:syntax => Hocon::ConfigSyntax::HOCON}))
188
176
  rescue
189
177
  msg = "Error parsing '" + filename + "': " + $!.message
190
- raise AbortException.new(msg)
178
+ raise Exception.new(msg)
191
179
  end
192
180
  return result
193
181
  end
@@ -216,6 +204,15 @@ class StructureButcher::Storer
216
204
  end
217
205
 
218
206
  def save_structure(structure, filename, format)
219
- File.write(filename, structure_in_format(structure, format))
207
+ sorted_structure = {}
208
+ structure.keys.each do |key|
209
+ value = structure[key]
210
+ if value.is_a?(Hash)
211
+ sorted_structure[key] = Hash[value.sort]
212
+ else
213
+ sorted_structure[key] = value
214
+ end
215
+ end
216
+ File.write(filename, structure_in_format(Hash[sorted_structure.sort], format))
220
217
  end
221
218
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: structurebutcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miroslav Tynovsky
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-10 00:00:00.000000000 Z
11
+ date: 2022-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
19
+ version: '2.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1'
26
+ version: '2.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hocon
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.9.3
33
+ version: '1.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.9.3
40
+ version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: java-properties
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.0.2
47
+ version: '0.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.0.2
54
+ version: '0.1'
55
55
  description: Read a config file and write it to a YAML file under specific key
56
56
  email: tynovsky@avast.com
57
57
  executables: []
@@ -63,7 +63,7 @@ homepage: https://github.com/avast/structurebutcher
63
63
  licenses:
64
64
  - MIT
65
65
  metadata: {}
66
- post_install_message:
66
+ post_install_message:
67
67
  rdoc_options: []
68
68
  require_paths:
69
69
  - lib
@@ -78,9 +78,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  requirements: []
81
- rubyforge_project:
82
- rubygems_version: 2.6.8
83
- signing_key:
81
+ rubygems_version: 3.3.5
82
+ signing_key:
84
83
  specification_version: 4
85
84
  summary: Config saver/restorer
86
85
  test_files: []