vanity 2.2.9 → 3.0.2

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 (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