xvert 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f3a39e3dbf8e60d7966f13c9191eabbbc3eff872f8371bf4eb61e79d61d113c
4
- data.tar.gz: 7138515754cfbd83bb61b8ad32e6998928bc4b84a1087593b1960d6bacbbb757
3
+ metadata.gz: 2bdccff9925d173e41be9dec926b83ca609a09843245367bf28a3b75fc5993bf
4
+ data.tar.gz: 818797603eca5da9837fcd4ded7dffecfeaecd361b7b5ee408ab86a751bf161a
5
5
  SHA512:
6
- metadata.gz: 1fdbe1355d42520c33a072350aa3cd279ee34489c8c5d20fc7a6388dc9fe0dbcb210cde1b23e9341d2d18d89bd576d0e2432524f1fa67e4110fc8b3ee389912c
7
- data.tar.gz: 9942a4f3cda3e6a9901bb70718b7b045c1bcd4899bfbb477f140659a14102a8eb68abb85818309d507c37ef23a29d3d185cdaa83d69d2993986d5e5f014a0acf
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.2.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
@@ -19,6 +19,7 @@ $ gem install xvert
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
data/assets/jt.gif CHANGED
Binary file
data/assets/jy.gif CHANGED
Binary file
data/assets/tj.gif CHANGED
Binary file
data/assets/ty.gif CHANGED
Binary file
data/assets/yj.gif CHANGED
Binary file
data/assets/yt.gif CHANGED
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
@@ -62,7 +63,27 @@ module Xvert
62
63
  private
63
64
 
64
65
  def run(from:, to:)
65
- puts ::Xvert.convert(input, from: from, to: to)
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
66
87
  end
67
88
 
68
89
  def input
data/lib/xvert/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Xvert
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/xvert.rb CHANGED
@@ -7,7 +7,11 @@ require_relative "xvert/version"
7
7
  require_relative "xvert/cli"
8
8
 
9
9
  module Xvert
10
- class UnsupportedFormatError < StandardError; end
10
+ class UnsupportedFormatError < StandardError
11
+ def initialize(format)
12
+ super("Unsupported format: #{format}")
13
+ end
14
+ end
11
15
 
12
16
  class << self
13
17
  def convert(text, from:, to:)
@@ -20,7 +24,7 @@ module Xvert
20
24
  when :json then json_to_object(text)
21
25
  when :yaml then yaml_to_object(text)
22
26
  when :toml then toml_to_object(text)
23
- else raise UnsupportedFormatError, "Unsupported format: #{format}"
27
+ else raise UnsupportedFormatError, format
24
28
  end
25
29
  end
26
30
 
@@ -29,7 +33,7 @@ module Xvert
29
33
  when :json then object_to_json(object)
30
34
  when :yaml then object_to_yaml(object)
31
35
  when :toml then object_to_toml(object)
32
- else raise UnsupportedFormatError, "Unsupported format: #{format}"
36
+ else raise UnsupportedFormatError, format
33
37
  end
34
38
  end
35
39
 
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.2.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