teamocil 1.3.1 → 1.4

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: 39659727ca49fed006e44ed06c92c9cfe3d532ea
4
- data.tar.gz: 37d68dd84e577bb9c9079b44de08ab09dc9fa1e1
3
+ metadata.gz: e796389d4b59a72b6642f344e17ced9c0cb23c74
4
+ data.tar.gz: 06955132e6bb74b8a7aaf0d7d6d0d50223386143
5
5
  SHA512:
6
- metadata.gz: 7325cdae58869e2b72d54f95094fffb1f2a1eba043a6c7318a5486054a3c2d8a91b6c53d1e66ecdaebd486432ffb281904fe5066c93b0ee03a0ef342dafc7212
7
- data.tar.gz: 89688490d2f543ebb7a76f395a9e8fdff9ed52cf6fcffad3944ba8a220c8031b3be66be675eda3e1cd336d8ab3fe2cca6e61fc7c7b0f73c99aafc814454d07a3
6
+ metadata.gz: 7a060e6b0799fd16adf75dad62064ba7ec794c4fffba5188e1314705c9fdf16a5928033a9fbcf4eb223846bbd452bb8a10cb0e523f51538ce69653a194c8a0e1
7
+ data.tar.gz: bb07d7f9fcfddd7828bc155ab0dedff75264f57c69e60955d5b2ca2be699880ea4a44b0b523a338aa30b87d0818585415730d5659bbf9369e0bc4306511caba7
data/README.md CHANGED
@@ -77,13 +77,14 @@ The [`0.4-stable` branch](https://github.com/remiprev/teamocil/tree/0.4-stable)
77
77
 
78
78
  ### Windows
79
79
 
80
- | Key | Description
81
- |----------|----------------------------
82
- | `name` | The tmux window name
83
- | `root` | The path where all panes in the window will be started
84
- | `layout` | The layout that will be set after all panes are created by Teamocil
85
- | `panes` | An `Array` of panes
86
- | `focus` | If set to `true`, the window will be selected after the layout has been executed
80
+ | Key | Description
81
+ |-----------|----------------------------
82
+ | `name` | The tmux window name
83
+ | `root` | The path where all panes in the window will be started
84
+ | `layout` | The layout that will be set after all panes are created by Teamocil
85
+ | `panes` | An `Array` of panes
86
+ | `focus` | If set to `true`, the window will be selected after the layout has been executed
87
+ | `options` | A `Hash` of options that will be set with the `set-window-option` command
87
88
 
88
89
  ### Panes
89
90
 
@@ -27,6 +27,7 @@ require 'teamocil/command/select_pane'
27
27
  require 'teamocil/command/select_window'
28
28
  require 'teamocil/command/send_keys'
29
29
  require 'teamocil/command/send_keys_to_pane'
30
+ require 'teamocil/command/set_window_option'
30
31
  require 'teamocil/command/show_options'
31
32
  require 'teamocil/command/show_window_options'
32
33
  require 'teamocil/command/split_window'
@@ -0,0 +1,9 @@
1
+ module Teamocil
2
+ module Command
3
+ class SetWindowOption < ClosedStruct.new(:name, :option, :value)
4
+ def to_s
5
+ "set-window-option -t '#{name}' #{option} #{value}"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,6 +1,6 @@
1
1
  module Teamocil
2
2
  module Tmux
3
- class Window < ClosedStruct.new(:index, :root, :focus, :layout, :name, :panes)
3
+ class Window < ClosedStruct.new(:index, :root, :focus, :layout, :name, :panes, :options)
4
4
  def initialize(object)
5
5
  super
6
6
 
@@ -43,6 +43,13 @@ module Teamocil
43
43
  tmux << Teamocil::Command::NewWindow.new(name: name, root: root)
44
44
  end
45
45
 
46
+ # Set window options
47
+ if options
48
+ tmux << options.map do |(option, value)|
49
+ Teamocil::Command::SetWindowOption.new(name: name, option: option, value: value)
50
+ end
51
+ end
52
+
46
53
  # Execute all panes commands
47
54
  tmux << panes.map(&:as_tmux).flatten
48
55
 
@@ -1,3 +1,3 @@
1
1
  module Teamocil
2
- VERSION = '1.3.1'
2
+ VERSION = '1.4'
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe Teamocil::Tmux::Window do
4
- let(:window) { Teamocil::Tmux::Window.new(index: index, root: root, layout: layout, name: name, panes: panes) }
4
+ let(:window) { Teamocil::Tmux::Window.new(index: index, root: root, layout: layout, name: name, panes: panes, options: window_options) }
5
5
  let(:as_tmux) { window.as_tmux }
6
6
 
7
7
  before do
@@ -13,9 +13,10 @@ RSpec.describe Teamocil::Tmux::Window do
13
13
  # Tmux options
14
14
  let(:pane_base_index) { Random.rand(0..100) }
15
15
  let(:window_base_index) { Random.rand(0..100) }
16
+ let(:options) { {} }
16
17
 
17
18
  # Window attributes
18
- let(:options) { {} }
19
+ let(:window_options) { {} }
19
20
  let(:index) { 0 }
20
21
  let(:name) { 'foo' }
21
22
  let(:layout) { nil }
@@ -84,6 +85,28 @@ RSpec.describe Teamocil::Tmux::Window do
84
85
  end
85
86
  end
86
87
 
88
+ context 'with options attribute' do
89
+ let(:layout) { 'main-vertical' }
90
+ let(:window_options) do
91
+ { 'main-pane-width' => '100' }
92
+ end
93
+
94
+ it do
95
+ expect(as_tmux).to eql [
96
+ Teamocil::Command::NewWindow.new(name: name),
97
+ Teamocil::Command::SetWindowOption.new(name: name, option: 'main-pane-width', value: '100'),
98
+ Teamocil::Command::SendKeysToPane.new(index: "#{name}.#{pane_base_index}", keys: 'foo; omg'),
99
+ Teamocil::Command::SendKeysToPane.new(index: "#{name}.#{pane_base_index}", keys: 'Enter'),
100
+ Teamocil::Command::SelectLayout.new(layout: layout, name: name),
101
+ Teamocil::Command::SplitWindow.new(name: name),
102
+ Teamocil::Command::SendKeysToPane.new(index: "#{name}.#{pane_base_index + 1}", keys: 'bar'),
103
+ Teamocil::Command::SendKeysToPane.new(index: "#{name}.#{pane_base_index + 1}", keys: 'Enter'),
104
+ Teamocil::Command::SelectLayout.new(layout: layout, name: name),
105
+ Teamocil::Command::SelectPane.new(index: "#{name}.#{pane_base_index + 1}")
106
+ ]
107
+ end
108
+ end
109
+
87
110
  context 'with --here option' do
88
111
  context 'without root' do
89
112
  let(:options) { { here: true } }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teamocil
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rémi Prévost
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -95,6 +95,7 @@ files:
95
95
  - lib/teamocil/command/select_window.rb
96
96
  - lib/teamocil/command/send_keys.rb
97
97
  - lib/teamocil/command/send_keys_to_pane.rb
98
+ - lib/teamocil/command/set_window_option.rb
98
99
  - lib/teamocil/command/show_options.rb
99
100
  - lib/teamocil/command/show_window_options.rb
100
101
  - lib/teamocil/command/split_window.rb