rcnb 0.2.1 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 903e427ba46cc82239cdf60e1689c5a23879151402b0a687dfc716746366a22a
4
- data.tar.gz: ebee9f56bc0ef4315b16a92164ca6d739f92885305ff713184a76e45cfa6650c
3
+ metadata.gz: 5edcba08516d1e48a59e2218e0f75dc790e7d750188f16a50576e4c0d0a3932c
4
+ data.tar.gz: 33b6469ab3480afbb9231a8f10939fdc2eae1ac258c467aee39d7f7707967790
5
5
  SHA512:
6
- metadata.gz: 1e6f900aa34a2538fd65d5ed7b457e4c9bd9e75e83457caf1ea2436ddb032e35b2a3abd9d61f01401062bd239c796117149a05949ac859000faf707eeecfee9e
7
- data.tar.gz: e59839bc9209c69dfdcff379fc94112e66d92f97ada5956c7e2b5a07bfd3670de14ee49292a1f63449dccf251ede0815d9db6e0ded45fd23709464818b9d783b
6
+ metadata.gz: cfc64304e9327e50888164fd696aa4692dcce1696f514c2f52d56a62f32e6bcc2e906d7ab7382cf98c33bda2fa7f0ebe7b9e7f70a27eb1c54928ef2fa86bc334
7
+ data.tar.gz: 012ccbc33704a0523c326ad6a5baac0cce32541591f54b77f0f5fd0449c9a068d742a20fc5dcf26da3d3b512bf268686ce293a6ac9bf99c679e6d9bc1aef729b
data/bin/rcnb-rb ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rcnb/cli'
4
+ # p ARGV
5
+ RCNB::CLI.parse(ARGV)
data/lib/rcnb/cli.rb ADDED
@@ -0,0 +1,61 @@
1
+ require "optparse"
2
+ require File.expand_path("../../rcnb.rb",__FILE__)
3
+ require File.expand_path("../../rcnb/version.rb",__FILE__)
4
+
5
+ module RCNB
6
+ # 命令行支持
7
+ #
8
+ # 详见`rcnb-rb --help`
9
+ # ## Example
10
+ # ```bash
11
+ # rcnb-rb Who NB?
12
+ # => ȐȼŃƅȓčƞÞƦȻƝƃŖć
13
+ # rcnb-rb -d ȐĉņþƦȻƝƃŔć
14
+ # => RCNB!
15
+ # ```
16
+ # @since 0.3.0
17
+ module CLI
18
+ # 解析、处理命令行逻辑
19
+ # @param args [Array] 待解析的命令行参数
20
+ def self.parse(args)
21
+ mode="encode"
22
+ file_mode=false
23
+ encoding=nil
24
+ parser=OptionParser.new do |opt|
25
+ opt.version=RCNB::VERSION
26
+ opt.banner="使用方法:#{$PROGRAM_NAME} [-d|-e] [-u encoding] [-f] text"
27
+ opt.on("-d","--decode","解码") { mode="decode" }
28
+ opt.on("-e","--encode","编码(默认)") { mode="encode" }
29
+ opt.on("-f","--file","把text当做文件路径") { file_mode=true }
30
+ opt.on("-u VAL","--encoding VAL","指定文本编码(默认为utf-8)") { |val| encoding=val }
31
+ end
32
+ begin
33
+ args=parser.parse args
34
+ rescue
35
+ puts parser.help
36
+ return
37
+ end
38
+
39
+ text=args.join " "
40
+ begin
41
+ if file_mode
42
+ text=IO.read(text).chomp
43
+ end
44
+ rescue
45
+ puts "文件不存在的样子…"
46
+ puts parser.help
47
+ return
48
+ end
49
+ if !STDIN.tty?
50
+ text+=STDIN.read.chomp
51
+ end
52
+
53
+ if mode=="decode"
54
+ result=RCNB::decode(text,encoding)
55
+ else
56
+ result=RCNB::encode(text,encoding)
57
+ end
58
+ print result
59
+ end
60
+ end
61
+ end
data/lib/rcnb/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module RCNB
2
2
  # @private
3
- VERSION='0.2.1'
3
+ VERSION='0.3.0'
4
4
  end
metadata CHANGED
@@ -1,25 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcnb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - liggest
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-16 00:00:00.000000000 Z
11
+ date: 2021-07-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
15
- executables: []
15
+ executables:
16
+ - rcnb-rb
16
17
  extensions: []
17
18
  extra_rdoc_files: []
18
19
  files:
19
20
  - ".yardopts"
20
21
  - LICENSE
21
22
  - README.md
23
+ - bin/rcnb-rb
22
24
  - lib/rcnb.rb
25
+ - lib/rcnb/cli.rb
23
26
  - lib/rcnb/str.rb
24
27
  - lib/rcnb/version.rb
25
28
  homepage: https://github.com/liggest/rcnb.rb