mongo_browser 0.1.3 → 0.2.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +3 -3
  3. data/README.md +1 -25
  4. data/Rakefile +0 -1
  5. data/app/assets/images/background.png +0 -0
  6. data/app/assets/javascripts/app/controllers/alerts.js.coffee +12 -0
  7. data/app/assets/javascripts/app/controllers/breadcrumbs.js.coffee +25 -0
  8. data/app/assets/javascripts/app/controllers/collections.js.coffee +40 -0
  9. data/app/assets/javascripts/app/controllers/databases.js.coffee +39 -0
  10. data/app/assets/javascripts/app/controllers/documents.js.coffee +49 -0
  11. data/app/assets/javascripts/app/controllers/main.js.coffee +10 -0
  12. data/app/assets/javascripts/app/controllers/server_info.js.coffee +14 -0
  13. data/app/assets/javascripts/app/controllers.js.coffee +2 -0
  14. data/app/assets/javascripts/app/directives.js.coffee +20 -0
  15. data/app/assets/javascripts/app/filters.js.coffee +48 -0
  16. data/app/assets/javascripts/app/modules/dialogs.js.coffee +29 -0
  17. data/app/assets/javascripts/app/modules/pager.js.coffee +87 -0
  18. data/app/assets/javascripts/app/modules/table_filter.js.coffee +27 -0
  19. data/app/assets/javascripts/app/resources.js.coffee +22 -0
  20. data/app/assets/javascripts/app/services.js.coffee +36 -0
  21. data/app/assets/javascripts/app.js.coffee +8 -0
  22. data/app/assets/javascripts/application.js.coffee +35 -6
  23. data/app/assets/javascripts/templates/.gitkeep +0 -0
  24. data/app/assets/javascripts/templates.js.coffee +1 -0
  25. data/app/assets/javascripts/vendor.js.coffee +5 -0
  26. data/app/assets/stylesheets/application.css.scss +46 -3
  27. data/app/assets/templates/collections.html +53 -0
  28. data/app/assets/templates/databases.html +32 -0
  29. data/app/assets/templates/documents.html +45 -0
  30. data/app/assets/templates/pager.html +13 -0
  31. data/app/{views/server_info.erb → assets/templates/server_info.html} +5 -7
  32. data/app/assets/templates/table_filter.html +10 -0
  33. data/bin/mongo_browser +8 -45
  34. data/config-e2e.ru +20 -0
  35. data/grunt.js +36 -0
  36. data/lib/mongo_browser/application.rb +143 -64
  37. data/lib/mongo_browser/middleware/sprockets_base.rb +11 -0
  38. data/lib/mongo_browser/middleware/sprockets_sinatra.rb +3 -7
  39. data/lib/mongo_browser/middleware/sprockets_specs.rb +18 -0
  40. data/lib/mongo_browser/models/collection.rb +67 -0
  41. data/lib/mongo_browser/models/database.rb +52 -0
  42. data/lib/mongo_browser/models/document.rb +17 -0
  43. data/lib/mongo_browser/models/pager.rb +30 -0
  44. data/lib/mongo_browser/models/server.rb +51 -0
  45. data/lib/mongo_browser/version.rb +1 -1
  46. data/lib/mongo_browser.rb +10 -5
  47. data/mongo_browser.gemspec +4 -11
  48. data/public/index.html +47 -0
  49. data/script/ci_all +21 -0
  50. data/script/ci_e2e +11 -0
  51. data/script/ci_javascripts +4 -0
  52. data/script/ci_rspec +3 -0
  53. data/spec/features/collections_list_spec.rb +6 -49
  54. data/spec/features/documents_list_spec.rb +15 -14
  55. data/spec/features/server_info_spec.rb +3 -3
  56. data/spec/javascripts/app/controllers/alerts_spec.js.coffee +36 -0
  57. data/spec/javascripts/app/controllers/breadcrumbs_spec.js.coffee +28 -0
  58. data/spec/javascripts/app/controllers/collections_spec.js.coffee +78 -0
  59. data/spec/javascripts/app/controllers/databases_spec.js.coffee +55 -0
  60. data/spec/javascripts/app/controllers/documents_spec.js.coffee +62 -0
  61. data/spec/javascripts/app/controllers/main_spec.js.coffee +20 -0
  62. data/spec/javascripts/app/controllers/server_info_spec.js.coffee +21 -0
  63. data/spec/javascripts/app/directives_spec.js.coffee +58 -0
  64. data/spec/javascripts/app/filters_spec.js.coffee +99 -0
  65. data/spec/javascripts/app/modules/dialogs_spec.js.coffee +51 -0
  66. data/spec/javascripts/app/modules/pager_spec.js.coffee +104 -0
  67. data/spec/javascripts/app/modules/table_filter_spec.js.coffee +76 -0
  68. data/spec/javascripts/app/services_spec.js.coffee +83 -0
  69. data/spec/javascripts/config/testacular-e2e.conf.js +19 -0
  70. data/spec/javascripts/config/testacular.conf.js +43 -0
  71. data/spec/javascripts/e2e/collections_scenario.js.coffee +49 -0
  72. data/spec/javascripts/e2e/databases_scenario.js.coffee +74 -0
  73. data/spec/javascripts/e2e/documents_scenario.js.coffee +18 -0
  74. data/spec/javascripts/e2e/server_info_scenario.js.coffee +12 -0
  75. data/spec/javascripts/helpers/matchers.js.coffee +5 -0
  76. data/spec/javascripts/helpers/mocks.js.coffee +7 -0
  77. data/spec/javascripts/helpers_e2e/app_element.js.coffee +6 -0
  78. data/spec/javascripts/lib/angular-mocks.js +1740 -0
  79. data/spec/javascripts/lib/angular-scenario.js +26147 -0
  80. data/spec/javascripts/lib/jasmine-html.js +681 -0
  81. data/spec/javascripts/lib/jasmine.css +82 -0
  82. data/spec/javascripts/lib/jasmine.js +2600 -0
  83. data/spec/javascripts/runner.html +54 -0
  84. data/spec/javascripts/runner_e2e.html +10 -0
  85. data/spec/javascripts/spec.js.coffee +2 -0
  86. data/spec/javascripts/spec_e2e.js.coffee +2 -0
  87. data/spec/lib/models/collection_spec.rb +80 -0
  88. data/spec/lib/models/database_spec.rb +75 -0
  89. data/spec/lib/models/document_spec.rb +17 -0
  90. data/spec/lib/models/pager_spec.rb +64 -0
  91. data/spec/lib/models/server_spec.rb +76 -0
  92. data/spec/lib/mongo_browser_spec.rb +1 -1
  93. data/spec/spec_helper.rb +2 -19
  94. data/spec/support/feature_example_group.rb +8 -3
  95. data/spec/support/fixtures/databases.json +8 -0
  96. data/spec/support/fixtures.rb +20 -3
  97. data/spec/support/matchers/have_flash_message.rb +1 -1
  98. data/spec/support/mongod.rb +37 -21
  99. data/spec/support/mongodb.conf +47 -0
  100. data/vendor/assets/javascripts/angular/angular-bootstrap.js +166 -0
  101. data/vendor/assets/javascripts/angular/angular-resource.js +435 -0
  102. data/vendor/assets/javascripts/angular/angular-sanitize.js +535 -0
  103. data/vendor/assets/javascripts/angular/angular.js +14531 -0
  104. data/vendor/assets/javascripts/underscore.js +1200 -0
  105. metadata +136 -148
  106. data/app/assets/javascripts/app/table_filter.js.coffee +0 -50
  107. data/app/assets/javascripts/ujs.js.coffee +0 -23
  108. data/app/views/collections/index.erb +0 -59
  109. data/app/views/databases/index.erb +0 -29
  110. data/app/views/documents/index.erb +0 -61
  111. data/app/views/layout/_flash_messages.erb +0 -10
  112. data/app/views/layout/_navbar.erb +0 -22
  113. data/app/views/layout.erb +0 -20
  114. data/app/views/shared/_filter.erb +0 -14
  115. data/features/mongo_browser.feature +0 -18
  116. data/features/step_definitions/mongo_browser_steps.rb +0 -1
  117. data/features/support/env.rb +0 -18
  118. data/spec/features/databases_list_spec.rb +0 -65
@@ -1,22 +0,0 @@
1
- <div class="navbar-inner">
2
- <div class="container">
3
- <a class="brand" href="/">MongoBrowser</a>
4
- <div class="nav-collapse collapse">
5
- <% if params[:db_name] %>
6
- <ul class="nav breadcrumbs">
7
- <% unless params[:collection_name] %>
8
- <li><a href="#"><%= params[:db_name] %></a></li>
9
- <% else %>
10
- <li><a href="/databases/<%= params[:db_name] %>"><%= params[:db_name] %></a></li>
11
- <li><a href="#"><%= params[:collection_name] %></a></li>
12
- <% end %>
13
- </ul>
14
- <% end %>
15
-
16
- <ul class="nav pull-right">
17
- <li><a href="/server_info">Server Info</a></li>
18
- <li><a>v. <%= MongoBrowser::VERSION %></a></li>
19
- </ul>
20
- </div>
21
- </div>
22
- </div>
data/app/views/layout.erb DELETED
@@ -1,20 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Mongo Browser</title>
5
- <link href="/assets/application.css" rel="stylesheet" media="screen">
6
- </head>
7
- <body>
8
- <div class="navbar navbar navbar-fixed-top">
9
- <%= erb :"layout/_navbar" %>
10
- </div>
11
-
12
- <div class="container-fluid">
13
- <%= erb :"layout/_flash_messages" %>
14
- <%= yield %>
15
- </div>
16
-
17
- <script src="/assets/vendor.js"></script>
18
- <script src="/assets/application.js"></script>
19
- </body>
20
- </html>
@@ -1,14 +0,0 @@
1
- <form class="filter" data-filter-for="<%= filter_for %>">
2
- <div class="input-append">
3
- <input type="text" value="" class="span3" placeholder="<%= placeholder %>">
4
-
5
- <button type="button" class="btn clear">
6
- <i class="icon-remove-circle"></i>Clear
7
- </button>
8
- </div>
9
- <span class="help-block">Press ESC to clear the filter</span>
10
- </form>
11
-
12
- <div class="filter alert" style="display: none;">
13
- Nothing has been found.
14
- </div>
@@ -1,18 +0,0 @@
1
- Feature: My bootstrapped app kinda works
2
- In order to get going on coding my awesome app
3
- I want to have aruba and cucumber setup
4
- So I don't have to do it myself
5
-
6
- Scenario: App just runs
7
- When I get help for "mongo_browser"
8
- Then the exit status should be 0
9
- And the banner should be present
10
- And the banner should document that this app takes options
11
- And the following options should be documented:
12
- | --version |
13
- | --port |
14
- | --mongodb-host |
15
- | --mongodb-port |
16
- | --demonize |
17
- | --log-level |
18
- And the banner should document that this app takes no arguments
@@ -1 +0,0 @@
1
- # Put your step definitions here
@@ -1,18 +0,0 @@
1
- require 'aruba/cucumber'
2
- require 'methadone/cucumber'
3
-
4
- ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
5
- LIB_DIR = File.join(File.expand_path(File.dirname(__FILE__)),'..','..','lib')
6
-
7
- Before do
8
- @aruba_timeout_seconds = 10
9
-
10
- # Using "announce" causes massive warnings on 1.9.2
11
- @puts = true
12
- @original_rubylib = ENV['RUBYLIB']
13
- ENV['RUBYLIB'] = LIB_DIR + File::PATH_SEPARATOR + ENV['RUBYLIB'].to_s
14
- end
15
-
16
- After do
17
- ENV['RUBYLIB'] = @original_rubylib
18
- end
@@ -1,65 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Databases list", type: :request do
4
- before { visit "/" }
5
-
6
- it "hides the breadcrumb" do
7
- expect(page).not_to have_css(".breadcrumb")
8
- end
9
-
10
- it "has a valid title" do
11
- within "h2" do
12
- expect(page).to have_content("localhost databases")
13
- end
14
- end
15
-
16
- it "displays list with available databases" do
17
-
18
- within "table" do
19
- expect(page).to have_link("first_database")
20
- expect(page).to have_link("second_database")
21
- end
22
- end
23
-
24
- describe "filtering", js: true do
25
- it "filters databases by name" do
26
- fill_in_filter("first")
27
-
28
- within "table.databases" do
29
- expect(page).to have_link("first_database")
30
- expect(page).to_not have_link("second_database")
31
- end
32
- end
33
-
34
- it "displays a notification when nothing has been found" do
35
- fill_in_filter("third")
36
- should_hide_the_table_and_display_a_notification
37
- end
38
- end
39
-
40
- describe "click on delete database button", js: true do
41
- it "deletes a database" do
42
- click_delete_button_for("second_database")
43
- confirm_dialog
44
-
45
- expect(page).to have_flash_message("Database second_database has been deleted.")
46
-
47
- within "table.databases" do
48
- expect(page).to have_link("first_database")
49
- expect(page).to_not have_link("second_database")
50
- end
51
-
52
- click_delete_button_for("first_database")
53
- confirm_dialog
54
-
55
- expect(page).to have_flash_message("Database first_database has been deleted.")
56
-
57
- should_hide_the_table_and_display_a_notification
58
- end
59
-
60
- def click_delete_button_for(database_name)
61
- database_row = find(:xpath, %Q{//table//tr//*[contains(text(), "#{database_name}")]/../..})
62
- within(database_row) { click_link "Delete" }
63
- end
64
- end
65
- end