moses-vanity 1.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/.autotest +22 -0
  2. data/.gitignore +7 -0
  3. data/.rvmrc +3 -0
  4. data/.travis.yml +13 -0
  5. data/CHANGELOG +374 -0
  6. data/Gemfile +28 -0
  7. data/MIT-LICENSE +21 -0
  8. data/README.rdoc +108 -0
  9. data/Rakefile +189 -0
  10. data/bin/vanity +16 -0
  11. data/doc/_config.yml +2 -0
  12. data/doc/_layouts/_header.html +34 -0
  13. data/doc/_layouts/page.html +47 -0
  14. data/doc/_metrics.textile +12 -0
  15. data/doc/ab_testing.textile +210 -0
  16. data/doc/configuring.textile +45 -0
  17. data/doc/contributing.textile +93 -0
  18. data/doc/credits.textile +23 -0
  19. data/doc/css/page.css +83 -0
  20. data/doc/css/print.css +43 -0
  21. data/doc/css/syntax.css +7 -0
  22. data/doc/email.textile +129 -0
  23. data/doc/experimental.textile +31 -0
  24. data/doc/faq.textile +8 -0
  25. data/doc/identity.textile +43 -0
  26. data/doc/images/ab_in_dashboard.png +0 -0
  27. data/doc/images/clear_winner.png +0 -0
  28. data/doc/images/price_options.png +0 -0
  29. data/doc/images/sidebar_test.png +0 -0
  30. data/doc/images/signup_metric.png +0 -0
  31. data/doc/images/vanity.png +0 -0
  32. data/doc/index.textile +91 -0
  33. data/doc/metrics.textile +231 -0
  34. data/doc/rails.textile +89 -0
  35. data/doc/site.js +27 -0
  36. data/generators/templates/vanity_migration.rb +53 -0
  37. data/generators/vanity_generator.rb +8 -0
  38. data/lib/generators/templates/vanity_migration.rb +53 -0
  39. data/lib/generators/vanity_generator.rb +15 -0
  40. data/lib/vanity.rb +36 -0
  41. data/lib/vanity/adapters/abstract_adapter.rb +140 -0
  42. data/lib/vanity/adapters/active_record_adapter.rb +248 -0
  43. data/lib/vanity/adapters/mock_adapter.rb +157 -0
  44. data/lib/vanity/adapters/mongodb_adapter.rb +178 -0
  45. data/lib/vanity/adapters/redis_adapter.rb +160 -0
  46. data/lib/vanity/backport.rb +26 -0
  47. data/lib/vanity/commands/list.rb +21 -0
  48. data/lib/vanity/commands/report.rb +64 -0
  49. data/lib/vanity/commands/upgrade.rb +34 -0
  50. data/lib/vanity/experiment/ab_test.rb +507 -0
  51. data/lib/vanity/experiment/base.rb +214 -0
  52. data/lib/vanity/frameworks.rb +16 -0
  53. data/lib/vanity/frameworks/rails.rb +318 -0
  54. data/lib/vanity/helpers.rb +66 -0
  55. data/lib/vanity/images/x.gif +0 -0
  56. data/lib/vanity/metric/active_record.rb +85 -0
  57. data/lib/vanity/metric/base.rb +244 -0
  58. data/lib/vanity/metric/google_analytics.rb +83 -0
  59. data/lib/vanity/metric/remote.rb +53 -0
  60. data/lib/vanity/playground.rb +396 -0
  61. data/lib/vanity/templates/_ab_test.erb +28 -0
  62. data/lib/vanity/templates/_experiment.erb +5 -0
  63. data/lib/vanity/templates/_experiments.erb +7 -0
  64. data/lib/vanity/templates/_metric.erb +14 -0
  65. data/lib/vanity/templates/_metrics.erb +13 -0
  66. data/lib/vanity/templates/_report.erb +27 -0
  67. data/lib/vanity/templates/_vanity.js.erb +20 -0
  68. data/lib/vanity/templates/flot.min.js +1 -0
  69. data/lib/vanity/templates/jquery.min.js +19 -0
  70. data/lib/vanity/templates/vanity.css +26 -0
  71. data/lib/vanity/templates/vanity.js +82 -0
  72. data/lib/vanity/version.rb +11 -0
  73. data/test/adapters/redis_adapter_test.rb +17 -0
  74. data/test/experiment/ab_test.rb +771 -0
  75. data/test/experiment/base_test.rb +150 -0
  76. data/test/experiments/age_and_zipcode.rb +19 -0
  77. data/test/experiments/metrics/cheers.rb +3 -0
  78. data/test/experiments/metrics/signups.rb +2 -0
  79. data/test/experiments/metrics/yawns.rb +3 -0
  80. data/test/experiments/null_abc.rb +5 -0
  81. data/test/metric/active_record_test.rb +277 -0
  82. data/test/metric/base_test.rb +293 -0
  83. data/test/metric/google_analytics_test.rb +104 -0
  84. data/test/metric/remote_test.rb +109 -0
  85. data/test/myapp/app/controllers/application_controller.rb +2 -0
  86. data/test/myapp/app/controllers/main_controller.rb +7 -0
  87. data/test/myapp/config/boot.rb +110 -0
  88. data/test/myapp/config/environment.rb +10 -0
  89. data/test/myapp/config/environments/production.rb +0 -0
  90. data/test/myapp/config/routes.rb +3 -0
  91. data/test/passenger_test.rb +43 -0
  92. data/test/playground_test.rb +26 -0
  93. data/test/rails_dashboard_test.rb +37 -0
  94. data/test/rails_helper_test.rb +36 -0
  95. data/test/rails_test.rb +389 -0
  96. data/test/test_helper.rb +145 -0
  97. data/vanity.gemspec +26 -0
  98. metadata +202 -0
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ Autotest.add_hook :initialize do |autotest|
3
+ %w{.git .DS_Store Gemfile bin doc html}.each do |exception|
4
+ autotest.add_exception(exception)
5
+ end
6
+ autotest.clear_mappings
7
+ autotest.add_mapping(/^test.*\/.*_test\.rb$/) { |filename, _| filename }
8
+ autotest.add_mapping(/test_helper.rb/) { |f, _| autotest.files_matching(/test\/.*_test\.rb$/) }
9
+ autotest.add_mapping(/^lib\/vanity\/(.*)\.rb/) do |filename, _|
10
+ file = File.basename(filename, '.rb')
11
+ dir = File.split(File.dirname(filename)).last
12
+ autotest.files_matching %r%^test/(#{file}|#{dir})_test.rb$%
13
+ end
14
+ end
15
+
16
+
17
+ # Don't run entire test suite when going from red to green
18
+ class Autotest
19
+ def tainted
20
+ false
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ .bundle
2
+ .yardoc
3
+ *.gem
4
+ html
5
+ test/myapp/log/
6
+ vendor
7
+ Gemfile.lock
data/.rvmrc ADDED
@@ -0,0 +1,3 @@
1
+ export RUBYOPT="rubygems"
2
+ export RUBYLIB="."
3
+ rvm 1.9.2
@@ -0,0 +1,13 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.2
4
+ gemfile:
5
+ - Gemfile
6
+ env:
7
+ - DB=mongodb
8
+ - DB=redis
9
+ - DB=mysql
10
+ #- DB=postgres
11
+ before_script:
12
+ - "mysql -e 'create database vanity_test;' >/dev/null"
13
+ #- "psql -c 'create database vanity_test;' -U postgres >/dev/null"
@@ -0,0 +1,374 @@
1
+ == 1.7.1 (2011-09-30)
2
+
3
+ Minor change in locating config file (Ariel Salomon)
4
+
5
+ Allow for table names in specified :timestamps (Peter Kovacs)
6
+
7
+ When a named scope includes a join, created_at can be ambiguous. Use
8
+
9
+ metric "Sky is limit" do
10
+ model Sky, :timestamp => 'skies.created_at'
11
+ end
12
+
13
+ to disambiguate.
14
+
15
+ Make vanity_identity method private on controller; ensure no default route
16
+ (Ariel Salomon)
17
+
18
+ Add Rails 2.3-compatible generator (Ariel Salomon)
19
+
20
+ Lazy Playground initialization for rails 3.1 (Jonathan del Strother)
21
+
22
+ Update documentation to reflect that host, port, and database options for redis
23
+ connections are deprecated in favor of using the connection option with a URI
24
+ (Patrick Joyce)
25
+
26
+
27
+ == 1.7.0 (2011-08-27)
28
+
29
+ 1.7.0 adds support for ActionMailer, for example:
30
+
31
+ class UserMailer < ActionMailer::Base
32
+ def invite_email(user)
33
+ use_vanity_mailer user
34
+ mail :to => user.email, :subject => ab_test(:invite_subject)
35
+ end
36
+ end
37
+
38
+ See the documentation for more details.
39
+
40
+
41
+ With 1.7.0 and moving forward, if you need to setup a database schema
42
+ (relational databases only), please use the generator:
43
+
44
+ $ rails generate vanity
45
+ $ rake db:migrate
46
+
47
+
48
+ Rails generator for AR migrations (Zaid Zawaideh)
49
+
50
+ A/B testing in ActionMailer (Joseph Sofaer)
51
+
52
+ Fix hung passenger processes when using Redis client (Chris Griego)
53
+
54
+
55
+ == 1.6.1 (2011-07-20)
56
+
57
+ Fixed cookie domain setting.
58
+
59
+
60
+ == 1.6.0 (2011-07-18)
61
+
62
+ If robots or spiders make up a significant portion of your sites traffic they
63
+ can affect your conversion rate. Vanity can optionally add participants to the
64
+ experiments using asynchronous JavaScript callbacks, which will keep almost all
65
+ robots out. To set this up simply do the following:
66
+
67
+ 1. Vanity.playground.use_js!
68
+ 2. Set Vanity.playground.add_participant_path = '/path/to/vanity/action'
69
+ 3. Add <%= Vanity.vanity_js %> to the bottom of any view that needs to set up
70
+ an ab_test
71
+
72
+
73
+ Fix for metrics on rails 3 models (Esteban Pastorino).
74
+
75
+ Use JavaScript to report participants, useful for ignoring bots on publicly
76
+ accessible pages (Doug Cole).
77
+
78
+ AbTest#choose returns an Alternative rather than just the value (Doug Cole).
79
+
80
+ Add warnings instead of swallowing errors (Anthony Eden).
81
+
82
+ Fixing broken test for mongodb adapter (Joshua Krall).
83
+
84
+ Fix returning correct experiment when in test mode and manually set via
85
+ #chooses (Ryan Sonnek).
86
+
87
+ Don't round the conversion rate before using it, it affects the test results,
88
+ making them less accurate (Doug Cole).
89
+
90
+ Fixed loading config from yml when using other than redis adapter (Arttu Tervo)
91
+
92
+ Default to localhost unless host in config file (Arttu Tervo)
93
+
94
+ Fixed mongo connection adapter connect! when called after disconnect! (Arttu
95
+ Tervo)
96
+
97
+ Use mongo replica set connection if multiple hosts were given in YAML
98
+ configuration file (Arttu Tervo)
99
+
100
+ Cookie domain from rails configuration (Arttu Tervo)
101
+
102
+ Add bson_ext to Gemfile to load C extension for mongodb ruby driver, and
103
+ prevent Notice messages as the tests run (tenaciousflea)
104
+
105
+ Update redis-namespace dependency to 1.0 (Ville Lautanala)
106
+
107
+
108
+ == 1.5.3 (2011-04-11)
109
+
110
+ Added number of participants and number of converted participants to ab_test
111
+ template (Avishai Weiss).
112
+
113
+
114
+ == 1.5.2 (2011-04-11)
115
+
116
+ Fixed to work with redis-rb 2.2.0 (Kevin Menard).
117
+
118
+ Fixed to work with Postgresql: it complained that the index names generated by
119
+ add_index were too long, so I gave them shorter names (Robert Rasmussen).
120
+
121
+ Fixed SQL errors comparing an int to a varchar column, and no "as" on a column
122
+ alias (Robert Rasmussen).
123
+
124
+ Fixed auto-escaped text in the experiment template that I marked as html_safe
125
+ (Robert Rasmussen).
126
+
127
+ Added some Rails 3.x documentation to the 2-minute demo instructionsa (Andy Atkinson).
128
+
129
+ Fix to set collecting flag from vanity.yml config file.
130
+
131
+
132
+ == 1.5.1 (2010-12-20)
133
+
134
+ Fixes some minor bugs in RoR when including the Dashboard (netguru)
135
+
136
+
137
+ == 1.5.0 (2010-10-23)
138
+
139
+ Note: MongoDB URI scheme changed from mongo: to mongodb: to be consistent with
140
+ the rest of the civilized world. If you get an error because Vanity can't find
141
+ the MongoDB adapter, fear not! It's still there, just need to update your
142
+ config/vanity.yml file.
143
+
144
+
145
+ Rails 3 support (Adam Keys, Stephen Celis, Brian Leonard, Ryan Carver)
146
+
147
+ Changed MongoDB URI scheme from 'mongo://' to the standard 'mongodb://' and
148
+ renamed the mongodb adapter filename to make it match (JS Boulanger)
149
+
150
+ Added support for ERB in YAML configuration files (JS Boulanger)
151
+
152
+ Fixed initialization of playground's Rails defaults such that they can be
153
+ overriden in the environment (JS Boulanger)
154
+
155
+
156
+ == 1.4.0 (2010-08-06)
157
+
158
+ Note: Run this command to upgrade your database to 1.4, or you will not have
159
+ access to collected metrics and experiment data:
160
+
161
+ vanity upgrade
162
+
163
+
164
+ Connection adapters! We have a new way for managing connections which extends
165
+ to multiple adapters (not just Redis). The easiest is to use the configuration
166
+ file config/vanity.yml. For example:
167
+
168
+ development:
169
+ adapter: redis
170
+ production:
171
+ adapter: mongodb
172
+
173
+ We get to keep Redis, add new MongoDB adapter, but lose Mock. It's still there,
174
+ but there's a new way to use Vanity outside production: you can turn data
175
+ collection on/off.
176
+
177
+ Under Rails, data collection is turned off in all environments except
178
+ production. To turn if on/off:
179
+
180
+ Vanity.playground.collecting = true/false.
181
+
182
+
183
+ This release switches to latest Redis gem and uses redis-namespace (what took
184
+ me so long?) If your own code relies on the Redis gem, watch out: there are
185
+ some subtle incompatibilities between 1.x and 2.x.
186
+
187
+
188
+ Now using RVM, gemsets and Bundler to test Vanity in different configurations.
189
+ To run the full set of tests in all the supported versions of Ruby:
190
+ rake test:rubies
191
+ To test specific version of Ruby:
192
+ rake test:rubies[1.8.7]
193
+ To switch around:
194
+ rvm 1.9.2@vanity
195
+
196
+ * Added: Adapter API, see Vanity::Adapters::AbstractAdapter and
197
+ Vanity::Adapters::RedisAdapter.
198
+ * Added: MongoDB support.
199
+ * Added: Upgrade command.
200
+ * Added: Metric.last_update_at.
201
+ * Added: Vanity.playground.collecting. You want this to be true only in
202
+ production environment. When false, disables collecting of metric and
203
+ experiment data.
204
+ * Added: Remote metrics. Push data to remote service.
205
+ * Added: Partial support for multi-series metrics. Laying the ground for the
206
+ future.
207
+ * Change: Vanity.playground.redis and redis= methods are deprecated, use
208
+ connection and establish_connection instead.
209
+ * Removed: Metric.created_at, derived from experiment and never used.
210
+
211
+
212
+ == 1.3.0 (2010-03-01)
213
+
214
+ This release adds support for Google Analytics, AdWords and forking servers
215
+ (Passenger, Unicorn).
216
+
217
+ To view Google Analytics metrics from within Vanity, first make sure you are
218
+ using Garb. For example, in your Gemfile:
219
+
220
+ gem "vanity", "1.3.0"
221
+ gem "garb", "0.5.0"
222
+
223
+ Next, authenticate using your account credentials. For example, in your
224
+ config/environments/production.rb:
225
+
226
+ require "garb"
227
+ Garb::Session.login('..email..', '..password..', account_type: "GOOGLE") rescue nil
228
+
229
+ Last, define Vanity metrics that tap to Google Analytics metrics. For example:
230
+
231
+ metric "Acquisition: Visitors" do
232
+ description "Unique visitors on any given page, as tracked by Google Analytics"
233
+ google_analytics "UA-1828623-6", :visitors
234
+ end
235
+
236
+ * Added: Support for Google Analytics metrics, thanks to Tony Pitale's Garb and blog post: http://www.viget.com/extend/user-goal-tracking-in-rails-with-vanity-and-google-analytics/
237
+ * Added: Vanity query parameter that you can use to choose a particular alternative, e.g. to tie an advertisement banner with content of the site.
238
+ * Added: Command line "vanity list" catalogs all ongoing experiments, their alternatives (and fingerprints) and all metrics.
239
+ * Added: Playground.reconnect!, particularly useful when forking (Passenger, Unicorn, etc).
240
+ * Added: Vanity loads Redis configuration from config/redis.yml (if you have such a file).
241
+ * Changed: New way to specify connection configuration: Vanity.playground.redis = "localhost:6379". Use this instead of the separate host/port/db attribute.
242
+ * Changed: Rails integration now separates use_vanity method, filters and helpers.
243
+ * Changed: Explicit vanity_context_filter and vanity_reload_filter so you can skip them, or order filters relative to them.
244
+ * Fixed: If metric cannot be loaded (e.g. offline, no db access) show error message for that metric but don't break dashboard.
245
+ * Fixed: AbTest incorrectly calls identify method instead of identity (issue #2)
246
+ * Fixed: Running vanity command, automatically detects and loads Rails.
247
+ * Fixed: Vanity now picks up on load_path set from within config/environment.rb.
248
+ * Removed: Vanity.playground.define is deprecated. Bad choice for a method name. If you need this feature, make a suggestion and let's create a better API.
249
+
250
+ == 1.2.0 (2009-12-14)
251
+ This release introduces metrics backed by ActiveRecord. Use them when your model is already tracking a metric, and you get instant historical data.
252
+
253
+ Example, track sign ups using User model:
254
+
255
+ metric "Signups" do
256
+ model Account
257
+ end
258
+
259
+ Example, track satisfaction using Survey model:
260
+ metric "Satisfaction" do
261
+ model Survey, :average=>:rating
262
+ end
263
+
264
+ Example, track only high ratings:
265
+ metric "High ratings" do
266
+ model Rating, :conditions=>["stars >= 4"]
267
+ end
268
+
269
+ There's no need to call track! on these metrics.
270
+
271
+ * Added: Metrics backed by ActiveRecord.
272
+ * Added: track! and ab_test methods now available from Object (i.e. everywhere).
273
+ * Added: Playground.load!. Now loading all metrics and experiments from Rails initializer.
274
+ * Changed: Decoupled metric name from identifier. You can now define a metric with more descriptive name, e.g. "Cheers per second (user satisfaction)" and keep their ID simple. Identifier is matched against the file name (for metrics loaded from experiments/metrics).
275
+ * Changed: Metrics no longer defined on-demand, i.e. calling playground.metric either returns existing metric or raises exception.
276
+ * Changed: Playground.experiments returns hash instead of array.
277
+ * Changed: All dates in report are UTC, since we don't know which locale to use.
278
+ * Removed: Object.experiment is deprecated, please call Vanity.playground.experiment directly.
279
+ * Fixed: Playground no longer changes logging level on supplied logger.
280
+
281
+ == 1.1.1 (2009-12-4)
282
+ * Fixed: Binding issue that shows up on 1.8.6/7.
283
+
284
+ == 1.1.0 (2009-12-4)
285
+ This release introduces metrics. Metrics are the gateway drug to better software.
286
+
287
+ It’s as simple as defining a metric:
288
+
289
+ metric "Cheers" do
290
+ description "They love us, don't they?"
291
+ end
292
+
293
+ Tracking it from your code:
294
+
295
+ track! :cheers
296
+
297
+ And watching the graph from the Dashboard.
298
+
299
+ You can (should) also use metrics with your A/B tests, for example:
300
+
301
+ ab_test "Pricing options" do
302
+ metrics :signup
303
+ alternatives 15, 25, 29
304
+ end
305
+
306
+ This new usage may become requirement in a future release.
307
+
308
+ Much thanks to Ian Sefferman for fixing issues with Ruby 1.8.7 and Rails support.
309
+
310
+ * Added: Metrics.
311
+ * Added: Use Vanity.playground.mock! when running tests and you'd rather not access a live Redis server.
312
+ * Changed: A/B tests now using metrics for tracking.
313
+ * Changed: Now throwing NameError instead of LoadError when failing to load experiment/metric. NameError can be rescued on same line.
314
+ * Changed: New, easier URL mapping for Dashboard: map.vanity "/vanity", :controller=>:vanity.
315
+ * Changed: All tests are green on Ruby 1.8.6, 1.8.7 and 1.9.1.
316
+ * Changed: Switched to redis-rb from http://github.com/ezmobius/redis-rb.
317
+ * Deprecated: Please call experiment method with experiment identifier (a symbol) and not experiment name.
318
+
319
+ == 1.0.0 (2009-11-19)
320
+ This release changes the way you define a new experiment. You can use a method suitable for the type of experiment you want to define, or call the generic define method (previously: experiment method). For example:
321
+
322
+ ab_test "My A/B test" do
323
+ alternatives :a, :b
324
+ end
325
+
326
+ The experiment method is no longer overloaded: it looks up an experiment (loading its definition if necessary), but does not define an experiment. The ab_test method is overloaded, though this may change in the future.
327
+
328
+ In addition, the ab_goal! method is now track!. This method may be used for other tests in the future.
329
+
330
+ * Added: A/B test report now showing number of participants.
331
+ * Added: AbTest.score method accepts minimum probability (default 90), and
332
+ * Removed: Experiment.reset! method. Destroy and save have the same effect.
333
+ * Changed: Playground.define now requires an experiment type, ab_test is not the default any more.
334
+ * Changed: When you run Vanity in development mode (configuration.cache_classes = false), it will reload experiments on each request. You can also Vanity.playground.reload!.
335
+ * Changed: Fancy AJAX trickery in Rails console.
336
+ * Changed: You can break long experiment descriptions into multiple paragraphs using two consecutive newlines.
337
+ * Changed: AbTest confidence becomes probability; only returns choice alternative with probability equal or higher than that.
338
+ * Changed: ab_goal! becomes track!.
339
+ * Changed: Console becomes Dashboard, which is less confusing with rails console (script/console).
340
+
341
+ == 0.3.1 (2009-11-13)
342
+ * Changed: Redis 1.0 is now vendored into Vanity. This means one less dependecy ... actually two, since Redis brings with it RSpec.
343
+
344
+ == 0.3.0 (2009-11-13)
345
+ * Added: score now includes least performing alternatives, names and values.
346
+ * Added: shiny reports.
347
+ * Added: Rails console shows current experiments status and also allows you to choose which alternative you want to see.
348
+ * Changed: letters instead of numbers for options (option 1 => option A).
349
+ * Changed: experiment.alternatives is now an immutable snapshot.
350
+ * Changed: experiment.score returns populated alternative objects instead of structs.
351
+ * Changed: experiment.chooses uses Redis to store state, better for (when we get to) browser integration.
352
+ * Changed: experiment.chooses skips recording participant or conversion.
353
+ * Changed: to MIT license.
354
+
355
+ == 0.2.2 (2009-11-12)
356
+ * Added: vanity binary, with single command for generating a report.
357
+ * Added: return alternative by value from experiment.alternative(val) method.
358
+ * Added: reset an experiment by calling reset!.
359
+ * Added: experiment alternative name (option 1, option 2, etc).
360
+ * Added: new scoring algorithm: use experiment.score instead of alternative.z_score/confidence.
361
+ * Added: experiment.conclusion for plain English results.
362
+
363
+ == 0.2.1 (2009-11-11)
364
+ * Added: z-score and confidence level for A/B test alternatives.
365
+ * Added: test auto-completion and auto-outcome (complete_it, outcome_is).
366
+ * Changed: default alternatives are now false/true, so if can't decide outcome, fall back on false.
367
+
368
+ == 0.2.0 (2009-11-10)
369
+ * Added: experiment method on object, used to define and access experiments.
370
+ * Added: playground configuration (Vanity.playground.namespace = , etc).
371
+ * Added: use_vanity now accepts block instead of symbol.
372
+ * Changed: Vanity::Helpers becomes Vanity::Rails.
373
+ * Changed: A/B test experiments alternatives now handled using Alternatives object.
374
+ * Removed: A/B test measure method no longer in use.
data/Gemfile ADDED
@@ -0,0 +1,28 @@
1
+ source :rubygems
2
+ gemspec
3
+
4
+ group :development do
5
+ gem "jekyll"
6
+ gem "rake"
7
+ gem "RedCloth"
8
+ gem "yard"
9
+ end
10
+
11
+ group :test do
12
+ gem "bson_ext"
13
+ gem "garb"
14
+ gem "mocha"
15
+ gem "mongo"
16
+ gem "bson_ext"
17
+ gem "mysql"
18
+ gem "passenger", "~>2.0"
19
+ gem "pg"
20
+ gem "rails", "~>2.3.8"
21
+ gem "rack"
22
+ gem "shoulda"
23
+ gem "timecop"
24
+ gem "webmock"
25
+ gem "ruby-debug", :platforms => :mri_18
26
+ gem "ruby-debug19", :platforms => :mri_19
27
+ gem "SystemTimer", "1.2.3", :platforms => :mri_18
28
+ end