mongodb_logger 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## v0.3.2
2
+
3
+ * Initialize a connection to MongoDB using the MongoDB URI spec
4
+ * Fix logger.info/warn/error for Rails 3.2.x
5
+
6
+ ## v0.3.1
7
+
8
+ * Fix broken images in if using assets pipeline
9
+
10
+ ## v0.3.0
11
+
12
+ * Added assets pipeline support
13
+
1
14
  ## v0.2.8
2
15
 
3
16
  * Added callback on exception
data/README.md CHANGED
@@ -58,7 +58,12 @@ For rails 3.0.x latest version 0.2.8.
58
58
  host: localhost
59
59
  port: 27017
60
60
  replica_set: true
61
-
61
+
62
+ Also you can use "url" parameter for setup connection to mongodb:
63
+
64
+ development:
65
+ url: mongodb://localhost:27017/my_app
66
+ capsize: <%= 10.megabytes %>
62
67
 
63
68
 
64
69
  1. For using with MongoDB Replica Set (more info you can read by this link [http://www.mongodb.org/display/DOCS/Replica+Sets](http://www.mongodb.org/display/DOCS/Replica+Sets)). In config set list of [host, port] in key "hosts":
data/Rakefile CHANGED
@@ -77,9 +77,9 @@ LOCAL_GEM_ROOT = File.join(GEM_ROOT, 'tmp', 'local_gems').freeze
77
77
  if ENV['CI']
78
78
  # for ci testing only major rails versions
79
79
  if 'java' == RUBY_PLATFORM
80
- RAILS_VERSIONS = ['3.1.3', '3.2.5']
80
+ RAILS_VERSIONS = ['3.1.6', '3.2.6']
81
81
  else
82
- RAILS_VERSIONS = ['3.1.3', '3.2.5']
82
+ RAILS_VERSIONS = ['3.1.6', '3.2.6']
83
83
  end
84
84
  else
85
85
  RAILS_VERSIONS = IO.read('SUPPORTED_RAILS_VERSIONS').strip.split("\n")
@@ -2,8 +2,12 @@
2
2
  3.1.1
3
3
  3.1.2
4
4
  3.1.3
5
+ 3.1.4
6
+ 3.1.5
7
+ 3.1.6
5
8
  3.2.0
6
9
  3.2.1
7
10
  3.2.2
8
11
  3.2.3
9
- 3.2.5
12
+ 3.2.5
13
+ 3.2.6
@@ -1,7 +1,9 @@
1
1
  require 'erb'
2
+ require 'uri'
2
3
  require 'mongo'
3
4
  require 'active_support'
4
5
  require 'active_support/core_ext'
6
+ require 'active_support/core_ext/logger'
5
7
  require 'action_dispatch/http/upload'
6
8
  require 'mongodb_logger/replica_set_helper'
7
9
 
@@ -18,19 +20,17 @@ module MongodbLogger
18
20
 
19
21
  def initialize(options={})
20
22
  path = options[:path] || File.join(Rails.root, "log/#{Rails.env}.log")
21
- level = options[:level] || DEBUG
23
+ @level = options[:level] || DEBUG
22
24
  internal_initialize
23
25
  rescue => e
24
26
  # should use a config block for this
25
27
  Rails.env.production? ? (raise e) : (puts "MongodbLogger WARNING: Using BufferedLogger due to exception: " + e.message)
26
28
  ensure
27
29
  if disable_file_logging?
28
- @level = level
29
- @buffer = {}
30
- @auto_flushing = 1
31
- @guard = Mutex.new
30
+ @log = ::Logger.new(STDOUT)
31
+ @log.level = @level
32
32
  else
33
- super(path, level)
33
+ super(path, @level)
34
34
  end
35
35
  end
36
36
 
@@ -155,6 +155,8 @@ module MongodbLogger
155
155
  conn = Mongo::ReplSetConnection.new(*(@db_configuration['hosts'] <<
156
156
  {:connect => true, :pool_timeout => 6}))
157
157
  @db_configuration['replica_set'] = true
158
+ elsif @db_configuration['url']
159
+ conn = Mongo::Connection.from_uri(@db_configuration['url'])
158
160
  else
159
161
  conn = Mongo::Connection.new(@db_configuration['host'],
160
162
  @db_configuration['port'],
@@ -166,11 +168,17 @@ module MongodbLogger
166
168
  end
167
169
 
168
170
  def connect
169
- @mongo_connection ||= mongo_connection_object.db(@db_configuration['database'])
170
- if @db_configuration['username'] && @db_configuration['password']
171
- # the driver stores credentials in case reconnection is required
172
- @authenticated = @mongo_connection.authenticate(@db_configuration['username'],
171
+ if @db_configuration['url']
172
+ uri = URI.parse(@db_configuration['url'])
173
+ @mongo_connection ||= mongo_connection_object.db(uri.path.gsub(/^\//, ''))
174
+ @authenticated = true
175
+ else
176
+ @mongo_connection ||= mongo_connection_object.db(@db_configuration['database'])
177
+ if @db_configuration['username'] && @db_configuration['password']
178
+ # the driver stores credentials in case reconnection is required
179
+ @authenticated = @mongo_connection.authenticate(@db_configuration['username'],
173
180
  @db_configuration['password'])
181
+ end
174
182
  end
175
183
  end
176
184
 
@@ -1,3 +1,3 @@
1
1
  module MongodbLogger
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -0,0 +1,7 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: db/test.sqlite3
4
+ pool: 5
5
+ timeout: 5000
6
+ mongodb_logger:
7
+ url: mongodb://localhost:27017/system_log
data/test/test_helper.rb CHANGED
@@ -23,6 +23,7 @@ class Test::Unit::TestCase
23
23
  SAMPLE_CONFIG_DIR = File.join(CONFIG_DIR, "samples")
24
24
  DEFAULT_CONFIG = "database.yml"
25
25
  DEFAULT_CONFIG_WITH_AUTH = "database_with_auth.yml"
26
+ DEFAULT_CONFIG_WITH_URL = "database_with_url.yml"
26
27
  DEFAULT_CONFIG_WITH_COLLECTION = "database_with_collection.yml"
27
28
  DEFAULT_CONFIG_WITH_NO_FILE_LOGGING = "database_no_file_logging.yml"
28
29
  MONGOID_CONFIG = "mongoid.yml"
@@ -46,6 +46,19 @@ class MongodbLogger::LoggerTest < Test::Unit::TestCase
46
46
  teardown_for_config(MONGOID_CONFIG)
47
47
  end
48
48
  end
49
+
50
+ context "upon connecting with url settings" do
51
+ setup do
52
+ setup_for_config(DEFAULT_CONFIG_WITH_URL, DEFAULT_CONFIG)
53
+ end
54
+
55
+ should "connect with the url" do
56
+ @mongodb_logger.send(:connect)
57
+ assert @mongodb_logger.authenticated?
58
+ assert_equal "system_log", @mongodb_logger.mongo_connection.name
59
+ assert_equal ["localhost", 27017], @mongodb_logger.mongo_connection.connection.primary
60
+ end
61
+ end
49
62
 
50
63
  # this test will work without the --auth mongod arg
51
64
  context "upon connecting with authentication settings" do
@@ -243,11 +256,8 @@ class MongodbLogger::LoggerTest < Test::Unit::TestCase
243
256
  MongodbLogger::Logger.new
244
257
  end
245
258
 
246
- should "set buffer" do
247
- assert_equal({}, MongodbLogger::Logger.new.instance_variable_get(:@buffer))
248
- end
249
- should "set guard" do
250
- assert MongodbLogger::Logger.new.instance_variable_get(:@guard).is_a?(Mutex)
259
+ should "set log" do
260
+ assert MongodbLogger::Logger.new.instance_variable_get(:@log).is_a?(Logger)
251
261
  end
252
262
  end
253
263
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongodb_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-10 00:00:00.000000000 Z
12
+ date: 2012-07-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jasmine
16
- requirement: &70214557747660 !ruby/object:Gem::Requirement
16
+ requirement: &70234270786760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70214557747660
24
+ version_requirements: *70234270786760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70214557746540 !ruby/object:Gem::Requirement
27
+ requirement: &70234270785120 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.8.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70214557746540
35
+ version_requirements: *70234270785120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70214557745400 !ruby/object:Gem::Requirement
38
+ requirement: &70234270784460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70214557745400
46
+ version_requirements: *70234270784460
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
- requirement: &70214557744260 !ruby/object:Gem::Requirement
49
+ requirement: &70234270783780 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.10.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70214557744260
57
+ version_requirements: *70234270783780
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: cucumber
60
- requirement: &70214557742600 !ruby/object:Gem::Requirement
60
+ requirement: &70234270782740 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.1.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70214557742600
68
+ version_requirements: *70234270782740
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: capybara
71
- requirement: &70214557741300 !ruby/object:Gem::Requirement
71
+ requirement: &70234270781560 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.1.2
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70214557741300
79
+ version_requirements: *70234270781560
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: uglifier
82
- requirement: &70214557739340 !ruby/object:Gem::Requirement
82
+ requirement: &70234270780000 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 1.2.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70214557739340
90
+ version_requirements: *70234270780000
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: therubyracer
93
- requirement: &70214557735840 !ruby/object:Gem::Requirement
93
+ requirement: &70234270778360 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.9.9
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70214557735840
101
+ version_requirements: *70234270778360
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &70214557732460 !ruby/object:Gem::Requirement
104
+ requirement: &70234270773760 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 0.9.0
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70214557732460
112
+ version_requirements: *70234270773760
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: mongo
115
- requirement: &70214557730900 !ruby/object:Gem::Requirement
115
+ requirement: &70234270772900 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 1.6.1
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70214557730900
123
+ version_requirements: *70234270772900
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: bson_ext
126
- requirement: &70214557727500 !ruby/object:Gem::Requirement
126
+ requirement: &70234270771520 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 1.6.1
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70214557727500
134
+ version_requirements: *70234270771520
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: i18n
137
- requirement: &70214557569700 !ruby/object:Gem::Requirement
137
+ requirement: &70234270770440 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 0.4.1
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70214557569700
145
+ version_requirements: *70234270770440
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: json
148
- requirement: &70214557567700 !ruby/object:Gem::Requirement
148
+ requirement: &70234270769820 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: 1.6.1
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *70214557567700
156
+ version_requirements: *70234270769820
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: activesupport
159
- requirement: &70214557566120 !ruby/object:Gem::Requirement
159
+ requirement: &70234270769100 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: 3.0.0
165
165
  type: :runtime
166
166
  prerelease: false
167
- version_requirements: *70214557566120
167
+ version_requirements: *70234270769100
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: actionpack
170
- requirement: &70214557564680 !ruby/object:Gem::Requirement
170
+ requirement: &70234270768320 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: 3.0.0
176
176
  type: :runtime
177
177
  prerelease: false
178
- version_requirements: *70214557564680
178
+ version_requirements: *70234270768320
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: sprockets
181
- requirement: &70214557562960 !ruby/object:Gem::Requirement
181
+ requirement: &70234270767560 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ! '>='
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: 2.0.0
187
187
  type: :runtime
188
188
  prerelease: false
189
- version_requirements: *70214557562960
189
+ version_requirements: *70234270767560
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: coffee-script
192
- requirement: &70214557561880 !ruby/object:Gem::Requirement
192
+ requirement: &70234270766740 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ! '>='
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: 2.2.0
198
198
  type: :runtime
199
199
  prerelease: false
200
- version_requirements: *70214557561880
200
+ version_requirements: *70234270766740
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: sinatra
203
- requirement: &70214557560260 !ruby/object:Gem::Requirement
203
+ requirement: &70234270765820 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,10 +208,10 @@ dependencies:
208
208
  version: 1.2.0
209
209
  type: :runtime
210
210
  prerelease: false
211
- version_requirements: *70214557560260
211
+ version_requirements: *70234270765820
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: erubis
214
- requirement: &70214557559260 !ruby/object:Gem::Requirement
214
+ requirement: &70234270763480 !ruby/object:Gem::Requirement
215
215
  none: false
216
216
  requirements:
217
217
  - - ! '>='
@@ -219,10 +219,10 @@ dependencies:
219
219
  version: 2.6.6
220
220
  type: :runtime
221
221
  prerelease: false
222
- version_requirements: *70214557559260
222
+ version_requirements: *70234270763480
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: vegas
225
- requirement: &70214557558280 !ruby/object:Gem::Requirement
225
+ requirement: &70234270762780 !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
228
228
  - - ! '>='
@@ -230,7 +230,7 @@ dependencies:
230
230
  version: 0.1.2
231
231
  type: :runtime
232
232
  prerelease: false
233
- version_requirements: *70214557558280
233
+ version_requirements: *70234270762780
234
234
  description: MongoDB logger for Rails 3
235
235
  email:
236
236
  - leopard.not.a@gmail.com
@@ -352,6 +352,7 @@ files:
352
352
  - test/config/samples/database_replica_set.yml
353
353
  - test/config/samples/database_with_auth.yml
354
354
  - test/config/samples/database_with_collection.yml
355
+ - test/config/samples/database_with_url.yml
355
356
  - test/config/samples/mongodb_logger.yml
356
357
  - test/config/samples/mongoid.yml
357
358
  - test/config/samples/server_config.yml
@@ -410,6 +411,7 @@ test_files:
410
411
  - test/config/samples/database_replica_set.yml
411
412
  - test/config/samples/database_with_auth.yml
412
413
  - test/config/samples/database_with_collection.yml
414
+ - test/config/samples/database_with_url.yml
413
415
  - test/config/samples/mongodb_logger.yml
414
416
  - test/config/samples/mongoid.yml
415
417
  - test/config/samples/server_config.yml