shoulda-matchers 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. data/.gitignore +11 -0
  2. data/.travis.yml +13 -0
  3. data/Appraisals +4 -6
  4. data/CONTRIBUTING.md +38 -0
  5. data/Gemfile +8 -5
  6. data/Gemfile.lock +77 -41
  7. data/NEWS.md +32 -0
  8. data/README.md +84 -0
  9. data/Rakefile +5 -36
  10. data/features/rails_integration.feature +88 -0
  11. data/features/step_definitions/rails_steps.rb +111 -0
  12. data/features/support/env.rb +5 -0
  13. data/gemfiles/3.0.gemfile +14 -0
  14. data/gemfiles/3.0.gemfile.lock +142 -0
  15. data/gemfiles/3.1.gemfile +16 -0
  16. data/gemfiles/3.1.gemfile.lock +164 -0
  17. data/lib/shoulda/matchers/action_controller/assign_to_matcher.rb +6 -9
  18. data/lib/shoulda/matchers/action_controller/filter_param_matcher.rb +1 -3
  19. data/lib/shoulda/matchers/action_controller/redirect_to_matcher.rb +10 -6
  20. data/lib/shoulda/matchers/action_controller/render_template_matcher.rb +1 -4
  21. data/lib/shoulda/matchers/action_controller/render_with_layout_matcher.rb +6 -6
  22. data/lib/shoulda/matchers/action_controller/respond_with_content_type_matcher.rb +11 -10
  23. data/lib/shoulda/matchers/action_controller/respond_with_matcher.rb +0 -2
  24. data/lib/shoulda/matchers/action_controller/route_matcher.rb +17 -14
  25. data/lib/shoulda/matchers/action_controller/set_session_matcher.rb +24 -16
  26. data/lib/shoulda/matchers/action_controller/set_the_flash_matcher.rb +52 -15
  27. data/lib/shoulda/matchers/action_mailer.rb +1 -1
  28. data/lib/shoulda/matchers/action_mailer/{have_sent_email.rb → have_sent_email_matcher.rb} +37 -21
  29. data/lib/shoulda/matchers/active_model.rb +1 -0
  30. data/lib/shoulda/matchers/active_model/allow_mass_assignment_of_matcher.rb +9 -10
  31. data/lib/shoulda/matchers/active_model/allow_value_matcher.rb +60 -33
  32. data/lib/shoulda/matchers/active_model/ensure_length_of_matcher.rb +0 -1
  33. data/lib/shoulda/matchers/active_model/helpers.rb +13 -9
  34. data/lib/shoulda/matchers/active_model/validate_confirmation_of_matcher.rb +63 -0
  35. data/lib/shoulda/matchers/active_model/validate_numericality_of_matcher.rb +38 -8
  36. data/lib/shoulda/matchers/active_model/validation_matcher.rb +1 -5
  37. data/lib/shoulda/matchers/active_record.rb +3 -1
  38. data/lib/shoulda/matchers/active_record/accept_nested_attributes_for_matcher.rb +127 -0
  39. data/lib/shoulda/matchers/active_record/association_matcher.rb +19 -7
  40. data/lib/shoulda/matchers/active_record/have_db_column_matcher.rb +20 -5
  41. data/lib/shoulda/matchers/active_record/have_db_index_matcher.rb +4 -10
  42. data/lib/shoulda/matchers/active_record/have_readonly_attribute_matcher.rb +3 -7
  43. data/lib/shoulda/matchers/active_record/query_the_database_matcher.rb +107 -0
  44. data/lib/shoulda/matchers/active_record/serialize_matcher.rb +111 -0
  45. data/lib/shoulda/matchers/integrations/rspec.rb +0 -1
  46. data/lib/shoulda/matchers/version.rb +1 -1
  47. data/shoulda-matchers.gemspec +30 -0
  48. data/spec/fixtures/addresses.yml +3 -0
  49. data/spec/fixtures/friendships.yml +0 -0
  50. data/spec/fixtures/posts.yml +5 -0
  51. data/spec/fixtures/products.yml +0 -0
  52. data/spec/fixtures/taggings.yml +0 -0
  53. data/spec/fixtures/tags.yml +9 -0
  54. data/spec/fixtures/users.yml +6 -0
  55. data/spec/shoulda/action_controller/assign_to_matcher_spec.rb +61 -0
  56. data/spec/shoulda/action_controller/filter_param_matcher_spec.rb +20 -0
  57. data/spec/shoulda/action_controller/redirect_to_matcher_spec.rb +40 -0
  58. data/spec/shoulda/action_controller/render_template_matcher_spec.rb +69 -0
  59. data/spec/shoulda/action_controller/render_with_layout_matcher_spec.rb +47 -0
  60. data/spec/shoulda/action_controller/respond_with_content_type_matcher_spec.rb +28 -0
  61. data/spec/shoulda/action_controller/respond_with_matcher_spec.rb +83 -0
  62. data/spec/shoulda/action_controller/route_matcher_spec.rb +65 -0
  63. data/spec/shoulda/action_controller/set_session_matcher_spec.rb +46 -0
  64. data/spec/shoulda/action_controller/set_the_flash_matcher_spec.rb +124 -0
  65. data/spec/shoulda/action_mailer/have_sent_email_spec.rb +293 -0
  66. data/spec/shoulda/active_model/allow_mass_assignment_of_matcher_spec.rb +95 -0
  67. data/spec/shoulda/active_model/allow_value_matcher_spec.rb +91 -0
  68. data/spec/shoulda/active_model/ensure_exclusion_of_matcher_spec.rb +57 -0
  69. data/spec/shoulda/active_model/ensure_inclusion_of_matcher_spec.rb +71 -0
  70. data/spec/shoulda/active_model/ensure_length_of_matcher_spec.rb +125 -0
  71. data/spec/shoulda/active_model/helpers_spec.rb +100 -0
  72. data/spec/shoulda/active_model/validate_acceptance_of_matcher_spec.rb +43 -0
  73. data/spec/shoulda/active_model/validate_confirmation_of_matcher_spec.rb +48 -0
  74. data/spec/shoulda/active_model/validate_format_of_matcher_spec.rb +38 -0
  75. data/spec/shoulda/active_model/validate_numericality_of_matcher_spec.rb +62 -0
  76. data/spec/shoulda/active_model/validate_presence_of_matcher_spec.rb +121 -0
  77. data/spec/shoulda/active_model/validate_uniqueness_of_matcher_spec.rb +143 -0
  78. data/spec/shoulda/active_record/accept_nested_attributes_for_matcher_spec.rb +84 -0
  79. data/spec/shoulda/active_record/association_matcher_spec.rb +449 -0
  80. data/spec/shoulda/active_record/have_db_column_matcher_spec.rb +185 -0
  81. data/spec/shoulda/active_record/have_db_index_matcher_spec.rb +88 -0
  82. data/spec/shoulda/active_record/have_readonly_attributes_matcher_spec.rb +46 -0
  83. data/spec/shoulda/active_record/query_the_database_matcher_spec.rb +45 -0
  84. data/spec/shoulda/active_record/serialize_matcher_spec.rb +81 -0
  85. data/spec/spec_helper.rb +31 -0
  86. data/spec/support/model_builder.rb +149 -0
  87. metadata +211 -60
  88. data/CONTRIBUTION_GUIDELINES.rdoc +0 -10
  89. data/README.rdoc +0 -80
@@ -0,0 +1,88 @@
1
+ Feature: integrate with Rails
2
+
3
+ Background:
4
+ When I generate a new rails application
5
+ And I write to "db/migrate/1_create_users.rb" with:
6
+ """
7
+ class CreateUsers < ActiveRecord::Migration
8
+ def self.up
9
+ create_table :users do |t|
10
+ t.string :name
11
+ end
12
+ end
13
+ end
14
+ """
15
+ When I successfully run `bundle exec rake db:migrate --trace`
16
+ And I write to "app/models/user.rb" with:
17
+ """
18
+ class User < ActiveRecord::Base
19
+ validates_presence_of :name
20
+ end
21
+ """
22
+ When I write to "app/controllers/examples_controller.rb" with:
23
+ """
24
+ class ExamplesController < ApplicationController
25
+ def show
26
+ @example = 'hello'
27
+ render :nothing => true
28
+ end
29
+ end
30
+ """
31
+ When I configure a wildcard route
32
+
33
+ Scenario: generate a rails application and use matchers in Test::Unit
34
+ When I configure the application to use shoulda-context
35
+ And I configure the application to use "shoulda-matchers" from this project
36
+ And I write to "test/unit/user_test.rb" with:
37
+ """
38
+ require 'test_helper'
39
+
40
+ class UserTest < ActiveSupport::TestCase
41
+ should validate_presence_of(:name)
42
+ end
43
+ """
44
+ When I write to "test/functional/examples_controller_test.rb" with:
45
+ """
46
+ require 'test_helper'
47
+
48
+ class ExamplesControllerTest < ActionController::TestCase
49
+ def setup
50
+ get :show
51
+ end
52
+
53
+ should respond_with(:success)
54
+ should assign_to(:example)
55
+ end
56
+ """
57
+ When I set the "TESTOPTS" environment variable to "-v"
58
+ When I successfully run `bundle exec rake test --trace`
59
+ Then the output should contain "1 tests, 1 assertions, 0 failures, 0 errors"
60
+ And the output should contain "2 tests, 2 assertions, 0 failures, 0 errors"
61
+ And the output should contain "User should require name to be set"
62
+ And the output should contain "ExamplesController should assign @example"
63
+
64
+ Scenario: generate a rails application and use matchers in Rspec
65
+ When I configure the application to use rspec-rails
66
+ And I configure the application to use "shoulda-matchers" from this project
67
+ And I run the rspec generator
68
+ And I write to "spec/models/user_spec.rb" with:
69
+ """
70
+ require 'spec_helper'
71
+
72
+ describe User do
73
+ it { should validate_presence_of(:name) }
74
+ end
75
+ """
76
+ When I write to "spec/controllers/examples_controller_spec.rb" with:
77
+ """
78
+ require 'spec_helper'
79
+
80
+ describe ExamplesController, "show" do
81
+ before { get :show }
82
+ it { should assign_to(:example) }
83
+ end
84
+ """
85
+ When I successfully run `bundle exec rake spec SPEC_OPTS=-fs --trace`
86
+ Then the output should contain "2 examples, 0 failures"
87
+ And the output should contain "should require name to be set"
88
+ And the output should contain "should assign @example"
@@ -0,0 +1,111 @@
1
+ PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')).freeze
2
+ APP_NAME = 'testapp'.freeze
3
+
4
+ BUNDLE_ENV_VARS = %w(RUBYOPT BUNDLE_PATH BUNDLE_BIN_PATH BUNDLE_GEMFILE)
5
+ ORIGINAL_BUNDLE_VARS = Hash[ENV.select{ |key,value| BUNDLE_ENV_VARS.include?(key) }]
6
+
7
+ Before do
8
+ ENV['BUNDLE_GEMFILE'] = File.join(Dir.pwd, ENV['BUNDLE_GEMFILE']) unless ENV['BUNDLE_GEMFILE'].start_with?(Dir.pwd)
9
+ end
10
+
11
+ After do
12
+ ORIGINAL_BUNDLE_VARS.each_pair do |key, value|
13
+ ENV[key] = value
14
+ end
15
+ end
16
+
17
+ When 'I generate a new rails application' do
18
+ steps %{
19
+ When I run `rails new #{APP_NAME}`
20
+ And I cd to "#{APP_NAME}"
21
+ And I comment out the gem "turn" from the Gemfile
22
+ And I comment out the gem "coffee-rails" from the Gemfile
23
+ And I comment out the gem "uglifier" from the Gemfile
24
+ And I reset Bundler environment variables
25
+ And I set the "BUNDLE_GEMFILE" environment variable to "Gemfile"
26
+ And I successfully run `bundle install --local`
27
+ }
28
+ if RUBY_VERSION >= "1.9.3"
29
+ append_to_gemfile %(gem "rake", "~> 0.9.3.beta.1")
30
+ step %(I successfully run `bundle update rake`)
31
+ end
32
+ end
33
+
34
+ When /^I configure the application to use "([^\"]+)" from this project$/ do |name|
35
+ append_to_gemfile "gem '#{name}', :path => '#{PROJECT_ROOT}'"
36
+ steps %{And I run `bundle install --local`}
37
+ end
38
+
39
+ When 'I run the rspec generator' do
40
+ steps %{
41
+ When I successfully run `rails generate rspec:install`
42
+ }
43
+ end
44
+
45
+ When 'I configure the application to use rspec-rails' do
46
+ append_to_gemfile "gem 'rspec-rails', '~> 2.6.1'"
47
+ steps %{And I run `bundle install --local`}
48
+ end
49
+
50
+ When 'I configure the application to use shoulda-context' do
51
+ append_to_gemfile "gem 'shoulda-context', '~> 1.0.0'"
52
+ steps %{And I run `bundle install --local`}
53
+ end
54
+
55
+ When /^I set the "([^"]*)" environment variable to "([^"]*)"$/ do |key, value|
56
+ ENV[key] = value
57
+ end
58
+
59
+ When 'I configure a wildcard route' do
60
+ steps %{
61
+ When I write to "config/routes.rb" with:
62
+ """
63
+ Rails.application.routes.draw do
64
+ match ':controller(/:action(/:id(.:format)))'
65
+ end
66
+ """
67
+ }
68
+ end
69
+
70
+ When 'I append gems from Appraisal Gemfile' do
71
+ File.read(ENV['BUNDLE_GEMFILE']).split(/\n/).each do |line|
72
+ if line =~ /^gem "(?!rails|appraisal)/
73
+ append_to_gemfile line.strip
74
+ end
75
+ end
76
+ end
77
+
78
+ When 'I reset Bundler environment variables' do
79
+ BUNDLE_ENV_VARS.each do |key|
80
+ ENV[key] = nil
81
+ end
82
+ end
83
+
84
+ When /^I comment out the gem "([^"]*)" from the Gemfile$/ do |gemname|
85
+ comment_out_gem_in_gemfile gemname
86
+ end
87
+
88
+ module FileHelpers
89
+ def append_to(path, contents)
90
+ in_current_dir do
91
+ File.open(path, "a") do |file|
92
+ file.puts
93
+ file.puts contents
94
+ end
95
+ end
96
+ end
97
+
98
+ def append_to_gemfile(contents)
99
+ append_to('Gemfile', contents)
100
+ end
101
+
102
+ def comment_out_gem_in_gemfile(gemname)
103
+ in_current_dir do
104
+ gemfile = File.read("Gemfile")
105
+ gemfile.sub!(/^(\s*)(gem\s*['"]#{gemname})/, "\\1# \\2")
106
+ File.open("Gemfile", 'w'){ |file| file.write(gemfile) }
107
+ end
108
+ end
109
+ end
110
+
111
+ World(FileHelpers)
@@ -0,0 +1,5 @@
1
+ require 'aruba/cucumber'
2
+
3
+ Before do
4
+ @aruba_timeout_seconds = 120
5
+ end
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "shoulda-context", "~> 1.0.0"
6
+ gem "sqlite3", :platform=>:ruby
7
+ gem "activerecord-jdbc-adapter", :platform=>:jruby
8
+ gem "activerecord-jdbcsqlite3-adapter", :platform=>:jruby
9
+ gem "jdbc-sqlite3", :platform=>:jruby
10
+ gem "jruby-openssl", :platform=>:jruby
11
+ gem "therubyrhino", :platform=>:jruby
12
+ gem "rails", "3.0.12"
13
+
14
+ gemspec :path=>"../"
@@ -0,0 +1,142 @@
1
+ PATH
2
+ remote: /Users/gabe/thoughtbot/shoulda-matchers
3
+ specs:
4
+ shoulda-matchers (1.0.0)
5
+ activesupport (>= 3.0.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ abstract (1.0.0)
11
+ actionmailer (3.0.12)
12
+ actionpack (= 3.0.12)
13
+ mail (~> 2.2.19)
14
+ actionpack (3.0.12)
15
+ activemodel (= 3.0.12)
16
+ activesupport (= 3.0.12)
17
+ builder (~> 2.1.2)
18
+ erubis (~> 2.6.6)
19
+ i18n (~> 0.5.0)
20
+ rack (~> 1.2.5)
21
+ rack-mount (~> 0.6.14)
22
+ rack-test (~> 0.5.7)
23
+ tzinfo (~> 0.3.23)
24
+ activemodel (3.0.12)
25
+ activesupport (= 3.0.12)
26
+ builder (~> 2.1.2)
27
+ i18n (~> 0.5.0)
28
+ activerecord (3.0.12)
29
+ activemodel (= 3.0.12)
30
+ activesupport (= 3.0.12)
31
+ arel (~> 2.0.10)
32
+ tzinfo (~> 0.3.23)
33
+ activeresource (3.0.12)
34
+ activemodel (= 3.0.12)
35
+ activesupport (= 3.0.12)
36
+ activesupport (3.0.12)
37
+ appraisal (0.4.1)
38
+ bundler
39
+ rake
40
+ arel (2.0.10)
41
+ aruba (0.4.6)
42
+ bcat (>= 0.6.1)
43
+ childprocess (>= 0.2.0)
44
+ cucumber (>= 1.0.2)
45
+ rdiscount (>= 1.6.8)
46
+ rspec (>= 2.6.0)
47
+ bcat (0.6.2)
48
+ rack (~> 1.0)
49
+ bourne (1.1.2)
50
+ mocha (= 0.10.5)
51
+ builder (2.1.2)
52
+ childprocess (0.3.1)
53
+ ffi (~> 1.0.6)
54
+ cucumber (1.1.9)
55
+ builder (>= 2.1.2)
56
+ diff-lcs (>= 1.1.2)
57
+ gherkin (~> 2.9.0)
58
+ json (>= 1.4.6)
59
+ term-ansicolor (>= 1.0.6)
60
+ diff-lcs (1.1.3)
61
+ erubis (2.6.6)
62
+ abstract (>= 1.0.0)
63
+ ffi (1.0.11)
64
+ gherkin (2.9.3)
65
+ json (>= 1.4.6)
66
+ i18n (0.5.0)
67
+ json (1.6.6)
68
+ mail (2.2.19)
69
+ activesupport (>= 2.3.6)
70
+ i18n (>= 0.4.0)
71
+ mime-types (~> 1.16)
72
+ treetop (~> 1.4.8)
73
+ metaclass (0.0.1)
74
+ mime-types (1.18)
75
+ mocha (0.10.5)
76
+ metaclass (~> 0.0.1)
77
+ polyglot (0.3.3)
78
+ rack (1.2.5)
79
+ rack-mount (0.6.14)
80
+ rack (>= 1.0.0)
81
+ rack-test (0.5.7)
82
+ rack (>= 1.0)
83
+ rails (3.0.12)
84
+ actionmailer (= 3.0.12)
85
+ actionpack (= 3.0.12)
86
+ activerecord (= 3.0.12)
87
+ activeresource (= 3.0.12)
88
+ activesupport (= 3.0.12)
89
+ bundler (~> 1.0)
90
+ railties (= 3.0.12)
91
+ railties (3.0.12)
92
+ actionpack (= 3.0.12)
93
+ activesupport (= 3.0.12)
94
+ rake (>= 0.8.7)
95
+ rdoc (~> 3.4)
96
+ thor (~> 0.14.4)
97
+ rake (0.9.2.2)
98
+ rdiscount (1.6.8)
99
+ rdoc (3.12)
100
+ json (~> 1.4)
101
+ rspec (2.6.0)
102
+ rspec-core (~> 2.6.0)
103
+ rspec-expectations (~> 2.6.0)
104
+ rspec-mocks (~> 2.6.0)
105
+ rspec-core (2.6.4)
106
+ rspec-expectations (2.6.0)
107
+ diff-lcs (~> 1.1.2)
108
+ rspec-mocks (2.6.0)
109
+ rspec-rails (2.6.1)
110
+ actionpack (~> 3.0)
111
+ activesupport (~> 3.0)
112
+ railties (~> 3.0)
113
+ rspec (~> 2.6.0)
114
+ shoulda-context (1.0.0)
115
+ sqlite3 (1.3.5)
116
+ term-ansicolor (1.0.7)
117
+ thor (0.14.6)
118
+ treetop (1.4.10)
119
+ polyglot
120
+ polyglot (>= 0.3.1)
121
+ tzinfo (0.3.33)
122
+
123
+ PLATFORMS
124
+ ruby
125
+
126
+ DEPENDENCIES
127
+ activerecord-jdbc-adapter
128
+ activerecord-jdbcsqlite3-adapter
129
+ appraisal (~> 0.4.0)
130
+ aruba
131
+ bourne (~> 1.1.2)
132
+ bundler (~> 1.1.0)
133
+ cucumber (~> 1.1.9)
134
+ jdbc-sqlite3
135
+ jruby-openssl
136
+ rails (= 3.0.12)
137
+ rake (~> 0.9.2)
138
+ rspec-rails (~> 2.6.1)
139
+ shoulda-context (~> 1.0.0)
140
+ shoulda-matchers!
141
+ sqlite3
142
+ therubyrhino
@@ -0,0 +1,16 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "shoulda-context", "~> 1.0.0"
6
+ gem "sqlite3", :platform=>:ruby
7
+ gem "activerecord-jdbc-adapter", :platform=>:jruby
8
+ gem "activerecord-jdbcsqlite3-adapter", :platform=>:jruby
9
+ gem "jdbc-sqlite3", :platform=>:jruby
10
+ gem "jruby-openssl", :platform=>:jruby
11
+ gem "therubyrhino", :platform=>:jruby
12
+ gem "rails", "3.1.4"
13
+ gem "jquery-rails"
14
+ gem "sass-rails"
15
+
16
+ gemspec :path=>"../"
@@ -0,0 +1,164 @@
1
+ PATH
2
+ remote: /Users/gabe/thoughtbot/shoulda-matchers
3
+ specs:
4
+ shoulda-matchers (1.0.0)
5
+ activesupport (>= 3.0.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ actionmailer (3.1.4)
11
+ actionpack (= 3.1.4)
12
+ mail (~> 2.3.0)
13
+ actionpack (3.1.4)
14
+ activemodel (= 3.1.4)
15
+ activesupport (= 3.1.4)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ i18n (~> 0.6)
19
+ rack (~> 1.3.6)
20
+ rack-cache (~> 1.1)
21
+ rack-mount (~> 0.8.2)
22
+ rack-test (~> 0.6.1)
23
+ sprockets (~> 2.0.3)
24
+ activemodel (3.1.4)
25
+ activesupport (= 3.1.4)
26
+ builder (~> 3.0.0)
27
+ i18n (~> 0.6)
28
+ activerecord (3.1.4)
29
+ activemodel (= 3.1.4)
30
+ activesupport (= 3.1.4)
31
+ arel (~> 2.2.3)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.1.4)
34
+ activemodel (= 3.1.4)
35
+ activesupport (= 3.1.4)
36
+ activesupport (3.1.4)
37
+ multi_json (~> 1.0)
38
+ appraisal (0.4.1)
39
+ bundler
40
+ rake
41
+ arel (2.2.3)
42
+ aruba (0.4.6)
43
+ bcat (>= 0.6.1)
44
+ childprocess (>= 0.2.0)
45
+ cucumber (>= 1.0.2)
46
+ rdiscount (>= 1.6.8)
47
+ rspec (>= 2.6.0)
48
+ bcat (0.6.2)
49
+ rack (~> 1.0)
50
+ bourne (1.1.2)
51
+ mocha (= 0.10.5)
52
+ builder (3.0.0)
53
+ childprocess (0.3.1)
54
+ ffi (~> 1.0.6)
55
+ cucumber (1.1.9)
56
+ builder (>= 2.1.2)
57
+ diff-lcs (>= 1.1.2)
58
+ gherkin (~> 2.9.0)
59
+ json (>= 1.4.6)
60
+ term-ansicolor (>= 1.0.6)
61
+ diff-lcs (1.1.3)
62
+ erubis (2.7.0)
63
+ ffi (1.0.11)
64
+ gherkin (2.9.3)
65
+ json (>= 1.4.6)
66
+ hike (1.2.1)
67
+ i18n (0.6.0)
68
+ jquery-rails (1.0.19)
69
+ railties (~> 3.0)
70
+ thor (~> 0.14)
71
+ json (1.6.6)
72
+ mail (2.3.3)
73
+ i18n (>= 0.4.0)
74
+ mime-types (~> 1.16)
75
+ treetop (~> 1.4.8)
76
+ metaclass (0.0.1)
77
+ mime-types (1.18)
78
+ mocha (0.10.5)
79
+ metaclass (~> 0.0.1)
80
+ multi_json (1.2.0)
81
+ polyglot (0.3.3)
82
+ rack (1.3.6)
83
+ rack-cache (1.2)
84
+ rack (>= 0.4)
85
+ rack-mount (0.8.3)
86
+ rack (>= 1.0.0)
87
+ rack-ssl (1.3.2)
88
+ rack
89
+ rack-test (0.6.1)
90
+ rack (>= 1.0)
91
+ rails (3.1.4)
92
+ actionmailer (= 3.1.4)
93
+ actionpack (= 3.1.4)
94
+ activerecord (= 3.1.4)
95
+ activeresource (= 3.1.4)
96
+ activesupport (= 3.1.4)
97
+ bundler (~> 1.0)
98
+ railties (= 3.1.4)
99
+ railties (3.1.4)
100
+ actionpack (= 3.1.4)
101
+ activesupport (= 3.1.4)
102
+ rack-ssl (~> 1.3.2)
103
+ rake (>= 0.8.7)
104
+ rdoc (~> 3.4)
105
+ thor (~> 0.14.6)
106
+ rake (0.9.2.2)
107
+ rdiscount (1.6.8)
108
+ rdoc (3.12)
109
+ json (~> 1.4)
110
+ rspec (2.6.0)
111
+ rspec-core (~> 2.6.0)
112
+ rspec-expectations (~> 2.6.0)
113
+ rspec-mocks (~> 2.6.0)
114
+ rspec-core (2.6.4)
115
+ rspec-expectations (2.6.0)
116
+ diff-lcs (~> 1.1.2)
117
+ rspec-mocks (2.6.0)
118
+ rspec-rails (2.6.1)
119
+ actionpack (~> 3.0)
120
+ activesupport (~> 3.0)
121
+ railties (~> 3.0)
122
+ rspec (~> 2.6.0)
123
+ sass (3.1.15)
124
+ sass-rails (3.1.6)
125
+ actionpack (~> 3.1.0)
126
+ railties (~> 3.1.0)
127
+ sass (>= 3.1.10)
128
+ tilt (~> 1.3.2)
129
+ shoulda-context (1.0.0)
130
+ sprockets (2.0.3)
131
+ hike (~> 1.2)
132
+ rack (~> 1.0)
133
+ tilt (~> 1.1, != 1.3.0)
134
+ sqlite3 (1.3.5)
135
+ term-ansicolor (1.0.7)
136
+ thor (0.14.6)
137
+ tilt (1.3.3)
138
+ treetop (1.4.10)
139
+ polyglot
140
+ polyglot (>= 0.3.1)
141
+ tzinfo (0.3.33)
142
+
143
+ PLATFORMS
144
+ ruby
145
+
146
+ DEPENDENCIES
147
+ activerecord-jdbc-adapter
148
+ activerecord-jdbcsqlite3-adapter
149
+ appraisal (~> 0.4.0)
150
+ aruba
151
+ bourne (~> 1.1.2)
152
+ bundler (~> 1.1.0)
153
+ cucumber (~> 1.1.9)
154
+ jdbc-sqlite3
155
+ jquery-rails
156
+ jruby-openssl
157
+ rails (= 3.1.4)
158
+ rake (~> 0.9.2)
159
+ rspec-rails (~> 2.6.1)
160
+ sass-rails
161
+ shoulda-context (~> 1.0.0)
162
+ shoulda-matchers!
163
+ sqlite3
164
+ therubyrhino