mongodb_logger 0.3.3 → 0.4.0

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.
Files changed (61) hide show
  1. data/.rvmrc +1 -1
  2. data/.travis.yml +13 -7
  3. data/Gemfile +1 -7
  4. data/README.md +128 -117
  5. data/Rakefile +11 -40
  6. data/SUPPORTED_RAILS_VERSIONS +3 -1
  7. data/app/assets/javascripts/analytics.js.coffee +66 -0
  8. data/app/assets/javascripts/logs.js.coffee +107 -164
  9. data/app/assets/javascripts/mongodb_logger.js +11 -2
  10. data/app/assets/javascripts/vendors/jquery-1.8.3.min.js +2 -0
  11. data/app/assets/javascripts/vendors/jquery-ui-1.9.2.min.js +6 -0
  12. data/app/assets/javascripts/vendors/jquery.pjax.min.js +13 -6
  13. data/app/assets/javascripts/vendors/rickshaw/d3.layout.min.js +1 -0
  14. data/app/assets/javascripts/vendors/rickshaw/d3.min.js +2 -0
  15. data/app/assets/javascripts/vendors/rickshaw/rickshaw.js +2637 -0
  16. data/app/assets/stylesheets/humanity/{jquery-ui-1.8.16.custom.css → jquery-ui-1.9.2.custom.css} +0 -0
  17. data/app/assets/stylesheets/layout.css +1 -1
  18. data/app/assets/stylesheets/library.css.erb +2 -2
  19. data/app/assets/stylesheets/mongodb_logger.css +2 -1
  20. data/app/assets/stylesheets/rickshaw/rickshaw.css +307 -0
  21. data/bin/mongodb_logger_web +1 -2
  22. data/config.ru +8 -1
  23. data/examples/server_config.yml +1 -2
  24. data/features/mongodb_logger_web.feature +1 -1
  25. data/features/step_definitions/mongodb_logger_web_steps.rb +18 -12
  26. data/lib/mongodb_logger.rb +6 -2
  27. data/lib/mongodb_logger/adapters.rb +3 -0
  28. data/lib/mongodb_logger/adapters/base.rb +45 -0
  29. data/lib/mongodb_logger/adapters/mongo.rb +91 -0
  30. data/lib/mongodb_logger/adapters/moped.rb +95 -0
  31. data/lib/mongodb_logger/logger.rb +39 -71
  32. data/lib/mongodb_logger/replica_set_helper.rb +11 -2
  33. data/lib/mongodb_logger/server.rb +15 -36
  34. data/lib/mongodb_logger/server/model/analytic.rb +54 -37
  35. data/lib/mongodb_logger/server/view_helpers.rb +5 -1
  36. data/lib/mongodb_logger/server/views/analytics.erb +8 -7
  37. data/lib/mongodb_logger/server/views/layout.erb +4 -11
  38. data/lib/mongodb_logger/server/views/overview.erb +6 -6
  39. data/lib/mongodb_logger/server/views/shared/_collection_stats.erb +4 -4
  40. data/lib/mongodb_logger/server/views/shared/_dynamic_filter.erb +1 -1
  41. data/lib/mongodb_logger/server/views/shared/_log_info.erb +1 -1
  42. data/lib/mongodb_logger/server/views/shared/_tabs.erb +2 -2
  43. data/lib/mongodb_logger/server/views/shared/_tail_panel.erb +4 -4
  44. data/lib/mongodb_logger/server/views/shared/_top_panel.erb +1 -1
  45. data/lib/mongodb_logger/server/views/show_log.erb +11 -1
  46. data/lib/mongodb_logger/server_config.rb +17 -66
  47. data/lib/mongodb_logger/version.rb +1 -1
  48. data/mongodb_logger.gemspec +19 -20
  49. data/spec/javascripts/MongodbLoggerMainSpec.js +2 -2
  50. data/spec/javascripts/support/jasmine.yml +5 -5
  51. data/test/Gemfile_tests +2 -1
  52. data/test/config/samples/database.yml +3 -1
  53. data/test/config/samples/database_no_file_logging.yml +3 -1
  54. data/test/shoulda_macros/log_macros.rb +1 -1
  55. data/test/test.sh +5 -5
  56. data/test/test_helper.rb +26 -18
  57. data/test/unit/mongodb_logger_test.rb +21 -20
  58. metadata +70 -88
  59. data/app/assets/javascripts/vendors/jquery-1.7.1.min.js +0 -4
  60. data/app/assets/javascripts/vendors/jquery-ui-1.8.16.min.js +0 -791
  61. data/mongodb_logger.java.gemspec +0 -43
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm ruby-1.9.3-p194@mongodb_logger_gems --create
1
+ rvm ruby-1.9.3-p286@mongodb_logger_gems --create
data/.travis.yml CHANGED
@@ -1,19 +1,25 @@
1
- before_script:
2
- - "sh -e /etc/init.d/xvfb start"
3
- script: "sh -c 'export DISPLAY=:99.0 && test/test.sh'"
4
1
  language: ruby
2
+ before_install:
3
+ - gem install bundler --pre
4
+ - "export DISPLAY=:99.0"
5
+ - "sh -e /etc/init.d/xvfb start"
6
+ script: "sh -c 'test/test.sh'"
5
7
  services:
6
8
  - mongodb
7
9
  rvm:
8
10
  - 1.9.2
9
11
  - 1.9.3
10
- # - ruby-head
11
- # - jruby-head
12
+ - jruby-19mode
13
+ - ruby-head
14
+ - jruby-head
12
15
  notifications:
13
16
  email: false
14
17
  branches:
15
18
  only:
16
19
  - master
17
20
  - development
18
- - gem
19
- #bundler_args: --path vendor/bundle
21
+ - adapters
22
+ matrix:
23
+ allow_failures:
24
+ - rvm: ruby-head
25
+ - rvm: jruby-head
data/Gemfile CHANGED
@@ -1,10 +1,4 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in mongodb_logger.gemspec
4
- platforms :ruby do
5
- gemspec(:name => "mongodb_logger")
6
- end
7
-
8
- platforms :jruby do
9
- gemspec(:name => "mongodb_logger.java")
10
- end
4
+ gemspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # MongodbLogger [![Build Status](https://secure.travis-ci.org/le0pard/mongodb_logger.png)](http://travis-ci.org/le0pard/mongodb_logger) [![Dependency Status](https://gemnasium.com/le0pard/mongodb_logger.png)](https://gemnasium.com/le0pard/mongodb_logger)
1
+ # MongodbLogger [![Build Status](https://secure.travis-ci.org/le0pard/mongodb_logger.png)](http://travis-ci.org/le0pard/mongodb_logger)
2
2
 
3
3
  MongodbLogger is a alternative logger for Rails 3, which log all requests of you application into MongoDB database.
4
4
  It:
@@ -20,6 +20,15 @@ For rails 3.0.x latest version 0.2.8.
20
20
 
21
21
  gem "mongodb_logger"
22
22
 
23
+ 1. Add adapter in Gemfile. Supported mongo and moped (mongoid). For example:
24
+
25
+ gem "mongo"
26
+ gem "bson_ext"
27
+
28
+ or
29
+
30
+ gem "moped"
31
+
23
32
  1. Add the following line to your ApplicationController:
24
33
 
25
34
  include MongodbLogger::Base
@@ -36,19 +45,21 @@ For rails 3.0.x latest version 0.2.8.
36
45
  database.yml:
37
46
 
38
47
  development:
39
- adapter: postgresql
40
- database: my_app_development
41
- username: postgres
42
- mongodb_logger:
43
- database: my_app # required (the only required setting)
44
- capsize: <%= 10.megabytes %> # default: 250MB
45
- host: localhost # default: localhost
46
- port: 27017 # default: 27017
47
- replica_set: true # default: false - Adds retries for ConnectionFailure during voting for replica set master
48
- safe_insert: false # default: false - Enable/Disable safe inserts (wait for insert to propagate to all nodes)
49
- application_name: my_app # default: Rails.application
50
- disable_file_logging: false # default: false - disable logging into filesystem (only in MongoDB)
51
- collection: some_name # default: Rails.env + "_log" - name of MongoDB collection
48
+ adapter: postgresql
49
+ database: my_app_development
50
+ username: postgres
51
+ mongodb_logger:
52
+ database: my_app # required (the only required setting)
53
+ capsize: <%= 10.megabytes %> # default: 250MB
54
+ host: localhost # default: localhost
55
+ port: 27017 # default: 27017
56
+ replica_set: true # default: false - Adds retries for ConnectionFailure during voting for replica set master
57
+ write_options: # default: {w: 0, wtimeout: 200} - write options for inserts (w - wait for insert to propagate to "w" numbers of nodes)
58
+ w: 0
59
+ wtimeout: 200
60
+ application_name: my_app # default: Rails.application
61
+ disable_file_logging: false # default: false - disable logging into filesystem (only in MongoDB)
62
+ collection: some_name # default: Rails.env + "_log" - name of MongoDB collection
52
63
 
53
64
  mongodb\_logger.yml:
54
65
 
@@ -83,162 +94,162 @@ For rails 3.0.x latest version 0.2.8.
83
94
 
84
95
  rake mongodb_logger:assets:compile[public/assets]
85
96
 
97
+ ## Assets pipeline
98
+
86
99
  For capistrano possible compile assets by receipt. Add this to config/deploy.rb:
87
100
 
88
- require 'mongodb_logger/capistrano'
89
- set :mongodb_logger_assets_dir, "public/assets" # where to put mongodb assets
90
- after 'deploy:update_code', 'mongodb_logger:precompile'
101
+ require 'mongodb_logger/capistrano'
102
+ set :mongodb_logger_assets_dir, "public/assets" # where to put mongodb assets
103
+ after 'deploy:update_code', 'mongodb_logger:precompile'
91
104
 
92
105
  Also you can serve assets from rails app. You need just mount it separately:
93
106
 
94
- mount MongodbLogger::Server.new, :at => "/mongodb", :as => :mongodb
95
- mount MongodbLogger::Assets.instance, :at => "/mongodb/assets", :as => :mongodb_assets # assets
107
+ mount MongodbLogger::Server.new, :at => "/mongodb", :as => :mongodb
108
+ mount MongodbLogger::Assets.instance, :at => "/mongodb/assets", :as => :mongodb_assets # assets
96
109
 
97
110
 
98
111
  ## Usage
99
112
 
100
- After success instalation of gem, a new MongoDB document (record) will be created for each request on your application,
101
- by default will record the following information: Runtime, IP Address, Request Time, Controller, Method,
102
- Action, Params, Application Name and All messages sent to the logger. The structure of the MongoDB document looks like this:
103
-
104
- {
105
- 'action' : action_name,
106
- 'application_name' : application_name (rails root),
107
- 'controller' : controller_name,
108
- 'ip' : ip_address,
109
- 'messages' : {
110
- 'info' : [ ],
111
- 'debug' : [ ],
112
- 'error' : [ ],
113
- 'warn' : [ ],
114
- 'fatal' : [ ]
115
- },
116
- 'params' : { },
117
- 'path' : path,
118
- 'request_time' : date_of_request,
119
- 'runtime' : elapsed_execution_time_in_milliseconds,
120
- 'url' : full_url,
121
- 'method' : request method (GET, POST, OPTIONS),
122
- 'is_exception' : true only for exceptions (in other cases this field miss)
123
- }
124
-
125
- Beyond that, if you want to add extra information to the base of the document (let's say something like user\_id on every request that it's available),
126
- you can just call the Rails.logger.add\_metadata method on your logger like so (for example from a before\_filter):
127
-
128
- # make sure we're using the MongodbLogger in this environment
129
- if Rails.logger.respond_to?(:add_metadata)
130
- Rails.logger.add_metadata(:user_id => @current_user.id)
131
- end
113
+ After success instalation of gem, a new MongoDB document (record) will be created for each request on your application,
114
+ by default will record the following information: Runtime, IP Address, Request Time, Controller, Method,
115
+ Action, Params, Application Name and All messages sent to the logger. The structure of the MongoDB document looks like this:
116
+
117
+ {
118
+ 'action' : action_name,
119
+ 'application_name' : application_name (rails root),
120
+ 'controller' : controller_name,
121
+ 'ip' : ip_address,
122
+ 'messages' : {
123
+ 'info' : [ ],
124
+ 'debug' : [ ],
125
+ 'error' : [ ],
126
+ 'warn' : [ ],
127
+ 'fatal' : [ ]
128
+ },
129
+ 'params' : { },
130
+ 'path' : path,
131
+ 'request_time' : date_of_request,
132
+ 'runtime' : elapsed_execution_time_in_milliseconds,
133
+ 'url' : full_url,
134
+ 'method' : request method (GET, POST, OPTIONS),
135
+ 'session' : information from session,
136
+ 'is_exception' : true only for exceptions (in other cases this field miss)
137
+ }
138
+
139
+ Beyond that, if you want to add extra information to the base of the document (let's say something like user\_id on every request that it's available),
140
+ you can just call the Rails.logger.add\_metadata method on your logger like so (for example from a before\_filter):
141
+
142
+ # make sure we're using the MongodbLogger in this environment
143
+ Rails.logger.add_metadata(:user_id => @current_user.id) if Rails.logger.respond_to?(:add_metadata)
132
144
 
133
145
  ## Callback on exceptions
134
146
 
135
- For send email or do something on exception you can add callback:
136
-
147
+ For send email or do something on exception you can add callback:
148
+
137
149
  MongodbLogger::Base.configure do |config|
138
150
  config.on_log_exception do |mongo_record|
139
151
  # do something with this data, for example - send email (better - by background job)
140
152
  end
141
153
  end
142
-
143
- In this callback send record without "\_id", because logger not wait for insert response from MongoDB.
154
+
155
+ In this callback send record without "\_id", because logger not wait for insert response from MongoDB.
144
156
 
145
157
  ## The Front End
146
- To setup web interface in you Rails application, first of all create autoload file in you Rails application
147
-
148
- File: you\_rails\_app/config/initializers/mongodb\_logger.rb (example)
149
-
150
- require 'mongodb_logger/server' # required
151
- # this secure you web interface by basic auth, but you can skip this, if you no need this
152
- MongodbLogger::Server.use Rack::Auth::Basic do |username, password|
153
- [username, password] == ['admin', 'password']
154
- end
155
-
156
- and just mount MongodbLogger::Server in rails routes:
157
-
158
- File: you\_rails\_app/config/routes.rb
159
-
160
- mount MongodbLogger::Server.new, :at => "/mongodb"
161
-
162
- Now you can see web interface by url "http://localhost:3000/mongodb"
163
-
164
- If you've installed MongodbLogger as a gem and want running the front end without Rails application, you can do it by this command:
165
-
166
- mongodb_logger_web config.yml
158
+
159
+ To setup web interface in you Rails application, first of all create autoload file in you Rails application
160
+
161
+ File: you\_rails\_app/config/initializers/mongodb\_logger.rb (example)
167
162
 
168
- where config.yml is config, similar to config of Rails apps, but without Rails.env. Example:
163
+ require 'mongodb_logger/server' # required
164
+ # this secure you web interface by basic auth, but you can skip this, if you no need this
165
+ MongodbLogger::Server.use Rack::Auth::Basic do |username, password|
166
+ [username, password] == ['admin', 'password']
167
+ end
168
+
169
+ and just mount MongodbLogger::Server in rails routes:
170
+
171
+ File: you\_rails\_app/config/routes.rb
169
172
 
170
- database: app_logs_dev
171
- host: localhost
172
- port: 27017
173
- collection: development_log # set for see development logs
173
+ mount MongodbLogger::Server.new, :at => "/mongodb"
174
174
 
175
- parameter "collection" should be set, if your set custom for your Rails application or start this front end not for production
176
- enviroment (by default taken "production\_log" collection, in Rails application gem generate "#{Rails.env}\_log" collection,
177
- if it is not defined in config).
178
-
179
- It's a thin layer around rackup so it's configurable as well:
180
-
181
- mongodb_logger_web config.yml -p 8282
175
+ Now you can see web interface by url "http://localhost:3000/mongodb"
176
+
177
+ If you've installed MongodbLogger as a gem and want running the front end without Rails application, you can do it by this command:
178
+
179
+ mongodb_logger_web config.yml
180
+
181
+ where config.yml is config, similar to config of Rails apps, but without Rails.env. Example:
182
+
183
+ database: app_logs_dev
184
+ host: localhost
185
+ port: 27017
186
+ collection: development_log # set for see development logs
187
+
188
+ parameter "collection" should be set, if your set custom for your Rails application or start this front end not for production
189
+ enviroment (by default taken "production\_log" collection, in Rails application gem generate "#{Rails.env}\_log" collection,
190
+ if it is not defined in config).
191
+
192
+ It's a thin layer around rackup so it's configurable as well:
193
+
194
+ mongodb_logger_web config.yml -p 8282
182
195
 
183
196
  ### Passenger, Unicorn, Thin, etc.
184
197
 
185
- Using Passenger, Unicorn, Thin, etc? MongodbLogger ships with a `config.ru` you can use. See guide:
198
+ Using Passenger, Unicorn, Thin, etc? MongodbLogger ships with a `config.ru` you can use. See guide:
186
199
 
187
- * Passenger Apache: <http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_rack_based_ruby_application>
188
- * Passenger Nginx: <http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_a_rack_app>
189
- * Unicorn: <http://unicorn.bogomips.org>
190
- * Thin: <http://code.macournoyer.com/thin/usage>
191
-
192
- Don't forget setup MONGODBLOGGERCONFIG env variable, which provide information about MongodbLogger config. Example starting with unicorn:
193
-
194
- MONGODBLOGGERCONFIG=examples/server_config.yml unicorn
200
+ * Passenger Apache: <http://www.modrails.com/documentation/Users%20guide%20Apache.html#_deploying_a_rack_based_ruby_application>
201
+ * Passenger Nginx: <http://www.modrails.com/documentation/Users%20guide%20Nginx.html#deploying_a_rack_app>
202
+ * Unicorn: <http://unicorn.bogomips.org>
203
+ * Thin: <http://code.macournoyer.com/thin/usage>
204
+
205
+ Don't forget setup MONGODBLOGGERCONFIG env variable, which provide information about MongodbLogger config. Example starting with unicorn:
206
+
207
+ MONGODBLOGGERCONFIG=examples/server_config.yml unicorn
195
208
 
196
209
  ## Demo Application with MongodbLogger
197
210
 
198
- Demo: [http://demo-mongodb-logger.catware.org/](http://demo-mongodb-logger.catware.org/)
211
+ Demo: [http://demo-mongodb-logger.catware.org/](http://demo-mongodb-logger.catware.org/)
199
212
 
200
- Demo Sources: [https://github.com/le0pard/mongodb_logger_example_heroku](https://github.com/le0pard/mongodb_logger_example_heroku)
213
+ Demo Sources: [https://github.com/le0pard/mongodb_logger_example_heroku](https://github.com/le0pard/mongodb_logger_example_heroku)
201
214
 
202
215
 
203
216
  ## Querying via the Rails console
204
217
 
205
218
  And now, for a couple quick examples on getting ahold of this log data...
206
219
  First, here's how to get a handle on the MongoDB from within a Rails console:
207
-
208
- >> db = Rails.logger.mongo_connection
209
- => #<Mongo::DB:0x007fdc7c65adc8 @name="monkey_logs_dev" ... >
210
-
211
- >> collection = db[Rails.logger.mongo_collection_name]
212
- => #<Mongo::Collection:0x007fdc7a4d12b0 @name="development_log" .. >
220
+
221
+ >> db = Rails.logger.mongo_adapter.connection
222
+ => #<Mongo::DB:0x007fdc7c65adc8 @name="monkey_logs_dev" ... >
223
+ >> collection = Rails.logger.mongo_adapter.collection
224
+ => #<Mongo::Collection:0x007fdc7a4d12b0 @name="development_log" .. >
213
225
 
214
226
  Once you've got the collection, you can find all requests for a specific user (with id):
215
227
 
216
- >> cursor = collection.find(:user_id => '12355')
217
- => #<Mongo::Cursor:0x1031a3e30 ... >
218
- >> cursor.count
219
- => 5
228
+ >> cursor = collection.find(:user_id => '12355')
229
+ => #<Mongo::Cursor:0x1031a3e30 ... >
230
+ >> cursor.count
231
+ => 5
220
232
 
221
233
  Find all requests that took more that one second to complete:
222
234
 
223
- >> collection.find({:runtime => {'$gt' => 1000}}).count
224
- => 3
235
+ >> collection.find({:runtime => {'$gt' => 1000}}).count
236
+ => 3
225
237
 
226
238
  Find all order#show requests with a particular order id (id=order\_id):
227
239
 
228
- >> collection.find({"controller" => "order", "action"=> "show", "params.id" => order_id})
240
+ >> collection.find({"controller" => "order", "action"=> "show", "params.id" => order_id})
229
241
 
230
242
  Find all requests with an exception that contains "RoutingError" in the message or stack trace:
231
243
 
232
- >> collection.find({"messages.error" => /RoutingError/})
244
+ >> collection.find({"messages.error" => /RoutingError/})
233
245
 
234
246
  Find all requests with errors:
235
247
 
236
- >> collection.find({"is_exception" => true})
248
+ >> collection.find({"is_exception" => true})
237
249
 
238
250
  Find all requests with a request\_date greater than '11/18/2010 22:59:52 GMT'
239
251
 
240
- >> collection.find({:request_time => {'$gt' => Time.utc(2010, 11, 18, 22, 59, 52)}})
252
+ >> collection.find({:request_time => {'$gt' => Time.utc(2010, 11, 18, 22, 59, 52)}})
253
+
241
254
 
242
-
243
-
244
255
  Copyright (c) 2009-2012 Phil Burrows, CustomInk (based on https://github.com/customink/central_logger) and Leopard released under the MIT license
data/Rakefile CHANGED
@@ -1,43 +1,14 @@
1
1
  #!/usr/bin/env rake
2
+ require 'rubygems'
3
+ require 'bundler'
4
+
5
+ Bundler.require
2
6
  require 'rake'
3
7
  require 'rake/testtask'
4
- begin
5
- require 'cucumber/rake/task'
6
- rescue LoadError
7
- $stderr.puts "Please install cucumber: `gem install cucumber`"
8
- exit 1
9
- end
10
-
11
- #require "bundler/gem_tasks"
12
- require 'bundler/gem_helper'
13
- Bundler::GemHelper.install_tasks(:name => 'mongodb_logger')
14
- Bundler::GemHelper.install_tasks(:name => 'mongodb_logger.java')
8
+ require 'cucumber'
9
+ require 'cucumber/rake/task'
15
10
 
16
- #########################################
17
- ### Help tasks
18
- #########################################
19
-
20
- require 'coffee-script'
21
- require 'uglifier'
22
- namespace :js do
23
- desc "compile coffee-scripts from ./lib/mongodb_logger/server/coffee to ./lib/mongodb_logger/server/public/javascripts"
24
- task :compile do
25
- source = "#{File.dirname(__FILE__)}/lib/mongodb_logger/server/coffee/"
26
- javascripts = "#{File.dirname(__FILE__)}/lib/mongodb_logger/server/public/javascripts/"
27
-
28
- Dir.foreach(source) do |cf|
29
- unless cf == '.' || cf == '..'
30
- js_compiled = CoffeeScript.compile File.read("#{source}#{cf}")
31
- js = Uglifier.compile js_compiled
32
- open "#{javascripts}#{cf.gsub('.coffee', '.js')}", 'w' do |f|
33
- f.puts js
34
- end
35
- end
36
- end
37
-
38
- puts "All done."
39
- end
40
- end
11
+ require "bundler/gem_tasks"
41
12
 
42
13
  #########################################
43
14
  ### TESTS
@@ -77,17 +48,17 @@ LOCAL_GEM_ROOT = File.join(GEM_ROOT, 'tmp', 'local_gems').freeze
77
48
  if ENV['CI']
78
49
  # for ci testing only major rails versions
79
50
  if 'java' == RUBY_PLATFORM
80
- RAILS_VERSIONS = ['3.1.6', '3.2.7']
51
+ RAILS_VERSIONS = ['3.1.6', '3.2.9']
81
52
  else
82
- RAILS_VERSIONS = ['3.1.6', '3.2.7']
53
+ RAILS_VERSIONS = ['3.1.6', '3.2.9']
83
54
  end
84
55
  else
85
56
  RAILS_VERSIONS = IO.read('SUPPORTED_RAILS_VERSIONS').strip.split("\n")
86
57
  end
87
58
 
88
59
 
89
- LOCAL_GEMS = [['sqlite3', nil], ['shoulda', nil], ["rspec", nil], ["mocha", nil], ["cucumber", nil], ["bundler", "1.0.21"]] +
90
- RAILS_VERSIONS.collect { |version| ['rails', version] }
60
+ LOCAL_GEMS = [['sqlite3', nil], ['shoulda', nil], ["rspec", nil], ["mocha", nil], ["cucumber", nil], ["bundler", "1.0.21"]] +
61
+ RAILS_VERSIONS.collect { |version| ['rails', version] }
91
62
 
92
63
  desc "Vendor test gems: Run this once to prepare your test environment"
93
64
  task :vendor_test_gems do
@@ -11,4 +11,6 @@
11
11
  3.2.3
12
12
  3.2.5
13
13
  3.2.6
14
- 3.2.7
14
+ 3.2.7
15
+ 3.2.8
16
+ 3.2.9