watch_tower 0.0.0.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.
Files changed (115) hide show
  1. data/.gitignore +10 -0
  2. data/.todo +33 -0
  3. data/.travis.yml +14 -0
  4. data/Gemfile +43 -0
  5. data/Guardfile +25 -0
  6. data/MIT-LICENSE +20 -0
  7. data/README.md +38 -0
  8. data/Rakefile +8 -0
  9. data/TODO +17 -0
  10. data/bin/watchtower +10 -0
  11. data/ci/adapters/jruby-mysql.yml +8 -0
  12. data/ci/adapters/jruby-postgresql.yml +6 -0
  13. data/ci/adapters/jruby-sqlite.yml +6 -0
  14. data/ci/adapters/ruby-mysql.yml +8 -0
  15. data/ci/adapters/ruby-postgresql.yml +6 -0
  16. data/ci/adapters/ruby-sqlite.yml +6 -0
  17. data/ci/travis.rb +102 -0
  18. data/lib/watch_tower.rb +60 -0
  19. data/lib/watch_tower/appscript.rb +22 -0
  20. data/lib/watch_tower/cli.rb +15 -0
  21. data/lib/watch_tower/cli/.gitkeep +0 -0
  22. data/lib/watch_tower/cli/install.rb +63 -0
  23. data/lib/watch_tower/cli/open.rb +24 -0
  24. data/lib/watch_tower/cli/start.rb +140 -0
  25. data/lib/watch_tower/config.rb +38 -0
  26. data/lib/watch_tower/core_ext.rb +4 -0
  27. data/lib/watch_tower/core_ext/.gitkeep +0 -0
  28. data/lib/watch_tower/editor.rb +17 -0
  29. data/lib/watch_tower/editor/.gitkeep +0 -0
  30. data/lib/watch_tower/editor/base_appscript.rb +34 -0
  31. data/lib/watch_tower/editor/base_ps.rb +6 -0
  32. data/lib/watch_tower/editor/textmate.rb +17 -0
  33. data/lib/watch_tower/editor/xcode.rb +22 -0
  34. data/lib/watch_tower/errors.rb +25 -0
  35. data/lib/watch_tower/eye.rb +79 -0
  36. data/lib/watch_tower/project.rb +14 -0
  37. data/lib/watch_tower/project/.gitkeep +0 -0
  38. data/lib/watch_tower/project/any_based.rb +22 -0
  39. data/lib/watch_tower/project/git_based.rb +86 -0
  40. data/lib/watch_tower/project/init.rb +38 -0
  41. data/lib/watch_tower/project/path_based.rb +144 -0
  42. data/lib/watch_tower/server.rb +62 -0
  43. data/lib/watch_tower/server/.gitkeep +0 -0
  44. data/lib/watch_tower/server/app.rb +37 -0
  45. data/lib/watch_tower/server/assets/images/WatchTower.jpg +0 -0
  46. data/lib/watch_tower/server/assets/images/percentage.png +0 -0
  47. data/lib/watch_tower/server/assets/javascripts/application.js +3 -0
  48. data/lib/watch_tower/server/assets/javascripts/percentage.coffee +8 -0
  49. data/lib/watch_tower/server/assets/stylesheets/application.css +7 -0
  50. data/lib/watch_tower/server/assets/stylesheets/global.sass +71 -0
  51. data/lib/watch_tower/server/assets/stylesheets/project.sass +59 -0
  52. data/lib/watch_tower/server/configurations.rb +10 -0
  53. data/lib/watch_tower/server/configurations/asset.rb +43 -0
  54. data/lib/watch_tower/server/database.rb +105 -0
  55. data/lib/watch_tower/server/db/migrate/001_create_projects.rb +15 -0
  56. data/lib/watch_tower/server/db/migrate/002_create_files.rb +16 -0
  57. data/lib/watch_tower/server/db/migrate/003_create_time_entries.rb +12 -0
  58. data/lib/watch_tower/server/db/migrate/004_create_durations.rb +14 -0
  59. data/lib/watch_tower/server/db/migrate/005_add_hash_to_time_entries.rb +6 -0
  60. data/lib/watch_tower/server/db/migrate/006_add_hash_to_files.rb +6 -0
  61. data/lib/watch_tower/server/decorator.rb +21 -0
  62. data/lib/watch_tower/server/decorator/application_decorator.rb +91 -0
  63. data/lib/watch_tower/server/decorator/file_decorator.rb +38 -0
  64. data/lib/watch_tower/server/decorator/project_decorator.rb +51 -0
  65. data/lib/watch_tower/server/helpers.rb +13 -0
  66. data/lib/watch_tower/server/helpers/asset.rb +29 -0
  67. data/lib/watch_tower/server/helpers/improved_partials.rb +41 -0
  68. data/lib/watch_tower/server/models/duration.rb +11 -0
  69. data/lib/watch_tower/server/models/file.rb +31 -0
  70. data/lib/watch_tower/server/models/project.rb +17 -0
  71. data/lib/watch_tower/server/models/time_entry.rb +64 -0
  72. data/lib/watch_tower/server/public/assets/WatchTower-4d6de11e1bd34165ad91ac46fb711bf3.jpg +0 -0
  73. data/lib/watch_tower/server/public/assets/application-7829b53b5ece1a16d22dc3d00f329023.css +107 -0
  74. data/lib/watch_tower/server/public/assets/application-e0e6b7731aade460f680331e65cf0682.js +9359 -0
  75. data/lib/watch_tower/server/public/assets/percentage-d8589e21a5fc85d32a445f531ff8ab95.png +0 -0
  76. data/lib/watch_tower/server/vendor/assets/javascripts/jquery-ui.js +11729 -0
  77. data/lib/watch_tower/server/vendor/assets/javascripts/jquery.js +8981 -0
  78. data/lib/watch_tower/server/vendor/assets/javascripts/jquery_ujs.js +363 -0
  79. data/lib/watch_tower/server/views/.gitkeep +0 -0
  80. data/lib/watch_tower/server/views/_file.haml +9 -0
  81. data/lib/watch_tower/server/views/_project.haml +13 -0
  82. data/lib/watch_tower/server/views/index.haml +7 -0
  83. data/lib/watch_tower/server/views/layout.haml +32 -0
  84. data/lib/watch_tower/server/views/project.haml +12 -0
  85. data/lib/watch_tower/templates/config.yml +146 -0
  86. data/lib/watch_tower/templates/watchtower.plist +23 -0
  87. data/lib/watch_tower/version.rb +8 -0
  88. data/spec/factories.rb +45 -0
  89. data/spec/spec_helper.rb +26 -0
  90. data/spec/support/active_record.rb +44 -0
  91. data/spec/support/factory_girl.rb +6 -0
  92. data/spec/support/launchy.rb +3 -0
  93. data/spec/support/sinatra.rb +10 -0
  94. data/spec/support/timecop.rb +7 -0
  95. data/spec/watch_tower/appscript_spec.rb +6 -0
  96. data/spec/watch_tower/cli/install_spec.rb +16 -0
  97. data/spec/watch_tower/cli/open_spec.rb +14 -0
  98. data/spec/watch_tower/cli/start_spec.rb +17 -0
  99. data/spec/watch_tower/cli_spec.rb +15 -0
  100. data/spec/watch_tower/config_spec.rb +25 -0
  101. data/spec/watch_tower/editor/textmate_spec.rb +43 -0
  102. data/spec/watch_tower/editor/xcode_spec.rb +43 -0
  103. data/spec/watch_tower/editor_spec.rb +19 -0
  104. data/spec/watch_tower/eye_spec.rb +130 -0
  105. data/spec/watch_tower/project/git_based_spec.rb +131 -0
  106. data/spec/watch_tower/project/path_based_spec.rb +111 -0
  107. data/spec/watch_tower/project_spec.rb +82 -0
  108. data/spec/watch_tower/server/app_spec.rb +186 -0
  109. data/spec/watch_tower/server/decorator/project_decorator_spec.rb +60 -0
  110. data/spec/watch_tower/server/models/file_spec.rb +284 -0
  111. data/spec/watch_tower/server/models/project_spec.rb +165 -0
  112. data/spec/watch_tower/server/models/time_entry_spec.rb +37 -0
  113. data/spec/watch_tower/server_spec.rb +4 -0
  114. data/watch_tower.gemspec +80 -0
  115. metadata +450 -0
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ module Server
4
+ describe TimeEntry do
5
+ describe "Attributes" do
6
+ it { should respond_to :mtime }
7
+ end
8
+
9
+ describe "Validations" do
10
+ it { should_not be_valid }
11
+
12
+ it "should require an mtime" do
13
+ t = FactoryGirl.build :time_entry, mtime: nil
14
+ t.should_not be_valid
15
+ end
16
+
17
+ it "should require a hash" do
18
+ m = FactoryGirl.build :time_entry, file_hash: nil
19
+ m.should_not be_valid
20
+ end
21
+
22
+ it "should be valid if attributes requirements are met" do
23
+ t = FactoryGirl.build :time_entry
24
+ t.should be_valid
25
+ end
26
+ end
27
+
28
+ describe "Associations" do
29
+ it "should belong to a file" do
30
+ f = FactoryGirl.create :file
31
+ t = FactoryGirl.create :time_entry, file: f
32
+
33
+ t.file.should == f
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,4 @@
1
+ require 'spec_helper'
2
+
3
+ describe Server do
4
+ end
@@ -0,0 +1,80 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "watch_tower/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "watch_tower"
7
+ s.version = WatchTower::VERSION
8
+ s.authors = ["Wael Nasreddine"]
9
+ s.email = ["wael.nasreddine@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = "Unobtrusive time-tracking for TextMate."
12
+ s.description = "WatchTower helps you track the time you spend on each project."
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
20
+
21
+ ####
22
+ # Run-time dependencies
23
+ ####
24
+
25
+ # Active Support
26
+ s.add_dependency 'activesupport', '~>3.1.1'
27
+ s.add_dependency 'i18n', '~>0.6.0'
28
+
29
+ # Active Record
30
+ s.add_dependency 'activerecord', '~>3.1.1'
31
+
32
+ # Sinatra
33
+ s.add_dependency 'sinatra', '~> 1.3.0'
34
+ s.add_dependency 'sinatra-snap', '~>0.3.2'
35
+ s.add_dependency 'haml', '~>3.1.3'
36
+
37
+ # Decorators
38
+ s.add_dependency 'draper', '~>0.8.0'
39
+
40
+ # Git
41
+ s.add_dependency 'git', '~>1.2.5'
42
+
43
+ # Asset Pipeline
44
+ s.add_dependency 'coffee-script', '~>2.2.0'
45
+ s.add_dependency 'uglifier', '~>1.0.3'
46
+ s.add_dependency 'sass', '~>3.1.10'
47
+ s.add_dependency 'sprockets', '~>2.0.2'
48
+
49
+ ####
50
+ # Development dependencies
51
+ ####
52
+ s.add_development_dependency 'guard', '~>0.8.4'
53
+ s.add_development_dependency 'guard-bundler', '~>0.1.3'
54
+ s.add_development_dependency 'guard-rspec', '~>0.4.5'
55
+ s.add_development_dependency 'guard-sprockets2', '~>0.0.5'
56
+
57
+ ####
58
+ # Development / Test dependencies
59
+ ####
60
+
61
+ # RSpec / Capybara
62
+ s.add_development_dependency 'rspec', '~>2.6.0'
63
+ s.add_development_dependency 'rspec-rails', '~>2.6.1'
64
+ s.add_development_dependency 'capybara', '~>1.1.1'
65
+ s.add_development_dependency 'launchy', '~>2.0.5'
66
+
67
+ # Mocha
68
+ s.add_development_dependency 'mocha', '~>0.10.0'
69
+
70
+ # Factory Girl
71
+ s.add_development_dependency 'factory_girl', '~>2.1.2'
72
+
73
+ # Timecop
74
+ s.add_development_dependency 'timecop', '~>0.3.5'
75
+
76
+ ####
77
+ # Debugging
78
+ ####
79
+ s.add_development_dependency 'pry', '~>0.9.6.2'
80
+ end
metadata ADDED
@@ -0,0 +1,450 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: watch_tower
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Wael Nasreddine
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-10-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: &2151931760 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.1.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2151931760
25
+ - !ruby/object:Gem::Dependency
26
+ name: i18n
27
+ requirement: &2151930840 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2151930840
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ requirement: &2151929640 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 3.1.1
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2151929640
47
+ - !ruby/object:Gem::Dependency
48
+ name: sinatra
49
+ requirement: &2151928220 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.0
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2151928220
58
+ - !ruby/object:Gem::Dependency
59
+ name: sinatra-snap
60
+ requirement: &2151927320 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.3.2
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2151927320
69
+ - !ruby/object:Gem::Dependency
70
+ name: haml
71
+ requirement: &2151926700 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 3.1.3
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *2151926700
80
+ - !ruby/object:Gem::Dependency
81
+ name: draper
82
+ requirement: &2151925680 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 0.8.0
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *2151925680
91
+ - !ruby/object:Gem::Dependency
92
+ name: git
93
+ requirement: &2151924880 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.2.5
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *2151924880
102
+ - !ruby/object:Gem::Dependency
103
+ name: coffee-script
104
+ requirement: &2151923720 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 2.2.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *2151923720
113
+ - !ruby/object:Gem::Dependency
114
+ name: uglifier
115
+ requirement: &2151922300 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.3
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: *2151922300
124
+ - !ruby/object:Gem::Dependency
125
+ name: sass
126
+ requirement: &2151919960 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 3.1.10
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *2151919960
135
+ - !ruby/object:Gem::Dependency
136
+ name: sprockets
137
+ requirement: &2151918080 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: 2.0.2
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: *2151918080
146
+ - !ruby/object:Gem::Dependency
147
+ name: guard
148
+ requirement: &2151917220 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: 0.8.4
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *2151917220
157
+ - !ruby/object:Gem::Dependency
158
+ name: guard-bundler
159
+ requirement: &2151916080 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ~>
163
+ - !ruby/object:Gem::Version
164
+ version: 0.1.3
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *2151916080
168
+ - !ruby/object:Gem::Dependency
169
+ name: guard-rspec
170
+ requirement: &2151914400 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ version: 0.4.5
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: *2151914400
179
+ - !ruby/object:Gem::Dependency
180
+ name: guard-sprockets2
181
+ requirement: &2151910360 !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ~>
185
+ - !ruby/object:Gem::Version
186
+ version: 0.0.5
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: *2151910360
190
+ - !ruby/object:Gem::Dependency
191
+ name: rspec
192
+ requirement: &2151909220 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: 2.6.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: *2151909220
201
+ - !ruby/object:Gem::Dependency
202
+ name: rspec-rails
203
+ requirement: &2151906920 !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ~>
207
+ - !ruby/object:Gem::Version
208
+ version: 2.6.1
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: *2151906920
212
+ - !ruby/object:Gem::Dependency
213
+ name: capybara
214
+ requirement: &2151902360 !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ~>
218
+ - !ruby/object:Gem::Version
219
+ version: 1.1.1
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: *2151902360
223
+ - !ruby/object:Gem::Dependency
224
+ name: launchy
225
+ requirement: &2151899740 !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ~>
229
+ - !ruby/object:Gem::Version
230
+ version: 2.0.5
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: *2151899740
234
+ - !ruby/object:Gem::Dependency
235
+ name: mocha
236
+ requirement: &2151897580 !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ~>
240
+ - !ruby/object:Gem::Version
241
+ version: 0.10.0
242
+ type: :development
243
+ prerelease: false
244
+ version_requirements: *2151897580
245
+ - !ruby/object:Gem::Dependency
246
+ name: factory_girl
247
+ requirement: &2151895320 !ruby/object:Gem::Requirement
248
+ none: false
249
+ requirements:
250
+ - - ~>
251
+ - !ruby/object:Gem::Version
252
+ version: 2.1.2
253
+ type: :development
254
+ prerelease: false
255
+ version_requirements: *2151895320
256
+ - !ruby/object:Gem::Dependency
257
+ name: timecop
258
+ requirement: &2151892300 !ruby/object:Gem::Requirement
259
+ none: false
260
+ requirements:
261
+ - - ~>
262
+ - !ruby/object:Gem::Version
263
+ version: 0.3.5
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: *2151892300
267
+ - !ruby/object:Gem::Dependency
268
+ name: pry
269
+ requirement: &2151890420 !ruby/object:Gem::Requirement
270
+ none: false
271
+ requirements:
272
+ - - ~>
273
+ - !ruby/object:Gem::Version
274
+ version: 0.9.6.2
275
+ type: :development
276
+ prerelease: false
277
+ version_requirements: *2151890420
278
+ description: WatchTower helps you track the time you spend on each project.
279
+ email:
280
+ - wael.nasreddine@gmail.com
281
+ executables:
282
+ - watchtower
283
+ extensions: []
284
+ extra_rdoc_files: []
285
+ files:
286
+ - .gitignore
287
+ - .todo
288
+ - .travis.yml
289
+ - Gemfile
290
+ - Guardfile
291
+ - MIT-LICENSE
292
+ - README.md
293
+ - Rakefile
294
+ - TODO
295
+ - bin/watchtower
296
+ - ci/adapters/jruby-mysql.yml
297
+ - ci/adapters/jruby-postgresql.yml
298
+ - ci/adapters/jruby-sqlite.yml
299
+ - ci/adapters/ruby-mysql.yml
300
+ - ci/adapters/ruby-postgresql.yml
301
+ - ci/adapters/ruby-sqlite.yml
302
+ - ci/travis.rb
303
+ - lib/watch_tower.rb
304
+ - lib/watch_tower/appscript.rb
305
+ - lib/watch_tower/cli.rb
306
+ - lib/watch_tower/cli/.gitkeep
307
+ - lib/watch_tower/cli/install.rb
308
+ - lib/watch_tower/cli/open.rb
309
+ - lib/watch_tower/cli/start.rb
310
+ - lib/watch_tower/config.rb
311
+ - lib/watch_tower/core_ext.rb
312
+ - lib/watch_tower/core_ext/.gitkeep
313
+ - lib/watch_tower/editor.rb
314
+ - lib/watch_tower/editor/.gitkeep
315
+ - lib/watch_tower/editor/base_appscript.rb
316
+ - lib/watch_tower/editor/base_ps.rb
317
+ - lib/watch_tower/editor/textmate.rb
318
+ - lib/watch_tower/editor/xcode.rb
319
+ - lib/watch_tower/errors.rb
320
+ - lib/watch_tower/eye.rb
321
+ - lib/watch_tower/project.rb
322
+ - lib/watch_tower/project/.gitkeep
323
+ - lib/watch_tower/project/any_based.rb
324
+ - lib/watch_tower/project/git_based.rb
325
+ - lib/watch_tower/project/init.rb
326
+ - lib/watch_tower/project/path_based.rb
327
+ - lib/watch_tower/server.rb
328
+ - lib/watch_tower/server/.gitkeep
329
+ - lib/watch_tower/server/app.rb
330
+ - lib/watch_tower/server/assets/images/WatchTower.jpg
331
+ - lib/watch_tower/server/assets/images/percentage.png
332
+ - lib/watch_tower/server/assets/javascripts/application.js
333
+ - lib/watch_tower/server/assets/javascripts/percentage.coffee
334
+ - lib/watch_tower/server/assets/stylesheets/application.css
335
+ - lib/watch_tower/server/assets/stylesheets/global.sass
336
+ - lib/watch_tower/server/assets/stylesheets/project.sass
337
+ - lib/watch_tower/server/configurations.rb
338
+ - lib/watch_tower/server/configurations/asset.rb
339
+ - lib/watch_tower/server/database.rb
340
+ - lib/watch_tower/server/db/migrate/001_create_projects.rb
341
+ - lib/watch_tower/server/db/migrate/002_create_files.rb
342
+ - lib/watch_tower/server/db/migrate/003_create_time_entries.rb
343
+ - lib/watch_tower/server/db/migrate/004_create_durations.rb
344
+ - lib/watch_tower/server/db/migrate/005_add_hash_to_time_entries.rb
345
+ - lib/watch_tower/server/db/migrate/006_add_hash_to_files.rb
346
+ - lib/watch_tower/server/decorator.rb
347
+ - lib/watch_tower/server/decorator/application_decorator.rb
348
+ - lib/watch_tower/server/decorator/file_decorator.rb
349
+ - lib/watch_tower/server/decorator/project_decorator.rb
350
+ - lib/watch_tower/server/helpers.rb
351
+ - lib/watch_tower/server/helpers/asset.rb
352
+ - lib/watch_tower/server/helpers/improved_partials.rb
353
+ - lib/watch_tower/server/models/duration.rb
354
+ - lib/watch_tower/server/models/file.rb
355
+ - lib/watch_tower/server/models/project.rb
356
+ - lib/watch_tower/server/models/time_entry.rb
357
+ - lib/watch_tower/server/public/assets/WatchTower-4d6de11e1bd34165ad91ac46fb711bf3.jpg
358
+ - lib/watch_tower/server/public/assets/application-7829b53b5ece1a16d22dc3d00f329023.css
359
+ - lib/watch_tower/server/public/assets/application-e0e6b7731aade460f680331e65cf0682.js
360
+ - lib/watch_tower/server/public/assets/percentage-d8589e21a5fc85d32a445f531ff8ab95.png
361
+ - lib/watch_tower/server/vendor/assets/javascripts/jquery-ui.js
362
+ - lib/watch_tower/server/vendor/assets/javascripts/jquery.js
363
+ - lib/watch_tower/server/vendor/assets/javascripts/jquery_ujs.js
364
+ - lib/watch_tower/server/views/.gitkeep
365
+ - lib/watch_tower/server/views/_file.haml
366
+ - lib/watch_tower/server/views/_project.haml
367
+ - lib/watch_tower/server/views/index.haml
368
+ - lib/watch_tower/server/views/layout.haml
369
+ - lib/watch_tower/server/views/project.haml
370
+ - lib/watch_tower/templates/config.yml
371
+ - lib/watch_tower/templates/watchtower.plist
372
+ - lib/watch_tower/version.rb
373
+ - spec/factories.rb
374
+ - spec/spec_helper.rb
375
+ - spec/support/active_record.rb
376
+ - spec/support/factory_girl.rb
377
+ - spec/support/launchy.rb
378
+ - spec/support/sinatra.rb
379
+ - spec/support/timecop.rb
380
+ - spec/watch_tower/appscript_spec.rb
381
+ - spec/watch_tower/cli/install_spec.rb
382
+ - spec/watch_tower/cli/open_spec.rb
383
+ - spec/watch_tower/cli/start_spec.rb
384
+ - spec/watch_tower/cli_spec.rb
385
+ - spec/watch_tower/config_spec.rb
386
+ - spec/watch_tower/editor/textmate_spec.rb
387
+ - spec/watch_tower/editor/xcode_spec.rb
388
+ - spec/watch_tower/editor_spec.rb
389
+ - spec/watch_tower/eye_spec.rb
390
+ - spec/watch_tower/project/git_based_spec.rb
391
+ - spec/watch_tower/project/path_based_spec.rb
392
+ - spec/watch_tower/project_spec.rb
393
+ - spec/watch_tower/server/app_spec.rb
394
+ - spec/watch_tower/server/decorator/project_decorator_spec.rb
395
+ - spec/watch_tower/server/models/file_spec.rb
396
+ - spec/watch_tower/server/models/project_spec.rb
397
+ - spec/watch_tower/server/models/time_entry_spec.rb
398
+ - spec/watch_tower/server_spec.rb
399
+ - watch_tower.gemspec
400
+ homepage: ''
401
+ licenses: []
402
+ post_install_message:
403
+ rdoc_options: []
404
+ require_paths:
405
+ - lib
406
+ required_ruby_version: !ruby/object:Gem::Requirement
407
+ none: false
408
+ requirements:
409
+ - - ! '>='
410
+ - !ruby/object:Gem::Version
411
+ version: 1.9.2
412
+ required_rubygems_version: !ruby/object:Gem::Requirement
413
+ none: false
414
+ requirements:
415
+ - - ! '>='
416
+ - !ruby/object:Gem::Version
417
+ version: '0'
418
+ requirements: []
419
+ rubyforge_project:
420
+ rubygems_version: 1.8.10
421
+ signing_key:
422
+ specification_version: 3
423
+ summary: Unobtrusive time-tracking for TextMate.
424
+ test_files:
425
+ - spec/factories.rb
426
+ - spec/spec_helper.rb
427
+ - spec/support/active_record.rb
428
+ - spec/support/factory_girl.rb
429
+ - spec/support/launchy.rb
430
+ - spec/support/sinatra.rb
431
+ - spec/support/timecop.rb
432
+ - spec/watch_tower/appscript_spec.rb
433
+ - spec/watch_tower/cli/install_spec.rb
434
+ - spec/watch_tower/cli/open_spec.rb
435
+ - spec/watch_tower/cli/start_spec.rb
436
+ - spec/watch_tower/cli_spec.rb
437
+ - spec/watch_tower/config_spec.rb
438
+ - spec/watch_tower/editor/textmate_spec.rb
439
+ - spec/watch_tower/editor/xcode_spec.rb
440
+ - spec/watch_tower/editor_spec.rb
441
+ - spec/watch_tower/eye_spec.rb
442
+ - spec/watch_tower/project/git_based_spec.rb
443
+ - spec/watch_tower/project/path_based_spec.rb
444
+ - spec/watch_tower/project_spec.rb
445
+ - spec/watch_tower/server/app_spec.rb
446
+ - spec/watch_tower/server/decorator/project_decorator_spec.rb
447
+ - spec/watch_tower/server/models/file_spec.rb
448
+ - spec/watch_tower/server/models/project_spec.rb
449
+ - spec/watch_tower/server/models/time_entry_spec.rb
450
+ - spec/watch_tower/server_spec.rb