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.
- data/lib/mordor/resource.rb +7 -1
- data/mordor.gemspec +2 -2
- data/spec/mordor/connection_spec.rb +33 -0
- metadata +132 -133
data/lib/mordor/resource.rb
CHANGED
@@ -157,7 +157,13 @@ module Mordor
|
|
157
157
|
|
158
158
|
def database
|
159
159
|
unless @db
|
160
|
-
|
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
|
data/mordor.gemspec
CHANGED
@@ -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.
|
6
|
-
s.date = "
|
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
|
-
|
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
|
-
|
14
|
-
|
15
|
-
|
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:
|
18
|
-
|
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
|
-
|
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
|
-
|
47
|
-
|
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:
|
50
|
-
|
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
|
-
|
63
|
-
|
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:
|
66
|
-
|
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
|
-
|
79
|
-
|
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:
|
82
|
-
|
83
|
-
|
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
|
-
|
95
|
-
|
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:
|
98
|
-
|
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
|
-
|
111
|
-
|
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:
|
114
|
-
|
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
|
-
|
127
|
-
|
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:
|
130
|
-
|
131
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
186
|
-
segments:
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
187
181
|
- 0
|
188
|
-
|
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
|
-
|
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.
|
195
|
+
rubygems_version: 1.5.2
|
198
196
|
signing_key:
|
199
197
|
specification_version: 3
|
200
198
|
summary: mordor
|
201
199
|
test_files: []
|
200
|
+
|