mordor 0.2.16 → 0.2.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -157,7 +157,13 @@ module Mordor
157
157
 
158
158
  def database
159
159
  unless @db
160
- connection = Mongo::Connection.new(Mordor::Config[:hostname], Mordor::Config[:port])
160
+ if (hosts = Mordor::Config[:hostname].split(",").map{|h| h.strip}).size > 1
161
+ options = {:refresh_mode => true}
162
+ options[:rs_name] = Mordor::Config[:replica_set] if Mordor::Config[:replica_set]
163
+ connection = Mongo::MongoReplicaSetClient.new(hosts, options)
164
+ else
165
+ connection = Mongo::Connection.new(Mordor::Config[:hostname], Mordor::Config[:port])
166
+ end
161
167
  @db = connection.db(Mordor::Config[:database])
162
168
  @db.authenticate(Mordor::Config[:username], Mordor::Config[:password]) if Mordor::Config[:username]
163
169
  end
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
2
2
  s.name = "mordor"
3
3
 
4
4
  # Do not set the version and date field manually, this is done by the release script
5
- s.version = "0.2.16"
6
- s.date = "2012-12-17"
5
+ s.version = "0.2.17"
6
+ s.date = "2013-01-22"
7
7
 
8
8
  s.summary = "mordor"
9
9
  s.description = <<-eos
@@ -60,4 +60,37 @@ describe "connecting to mongo" do
60
60
  TestResource.database
61
61
  end
62
62
  end
63
+
64
+ describe "replica sets" do
65
+ before :each do
66
+ @mock_connection = mock("connection", :db => mock("db"))
67
+ end
68
+
69
+ it "creates a mongo replica set client when multiple hosts are provided" do
70
+ hosts = "localhost:27017, localhost:27018 "
71
+ hosts_array = hosts.split(",").map{ |h| h.strip }
72
+
73
+ Mordor::Config.use { |config| config[:hostname] = hosts }
74
+
75
+ Mongo::MongoReplicaSetClient.should_receive(:new).with(hosts_array, anything).and_return(@mock_connection)
76
+
77
+ TestResource.database
78
+ end
79
+
80
+ it "creates a mongo replica set client with the correct replica set name if given" do
81
+ hosts = "localhost:27017, localhost:27018 "
82
+ replica_set = "sample replica set"
83
+
84
+ Mordor::Config.use do |config|
85
+ config[:hostname] = hosts
86
+ config[:replica_set] = replica_set
87
+ end
88
+
89
+ options = {:rs_name => replica_set, :refresh_mode => true}
90
+
91
+ Mongo::MongoReplicaSetClient.should_receive(:new).with(anything, options).and_return(@mock_connection)
92
+
93
+ TestResource.database
94
+ end
95
+ end
63
96
  end
metadata CHANGED
@@ -1,157 +1,148 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: mordor
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.16
3
+ version: !ruby/object:Gem::Version
4
+ hash: 53
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 17
10
+ version: 0.2.17
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jan-Willem Koelewijn
9
14
  - Dirkjan Bussink
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2012-12-17 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
18
+
19
+ date: 2013-01-22 00:00:00 +01:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
16
34
  name: rake
17
- requirement: !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
35
+ requirement: *id001
36
+ - !ruby/object:Gem::Dependency
23
37
  type: :development
24
38
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
26
40
  none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
31
- - !ruby/object:Gem::Dependency
32
- name: rspec
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
41
+ requirements:
36
42
  - - ~>
37
- - !ruby/object:Gem::Version
38
- version: '2.0'
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 2
47
+ - 0
48
+ version: "2.0"
49
+ name: rspec
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
39
52
  type: :development
40
53
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: '2.0'
47
- - !ruby/object:Gem::Dependency
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
48
63
  name: json
49
- requirement: !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
64
+ requirement: *id003
65
+ - !ruby/object:Gem::Dependency
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
63
- - !ruby/object:Gem::Dependency
68
+ version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
64
77
  name: extlib
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ! '>='
69
- - !ruby/object:Gem::Version
70
- version: '0'
78
+ requirement: *id004
79
+ - !ruby/object:Gem::Dependency
71
80
  type: :development
72
81
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ! '>='
77
- - !ruby/object:Gem::Version
78
- version: '0'
79
- - !ruby/object:Gem::Dependency
82
+ version_requirements: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
80
91
  name: mongo
81
- requirement: !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
87
- type: :development
92
+ requirement: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ type: :runtime
88
95
  prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ! '>='
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
96
+ version_requirements: &id006 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
96
105
  name: extlib
97
- requirement: !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
106
+ requirement: *id006
107
+ - !ruby/object:Gem::Dependency
103
108
  type: :runtime
104
109
  prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
110
+ version_requirements: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 3
116
+ segments:
117
+ - 0
118
+ version: "0"
112
119
  name: mongo
113
- requirement: !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
116
- - - ! '>='
117
- - !ruby/object:Gem::Version
118
- version: '0'
120
+ requirement: *id007
121
+ - !ruby/object:Gem::Dependency
119
122
  type: :runtime
120
123
  prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
- requirements:
124
- - - ! '>='
125
- - !ruby/object:Gem::Version
126
- version: '0'
127
- - !ruby/object:Gem::Dependency
124
+ version_requirements: &id008 !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ hash: 3
130
+ segments:
131
+ - 0
132
+ version: "0"
128
133
  name: json
129
- requirement: !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ! '>='
133
- - !ruby/object:Gem::Version
134
- version: '0'
135
- type: :runtime
136
- prerelease: false
137
- version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
- requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '0'
143
- description: ! ' Small gem to add MongoDB Resources, resources have attributes
144
- that translate into document fields. When an attribute is declared, finders for
145
- the attribute are added to the Resource automatically
146
-
147
- '
148
- email:
134
+ requirement: *id008
135
+ description: " Small gem to add MongoDB Resources, resources have attributes that translate into document fields. When an attribute is declared, finders for the attribute are added to the Resource automatically\n"
136
+ email:
149
137
  - janwillem.koelewijn@nedap.com
150
138
  - dirkjan.bussink@nedap.com
151
139
  executables: []
140
+
152
141
  extensions: []
142
+
153
143
  extra_rdoc_files: []
154
- files:
144
+
145
+ files:
155
146
  - .gitignore
156
147
  - .travis.yml
157
148
  - Gemfile
@@ -171,31 +162,39 @@ files:
171
162
  - spec/spec.opts
172
163
  - spec/spec_helper.rb
173
164
  - tasks/github-gem.rake
165
+ has_rdoc: true
174
166
  homepage: http://www.nedap.com
175
167
  licenses: []
168
+
176
169
  post_install_message:
177
170
  rdoc_options: []
178
- require_paths:
171
+
172
+ require_paths:
179
173
  - lib
180
- required_ruby_version: !ruby/object:Gem::Requirement
174
+ required_ruby_version: !ruby/object:Gem::Requirement
181
175
  none: false
182
- requirements:
183
- - - ! '>='
184
- - !ruby/object:Gem::Version
185
- version: '0'
186
- segments:
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
187
181
  - 0
188
- hash: 3720048276768169463
189
- required_rubygems_version: !ruby/object:Gem::Requirement
182
+ version: "0"
183
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
184
  none: false
191
- requirements:
192
- - - ! '>='
193
- - !ruby/object:Gem::Version
194
- version: '0'
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ hash: 3
189
+ segments:
190
+ - 0
191
+ version: "0"
195
192
  requirements: []
193
+
196
194
  rubyforge_project:
197
- rubygems_version: 1.8.24
195
+ rubygems_version: 1.5.2
198
196
  signing_key:
199
197
  specification_version: 3
200
198
  summary: mordor
201
199
  test_files: []
200
+