gitdocs 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +6 -14
  2. data/.codeclimate.yml +26 -0
  3. data/.rubocop.yml +8 -2
  4. data/.travis.yml +8 -0
  5. data/CHANGELOG +13 -0
  6. data/Gemfile +1 -1
  7. data/README.md +7 -6
  8. data/Rakefile +31 -5
  9. data/bin/gitdocs +1 -0
  10. data/config.ru +6 -4
  11. data/gitdocs.gemspec +22 -19
  12. data/lib/gitdocs.rb +54 -16
  13. data/lib/gitdocs/browser_app.rb +34 -41
  14. data/lib/gitdocs/cli.rb +41 -32
  15. data/lib/gitdocs/configuration.rb +40 -101
  16. data/lib/gitdocs/git_notifier.rb +111 -0
  17. data/lib/gitdocs/initializer.rb +83 -0
  18. data/lib/gitdocs/manager.rb +90 -60
  19. data/lib/gitdocs/migration/004_add_index_for_path.rb +1 -1
  20. data/lib/gitdocs/notifier.rb +70 -104
  21. data/lib/gitdocs/rendering_helper.rb +3 -0
  22. data/lib/gitdocs/repository.rb +324 -307
  23. data/lib/gitdocs/repository/committer.rb +77 -0
  24. data/lib/gitdocs/repository/path.rb +157 -140
  25. data/lib/gitdocs/search.rb +40 -25
  26. data/lib/gitdocs/settings_app.rb +5 -3
  27. data/lib/gitdocs/share.rb +64 -0
  28. data/lib/gitdocs/synchronizer.rb +40 -0
  29. data/lib/gitdocs/version.rb +1 -1
  30. data/lib/gitdocs/views/_header.haml +2 -2
  31. data/lib/gitdocs/views/dir.haml +3 -3
  32. data/lib/gitdocs/views/edit.haml +1 -1
  33. data/lib/gitdocs/views/file.haml +1 -1
  34. data/lib/gitdocs/views/home.haml +3 -3
  35. data/lib/gitdocs/views/layout.haml +13 -13
  36. data/lib/gitdocs/views/revisions.haml +3 -3
  37. data/lib/gitdocs/views/search.haml +1 -1
  38. data/lib/gitdocs/views/settings.haml +6 -6
  39. data/test/integration/cli/full_sync_test.rb +83 -0
  40. data/test/integration/cli/share_management_test.rb +29 -0
  41. data/test/integration/cli/status_test.rb +14 -0
  42. data/test/integration/test_helper.rb +185 -151
  43. data/test/integration/{browse_test.rb → web/browse_test.rb} +11 -29
  44. data/test/integration/web/share_management_test.rb +46 -0
  45. data/test/support/git_factory.rb +276 -0
  46. data/test/unit/browser_app_test.rb +346 -0
  47. data/test/unit/configuration_test.rb +8 -70
  48. data/test/unit/git_notifier_test.rb +116 -0
  49. data/test/unit/gitdocs_test.rb +90 -0
  50. data/test/unit/manager_test.rb +36 -0
  51. data/test/unit/notifier_test.rb +60 -124
  52. data/test/unit/repository_committer_test.rb +111 -0
  53. data/test/unit/repository_path_test.rb +92 -76
  54. data/test/unit/repository_test.rb +243 -356
  55. data/test/unit/search_test.rb +15 -0
  56. data/test/unit/settings_app_test.rb +80 -0
  57. data/test/unit/share_test.rb +97 -0
  58. data/test/unit/test_helper.rb +17 -3
  59. metadata +114 -108
  60. data/lib/gitdocs/runner.rb +0 -108
  61. data/lib/gitdocs/server.rb +0 -62
  62. data/test/integration/full_sync_test.rb +0 -66
  63. data/test/integration/share_management_test.rb +0 -95
  64. data/test/integration/status_test.rb +0 -21
  65. data/test/unit/runner_test.rb +0 -122
@@ -2,6 +2,21 @@
2
2
  require File.expand_path('../test_helper', __FILE__)
3
3
 
4
4
  describe Gitdocs::Search do
5
+ describe '.search' do
6
+ subject { Gitdocs::Search.search(:term) }
7
+ before do
8
+ Gitdocs::Share.stubs(:all).returns([:share1, :share2])
9
+ Gitdocs::Repository.stubs(:new).with(:share1).returns(:repository1)
10
+ Gitdocs::Repository.stubs(:new).with(:share2).returns(:repository2)
11
+ Gitdocs::Search
12
+ .stubs(:new)
13
+ .with([:repository1, :repository2])
14
+ .returns(search = mock)
15
+ search.stubs(:search).with(:term).returns(:result)
16
+ end
17
+ it { subject.must_equal(:result) }
18
+ end
19
+
5
20
  describe 'initialize' do
6
21
  subject { Gitdocs::Search.new(:repositories) }
7
22
  it { subject.instance_variable_get(:@repositories).must_equal :repositories }
@@ -0,0 +1,80 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ ENV['RACK_ENV'] = 'test'
4
+ require File.expand_path('../test_helper', __FILE__)
5
+ require 'rack/test'
6
+
7
+ describe Gitdocs::SettingsApp do
8
+ include Rack::Test::Methods
9
+ def app
10
+ Gitdocs::SettingsApp
11
+ end
12
+
13
+ describe 'get /' do
14
+ before do
15
+ Gitdocs::Configuration
16
+ .stubs(:web_frontend_port)
17
+ .returns(1111)
18
+ share = stub(
19
+ id: :id,
20
+ path: :repository_path,
21
+ polling_interval: :polling_interval,
22
+ sync_type: 'full',
23
+ notification: true,
24
+ remote_name: 'remote',
25
+ branch_name: 'branch'
26
+ )
27
+ Gitdocs::Share.stubs(:all).returns([share])
28
+ Gitdocs::Repository
29
+ .stubs(:new)
30
+ .with(share)
31
+ .returns(stub(available_remotes: [:remote]))
32
+
33
+ get '/'
34
+ end
35
+ specify do
36
+ last_response.status.must_equal(200)
37
+ last_response.body.must_include('Gitdocs')
38
+ last_response.body.must_include('1111')
39
+ last_response.body.must_include('repository_path')
40
+ last_response.body.must_include('full')
41
+ last_response.body.must_include('remote')
42
+ last_response.body.must_include('branch')
43
+ end
44
+ end
45
+
46
+ describe 'post /' do
47
+ before do
48
+ Gitdocs::Configuration.expects(:update).with('config_data')
49
+ Gitdocs::Share.expects(:update_all).with('share_data')
50
+ Gitdocs::Manager.expects(:restart_synchronization)
51
+
52
+ post '/', config: 'config_data', share: 'share_data'
53
+ end
54
+
55
+ specify do
56
+ last_response.status.must_equal(302)
57
+ last_response.headers['Location'].must_equal('http://example.org/')
58
+ end
59
+ end
60
+
61
+ describe 'delete /:id' do
62
+ before do
63
+ Gitdocs::Share.expects(:remove_by_id).with(1234).returns(remove_result)
64
+ delete '/1234'
65
+ end
66
+
67
+ describe 'missing' do
68
+ let(:remove_result) { false }
69
+ specify { last_response.status.must_equal(404) }
70
+ end
71
+
72
+ describe 'exists' do
73
+ let(:remove_result) { true }
74
+ specify do
75
+ last_response.status.must_equal(302)
76
+ last_response.headers['Location'].must_equal('http://example.org/')
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,97 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require File.expand_path('../test_helper', __FILE__)
4
+
5
+ describe Gitdocs::Share do
6
+ before do
7
+ ShellTools.capture { Gitdocs::Initializer.initialize_database }
8
+ end
9
+
10
+ it 'can retrieve empty shares' do
11
+ assert_equal [], Gitdocs::Share.all.to_a
12
+ end
13
+
14
+ it 'can have a path added' do
15
+ Gitdocs::Share.create_by_path!('/my/../my/path') # normalized test
16
+ assert_equal '/my/path', Gitdocs::Share.at(0).path
17
+ assert_equal 15.0, Gitdocs::Share.at(0).polling_interval
18
+ end
19
+
20
+ it 'can have a path removed' do
21
+ Gitdocs::Share.create_by_path!('/my/path')
22
+ Gitdocs::Share.create_by_path!('/my/path/2')
23
+ Gitdocs::Share.remove_by_path('/my/../my/path/2') # normalized test
24
+ assert_equal ['/my/path'], Gitdocs::Share.all.map(&:path)
25
+ end
26
+
27
+ it 'can have a share removed by id' do
28
+ Gitdocs::Share.create_by_path!('/my/path')
29
+ Gitdocs::Share.create_by_path!('/my/path/2')
30
+
31
+ # Delete an index which exists
32
+ Gitdocs::Share.remove_by_id(2).must_equal(true) # normalized test
33
+ assert_equal ['/my/path'], Gitdocs::Share.all.map(&:path)
34
+
35
+ # Try to delete an index which does not exist
36
+ Gitdocs::Share.remove_by_id(5).must_equal(false) # normalized test
37
+ assert_equal ['/my/path'], Gitdocs::Share.all.map(&:path)
38
+ end
39
+
40
+ describe '.paths' do
41
+ before do
42
+ Gitdocs::Share.create_by_path!('/my/path')
43
+ Gitdocs::Share.create_by_path!('/my/path/2')
44
+ Gitdocs::Share.create_by_path!('/my/path/3')
45
+ end
46
+
47
+ it { Gitdocs::Share.paths.must_equal(%w(/my/path /my/path/2 /my/path/3)) }
48
+ end
49
+
50
+ describe '.find_by_path' do
51
+ before do
52
+ Gitdocs::Share.create_by_path!('/my/path')
53
+ Gitdocs::Share.create_by_path!('/my/path/2')
54
+ Gitdocs::Share.create_by_path!('/my/path/3')
55
+ end
56
+
57
+ it 'finds a missing path' do
58
+ Gitdocs::Share.find_by_path('/missing/path').must_be_nil
59
+ end
60
+
61
+ it 'finds a real path' do
62
+ share = Gitdocs::Share.find_by_path('/my/path/2')
63
+ share.wont_be_nil
64
+ share.class.must_equal(Gitdocs::Share)
65
+ share.path.must_equal('/my/path/2')
66
+ end
67
+ end
68
+
69
+ describe '#update_all' do
70
+ before do
71
+ Gitdocs::Share.create_by_path!('/my/path')
72
+ Gitdocs::Share.create_by_path!('/my/path/2')
73
+ Gitdocs::Share.create_by_path!('/my/path/3')
74
+ Gitdocs::Share.create_by_path!('/my/path/4')
75
+ Gitdocs::Share.create_by_path!('/my/path/5')
76
+
77
+ Gitdocs::Share.update_all(
78
+ '0' => { 'path' => '/my/path', 'polling_interval' => 42 },
79
+ '1' => { 'path' => '/my/path/2', 'polling_interval' => 66 },
80
+ '2' => { 'path' => '/my/path/3a', 'polling_interval' => 77 },
81
+ '3' => { 'path' => '', 'polling_interval' => 88 },
82
+ '4' => { 'polling_interval' => 99 }
83
+ )
84
+ end
85
+ it { Gitdocs::Share.all.size.must_equal(5) }
86
+ it do
87
+ Gitdocs::Share.all.map(&:path).must_equal(
88
+ %w(/my/path /my/path/2 /my/path/3a /my/path/4 /my/path/5)
89
+ )
90
+ end
91
+ it do
92
+ Gitdocs::Share.all.map(&:polling_interval).must_equal(
93
+ [42, 66, 77, 15, 15]
94
+ )
95
+ end
96
+ end
97
+ end
@@ -3,8 +3,22 @@
3
3
  require 'rubygems'
4
4
  require 'minitest/autorun'
5
5
  $LOAD_PATH.unshift File.expand_path('../../lib')
6
- require 'gitdocs'
7
6
  require 'mocha/setup'
7
+ require 'shell_tools'
8
+ Dir.glob(File.expand_path('../../support/**/*.rb', __FILE__)).each do |filename|
9
+ require_relative filename
10
+ end
11
+
12
+ # Setup code coverage, first ###################################################
13
+ require 'codeclimate-test-reporter'
14
+ SimpleCov.add_filter 'test'
15
+ SimpleCov.start
16
+ CodeClimate::TestReporter.start
17
+
18
+ # Load and configure the real code #############################################
19
+ require 'gitdocs'
20
+
21
+ Gitdocs::Initializer.root_dirname = '/tmp/gitdocs'
22
+ Gitdocs::Initializer.database = ':memory:'
8
23
 
9
- require 'coveralls'
10
- Coveralls.wear!
24
+ GitFactory.working_directory = File.expand_path('../../../tmp/unit', __FILE__)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitdocs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Hull
@@ -9,36 +9,50 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-03 00:00:00.000000000 Z
12
+ date: 2016-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: joshbuddy-guard
15
+ name: celluloid
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: 0.10.0
20
+ version: 0.16.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: 0.10.0
27
+ version: 0.16.0
28
28
  - !ruby/object:Gem::Dependency
29
- name: thin
29
+ name: reel-rack
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ~>
33
33
  - !ruby/object:Gem::Version
34
- version: 1.6.2
34
+ version: 0.2.2
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ~>
40
40
  - !ruby/object:Gem::Version
41
- version: 1.6.2
41
+ version: 0.2.2
42
+ - !ruby/object:Gem::Dependency
43
+ name: listen
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: 3.0.5
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 3.0.5
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: sinatra
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -59,28 +73,28 @@ dependencies:
59
73
  requirements:
60
74
  - - ~>
61
75
  - !ruby/object:Gem::Version
62
- version: 3.2.2
76
+ version: 3.3.0
63
77
  type: :runtime
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - ~>
68
82
  - !ruby/object:Gem::Version
69
- version: 3.2.2
83
+ version: 3.3.0
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: thor
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
88
  - - ~>
75
89
  - !ruby/object:Gem::Version
76
- version: 0.14.6
90
+ version: 0.19.1
77
91
  type: :runtime
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
95
  - - ~>
82
96
  - !ruby/object:Gem::Version
83
- version: 0.14.6
97
+ version: 0.19.1
84
98
  - !ruby/object:Gem::Dependency
85
99
  name: coderay
86
100
  requirement: !ruby/object:Gem::Requirement
@@ -101,14 +115,14 @@ dependencies:
101
115
  requirements:
102
116
  - - ~>
103
117
  - !ruby/object:Gem::Version
104
- version: 0.1.2
118
+ version: 0.2.0
105
119
  type: :runtime
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
108
122
  requirements:
109
123
  - - ~>
110
124
  - !ruby/object:Gem::Version
111
- version: 0.1.2
125
+ version: 0.2.0
112
126
  - !ruby/object:Gem::Dependency
113
127
  name: growl
114
128
  requirement: !ruby/object:Gem::Requirement
@@ -179,20 +193,6 @@ dependencies:
179
193
  - - ~>
180
194
  - !ruby/object:Gem::Version
181
195
  version: 2.5.0
182
- - !ruby/object:Gem::Dependency
183
- name: shell_tools
184
- requirement: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - ~>
187
- - !ruby/object:Gem::Version
188
- version: 0.1.0
189
- type: :runtime
190
- prerelease: false
191
- version_requirements: !ruby/object:Gem::Requirement
192
- requirements:
193
- - - ~>
194
- - !ruby/object:Gem::Version
195
- version: 0.1.0
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: mimetype-fu
198
198
  requirement: !ruby/object:Gem::Requirement
@@ -207,20 +207,6 @@ dependencies:
207
207
  - - ~>
208
208
  - !ruby/object:Gem::Version
209
209
  version: 0.1.2
210
- - !ruby/object:Gem::Dependency
211
- name: eventmachine
212
- requirement: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - ! '>='
215
- - !ruby/object:Gem::Version
216
- version: 1.0.3
217
- type: :runtime
218
- prerelease: false
219
- version_requirements: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - ! '>='
222
- - !ruby/object:Gem::Version
223
- version: 1.0.3
224
210
  - !ruby/object:Gem::Dependency
225
211
  name: launchy
226
212
  requirement: !ruby/object:Gem::Requirement
@@ -241,14 +227,14 @@ dependencies:
241
227
  requirements:
242
228
  - - ~>
243
229
  - !ruby/object:Gem::Version
244
- version: 0.19.0
230
+ version: 0.24.0
245
231
  type: :runtime
246
232
  prerelease: false
247
233
  version_requirements: !ruby/object:Gem::Requirement
248
234
  requirements:
249
235
  - - ~>
250
236
  - !ruby/object:Gem::Version
251
- version: 0.19.0
237
+ version: 0.24.0
252
238
  - !ruby/object:Gem::Dependency
253
239
  name: table_print
254
240
  requirement: !ruby/object:Gem::Requirement
@@ -264,145 +250,145 @@ dependencies:
264
250
  - !ruby/object:Gem::Version
265
251
  version: 1.5.1
266
252
  - !ruby/object:Gem::Dependency
267
- name: minitest
253
+ name: notiffany
268
254
  requirement: !ruby/object:Gem::Requirement
269
255
  requirements:
270
256
  - - ~>
271
257
  - !ruby/object:Gem::Version
272
- version: 5.5.0
273
- type: :development
258
+ version: 0.1.0
259
+ type: :runtime
274
260
  prerelease: false
275
261
  version_requirements: !ruby/object:Gem::Requirement
276
262
  requirements:
277
263
  - - ~>
278
264
  - !ruby/object:Gem::Version
279
- version: 5.5.0
265
+ version: 0.1.0
280
266
  - !ruby/object:Gem::Dependency
281
- name: capybara_minitest_spec
267
+ name: minitest
282
268
  requirement: !ruby/object:Gem::Requirement
283
269
  requirements:
284
270
  - - ~>
285
271
  - !ruby/object:Gem::Version
286
- version: 1.0.2
272
+ version: 5.9.0
287
273
  type: :development
288
274
  prerelease: false
289
275
  version_requirements: !ruby/object:Gem::Requirement
290
276
  requirements:
291
277
  - - ~>
292
278
  - !ruby/object:Gem::Version
293
- version: 1.0.2
279
+ version: 5.9.0
294
280
  - !ruby/object:Gem::Dependency
295
- name: poltergeist
281
+ name: capybara_minitest_spec
296
282
  requirement: !ruby/object:Gem::Requirement
297
283
  requirements:
298
284
  - - ~>
299
285
  - !ruby/object:Gem::Version
300
- version: 1.5.1
286
+ version: 1.0.2
301
287
  type: :development
302
288
  prerelease: false
303
289
  version_requirements: !ruby/object:Gem::Requirement
304
290
  requirements:
305
291
  - - ~>
306
292
  - !ruby/object:Gem::Version
307
- version: 1.5.1
293
+ version: 1.0.2
308
294
  - !ruby/object:Gem::Dependency
309
- name: rake
295
+ name: shell_tools
310
296
  requirement: !ruby/object:Gem::Requirement
311
297
  requirements:
312
- - - ! '>='
298
+ - - ~>
313
299
  - !ruby/object:Gem::Version
314
- version: '0'
300
+ version: 0.1.0
315
301
  type: :development
316
302
  prerelease: false
317
303
  version_requirements: !ruby/object:Gem::Requirement
318
304
  requirements:
319
- - - ! '>='
305
+ - - ~>
320
306
  - !ruby/object:Gem::Version
321
- version: '0'
307
+ version: 0.1.0
322
308
  - !ruby/object:Gem::Dependency
323
- name: mocha
309
+ name: poltergeist
324
310
  requirement: !ruby/object:Gem::Requirement
325
311
  requirements:
326
- - - ! '>='
312
+ - - ~>
327
313
  - !ruby/object:Gem::Version
328
- version: '0'
314
+ version: 1.7.0
329
315
  type: :development
330
316
  prerelease: false
331
317
  version_requirements: !ruby/object:Gem::Requirement
332
318
  requirements:
333
- - - ! '>='
319
+ - - ~>
334
320
  - !ruby/object:Gem::Version
335
- version: '0'
321
+ version: 1.7.0
336
322
  - !ruby/object:Gem::Dependency
337
- name: fakeweb
323
+ name: rake
338
324
  requirement: !ruby/object:Gem::Requirement
339
325
  requirements:
340
- - - ! '>='
326
+ - - ~>
341
327
  - !ruby/object:Gem::Version
342
- version: '0'
328
+ version: 11.1.2
343
329
  type: :development
344
330
  prerelease: false
345
331
  version_requirements: !ruby/object:Gem::Requirement
346
332
  requirements:
347
- - - ! '>='
333
+ - - ~>
348
334
  - !ruby/object:Gem::Version
349
- version: '0'
335
+ version: 11.1.2
350
336
  - !ruby/object:Gem::Dependency
351
- name: metric_fu
337
+ name: mocha
352
338
  requirement: !ruby/object:Gem::Requirement
353
339
  requirements:
354
- - - ! '>='
340
+ - - ~>
355
341
  - !ruby/object:Gem::Version
356
- version: '0'
342
+ version: 1.1.0
357
343
  type: :development
358
344
  prerelease: false
359
345
  version_requirements: !ruby/object:Gem::Requirement
360
346
  requirements:
361
- - - ! '>='
347
+ - - ~>
362
348
  - !ruby/object:Gem::Version
363
- version: '0'
349
+ version: 1.1.0
364
350
  - !ruby/object:Gem::Dependency
365
351
  name: aruba
366
352
  requirement: !ruby/object:Gem::Requirement
367
353
  requirements:
368
- - - ! '>='
354
+ - - ~>
369
355
  - !ruby/object:Gem::Version
370
- version: '0'
356
+ version: 0.6.1
371
357
  type: :development
372
358
  prerelease: false
373
359
  version_requirements: !ruby/object:Gem::Requirement
374
360
  requirements:
375
- - - ! '>='
361
+ - - ~>
376
362
  - !ruby/object:Gem::Version
377
- version: '0'
363
+ version: 0.6.1
378
364
  - !ruby/object:Gem::Dependency
379
365
  name: rubocop
380
366
  requirement: !ruby/object:Gem::Requirement
381
367
  requirements:
382
- - - ! '>='
368
+ - - ~>
383
369
  - !ruby/object:Gem::Version
384
- version: '0'
370
+ version: 0.40.0
385
371
  type: :development
386
372
  prerelease: false
387
373
  version_requirements: !ruby/object:Gem::Requirement
388
374
  requirements:
389
- - - ! '>='
375
+ - - ~>
390
376
  - !ruby/object:Gem::Version
391
- version: '0'
377
+ version: 0.40.0
392
378
  - !ruby/object:Gem::Dependency
393
- name: haml-lint
379
+ name: haml_lint
394
380
  requirement: !ruby/object:Gem::Requirement
395
381
  requirements:
396
382
  - - ~>
397
383
  - !ruby/object:Gem::Version
398
- version: 0.10.0
384
+ version: 0.17.1
399
385
  type: :development
400
386
  prerelease: false
401
387
  version_requirements: !ruby/object:Gem::Requirement
402
388
  requirements:
403
389
  - - ~>
404
390
  - !ruby/object:Gem::Version
405
- version: 0.10.0
391
+ version: 0.17.1
406
392
  - !ruby/object:Gem::Dependency
407
393
  name: jslint_on_rails
408
394
  requirement: !ruby/object:Gem::Requirement
@@ -418,31 +404,31 @@ dependencies:
418
404
  - !ruby/object:Gem::Version
419
405
  version: 1.1.1
420
406
  - !ruby/object:Gem::Dependency
421
- name: coveralls
407
+ name: shotgun
422
408
  requirement: !ruby/object:Gem::Requirement
423
409
  requirements:
424
- - - ! '>='
410
+ - - ~>
425
411
  - !ruby/object:Gem::Version
426
- version: '0'
412
+ version: 0.9.1
427
413
  type: :development
428
414
  prerelease: false
429
415
  version_requirements: !ruby/object:Gem::Requirement
430
416
  requirements:
431
- - - ! '>='
417
+ - - ~>
432
418
  - !ruby/object:Gem::Version
433
- version: '0'
419
+ version: 0.9.1
434
420
  - !ruby/object:Gem::Dependency
435
- name: shotgun
421
+ name: codeclimate-test-reporter
436
422
  requirement: !ruby/object:Gem::Requirement
437
423
  requirements:
438
- - - ! '>='
424
+ - - '>='
439
425
  - !ruby/object:Gem::Version
440
426
  version: '0'
441
427
  type: :development
442
428
  prerelease: false
443
429
  version_requirements: !ruby/object:Gem::Requirement
444
430
  requirements:
445
- - - ! '>='
431
+ - - '>='
446
432
  - !ruby/object:Gem::Version
447
433
  version: '0'
448
434
  description: Open-source Dropbox using Ruby and Git.
@@ -454,6 +440,7 @@ executables:
454
440
  extensions: []
455
441
  extra_rdoc_files: []
456
442
  files:
443
+ - .codeclimate.yml
457
444
  - .gitignore
458
445
  - .haml-lint.yml
459
446
  - .jslint.yml
@@ -471,6 +458,8 @@ files:
471
458
  - lib/gitdocs/browser_app.rb
472
459
  - lib/gitdocs/cli.rb
473
460
  - lib/gitdocs/configuration.rb
461
+ - lib/gitdocs/git_notifier.rb
462
+ - lib/gitdocs/initializer.rb
474
463
  - lib/gitdocs/manager.rb
475
464
  - lib/gitdocs/migration/001_create_shares.rb
476
465
  - lib/gitdocs/migration/002_add_remote_branch.rb
@@ -530,11 +519,12 @@ files:
530
519
  - lib/gitdocs/public/js/util.js
531
520
  - lib/gitdocs/rendering_helper.rb
532
521
  - lib/gitdocs/repository.rb
522
+ - lib/gitdocs/repository/committer.rb
533
523
  - lib/gitdocs/repository/path.rb
534
- - lib/gitdocs/runner.rb
535
524
  - lib/gitdocs/search.rb
536
- - lib/gitdocs/server.rb
537
525
  - lib/gitdocs/settings_app.rb
526
+ - lib/gitdocs/share.rb
527
+ - lib/gitdocs/synchronizer.rb
538
528
  - lib/gitdocs/version.rb
539
529
  - lib/gitdocs/views/_ace_scripts.erb
540
530
  - lib/gitdocs/views/_header.haml
@@ -548,17 +538,25 @@ files:
548
538
  - lib/gitdocs/views/settings.haml
549
539
  - lib/img/icon.png
550
540
  - test/.rubocop.yml
551
- - test/integration/browse_test.rb
552
- - test/integration/full_sync_test.rb
553
- - test/integration/share_management_test.rb
554
- - test/integration/status_test.rb
541
+ - test/integration/cli/full_sync_test.rb
542
+ - test/integration/cli/share_management_test.rb
543
+ - test/integration/cli/status_test.rb
555
544
  - test/integration/test_helper.rb
545
+ - test/integration/web/browse_test.rb
546
+ - test/integration/web/share_management_test.rb
547
+ - test/support/git_factory.rb
548
+ - test/unit/browser_app_test.rb
556
549
  - test/unit/configuration_test.rb
550
+ - test/unit/git_notifier_test.rb
551
+ - test/unit/gitdocs_test.rb
552
+ - test/unit/manager_test.rb
557
553
  - test/unit/notifier_test.rb
554
+ - test/unit/repository_committer_test.rb
558
555
  - test/unit/repository_path_test.rb
559
556
  - test/unit/repository_test.rb
560
- - test/unit/runner_test.rb
561
557
  - test/unit/search_test.rb
558
+ - test/unit/settings_app_test.rb
559
+ - test/unit/share_test.rb
562
560
  - test/unit/test_helper.rb
563
561
  homepage: https://github.com/nesquena/gitdocs
564
562
  licenses:
@@ -570,30 +568,38 @@ require_paths:
570
568
  - lib
571
569
  required_ruby_version: !ruby/object:Gem::Requirement
572
570
  requirements:
573
- - - ! '>='
571
+ - - '>='
574
572
  - !ruby/object:Gem::Version
575
573
  version: '1.9'
576
574
  required_rubygems_version: !ruby/object:Gem::Requirement
577
575
  requirements:
578
- - - ! '>='
576
+ - - '>='
579
577
  - !ruby/object:Gem::Version
580
578
  version: '0'
581
579
  requirements: []
582
580
  rubyforge_project: gitdocs
583
- rubygems_version: 2.0.7
581
+ rubygems_version: 2.4.8
584
582
  signing_key:
585
583
  specification_version: 4
586
584
  summary: Open-source Dropbox using Ruby and Git.
587
585
  test_files:
588
- - test/integration/browse_test.rb
589
- - test/integration/full_sync_test.rb
590
- - test/integration/share_management_test.rb
591
- - test/integration/status_test.rb
586
+ - test/integration/cli/full_sync_test.rb
587
+ - test/integration/cli/share_management_test.rb
588
+ - test/integration/cli/status_test.rb
592
589
  - test/integration/test_helper.rb
590
+ - test/integration/web/browse_test.rb
591
+ - test/integration/web/share_management_test.rb
592
+ - test/support/git_factory.rb
593
+ - test/unit/browser_app_test.rb
593
594
  - test/unit/configuration_test.rb
595
+ - test/unit/git_notifier_test.rb
596
+ - test/unit/gitdocs_test.rb
597
+ - test/unit/manager_test.rb
594
598
  - test/unit/notifier_test.rb
599
+ - test/unit/repository_committer_test.rb
595
600
  - test/unit/repository_path_test.rb
596
601
  - test/unit/repository_test.rb
597
- - test/unit/runner_test.rb
598
602
  - test/unit/search_test.rb
603
+ - test/unit/settings_app_test.rb
604
+ - test/unit/share_test.rb
599
605
  - test/unit/test_helper.rb