devise_invitable 0.3.2 → 0.4.rc

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 (59) hide show
  1. data/README.rdoc +124 -52
  2. data/app/controllers/devise/invitations_controller.rb +9 -6
  3. data/app/controllers/devise/invitations_controller.rb~ +48 -0
  4. data/app/views/devise/mailer/invitation_instructions.html.erb +8 -0
  5. data/config/locales/en.yml +5 -4
  6. data/lib/devise_invitable/controllers/helpers.rb +1 -1
  7. data/lib/devise_invitable/mailer.rb +12 -5
  8. data/lib/devise_invitable/model.rb +27 -36
  9. data/lib/devise_invitable/model.rb~ +129 -0
  10. data/lib/devise_invitable/rails.rb +2 -1
  11. data/lib/devise_invitable/routes.rb +8 -5
  12. data/lib/devise_invitable/schema.rb +24 -2
  13. data/lib/devise_invitable/version.rb +3 -0
  14. data/lib/devise_invitable.rb +9 -13
  15. data/lib/generators/active_record/devise_invitable_generator.rb +13 -0
  16. data/lib/generators/active_record/templates/migration.rb +20 -0
  17. data/lib/generators/devise_invitable/devise_invitable_generator.rb +20 -0
  18. data/lib/generators/devise_invitable/install_generator.rb +39 -0
  19. data/lib/generators/devise_invitable/views_generator.rb +1 -1
  20. metadata +74 -121
  21. data/.document +0 -5
  22. data/.gitignore +0 -22
  23. data/Gemfile +0 -3
  24. data/Gemfile.lock +0 -108
  25. data/Rakefile +0 -55
  26. data/VERSION +0 -1
  27. data/devise_invitable.gemspec +0 -136
  28. data/test/integration/invitable_test.rb +0 -109
  29. data/test/integration_tests_helper.rb +0 -58
  30. data/test/mailers/invitation_test.rb +0 -62
  31. data/test/model_tests_helper.rb +0 -41
  32. data/test/models/invitable_test.rb +0 -188
  33. data/test/models_test.rb +0 -31
  34. data/test/rails_app/app/controllers/admins_controller.rb +0 -6
  35. data/test/rails_app/app/controllers/application_controller.rb +0 -3
  36. data/test/rails_app/app/controllers/home_controller.rb +0 -4
  37. data/test/rails_app/app/controllers/users_controller.rb +0 -12
  38. data/test/rails_app/app/helpers/application_helper.rb +0 -2
  39. data/test/rails_app/app/models/user.rb +0 -4
  40. data/test/rails_app/app/views/home/index.html.erb +0 -0
  41. data/test/rails_app/app/views/layouts/application.html.erb +0 -15
  42. data/test/rails_app/config/application.rb +0 -45
  43. data/test/rails_app/config/boot.rb +0 -13
  44. data/test/rails_app/config/database.yml +0 -22
  45. data/test/rails_app/config/environment.rb +0 -5
  46. data/test/rails_app/config/environments/development.rb +0 -26
  47. data/test/rails_app/config/environments/production.rb +0 -49
  48. data/test/rails_app/config/environments/test.rb +0 -35
  49. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -7
  50. data/test/rails_app/config/initializers/devise.rb +0 -142
  51. data/test/rails_app/config/initializers/inflections.rb +0 -10
  52. data/test/rails_app/config/initializers/mime_types.rb +0 -5
  53. data/test/rails_app/config/initializers/secret_token.rb +0 -7
  54. data/test/rails_app/config/initializers/session_store.rb +0 -8
  55. data/test/rails_app/config/locales/en.yml +0 -5
  56. data/test/rails_app/config/routes.rb +0 -4
  57. data/test/rails_app/config.ru +0 -4
  58. data/test/routes_test.rb +0 -20
  59. data/test/test_helper.rb +0 -29
@@ -1,10 +1,13 @@
1
1
  module ActionDispatch::Routing
2
2
  class Mapper
3
- protected
4
- def devise_invitation(mapping, controllers)
5
- resource :invitation, :only => [:new, :create, :update], :path => mapping.path_names[:invitation], :controller => controllers[:invitations] do
6
- get :edit, :path => mapping.path_names[:accept], :as => :accept
7
- end
3
+
4
+ protected
5
+ def devise_invitation(mapping, controllers)
6
+ resource :invitation, :only => [:new, :create, :update],
7
+ :path => mapping.path_names[:invitation], :controller => controllers[:invitations] do
8
+ get :edit, :path => mapping.path_names[:accept], :as => :accept
8
9
  end
10
+ end
11
+
9
12
  end
10
13
  end
@@ -1,8 +1,30 @@
1
1
  module DeviseInvitable
2
2
  module Schema
3
- # Creates invitation_token and invitation_sent_at.
3
+ # Add invitation_token and invitation_sent_at columns in the resource's database table.
4
+ #
5
+ # Examples
6
+ #
7
+ # # For a new resource migration:
8
+ # create_table :the_resources do
9
+ # t.database_authenticatable :null => false # you need at least this
10
+ # t.invitable
11
+ # ...
12
+ # end
13
+ # add_index :the_resources, :invitation_token # for invitable
14
+ #
15
+ # # or if the resource's table already exists, define a migration and put this in:
16
+ # change_table :the_resources do |t|
17
+ # t.string :invitation_token, :limit => 60
18
+ # t.datetime :invitation_sent_at
19
+ # t.index :invitation_token # for invitable
20
+ # end
21
+ #
22
+ # # And allow encrypted_password to be null:
23
+ # change_column :the_resources, :encrypted_password, :string, :null => true
24
+ # # the following line is only if you use Devise's encryptable module!
25
+ # change_column :the_resources, :password_salt, :string, :null => true
4
26
  def invitable
5
- apply_devise_schema :invitation_token, String, :limit => 20
27
+ apply_devise_schema :invitation_token, String, :limit => 60
6
28
  apply_devise_schema :invitation_sent_at, DateTime
7
29
  end
8
30
  end
@@ -0,0 +1,3 @@
1
+ module DeviseInvitable
2
+ VERSION = '0.4.rc'
3
+ end
@@ -1,16 +1,4 @@
1
- unless defined?(Devise)
2
- require 'devise'
3
- end
4
-
5
- Devise.module_eval do
6
- # Time interval where the invitation token is valid.
7
- mattr_accessor :invite_for
8
- @@invite_for = 0
9
- end
10
-
11
- Devise.add_module :invitable, :controller => :invitations, :model => 'devise_invitable/model', :route => :invitation
12
-
13
- module DeviseInvitable; end
1
+ require 'devise'
14
2
 
15
3
  require 'devise_invitable/mailer'
16
4
  require 'devise_invitable/routes'
@@ -18,3 +6,11 @@ require 'devise_invitable/schema'
18
6
  require 'devise_invitable/controllers/url_helpers'
19
7
  require 'devise_invitable/controllers/helpers'
20
8
  require 'devise_invitable/rails'
9
+
10
+ module Devise
11
+ # The period the generated invitation token is valid.
12
+ mattr_accessor :invite_for
13
+ @@invite_for = 0
14
+ end
15
+
16
+ Devise.add_module :invitable, :controller => :invitations, :model => 'devise_invitable/model', :route => :invitation
@@ -0,0 +1,13 @@
1
+ require 'rails/generators/active_record'
2
+
3
+ module ActiveRecord
4
+ module Generators
5
+ class DeviseInvitableGenerator < ActiveRecord::Generators::Base
6
+ source_root File.expand_path("../templates", __FILE__)
7
+
8
+ def copy_devise_migration
9
+ migration_template "migration.rb", "db/migrate/devise_invitable_add_to_#{table_name}"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ class DeviseInvitableAddTo<%= table_name.camelize %> < ActiveRecord::Migration
2
+ def self.up
3
+ change_table :<%= table_name %> do |t|
4
+ t.string :invitation_token, :limit => 60
5
+ t.datetime :invitation_sent_at
6
+ t.index :invitation_token # for invitable
7
+ end
8
+
9
+ # And allow null encrypted_password and password_salt:
10
+ change_column_null :<%= table_name %>, :encrypted_password, true
11
+ <% if class_name.constantize.columns_hash['password_salt'] -%>
12
+ change_column_null :<%= table_name %>, :password_salt, true
13
+ <% end -%>
14
+ end
15
+
16
+ def self.down
17
+ remove_column :<%= table_name %>, :invitation_sent_at
18
+ remove_column :<%= table_name %>, :invitation_token
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ module DeviseInvitable
2
+ module Generators
3
+ class DeviseInvitableGenerator < Rails::Generators::NamedBase
4
+ namespace "devise_invitable"
5
+
6
+ desc "Add :invitable directive in the given model. Also generate migration for ActiveRecord"
7
+
8
+ # def devise_generate_model
9
+ # invoke "devise", [name]
10
+ # end
11
+
12
+ def inject_devise_invitable_content
13
+ path = File.join("app", "models", "#{file_path}.rb")
14
+ inject_into_file(path, "invitable, :", :after => "devise :") if File.exists?(path)
15
+ end
16
+
17
+ hook_for :orm
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,39 @@
1
+ module DeviseInvitable
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../templates", __FILE__)
5
+ desc "Add DeviseInvitable config variables to the Devise initializer and copy DeviseInvitable locale files to your application."
6
+
7
+ # def devise_install
8
+ # invoke "devise:install"
9
+ # end
10
+
11
+ def add_config_options_to_initializer
12
+ devise_initializer_path = "config/initializers/devise.rb"
13
+ if File.exist?(devise_initializer_path)
14
+ old_content = File.read(devise_initializer_path)
15
+
16
+ if old_content.match(Regexp.new(/^\s# ==> Configuration for :invitable\n/))
17
+ false
18
+ else
19
+ inject_into_file(devise_initializer_path, :before => " # ==> Configuration for :confirmable\n") do
20
+ <<-CONTENT
21
+ # ==> Configuration for :invitable
22
+ # The period the generated invitation token is valid, after
23
+ # this period, the invited resource won't be able to accept the invitation.
24
+ # When invite_for is 0 (the default), the invitation won't expire.
25
+ # config.invite_for = 2.weeks
26
+
27
+ CONTENT
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ def copy_locale
34
+ copy_file "../../../config/locales/en.yml", "config/locales/devise_invitable.en.yml"
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -3,7 +3,7 @@ require 'generators/devise/views_generator'
3
3
  module DeviseInvitable
4
4
  module Generators
5
5
  class ViewsGenerator < Devise::Generators::ViewsGenerator
6
- source_root File.expand_path('../../../../app/views', __FILE__)
6
+ source_root File.expand_path("../../../../app/views", __FILE__)
7
7
  desc 'Copies all DeviseInvitable views to your application.'
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_invitable
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
4
+ hash: 7712090
5
+ prerelease: true
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 2
10
- version: 0.3.2
8
+ - 4
9
+ - rc
10
+ version: 0.4.rc
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sergio Cambra
@@ -15,70 +15,74 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-15 00:00:00 +02:00
18
+ date: 2011-01-06 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: mocha
22
+ name: rspec-rails
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ">="
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 43
29
+ hash: 11
30
30
  segments:
31
+ - 2
32
+ - 1
31
33
  - 0
32
- - 9
33
- - 8
34
- version: 0.9.8
34
+ version: 2.1.0
35
35
  type: :development
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: capybara
38
+ name: steak
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ">="
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- hash: 1
45
+ hash: 15424051
46
46
  segments:
47
+ - 1
48
+ - 0
47
49
  - 0
50
+ - rc
48
51
  - 3
49
- - 9
50
- version: 0.3.9
52
+ version: 1.0.0.rc.3
51
53
  type: :development
52
54
  version_requirements: *id002
53
55
  - !ruby/object:Gem::Dependency
54
- name: rails
56
+ name: bundler
55
57
  prerelease: false
56
58
  requirement: &id003 !ruby/object:Gem::Requirement
57
59
  none: false
58
60
  requirements:
59
61
  - - ~>
60
62
  - !ruby/object:Gem::Version
61
- hash: 7
63
+ hash: 25
62
64
  segments:
63
- - 3
64
- - 0
65
+ - 1
65
66
  - 0
66
- version: 3.0.0
67
+ - 7
68
+ version: 1.0.7
67
69
  type: :development
68
70
  version_requirements: *id003
69
71
  - !ruby/object:Gem::Dependency
70
- name: sqlite3-ruby
72
+ name: rails
71
73
  prerelease: false
72
74
  requirement: &id004 !ruby/object:Gem::Requirement
73
75
  none: false
74
76
  requirements:
75
- - - ">="
77
+ - - ~>
76
78
  - !ruby/object:Gem::Version
77
- hash: 3
79
+ hash: 7
78
80
  segments:
81
+ - 3
79
82
  - 0
80
- version: "0"
81
- type: :development
83
+ - 0
84
+ version: 3.0.0
85
+ type: :runtime
82
86
  version_requirements: *id004
83
87
  - !ruby/object:Gem::Dependency
84
88
  name: devise
@@ -88,85 +92,56 @@ dependencies:
88
92
  requirements:
89
93
  - - ~>
90
94
  - !ruby/object:Gem::Version
91
- hash: 19
95
+ hash: 7712074
92
96
  segments:
93
97
  - 1
94
- - 1
95
- - 0
96
- version: 1.1.0
98
+ - 2
99
+ - rc
100
+ version: 1.2.rc
97
101
  type: :runtime
98
102
  version_requirements: *id005
99
- description: It adds support for send invitations by email (it requires to be authenticated) and accept the invitation setting the password
100
- email: sergio@entrecables.com
103
+ description: It adds support for send invitations by email (it requires to be authenticated) and accept the invitation by setting a password.
104
+ email:
105
+ - sergio@entrecables.com
101
106
  executables: []
102
107
 
103
108
  extensions: []
104
109
 
105
- extra_rdoc_files:
106
- - LICENSE
107
- - README.rdoc
110
+ extra_rdoc_files: []
111
+
108
112
  files:
109
- - .document
110
- - .gitignore
111
- - Gemfile
112
- - Gemfile.lock
113
- - LICENSE
114
- - README.rdoc
115
- - Rakefile
116
- - VERSION
117
- - app/controllers/devise/invitations_controller.rb
118
113
  - app/views/devise/invitations/edit.html.erb
119
114
  - app/views/devise/invitations/new.html.erb
115
+ - app/views/devise/mailer/invitation_instructions.html.erb
120
116
  - app/views/devise/mailer/invitation.html.erb
117
+ - app/controllers/devise/invitations_controller.rb~
118
+ - app/controllers/devise/invitations_controller.rb
121
119
  - config/locales/en.yml
122
- - devise_invitable.gemspec
123
- - lib/devise_invitable.rb
124
- - lib/devise_invitable/controllers/helpers.rb
125
- - lib/devise_invitable/controllers/url_helpers.rb
126
- - lib/devise_invitable/mailer.rb
127
- - lib/devise_invitable/model.rb
128
120
  - lib/devise_invitable/rails.rb
129
- - lib/devise_invitable/routes.rb
130
121
  - lib/devise_invitable/schema.rb
122
+ - lib/devise_invitable/mailer.rb
123
+ - lib/devise_invitable/routes.rb
124
+ - lib/devise_invitable/version.rb
125
+ - lib/devise_invitable/model.rb
126
+ - lib/devise_invitable/model.rb~
127
+ - lib/devise_invitable/controllers/helpers.rb
128
+ - lib/devise_invitable/controllers/url_helpers.rb
129
+ - lib/devise_invitable.rb
131
130
  - lib/generators/devise_invitable/views_generator.rb
132
- - test/integration/invitable_test.rb
133
- - test/integration_tests_helper.rb
134
- - test/mailers/invitation_test.rb
135
- - test/model_tests_helper.rb
136
- - test/models/invitable_test.rb
137
- - test/models_test.rb
138
- - test/rails_app/app/controllers/admins_controller.rb
139
- - test/rails_app/app/controllers/application_controller.rb
140
- - test/rails_app/app/controllers/home_controller.rb
141
- - test/rails_app/app/controllers/users_controller.rb
142
- - test/rails_app/app/helpers/application_helper.rb
143
- - test/rails_app/app/models/user.rb
144
- - test/rails_app/app/views/home/index.html.erb
145
- - test/rails_app/app/views/layouts/application.html.erb
146
- - test/rails_app/config.ru
147
- - test/rails_app/config/application.rb
148
- - test/rails_app/config/boot.rb
149
- - test/rails_app/config/database.yml
150
- - test/rails_app/config/environment.rb
151
- - test/rails_app/config/environments/development.rb
152
- - test/rails_app/config/environments/production.rb
153
- - test/rails_app/config/environments/test.rb
154
- - test/rails_app/config/initializers/backtrace_silencers.rb
155
- - test/rails_app/config/initializers/devise.rb
156
- - test/rails_app/config/initializers/inflections.rb
157
- - test/rails_app/config/initializers/mime_types.rb
158
- - test/rails_app/config/initializers/secret_token.rb
159
- - test/rails_app/config/initializers/session_store.rb
160
- - test/rails_app/config/locales/en.yml
161
- - test/rails_app/config/routes.rb
162
- - test/routes_test.rb
163
- - test/test_helper.rb
131
+ - lib/generators/devise_invitable/devise_invitable_generator.rb
132
+ - lib/generators/devise_invitable/install_generator.rb
133
+ - lib/generators/active_record/devise_invitable_generator.rb
134
+ - lib/generators/active_record/templates/migration.rb
135
+ - LICENSE
136
+ - README.rdoc
164
137
  has_rdoc: true
165
- homepage: http://github.com/scambra/devise_invitable
138
+ homepage: http://github.com/rymai/devise_invitable
166
139
  licenses: []
167
140
 
168
141
  post_install_message:
169
142
  rdoc_options:
143
+ - --main
144
+ - README.rdoc
170
145
  - --charset=UTF-8
171
146
  require_paths:
172
147
  - lib
@@ -175,51 +150,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
150
  requirements:
176
151
  - - ">="
177
152
  - !ruby/object:Gem::Version
178
- hash: 3
153
+ hash: 59
179
154
  segments:
180
- - 0
181
- version: "0"
155
+ - 1
156
+ - 8
157
+ - 6
158
+ version: 1.8.6
182
159
  required_rubygems_version: !ruby/object:Gem::Requirement
183
160
  none: false
184
161
  requirements:
185
- - - ">="
162
+ - - ~>
186
163
  - !ruby/object:Gem::Version
187
- hash: 3
164
+ hash: 23
188
165
  segments:
189
- - 0
190
- version: "0"
166
+ - 1
167
+ - 3
168
+ - 6
169
+ version: 1.3.6
191
170
  requirements: []
192
171
 
193
172
  rubyforge_project:
194
173
  rubygems_version: 1.3.7
195
174
  signing_key:
196
175
  specification_version: 3
197
- summary: An invitation strategy for devise
198
- test_files:
199
- - test/test_helper.rb
200
- - test/integration/invitable_test.rb
201
- - test/routes_test.rb
202
- - test/rails_app/app/helpers/application_helper.rb
203
- - test/rails_app/app/models/user.rb
204
- - test/rails_app/app/controllers/admins_controller.rb
205
- - test/rails_app/app/controllers/application_controller.rb
206
- - test/rails_app/app/controllers/home_controller.rb
207
- - test/rails_app/app/controllers/users_controller.rb
208
- - test/rails_app/config/initializers/devise.rb
209
- - test/rails_app/config/initializers/inflections.rb
210
- - test/rails_app/config/initializers/mime_types.rb
211
- - test/rails_app/config/initializers/secret_token.rb
212
- - test/rails_app/config/initializers/session_store.rb
213
- - test/rails_app/config/initializers/backtrace_silencers.rb
214
- - test/rails_app/config/environment.rb
215
- - test/rails_app/config/environments/production.rb
216
- - test/rails_app/config/environments/test.rb
217
- - test/rails_app/config/environments/development.rb
218
- - test/rails_app/config/routes.rb
219
- - test/rails_app/config/application.rb
220
- - test/rails_app/config/boot.rb
221
- - test/integration_tests_helper.rb
222
- - test/model_tests_helper.rb
223
- - test/models_test.rb
224
- - test/mailers/invitation_test.rb
225
- - test/models/invitable_test.rb
176
+ summary: An invitation strategy for Devise
177
+ test_files: []
178
+
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- test/rails_app/log
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source :rubygems
2
-
3
- gemspec
data/Gemfile.lock DELETED
@@ -1,108 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- devise_invitable (0.3.1)
5
- devise (~> 1.1.0)
6
-
7
- GEM
8
- remote: http://rubygems.org/
9
- specs:
10
- abstract (1.0.0)
11
- actionmailer (3.0.0)
12
- actionpack (= 3.0.0)
13
- mail (~> 2.2.5)
14
- actionpack (3.0.0)
15
- activemodel (= 3.0.0)
16
- activesupport (= 3.0.0)
17
- builder (~> 2.1.2)
18
- erubis (~> 2.6.6)
19
- i18n (~> 0.4.1)
20
- rack (~> 1.2.1)
21
- rack-mount (~> 0.6.12)
22
- rack-test (~> 0.5.4)
23
- tzinfo (~> 0.3.23)
24
- activemodel (3.0.0)
25
- activesupport (= 3.0.0)
26
- builder (~> 2.1.2)
27
- i18n (~> 0.4.1)
28
- activerecord (3.0.0)
29
- activemodel (= 3.0.0)
30
- activesupport (= 3.0.0)
31
- arel (~> 1.0.0)
32
- tzinfo (~> 0.3.23)
33
- activeresource (3.0.0)
34
- activemodel (= 3.0.0)
35
- activesupport (= 3.0.0)
36
- activesupport (3.0.0)
37
- arel (1.0.1)
38
- activesupport (~> 3.0.0)
39
- bcrypt-ruby (2.1.2)
40
- builder (2.1.2)
41
- capybara (0.3.9)
42
- culerity (>= 0.2.4)
43
- mime-types (>= 1.16)
44
- nokogiri (>= 1.3.3)
45
- rack (>= 1.0.0)
46
- rack-test (>= 0.5.4)
47
- selenium-webdriver (>= 0.0.3)
48
- culerity (0.2.12)
49
- devise (1.1.2)
50
- bcrypt-ruby (~> 2.1.2)
51
- warden (~> 0.10.7)
52
- erubis (2.6.6)
53
- abstract (>= 1.0.0)
54
- ffi (0.6.3)
55
- rake (>= 0.8.7)
56
- i18n (0.4.1)
57
- json_pure (1.4.6)
58
- mail (2.2.6)
59
- activesupport (>= 2.3.6)
60
- mime-types
61
- treetop (>= 1.4.5)
62
- mime-types (1.16)
63
- mocha (0.9.8)
64
- rake
65
- nokogiri (1.4.3.1)
66
- polyglot (0.3.1)
67
- rack (1.2.1)
68
- rack-mount (0.6.13)
69
- rack (>= 1.0.0)
70
- rack-test (0.5.4)
71
- rack (>= 1.0)
72
- rails (3.0.0)
73
- actionmailer (= 3.0.0)
74
- actionpack (= 3.0.0)
75
- activerecord (= 3.0.0)
76
- activeresource (= 3.0.0)
77
- activesupport (= 3.0.0)
78
- bundler (~> 1.0.0)
79
- railties (= 3.0.0)
80
- railties (3.0.0)
81
- actionpack (= 3.0.0)
82
- activesupport (= 3.0.0)
83
- rake (>= 0.8.4)
84
- thor (~> 0.14.0)
85
- rake (0.8.7)
86
- rubyzip (0.9.4)
87
- selenium-webdriver (0.0.28)
88
- ffi (>= 0.6.1)
89
- json_pure
90
- rubyzip
91
- sqlite3-ruby (1.3.1)
92
- thor (0.14.0)
93
- treetop (1.4.8)
94
- polyglot (>= 0.3.1)
95
- tzinfo (0.3.23)
96
- warden (0.10.7)
97
- rack (>= 1.0.0)
98
-
99
- PLATFORMS
100
- ruby
101
-
102
- DEPENDENCIES
103
- capybara (>= 0.3.9)
104
- devise (~> 1.1.0)
105
- devise_invitable!
106
- mocha (>= 0.9.8)
107
- rails (~> 3.0.0)
108
- sqlite3-ruby