mongar 0.0.11 → 0.0.12
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/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/VERSION +1 -1
- data/lib/mongar/mongo.rb +11 -7
- data/lib/mongar/mongo/collection.rb +18 -7
- data/mongar.gemspec +6 -6
- metadata +124 -80
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
bson (1.
|
4
|
+
bson (1.12.3)
|
5
5
|
diff-lcs (1.1.3)
|
6
6
|
git (1.2.5)
|
7
7
|
jeweler (1.6.4)
|
@@ -9,8 +9,8 @@ GEM
|
|
9
9
|
git (>= 1.2.5)
|
10
10
|
rake
|
11
11
|
linguistics (1.0.9)
|
12
|
-
mongo (1.
|
13
|
-
bson (= 1.
|
12
|
+
mongo (1.12.3)
|
13
|
+
bson (= 1.12.3)
|
14
14
|
rake (0.9.2.2)
|
15
15
|
rcov (0.9.11)
|
16
16
|
rspec (2.3.0)
|
@@ -30,7 +30,7 @@ DEPENDENCIES
|
|
30
30
|
bundler (~> 1.0.0)
|
31
31
|
jeweler (~> 1.6.4)
|
32
32
|
linguistics
|
33
|
-
mongo
|
33
|
+
mongo (= 1.12.3)
|
34
34
|
rcov
|
35
35
|
rspec (~> 2.3.0)
|
36
36
|
yard (~> 0.6.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.12
|
data/lib/mongar/mongo.rb
CHANGED
@@ -21,7 +21,7 @@ class Mongar
|
|
21
21
|
@status_collection ||= 'statuses'
|
22
22
|
end
|
23
23
|
|
24
|
-
[:database, :user, :password, :host, :port, :status_collection].each do |attr_name|
|
24
|
+
[:database, :auth_database, :auth_mechanism, :user, :password, :host, :port, :status_collection].each do |attr_name|
|
25
25
|
define_method(attr_name) do |*args|
|
26
26
|
val = args.first
|
27
27
|
return instance_variable_get(:"@#{attr_name}") if val.nil?
|
@@ -30,10 +30,7 @@ class Mongar
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def connection
|
33
|
-
|
34
|
-
return @connection if self.user.nil? || @connection.authenticate(user, password)
|
35
|
-
@connection.close
|
36
|
-
@connection = nil
|
33
|
+
::Mongo::Connection.new(host, port)
|
37
34
|
end
|
38
35
|
|
39
36
|
def connection!
|
@@ -41,7 +38,14 @@ class Mongar
|
|
41
38
|
end
|
42
39
|
|
43
40
|
def db
|
44
|
-
@db
|
41
|
+
return @db unless @db.nil?
|
42
|
+
@db = connection!.db(database.to_s)
|
43
|
+
unless self.user.nil?
|
44
|
+
db = self.auth_database.nil? ? @db : connection!.db(self.auth_database)
|
45
|
+
mechanism = self.auth_mechanism || 'SCRAM-SHA-1'
|
46
|
+
db.authenticate(user, password, :mechanism => mechanism)
|
47
|
+
end
|
48
|
+
@db
|
45
49
|
end
|
46
50
|
|
47
51
|
def status_collection_accessor
|
@@ -52,4 +56,4 @@ class Mongar
|
|
52
56
|
db.eval("return new Date()")
|
53
57
|
end
|
54
58
|
end
|
55
|
-
end
|
59
|
+
end
|
@@ -53,12 +53,23 @@ class Mongar::Mongo
|
|
53
53
|
def log_activity
|
54
54
|
return unless should_log_activity?
|
55
55
|
logger.debug "Logging activity for #{name}"
|
56
|
-
|
57
|
-
#
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
56
|
+
|
57
|
+
# MongoDB 2.6+ supports currentDate, so let's try that first.
|
58
|
+
begin
|
59
|
+
status_collection.update(
|
60
|
+
{ :collection_name => name },
|
61
|
+
{ '$currentDate' => { :last_activity_at => true }, '$set' => { :collection_name => name } },
|
62
|
+
{ :upsert => true }
|
63
|
+
)
|
64
|
+
rescue => e
|
65
|
+
raise e unless e.to_s =~ /Invalid modifier specified \$currentDate/
|
66
|
+
# Fallback to an $eval to get the date (gross).
|
67
|
+
status_collection.update(
|
68
|
+
{ :collection_name => name },
|
69
|
+
{ '$set' => { :collection_name => name, :last_activity_at => mongodb.time_on_server } },
|
70
|
+
{ :upsert => true }
|
71
|
+
)
|
72
|
+
end
|
62
73
|
@last_logged_activity = Time.now
|
63
74
|
end
|
64
75
|
|
@@ -130,4 +141,4 @@ class Mongar::Mongo
|
|
130
141
|
end
|
131
142
|
end
|
132
143
|
end
|
133
|
-
end
|
144
|
+
end
|
data/mongar.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "mongar"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.12"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Philippe Green"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2015-09-11"
|
13
13
|
s.description = "Replicates data from ActiveRecord (or other Ruby data mapping class) to MongoDB"
|
14
14
|
s.email = "phil@greenviewdata.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
|
|
45
45
|
s.homepage = "http://github.com/gdi/mongar"
|
46
46
|
s.licenses = ["MIT"]
|
47
47
|
s.require_paths = ["lib"]
|
48
|
-
s.rubygems_version = "1.8.
|
48
|
+
s.rubygems_version = "1.8.29"
|
49
49
|
s.summary = "Replicates data from ActiveRecord (or other Ruby data mapping class) to MongoDB"
|
50
50
|
|
51
51
|
if s.respond_to? :specification_version then
|
@@ -53,7 +53,7 @@ Gem::Specification.new do |s|
|
|
53
53
|
|
54
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
55
55
|
s.add_runtime_dependency(%q<linguistics>, [">= 0"])
|
56
|
-
s.add_runtime_dependency(%q<mongo>, ["
|
56
|
+
s.add_runtime_dependency(%q<mongo>, ["= 1.12.3"])
|
57
57
|
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
58
58
|
s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
|
59
59
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
|
|
61
61
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
62
62
|
else
|
63
63
|
s.add_dependency(%q<linguistics>, [">= 0"])
|
64
|
-
s.add_dependency(%q<mongo>, ["
|
64
|
+
s.add_dependency(%q<mongo>, ["= 1.12.3"])
|
65
65
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
66
66
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
67
67
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -70,7 +70,7 @@ Gem::Specification.new do |s|
|
|
70
70
|
end
|
71
71
|
else
|
72
72
|
s.add_dependency(%q<linguistics>, [">= 0"])
|
73
|
-
s.add_dependency(%q<mongo>, ["
|
73
|
+
s.add_dependency(%q<mongo>, ["= 1.12.3"])
|
74
74
|
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
75
75
|
s.add_dependency(%q<yard>, ["~> 0.6.0"])
|
76
76
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
metadata
CHANGED
@@ -1,102 +1,140 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongar
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 12
|
10
|
+
version: 0.0.12
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Philippe Green
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
requirement: &
|
17
|
+
|
18
|
+
date: 2015-09-11 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
22
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
22
|
-
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 3
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
name: linguistics
|
23
31
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: mongo
|
27
|
-
requirement: &70284555281820 !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - ! '>='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '0'
|
32
|
+
version_requirements: *id001
|
33
33
|
type: :runtime
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
37
|
+
requirements:
|
38
|
+
- - "="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
hash: 33
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 12
|
44
|
+
- 3
|
45
|
+
version: 1.12.3
|
46
|
+
name: mongo
|
34
47
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
|
37
|
-
|
38
|
-
requirement: &
|
48
|
+
version_requirements: *id002
|
49
|
+
type: :runtime
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
52
|
none: false
|
40
|
-
requirements:
|
53
|
+
requirements:
|
41
54
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 2
|
59
|
+
- 3
|
60
|
+
- 0
|
43
61
|
version: 2.3.0
|
44
|
-
|
62
|
+
name: rspec
|
45
63
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
-
|
48
|
-
|
49
|
-
requirement: &
|
64
|
+
version_requirements: *id003
|
65
|
+
type: :development
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
68
|
none: false
|
51
|
-
requirements:
|
69
|
+
requirements:
|
52
70
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 7
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
- 6
|
76
|
+
- 0
|
54
77
|
version: 0.6.0
|
55
|
-
|
78
|
+
name: yard
|
56
79
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
|
59
|
-
|
60
|
-
requirement: &
|
80
|
+
version_requirements: *id004
|
81
|
+
type: :development
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
84
|
none: false
|
62
|
-
requirements:
|
85
|
+
requirements:
|
63
86
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 23
|
89
|
+
segments:
|
90
|
+
- 1
|
91
|
+
- 0
|
92
|
+
- 0
|
65
93
|
version: 1.0.0
|
66
|
-
|
94
|
+
name: bundler
|
67
95
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
|
70
|
-
|
71
|
-
requirement: &
|
96
|
+
version_requirements: *id005
|
97
|
+
type: :development
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
100
|
none: false
|
73
|
-
requirements:
|
101
|
+
requirements:
|
74
102
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
hash: 7
|
105
|
+
segments:
|
106
|
+
- 1
|
107
|
+
- 6
|
108
|
+
- 4
|
76
109
|
version: 1.6.4
|
77
|
-
|
110
|
+
name: jeweler
|
78
111
|
prerelease: false
|
79
|
-
version_requirements: *
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: rcov
|
82
|
-
requirement: &70284555303040 !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ! '>='
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: '0'
|
112
|
+
version_requirements: *id006
|
88
113
|
type: :development
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
version: "0"
|
124
|
+
name: rcov
|
89
125
|
prerelease: false
|
90
|
-
version_requirements: *
|
91
|
-
|
92
|
-
|
126
|
+
version_requirements: *id007
|
127
|
+
type: :development
|
128
|
+
description: Replicates data from ActiveRecord (or other Ruby data mapping class) to MongoDB
|
93
129
|
email: phil@greenviewdata.com
|
94
130
|
executables: []
|
131
|
+
|
95
132
|
extensions: []
|
96
|
-
|
133
|
+
|
134
|
+
extra_rdoc_files:
|
97
135
|
- LICENSE.txt
|
98
136
|
- README.rdoc
|
99
|
-
files:
|
137
|
+
files:
|
100
138
|
- .document
|
101
139
|
- .rspec
|
102
140
|
- Gemfile
|
@@ -122,31 +160,37 @@ files:
|
|
122
160
|
- spec/mongar_spec.rb
|
123
161
|
- spec/spec_helper.rb
|
124
162
|
homepage: http://github.com/gdi/mongar
|
125
|
-
licenses:
|
163
|
+
licenses:
|
126
164
|
- MIT
|
127
165
|
post_install_message:
|
128
166
|
rdoc_options: []
|
129
|
-
|
167
|
+
|
168
|
+
require_paths:
|
130
169
|
- lib
|
131
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
170
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
171
|
none: false
|
133
|
-
requirements:
|
134
|
-
- -
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
|
137
|
-
segments:
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
hash: 3
|
176
|
+
segments:
|
138
177
|
- 0
|
139
|
-
|
140
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
|
+
version: "0"
|
179
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
180
|
none: false
|
142
|
-
requirements:
|
143
|
-
- -
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
|
181
|
+
requirements:
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
hash: 3
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
version: "0"
|
146
188
|
requirements: []
|
189
|
+
|
147
190
|
rubyforge_project:
|
148
|
-
rubygems_version: 1.8.
|
191
|
+
rubygems_version: 1.8.29
|
149
192
|
signing_key:
|
150
193
|
specification_version: 3
|
151
194
|
summary: Replicates data from ActiveRecord (or other Ruby data mapping class) to MongoDB
|
152
195
|
test_files: []
|
196
|
+
|