dumper 1.1.3 → 1.2.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.
@@ -18,6 +18,12 @@ Gem::Specification.new do |gem|
18
18
  gem.add_runtime_dependency 'multi_json', '~> 1.0'
19
19
  gem.add_runtime_dependency 'multipart-post', '~> 1.1.5'
20
20
  gem.add_runtime_dependency 'posix-spawn', '~> 0.3.6'
21
+
22
+ gem.add_development_dependency 'bson_ext'
23
+ gem.add_development_dependency 'mongo_mapper'
24
+ gem.add_development_dependency 'mongoid', '~> 3.0'
25
+ gem.add_development_dependency 'rails', '~> 3.2.6'
26
+ gem.add_development_dependency 'redis'
21
27
  gem.add_development_dependency 'rspec'
22
28
 
23
29
  # For Travis
@@ -21,15 +21,17 @@ module Dumper
21
21
 
22
22
  def set_config_for(rails_env=nil)
23
23
  return unless defined?(Mongo::DB) &&
24
- (mongo = find_instance_in_object_space(Mongo::DB))
24
+ (mongo = find_instance_in_object_space(Mongo::DB)) ||
25
+ defined?(Mongoid) && Mongoid::Config.respond_to?(:sessions) &&
26
+ (mongoid = Mongoid::Config.sessions[:default])
25
27
 
26
28
  @config = {
27
- :host => mongo.connection.host,
28
- :port => mongo.connection.port,
29
- :database => mongo.name,
29
+ :host => mongo ? mongo.connection.host : mongoid[:hosts].first.split(/:/).first,
30
+ :port => mongo ? mongo.connection.port : mongoid[:hosts].first.split(/:/).last,
31
+ :database => mongo ? mongo.name : mongoid[:database],
30
32
  :dump_tool => dump_tool_path
31
33
  }.tap do |h|
32
- if auth = mongo.connection.auths.first
34
+ if auth = mongo ? mongo.connection.auths.first : mongoid
33
35
  h.update(:username => auth['username'], :password => auth['password'])
34
36
  end
35
37
  end
@@ -15,7 +15,7 @@ module Dumper
15
15
  @databases = {}
16
16
 
17
17
  # Rackup?
18
- @rackup = find_instance_in_object_space(Rack::Server)
18
+ @rackup = defined?(Rack::Server) && find_instance_in_object_space(Rack::Server)
19
19
 
20
20
  # Rails?
21
21
  if defined?(::Rails)
@@ -23,21 +23,20 @@ module Dumper
23
23
  @rails_env = Rails.env.to_s
24
24
  @rails_version = Rails::VERSION::STRING
25
25
  @is_supported_rails_version = (::Rails::VERSION::MAJOR >= 3)
26
-
27
- if defined?(MongoMapper)
28
- MongoMapper.database # Creates the Mongo::DB instance
29
- end
30
-
31
- DATABASES.each do |key, klass|
32
- database = klass.new
33
- next unless database.set_config_for(@rails_env) || database.set_config_for(options[:additional_env])
34
- @databases[key] = database
35
- end
36
-
37
26
  else
38
27
  @framework = :ruby
39
28
  end
40
29
 
30
+ if defined?(MongoMapper)
31
+ MongoMapper.database # Trigger to create a Mongo::DB instance
32
+ end
33
+
34
+ DATABASES.each do |key, klass|
35
+ database = klass.new
36
+ next unless database.set_config_for(@rails_env) || database.set_config_for(options[:additional_env])
37
+ @databases[key] = database
38
+ end
39
+
41
40
  # Which dispatcher?
42
41
  [ :unicorn, :passenger, :thin, :mongrel, :webrick, :resque ].find do |name|
43
42
  @dispatcher = send("#{name}?") ? name : nil
@@ -1,3 +1,3 @@
1
1
  module Dumper
2
- VERSION = '1.1.3'
2
+ VERSION = '1.2.0'
3
3
  end
@@ -1,7 +1,58 @@
1
1
  require 'spec_helper'
2
2
 
3
+ require 'rails'
4
+
3
5
  describe Dumper do
4
- it 'initializes' do
6
+ it 'conforms to public API' do
5
7
  Dumper::Agent.respond_to?(:start).should be_true
6
8
  end
9
+
10
+ describe :Stack do
11
+ it 'initializes stack' do
12
+ stack = Dumper::Stack.new
13
+ stack.framework.should == :rails
14
+ stack.rails_env.should == 'development'
15
+ end
16
+
17
+ it 'detects mongoid 3' do
18
+ require 'mongoid'
19
+ Mongoid::Config.send :load_configuration, { sessions: { default: { hosts: ['localhost:27017'], database: 'test' } } }
20
+
21
+ stack = Dumper::Stack.new
22
+ stack.databases[:mongodb].should_not == nil
23
+ end
24
+
25
+ it 'detects mongo_mapper' do
26
+ require 'mongo_mapper'
27
+ MongoMapper.setup({ development: { database: 'test' } }, :development)
28
+ MongoMapper.database
29
+
30
+ stack = Dumper::Stack.new
31
+ stack.databases[:mongodb].should_not == nil
32
+ end
33
+
34
+ it 'detects mysql' do
35
+ require 'active_record'
36
+ ActiveRecord::Base.configurations['development'] = { 'adapter' => 'mysql2' }
37
+
38
+ stack = Dumper::Stack.new
39
+ stack.databases[:mysql].should_not == nil
40
+ end
41
+
42
+ it 'detects postgresql' do
43
+ require 'active_record'
44
+ ActiveRecord::Base.configurations['development'] = { 'adapter' => 'postgresql' }
45
+
46
+ stack = Dumper::Stack.new
47
+ stack.databases[:postgresql].should_not == nil
48
+ end
49
+
50
+ it 'detects redis' do
51
+ require 'redis'
52
+ redis = Redis.new
53
+
54
+ stack = Dumper::Stack.new
55
+ stack.databases[:redis].should_not == nil
56
+ end
57
+ end
7
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dumper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-08 00:00:00.000000000 Z
12
+ date: 2012-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -59,6 +59,86 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.3.6
62
+ - !ruby/object:Gem::Dependency
63
+ name: bson_ext
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: mongo_mapper
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: mongoid
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '3.0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '3.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rails
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 3.2.6
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 3.2.6
126
+ - !ruby/object:Gem::Dependency
127
+ name: redis
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
62
142
  - !ruby/object:Gem::Dependency
63
143
  name: rspec
64
144
  requirement: !ruby/object:Gem::Requirement