mchat 0.1.2 → 0.2.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: 4e5b2f2c8f81c468432b3956d94cb55771ab176dcf253b0189f94913b849cb78
4
- data.tar.gz: e072da17f7a5d5bd68c9a742889565d55eeb85b1bc0ec3b8bc55d0fe20e1a4a0
3
+ metadata.gz: 6aefb6d9811fd9c32d4d2d4245bb28830c4660e4a9e8b4c83371cd0c97cf3b69
4
+ data.tar.gz: af93fe1a94375326e7a20cf141bb0e4936e317eb53398c874deb10d20d025480
5
5
  SHA512:
6
- metadata.gz: 0a13929cc01794eeb6ad087d7071e382ad3a5ab9fb34310a540c2c333b8e234bd2b4de34b39974eeafdfa7e6a7f36e5218764cbdcc1e14cacaa9e339d06847fa
7
- data.tar.gz: d3e62adf2c158acc533279cb5fbf99d3d8d12cb1212f2e4309797190392ca17121d57e55b94d14f484385deba1fdec3aa87b29a49e79a56463303cdb188ecee7
6
+ metadata.gz: '076984b05f9c3482cc520fb95ef31c9a29c1630fea35e7d946741e949f8883ea883981f4888d840e9b49fd675e6e202585d7c264c59a475e80271b5416f5cd80'
7
+ data.tar.gz: 02d42e72ad4619dafe0e069861c9d60af8f14c49f8f23f03e2d88cda199c9281f4ab282636e9cd5543b9b01dbf9fce59f2f8147e1f3b9faf496fcf2d82193553
data/Dockerfile CHANGED
@@ -1,5 +1,7 @@
1
1
  FROM ruby:3.1-buster
2
2
 
3
+ ENV LANG=C.UTF-8
4
+
3
5
  RUN apt update -y
4
6
  RUN apt install screen -y
5
7
  RUN apt install vim -y
@@ -15,4 +17,4 @@ RUN gem install rainbow
15
17
  RUN gem install httparty
16
18
  RUN gem install mchat
17
19
 
18
- CMD ["bash"]
20
+ CMD ["bash"]
data/README.md CHANGED
@@ -30,7 +30,7 @@ mchat
30
30
 
31
31
  直接使用
32
32
 
33
- `docker run -it mark24code/mchat env LANG=C.UTF-8 /bin/bash`
33
+ `docker run -it mark24code/mchat`
34
34
 
35
35
 
36
36
 
data/Rakefile CHANGED
@@ -13,9 +13,17 @@ end
13
13
 
14
14
  # RuboCop::RakeTask.new
15
15
 
16
- Rake::TestTask.new(:preview) do |t|
16
+ desc 'build gem & local install it'
17
+ task :preview do
17
18
  system("gem build mchat.gemspec && gem install ./mchat-#{Mchat::VERSION}.gem")
18
19
  end
19
20
 
21
+ desc 'build docker images & push'
22
+ task :docker_pd do
23
+ system("docker build -t mark24code/mchat:latest .")
24
+ system("docker push mark24code/mchat")
25
+ system("docker build -t mark24code/mchat:#{Mchat::VERSION} .")
26
+ system("docker push mark24code/mchat:#{Mchat::VERSION}")
27
+ end
20
28
 
21
29
  task default: %i[test]
data/exe/mchat CHANGED
@@ -10,8 +10,8 @@ require_relative "../lib/mchat/comps/user_config"
10
10
  class MchatApp
11
11
  include Mchat::UserConfig
12
12
 
13
- def initialize
14
- first_time_use
13
+ def initialize(opts={})
14
+ @server = opts.fetch(:server, nil)
15
15
  @screenrc_dir = Pathname.new(Dir.home).join('.mchat')
16
16
  @screenrc = Pathname.new(Dir.home).join('.mchat').join('screenrc')
17
17
  end
@@ -32,10 +32,16 @@ class MchatApp
32
32
  init_config = %Q(
33
33
  split -v
34
34
 
35
- screen -t timeline 'mchat_timeline'
35
+ screen -t timeline mchat_timeline
36
36
  focus
37
- screen -t repl 'mchat_repl'
38
37
  )
38
+ if @server
39
+ # search `eval` 接受完整参数
40
+ # https://www.gnu.org/software/screen/manual/screen.html
41
+ init_config << "screen -t repl eval mchat_repl --server=#{@server}"
42
+ else
43
+ init_config << "screen -t repl mchat_repl"
44
+ end
39
45
  f << init_config
40
46
  end
41
47
  end
@@ -62,18 +68,23 @@ end
62
68
 
63
69
 
64
70
 
65
- # options = {}
71
+ options = {}
66
72
  OptionParser.new do |opts|
67
73
  opts.banner = "Usage: mchat [options]"
68
74
 
69
75
  opts.on("--version", "version") do
70
-
76
+
71
77
  puts "Mchat v#{::Mchat::VERSION}"
72
78
  puts ""
73
79
  puts "author: mark24"
74
80
  puts "mail: mark.zhangyoung@qq.com"
75
81
  return
76
82
  end
83
+
84
+ opts.on("--server=SERVER", "server") do |server|
85
+ options[:server] = server
86
+ end
87
+
77
88
  end.parse!
78
89
 
79
- MchatApp.new.run
90
+ MchatApp.new(options).run
data/exe/mchat_repl CHANGED
@@ -9,7 +9,7 @@ OptionParser.new do |opts|
9
9
  opts.banner = "Usage: mchat_repl [options]"
10
10
 
11
11
  opts.on("--version", "version") do
12
-
12
+
13
13
  puts "MchatRepl v#{::Mchat::VERSION}"
14
14
  puts ""
15
15
  puts "author: mark24"
@@ -17,11 +17,15 @@ OptionParser.new do |opts|
17
17
  return
18
18
  end
19
19
 
20
+ opts.on("--server=SERVER", "server") do |server|
21
+ options[:server] = server
22
+ end
23
+
20
24
  end.parse!
21
25
 
22
26
 
23
- repl = Mchat::Repl.new
27
+ repl = Mchat::Repl.new(options)
24
28
 
25
29
  trap("INT") { repl.quit_command_run }
26
30
 
27
- repl.run
31
+ repl.run
@@ -18,7 +18,7 @@ init_config = %Q(
18
18
  wait_prefix: ">>"
19
19
  display_welcome: true
20
20
  clear_repl_everytime: true
21
- server: "localhost:4567"
21
+ # server: "localhost:4567"
22
22
 
23
23
  )
24
24
  f << init_config
@@ -35,20 +35,33 @@ server: "localhost:4567"
35
35
  return opt
36
36
  end
37
37
 
38
- def first_time_use
39
- if !user_config_exist?
40
- read_user_config
41
- puts "Mchat first run TIPS".style.jade
38
+ def check_server_before_all
39
+ if !@server
40
+ puts "Mchat about `Server` Tips".style.jade
41
+ puts ""
42
+ puts "your server: `#{@server}`"
42
43
  puts ""
43
- puts "Mchat not found user config, maybe this is your first time run Mchat."
44
44
  init_config = "~/.mchat".style.warn
45
45
  puts "Mchat has help your create config to #{init_config}"
46
46
  server_field = "<server> field".style.warn
47
47
  puts "Before you run mchat, edit your config file, change #{server_field} to yours:"
48
48
  puts "vim #{CONFIG_PATH.to_s}".style.warn
49
- puts "make sure your server works, before run Mchat. :D"
50
-
51
- exit 0
49
+ puts "make sure your server works, before run Mchat."
50
+ puts ""
51
+ puts "If you have server address, you can also run like this:"
52
+ puts "mchat --server='http://<your host>'"
53
+ puts "e.g. mchat --server='http://localhost:4567'"
54
+ puts "so you will not need to edit mchatrc." + " :)".style.warn
55
+ puts ""
56
+ puts "Confirm? (y/yes)"
57
+ while true
58
+ confirm = gets
59
+ confirm = confirm.strip
60
+ if confirm == 'y' || confirm == 'yes'
61
+ system('screen -X quit')
62
+ end
63
+ sleep 0.1
64
+ end
52
65
  end
53
66
  end
54
67
  end
data/lib/mchat/repl.rb CHANGED
@@ -104,14 +104,16 @@ module Mchat
104
104
 
105
105
  # Instance ########################3
106
106
 
107
- def initialize
108
- first_time_use
107
+ def initialize(opts = {})
109
108
 
110
109
  @config = read_user_config
111
- @server = @config.fetch("server") || 'localhost:4567'
110
+
111
+ @server = opts.fetch(:server, nil) || @config.fetch("server", nil) || nil
112
+
113
+ check_server_before_all
112
114
 
113
115
  @api = ::Mchat::Request.new(@server)
114
-
116
+
115
117
  @wait_prefix = @config.fetch("wait_prefix") || ">>"
116
118
  @display_welcome = @config.fetch("display_welcome") || true
117
119
 
@@ -215,7 +217,7 @@ module Mchat
215
217
  startup_msg = resp.fetch("data")
216
218
  return Message.new(startup_msg).display
217
219
  end
218
-
220
+
219
221
  def before_loop_setup
220
222
  # cli
221
223
  _puts welcome(@display_welcome)
data/lib/mchat/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mchat
4
- VERSION = "0.1.2"
4
+ VERSION = "0.2.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mchat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark24
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-15 00:00:00.000000000 Z
11
+ date: 2022-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow