vanity 2.2.9 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +55 -0
  3. data/Appraisals +24 -20
  4. data/CHANGELOG +20 -1
  5. data/Gemfile +2 -1
  6. data/Gemfile.lock +24 -14
  7. data/README.md +14 -16
  8. data/gemfiles/rails42.gemfile +6 -6
  9. data/gemfiles/rails42.gemfile.lock +94 -85
  10. data/gemfiles/rails42_protected_attributes.gemfile +6 -6
  11. data/gemfiles/rails42_protected_attributes.gemfile.lock +96 -74
  12. data/gemfiles/{rails5.gemfile → rails51.gemfile} +6 -6
  13. data/gemfiles/rails51.gemfile.lock +285 -0
  14. data/gemfiles/{rails41.gemfile → rails52.gemfile} +6 -6
  15. data/gemfiles/rails52.gemfile.lock +295 -0
  16. data/gemfiles/{rails32.gemfile → rails60.gemfile} +6 -9
  17. data/gemfiles/rails60.gemfile.lock +293 -0
  18. data/gemfiles/rails61.gemfile +33 -0
  19. data/gemfiles/rails61.gemfile.lock +293 -0
  20. data/lib/generators/templates/add_participants_unique_index_migration.rb.erb +24 -0
  21. data/lib/generators/templates/{add_unique_indexes_migration.rb → add_unique_indexes_migration.rb.erb} +1 -1
  22. data/lib/generators/templates/{vanity_migration.rb → vanity_migration.rb.erb} +2 -2
  23. data/lib/generators/vanity/migration_generator.rb +34 -0
  24. data/lib/vanity/adapters/active_record_adapter.rb +15 -5
  25. data/lib/vanity/adapters/redis_adapter.rb +20 -20
  26. data/lib/vanity/commands/report.rb +4 -3
  27. data/lib/vanity/experiment/ab_test.rb +3 -2
  28. data/lib/vanity/frameworks/rails.rb +20 -9
  29. data/lib/vanity/locales/vanity.ru.yml +50 -0
  30. data/lib/vanity/templates/_experiment.erb +3 -3
  31. data/lib/vanity/templates/_experiments.erb +1 -1
  32. data/lib/vanity/templates/_metrics.erb +1 -1
  33. data/lib/vanity/templates/_report.erb +2 -2
  34. data/lib/vanity/templates/vanity.css +5 -5
  35. data/lib/vanity/version.rb +1 -1
  36. data/test/adapters/redis_adapter_test.rb +8 -12
  37. data/test/adapters/shared_tests.rb +7 -6
  38. data/test/commands/report_test.rb +13 -1
  39. data/test/configuration_test.rb +15 -2
  40. data/test/dummy/app/mailers/vanity_mailer.rb +3 -1
  41. data/test/dummy/config/initializers/secret_token.rb +5 -2
  42. data/test/dummy/config/routes.rb +17 -3
  43. data/test/experiment/ab_test.rb +3 -3
  44. data/test/frameworks/rails/action_controller_test.rb +12 -6
  45. data/test/frameworks/rails/action_mailer_test.rb +0 -1
  46. data/test/metric/active_record_test.rb +8 -2
  47. data/test/test_helper.rb +57 -10
  48. data/test/web/rails/dashboard_test.rb +19 -10
  49. data/vanity.gemspec +1 -1
  50. metadata +20 -19
  51. data/.travis.yml +0 -33
  52. data/gemfiles/rails32.gemfile.lock +0 -242
  53. data/gemfiles/rails41.gemfile.lock +0 -230
  54. data/gemfiles/rails5.gemfile.lock +0 -256
  55. data/lib/generators/vanity/add_unique_indexes_generator.rb +0 -15
  56. data/lib/generators/vanity_generator.rb +0 -15
@@ -138,7 +138,8 @@ class UseVanityControllerTest < ActionController::TestCase
138
138
  end
139
139
 
140
140
  def test_vanity_identity_set_with_identity_paramater
141
- get :index, :_identity => "id_from_params"
141
+ params = { :_identity => "id_from_params" }
142
+ get :index, params
142
143
  assert_equal "id_from_params", @controller.send(:vanity_identity)
143
144
  end
144
145
 
@@ -156,7 +157,8 @@ class UseVanityControllerTest < ActionController::TestCase
156
157
 
157
158
  def test_vanity_identity_prefers_parameter_over_cookie
158
159
  @request.cookies['vanity_id'] = "old_id"
159
- get :index, :_identity => "id_from_params"
160
+ params = { :_identity => "id_from_params" }
161
+ get :index, params
160
162
  assert_equal "id_from_params", @controller.send(:vanity_identity)
161
163
  assert cookies['vanity_id'], "id_from_params"
162
164
  end
@@ -171,7 +173,8 @@ class UseVanityControllerTest < ActionController::TestCase
171
173
  # query parameter filter
172
174
 
173
175
  def test_redirects_and_loses_vanity_query_parameter
174
- get :index, :foo=>"bar", :_vanity=>"567"
176
+ params = { :foo=>"bar", :_vanity=>"567" }
177
+ get :index, params
175
178
  assert_redirected_to "/use_vanity?foo=bar"
176
179
  end
177
180
 
@@ -180,7 +183,8 @@ class UseVanityControllerTest < ActionController::TestCase
180
183
  fingerprint = experiment(:pie_or_cake).fingerprint(first)
181
184
  10.times do
182
185
  @controller = nil ; setup_controller_request_and_response
183
- get :index, :_vanity => fingerprint
186
+ params = { :_vanity => fingerprint }
187
+ get :index, params
184
188
  assert_equal experiment(:pie_or_cake).choose, experiment(:pie_or_cake).alternatives.first
185
189
  assert experiment(:pie_or_cake).showing?(first)
186
190
  end
@@ -190,13 +194,15 @@ class UseVanityControllerTest < ActionController::TestCase
190
194
  experiment(:pie_or_cake).chooses(experiment(:pie_or_cake).alternatives.last.value)
191
195
  first = experiment(:pie_or_cake).alternatives.first
192
196
  fingerprint = experiment(:pie_or_cake).fingerprint(first)
193
- post :index, :foo => "bar", :_vanity => fingerprint
197
+ params = { :foo => "bar", :_vanity => fingerprint }
198
+ post :index, params
194
199
  assert_response :success
195
200
  assert !experiment(:pie_or_cake).showing?(first)
196
201
  end
197
202
 
198
203
  def test_track_param_tracks_a_metric
199
- get :index, :_identity => "123", :_track => "sugar_high"
204
+ params = { :_identity => "123", :_track => "sugar_high" }
205
+ get :index, params
200
206
  assert_equal experiment(:pie_or_cake).alternatives[0].converted, 1
201
207
  end
202
208
 
@@ -19,7 +19,6 @@ class UseVanityMailerTest < ActionMailer::TestCase
19
19
  experiment(:pie_or_cake).chooses(:pie)
20
20
  VanityMailer.ab_test_subject(nil)
21
21
 
22
-
23
22
  alts = experiment(:pie_or_cake).alternatives
24
23
  assert_equal 1, alts.map(&:participants).sum
25
24
  end
@@ -234,7 +234,13 @@ describe Vanity::Metric::ActiveRecord do
234
234
  f.write <<-RUBY
235
235
  metric "Sky is limit" do
236
236
  model Sky, :conditions=>["height > 3"]
237
- Sky.after_save { |sky| Vanity.track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
237
+ Sky.after_save do |sky|
238
+ if sky.respond_to?(:saved_change_to_height?) && sky.saved_change_to_height? && sky.height > 3
239
+ Vanity.track!(:sky_is_limit)
240
+ elsif sky.height_changed? && sky.height > 3
241
+ Vanity.track!(:sky_is_limit)
242
+ end
243
+ end
238
244
  end
239
245
  RUBY
240
246
  end
@@ -295,7 +301,7 @@ describe Vanity::Metric::ActiveRecord do
295
301
  File.open "tmp/experiments/metrics/sky_is_limit.rb", "w" do |f|
296
302
  f.write <<-RUBY
297
303
  metric "Sky is limit" do
298
- Sky.after_save { |sky| Vanity.track!(:sky_is_limit) if sky.height_changed? && sky.height > 3 }
304
+ Sky.after_save { |sky| Vanity.track!(:sky_is_limit) if sky.height && sky.height > 3 }
299
305
  end
300
306
  RUBY
301
307
  end
data/test/test_helper.rb CHANGED
@@ -20,7 +20,7 @@ require "rails/test_help"
20
20
 
21
21
  require "vanity"
22
22
  require "timecop"
23
- require "mocha/mini_test"
23
+ require "mocha/minitest"
24
24
  require "fakefs/safe"
25
25
  require "webmock/minitest"
26
26
 
@@ -186,11 +186,53 @@ if defined?(ActiveSupport::TestCase)
186
186
 
187
187
  self.use_instantiated_fixtures = false if respond_to?(:use_instantiated_fixtures)
188
188
  self.use_transactional_fixtures = false if respond_to?(:use_transactional_fixtures)
189
+ self.use_transactional_tests = false if respond_to?(:use_transactional_tests)
190
+ end
191
+ end
192
+
193
+ # Shim for pre-5.0 tests
194
+ module LegacyTestRequests
195
+ def rails4?
196
+ ActiveRecord::VERSION::MAJOR <= 4
197
+ end
198
+
199
+ def get(path, params={}, headers={})
200
+ if rails4?
201
+ process(path, 'GET', params, headers)
202
+ else
203
+ process(path, method: 'GET', params: params, **headers)
204
+ end
205
+ end
206
+
207
+ def post(path, params={}, headers={})
208
+ if rails4?
209
+ process(path, 'POST', params, headers)
210
+ else
211
+ process(path, method: 'POST', params: params, **headers)
212
+ end
213
+ end
214
+
215
+ def put(path, params={}, headers={})
216
+ if rails4?
217
+ process(path, 'PUT', params, headers)
218
+ else
219
+ process(path, method: 'PUT', params: params, **headers)
220
+ end
221
+ end
222
+
223
+ def delete(path, params={}, headers={})
224
+ if rails4?
225
+ process(path, 'DELETE', params, headers)
226
+ else
227
+ process(path, method: 'DELETE', params: params, **headers)
228
+ end
189
229
  end
190
230
  end
191
231
 
192
232
  if defined?(ActionController::TestCase)
193
233
  class ActionController::TestCase
234
+ include LegacyTestRequests
235
+
194
236
  alias :setup_controller_request_and_response_without_vanity :setup_controller_request_and_response
195
237
  # Sets Vanity.context to the current controller, so you can do things like:
196
238
  # experiment(:simple).chooses(:green)
@@ -211,14 +253,19 @@ if ENV["DB"] == "active_record"
211
253
  ActiveRecord::Base.logger = $logger
212
254
 
213
255
  Vanity.connect!(VanityTestHelpers::DATABASE)
214
- require "generators/templates/vanity_migration"
215
- if defined?(ActiveRecord::Tasks)
216
- config = Vanity::Adapters::ActiveRecordAdapter::VanityRecord.connection_config
217
- ActiveRecord::Tasks::DatabaseTasks.drop(config.with_indifferent_access)
218
- else # Rails 3.2 fallback
219
- klasses = Vanity::Adapters::ActiveRecordAdapter::VanityRecord.descendants
220
- klasses.each { |k| k.connection.drop_table(k.table_name) if k.connection.table_exists?(k.table_name) }
221
- end
222
256
 
223
- VanityMigration.new.migrate(:up)
257
+ config = Vanity::Adapters::ActiveRecordAdapter::VanityRecord.connection_config
258
+ ActiveRecord::Tasks::DatabaseTasks.drop(config.with_indifferent_access)
259
+
260
+ # use generator to create the migration
261
+ require "rails/generators"
262
+ require "generators/vanity/migration_generator"
263
+ Rails::Generators.invoke "vanity"
264
+
265
+ migrate_path = File.expand_path("../dummy/db/migrate/", __FILE__)
266
+ if defined?(ActiveRecord::MigrationContext)
267
+ ActiveRecord::MigrationContext.new(migrate_path).migrate
268
+ else
269
+ ActiveRecord::Migrator.migrate(migrate_path)
270
+ end
224
271
  end
@@ -60,14 +60,16 @@ class RailsDashboardTest < ActionController::TestCase
60
60
  # -- Actions used in non-admin actions, e.g. in JS --
61
61
 
62
62
  def test_add_participant
63
- xhr :post, :add_participant, :v => 'food=0'
63
+ params = { :v => 'food=0' }
64
+ post :add_participant, params, :xhr => true
64
65
  assert_response :success
65
66
  assert @response.body.blank?
66
67
  assert_equal 1, experiment(:food).alternatives.map(&:participants).sum
67
68
  end
68
69
 
69
70
  def test_add_participant_multiple_experiments
70
- xhr :post, :add_participant, :v => 'food=0,drink=1'
71
+ params = { :v => 'food=0,drink=1' }
72
+ post :add_participant, params, :xhr => true
71
73
  assert_response :success
72
74
  assert @response.body.blank?
73
75
  assert_equal 1, experiment(:food).alternatives.map(&:participants).sum
@@ -76,18 +78,20 @@ class RailsDashboardTest < ActionController::TestCase
76
78
 
77
79
  def test_add_participant_with_invalid_request
78
80
  @request.user_agent = 'Googlebot/2.1 ( http://www.google.com/bot.html)'
79
- xhr :post, :add_participant, :v => 'food=0'
81
+ params = { :v => 'food=0' }
82
+ post :add_participant, params, :xhr => true
80
83
  assert_equal 0, experiment(:food).alternatives.map(&:participants).sum
81
84
  end
82
85
 
83
86
  def test_add_participant_no_params
84
- xhr :post, :add_participant
87
+ post :add_participant, :xhr => true
85
88
  assert_response :not_found
86
89
  assert @response.body.blank?
87
90
  end
88
91
 
89
92
  def test_add_participant_not_fail_for_unknown_experiment
90
- xhr :post, :add_participant, :e => 'unknown=0'
93
+ params = { :e => 'unknown=0' }
94
+ post :add_participant, params, :xhr => true
91
95
  assert_response :not_found
92
96
  assert @response.body.blank?
93
97
  end
@@ -96,13 +100,15 @@ class RailsDashboardTest < ActionController::TestCase
96
100
 
97
101
  def test_participant_renders_experiment_for_id
98
102
  experiment(:food).choose
99
- get :participant, :id => "1"
103
+ params = { :id => "1" }
104
+ get :participant, params
100
105
  assert_response :success
101
106
  assert @response.body =~ %r{id 1 is taking part in the following experiments:\n<ul class=\"experiments\">[\s]+<li class=\"experiment ab_test}
102
107
  end
103
108
 
104
109
  def test_participant_renders_empty_for_bad_id
105
- get :participant, :id => "2"
110
+ params = { :id => "2" }
111
+ get :participant, params
106
112
  assert_response :success
107
113
  assert @response.body =~ %r{<ul class=\"experiments\">[\s]+</ul>}
108
114
  end
@@ -114,19 +120,22 @@ class RailsDashboardTest < ActionController::TestCase
114
120
  end
115
121
 
116
122
  def test_complete_forces_confirmation
117
- xhr :post, :complete, :e => "food", :a => 0
123
+ params = { :e => "food", :a => 0 }
124
+ post :complete, params, :xhr => true
118
125
  assert_response :success
119
126
  assert @response.body =~ /#{ CGI.unescape({ :confirmed => 0 }.to_query) }/
120
127
  end
121
128
 
122
129
  def test_complete_with_confirmation_completes
123
- xhr :post, :complete, :e => "food", :a => 0, :confirmed => 'true'
130
+ params = { :e => "food", :a => 0, :confirmed => 'true' }
131
+ post :complete, params, :xhr => true
124
132
  assert_response :success
125
133
  assert !Vanity.playground.experiment(:food).active?
126
134
  end
127
135
 
128
136
  def test_chooses
129
- xhr :post, :chooses, :e => "food", :a => 0
137
+ params = { :e => "food", :a => 0 }
138
+ post :chooses, params, :xhr => true
130
139
  assert_response :success
131
140
  end
132
141
  end
data/vanity.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_development_dependency "bundler", ">= 1.8.0"
29
29
  spec.add_development_dependency "minitest", ">= 4.2"
30
- spec.add_development_dependency "appraisal", "~> 1.0.2"
30
+ spec.add_development_dependency "appraisal", "~> 2.0"
31
31
  spec.add_development_dependency "timecop"
32
32
  spec.add_development_dependency "webmock"
33
33
  spec.add_development_dependency "fakefs"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vanity
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.9
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Assaf Arkin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-03 00:00:00.000000000 Z
11
+ date: 2022-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.2
61
+ version: '2.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.2
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: timecop
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -131,8 +131,8 @@ extra_rdoc_files:
131
131
  - README.md
132
132
  - CHANGELOG
133
133
  files:
134
+ - ".github/workflows/test.yml"
134
135
  - ".gitignore"
135
- - ".travis.yml"
136
136
  - Appraisals
137
137
  - CHANGELOG
138
138
  - Gemfile
@@ -167,21 +167,23 @@ files:
167
167
  - doc/metrics.textile
168
168
  - doc/rails.textile
169
169
  - doc/site.js
170
- - gemfiles/rails32.gemfile
171
- - gemfiles/rails32.gemfile.lock
172
- - gemfiles/rails41.gemfile
173
- - gemfiles/rails41.gemfile.lock
174
170
  - gemfiles/rails42.gemfile
175
171
  - gemfiles/rails42.gemfile.lock
176
172
  - gemfiles/rails42_protected_attributes.gemfile
177
173
  - gemfiles/rails42_protected_attributes.gemfile.lock
178
- - gemfiles/rails5.gemfile
179
- - gemfiles/rails5.gemfile.lock
180
- - lib/generators/templates/add_unique_indexes_migration.rb
181
- - lib/generators/templates/vanity_migration.rb
182
- - lib/generators/vanity/add_unique_indexes_generator.rb
174
+ - gemfiles/rails51.gemfile
175
+ - gemfiles/rails51.gemfile.lock
176
+ - gemfiles/rails52.gemfile
177
+ - gemfiles/rails52.gemfile.lock
178
+ - gemfiles/rails60.gemfile
179
+ - gemfiles/rails60.gemfile.lock
180
+ - gemfiles/rails61.gemfile
181
+ - gemfiles/rails61.gemfile.lock
182
+ - lib/generators/templates/add_participants_unique_index_migration.rb.erb
183
+ - lib/generators/templates/add_unique_indexes_migration.rb.erb
184
+ - lib/generators/templates/vanity_migration.rb.erb
185
+ - lib/generators/vanity/migration_generator.rb
183
186
  - lib/generators/vanity/views_generator.rb
184
- - lib/generators/vanity_generator.rb
185
187
  - lib/vanity.rb
186
188
  - lib/vanity/adapters.rb
187
189
  - lib/vanity/adapters/abstract_adapter.rb
@@ -206,6 +208,7 @@ files:
206
208
  - lib/vanity/locales/vanity.en.yml
207
209
  - lib/vanity/locales/vanity.nb.yml
208
210
  - lib/vanity/locales/vanity.pt-BR.yml
211
+ - lib/vanity/locales/vanity.ru.yml
209
212
  - lib/vanity/metric/active_record.rb
210
213
  - lib/vanity/metric/base.rb
211
214
  - lib/vanity/metric/google_analytics.rb
@@ -292,7 +295,7 @@ metadata: {}
292
295
  post_install_message: To get started run vanity --help
293
296
  rdoc_options:
294
297
  - "--title"
295
- - Vanity 2.2.9
298
+ - Vanity 3.0.2
296
299
  - "--main"
297
300
  - README.md
298
301
  - "--webcvs"
@@ -310,8 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
310
313
  - !ruby/object:Gem::Version
311
314
  version: '0'
312
315
  requirements: []
313
- rubyforge_project:
314
- rubygems_version: 2.4.8
316
+ rubygems_version: 3.3.6
315
317
  signing_key:
316
318
  specification_version: 4
317
319
  summary: Experience Driven Development framework for Ruby
@@ -374,4 +376,3 @@ test_files:
374
376
  - test/test_helper.rb
375
377
  - test/vanity_test.rb
376
378
  - test/web/rails/dashboard_test.rb
377
- has_rdoc:
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- sudo: false
2
- cache: bundler
3
- language: ruby
4
- before_script:
5
- - 'echo ''gem: --no-ri --no-rdoc'' > ~/.gemrc' # skip installing docs for gems
6
- before_install:
7
- - gem install bundler -v "~> 1.8.0" # Minimum version of bundler required
8
- bundler_args: --without development --jobs=3
9
- script: 'bundle exec rake test'
10
- services:
11
- - mongodb
12
- - redis-server
13
- rvm:
14
- - 2.1
15
- - 2.2.2
16
- - 2.3.0
17
- - jruby-9.1.7.0
18
- env:
19
- - DB=mongodb
20
- - DB=redis
21
- - DB=active_record
22
- gemfile:
23
- - gemfiles/rails32.gemfile
24
- - gemfiles/rails41.gemfile
25
- - gemfiles/rails42.gemfile
26
- - gemfiles/rails42_protected_attributes.gemfile
27
- - gemfiles/rails5.gemfile
28
- matrix:
29
- exclude:
30
- - rvm: 2.1
31
- gemfile: gemfiles/rails5.gemfile
32
- - rvm: jruby-9.1.7.0
33
- gemfile: gemfiles/rails5.gemfile
@@ -1,242 +0,0 @@
1
- GIT
2
- remote: git://github.com/zoltankiss/fastthread.git
3
- revision: 56e6ce7c1780797a354d5befe9a9a9869bbc7e3e
4
- specs:
5
- fastthread (1.0.7)
6
-
7
- PATH
8
- remote: ..
9
- specs:
10
- vanity (2.2.9)
11
- i18n
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- RedCloth (4.2.9)
17
- RedCloth (4.2.9-java)
18
- actionmailer (3.2.22)
19
- actionpack (= 3.2.22)
20
- mail (~> 2.5.4)
21
- actionpack (3.2.22)
22
- activemodel (= 3.2.22)
23
- activesupport (= 3.2.22)
24
- builder (~> 3.0.0)
25
- erubis (~> 2.7.0)
26
- journey (~> 1.0.4)
27
- rack (~> 1.4.5)
28
- rack-cache (~> 1.2)
29
- rack-test (~> 0.6.1)
30
- sprockets (~> 2.2.1)
31
- activemodel (3.2.22)
32
- activesupport (= 3.2.22)
33
- builder (~> 3.0.0)
34
- activerecord (3.2.22)
35
- activemodel (= 3.2.22)
36
- activesupport (= 3.2.22)
37
- arel (~> 3.0.2)
38
- tzinfo (~> 0.3.29)
39
- activerecord-jdbc-adapter (1.3.15)
40
- activerecord (>= 2.2)
41
- activeresource (3.2.22)
42
- activemodel (= 3.2.22)
43
- activesupport (= 3.2.22)
44
- activesupport (3.2.22)
45
- i18n (~> 0.6, >= 0.6.4)
46
- multi_json (~> 1.0)
47
- addressable (2.2.7)
48
- appraisal (1.0.3)
49
- bundler
50
- rake
51
- thor (>= 0.14.0)
52
- arel (3.0.3)
53
- blankslate (2.1.2.4)
54
- bson (4.0.2)
55
- bson (4.0.2-java)
56
- builder (3.0.4)
57
- celluloid (0.16.0)
58
- timers (~> 4.0.0)
59
- classifier-reborn (2.0.3)
60
- fast-stemmer (~> 1.0)
61
- coderay (1.1.1)
62
- coffee-script (2.4.1)
63
- coffee-script-source
64
- execjs
65
- coffee-script-source (1.9.1)
66
- colorator (0.1)
67
- crack (0.3.1)
68
- daemon_controller (1.0.0)
69
- erubis (2.7.0)
70
- execjs (2.5.2)
71
- fakefs (0.6.7)
72
- fast-stemmer (1.0.2)
73
- ffi (1.9.8)
74
- garb (0.9.1)
75
- activesupport (>= 2.2.0)
76
- crack (>= 0.1.6)
77
- hike (1.2.3)
78
- hitimes (1.2.2)
79
- i18n (0.7.0)
80
- integration (0.1.0)
81
- jdbc-sqlite3 (3.8.7)
82
- jekyll (2.5.3)
83
- classifier-reborn (~> 2.0)
84
- colorator (~> 0.1)
85
- jekyll-coffeescript (~> 1.0)
86
- jekyll-gist (~> 1.0)
87
- jekyll-paginate (~> 1.0)
88
- jekyll-sass-converter (~> 1.0)
89
- jekyll-watch (~> 1.1)
90
- kramdown (~> 1.3)
91
- liquid (~> 2.6.1)
92
- mercenary (~> 0.3.3)
93
- pygments.rb (~> 0.6.0)
94
- redcarpet (~> 3.1)
95
- safe_yaml (~> 1.0)
96
- toml (~> 0.1.0)
97
- jekyll-coffeescript (1.0.1)
98
- coffee-script (~> 2.2)
99
- jekyll-gist (1.2.1)
100
- jekyll-paginate (1.1.0)
101
- jekyll-sass-converter (1.3.0)
102
- sass (~> 3.2)
103
- jekyll-watch (1.2.1)
104
- listen (~> 2.7)
105
- journey (1.0.4)
106
- json (1.8.3)
107
- json (1.8.3-java)
108
- kramdown (1.6.0)
109
- liquid (2.6.2)
110
- listen (2.10.0)
111
- celluloid (~> 0.16.0)
112
- rb-fsevent (>= 0.9.3)
113
- rb-inotify (>= 0.9)
114
- mail (2.5.4)
115
- mime-types (~> 1.16)
116
- treetop (~> 1.4.8)
117
- mercenary (0.3.5)
118
- metaclass (0.0.4)
119
- method_source (0.8.2)
120
- mime-types (1.25.1)
121
- minitest (4.2.0)
122
- minitest_tu_shim (1.3.3)
123
- minitest (~> 4.0)
124
- mocha (1.1.0)
125
- metaclass (~> 0.0.1)
126
- mongo (2.2.3)
127
- bson (~> 4.0)
128
- multi_json (1.11.1)
129
- parslet (1.5.0)
130
- blankslate (~> 2.0)
131
- passenger (3.0.11)
132
- daemon_controller (>= 0.2.5)
133
- fastthread (>= 1.0.1)
134
- rack
135
- rake (>= 0.8.1)
136
- polyglot (0.3.5)
137
- posix-spawn (0.3.11)
138
- power_assert (0.2.2)
139
- pry (0.10.3)
140
- coderay (~> 1.1.0)
141
- method_source (~> 0.8.1)
142
- slop (~> 3.4)
143
- pygments.rb (0.6.3)
144
- posix-spawn (~> 0.3.6)
145
- yajl-ruby (~> 1.2.0)
146
- rack (1.4.7)
147
- rack-cache (1.2)
148
- rack (>= 0.4)
149
- rack-ssl (1.3.4)
150
- rack
151
- rack-test (0.6.3)
152
- rack (>= 1.0)
153
- rails (3.2.22)
154
- actionmailer (= 3.2.22)
155
- actionpack (= 3.2.22)
156
- activerecord (= 3.2.22)
157
- activeresource (= 3.2.22)
158
- activesupport (= 3.2.22)
159
- bundler (~> 1.0)
160
- railties (= 3.2.22)
161
- railties (3.2.22)
162
- actionpack (= 3.2.22)
163
- activesupport (= 3.2.22)
164
- rack-ssl (~> 1.3.2)
165
- rake (>= 0.8.7)
166
- rdoc (~> 3.4)
167
- thor (>= 0.14.6, < 2.0)
168
- rake (10.4.2)
169
- rb-fsevent (0.9.4)
170
- rb-inotify (0.9.5)
171
- ffi (>= 0.5.0)
172
- rdoc (3.12.2)
173
- json (~> 1.4)
174
- redcarpet (3.2.3)
175
- redis (3.0.6)
176
- redis-namespace (1.3.2)
177
- redis (~> 3.0.4)
178
- rubystats (0.2.5)
179
- safe_yaml (1.0.4)
180
- sass (3.4.13)
181
- slop (3.6.0)
182
- sprockets (2.2.3)
183
- hike (~> 1.2)
184
- multi_json (~> 1.0)
185
- rack (~> 1.0)
186
- tilt (~> 1.1, != 1.3.0)
187
- sqlite3 (1.3.10)
188
- test-unit (3.0.9)
189
- power_assert
190
- thor (0.19.1)
191
- tilt (1.4.1)
192
- timecop (0.3.5)
193
- timers (4.0.1)
194
- hitimes
195
- toml (0.1.2)
196
- parslet (~> 1.5.0)
197
- treetop (1.4.15)
198
- polyglot
199
- polyglot (>= 0.3.1)
200
- tzinfo (0.3.44)
201
- webmock (1.8.0)
202
- addressable (>= 2.2.7)
203
- crack (>= 0.1.7)
204
- yajl-ruby (1.2.1)
205
- yard (0.7.5)
206
-
207
- PLATFORMS
208
- java
209
- ruby
210
-
211
- DEPENDENCIES
212
- RedCloth
213
- activerecord-jdbc-adapter
214
- appraisal (~> 1.0.2)
215
- bundler (>= 1.8.0)
216
- fakefs
217
- fastthread!
218
- garb (< 0.9.2)
219
- integration (<= 0.1.0)
220
- jdbc-sqlite3
221
- jekyll (~> 2.5.3)
222
- minitest (~> 4.2.0)
223
- minitest_tu_shim (~> 1.3.3)
224
- mocha (~> 1.0)
225
- mongo (~> 2.1)
226
- passenger (~> 3.0)
227
- pry
228
- rack
229
- rails (= 3.2.22)
230
- rake
231
- redis (>= 2.1)
232
- redis-namespace (>= 1.1.0)
233
- rubystats (>= 0.2.5)
234
- sqlite3 (~> 1.3.10)
235
- test-unit (~> 3.0)
236
- timecop
237
- vanity!
238
- webmock
239
- yard
240
-
241
- BUNDLED WITH
242
- 1.11.2