termup 1.1.0 → 1.2.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.0
data/lib/termup/base.rb CHANGED
@@ -3,6 +3,9 @@ require 'yaml'
3
3
 
4
4
  module Termup
5
5
  class Base
6
+ ITERM1 = /^0\.10/
7
+ ITERM2 = /^0\.20/
8
+
6
9
  include Appscript
7
10
 
8
11
  def initialize(project)
@@ -10,22 +13,21 @@ module Termup
10
13
  @frontmost = @apps.get.select{|i| i.frontmost.get }.map{|i| i.name.get }.first
11
14
  return unless ["Terminal", "iTerm"].include?(@frontmost)
12
15
  @terminal = app(@frontmost)
13
-
16
+
14
17
  @project = YAML.load(File.read("#{TERMUP_DIR}/#{project}.yml"))
15
-
16
- # Split panes for iTerm
17
- split_panes if @frontmost == "iTerm" and @project['options']['iterm']
18
-
18
+
19
+ # Split panes for iTerm 2
20
+ split_panes if iterm2? and @project['options']['iterm']
21
+
19
22
  @project['tabs'].each do |hash|
20
23
  tabname = hash.keys.first
21
24
  cmds = hash.values.first
22
25
  cmds = [cmds].flatten
23
26
  tab = new_tab
24
27
  cmds.each do |cmd|
25
- case @frontmost
26
- when "Terminal"
28
+ if terminal?
27
29
  @terminal.do_script(cmd, :in => tab)
28
- when "iTerm"
30
+ else
29
31
  @terminal.current_terminal.current_session.write(:text => "#{cmd}")
30
32
  end
31
33
  end
@@ -34,18 +36,17 @@ module Termup
34
36
 
35
37
  def new_tab
36
38
  if @got_first_tab_already
37
- case @frontmost
38
- when "Terminal"
39
- @apps[@frontmost].keystroke("t", :using => :command_down)
40
- when "iTerm"
39
+ if iterm2?
41
40
  @apps[@frontmost].keystroke("]", :using => :command_down)
41
+ else
42
+ @apps[@frontmost].keystroke("t", :using => :command_down)
42
43
  end
43
44
  end
44
45
  @got_first_tab_already = true
45
46
  sleep 0.01 # Allow some time to complete opening a new tab
46
- @terminal.windows[1].tabs.last.get if @frontmost == "Terminal"
47
+ @terminal.windows[1].tabs.last.get if terminal?
47
48
  end
48
-
49
+
49
50
  def split_panes
50
51
  # Virtical splits
51
52
  (@project['options']['iterm']['width'] - 1).times do |i|
@@ -62,5 +63,17 @@ module Termup
62
63
  @apps[@frontmost].keystroke("]", :using => :command_down)
63
64
  end
64
65
  end
66
+
67
+ def terminal?
68
+ @frontmost == "Terminal"
69
+ end
70
+
71
+ def iterm1?
72
+ @frontmost == "iTerm" and @terminal.version.get =~ ITERM1
73
+ end
74
+
75
+ def iterm2?
76
+ @frontmost == "iTerm" and @terminal.version.get =~ ITERM2
77
+ end
65
78
  end
66
79
  end
data/lib/termup/cli.rb CHANGED
@@ -29,19 +29,21 @@ module Termup
29
29
  say "please set $EDITOR in your .bash_profile." and return unless editor = ENV['EDITOR']
30
30
  system("#{editor} #{path(project)}")
31
31
  end
32
-
32
+
33
33
  desc "list", "List termup projects (Shortcut: l)"
34
34
  def list
35
35
  projects = Dir["#{TERMUP_DIR}/*.yml"].map{|file| File.basename(file,'.yml') }
36
36
  say "Your projects: #{projects.join(', ')}"
37
37
  end
38
-
38
+
39
39
  desc "start PROJECT", "Start termup project (Shortcut: s)"
40
40
  def start(project)
41
+ say "project \"#{project}\" doesn't exist!" and return unless File.exists?(path(project))
41
42
  Termup::Base.new(project)
42
43
  end
44
+
45
+ protected
43
46
 
44
- protected
45
47
  def path(project)
46
48
  "#{TERMUP_DIR}/#{project}.yml"
47
49
  end
data/termup.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{termup}
8
- s.version = "1.1.0"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kenn Ejima"]
12
- s.date = %q{2011-05-15}
12
+ s.date = %q{2011-05-17}
13
13
  s.default_executable = %q{termup}
14
14
  s.description = %q{Initialize terminal tabs with preset commands}
15
15
  s.email = %q{kenn.ejima@gmail.com}
@@ -41,10 +41,11 @@ Gem::Specification.new do |s|
41
41
  s.homepage = %q{http://github.com/kenn/termup}
42
42
  s.licenses = ["MIT"]
43
43
  s.require_paths = ["lib"]
44
- s.rubygems_version = %q{1.6.2}
44
+ s.rubygems_version = %q{1.3.7}
45
45
  s.summary = %q{Initialize terminal tabs with preset commands}
46
46
 
47
47
  if s.respond_to? :specification_version then
48
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
49
  s.specification_version = 3
49
50
 
50
51
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: termup
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
6
10
  platform: ruby
7
11
  authors:
8
12
  - Kenn Ejima
@@ -10,7 +14,7 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-05-15 00:00:00 -07:00
17
+ date: 2011-05-17 00:00:00 -07:00
14
18
  default_executable: termup
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
@@ -20,6 +24,10 @@ dependencies:
20
24
  requirements:
21
25
  - - ~>
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ - 6
30
+ - 1
23
31
  version: 0.6.1
24
32
  type: :runtime
25
33
  prerelease: false
@@ -31,6 +39,10 @@ dependencies:
31
39
  requirements:
32
40
  - - ~>
33
41
  - !ruby/object:Gem::Version
42
+ segments:
43
+ - 2
44
+ - 6
45
+ - 0
34
46
  version: 2.6.0
35
47
  type: :development
36
48
  prerelease: false
@@ -42,6 +54,10 @@ dependencies:
42
54
  requirements:
43
55
  - - ~>
44
56
  - !ruby/object:Gem::Version
57
+ segments:
58
+ - 1
59
+ - 0
60
+ - 13
45
61
  version: 1.0.13
46
62
  type: :development
47
63
  prerelease: false
@@ -53,6 +69,10 @@ dependencies:
53
69
  requirements:
54
70
  - - ~>
55
71
  - !ruby/object:Gem::Version
72
+ segments:
73
+ - 1
74
+ - 6
75
+ - 0
56
76
  version: 1.6.0
57
77
  type: :development
58
78
  prerelease: false
@@ -99,7 +119,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
119
  requirements:
100
120
  - - ">="
101
121
  - !ruby/object:Gem::Version
102
- hash: 1610649593229339461
122
+ hash: -2202960048524737384
103
123
  segments:
104
124
  - 0
105
125
  version: "0"
@@ -108,11 +128,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
128
  requirements:
109
129
  - - ">="
110
130
  - !ruby/object:Gem::Version
131
+ segments:
132
+ - 0
111
133
  version: "0"
112
134
  requirements: []
113
135
 
114
136
  rubyforge_project:
115
- rubygems_version: 1.6.2
137
+ rubygems_version: 1.3.7
116
138
  signing_key:
117
139
  specification_version: 3
118
140
  summary: Initialize terminal tabs with preset commands