lhj-tools 0.1.1 → 0.1.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/lib/lhj/command/head_import.rb +128 -0
- data/lib/lhj/command/init.rb +27 -0
- data/lib/lhj/command/local/fetch.rb +152 -0
- data/lib/lhj/command/local/filter.rb +82 -0
- data/lib/lhj/command/local/local.rb +264 -0
- data/lib/lhj/command/local/local_upload.rb +44 -0
- data/lib/lhj/command/local/micro_service.rb +87 -0
- data/lib/lhj/command/oss/del.rb +36 -0
- data/lib/lhj/command/oss/list.rb +17 -0
- data/lib/lhj/command/oss/upload.rb +58 -0
- data/lib/lhj/command/refactor_rename.rb +77 -0
- data/lib/lhj/command/rename_image.rb +1 -1
- data/lib/lhj/command/reverse_import.rb +74 -0
- data/lib/lhj/command/template.rb +21 -0
- data/lib/lhj/command/trans.rb +47 -6
- data/lib/lhj/command.rb +11 -0
- data/lib/lhj/helper/local_config.rb +40 -0
- data/lib/lhj/helper/oss_config.rb +32 -0
- data/lib/lhj/helper/oss_helper.rb +43 -0
- data/lib/lhj/helper/trans_helper.rb +49 -0
- data/lib/lhj/tools/version.rb +1 -1
- metadata +33 -2
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'lhj/helper/oss_helper'
|
2
|
+
|
3
|
+
module Lhj
|
4
|
+
class Command
|
5
|
+
class Local < Command
|
6
|
+
class Upload < Local
|
7
|
+
self.summary = '上传中英文对照csv文件'
|
8
|
+
|
9
|
+
def self.options
|
10
|
+
[
|
11
|
+
%w[--upload-file 上传中英文对照csv文件名]
|
12
|
+
]
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(argv)
|
16
|
+
@pwd_path = argv.shift_argument || Dir.pwd
|
17
|
+
@upload_csv_file = argv.option('upload-file', '*.csv')
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
21
|
+
def csv_file_name
|
22
|
+
file_name = @upload_csv_file
|
23
|
+
file_name = "#{@upload_csv_file}.csv" unless /.csv$/ =~ @upload_csv_file
|
24
|
+
file_name
|
25
|
+
end
|
26
|
+
|
27
|
+
def csv_oss_key(file_name)
|
28
|
+
"csv/#{Time.now.to_i}/#{file_name}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def run
|
32
|
+
csv_files = File.join(@pwd_path, '**', csv_file_name)
|
33
|
+
Dir.glob(csv_files).each do |f|
|
34
|
+
file_name = File.basename(f)
|
35
|
+
oss_key = csv_oss_key file_name
|
36
|
+
Lhj::OSS::Helper.instance.upload(oss_key, f)
|
37
|
+
url = Lhj::OSS::Helper.instance.object_url(oss_key)
|
38
|
+
puts "云端上传成功.下载Url:#{url}\n"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'csv'
|
4
|
+
|
5
|
+
module Lhj
|
6
|
+
class Command
|
7
|
+
class Service < Command
|
8
|
+
self.summary = '微服务名变更'
|
9
|
+
|
10
|
+
def initialize(argv)
|
11
|
+
@current_path = argv.shift_argument || Dir.pwd
|
12
|
+
@file_type = argv.option('file-type', 'm,h')
|
13
|
+
@file_name = argv.option('file-name', 'service_map.csv')
|
14
|
+
@service_map = {}
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def run
|
19
|
+
read_csv
|
20
|
+
update_source
|
21
|
+
end
|
22
|
+
|
23
|
+
def read_csv
|
24
|
+
path = File.join(@current_path, csv_file_name)
|
25
|
+
Dir.glob(path).each do |p|
|
26
|
+
CSV.foreach(p) do |row|
|
27
|
+
@service_map[row[0]] = row[1] if row[0]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def csv_file_name
|
33
|
+
file_name = @file_name
|
34
|
+
file_name = "#{@file_name}.csv" unless /.csv$/ =~ @file_name
|
35
|
+
file_name
|
36
|
+
end
|
37
|
+
|
38
|
+
def update_source
|
39
|
+
Dir.glob("#{@current_path}/**/*.{m,h}").each do |f|
|
40
|
+
if f =~ /Pods/
|
41
|
+
update_file(f) if f =~ %r{Pods/ML}
|
42
|
+
else
|
43
|
+
update_file(f)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def update_file(file)
|
49
|
+
File.chmod(0o644, file)
|
50
|
+
str = file_string(file)
|
51
|
+
File.open(file, 'w+') do |f|
|
52
|
+
f.write(str)
|
53
|
+
end
|
54
|
+
File.chmod(0o444, file) if file =~ /Pods/
|
55
|
+
end
|
56
|
+
|
57
|
+
def file_string(file)
|
58
|
+
str = ''
|
59
|
+
File.open(file, 'r+') do |f|
|
60
|
+
f.each_line do |line|
|
61
|
+
str += format_string(f, line)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
str
|
65
|
+
end
|
66
|
+
|
67
|
+
def format_string(file, line)
|
68
|
+
result = line
|
69
|
+
if url_reg =~ line
|
70
|
+
line.scan(url_reg).flatten.each do |key|
|
71
|
+
result = result.gsub(key, @service_map[key]) if key && @service_map[key]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
result
|
75
|
+
end
|
76
|
+
|
77
|
+
def url_reg
|
78
|
+
@url_key_reg ||= begin
|
79
|
+
keys = @service_map.keys.join('|')
|
80
|
+
/(#{keys})/
|
81
|
+
end
|
82
|
+
@url_key_reg
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'lhj/helper/oss_helper'
|
3
|
+
|
4
|
+
module Lhj
|
5
|
+
class Command
|
6
|
+
class OSS < Command
|
7
|
+
class Del < OSS
|
8
|
+
self.summary = '删除OSS的key'
|
9
|
+
|
10
|
+
self.arguments = [
|
11
|
+
CLAide::Argument.new('--key=XX', true)
|
12
|
+
]
|
13
|
+
|
14
|
+
def self.options
|
15
|
+
[
|
16
|
+
%w[--key OSS对应的key]
|
17
|
+
]
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(argv)
|
21
|
+
@key = argv.option('key')
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
def validate!
|
26
|
+
help! '请输入key' unless @key
|
27
|
+
super
|
28
|
+
end
|
29
|
+
|
30
|
+
def run
|
31
|
+
Lhj::OSS::Helper.instance.delete(@key)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'lhj/helper/oss_helper'
|
2
|
+
|
3
|
+
module Lhj
|
4
|
+
class Command
|
5
|
+
class OSS < Command
|
6
|
+
class List < OSS
|
7
|
+
def run
|
8
|
+
objects = Lhj::OSS::Helper.instance.list
|
9
|
+
objects.each do |o|
|
10
|
+
path = "#{Lhj::OSS::Helper.instance.url_path}/#{o.key}"
|
11
|
+
puts path
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'lhj/helper/oss_helper'
|
4
|
+
|
5
|
+
module Lhj
|
6
|
+
class Command
|
7
|
+
class OSS < Command
|
8
|
+
# OSS file upload
|
9
|
+
class Upload < OSS
|
10
|
+
self.summary = '上传文件'
|
11
|
+
|
12
|
+
self.arguments = [
|
13
|
+
CLAide::Argument.new('type', false),
|
14
|
+
CLAide::Argument.new('name', false)
|
15
|
+
]
|
16
|
+
|
17
|
+
def self.options
|
18
|
+
[
|
19
|
+
%w[--type 文件类型],
|
20
|
+
%w[--name 文件名]
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
def validate!
|
25
|
+
super
|
26
|
+
help! '类型或名字必须输入' unless @name && @type
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize(argv)
|
30
|
+
@current_path = argv.shift_argument || Dir.pwd
|
31
|
+
@type = argv.option('type')
|
32
|
+
@name = argv.option('name')
|
33
|
+
super
|
34
|
+
end
|
35
|
+
|
36
|
+
def run
|
37
|
+
Dir.glob(@current_path).each do |f|
|
38
|
+
file_name = File.basename(f)
|
39
|
+
if @name && /#{@name}/ =~ file_name
|
40
|
+
upload(f, file_name)
|
41
|
+
elsif @type && /#{@type}/ =~ file_name
|
42
|
+
upload(f, file_name)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def upload(file, file_name)
|
50
|
+
oss_key = file_name
|
51
|
+
Lhj::OSS::Helper.instance.upload(oss_key, file)
|
52
|
+
url = Lhj::OSS::Helper.instance.object_url(oss_key)
|
53
|
+
puts "云端上传成功:#{url}\n"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'find'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Lhj
|
7
|
+
class Command
|
8
|
+
# refactor global name
|
9
|
+
class Refactor < Command
|
10
|
+
self.summary = '重命名全局变量'
|
11
|
+
|
12
|
+
self.arguments = [
|
13
|
+
CLAide::Argument.new('--key=xx', true),
|
14
|
+
CLAide::Argument.new('--other=xx', true)
|
15
|
+
]
|
16
|
+
|
17
|
+
def self.options
|
18
|
+
[
|
19
|
+
%w[--key 变量名],
|
20
|
+
%w[--other 新的变量名]
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
def validate!
|
25
|
+
super
|
26
|
+
help! '输入变量名' unless @key
|
27
|
+
help! '新的变量名' unless @other
|
28
|
+
end
|
29
|
+
|
30
|
+
def initialize(argv)
|
31
|
+
@current_path = argv.shift_argument || Dir.pwd
|
32
|
+
@key = argv.option('key')
|
33
|
+
@other = argv.option('other')
|
34
|
+
super
|
35
|
+
end
|
36
|
+
|
37
|
+
def run
|
38
|
+
update_source_file
|
39
|
+
end
|
40
|
+
|
41
|
+
def update_source_file
|
42
|
+
Dir.glob("#{@current_path}/**/*.{m,h,pch}").each do |f|
|
43
|
+
if f =~ /Pods/
|
44
|
+
modify_file(f) if f =~ %r{Pods/ML}
|
45
|
+
else
|
46
|
+
modify_file(f)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def modify_file(file)
|
52
|
+
File.chmod(0o644, file)
|
53
|
+
str = file_string(file)
|
54
|
+
File.open(file, 'w+') do |f|
|
55
|
+
f.write(str)
|
56
|
+
end
|
57
|
+
File.chmod(0o444, file) if file =~ /Pods/
|
58
|
+
end
|
59
|
+
|
60
|
+
def file_string(file)
|
61
|
+
str = ''
|
62
|
+
File.open(file, 'r+') do |f|
|
63
|
+
f.each_line do |line|
|
64
|
+
str += format_string(f, line)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
str
|
68
|
+
end
|
69
|
+
|
70
|
+
def format_string(file, line)
|
71
|
+
result = line
|
72
|
+
result = result.gsub(/(\W)(#{@key})(\W)/, "\\1#{@other}\\3") if /(\W)(#{@key})(\W)/ =~ line
|
73
|
+
result
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -7,7 +7,7 @@ module Lhj
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def rename
|
10
|
-
folder_path = "
|
10
|
+
folder_path = "~/Downloads/ss"
|
11
11
|
Dir.glob("#{folder_path}/**/*.{png}").sort.each do |f|
|
12
12
|
filename = File.basename(f, File.extname(f))
|
13
13
|
File.rename(f, "#{folder_path}/aomi_soldout_" + filename.capitalize + File.extname(f))
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'find'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
module Lhj
|
7
|
+
class Command
|
8
|
+
class ReverseImport < Command
|
9
|
+
self.summary = '更改头文件引入'
|
10
|
+
|
11
|
+
def initialize(argv)
|
12
|
+
@current_path = argv.shift_argument || Dir.pwd
|
13
|
+
@framework_names = []
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def run
|
18
|
+
get_all_frameworks
|
19
|
+
get_import_headers
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_import_headers
|
23
|
+
Dir.glob("#{@current_path}/**/*.{m,h,pch}").each do |f|
|
24
|
+
header_handler_file(f) unless f =~ /Pods/
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_all_frameworks
|
29
|
+
folders = child_dir
|
30
|
+
folders.each { |name| @framework_names << name }
|
31
|
+
end
|
32
|
+
|
33
|
+
def framework_name_reg
|
34
|
+
@url_key_reg ||= begin
|
35
|
+
keys = @framework_names.join('|')
|
36
|
+
/#{keys}/
|
37
|
+
end
|
38
|
+
@url_key_reg
|
39
|
+
end
|
40
|
+
|
41
|
+
def pod_folder_name
|
42
|
+
File.join(@current_path, 'MacauLife', 'CustomPods')
|
43
|
+
end
|
44
|
+
|
45
|
+
def child_dir
|
46
|
+
dirs = Dir.entries(pod_folder_name)
|
47
|
+
dirs.reject! { |d| File.directory?(d) }
|
48
|
+
dirs
|
49
|
+
end
|
50
|
+
|
51
|
+
def import_reg
|
52
|
+
/#import\s*<(.*)\/(.*)>$/
|
53
|
+
end
|
54
|
+
|
55
|
+
def header_handler_file(f)
|
56
|
+
str = ''
|
57
|
+
File.readlines(f).each do |l|
|
58
|
+
if import_reg =~ l
|
59
|
+
ma = l.match(import_reg)
|
60
|
+
if framework_name_reg =~ ma[1]
|
61
|
+
str += "#import \"#{ma[2]}\"\n"
|
62
|
+
else
|
63
|
+
str += l.dup
|
64
|
+
end
|
65
|
+
else
|
66
|
+
str += l.dup
|
67
|
+
end
|
68
|
+
end
|
69
|
+
File.write(f, str)
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
data/lib/lhj/command/trans.rb
CHANGED
@@ -1,21 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'lhj/helper/trans_helper'
|
1
3
|
|
2
4
|
module Lhj
|
3
5
|
class Command
|
4
6
|
class Trans < Command
|
5
|
-
self.summary = '
|
6
|
-
self.description = '中英转换'
|
7
|
+
self.summary = '源码中的简繁体转换'
|
7
8
|
|
8
|
-
def
|
9
|
-
|
9
|
+
def self.options
|
10
|
+
[
|
11
|
+
%w[--file-type 文件扩展名,默认为m,h,pch,xib],
|
12
|
+
%w[--zh-cn 转成简体中文,默认转成繁体]
|
13
|
+
]
|
10
14
|
end
|
11
15
|
|
12
|
-
def
|
16
|
+
def initialize(argv)
|
17
|
+
@current_path = argv.shift_argument || Dir.pwd
|
18
|
+
@file_type = argv.option('file-type', 'm,h,pch,xib')
|
19
|
+
@zh_cn = argv.flag?('zh-cn', false)
|
13
20
|
super
|
14
21
|
end
|
15
22
|
|
16
23
|
def run
|
17
|
-
|
24
|
+
handler_files
|
25
|
+
end
|
26
|
+
|
27
|
+
def handler_files
|
28
|
+
Dir.glob("#{@current_path}/**/*.{#{@file_type}}").each do |f|
|
29
|
+
handler_file f
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def handler_file(file)
|
34
|
+
File.chmod(0o644, file) unless File.writable?(file)
|
35
|
+
str = format_file_string(file)
|
36
|
+
File.open(file, 'w+') do |f|
|
37
|
+
f.write(str)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def format_file_string(file)
|
42
|
+
str = ''
|
43
|
+
File.open(file, 'r+') do |f|
|
44
|
+
f.each_line do |line|
|
45
|
+
str += format_line_string(line)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
str
|
18
49
|
end
|
50
|
+
|
51
|
+
def format_line_string(line)
|
52
|
+
result = line
|
53
|
+
if line =~ /[\u4e00-\u9fa5]/
|
54
|
+
result = Lhj::Trans::Helper.instance.trans_zh_cn_str(line) if @zh_cn
|
55
|
+
result = Lhj::Trans::Helper.instance.trans_zh_hk_str(line) unless @zh_cn
|
56
|
+
end
|
57
|
+
result
|
58
|
+
end
|
59
|
+
|
19
60
|
end
|
20
61
|
end
|
21
62
|
end
|
data/lib/lhj/command.rb
CHANGED
@@ -2,6 +2,17 @@ require 'claide'
|
|
2
2
|
|
3
3
|
module Lhj
|
4
4
|
class Command < CLAide::Command
|
5
|
+
require 'lhj/command/init'
|
6
|
+
require 'lhj/command/head_import'
|
7
|
+
require 'lhj/command/refactor_rename'
|
8
|
+
require 'lhj/command/local/fetch'
|
9
|
+
require 'lhj/command/local/filter'
|
10
|
+
require 'lhj/command/local/local'
|
11
|
+
require 'lhj/command/local/micro_service'
|
12
|
+
require 'lhj/command/local/local_upload'
|
13
|
+
require 'lhj/command/oss/del'
|
14
|
+
require 'lhj/command/oss/upload'
|
15
|
+
require 'lhj/command/oss/list'
|
5
16
|
require 'lhj/command/view'
|
6
17
|
require 'lhj/command/rename_image'
|
7
18
|
require 'lhj/command/trans'
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'lhj/helper/oss_config'
|
3
|
+
|
4
|
+
module Lhj
|
5
|
+
class LocalConfig
|
6
|
+
def config_file
|
7
|
+
File.join(Lhj::Config.instance.home_dir, config_file_name)
|
8
|
+
end
|
9
|
+
|
10
|
+
def config_file_name
|
11
|
+
'localizable_config.yml'
|
12
|
+
end
|
13
|
+
|
14
|
+
def syn_config_file
|
15
|
+
Lhj::OSS::Helper.instance.down_load(config_file_name, config_file)
|
16
|
+
end
|
17
|
+
|
18
|
+
def load_config
|
19
|
+
syn_config_file unless File.exist?(config_file)
|
20
|
+
YAML.load_file(config_file)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_col_by_name(file_name, col_name = 'csv_key_col')
|
24
|
+
m = config
|
25
|
+
col = m[col_name]
|
26
|
+
fo = m['read_targets'].find{ |o| /#{o['csv_file']}/ =~ file_name }
|
27
|
+
col = fo[col_name] if fo
|
28
|
+
col
|
29
|
+
end
|
30
|
+
|
31
|
+
def config
|
32
|
+
@config ||= load_config
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.instance
|
36
|
+
@instance ||= new
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'yaml'
|
3
|
+
require 'lhj/config'
|
4
|
+
|
5
|
+
module Lhj
|
6
|
+
class OSSConfig
|
7
|
+
def self.config_file
|
8
|
+
file = 'oss_config.yml'
|
9
|
+
File.expand_path("#{Lhj::Config.instance.home_dir}/#{file}")
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.config
|
13
|
+
@yaml ||= YAML.load_file(config_file)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.oss_endpoint
|
17
|
+
config['oss_endpoint']
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.oss_access_key_id
|
21
|
+
config['oss_access_key_id']
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.oss_access_key_secret
|
25
|
+
config['oss_access_key_secret']
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.oss_bucket
|
29
|
+
config['oss_bucket']
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'aliyun/oss'
|
2
|
+
require 'lhj/helper/oss_config'
|
3
|
+
|
4
|
+
module Lhj
|
5
|
+
class OSS
|
6
|
+
class Helper
|
7
|
+
def initialize
|
8
|
+
@client = Aliyun::OSS::Client.new(endpoint: Lhj::OSSConfig.oss_endpoint,
|
9
|
+
access_key_id: Lhj::OSSConfig.oss_access_key_id,
|
10
|
+
access_key_secret: Lhj::OSSConfig.oss_access_key_secret)
|
11
|
+
@bucket = @client.get_bucket(Lhj::OSSConfig.oss_bucket)
|
12
|
+
end
|
13
|
+
|
14
|
+
def url_path
|
15
|
+
"http://#{Lhj::OSSConfig.oss_bucket}.#{Lhj::OSSConfig.oss_endpoint}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def upload(key, file)
|
19
|
+
@bucket.put_object(key, :file => file)
|
20
|
+
end
|
21
|
+
|
22
|
+
def down_load(key, file, &block)
|
23
|
+
@bucket.get_object(key, :file => file, &block)
|
24
|
+
end
|
25
|
+
|
26
|
+
def object_url(key)
|
27
|
+
@bucket.object_url(key, false)
|
28
|
+
end
|
29
|
+
|
30
|
+
def list
|
31
|
+
@bucket.list_objects
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete(key)
|
35
|
+
@bucket.delete_object(key)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.instance
|
39
|
+
@instance ||= new
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'lhj/config'
|
2
|
+
|
3
|
+
module Lhj
|
4
|
+
class Trans
|
5
|
+
class Helper
|
6
|
+
def self.instance
|
7
|
+
@instance ||= new
|
8
|
+
end
|
9
|
+
|
10
|
+
def yaml_file
|
11
|
+
File.join(Lhj::Config.instance.home_dir, 'zh2hant.yml')
|
12
|
+
end
|
13
|
+
|
14
|
+
def load_trans_map
|
15
|
+
require 'yaml'
|
16
|
+
down_load_yaml unless File.exist?(yaml_file)
|
17
|
+
contents = YAML.safe_load(File.open(yaml_file))
|
18
|
+
contents.to_hash
|
19
|
+
end
|
20
|
+
|
21
|
+
def down_load_yaml
|
22
|
+
require 'open-uri'
|
23
|
+
URI.open('http://aomi-ios-repo.oss-cn-shenzhen.aliyuncs.com/zh2hant.yml') do |i|
|
24
|
+
File.open(yaml_file, 'w+') do |f|
|
25
|
+
f.write(i.read)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def trans_zh_cn_str(input)
|
31
|
+
@trans_map_invert ||= load_trans_map.invert
|
32
|
+
out = []
|
33
|
+
input.each_char do |c|
|
34
|
+
out << (@trans_map_invert[c] || c)
|
35
|
+
end
|
36
|
+
out.join('')
|
37
|
+
end
|
38
|
+
|
39
|
+
def trans_zh_hk_str(input)
|
40
|
+
@trans_map ||= load_trans_map
|
41
|
+
out = []
|
42
|
+
input.each_char do |c|
|
43
|
+
out << (@trans_map[c] || c)
|
44
|
+
end
|
45
|
+
out.join('')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|