humongous 1.0.2 → 2.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 86cdb56ee13549a4165b264d87fc0bbd2b959b77
4
- data.tar.gz: 784d7b5e5edb6885c60a507ef08fdb9cd2bc9d88
2
+ SHA256:
3
+ metadata.gz: ad9369e3d213e9e01c3035211675e402dfe7c8bd1aee66c92e9ad9a59b5d2186
4
+ data.tar.gz: ab1c5141dfbb78f2a3c55c07726d95088937dbe0bf1826ab9590d8e11a818fe9
5
5
  SHA512:
6
- metadata.gz: 991ec178f1baf6c751c9f2a75076c71ca026b0b19bf61f212a02e52b8d9b9d6842aa477fcb8b1dd3ee6a38e75d4b6e2eeaf390536ed0c6931b9cb6e82d21e036
7
- data.tar.gz: c0bcf6c81e1d01ff92fad06671575e275a52a904b83d538553763820e51fdc48ed5280692d75dc4df72bdd1bc9c875c9203ec516e56034b5deeb0c2b25abd364
6
+ metadata.gz: c7320a9d915a2f69df8477817157280cb17ac92d4b2dc13fe5efea3e917eb5a9f4c006cf94ec28f81439e64b85eb2a1cba9d6a2ef77bcb0cd21c28a0e5fef379
7
+ data.tar.gz: aa9fdcf76e0312fb50f087ea92fcb2deeb0462de5f4ecdd8c5fe7b85269841ffc6d5b270cbfb52fa9dd0f8da9d67d4fb03ce21e7a45379cc86795c07b4fa0b5b
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2014 Bagwan Pankaj
1
+ Copyright (c) 2012-2016 Bagwan Pankaj
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.markdown CHANGED
@@ -4,12 +4,12 @@
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/humongous.png)](http://badge.fury.io/rb/humongous)
6
6
 
7
- _ _
8
- | | | |_ _ _ __ ___ ___ _ __ __ _ ___ _ _ ___
7
+ _ _
8
+ | | | |_ _ _ __ ___ ___ _ __ __ _ ___ _ _ ___
9
9
  | |_| | | | | '_ ` _ \ / _ \| '_ \ / _` |/ _ \| | | / __|
10
10
  | _ | |_| | | | | | | (_) | | | | (_| | (_) | |_| \__ \
11
11
  |_| |_|\__,_|_| |_| |_|\___/|_| |_|\__, |\___/ \__,_|___/
12
- |___/
12
+ |___/
13
13
 
14
14
 
15
15
 
@@ -75,10 +75,10 @@ There are lot of things and area to improve and develop. Since it in pre release
75
75
  * Example series
76
76
 
77
77
  ## Contributing to Humongous
78
-
78
+
79
79
  * Fork, branch, code, and then send me a pull request. :)
80
80
 
81
81
  ## Copyright
82
82
 
83
- Copyright (c) 2012-2014 [Bagwan Pankaj]. See LICENSE.txt for further details.
83
+ Copyright (c) 2012-2016 [Bagwan Pankaj]. See LICENSE.txt for further details.
84
84
 
@@ -4,7 +4,7 @@ module Humongous
4
4
 
5
5
  class Application < Sinatra::Base
6
6
  DEFAULT_OPTIONS = {
7
- :url => "localhost",
7
+ :url => "127.0.0.1",
8
8
  :port => "27017",
9
9
  :username => "",
10
10
  :password => ""
@@ -29,19 +29,19 @@ module Humongous
29
29
  autanticate!
30
30
  end
31
31
 
32
- error Mongo::ConnectionFailure do
32
+ error Mongo::Error::ConnectionCheckOutTimeout do
33
33
  halt 502, headers, "Humongous is unable to find MongoDB instance. Make sure that MongoDB is running."
34
34
  end
35
35
 
36
- error Mongo::OperationFailure do
36
+ error Mongo::Error::OperationFailure do
37
37
  halt 401, {'Content-Type' => 'text/javascript'}, { :errmsg => "Need to login", :ok => false }.to_json
38
38
  end
39
39
 
40
- error Mongo::InvalidNSName do
40
+ error Mongo::Error::InvalidDatabaseName do
41
41
  halt 502, headers, "Humongous is unable to find MongoDB instance. Make sure that MongoDB is running."
42
42
  end
43
43
 
44
- error Mongo::AuthenticationError do
44
+ error Mongo::Error::AuthError do
45
45
  halt 502, headers, "Humongous is unable to find MongoDB instance. Make sure that MongoDB is running."
46
46
  end
47
47
 
@@ -49,13 +49,13 @@ module Humongous
49
49
 
50
50
  reciever = lambda do
51
51
  begin
52
- @databases = @connection.database_info
53
- @server_info = @connection.server_info
54
- @header_string = "Server #{@connection.host}:#{@connection.port} stats"
55
- rescue Mongo::OperationFailure => e
52
+ @databases = @connection.list_databases
53
+ @server_info = @connection.cluster.servers.collect{|c| c.scan!.config } #@connection.server_info
54
+ @header_string = "Server #{opts_to_connect[:url]}:#{opts_to_connect[:port]} stats"
55
+ rescue Mongo::Error::OperationFailure => e
56
56
  @databases = []
57
57
  @server_info = { :errmsg => "Need to login", :ok => false }
58
- @header_string = "Server #{@connection.host}:#{@connection.port} stats"
58
+ @header_string = "Server #{opts_to_connect[:url]}:#{opts_to_connect[:port]} stats"
59
59
  @force_login = true
60
60
  end
61
61
  erb :index
@@ -65,22 +65,25 @@ module Humongous
65
65
  post "/", &reciever
66
66
 
67
67
  get "/database/:db_name" do
68
- @database = @connection.db(params[:db_name])
68
+ @connection = @connection.use(params[:db_name])
69
+ @database = @connection.database
69
70
  @header_string = "Database #{@database.name} (#{@database.collection_names.size}) stats"
70
71
  content_type :json
71
- { :collections => @database.collection_names, :stats => @database.stats, :header => @header_string }.to_json
72
+ { :collections => @database.collection_names, :stats => [], :header => @header_string }.to_json
72
73
  end
73
74
 
74
75
  get "/database/:db_name/collection/:collection_name" do
75
- @database = @connection.db(params[:db_name])
76
+ @connection = @connection.use(params[:db_name])
77
+ @database = @connection.database
76
78
  @collection = @database.collection(params[:collection_name])
77
79
  content_type :json
78
- { :stats => @collection.stats, :header => "Collection #{@database.name}.#{@collection.name} (#{@collection.stats.count}) stats" }.to_json
80
+ { :stats => [], :header => "Collection #{@database.name}.#{@collection.name} (#{@collection.count}) stats" }.to_json
79
81
  end
80
82
 
81
83
  delete "/database/:db_name/collection/:collection_name" do
82
- @database = @connection.db(params[:db_name])
83
- if @database.drop_collection(params[:collection_name])
84
+ @connection = @connection.use(params[:db_name])
85
+ @database = @connection.database
86
+ if @database.collection(params[:collection_name]).drop
84
87
  content_type :json
85
88
  { :status => "OK", :dropped => true }.to_json
86
89
  end
@@ -99,7 +102,8 @@ module Humongous
99
102
  opts[:sort] = JSON.parse(json_converter(params[:sort])) if params[:sort].present?
100
103
  opts[:limit] = params[:limit].to_i
101
104
  opts = default_opts.merge(opts)
102
- @database = @connection.db(params[:db_name])
105
+ @connection = @connection.use(params[:db_name])
106
+ @database = @connection.database
103
107
  @collection = @database.collection(params[:collection_name])
104
108
  @records = @collection.find(selector,opts).to_a
105
109
  @records = @records.collect{|record| doc_to_bson(record, :from_bson) }
@@ -108,29 +112,33 @@ module Humongous
108
112
  end
109
113
 
110
114
  post "/database/:db_name/collection/:collection_name/save" do
111
- @database = @connection.db(params[:db_name])
115
+ @connection = @connection.use(params[:db_name])
116
+ @database = @connection.database
112
117
  @collection = @database.collection(params[:collection_name])
113
118
  doc = params[:doc]
114
119
  doc = doc_to_bson(doc, :to_bson)
115
- # doc["_id"] = BSON::ObjectId.from_string(doc["_id"])
116
- @collection.save(doc)
120
+ @collection.update_one(doc)
117
121
  content_type :json
118
122
  { :status => "OK", :saved => true }.to_json
119
123
  end
120
124
 
121
125
  delete "/database/:db_name" do
122
126
  content_type :json
123
- @connection.drop_database(params[:db_name]).to_json
127
+ @connection = @connection.use(params[:db_name])
128
+ drop_doc = @connection.database.drop
129
+ { :status => "OK", :saved => true, message: drop_doc.documents[0] }.to_json
124
130
  end
125
131
 
126
132
  post "/database" do
127
- @connection.db(params["database_name"]).create_collection("test");
133
+ @connection = @connection.use(params[:database_name])
134
+ @connection.database["test"].create
128
135
  content_type :json
129
136
  { :status => "OK", :created => true, :name => params["database_name"] }.to_json
130
137
  end
131
138
 
132
139
  post "/database/:database_name/collection" do
133
- @connection.db(params["database_name"]).create_collection(params[:collection_name]);
140
+ @connection = @connection.use(params[:database_name])
141
+ @connection.database[params[:collection_name]].create
134
142
  content_type :json
135
143
  { :status => "OK", :created => true, :name => params["collection_name"] }.to_json
136
144
  end
@@ -141,25 +149,27 @@ module Humongous
141
149
  query = JSON.parse(json_converter(params[:remove_query])) if params[:remove_query].present?
142
150
  query["_id"] = BSON::ObjectId.from_string(query["_id"]) if query.present? && query["_id"].present?
143
151
  selector = selector.merge(query) if !!query
144
- @database = @connection.db(params["database_name"])
152
+ @connection = @connection.use(params[:database_name])
153
+ @database = @connection.database
145
154
  @collection = @database.collection(params["collection_name"])
146
155
  content_type :json
147
156
  { :removed => @collection.remove( selector, opts ), :status => "OK" }.to_json
148
157
  end
149
-
158
+
150
159
  post "/database/:database_name/collection/:collection_name/insert" do
151
160
  created = false
152
- @database = @connection.db(params[:database_name])
161
+ @connection = @connection.use(params[:database_name])
162
+ @database = @connection.database
153
163
  @collection = @database.collection(params[:collection_name])
154
164
  if params[:doc].present?
155
- doc = JSON.parse(json_converter(params[:doc]))
156
- @collection.insert(doc)
165
+ doc = JSON.parse(params[:doc])
166
+ @collection.insert_one(doc)
157
167
  created = true
158
168
  end
159
169
  content_type :json
160
170
  { :created => created, :id => true, :status => "OK" }.to_json
161
171
  end
162
-
172
+
163
173
  post "/database/:database_name/collection/:collection_name/mapreduce" do
164
174
  opts = { :out => { :inline => true }, :raw => true }
165
175
  opts[:finalize] = params[:finalize] unless params[:finalize].blank?
@@ -167,7 +177,8 @@ module Humongous
167
177
  opts[:query] = JSON.parse(json_converter(params[:query])) unless params[:query].blank?
168
178
  opts[:sort] = params[:sort] unless params[:sort].blank?
169
179
  opts[:limit] = params[:limit] unless params[:limit].blank?
170
- @database = @connection.db(params[:database_name])
180
+ @connection = @connection.use(params[:database_name])
181
+ @database = @connection.database
171
182
  @collection = @database.collection(params[:collection_name])
172
183
  content_type :json
173
184
  @collection.map_reduce( params[:map], params[:reduce], opts ).to_json
@@ -175,4 +186,4 @@ module Humongous
175
186
 
176
187
  end
177
188
 
178
- end
189
+ end
@@ -1,51 +1,49 @@
1
1
  module Humongous
2
2
  module Helpers
3
-
3
+
4
4
  module SinatraHelpers
5
-
5
+
6
6
  def connection(params)
7
7
  opts = opts_to_connect(params)
8
- session[:connection] = Mongo::Connection.new(opts[:url], opts[:port])
8
+ session[:connection] = Mongo::Client.new(get_uri(opts))
9
9
  end
10
10
 
11
11
  def autanticate!
12
- @connection.apply_saved_authentication and return unless @connection.auths.blank?
13
12
  return if params[:auth].blank? || params[:auth][:db].blank?
14
- @connection.add_auth(params[:auth][:db], params[:auth][:username], params[:auth][:password])
15
- @connection.apply_saved_authentication
13
+ @connection.with( database: params[:auth][:db], user: params[:auth][:username], password: params[:auth][:password])
16
14
  end
17
15
 
18
16
  def opts_to_connect(params = {})
19
17
  return @options if @options && @options[:freeze]
20
18
  @options = {
21
- :url => "localhost",
19
+ :url => "127.0.0.1",
22
20
  :port => "27017",
23
21
  :username => "",
24
22
  :password => ""
25
23
  }
26
24
  return @options if params.blank?
27
- @options.merge!({ :url => params[:url], :port => params[:port], :freeze => true })
25
+ @options.merge!(params)
28
26
  end
29
27
 
30
28
  def get_uri(params = {})
31
29
  @options = {
32
- :url => "localhost",
30
+ :url => "127.0.0.1",
33
31
  :port => "27017",
34
32
  :username => "",
35
33
  :password => ""
36
34
  }
37
35
  @options = @options.merge(params)
38
- unless @options[:username].empty? && @options[:password].empty?
36
+ if @options[:username].present? && @options[:password].present?
39
37
  "mongodb://#{@options[:username]}:#{@options[:password]}@#{@options[:url]}:#{@options[:port]}"
40
38
  else
41
39
  "mongodb://#{@options[:url]}:#{@options[:port]}"
42
40
  end
43
41
  end
44
-
42
+
45
43
  def default_opts
46
44
  { :skip => 0, :limit => 10 }
47
45
  end
48
-
46
+
49
47
  def to_bson( options )
50
48
  ids = options.keys.grep /_id$/
51
49
  ids.each do |id|
@@ -60,7 +58,7 @@ module Humongous
60
58
  end
61
59
  options
62
60
  end
63
-
61
+
64
62
  def doc_to_bson( doc, converter )
65
63
  doc = send(converter, doc)
66
64
  doc.each do |k,v|
@@ -71,7 +69,7 @@ module Humongous
71
69
  end
72
70
  doc
73
71
  end
74
-
72
+
75
73
  def from_bson( options )
76
74
  ids = options.select{ |k,v| v.is_a? BSON::ObjectId }
77
75
  ids.each do | k, v |
@@ -79,12 +77,12 @@ module Humongous
79
77
  end
80
78
  options
81
79
  end
82
-
80
+
83
81
  def json_converter( params_json )
84
82
  params_json.gsub(/(\w+):/, '"\1":')
85
83
  end
86
-
84
+
87
85
  end
88
-
86
+
89
87
  end
90
- end
88
+ end
@@ -40,7 +40,6 @@ app.html.query_browser = {
40
40
  url: "/database/" + db + "/collection/" + coll + "/save",
41
41
  data: { "doc": JSON.parse(data) },
42
42
  success: function( data ){
43
- console.log(data)
44
43
  $('#object_modal').modal('toggle');
45
44
  }
46
45
  })
@@ -49,8 +48,8 @@ app.html.query_browser = {
49
48
  return(
50
49
  { tag: "UL", cls: "pills", children: [
51
50
  { tag: "LI", cls: "active", child: { tag: "A", href: "#", text: "Find", show: "find_form" }, onClick: this._pills_click_handler },
52
- { tag: "LI", child: { tag: "A", href: "#", text: "Remove", show: "remove_form" }, onClick: this._pills_click_handler },
53
- { tag: "LI", child: { tag: "A", href: "#", text: "Insert", show: "insert_form" }, onClick: this._pills_click_handler },
51
+ { tag: "LI", child: { tag: "A", href: "#", text: "Remove", show: "remove_form", editor: 'remove_query' }, onClick: this._pills_click_handler },
52
+ { tag: "LI", child: { tag: "A", href: "#", text: "Insert", show: "insert_form", editor: 'insert_query' }, onClick: this._pills_click_handler },
54
53
  { tag: "LI", child: { tag: "A", href: "#", text: "MapReduce", show: "mapreduce_form" }, onClick: this._pills_click_handler }
55
54
  ]}
56
55
  )
@@ -60,7 +59,17 @@ app.html.query_browser = {
60
59
  $( click_container ).parent().siblings().removeClass( "active" );
61
60
  $( click_container ).parent().addClass( "active" );
62
61
  $(".query_form_container").children().remove();
63
- $( app.query_forms[click_container.attr("show")] ).appendTo(".query_form_container")
62
+ $( app.query_forms[click_container.attr("show")] ).appendTo(".query_form_container");
63
+ if(click_container.attr("editor")){
64
+ if(ace){
65
+ ace.config.set('basePath', 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.11');
66
+ var editor = ace.edit(click_container.attr("editor"));
67
+ if(editor){
68
+ editor.setTheme("ace/theme/monokai");
69
+ editor.session.setMode("ace/mode/json");
70
+ }
71
+ }
72
+ }
64
73
  }
65
74
  };
66
75
  app.html.build_results = {
@@ -171,7 +180,7 @@ app.html.template.select_field = app.merge( app.html.template.abstract_field, {
171
180
  }
172
181
  } );
173
182
  app.query_forms = {
174
- find_form: { tag: "FORM", cls: "find_form", children:
183
+ find_form: { tag: "FORM", cls: "find_form", children:
175
184
  [
176
185
  { tag: "FIELDSET", children: [
177
186
  // this._get_legend(),
@@ -211,7 +220,7 @@ app.query_forms = {
211
220
  { tag: "DIV", cls: "input_row", children: [
212
221
  { tag: "DIV", cls: "query_form", children: [
213
222
  { tag: "LABEL", "for": "remove_query", text: "Query", style: "margin: 0 10px 0" },
214
- { tag: "TEXTAREA", style: "height: 50px; width: 300px", placeholder: "{}", id: "remove_query", name: "remove_query" }
223
+ { tag: "DIV", style: "height: 50px; width: 400px", placeholder: "{}", id: "remove_query", name: "remove_query" }
215
224
  ] },
216
225
  { tag: "INPUT", type: 'submit', cls: "submit_btn btn", value: "Remove" },
217
226
  { tag: "DIV", cls: "clear" }
@@ -224,7 +233,6 @@ app.query_forms = {
224
233
  data: $(this).serialize(),
225
234
  type: $(this).attr("method"),
226
235
  success: function( data ){
227
- console.log(data);
228
236
  if(data.removed){
229
237
  var alert = { tag: "DIV", cls: "alert-message success fade in", "data-alert": "true", children: [
230
238
  { tag: "A", cls: "close", href: "#", text: "x" },
@@ -247,7 +255,7 @@ app.query_forms = {
247
255
  { tag: "DIV", cls: "input_row", children: [
248
256
  { tag: "DIV", cls: "query_form", children: [
249
257
  { tag: "LABEL", "for": "insert_query", text: "Query", style: "margin: 0 10px 0" },
250
- { tag: "TEXTAREA", style: "height: 100px; width: 400px", placeholder: "{}", id: "insert_query", name: "doc" }
258
+ { tag: "DIV", style: "height: 200px; width: 500px", placeholder: "{}", id: "insert_query", name: "doc" }
251
259
  ] },
252
260
  { tag: "INPUT", type: 'submit', cls: "submit_btn btn", value: "Insert" },
253
261
  { tag: "DIV", cls: "clear" }
@@ -255,12 +263,14 @@ app.query_forms = {
255
263
  ]
256
264
  }, onSubmit: function(e){
257
265
  e.preventDefault();
266
+ if(ace){
267
+ var editor = ace.edit("insert_query");
268
+ };
258
269
  app.ax({
259
270
  url: "/database/" + app.storage.get("database") + "/collection/" + app.storage.get("collection") + "/insert",
260
- data: $(this).serialize(),
271
+ data: editor ? { doc: editor.getValue() } : {},
261
272
  type: $(this).attr("method"),
262
273
  success: function( data ){
263
- console.log(data);
264
274
  if(data.created){
265
275
  var alert = { tag: "DIV", cls: "alert-message success fade in", "data-alert": "true", children: [
266
276
  { tag: "A", cls: "close", href: "#", text: "x" },
@@ -278,7 +288,7 @@ app.query_forms = {
278
288
  });
279
289
  }
280
290
  },
281
- mapreduce_form: { tag: "FORM", cls: "mapreduce_form", children:
291
+ mapreduce_form: { tag: "FORM", cls: "mapreduce_form", children:
282
292
  [
283
293
  { tag: "FIELDSET", children: [
284
294
  // this._get_legend(),
@@ -326,7 +336,6 @@ app.query_forms = {
326
336
  data: $(this).serialize(),
327
337
  type: $(this).attr("method"),
328
338
  success: function( data ){
329
- console.log(data);
330
339
  $( ".query_result" ).children().remove();
331
340
  if(app.isArray( data.results )){
332
341
  $( app.html.build_results.create( data.results ) ).appendTo( '.query_result' );
@@ -341,4 +350,4 @@ app.query_forms = {
341
350
  });
342
351
  }
343
352
  }
344
- }
353
+ }
@@ -1,3 +1,3 @@
1
1
  module Humongous
2
- VERSION = "1.0.2"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -20,12 +20,12 @@
20
20
  <link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
21
21
  <link rel="apple-touch-icon" sizes="72x72" href="/images/apple-touch-icon-72x72.png">
22
22
  <link rel="apple-touch-icon" sizes="114x114" href="/images/apple-touch-icon-114x114.png">
23
-
23
+
24
24
  <script type='text/javascript' src='/javascripts/jquery.min.js'></script>
25
25
  <script type='text/javascript' src='/javascripts/jquery.nohtml.js'></script>
26
26
  <script type='text/javascript' src='/javascripts/bootstrap-modal.js'></script>
27
27
  <script type='text/javascript' src='/javascripts/bootstrap-alerts.js'></script>
28
-
28
+
29
29
  <script type='text/javascript' src='/javascripts/core.js'></script>
30
30
  <script type='text/javascript' src='/javascripts/storage.js'></script>
31
31
  <script type='text/javascript' src='/javascripts/query_browser.js'></script>
@@ -63,9 +63,9 @@
63
63
  <div class="database_list">
64
64
  <table>
65
65
  <tbody>
66
- <% @databases.each do | db_name, size | %>
66
+ <% @databases.each do | db | %>
67
67
  <tr>
68
- <td data-source=<%= "/database/#{db_name}" %>><%= db_name %></td>
68
+ <td data-source=<%= "/database/#{db[:name]}" %>><%= db[:name] %></td>
69
69
  </tr>
70
70
  <% end %>
71
71
  </tbody>
@@ -92,7 +92,7 @@
92
92
  <div class="yielder zebra-striped">
93
93
  <table>
94
94
  <tbody>
95
- <% @server_info.each do | property, value | %>
95
+ <% @server_info.first.each do | property, value | %>
96
96
  <tr>
97
97
  <th><%= property %></th>
98
98
  <td><%= value %></td>
@@ -106,7 +106,7 @@
106
106
  </div>
107
107
 
108
108
  <%= erb :_credits %>
109
-
109
+
110
110
  <%= erb :_license %>
111
111
 
112
112
  <%= erb :_login_dialog %>
@@ -122,5 +122,6 @@
122
122
  })
123
123
  </script>
124
124
  <% end %>
125
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.11/ace.min.js" type="text/javascript" charset="utf-8" async defer></script>
125
126
  </body>
126
- </html>
127
+ </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: humongous
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bagwanpankaj
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.8
19
+ version: 0.1.11
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.8
26
+ version: 0.1.11
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sinatra
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.3.2
33
+ version: 2.0.8
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.3.2
40
+ version: 2.0.8
41
41
  - !ruby/object:Gem::Dependency
42
- name: bson_ext
42
+ name: bson
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 1.5.2
47
+ version: 4.8.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.5.2
54
+ version: 4.8.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mongo
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.2
61
+ version: 2.12.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.5.2
68
+ version: 2.12.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 1.8.3
75
+ version: 2.3.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '='
81
81
  - !ruby/object:Gem::Version
82
- version: 1.8.3
82
+ version: 2.3.0
83
83
  description: 'Humongous: A Ruby way to browse and maintain mongo instance. Using HTML5.'
84
84
  email: bagwanpankaj@gmail.com
85
85
  executables:
@@ -132,10 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  - !ruby/object:Gem::Version
133
133
  version: 1.3.1
134
134
  requirements: []
135
- rubyforge_project:
136
- rubygems_version: 2.4.5
135
+ rubygems_version: 3.1.2
137
136
  signing_key:
138
137
  specification_version: 3
139
138
  summary: 'Humongous: A Mongo Browser for Ruby'
140
139
  test_files: []
141
- has_rdoc: