work-on 0.1.0 → 0.1.1
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/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/{README.rdoc → README.md} +10 -5
- data/VERSION +1 -1
- data/test/core/config_test.rb +10 -41
- data/test/core/yaml_config_test.rb +50 -0
- data/test/teststrap.rb +12 -0
- data/work-on.gemspec +7 -3
- metadata +32 -20
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,6 +2,7 @@ GEM
|
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
abstract (1.0.0)
|
5
|
+
fakefs (0.4.0)
|
5
6
|
git (1.2.5)
|
6
7
|
jeweler (1.6.4)
|
7
8
|
bundler (~> 1.0)
|
@@ -21,6 +22,7 @@ PLATFORMS
|
|
21
22
|
DEPENDENCIES
|
22
23
|
abstract
|
23
24
|
bundler (~> 1.0.0)
|
25
|
+
fakefs
|
24
26
|
jeweler (~> 1.6.4)
|
25
27
|
rb-appscript
|
26
28
|
rcov
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,14 +1,18 @@
|
|
1
|
-
|
1
|
+
work-on
|
2
|
+
=======
|
2
3
|
|
3
4
|
A utility to manage your projects and make working on them as seemless as possible.
|
4
5
|
Basically you edit a small yaml file where you specify your project directory and the terminal windows and tabs
|
5
6
|
you want to open.
|
6
7
|
|
7
|
-
|
8
|
+
Example
|
9
|
+
-------
|
10
|
+
|
11
|
+
Config files should be placed inside ~/.config/work-on/.
|
12
|
+
Yaml files should end in .yaml or .yml
|
8
13
|
|
9
14
|
this is the actual config file i use for work-on:
|
10
15
|
|
11
|
-
work-on:
|
12
16
|
project-dir: ~/Projects/work-on
|
13
17
|
tab1:
|
14
18
|
- git status
|
@@ -18,7 +22,6 @@ this is the actual config file i use for work-on:
|
|
18
22
|
this opens 2 new tabs and executes above commands
|
19
23
|
you can also open new windows
|
20
24
|
|
21
|
-
work-on:
|
22
25
|
project-dir: ~/Projects/work-on
|
23
26
|
window1:
|
24
27
|
tab1:
|
@@ -33,7 +36,9 @@ You can guess what the above would do.
|
|
33
36
|
|
34
37
|
NOTE: At the moment only Mac OS X is supported, but support for linux is coming real soon.
|
35
38
|
|
36
|
-
|
39
|
+
Copyright
|
40
|
+
=========
|
41
|
+
|
37
42
|
|
38
43
|
Copyright (c) 2011 Toon Willems. See LICENSE.txt for
|
39
44
|
further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/test/core/config_test.rb
CHANGED
@@ -1,50 +1,19 @@
|
|
1
1
|
require 'teststrap'
|
2
|
-
|
2
|
+
FakeFS do
|
3
|
+
context "Config" do
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
8
|
-
setup do
|
9
|
-
mock(YAML).load_file("test_name.yml") { basic_config }
|
10
|
-
WorkOn::YAMLConfig.new("test_name.yml")
|
11
|
-
end
|
5
|
+
asserts "initialize with invalid project" do
|
6
|
+
WorkOn::Config.new Random.srand.to_s
|
7
|
+
end.raises(RuntimeError)
|
12
8
|
|
13
|
-
asserts(:project_dir).equals(Dir.home + "/Projects/work-on")
|
14
|
-
|
15
|
-
context "windows hash" do
|
16
|
-
setup { topic.windows[:windows] }
|
17
|
-
asserts(:first).equals({:tabs => [['rails server'], ['rails console'], ['git status', 'mvim']]})
|
18
|
-
end
|
19
|
-
|
20
|
-
context 'with multiple windows' do
|
21
|
-
helper(:complex_config) do
|
22
|
-
{"project-dir"=>"~/Projects/work-on",
|
23
|
-
"window1"=>{"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]},
|
24
|
-
"window2"=>{"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]},
|
25
|
-
"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]
|
26
|
-
}
|
27
|
-
end
|
28
9
|
setup do
|
29
|
-
|
30
|
-
|
10
|
+
File.open(File.join(WorkOn::Config.default_dir,"test.yml"), "w") do |f|
|
11
|
+
f.write "project-dir: ~/test"
|
12
|
+
end
|
13
|
+
WorkOn::Config.new 'test'
|
31
14
|
end
|
32
15
|
|
33
|
-
asserts(:project_dir).equals(Dir.home
|
34
|
-
|
35
|
-
context "window hash" do
|
36
|
-
setup { topic.windows[:windows] }
|
37
|
-
|
38
|
-
asserts(:first).equals({:tabs => [['rails server'], ['rails console'], ['git status', 'mvim']]})
|
39
|
-
asserts("both windows have the same config") { topic.first == topic.last }
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
context "tab hash" do
|
44
|
-
setup { topic.windows[:tabs] }
|
45
|
-
|
46
|
-
asserts_topic.equals([['rails server'], ['rails console'], ['git status', 'mvim']])
|
47
|
-
end
|
16
|
+
asserts(:project_dir).equals(File.join(Dir.home, 'test'))
|
48
17
|
|
49
18
|
end
|
50
19
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'teststrap'
|
2
|
+
require 'yaml' # otherwise mock fails
|
3
|
+
|
4
|
+
context "YAMLConfig" do
|
5
|
+
helper(:basic_config) do
|
6
|
+
{"project-dir"=>"~/Projects/work-on", "window1"=>{"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]}}
|
7
|
+
end
|
8
|
+
setup do
|
9
|
+
mock(YAML).load_file("test_name.yml") { basic_config }
|
10
|
+
WorkOn::YAMLConfig.new("test_name.yml")
|
11
|
+
end
|
12
|
+
|
13
|
+
asserts(:project_dir).equals(Dir.home + "/Projects/work-on")
|
14
|
+
|
15
|
+
context "windows hash" do
|
16
|
+
setup { topic.windows[:windows] }
|
17
|
+
asserts(:first).equals({:tabs => [['rails server'], ['rails console'], ['git status', 'mvim']]})
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with multiple windows' do
|
21
|
+
helper(:complex_config) do
|
22
|
+
{"project-dir"=>"~/Projects/work-on",
|
23
|
+
"window1"=>{"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]},
|
24
|
+
"window2"=>{"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]},
|
25
|
+
"tab1"=>["rails server"], "tab2"=>["rails console"], "tab3"=>["git status", "mvim"]
|
26
|
+
}
|
27
|
+
end
|
28
|
+
setup do
|
29
|
+
mock(YAML).load_file("test_name.yml") { complex_config }
|
30
|
+
WorkOn::YAMLConfig.new("test_name.yml")
|
31
|
+
end
|
32
|
+
|
33
|
+
asserts(:project_dir).equals(Dir.home + "/Projects/work-on")
|
34
|
+
|
35
|
+
context "window hash" do
|
36
|
+
setup { topic.windows[:windows] }
|
37
|
+
|
38
|
+
asserts(:first).equals({:tabs => [['rails server'], ['rails console'], ['git status', 'mvim']]})
|
39
|
+
asserts("both windows have the same config") { topic.first == topic.last }
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
context "tab hash" do
|
44
|
+
setup { topic.windows[:tabs] }
|
45
|
+
|
46
|
+
asserts_topic.equals([['rails server'], ['rails console'], ['git status', 'mvim']])
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
data/test/teststrap.rb
CHANGED
@@ -1,4 +1,16 @@
|
|
1
1
|
require 'riot'
|
2
2
|
require 'riot/rr'
|
3
|
+
require 'fakefs/safe'
|
3
4
|
require 'work-on'
|
5
|
+
|
6
|
+
FakeFS do
|
7
|
+
# small fakefs hack so Dir.home works
|
8
|
+
class Dir
|
9
|
+
def self.home
|
10
|
+
File.expand_path "~"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
FileUtils.mkdir_p(File.join(Dir.home, ".config", "work-on"))
|
14
|
+
end
|
15
|
+
|
4
16
|
Riot.verbose
|
data/work-on.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{work-on}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Toon Willems}]
|
@@ -15,14 +15,14 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.executables = [%q{work-on}]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".document",
|
22
22
|
"Gemfile",
|
23
23
|
"Gemfile.lock",
|
24
24
|
"LICENSE.txt",
|
25
|
-
"README.
|
25
|
+
"README.md",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"bin/work-on",
|
@@ -35,6 +35,7 @@ Gem::Specification.new do |s|
|
|
35
35
|
"test/core/config_test.rb",
|
36
36
|
"test/core/project_test.rb",
|
37
37
|
"test/core/terminal_test.rb",
|
38
|
+
"test/core/yaml_config_test.rb",
|
38
39
|
"test/teststrap.rb",
|
39
40
|
"work-on.gemspec"
|
40
41
|
]
|
@@ -56,6 +57,7 @@ Gem::Specification.new do |s|
|
|
56
57
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
57
58
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
58
59
|
s.add_development_dependency(%q<rr>, [">= 0"])
|
60
|
+
s.add_development_dependency(%q<fakefs>, [">= 0"])
|
59
61
|
else
|
60
62
|
s.add_dependency(%q<abstract>, [">= 0"])
|
61
63
|
s.add_dependency(%q<rb-appscript>, [">= 0"])
|
@@ -65,6 +67,7 @@ Gem::Specification.new do |s|
|
|
65
67
|
s.add_dependency(%q<rcov>, [">= 0"])
|
66
68
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
67
69
|
s.add_dependency(%q<rr>, [">= 0"])
|
70
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
68
71
|
end
|
69
72
|
else
|
70
73
|
s.add_dependency(%q<abstract>, [">= 0"])
|
@@ -75,6 +78,7 @@ Gem::Specification.new do |s|
|
|
75
78
|
s.add_dependency(%q<rcov>, [">= 0"])
|
76
79
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
77
80
|
s.add_dependency(%q<rr>, [">= 0"])
|
81
|
+
s.add_dependency(%q<fakefs>, [">= 0"])
|
78
82
|
end
|
79
83
|
end
|
80
84
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: work-on
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-20 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: abstract
|
16
|
-
requirement: &
|
16
|
+
requirement: &70321593826160 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70321593826160
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rb-appscript
|
27
|
-
requirement: &
|
27
|
+
requirement: &70321593825420 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70321593825420
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: riot
|
38
|
-
requirement: &
|
38
|
+
requirement: &70321593824480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70321593824480
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70321593823500 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70321593823500
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &70321593822340 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70321593822340
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &70321593820960 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70321593820960
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rdoc
|
82
|
-
requirement: &
|
82
|
+
requirement: &70321593819860 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70321593819860
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rr
|
93
|
-
requirement: &
|
93
|
+
requirement: &70321593818700 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,18 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70321593818700
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: fakefs
|
104
|
+
requirement: &70321593816840 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *70321593816840
|
102
113
|
description: utility to manage projects and the terminal windows you open when you
|
103
114
|
work on them.
|
104
115
|
email: willemstoon@gmail.com
|
@@ -107,13 +118,13 @@ executables:
|
|
107
118
|
extensions: []
|
108
119
|
extra_rdoc_files:
|
109
120
|
- LICENSE.txt
|
110
|
-
- README.
|
121
|
+
- README.md
|
111
122
|
files:
|
112
123
|
- .document
|
113
124
|
- Gemfile
|
114
125
|
- Gemfile.lock
|
115
126
|
- LICENSE.txt
|
116
|
-
- README.
|
127
|
+
- README.md
|
117
128
|
- Rakefile
|
118
129
|
- VERSION
|
119
130
|
- bin/work-on
|
@@ -126,6 +137,7 @@ files:
|
|
126
137
|
- test/core/config_test.rb
|
127
138
|
- test/core/project_test.rb
|
128
139
|
- test/core/terminal_test.rb
|
140
|
+
- test/core/yaml_config_test.rb
|
129
141
|
- test/teststrap.rb
|
130
142
|
- work-on.gemspec
|
131
143
|
homepage: http://github.com/nudded/work-on
|
@@ -143,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
155
|
version: '0'
|
144
156
|
segments:
|
145
157
|
- 0
|
146
|
-
hash:
|
158
|
+
hash: 1231414708332650322
|
147
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
160
|
none: false
|
149
161
|
requirements:
|