mongo_browser 0.2.0.rc2 → 0.2.5

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 (141) hide show
  1. data/.gitignore +3 -1
  2. data/.rspec +1 -1
  3. data/.travis.yml +6 -1
  4. data/CHANGELOG.md +15 -0
  5. data/{grunt.js → Gruntfile.js} +10 -8
  6. data/Procfile +1 -0
  7. data/README.md +44 -2
  8. data/Rakefile +1 -12
  9. data/app/assets/images/ajax-loader.gif +0 -0
  10. data/app/assets/javascripts/app/controllers/{breadcrumbs.js.coffee → breadcrumbs_controller.js.coffee} +4 -7
  11. data/app/assets/javascripts/app/controllers/collections/index_controller.js.coffee +38 -0
  12. data/app/assets/javascripts/app/controllers/collections/stats_controller.js.coffee +17 -0
  13. data/app/assets/javascripts/app/controllers/{databases.js.coffee → databases/index_controller.js.coffee} +11 -15
  14. data/app/assets/javascripts/app/controllers/databases/stats_controller.js.coffee +15 -0
  15. data/app/assets/javascripts/app/controllers/documents/index_controller.js.coffee +54 -0
  16. data/app/assets/javascripts/app/controllers/documents/show_controller.js.coffee +38 -0
  17. data/app/assets/javascripts/app/controllers/main_controller.js.coffee +15 -0
  18. data/app/assets/javascripts/app/controllers/servers/show_controller.js.coffee +17 -0
  19. data/app/assets/javascripts/app/directives.js.coffee +23 -0
  20. data/app/assets/javascripts/app/filters.js.coffee +14 -1
  21. data/app/assets/javascripts/app/modules/alerts.js.coffee +58 -0
  22. data/app/assets/javascripts/app/modules/pager.js.coffee +2 -2
  23. data/app/assets/javascripts/app/modules/spinner.js.coffee +29 -0
  24. data/app/assets/javascripts/app/modules/table_filter.js.coffee +4 -4
  25. data/app/assets/javascripts/app/resources.js.coffee +14 -8
  26. data/app/assets/javascripts/app/services.js.coffee +11 -33
  27. data/app/assets/javascripts/application.js.coffee +62 -34
  28. data/app/assets/javascripts/application.test.js.coffee +5 -0
  29. data/app/assets/javascripts/compiled_templates.js.coffee +1 -0
  30. data/app/assets/javascripts/vendor.js.coffee +0 -1
  31. data/app/assets/stylesheets/application.css.scss +36 -18
  32. data/{public/index.html → app/views/index.erb} +8 -8
  33. data/bin/mongo_browser +2 -13
  34. data/config.ru +3 -1
  35. data/lib/mongo_browser.rb +1 -0
  36. data/lib/mongo_browser/api.rb +11 -0
  37. data/lib/mongo_browser/api/collections.rb +34 -0
  38. data/lib/mongo_browser/api/databases.rb +32 -0
  39. data/lib/mongo_browser/api/documents.rb +37 -0
  40. data/lib/mongo_browser/api/mongo.rb +41 -0
  41. data/lib/mongo_browser/application.rb +8 -174
  42. data/lib/mongo_browser/application/development.rb +32 -0
  43. data/lib/mongo_browser/cli.rb +48 -0
  44. data/lib/mongo_browser/entities.rb +43 -0
  45. data/lib/mongo_browser/models/collection.rb +7 -12
  46. data/lib/mongo_browser/models/document.rb +5 -1
  47. data/lib/mongo_browser/models/pager.rb +22 -9
  48. data/lib/mongo_browser/version.rb +1 -1
  49. data/mongo_browser.gemspec +22 -15
  50. data/package.json +30 -0
  51. data/public/ng/templates/alerts.html +6 -0
  52. data/public/ng/templates/collections/index.html +39 -0
  53. data/public/ng/templates/collections/stats.html +18 -0
  54. data/public/ng/templates/databases/index.html +35 -0
  55. data/public/ng/templates/databases/stats.html +18 -0
  56. data/public/ng/templates/documents/index.html +40 -0
  57. data/public/ng/templates/documents/show.html +17 -0
  58. data/{app/assets → public/ng}/templates/pager.html +0 -0
  59. data/{app/assets/templates/server_info.html → public/ng/templates/server/show.html} +1 -1
  60. data/{app/assets → public/ng}/templates/table_filter.html +0 -0
  61. data/script/ci_all +5 -1
  62. data/script/ci_e2e +5 -2
  63. data/script/ci_javascripts +1 -1
  64. data/script/ci_rspec +1 -1
  65. data/spec/javascripts/app/controllers/{breadcrumbs_spec.js.coffee → breadcrumbs_controller_spec.js.coffee} +1 -1
  66. data/spec/javascripts/app/controllers/collections/index_controller_spec.js.coffee +95 -0
  67. data/spec/javascripts/app/controllers/collections/stats_controller_spec.js.coffee +34 -0
  68. data/spec/javascripts/app/controllers/databases/index_controller_spec.js.coffee +93 -0
  69. data/spec/javascripts/app/controllers/databases/stats_controller_spec.js.coffee +30 -0
  70. data/spec/javascripts/app/controllers/documents/index_controller_spec.js.coffee +108 -0
  71. data/spec/javascripts/app/controllers/documents/show_controller_spec.js.coffee +94 -0
  72. data/spec/javascripts/app/controllers/{main_spec.js.coffee → main_controller_spec.js.coffee} +2 -2
  73. data/spec/javascripts/app/controllers/{server_info_spec.js.coffee → server/show_controller_spec.js.coffee} +5 -6
  74. data/spec/javascripts/app/directives_spec.js.coffee +108 -24
  75. data/spec/javascripts/app/filters_spec.js.coffee +31 -5
  76. data/spec/javascripts/app/modules/alerts_spec.js.coffee +138 -0
  77. data/spec/javascripts/app/modules/dialogs_spec.js.coffee +1 -2
  78. data/spec/javascripts/app/modules/pager_spec.js.coffee +0 -1
  79. data/spec/javascripts/app/modules/spinner_spec.js.coffee +65 -0
  80. data/spec/javascripts/app/modules/table_filter_spec.js.coffee +9 -9
  81. data/spec/javascripts/app/resources_spec.js.coffee +99 -0
  82. data/spec/javascripts/app/services_spec.js.coffee +31 -71
  83. data/spec/javascripts/config/{testacular-e2e.conf.js → karma-e2e.conf.js} +1 -1
  84. data/spec/javascripts/config/{testacular.conf.js → karma.conf.js} +2 -3
  85. data/spec/javascripts/e2e/collection_stats_scenario.js.coffee +12 -0
  86. data/spec/javascripts/e2e/collections_scenario.js.coffee +59 -20
  87. data/spec/javascripts/e2e/database_stats_scenario.js.coffee +11 -0
  88. data/spec/javascripts/e2e/databases_scenario.js.coffee +37 -36
  89. data/spec/javascripts/e2e/document_show_scenario.js.coffee +31 -0
  90. data/spec/javascripts/e2e/documents_pagination_scenario.js.coffee +33 -0
  91. data/spec/javascripts/e2e/documents_scenario.js.coffee +43 -4
  92. data/spec/javascripts/e2e/server_info_scenario.js.coffee +8 -2
  93. data/spec/javascripts/helpers/mocks.js.coffee +2 -0
  94. data/spec/javascripts/helpers_e2e/dsl.js.coffee +20 -0
  95. data/spec/javascripts/lib/angular-mocks.js +64 -16
  96. data/spec/javascripts/lib/angular-scenario.js +724 -561
  97. data/spec/javascripts/runner.html +5 -5
  98. data/spec/lib/api/collections_spec.rb +62 -0
  99. data/spec/lib/api/databases_spec.rb +58 -0
  100. data/spec/lib/api/documents_spec.rb +135 -0
  101. data/spec/lib/api/mongo_spec.rb +27 -0
  102. data/spec/lib/cli_spec.rb +19 -0
  103. data/spec/lib/entities_spec.rb +39 -0
  104. data/spec/lib/models/collection_spec.rb +16 -10
  105. data/spec/lib/models/database_spec.rb +4 -4
  106. data/spec/lib/models/document_spec.rb +5 -5
  107. data/spec/lib/models/pager_spec.rb +20 -11
  108. data/spec/spec_helper.rb +7 -15
  109. data/spec/support/api_example_group.rb +45 -0
  110. data/spec/support/fixtures.rb +10 -6
  111. data/spec/support/matchers/expose.rb +18 -0
  112. data/vendor/assets/javascripts/angular/angular-bootstrap.js +1 -1
  113. data/vendor/assets/javascripts/angular/angular-resource.js +78 -56
  114. data/vendor/assets/javascripts/angular/angular-sanitize.js +3 -1
  115. data/vendor/assets/javascripts/angular/angular.js +720 -404
  116. metadata +323 -183
  117. data/app/assets/javascripts/app.js.coffee +0 -8
  118. data/app/assets/javascripts/app/controllers.js.coffee +0 -2
  119. data/app/assets/javascripts/app/controllers/alerts.js.coffee +0 -12
  120. data/app/assets/javascripts/app/controllers/collections.js.coffee +0 -40
  121. data/app/assets/javascripts/app/controllers/documents.js.coffee +0 -49
  122. data/app/assets/javascripts/app/controllers/main.js.coffee +0 -10
  123. data/app/assets/javascripts/app/controllers/server_info.js.coffee +0 -14
  124. data/app/assets/javascripts/templates.js.coffee +0 -1
  125. data/app/assets/javascripts/templates/.gitkeep +0 -0
  126. data/app/assets/templates/collections.html +0 -53
  127. data/app/assets/templates/databases.html +0 -32
  128. data/app/assets/templates/documents.html +0 -45
  129. data/config-e2e.ru +0 -20
  130. data/spec/features/collections_list_spec.rb +0 -64
  131. data/spec/features/documents_list_spec.rb +0 -139
  132. data/spec/features/server_info_spec.rb +0 -23
  133. data/spec/javascripts/app/controllers/alerts_spec.js.coffee +0 -36
  134. data/spec/javascripts/app/controllers/collections_spec.js.coffee +0 -78
  135. data/spec/javascripts/app/controllers/databases_spec.js.coffee +0 -55
  136. data/spec/javascripts/app/controllers/documents_spec.js.coffee +0 -62
  137. data/spec/javascripts/helpers_e2e/app_element.js.coffee +0 -6
  138. data/spec/support/feature_example_group.rb +0 -53
  139. data/spec/support/matchers/have_flash_message.rb +0 -16
  140. data/spec/support/mongod.rb +0 -91
  141. data/spec/support/mongodb.conf +0 -47
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Server info", type: :request, js: true do
4
- before do
5
- visit "/"
6
-
7
- within(".navbar") { click_link "Server Info" }
8
- end
9
-
10
- xit "has a valid title" do
11
- within "h2" do
12
- expect(page).to have_content("server info")
13
- end
14
- end
15
-
16
- xit "displays information about the server" do
17
- within "table" do
18
- %w(version gitVersion sysInfo versionArray bits debug maxBsonObjectSize ok).each do |field|
19
- expect(page).to have_content(field)
20
- end
21
- end
22
- end
23
- end
@@ -1,36 +0,0 @@
1
- describe "alerts", ->
2
- beforeEach module("mb.controllers")
3
-
4
- $scope = null
5
- alerts = null
6
-
7
- beforeEach inject ($injector, $rootScope, $controller) ->
8
- $scope = $rootScope.$new()
9
-
10
- alerts = $injector.get("alerts")
11
-
12
- $controller "alerts",
13
- $scope: $scope,
14
- alerts: alerts
15
-
16
- it "assings flash messages", ->
17
- expect($scope.alertMessages).toBeDefined()
18
- expect($scope.alertMessages).toEqual([])
19
-
20
- alerts.info("Test message.")
21
- expect($scope.alertMessages).toContain(id: 1, type: "info", text: "Test message.")
22
-
23
- describe "#disposeAlert", ->
24
- it "disposes an alert at the given index", ->
25
- # Given
26
- alerts.info("Information..")
27
- alerts.error("Error..")
28
- spyOn(alerts, "dispose").andCallThrough()
29
-
30
- # When
31
- $scope.disposeAlert(2)
32
-
33
- # Then
34
- expect(alerts.dispose).toHaveBeenCalledWith(2)
35
- expect($scope.alertMessages).toContain(id: 1, type: "info", text: "Information..")
36
- expect($scope.alertMessages).not.toContain(id: 2, type: "error", text: "Error..")
@@ -1,78 +0,0 @@
1
- describe "collections", ->
2
- beforeEach module("mb.controllers")
3
- beforeEach module("mb.dialogs")
4
- beforeEach module("mocks")
5
-
6
- $scope = null
7
- $httpBackend = null
8
- alerts = null
9
-
10
- beforeEach inject ($injector, $rootScope, $controller) ->
11
- alerts = $injector.get("alerts")
12
-
13
- $routeParams = $injector.get("$routeParams")
14
- $routeParams.dbName = "test_database"
15
-
16
- $httpBackend = $injector.get("$httpBackend")
17
- $httpBackend.when("GET", "/api/databases/test_database/collections.json")
18
- .respond([])
19
- $httpBackend.when("GET", "/api/databases/test_database/stats.json")
20
- .respond({})
21
-
22
- $scope = $rootScope.$new()
23
- $controller "collections",
24
- $scope: $scope
25
-
26
- $httpBackend.flush()
27
-
28
- afterEach ->
29
- $httpBackend.verifyNoOutstandingExpectation()
30
- $httpBackend.verifyNoOutstandingRequest()
31
-
32
- describe "#isLoading", ->
33
- it "returns true when the resouce it loading", ->
34
- $scope.loading = true
35
- expect($scope.isLoading()).toBeTruthy()
36
-
37
- it "otherwise returns false", ->
38
- $scope.loading = false
39
- expect($scope.isLoading()).toBeFalsy()
40
-
41
- # TODO refactor this spec
42
- describe "#delete", ->
43
- collection = null
44
-
45
- beforeEach ->
46
- collection = dbName: "test_database", name: "dummy-collection-id"
47
-
48
- it "shows a confirmation dialog", inject (dialogsHandler) ->
49
- spyOn(dialogsHandler, "confirm")
50
-
51
-
52
- $scope.delete(collection)
53
-
54
- expect(dialogsHandler.confirm).toHaveBeenCalledWith \
55
- "Deleting dummy-collection-id. Are you sure?",
56
- jasmine.any(Function)
57
-
58
- describe "when the dialog was confirmed", ->
59
- beforeEach inject (dialogsHandler) ->
60
- $httpBackend.when("DELETE", "/api/databases/test_database/collections.json?id=dummy-collection-id")
61
- .respond([])
62
-
63
- spyOn(alerts, "info")
64
- $scope.delete(collection)
65
- dialogsHandler.confirmed()
66
-
67
- it "sends a delete request", ->
68
- $httpBackend.flush()
69
-
70
- it "displays a flash message", ->
71
- $httpBackend.flush()
72
- expect(alerts.info).toHaveBeenCalledWith("Collection dummy-collection-id has been deleted.")
73
-
74
- describe "when the dialog was disposed", ->
75
- it "does nothing", inject (dialogsHandler) ->
76
- # When
77
- $scope.delete(name: "dummy-collection-id")
78
- dialogsHandler.disposed()
@@ -1,55 +0,0 @@
1
- describe "databases", ->
2
- beforeEach module("mb.controllers")
3
- beforeEach module("mb.dialogs")
4
- beforeEach module("mocks")
5
-
6
- $scope = null
7
- $httpBackend = null
8
- alerts = null
9
-
10
- beforeEach inject ($injector, $rootScope, $controller) ->
11
- alerts = $injector.get("alerts")
12
-
13
- $httpBackend = $injector.get("$httpBackend")
14
- $httpBackend.when("GET", "/api/databases.json").respond([])
15
-
16
- $scope = $rootScope.$new()
17
- $controller "databases",
18
- $scope: $scope
19
-
20
- $httpBackend.flush()
21
-
22
- afterEach ->
23
- $httpBackend.verifyNoOutstandingExpectation()
24
- $httpBackend.verifyNoOutstandingRequest()
25
-
26
- # TODO rewrite this spec
27
- describe "#delete", ->
28
- it "shows a confirmation dialog", inject (dialogsHandler) ->
29
- spyOn(dialogsHandler, "confirm")
30
- $scope.delete(name: "test_database_name")
31
- expect(dialogsHandler.confirm).toHaveBeenCalledWith \
32
- "Deleting test_database_name. Are you sure?",
33
- jasmine.any(Function)
34
-
35
- describe "when the dialog was confirmed", ->
36
- beforeEach inject (dialogsHandler) ->
37
- $httpBackend.when("DELETE", "/api/databases.json?id=test_database_name")
38
- .respond([])
39
-
40
- spyOn(alerts, "info")
41
- $scope.delete(name: "test_database_name")
42
- dialogsHandler.confirmed()
43
-
44
- it "sends a delete request", ->
45
- $httpBackend.flush()
46
-
47
- it "displays a flash message", ->
48
- $httpBackend.flush()
49
- expect(alerts.info).toHaveBeenCalledWith("Database test_database_name has been deleted.")
50
-
51
- describe "when the dialog was disposed", ->
52
- it "does nothing", inject (dialogsHandler) ->
53
- # When
54
- $scope.delete(name: "test_database_name")
55
- dialogsHandler.disposed()
@@ -1,62 +0,0 @@
1
- describe "documents", ->
2
- beforeEach module("mb.controllers")
3
- beforeEach module("mb.dialogs")
4
- beforeEach module("mocks")
5
-
6
- $scope = null
7
- $httpBackend = null
8
- alerts = null
9
-
10
- beforeEach inject ($injector, $rootScope, $controller) ->
11
- alerts = $injector.get("alerts")
12
-
13
- $routeParams = $injector.get("$routeParams")
14
- $routeParams.dbName = "test_database"
15
- $routeParams.collectionName = "test_collection"
16
-
17
- $httpBackend = $injector.get('$httpBackend')
18
- $httpBackend.when("GET", "/api/databases/test_database/collections/test_collection/documents.json?page=1")
19
- .respond([])
20
- $httpBackend.when("GET", "/api/databases/test_database/collections/test_collection/stats.json")
21
- .respond({})
22
-
23
- $scope = $rootScope.$new()
24
- $controller "documents",
25
- $scope: $scope
26
-
27
- $httpBackend.flush()
28
-
29
- afterEach ->
30
- $httpBackend.verifyNoOutstandingExpectation()
31
- $httpBackend.verifyNoOutstandingRequest()
32
-
33
- # TODO rewrite this spec
34
- describe "#delete", ->
35
- it "shows a confirmation dialog", inject (dialogsHandler) ->
36
- spyOn(dialogsHandler, "confirm")
37
- $scope.delete(id: "dummy-document-id")
38
- expect(dialogsHandler.confirm).toHaveBeenCalledWith \
39
- "Are you sure?",
40
- jasmine.any(Function)
41
-
42
- describe "when the dialog was confirmed", ->
43
- beforeEach inject (dialogsHandler) ->
44
- $httpBackend.when("DELETE", "/api/databases/test_database/collections/test_collection/documents.json?id=dummy-document-id")
45
- .respond([])
46
-
47
- spyOn(alerts, "info")
48
- $scope.delete(id: "dummy-document-id")
49
- dialogsHandler.confirmed()
50
-
51
- it "sends a delete request", ->
52
- $httpBackend.flush()
53
-
54
- it "displays a flash message", ->
55
- $httpBackend.flush()
56
- expect(alerts.info).toHaveBeenCalledWith("Document dummy-document-id has been deleted.")
57
-
58
- describe "when the dialog was disposed", ->
59
- it "does nothing", inject (dialogsHandler) ->
60
- # When
61
- $scope.delete(id: "dummy-document-id")
62
- dialogsHandler.disposed()
@@ -1,6 +0,0 @@
1
- # Access to iframe's jQuery, see: https://gist.github.com/1700488
2
- angular.scenario.dsl "appElement", ->
3
- (selector, fn) ->
4
- @addFutureAction "element " + selector, ($window, $document, done) ->
5
- fn.call this, $window.angular.element(selector)
6
- done()
@@ -1,53 +0,0 @@
1
- module FeatureExampleGroup
2
-
3
- def fill_in_filter(value)
4
- filter_input = find(%Q{form.filter input[type="text"]})
5
- filter_input.set(value)
6
- end
7
-
8
- def confirm_dialog(message = 'Are you sure?')
9
- begin
10
- wait_until { page.has_css?("div.bootbox.modal") }
11
- rescue Capybara::TimeoutError
12
- raise "Expected confirmation modal to be visible."
13
- end
14
-
15
- within "div.bootbox.modal" do
16
- page.should have_content(message)
17
- click_link "OK"
18
- end
19
-
20
- begin
21
- wait_until { page.has_no_css?("div.bootbox.modal") }
22
- rescue Capybara::TimeoutError
23
- raise "Expected confirmation modal to be disposed."
24
- end
25
- end
26
-
27
- def should_hide_the_table_and_display_a_notification
28
- expect(page).to_not have_css("table.databases")
29
- expect(page).to have_content("Nothing has been found.")
30
- end
31
-
32
- # Take a screenshot and html dump for the page
33
- def capture_page(file_name = Time.now.to_i.to_s)
34
- reports_path = File.expand_path("reports/capybara")
35
- FileUtils.mkdir_p(reports_path)
36
-
37
- file_path = File.join(reports_path, file_name)
38
-
39
- captured_files = []
40
-
41
- html_file = "#{file_path}.html"
42
- File.open(html_file, "w") { |f| f.write(page.body) }
43
- captured_files << html_file
44
-
45
- if example.metadata[:js]
46
- image_file = "#{file_path}.png"
47
- page.driver.render(image_file, full: true)
48
- captured_files << image_file
49
- end
50
-
51
- captured_files
52
- end
53
- end
@@ -1,16 +0,0 @@
1
- # Usage:
2
- #
3
- # describe "A feature" do
4
- # specify { page.should have_flash_message("foo") }
5
- # end
6
- RSpec::Matchers.define :have_flash_message do |message|
7
- match do
8
- within "aside#alerts" do
9
- page.should have_content(message)
10
- end
11
- end
12
-
13
- description do
14
- %Q{have the following flash message: "#{message.inspect}"}
15
- end
16
- end
@@ -1,91 +0,0 @@
1
- require "singleton"
2
-
3
- # Utility for run and manage test mongod instance.
4
- class Mongod
5
- include Singleton
6
-
7
- MONGODB_DBPATH = "/tmp/mongo_browser/db"
8
- # port for test mongod instance
9
- MONGODB_PORT = 27018
10
-
11
- attr_reader :pid
12
-
13
- # Start test mongod instance
14
- # * it cleans up the test server directory
15
- # * starts a daemon
16
- # * and wait until its fully responsive
17
- def start!
18
- return if running?
19
-
20
- FileUtils.rm_rf(MONGODB_DBPATH) if Dir.exist?(MONGODB_DBPATH)
21
- FileUtils.mkdir_p(MONGODB_DBPATH)
22
-
23
- @pid = Mongod.start
24
- wait_until_responsive
25
-
26
- yield MONGODB_PORT if block_given?
27
- end
28
-
29
- # Kills test mongod instance
30
- def shutdown!
31
- puts "shutdown! test mongod instance"
32
- return unless running?
33
-
34
- Process.kill('HUP', pid)
35
-
36
- @pid = nil
37
- end
38
-
39
- # Returns true is mongodb server is ready to use
40
- def responsive?
41
- Mongo::Connection.new(MongoBrowser::DEFAULT_MONGODB_HOST, MONGODB_PORT)
42
- true
43
- rescue Mongo::ConnectionFailure
44
- false
45
- end
46
-
47
- def running?
48
- not pid.nil?
49
- end
50
-
51
- private
52
-
53
- class << self
54
-
55
- # Check whether port for test mongod is available,
56
- def test_port_available?
57
- begin
58
- server = TCPServer.new(MongoBrowser::DEFAULT_MONGODB_HOST, MONGODB_PORT)
59
- true
60
- rescue
61
- false
62
- end
63
- ensure
64
- server.close if server
65
- end
66
-
67
- # Starts a core MongoDB test daemon.
68
- def start
69
- raise "port #{MONGODB_PORT} is not available" unless test_port_available?
70
-
71
- command = "mongod --config #{File.expand_path("spec/support/mongodb.conf")}"
72
- log_file = File.open(File.expand_path("log/test_mongod.log"), "w")
73
-
74
- Process.spawn(command, out: log_file)
75
- end
76
- end
77
-
78
- # Uses exponential back-off technique for waiting for the mongodb server
79
- def wait_until_responsive
80
- wait_time = 0.01
81
- start_time = Time.now
82
- timeout = 10
83
-
84
- until responsive?
85
- raise "Could not start mongod after #{timeout} seconds" if Time.now - start_time >= timeout
86
-
87
- sleep wait_time
88
- wait_time *= 2
89
- end
90
- end
91
- end
@@ -1,47 +0,0 @@
1
- # mongodb.conf
2
-
3
- # Where to store the data.
4
-
5
- # Note: if you run mongodb as a non-root user (recommended) you may
6
- # need to create and set permissions for this directory manually,
7
- # e.g., if the parent directory isn't mutable by the mongodb user.
8
- dbpath=/tmp/mongo_browser/db
9
-
10
- #where to log
11
- logpath=/tmp/mongo_browser/db.log
12
-
13
- logappend=true
14
-
15
- port = 27018
16
-
17
- # Disables write-ahead journaling
18
- nojournal = true
19
-
20
- # Turn on/off security. Off is currently the default
21
- noauth = true
22
- auth = true
23
-
24
- # Verbose logging output.
25
- verbose = true
26
-
27
- # Inspect all client data for validity on receipt (useful for
28
- # developing drivers)
29
- objcheck = true
30
-
31
- # Set oplogging level where n is
32
- # 0=off (default)
33
- # 1=W
34
- # 2=R
35
- # 3=both
36
- # 7=W+some reads
37
- diaglog = 3
38
-
39
- # Disable the HTTP interface (Defaults to localhost:28017).
40
- nohttpinterface = true
41
-
42
- # Turns off server-side scripting. This will result in greatly limited
43
- # functionality
44
- noscripting = true
45
-
46
- # Disable data file preallocation.
47
- #noprealloc = true