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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e2c85f0b2dbb91cc7aa979741d8dc5482c3402ab
4
- data.tar.gz: 858c3840151bf8c901020514209440b629a71220
3
+ metadata.gz: d1940d2e1b3dda07e8888403487fe21e3b727437
4
+ data.tar.gz: 117135ef42a71db02b52bda9798526a92d1def4b
5
5
  SHA512:
6
- metadata.gz: 9dda4aed4ce39ca955eadab9b79fb8de419da7ea7a54cd290e8e54dece04ff253a960fd0bf7a88f590d4a2e20127637a3196ee3b7eb64e0d7c0f4514b328ad7b
7
- data.tar.gz: 3bd4915e7cbbdd922c16e58f83f33d91a002d2e3ad6137834a5bf53421996b1dc599be01fde99c0625e962c0f4f1c1bc8bc9c3196fc9c7c405537860ded89179
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
- @pane = 0
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
 
@@ -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 == pane
12
- swap_pane pane, pane + 1
14
+ if pane_num == main_pane
15
+ swap_pane main_pane, main_pane + 1
13
16
  end
14
- @pane = pane + 1
15
- @pane_count = pane_count + 1
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 ||= pane
22
+ pane_num ||= main_pane
21
23
  select_pane(pane_num)
22
24
  system "tmux split-window -h"
23
- if pane_num == pane
24
- swap_pane pane, pane + 1
25
+ if pane_num == main_pane
26
+ swap_pane main_pane, main_pane + 1
25
27
  end
26
- @pane = pane + 1
27
- @pane_count = pane_count + 1
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
- @pane = pane - 1
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 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
@@ -11,8 +11,8 @@ module PanedRepl
11
11
  sessions["paned_repl_base_tmux_session"]
12
12
  end
13
13
 
14
- def self.start(name)
15
- Repls::BaseRepl.start(name)
14
+ def self.start(name, &blk)
15
+ Repls::BaseRepl.start(name, &blk)
16
16
  end
17
17
 
18
18
  def self.const name
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module PanedRepl
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.7'
3
3
  end
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.5
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