paned_repl 0.0.5 → 0.0.7
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/paned_repl/repls/base_repl.rb +6 -4
- data/lib/paned_repl/tmux.rb +15 -15
- data/lib/paned_repl/top_level_extensions.rb +29 -0
- data/lib/paned_repl.rb +2 -2
- data/lib/version.rb +1 -1
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1940d2e1b3dda07e8888403487fe21e3b727437
|
4
|
+
data.tar.gz: 117135ef42a71db02b52bda9798526a92d1def4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '085a547a887c1ab76c1aaf26e9c6aad19b441cce89c926527e1ba439f44dc3bde8aebbc4756fd5ef7da35cf41c813b9cd7e01f91e2d6d6c74f4a7ab44abbe982'
|
7
|
+
data.tar.gz: '0458b2295a037151315f0c00eb943b1e38c0daaa48fb989d6cca6e46fd967f7fa82536be31b1ab8a65d06183e55054d0e3cebdc156c71f7047920bb9e85138b8'
|
@@ -1,10 +1,11 @@
|
|
1
1
|
class PanedRepl::Repls::BaseRepl
|
2
2
|
|
3
|
-
def self.start(name)
|
4
|
-
new(name: name).start
|
3
|
+
def self.start(name, &blk)
|
4
|
+
new(name: name).start(&blk)
|
5
5
|
end
|
6
6
|
|
7
7
|
Sessions = {}
|
8
|
+
WsClients = []
|
8
9
|
|
9
10
|
include PanedRepl::Tmux
|
10
11
|
|
@@ -12,9 +13,10 @@ class PanedRepl::Repls::BaseRepl
|
|
12
13
|
|
13
14
|
include AutoInitializer
|
14
15
|
|
15
|
-
def start
|
16
|
-
|
16
|
+
def start(&blk)
|
17
|
+
Object.include TopLevelExtensions
|
17
18
|
Sessions[name] = self
|
19
|
+
Thread.new(&blk) if blk
|
18
20
|
PanedRepl.class_exec { Pry.start }
|
19
21
|
end
|
20
22
|
|
data/lib/paned_repl/tmux.rb
CHANGED
@@ -4,28 +4,29 @@ module PanedRepl::Tmux
|
|
4
4
|
`tmux select-pane -t #{n}`
|
5
5
|
end
|
6
6
|
|
7
|
+
def main_pain
|
8
|
+
@main_pain ||= 0
|
9
|
+
end
|
10
|
+
|
7
11
|
def split_vertical(pane_num=nil)
|
8
|
-
pane_num ||= pane
|
9
12
|
select_pane(pane_num)
|
10
13
|
system "tmux split-window -v"
|
11
|
-
if pane_num ==
|
12
|
-
swap_pane
|
14
|
+
if pane_num == main_pane
|
15
|
+
swap_pane main_pane, main_pane + 1
|
13
16
|
end
|
14
|
-
@
|
15
|
-
|
16
|
-
select_pane(pane)
|
17
|
+
@main_pane = main_pane + 1
|
18
|
+
select_pane(main_pane)
|
17
19
|
end
|
18
20
|
|
19
21
|
def split_horizontal(pane_num=nil)
|
20
|
-
pane_num ||=
|
22
|
+
pane_num ||= main_pane
|
21
23
|
select_pane(pane_num)
|
22
24
|
system "tmux split-window -h"
|
23
|
-
if pane_num ==
|
24
|
-
swap_pane
|
25
|
+
if pane_num == main_pane
|
26
|
+
swap_pane main_pane, main_pane + 1
|
25
27
|
end
|
26
|
-
@
|
27
|
-
|
28
|
-
select_pane(pane)
|
28
|
+
@main_pane = main_pane + 1
|
29
|
+
select_pane(main_pane)
|
29
30
|
end
|
30
31
|
|
31
32
|
def swap_pane(n1,n2)
|
@@ -34,8 +35,7 @@ module PanedRepl::Tmux
|
|
34
35
|
|
35
36
|
def kill_pane(n)
|
36
37
|
`tmux kill-pane -t #{n}`
|
37
|
-
@
|
38
|
-
@pane_count = pane_count - 1
|
38
|
+
@main_pane = main_pane - 1
|
39
39
|
end
|
40
40
|
|
41
41
|
def send_keys(keys, frame_id)
|
@@ -43,7 +43,7 @@ module PanedRepl::Tmux
|
|
43
43
|
system <<-SH
|
44
44
|
tmux send-keys #{frame_selector} "#{keys}" C-m
|
45
45
|
SH
|
46
|
-
select_pane
|
46
|
+
select_pane main_pane
|
47
47
|
end
|
48
48
|
|
49
49
|
def create_session(session_name=nil)
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'byebug'
|
2
|
+
require 'securerandom'
|
3
|
+
require 'easy_cache'
|
4
|
+
require 'awesome_print'
|
5
|
+
require 'faye/websocket'
|
6
|
+
require 'eventmachine'
|
7
|
+
require 'keyword_hash_builder'
|
8
|
+
|
9
|
+
$debug = true
|
10
|
+
Thread.abort_on_exception = true
|
11
|
+
|
12
|
+
module TopLevelExtensions
|
13
|
+
|
14
|
+
def exit_tmux
|
15
|
+
panes.data.values.sort.reverse.each &base.method(:kill_pane)
|
16
|
+
`pkill tmux`
|
17
|
+
exit
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_shell_command(ruby_string)
|
21
|
+
if ["\"", "\'"].any? &cmd_fragment.method(:include?)
|
22
|
+
raise ArgumentError, "fragment cant have quotes"
|
23
|
+
end
|
24
|
+
<<-SH
|
25
|
+
ruby -e '#{cmd_fragment}'
|
26
|
+
SH
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
data/lib/paned_repl.rb
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paned_repl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- maxpleaner
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: keyword_hash_builder
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: ''
|
70
84
|
email: maxpleaner@gmail.com
|
71
85
|
executables:
|
@@ -80,6 +94,7 @@ files:
|
|
80
94
|
- lib/paned_repl/repls.rb
|
81
95
|
- lib/paned_repl/repls/base_repl.rb
|
82
96
|
- lib/paned_repl/tmux.rb
|
97
|
+
- lib/paned_repl/top_level_extensions.rb
|
83
98
|
- lib/paned_repl/utils.rb
|
84
99
|
- lib/version.rb
|
85
100
|
homepage: https://github.com/maxpleaner/paned_repl
|