xvert 0.1.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/README.md +57 -1
- data/assets/jt.gif +0 -0
- data/assets/jy.gif +0 -0
- data/assets/tj.gif +0 -0
- data/assets/ty.gif +0 -0
- data/assets/yj.gif +0 -0
- data/assets/yt.gif +0 -0
- data/lib/xvert/cli.rb +29 -1
- data/lib/xvert/version.rb +1 -1
- data/lib/xvert.rb +17 -15
- data/tapes/foo.json +1 -0
- data/tapes/foo.toml +1 -0
- data/tapes/foo.yaml +1 -0
- data/tapes/jt.tape +21 -0
- data/tapes/jy.tape +21 -0
- data/tapes/tj.tape +21 -0
- data/tapes/ty.tape +21 -0
- data/tapes/yj.tape +21 -0
- data/tapes/yt.tape +21 -0
- data/xvert.gemspec +1 -0
- metadata +30 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bdccff9925d173e41be9dec926b83ca609a09843245367bf28a3b75fc5993bf
|
4
|
+
data.tar.gz: 818797603eca5da9837fcd4ded7dffecfeaecd361b7b5ee408ab86a751bf161a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7dab70151e4d7938c9b043e45967ec16e51a3a9ba54b599c745479570ed151411730abf32328bdd8846ac66edab85b0b4c72fad59253d5544dd0985f18267b2
|
7
|
+
data.tar.gz: f4b6510f03956ae5ee8fbb498e6f650e2a8968e3f439cea2e6751d9e5a8f65323a394a14213347987218b4c3a64b76617225480acf61e2e713775d85a2e540e3
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
xvert (0.
|
4
|
+
xvert (0.3.0)
|
5
5
|
json (~> 2.6.0)
|
6
|
+
rouge (~> 3.2.0)
|
6
7
|
thor (~> 1.2.0)
|
7
8
|
toml-rb (~> 2.2.0)
|
8
9
|
yaml (~> 0.2.0)
|
@@ -22,6 +23,7 @@ GEM
|
|
22
23
|
rake (13.0.6)
|
23
24
|
regexp_parser (2.8.0)
|
24
25
|
rexml (3.2.5)
|
26
|
+
rouge (3.2.1)
|
25
27
|
rubocop (1.50.2)
|
26
28
|
json (~> 2.3)
|
27
29
|
parallel (~> 1.10)
|
data/README.md
CHANGED
@@ -16,9 +16,10 @@ $ gem install xvert
|
|
16
16
|
|
17
17
|
## Usage
|
18
18
|
|
19
|
-
```
|
19
|
+
```console
|
20
20
|
$ xvert help
|
21
21
|
Commands:
|
22
|
+
xvert --version, -v # Print Xvert version
|
22
23
|
xvert help [COMMAND] # Describe available commands or one specific command
|
23
24
|
xvert jt # Convert JSON to TOML
|
24
25
|
xvert jy # Convert JSON to YAML
|
@@ -28,6 +29,61 @@ Commands:
|
|
28
29
|
xvert yt # Convert YAML to TOML
|
29
30
|
```
|
30
31
|
|
32
|
+
- [JSON to TOML](#json-to-toml)
|
33
|
+
- [JSON to YAML](#json-to-yaml)
|
34
|
+
- [TOML to JSON](#toml-to-json)
|
35
|
+
- [TOML to YAML](#toml-to-yaml)
|
36
|
+
- [YAML to JSON](#yaml-to-json)
|
37
|
+
- [YAML to TOML](#yaml-to-toml)
|
38
|
+
|
39
|
+
### JSON to TOML
|
40
|
+
|
41
|
+
```console
|
42
|
+
$ xvert jt < foo.json
|
43
|
+
```
|
44
|
+
|
45
|
+
![](./assets/jt.gif)
|
46
|
+
|
47
|
+
### JSON to YAML
|
48
|
+
|
49
|
+
```console
|
50
|
+
$ xvert jy < foo.json
|
51
|
+
```
|
52
|
+
|
53
|
+
![](./assets/jy.gif)
|
54
|
+
|
55
|
+
### TOML to JSON
|
56
|
+
|
57
|
+
```console
|
58
|
+
$ xvert tj < foo.toml
|
59
|
+
```
|
60
|
+
|
61
|
+
![](./assets/tj.gif)
|
62
|
+
|
63
|
+
### TOML to YAML
|
64
|
+
|
65
|
+
```console
|
66
|
+
$ xvert ty < foo.toml
|
67
|
+
```
|
68
|
+
|
69
|
+
![](./assets/ty.gif)
|
70
|
+
|
71
|
+
### YAML to JSON
|
72
|
+
|
73
|
+
```console
|
74
|
+
$ xvert yj < foo.yaml
|
75
|
+
```
|
76
|
+
|
77
|
+
![](./assets/yj.gif)
|
78
|
+
|
79
|
+
### YAML to TOML
|
80
|
+
|
81
|
+
```console
|
82
|
+
$ xvert yt < foo.yaml
|
83
|
+
```
|
84
|
+
|
85
|
+
![](./assets/yt.gif)
|
86
|
+
|
31
87
|
## License
|
32
88
|
|
33
89
|
[MIT License](./LICENSE.txt)
|
data/assets/jt.gif
ADDED
Binary file
|
data/assets/jy.gif
ADDED
Binary file
|
data/assets/tj.gif
ADDED
Binary file
|
data/assets/ty.gif
ADDED
Binary file
|
data/assets/yj.gif
ADDED
Binary file
|
data/assets/yt.gif
ADDED
Binary file
|
data/lib/xvert/cli.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "rouge"
|
3
4
|
require "thor"
|
4
5
|
|
5
6
|
module Xvert
|
@@ -10,6 +11,13 @@ module Xvert
|
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
14
|
+
map %w[-v --version] => :version
|
15
|
+
|
16
|
+
desc "--version, -v", "Print Xvert version"
|
17
|
+
def version
|
18
|
+
puts ::Xvert::VERSION
|
19
|
+
end
|
20
|
+
|
13
21
|
#
|
14
22
|
# JSON => X
|
15
23
|
#
|
@@ -55,7 +63,27 @@ module Xvert
|
|
55
63
|
private
|
56
64
|
|
57
65
|
def run(from:, to:)
|
58
|
-
|
66
|
+
text = ::Xvert.convert(input, from: from, to: to).chomp
|
67
|
+
puts highlight(text, to)
|
68
|
+
end
|
69
|
+
|
70
|
+
def highlight(text, format)
|
71
|
+
return text unless $stdout.isatty
|
72
|
+
|
73
|
+
formatter(Rouge::Themes::Monokai.new).format(lexer(format).lex(text))
|
74
|
+
end
|
75
|
+
|
76
|
+
def formatter(theme)
|
77
|
+
Rouge::Formatters::Terminal256.new(theme)
|
78
|
+
end
|
79
|
+
|
80
|
+
def lexer(format)
|
81
|
+
case format
|
82
|
+
when :json then Rouge::Lexers::JSON.new
|
83
|
+
when :yaml then Rouge::Lexers::YAML.new
|
84
|
+
when :toml then Rouge::Lexers::TOML.new
|
85
|
+
else raise UnsupportedFormatError, format
|
86
|
+
end
|
59
87
|
end
|
60
88
|
|
61
89
|
def input
|
data/lib/xvert/version.rb
CHANGED
data/lib/xvert.rb
CHANGED
@@ -7,19 +7,11 @@ require_relative "xvert/version"
|
|
7
7
|
require_relative "xvert/cli"
|
8
8
|
|
9
9
|
module Xvert
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
TO_TEXT_MAP = {
|
17
|
-
json: :object_to_json,
|
18
|
-
yaml: :object_to_yaml,
|
19
|
-
toml: :object_to_toml
|
20
|
-
}.freeze
|
21
|
-
|
22
|
-
private_constant :TO_OBJECT_MAP, :TO_TEXT_MAP
|
10
|
+
class UnsupportedFormatError < StandardError
|
11
|
+
def initialize(format)
|
12
|
+
super("Unsupported format: #{format}")
|
13
|
+
end
|
14
|
+
end
|
23
15
|
|
24
16
|
class << self
|
25
17
|
def convert(text, from:, to:)
|
@@ -28,11 +20,21 @@ module Xvert
|
|
28
20
|
end
|
29
21
|
|
30
22
|
def to_object(text, format:)
|
31
|
-
|
23
|
+
case format
|
24
|
+
when :json then json_to_object(text)
|
25
|
+
when :yaml then yaml_to_object(text)
|
26
|
+
when :toml then toml_to_object(text)
|
27
|
+
else raise UnsupportedFormatError, format
|
28
|
+
end
|
32
29
|
end
|
33
30
|
|
34
31
|
def to_text(object, format:)
|
35
|
-
|
32
|
+
case format
|
33
|
+
when :json then object_to_json(object)
|
34
|
+
when :yaml then object_to_yaml(object)
|
35
|
+
when :toml then object_to_toml(object)
|
36
|
+
else raise UnsupportedFormatError, format
|
37
|
+
end
|
36
38
|
end
|
37
39
|
|
38
40
|
private
|
data/tapes/foo.json
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"message":"hello world"}
|
data/tapes/foo.toml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
message = "hello world"
|
data/tapes/foo.yaml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
message: hello world
|
data/tapes/jt.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/jt.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.json" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert jt < foo.json" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/tapes/jy.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/jy.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.json" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert jy < foo.json" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/tapes/tj.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/tj.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.toml" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert tj < foo.toml" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/tapes/ty.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/ty.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.toml" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert ty < foo.toml" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/tapes/yj.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/yj.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.yaml" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert yj < foo.yaml" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/tapes/yt.tape
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
Output assets/yt.gif
|
2
|
+
|
3
|
+
Require xvert
|
4
|
+
|
5
|
+
Set Shell "bash"
|
6
|
+
Set FontSize 32
|
7
|
+
Set Width 1200
|
8
|
+
Set Height 600
|
9
|
+
|
10
|
+
Hide
|
11
|
+
Type "cd ./tapes" Enter
|
12
|
+
Ctrl+l
|
13
|
+
Show
|
14
|
+
|
15
|
+
Type "cat foo.yaml" Sleep 500ms Enter Sleep 500ms
|
16
|
+
Sleep 1s
|
17
|
+
Type "clear" Sleep 500ms Enter Sleep 500ms
|
18
|
+
|
19
|
+
Type "xvert yt < foo.yaml" Sleep 500ms Enter
|
20
|
+
|
21
|
+
Sleep 5s
|
data/xvert.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
28
|
spec.add_runtime_dependency "json", "~> 2.6.0"
|
29
|
+
spec.add_runtime_dependency "rouge", "~> 3.2.0"
|
29
30
|
spec.add_runtime_dependency "thor", "~> 1.2.0"
|
30
31
|
spec.add_runtime_dependency "toml-rb", "~> 2.2.0"
|
31
32
|
spec.add_runtime_dependency "yaml", "~> 0.2.0"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xvert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- koki-develop
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.6.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rouge
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.2.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: thor
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,12 +95,27 @@ files:
|
|
81
95
|
- LICENSE.txt
|
82
96
|
- README.md
|
83
97
|
- Rakefile
|
98
|
+
- assets/jt.gif
|
99
|
+
- assets/jy.gif
|
100
|
+
- assets/tj.gif
|
101
|
+
- assets/ty.gif
|
102
|
+
- assets/yj.gif
|
103
|
+
- assets/yt.gif
|
84
104
|
- bin/xvert
|
85
105
|
- lib/xvert.rb
|
86
106
|
- lib/xvert/cli.rb
|
87
107
|
- lib/xvert/version.rb
|
88
108
|
- renovate.json
|
89
109
|
- sig/xvert.rbs
|
110
|
+
- tapes/foo.json
|
111
|
+
- tapes/foo.toml
|
112
|
+
- tapes/foo.yaml
|
113
|
+
- tapes/jt.tape
|
114
|
+
- tapes/jy.tape
|
115
|
+
- tapes/tj.tape
|
116
|
+
- tapes/ty.tape
|
117
|
+
- tapes/yj.tape
|
118
|
+
- tapes/yt.tape
|
90
119
|
- xvert.gemspec
|
91
120
|
homepage: https://github.com/koki-develop/xvert
|
92
121
|
licenses:
|