tmux-ruby 0.0.2

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.
Files changed (40) hide show
  1. data/.yardopts +1 -0
  2. data/LICENSE +22 -0
  3. data/README.md +23 -0
  4. data/lib/tmux.rb +56 -0
  5. data/lib/tmux/buffer.rb +131 -0
  6. data/lib/tmux/client.rb +193 -0
  7. data/lib/tmux/exception.rb +5 -0
  8. data/lib/tmux/exception/basic_exception.rb +6 -0
  9. data/lib/tmux/exception/in_tmux.rb +9 -0
  10. data/lib/tmux/exception/index_in_use.rb +9 -0
  11. data/lib/tmux/exception/unknown_command.rb +9 -0
  12. data/lib/tmux/exception/unsupported_version.rb +15 -0
  13. data/lib/tmux/filterable_hash.rb +15 -0
  14. data/lib/tmux/options.rb +109 -0
  15. data/lib/tmux/options/attr_option.rb +10 -0
  16. data/lib/tmux/options/bell_action_option.rb +19 -0
  17. data/lib/tmux/options/boolean_option.rb +26 -0
  18. data/lib/tmux/options/char_array_option.rb +26 -0
  19. data/lib/tmux/options/clock_mode_style_option.rb +27 -0
  20. data/lib/tmux/options/color_option.rb +23 -0
  21. data/lib/tmux/options/justification_option.rb +19 -0
  22. data/lib/tmux/options/keymap_option.rb +19 -0
  23. data/lib/tmux/options/number_option.rb +26 -0
  24. data/lib/tmux/options/option.rb +38 -0
  25. data/lib/tmux/options/string_option.rb +26 -0
  26. data/lib/tmux/options/symbol_option.rb +26 -0
  27. data/lib/tmux/options/word_array_option.rb +26 -0
  28. data/lib/tmux/options_list.rb +150 -0
  29. data/lib/tmux/pane.rb +496 -0
  30. data/lib/tmux/server.rb +217 -0
  31. data/lib/tmux/session.rb +312 -0
  32. data/lib/tmux/status_bar.rb +134 -0
  33. data/lib/tmux/status_bar/field.rb +129 -0
  34. data/lib/tmux/version.rb +4 -0
  35. data/lib/tmux/widget.rb +35 -0
  36. data/lib/tmux/widgets/progress_bar.rb +107 -0
  37. data/lib/tmux/window.rb +697 -0
  38. data/lib/tmux/window/status.rb +21 -0
  39. data/lib/tmux/window/status/state.rb +87 -0
  40. metadata +96 -0
@@ -0,0 +1,21 @@
1
+ require "tmux/window/status/state"
2
+
3
+ module Tmux
4
+ class Window
5
+ # the "tab" in the statusbar
6
+ class Status
7
+ # @return [State]
8
+ attr_reader :normal
9
+ # @return [State]
10
+ attr_reader :current
11
+ # @return [State]
12
+ attr_reader :alert
13
+ def initialize(window)
14
+ @window = window
15
+ @normal = State.new(@window, :normal)
16
+ @current = State.new(@window, :current)
17
+ @alert = State.new(@window, :alert)
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,87 @@
1
+ module Tmux
2
+ class Window
3
+ class Status
4
+ # Each status can be in different states: normal, current and alert
5
+ class State
6
+ def initialize(window, state)
7
+ @window = window
8
+ @state = state
9
+ end
10
+
11
+ # @return [Symbol]
12
+ attr_accessor :background_color
13
+ undef_method "background_color"
14
+ undef_method "background_color="
15
+ def background_color
16
+ get_option "bg"
17
+ end
18
+
19
+ def background_color=(color)
20
+ set_option "fg", color
21
+ end
22
+
23
+ # @return [Symbol]
24
+ attr_accessor :foreground_color
25
+ undef_method "foreground_color"
26
+ undef_method "foreground_color="
27
+ def foreground_color
28
+ get_option "fg"
29
+ end
30
+
31
+ def foreground_color=(color)
32
+ set_option "fg", color
33
+ end
34
+
35
+ # The format in which the window is displayed in the status line window list.
36
+ #
37
+ # @return [String]
38
+ attr_accessor :format
39
+ undef_method "format"
40
+ undef_method "format="
41
+ def format
42
+ get_option "format"
43
+ end
44
+
45
+ def format=(value)
46
+ set_option "format"
47
+ end
48
+
49
+ # @return [Symbol]
50
+ attr_accessor :attributes
51
+ undef_method "attributes"
52
+ undef_method "attributes="
53
+ def attributes
54
+ get_option "attr"
55
+ end
56
+
57
+ def attributes=(value)
58
+ # FIXME string? array?
59
+ set_option "attr", value
60
+ end
61
+
62
+ def get_option(option)
63
+ @window.options.get option_name(option)
64
+ end
65
+ private :get_option
66
+
67
+ def set_option(option, value)
68
+ @window.options.set option_name(option), value
69
+ end
70
+ private :set_option
71
+
72
+ def option_name(option)
73
+ state = case @state
74
+ when :normal
75
+ ""
76
+ when :current
77
+ "current-"
78
+ when :alert
79
+ "alert-"
80
+ end
81
+ "window-status-#{state}#{option}"
82
+ end
83
+ private :option_name
84
+ end
85
+ end
86
+ end
87
+ end
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tmux-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dominik Honnef
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: filesize
16
+ requirement: &10484240 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *10484240
25
+ description: Ruby library to control tmux
26
+ email: dominikh@fork-bomb.org
27
+ executables: []
28
+ extensions: []
29
+ extra_rdoc_files: []
30
+ files:
31
+ - lib/tmux/status_bar/field.rb
32
+ - lib/tmux/widget.rb
33
+ - lib/tmux/client.rb
34
+ - lib/tmux/options.rb
35
+ - lib/tmux/window/status/state.rb
36
+ - lib/tmux/window/status.rb
37
+ - lib/tmux/status_bar.rb
38
+ - lib/tmux/pane.rb
39
+ - lib/tmux/server.rb
40
+ - lib/tmux/widgets/progress_bar.rb
41
+ - lib/tmux/buffer.rb
42
+ - lib/tmux/version.rb
43
+ - lib/tmux/options/number_option.rb
44
+ - lib/tmux/options/clock_mode_style_option.rb
45
+ - lib/tmux/options/bell_action_option.rb
46
+ - lib/tmux/options/color_option.rb
47
+ - lib/tmux/options/boolean_option.rb
48
+ - lib/tmux/options/option.rb
49
+ - lib/tmux/options/keymap_option.rb
50
+ - lib/tmux/options/char_array_option.rb
51
+ - lib/tmux/options/symbol_option.rb
52
+ - lib/tmux/options/justification_option.rb
53
+ - lib/tmux/options/word_array_option.rb
54
+ - lib/tmux/options/attr_option.rb
55
+ - lib/tmux/options/string_option.rb
56
+ - lib/tmux/exception.rb
57
+ - lib/tmux/filterable_hash.rb
58
+ - lib/tmux/window.rb
59
+ - lib/tmux/session.rb
60
+ - lib/tmux/exception/in_tmux.rb
61
+ - lib/tmux/exception/unsupported_version.rb
62
+ - lib/tmux/exception/unknown_command.rb
63
+ - lib/tmux/exception/basic_exception.rb
64
+ - lib/tmux/exception/index_in_use.rb
65
+ - lib/tmux/options_list.rb
66
+ - lib/tmux.rb
67
+ - README.md
68
+ - LICENSE
69
+ - .yardopts
70
+ homepage: https://github.com/dominikh/tmux-ruby
71
+ licenses:
72
+ - MIT
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.9.1
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 1.8.15
92
+ signing_key:
93
+ specification_version: 3
94
+ summary: Ruby library to control tmux
95
+ test_files: []
96
+ has_rdoc: yard