mordor 0.2.16 → 0.2.17

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.
@@ -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
+