convert-serialization 1.0.0 → 1.0.2
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.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/bin/convert-serialization +22 -15
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed1d9142b94c48a3d73c3c3bc586b7ac3bea1e0dc15165816c0c9dd23a8a0008
|
4
|
+
data.tar.gz: 2aaeac71f5aff57a3fc03ffd08eed4d1e77b39998936bc36e6e3633522d821e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4996c20eda7e4c4406e1e874b7250bba098e3c16967af6e7e0d39db4c25fa3c4ad13a428f9e4351ecfd770a47cfbe2851a2a614b09849dac486d57e25edc9b28
|
7
|
+
data.tar.gz: ffb44cb5debcd0fc36a6ea303e1abf8c7a8b3985b350a72543f8792ab97f9293f30de56ea533b71f2c6bc1717734ca509e13805583fc807fb122a86b89fd9765
|
data/README.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
1
|
# convert-serialization
|
2
2
|
|
3
3
|
A simple Ruby script that can convert between different formats (msgpack / json / yaml / toml).
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```
|
8
|
+
$ cat test.json
|
9
|
+
{"hello":"world","numbers":[1,2,3,4,5]}
|
10
|
+
$ convert-serialization -s json -d toml -i test.json -o test.toml
|
11
|
+
Conversion successful!
|
12
|
+
$ cat test.toml
|
13
|
+
hello = "world"
|
14
|
+
numbers = [ 1, 2, 3, 4, 5 ]
|
15
|
+
$ convert-serialization -s toml -d msgpack -i test.toml -o test.msgpack
|
16
|
+
Conversion successful!
|
17
|
+
$ hexdump -C test.msgpack
|
18
|
+
00000000 82 a5 68 65 6c 6c 6f a5 77 6f 72 6c 64 a7 6e 75 |..hello.world.nu|
|
19
|
+
00000010 6d 62 65 72 73 95 01 02 03 04 05 |mbers......|
|
20
|
+
0000001b
|
21
|
+
```
|
data/bin/convert-serialization
CHANGED
@@ -7,32 +7,41 @@ begin
|
|
7
7
|
|
8
8
|
input_format = nil
|
9
9
|
output_format = nil
|
10
|
+
input_file = nil
|
11
|
+
output_file = nil
|
10
12
|
OptionParser.new do |opts|
|
11
13
|
opts.banner = 'Usage: convert-serialization [options] input_file output_file'
|
12
14
|
|
13
|
-
opts.on('-
|
15
|
+
opts.on('-s', '--inf INPUT_FORMAT', 'Specifies the input format (msgpack / json / yaml / toml).') do |format|
|
14
16
|
input_format = format
|
15
17
|
end
|
16
18
|
|
17
|
-
opts.on('-
|
19
|
+
opts.on('-d', '--outf OUTPUT_FORMAT', 'Specifies the output format (msgpack / json / yaml / toml).') do |format|
|
18
20
|
output_format = format
|
19
21
|
end
|
22
|
+
|
23
|
+
opts.on('-i', '--in INPUT_FILE', 'Specifies the input file.') do |file|
|
24
|
+
input_file = file
|
25
|
+
end
|
26
|
+
|
27
|
+
opts.on('-o', '--out OUTPUT_FILE', 'Specifies the output file.') do |file|
|
28
|
+
output_file = file
|
29
|
+
end
|
20
30
|
end.parse!
|
21
31
|
|
22
32
|
raise ArgumentError, 'Input format missing.' unless input_format
|
23
33
|
raise ArgumentError, 'Output format missing.' unless output_format
|
24
|
-
|
25
|
-
input_file = ARGV.shift
|
26
|
-
output_file = ARGV.shift
|
27
|
-
|
28
34
|
raise ArgumentError, 'Input file is missing.' unless input_file
|
29
35
|
raise ArgumentError, 'Output file is missing.' unless output_file
|
30
36
|
|
31
37
|
input_format.strip!
|
32
38
|
input_format.downcase!
|
33
|
-
|
34
39
|
output_format.strip!
|
35
40
|
output_format.downcase!
|
41
|
+
input_file.strip!
|
42
|
+
input_file.downcase!
|
43
|
+
output_file.strip!
|
44
|
+
output_file.downcase!
|
36
45
|
|
37
46
|
in_handler = case input_format
|
38
47
|
when 'msgpack'
|
@@ -52,12 +61,8 @@ begin
|
|
52
61
|
end
|
53
62
|
when 'toml'
|
54
63
|
lambda do |filename|
|
55
|
-
require '
|
56
|
-
|
57
|
-
result = Tomlib.load(file.read)
|
58
|
-
file.close
|
59
|
-
|
60
|
-
result
|
64
|
+
require 'toml-rb'
|
65
|
+
TomlRB.load_file filename
|
61
66
|
end
|
62
67
|
else
|
63
68
|
raise ArgumentError, 'Unknown input format.'
|
@@ -90,9 +95,11 @@ begin
|
|
90
95
|
end
|
91
96
|
when 'toml'
|
92
97
|
lambda do |object, filename|
|
93
|
-
|
98
|
+
raise 'The primary toml block must consist of key-value pairs.' unless object.is_a? Hash
|
99
|
+
|
100
|
+
require 'toml-rb'
|
94
101
|
file = File.new filename, 'w'
|
95
|
-
file.write
|
102
|
+
file.write TomlRB.dump(object)
|
96
103
|
file.close
|
97
104
|
end
|
98
105
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: convert-serialization
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marek Küthe
|
@@ -11,25 +11,25 @@ cert_chain: []
|
|
11
11
|
date: 2023-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: toml-rb
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '2.2'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: '2.2'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: '2.2'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: '2.2'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: msgpack
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|