work-on 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -15,4 +15,5 @@ group :development do
15
15
  gem "rcov"
16
16
  gem "rdoc"
17
17
  gem "rr"
18
+ gem "fakefs"
18
19
  end
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
@@ -1,14 +1,18 @@
1
- = work-on
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
- = Example
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
- = Copyright
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.0
1
+ 0.1.1
@@ -1,50 +1,19 @@
1
1
  require 'teststrap'
2
- require 'yaml' # otherwise mock fails
2
+ FakeFS do
3
+ context "Config" do
3
4
 
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
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
- mock(YAML).load_file("test_name.yml") { complex_config }
30
- WorkOn::YAMLConfig.new("test_name.yml")
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 + "/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
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.0"
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.rdoc"
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.rdoc",
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.0
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: &70198776254500 !ruby/object:Gem::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: *70198776254500
24
+ version_requirements: *70321593826160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rb-appscript
27
- requirement: &70198776252800 !ruby/object:Gem::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: *70198776252800
35
+ version_requirements: *70321593825420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: riot
38
- requirement: &70198776251720 !ruby/object:Gem::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: *70198776251720
46
+ version_requirements: *70321593824480
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70198776234500 !ruby/object:Gem::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: *70198776234500
57
+ version_requirements: *70321593823500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70198776233260 !ruby/object:Gem::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: *70198776233260
68
+ version_requirements: *70321593822340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70198776231900 !ruby/object:Gem::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: *70198776231900
79
+ version_requirements: *70321593820960
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdoc
82
- requirement: &70198776230820 !ruby/object:Gem::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: *70198776230820
90
+ version_requirements: *70321593819860
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rr
93
- requirement: &70198776229620 !ruby/object:Gem::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: *70198776229620
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.rdoc
121
+ - README.md
111
122
  files:
112
123
  - .document
113
124
  - Gemfile
114
125
  - Gemfile.lock
115
126
  - LICENSE.txt
116
- - README.rdoc
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: -4148861926533244809
158
+ hash: 1231414708332650322
147
159
  required_rubygems_version: !ruby/object:Gem::Requirement
148
160
  none: false
149
161
  requirements: