consular 1.0.0.rc1
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/.gitignore +5 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +28 -0
- data/LICENSE +20 -0
- data/README.md +437 -0
- data/Rakefile +9 -0
- data/Termfile +7 -0
- data/bin/consular +13 -0
- data/consular.gemspec +40 -0
- data/lib/consular/cli.rb +220 -0
- data/lib/consular/core.rb +65 -0
- data/lib/consular/dsl.rb +220 -0
- data/lib/consular/version.rb +3 -0
- data/lib/consular.rb +68 -0
- data/lib/templates/consularc.tt +9 -0
- data/lib/templates/example.term.tt +21 -0
- data/lib/templates/example.yml.tt +16 -0
- data/spec/cli_spec.rb +194 -0
- data/spec/consular_spec.rb +30 -0
- data/spec/core_spec.rb +19 -0
- data/spec/dsl_spec.rb +76 -0
- data/spec/fixtures/bar.term +32 -0
- data/spec/fixtures/foo.yml +10 -0
- data/spec/spec_helper.rb +54 -0
- data/spec.watchr +67 -0
- metadata +172 -0
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
class FakeCore < Consular::Core
|
4
|
+
|
5
|
+
def self.valid_system?
|
6
|
+
true
|
7
|
+
end
|
8
|
+
|
9
|
+
def process!; puts('process'); end
|
10
|
+
def setup!; puts('setup'); end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe Consular::CLI do
|
14
|
+
|
15
|
+
before do
|
16
|
+
@template = File.read File.expand_path('../../lib/templates/example.yml.tt', __FILE__)
|
17
|
+
FakeFS.activate!
|
18
|
+
FileUtils.mkdir_p Consular.global_path
|
19
|
+
end
|
20
|
+
|
21
|
+
after do
|
22
|
+
FakeFS.deactivate!
|
23
|
+
Consular.instance_variable_set(:@global_path, nil)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "displays help" do
|
27
|
+
output = capture_io { Consular::CLI.start ['-h'] }.join('')
|
28
|
+
|
29
|
+
assert_match /start \[PROJECT\]/, output
|
30
|
+
assert_match /init/, output
|
31
|
+
assert_match /edit \[PROJECT\]/, output
|
32
|
+
end
|
33
|
+
|
34
|
+
it "lists out all global scripts" do
|
35
|
+
File.open(Consular.global_path('foo.yml'), "w") { |f| f.puts @template }
|
36
|
+
File.open(Consular.global_path('bar.term'), "w") { |f| f.puts @template }
|
37
|
+
File.open(Consular.global_path('bar.term~'), "w") { |f| f.puts @template }
|
38
|
+
output = capture_io { Consular::CLI.start ['list'] }.join('')
|
39
|
+
|
40
|
+
assert_match /foo\.yml - COMMENT OF SCRIPT HERE/, output
|
41
|
+
assert_match /bar - COMMENT OF SCRIPT HERE/, output
|
42
|
+
refute_match /bar\.term - COMMENT OF SCRIPT HERE/, output
|
43
|
+
refute_match /bar\.term~/, output
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "start command" do
|
47
|
+
before do
|
48
|
+
FileUtils.mkdir_p '/tmp'
|
49
|
+
FileUtils.touch '/tmp/Termfile'
|
50
|
+
FileUtils.touch Consular.global_path('foo.term')
|
51
|
+
FileUtils.touch Consular.global_path('foo.yml')
|
52
|
+
Consular.add_core FakeCore
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should start a Termfile" do
|
56
|
+
output = capture_io { Consular::CLI.start ['start', '-r=/tmp'] }.join('')
|
57
|
+
assert_match /process/, output
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should start a global term script" do
|
61
|
+
output = capture_io { Consular::CLI.start ['start', 'foo'] }.join('')
|
62
|
+
assert_match /process/, output
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should start a global yaml script" do
|
66
|
+
output = capture_io { Consular::CLI.start ['start', 'foo.yml'] }.join('')
|
67
|
+
assert_match /process/, output
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should return an error message if it doesn't exist" do
|
71
|
+
output = capture_io { Consular::CLI.start ['start', 'barr'] }.join('')
|
72
|
+
assert_match /does not exist/, output
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe "setup command" do
|
77
|
+
before do
|
78
|
+
FileUtils.mkdir_p '/tmp'
|
79
|
+
FileUtils.touch '/tmp/Termfile'
|
80
|
+
FileUtils.touch Consular.global_path('foo.term')
|
81
|
+
FileUtils.touch Consular.global_path('foo.yml')
|
82
|
+
Consular.add_core FakeCore
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should setup a Termfile" do
|
86
|
+
output = capture_io { Consular::CLI.start ['setup', '-r=/tmp'] }.join('')
|
87
|
+
assert_match /setup/, output
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should setup a global term script" do
|
91
|
+
output = capture_io { Consular::CLI.start ['setup', 'foo'] }.join('')
|
92
|
+
assert_match /setup/, output
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should setup a global yaml script" do
|
96
|
+
output = capture_io { Consular::CLI.start ['setup', 'foo.yml'] }.join('')
|
97
|
+
assert_match /setup/, output
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should return an error message if it doesn't exist" do
|
101
|
+
output = capture_io { Consular::CLI.start ['setup', 'barr'] }.join('')
|
102
|
+
assert_match /does not exist/, output
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
it "init creates a new global script directory and consularc" do
|
107
|
+
FileUtils.rm_rf Consular.global_path
|
108
|
+
capture_io { Consular::CLI.start ['init'] }.join('')
|
109
|
+
|
110
|
+
assert File.exists?(Consular.global_path), "global script directory exists"
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "delete command" do
|
114
|
+
|
115
|
+
it "removes Termfile" do
|
116
|
+
FileUtils.mkdir_p '/tmp/sample_project'
|
117
|
+
FileUtils.touch "/tmp/sample_project/Termfile"
|
118
|
+
capture_io { Consular::CLI.start ['delete',"-r=/tmp/sample_project"] }
|
119
|
+
|
120
|
+
refute File.exists?("/tmp/sample_project/Termfile"), 'deletes Termfile'
|
121
|
+
end
|
122
|
+
|
123
|
+
it "removes .yml files" do
|
124
|
+
FileUtils.touch Consular.global_path('foo.yml')
|
125
|
+
capture_io { Consular::CLI.start ['delete','foo.yml'] }
|
126
|
+
|
127
|
+
refute File.exists?(Consular.global_path('foo.yml')), 'deletes .yml files'
|
128
|
+
end
|
129
|
+
|
130
|
+
it "removes .term file" do
|
131
|
+
FileUtils.touch Consular.global_path('delete_this.term')
|
132
|
+
capture_io { Consular::CLI.start ['delete','delete_this'] }
|
133
|
+
|
134
|
+
refute File.exists?(Consular.global_path('delete_this.term')), 'deletes .term file'
|
135
|
+
end
|
136
|
+
|
137
|
+
it "removes .term file" do
|
138
|
+
output = capture_io { Consular::CLI.start ['delete','barr'] }.join('')
|
139
|
+
|
140
|
+
assert_match /does not exist/, output
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
describe "edit command" do
|
146
|
+
before do
|
147
|
+
FakeFS.deactivate!
|
148
|
+
@path = File.join ENV['HOME'], '.config', 'consular'
|
149
|
+
@yaml = File.join @path, 'foobar.yml'
|
150
|
+
@term = File.join @path, 'foobar.term'
|
151
|
+
`rm -f #{@yaml}`
|
152
|
+
`rm -f #{@term}`
|
153
|
+
`rm -f /tmp/Termfile`
|
154
|
+
end
|
155
|
+
|
156
|
+
after do
|
157
|
+
`rm -f #{@yaml}`
|
158
|
+
`rm -f #{@term}`
|
159
|
+
`rm -f /tmp/Termfile`
|
160
|
+
end
|
161
|
+
|
162
|
+
it "edits yaml files" do
|
163
|
+
FakeFS.deactivate!
|
164
|
+
Consular::CLI.any_instance.expects(:open_in_editor).with(@yaml, nil).returns(true)
|
165
|
+
output = capture_io { Consular::CLI.start ['edit', 'foobar.yml'] }.join('')
|
166
|
+
|
167
|
+
assert_match /create/, output
|
168
|
+
assert_match /foobar\.yml/, output
|
169
|
+
assert_match /- tab1/, File.read(@yaml)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "edits .term file" do
|
173
|
+
FakeFS.deactivate!
|
174
|
+
Consular::CLI.any_instance.expects(:open_in_editor).with(@term, nil).returns(true)
|
175
|
+
output = capture_io { Consular::CLI.start ['edit', 'foobar'] }.join('')
|
176
|
+
|
177
|
+
assert_match /create/, output
|
178
|
+
assert_match /foobar\.term/, output
|
179
|
+
assert_match /setup/, File.read(@term)
|
180
|
+
end
|
181
|
+
|
182
|
+
it "edits a Termfile" do
|
183
|
+
FakeFS.deactivate!
|
184
|
+
Consular::CLI.any_instance.expects(:open_in_editor).with('/tmp/Termfile', nil).returns(true)
|
185
|
+
output = capture_io { Consular::CLI.start ['edit', '-r=/tmp'] }.join('')
|
186
|
+
|
187
|
+
assert_match /create/, output
|
188
|
+
assert_match /Termfile/, output
|
189
|
+
assert_match /setup/, File.read('/tmp/Termfile')
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Consular do
|
4
|
+
|
5
|
+
after do
|
6
|
+
Consular.instance_variable_set(:@cores,[])
|
7
|
+
Consular.instance_variable_set(:@global_path,nil)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "can add cores" do
|
11
|
+
Consular.add_core Consular::Core
|
12
|
+
assert_equal 1, Consular.cores.size
|
13
|
+
end
|
14
|
+
|
15
|
+
it "has default configurations" do
|
16
|
+
assert_equal File.join(ENV['HOME'],'.config','consular',''), Consular.global_path
|
17
|
+
end
|
18
|
+
|
19
|
+
it "can be configured" do
|
20
|
+
Consular.configure do |c|
|
21
|
+
c.global_path = '/tmp/'
|
22
|
+
c.default_editor = 'vim'
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_equal '/tmp/', Consular.global_path
|
26
|
+
assert_equal 'vim', Consular.default_editor
|
27
|
+
assert_equal '/tmp/Termfile', Consular.global_path('Termfile')
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/spec/core_spec.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Consular::Core do
|
4
|
+
before do
|
5
|
+
@core = Consular::Core.new File.expand_path('../fixtures/bar.term', __FILE__)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "on .initialize assigns the right values" do
|
9
|
+
refute_nil @core.termfile
|
10
|
+
end
|
11
|
+
|
12
|
+
it "stubs out the methods that need to be defined" do
|
13
|
+
assert_raises(NotImplementedError) { @core.class.valid_system? }
|
14
|
+
assert_raises(NotImplementedError) { @core.class.capture! }
|
15
|
+
assert_raises(NotImplementedError) { @core.setup! }
|
16
|
+
assert_raises(NotImplementedError) { @core.process! }
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
data/spec/dsl_spec.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require File.expand_path('../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Consular::DSL do
|
4
|
+
before do
|
5
|
+
@dsl = Consular::DSL.new File.expand_path('../fixtures/bar.term', __FILE__)
|
6
|
+
@yaml = Consular::DSL.new File.expand_path('../fixtures/foo.yml', __FILE__)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "on .initialize setup some variables" do
|
10
|
+
refute_nil @dsl._setup
|
11
|
+
refute_nil @dsl._windows
|
12
|
+
refute_nil @dsl._context
|
13
|
+
end
|
14
|
+
|
15
|
+
describe ".to_hash with DSL" do
|
16
|
+
before do
|
17
|
+
@result = @dsl.to_hash
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns the initial setup" do
|
21
|
+
assert_equal @result[:setup], ['setup']
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns the first window" do
|
25
|
+
@window1 = @result[:windows]['window1']
|
26
|
+
@tab1 = @window1[:tabs]
|
27
|
+
|
28
|
+
assert_equal @window1[:before], ['before']
|
29
|
+
assert_equal @window1[:options], :size => [70, 30]
|
30
|
+
|
31
|
+
assert_equal @tab1['default'][:commands], ['whoami && who && ls']
|
32
|
+
assert_equal @tab1['tab1'][:commands], ['first-tab', 'motion &', 'foo']
|
33
|
+
|
34
|
+
assert_equal @tab1['tab2'][:options], :settings => 'Grass', :name => 'second'
|
35
|
+
assert_equal @tab1['tab2'][:commands], ['second-tab','second-tab:ls']
|
36
|
+
|
37
|
+
assert_equal @tab1['tab3'][:options], :settings => 'Pro', :name => 'third'
|
38
|
+
assert_equal @tab1['tab3'][:commands], ['third-tab', "(mvim &) && (gitx &) && uptime"]
|
39
|
+
|
40
|
+
assert_equal @tab1['tab4'][:options], :settings => 'Grass', :name => 'fourth'
|
41
|
+
assert_equal @tab1['tab4'][:commands], ['fourth-tab']
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns the second window" do
|
45
|
+
@window2 = @result[:windows]['window2']
|
46
|
+
@tab2 = @window2[:tabs]
|
47
|
+
|
48
|
+
assert_equal @window2[:before], ['name:before']
|
49
|
+
assert_equal @window2[:options], :name => 'name'
|
50
|
+
|
51
|
+
assert_equal @tab2['tab1'][:commands], ['name:tab']
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
describe ".to_hash with YAML" do
|
57
|
+
before do
|
58
|
+
@result = @yaml.to_hash
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns no setup" do
|
62
|
+
assert_equal @result[:setup], nil
|
63
|
+
end
|
64
|
+
|
65
|
+
it "returns the default window" do
|
66
|
+
@tabs = @result[:windows]['default'][:tabs]
|
67
|
+
|
68
|
+
assert_equal @tabs['tab1'][:commands], ['cd /foo/bar', 'gitx']
|
69
|
+
assert_equal @tabs['tab1'][:options], {}
|
70
|
+
|
71
|
+
assert_equal @tabs['tab2'][:commands], ['ls', 'mate .']
|
72
|
+
assert_equal @tabs['tab2'][:options], {}
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
setup 'setup'
|
2
|
+
|
3
|
+
tab 'default', 'default-tab'
|
4
|
+
|
5
|
+
window :size => [70,30] do
|
6
|
+
|
7
|
+
before 'before'
|
8
|
+
|
9
|
+
run 'whoami', 'who', 'ls'
|
10
|
+
|
11
|
+
tab 'first-tab', 'motion &', 'foo'
|
12
|
+
|
13
|
+
tab 'second', :settings => 'Grass' do
|
14
|
+
run 'second-tab'
|
15
|
+
run 'second-tab:ls'
|
16
|
+
end
|
17
|
+
|
18
|
+
tab 'third', :settings => 'Pro' do
|
19
|
+
run 'third-tab'
|
20
|
+
run 'mvim &', 'gitx &', 'uptime'
|
21
|
+
end
|
22
|
+
|
23
|
+
tab 'fourth', :settings => 'Grass' do
|
24
|
+
run 'fourth-tab'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
window 'name' do
|
29
|
+
before { run 'name:before' }
|
30
|
+
|
31
|
+
tab 'name:tab'
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
gem 'minitest'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
require 'fakefs/safe'
|
5
|
+
require 'mocha'
|
6
|
+
require File.expand_path('../../lib/consular', __FILE__)
|
7
|
+
|
8
|
+
|
9
|
+
class ColoredIO
|
10
|
+
ESC = "\e["
|
11
|
+
NND = "#{ESC}0m"
|
12
|
+
|
13
|
+
def initialize(io)
|
14
|
+
@io = io
|
15
|
+
end
|
16
|
+
|
17
|
+
def print(o)
|
18
|
+
case o
|
19
|
+
when "."
|
20
|
+
@io.send(:print, "#{ESC}32m#{o}#{NND}")
|
21
|
+
when "E"
|
22
|
+
@io.send(:print, "#{ESC}33m#{o}#{NND}")
|
23
|
+
when "F"
|
24
|
+
@io.send(:print, "#{ESC}31m#{o}#{NND}")
|
25
|
+
else
|
26
|
+
@io.send(:print, o)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def puts(*o)
|
31
|
+
super
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
MiniTest::Unit.output = ColoredIO.new(MiniTest::Unit.output)
|
36
|
+
|
37
|
+
# This is to silence the 'task' warning for the mocks.
|
38
|
+
#
|
39
|
+
class Thor
|
40
|
+
class << self
|
41
|
+
def create_task(meth) #:nodoc:
|
42
|
+
if @usage && @desc
|
43
|
+
base_class = @hide ? Thor::HiddenTask : Thor::Task
|
44
|
+
tasks[meth] = base_class.new(meth, @desc, @long_desc, @usage, method_options)
|
45
|
+
@usage, @desc, @long_desc, @method_options, @hide = nil
|
46
|
+
true
|
47
|
+
elsif self.all_tasks[meth] || meth == "method_missing"
|
48
|
+
true
|
49
|
+
else
|
50
|
+
false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/spec.watchr
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
ENV["WATCHR"] = "1"
|
2
|
+
system 'clear'
|
3
|
+
|
4
|
+
def growl(message)
|
5
|
+
growlnotify = `which growlnotify`.chomp
|
6
|
+
if not growlnotify.empty?
|
7
|
+
title = "Watchr Test Results"
|
8
|
+
image = message.include?('0 failures, 0 errors') ? "~/.watchr_images/passed.png" : "~/.watchr_images/failed.png"
|
9
|
+
options = "-w -n Watchr --image '#{File.expand_path(image)}' -m '#{message}' '#{title}'"
|
10
|
+
system %(#{growlnotify} #{options} &)
|
11
|
+
else
|
12
|
+
puts message
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def run(cmd)
|
17
|
+
puts(cmd)
|
18
|
+
`#{cmd}`
|
19
|
+
end
|
20
|
+
|
21
|
+
def run_test_file(file)
|
22
|
+
system('clear')
|
23
|
+
result = run(%Q(ruby -I"lib:test" -rubygems #{file}))
|
24
|
+
growl result.split("\n").last rescue nil
|
25
|
+
puts result
|
26
|
+
end
|
27
|
+
|
28
|
+
def run_all_tests
|
29
|
+
system('clear')
|
30
|
+
result = run "rake spec"
|
31
|
+
growl result.split("\n").last rescue nil
|
32
|
+
puts result
|
33
|
+
end
|
34
|
+
|
35
|
+
def related_test_files(path)
|
36
|
+
Dir['spec/**/*.rb'].select { |file| file =~ /#{File.basename(path).split(".").first}_spec.rb/ }
|
37
|
+
end
|
38
|
+
|
39
|
+
def run_suite
|
40
|
+
run_all_tests
|
41
|
+
end
|
42
|
+
|
43
|
+
watch('spec/spec_helper\.rb') { run_all_tests }
|
44
|
+
watch('spec/(.*).*_spec\.rb') { |m| run_test_file(m[0]) }
|
45
|
+
watch('lib/.*/.*\.rb') { |m| related_test_files(m[0]).map {|tf| run_test_file(tf) } }
|
46
|
+
|
47
|
+
# Ctrl-\
|
48
|
+
Signal.trap 'QUIT' do
|
49
|
+
puts " --- Running all tests ---\n\n"
|
50
|
+
run_all_tests
|
51
|
+
end
|
52
|
+
|
53
|
+
@interrupted = false
|
54
|
+
|
55
|
+
# Ctrl-C
|
56
|
+
Signal.trap 'INT' do
|
57
|
+
if @interrupted then
|
58
|
+
@wants_to_quit = true
|
59
|
+
abort("\n")
|
60
|
+
else
|
61
|
+
puts "Interrupt a second time to quit"
|
62
|
+
@interrupted = true
|
63
|
+
Kernel.sleep 1.5
|
64
|
+
# raise Interrupt, nil # let the run loop catch it
|
65
|
+
run_suite
|
66
|
+
end
|
67
|
+
end
|
metadata
ADDED
@@ -0,0 +1,172 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: consular
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 15424055
|
5
|
+
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
- rc
|
11
|
+
- 1
|
12
|
+
version: 1.0.0.rc1
|
13
|
+
platform: ruby
|
14
|
+
authors:
|
15
|
+
- Arthur Chiu
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2011-10-09 00:00:00 -07:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
name: thor
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
version: "0"
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: activesupport
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: minitest
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: mocha
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 3
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
77
|
+
type: :development
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: fakefs
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
90
|
+
version: "0"
|
91
|
+
type: :development
|
92
|
+
version_requirements: *id005
|
93
|
+
description: Terminal Automation to get you on your projects quickly
|
94
|
+
email:
|
95
|
+
- mr.arthur.chiu@gmail.com
|
96
|
+
executables:
|
97
|
+
- consular
|
98
|
+
extensions: []
|
99
|
+
|
100
|
+
extra_rdoc_files: []
|
101
|
+
|
102
|
+
files:
|
103
|
+
- .gitignore
|
104
|
+
- Gemfile
|
105
|
+
- Gemfile.lock
|
106
|
+
- LICENSE
|
107
|
+
- README.md
|
108
|
+
- Rakefile
|
109
|
+
- Termfile
|
110
|
+
- bin/consular
|
111
|
+
- consular.gemspec
|
112
|
+
- lib/consular.rb
|
113
|
+
- lib/consular/cli.rb
|
114
|
+
- lib/consular/core.rb
|
115
|
+
- lib/consular/dsl.rb
|
116
|
+
- lib/consular/version.rb
|
117
|
+
- lib/templates/consularc.tt
|
118
|
+
- lib/templates/example.term.tt
|
119
|
+
- lib/templates/example.yml.tt
|
120
|
+
- spec.watchr
|
121
|
+
- spec/cli_spec.rb
|
122
|
+
- spec/consular_spec.rb
|
123
|
+
- spec/core_spec.rb
|
124
|
+
- spec/dsl_spec.rb
|
125
|
+
- spec/fixtures/bar.term
|
126
|
+
- spec/fixtures/foo.yml
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
has_rdoc: true
|
129
|
+
homepage: http://www.github.com/achiu/consular
|
130
|
+
licenses: []
|
131
|
+
|
132
|
+
post_install_message: "********************************************************************************\n\n Consular has been installed! Please run:\n\n consular init\n\n This will create a directory at ~/.config/consular which will hold all your global scripts.\n Also a .consularc file will be generated in your HOME directory which you can further configure\n Consular.\n\n\
|
133
|
+
********************************************************************************\n "
|
134
|
+
rdoc_options: []
|
135
|
+
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ">"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
hash: 25
|
153
|
+
segments:
|
154
|
+
- 1
|
155
|
+
- 3
|
156
|
+
- 1
|
157
|
+
version: 1.3.1
|
158
|
+
requirements: []
|
159
|
+
|
160
|
+
rubyforge_project: consular
|
161
|
+
rubygems_version: 1.6.2
|
162
|
+
signing_key:
|
163
|
+
specification_version: 3
|
164
|
+
summary: Quickly setup your terminal windows for your projects
|
165
|
+
test_files:
|
166
|
+
- spec/cli_spec.rb
|
167
|
+
- spec/consular_spec.rb
|
168
|
+
- spec/core_spec.rb
|
169
|
+
- spec/dsl_spec.rb
|
170
|
+
- spec/fixtures/bar.term
|
171
|
+
- spec/fixtures/foo.yml
|
172
|
+
- spec/spec_helper.rb
|