paned_repl 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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