dm-devise 0.1.0
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.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +252 -0
- data/LICENSE +20 -0
- data/README.rdoc +96 -0
- data/Rakefile +73 -0
- data/dm-devise.gemspec +105 -0
- data/lib/devise/orm/data_mapper.rb +23 -0
- data/lib/devise/orm/data_mapper/compatibility.rb +69 -0
- data/lib/devise/orm/data_mapper/date_time.rb +6 -0
- data/lib/devise/orm/data_mapper/dm-validations.rb +55 -0
- data/lib/devise/orm/data_mapper/schema.rb +31 -0
- data/lib/devise/orm/data_mapper_active_model.rb +41 -0
- data/lib/dm-devise/version.rb +5 -0
- data/lib/generators/data_mapper/devise_generator.rb +17 -0
- data/test/orm/data_mapper.rb +31 -0
- data/test/orm/data_mapper_active_model.rb +10 -0
- data/test/overrides/data_mapper_test.rb +50 -0
- data/test/overrides/dm_validations_test.rb +43 -0
- data/test/rails_app/app/data_mapper/admin.rb +12 -0
- data/test/rails_app/app/data_mapper/shim.rb +2 -0
- data/test/rails_app/app/data_mapper/user.rb +20 -0
- data/test/rails_app/app/data_mapper_active_model/admin.rb +12 -0
- data/test/rails_app/app/data_mapper_active_model/shim.rb +2 -0
- data/test/rails_app/app/data_mapper_active_model/user.rb +20 -0
- data/test/rails_app/config/application.rb +37 -0
- data/test/rails_app/config/environment.rb +5 -0
- data/test/test_helper.rb +21 -0
- metadata +235 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# See data_mapper_test.rb in this folder for what this file is doing.
|
4
|
+
|
5
|
+
class ValidatableTest < ActiveSupport::TestCase
|
6
|
+
undef test_should_require_a_password_with_minimum_of_6_characters
|
7
|
+
|
8
|
+
# DataMapper uses a :value_between error message when given a minimum and
|
9
|
+
# maximum; ActiveModel shows either the :too_long or :too_short message.
|
10
|
+
test 'should require a password with minimum of 6 characters' do
|
11
|
+
user = new_user(:password => '12345', :password_confirmation => '12345')
|
12
|
+
assert user.invalid?
|
13
|
+
# assert_equal 'is too short (minimum is 6 characters)', user.errors[:password].join
|
14
|
+
assert_equal 'must be between 6 and 20 characters long', user.errors[:password].join
|
15
|
+
end
|
16
|
+
|
17
|
+
undef test_should_require_a_password_with_maximum_of_20_characters_long
|
18
|
+
|
19
|
+
# Same issue as previous test
|
20
|
+
test 'should require a password with maximum of 20 characters long' do
|
21
|
+
user = new_user(:password => 'x'*21, :password_confirmation => 'x'*21)
|
22
|
+
assert user.invalid?
|
23
|
+
# assert_equal 'is too long (maximum is 20 characters)', user.errors[:password].join
|
24
|
+
assert_equal 'must be between 6 and 20 characters long', user.errors[:password].join
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
class AuthenticationWithScopesTest < ActionController::IntegrationTest
|
30
|
+
|
31
|
+
undef test_registration_in_xml_format
|
32
|
+
|
33
|
+
# DM's validates_confirmation_of requires the confirmation field to be present,
|
34
|
+
# while ActiveModel by default skips the confirmation test if the confirmation
|
35
|
+
# value is nil. This test takes advantage of AM's behavior, so just add the
|
36
|
+
# :password_confirmation value.
|
37
|
+
test 'registration in xml format' do
|
38
|
+
assert_nothing_raised do
|
39
|
+
# post user_registration_path(:format => 'xml', :user => {:email => "test@example.com", :password => "invalid"} )
|
40
|
+
post user_registration_path(:format => 'xml', :user => {:email => "test@example.com", :password => "invalid", :password_confirmation => "invalid"} )
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class User
|
2
|
+
include DataMapper::Resource
|
3
|
+
|
4
|
+
property :id, Serial
|
5
|
+
property :username, String
|
6
|
+
|
7
|
+
devise :database_authenticatable, :confirmable, :lockable, :recoverable,
|
8
|
+
:registerable, :rememberable, :timeoutable, :token_authenticatable,
|
9
|
+
:trackable, :validatable
|
10
|
+
|
11
|
+
timestamps :at
|
12
|
+
|
13
|
+
def self.create!(*args)
|
14
|
+
create(*args)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.destroy_all
|
18
|
+
all.destroy
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class User
|
2
|
+
include DataMapper::Resource
|
3
|
+
|
4
|
+
property :id, Serial
|
5
|
+
property :username, String
|
6
|
+
|
7
|
+
devise :database_authenticatable, :confirmable, :lockable, :recoverable,
|
8
|
+
:registerable, :rememberable, :timeoutable, :token_authenticatable,
|
9
|
+
:trackable, :validatable
|
10
|
+
|
11
|
+
timestamps :at
|
12
|
+
|
13
|
+
def self.create!(*args)
|
14
|
+
create(*args)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.destroy_all
|
18
|
+
all.destroy
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
APP_ROOT = File.expand_path("#{DEVISE_PATH}/test/rails_app")
|
2
|
+
require "#{APP_ROOT}/config/boot"
|
3
|
+
|
4
|
+
require "action_controller/railtie"
|
5
|
+
require "action_mailer/railtie"
|
6
|
+
require "active_resource/railtie"
|
7
|
+
require "rails/test_unit/railtie"
|
8
|
+
|
9
|
+
Bundler.require :default, DEVISE_ORM
|
10
|
+
|
11
|
+
begin
|
12
|
+
require "#{DEVISE_ORM}/railtie"
|
13
|
+
rescue LoadError
|
14
|
+
end
|
15
|
+
|
16
|
+
require "devise"
|
17
|
+
|
18
|
+
module RailsApp
|
19
|
+
class Application < Rails::Application
|
20
|
+
# Add additional load paths for your own custom dirs
|
21
|
+
config.root = APP_ROOT
|
22
|
+
config.autoload_paths.reject!{ |p| p =~ /\/app\/(\w+)$/ && !%w(controllers helpers views).include?($1) }
|
23
|
+
config.autoload_paths += [ File.expand_path("#{File.dirname(__FILE__)}/../app/#{DEVISE_ORM}") ]
|
24
|
+
|
25
|
+
# Configure generators values. Many other options are available, be sure to check the documentation.
|
26
|
+
# config.generators do |g|
|
27
|
+
# g.orm :active_record
|
28
|
+
# g.template_engine :erb
|
29
|
+
# g.test_framework :test_unit, :fixture => true
|
30
|
+
# end
|
31
|
+
|
32
|
+
# Configure sensitive parameters which will be filtered from the log file.
|
33
|
+
config.filter_parameters << :password
|
34
|
+
|
35
|
+
config.action_mailer.default_url_options = { :host => "localhost:3000" }
|
36
|
+
end
|
37
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
DEVISE_ORM = (ENV["DEVISE_ORM"] || :data_mapper).to_sym
|
3
|
+
DEVISE_PATH = ENV['DEVISE_PATH']
|
4
|
+
|
5
|
+
puts "\n==> Devise.orm = #{DEVISE_ORM.inspect}"
|
6
|
+
|
7
|
+
require "rails_app/config/environment"
|
8
|
+
require "rails/test_help"
|
9
|
+
require "orm/#{DEVISE_ORM}"
|
10
|
+
|
11
|
+
I18n.load_path << "#{DEVISE_PATH}/test/support/locale/en.yml"
|
12
|
+
require 'mocha'
|
13
|
+
|
14
|
+
Webrat.configure do |config|
|
15
|
+
config.mode = :rails
|
16
|
+
config.open_error_files = false
|
17
|
+
end
|
18
|
+
|
19
|
+
# Add support to load paths so we can overwrite broken webrat setup
|
20
|
+
$:.unshift "#{DEVISE_PATH}/test/support"
|
21
|
+
Dir["#{DEVISE_PATH}/test/support/**/*.rb"].each { |f| require f }
|
metadata
ADDED
@@ -0,0 +1,235 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dm-devise
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Jared Morgan
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-07-06 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: dm-core
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 23
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 1.0.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: dm-migrations
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 23
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
- 0
|
50
|
+
version: 1.0.0
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: dm-validations
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 23
|
62
|
+
segments:
|
63
|
+
- 1
|
64
|
+
- 0
|
65
|
+
- 0
|
66
|
+
version: 1.0.0
|
67
|
+
type: :runtime
|
68
|
+
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: dm-serializer
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 23
|
78
|
+
segments:
|
79
|
+
- 1
|
80
|
+
- 0
|
81
|
+
- 0
|
82
|
+
version: 1.0.0
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id004
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: dm-timestamps
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
hash: 23
|
94
|
+
segments:
|
95
|
+
- 1
|
96
|
+
- 0
|
97
|
+
- 0
|
98
|
+
version: 1.0.0
|
99
|
+
type: :runtime
|
100
|
+
version_requirements: *id005
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: dm-rails
|
103
|
+
prerelease: false
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
hash: 23
|
110
|
+
segments:
|
111
|
+
- 1
|
112
|
+
- 0
|
113
|
+
- 0
|
114
|
+
version: 1.0.0
|
115
|
+
type: :runtime
|
116
|
+
version_requirements: *id006
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: warden
|
119
|
+
prerelease: false
|
120
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
hash: 57
|
126
|
+
segments:
|
127
|
+
- 0
|
128
|
+
- 10
|
129
|
+
- 7
|
130
|
+
version: 0.10.7
|
131
|
+
type: :runtime
|
132
|
+
version_requirements: *id007
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: bcrypt-ruby
|
135
|
+
prerelease: false
|
136
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
hash: 15
|
142
|
+
segments:
|
143
|
+
- 2
|
144
|
+
- 1
|
145
|
+
- 2
|
146
|
+
version: 2.1.2
|
147
|
+
type: :runtime
|
148
|
+
version_requirements: *id008
|
149
|
+
description: dm-devise adds DataMapper support to devise (http://github.com/plataformatec/devise) for authentication support for Rails
|
150
|
+
email: jmorgan@morgancreative.net
|
151
|
+
executables: []
|
152
|
+
|
153
|
+
extensions: []
|
154
|
+
|
155
|
+
extra_rdoc_files:
|
156
|
+
- LICENSE
|
157
|
+
- README.rdoc
|
158
|
+
files:
|
159
|
+
- .document
|
160
|
+
- .gitignore
|
161
|
+
- Gemfile
|
162
|
+
- Gemfile.lock
|
163
|
+
- LICENSE
|
164
|
+
- README.rdoc
|
165
|
+
- Rakefile
|
166
|
+
- dm-devise.gemspec
|
167
|
+
- lib/devise/orm/data_mapper.rb
|
168
|
+
- lib/devise/orm/data_mapper/compatibility.rb
|
169
|
+
- lib/devise/orm/data_mapper/date_time.rb
|
170
|
+
- lib/devise/orm/data_mapper/dm-validations.rb
|
171
|
+
- lib/devise/orm/data_mapper/schema.rb
|
172
|
+
- lib/devise/orm/data_mapper_active_model.rb
|
173
|
+
- lib/dm-devise/version.rb
|
174
|
+
- lib/generators/data_mapper/devise_generator.rb
|
175
|
+
- test/orm/data_mapper.rb
|
176
|
+
- test/orm/data_mapper_active_model.rb
|
177
|
+
- test/overrides/data_mapper_test.rb
|
178
|
+
- test/overrides/dm_validations_test.rb
|
179
|
+
- test/rails_app/app/data_mapper/admin.rb
|
180
|
+
- test/rails_app/app/data_mapper/shim.rb
|
181
|
+
- test/rails_app/app/data_mapper/user.rb
|
182
|
+
- test/rails_app/app/data_mapper_active_model/admin.rb
|
183
|
+
- test/rails_app/app/data_mapper_active_model/shim.rb
|
184
|
+
- test/rails_app/app/data_mapper_active_model/user.rb
|
185
|
+
- test/rails_app/config/application.rb
|
186
|
+
- test/rails_app/config/environment.rb
|
187
|
+
- test/test_helper.rb
|
188
|
+
has_rdoc: true
|
189
|
+
homepage: http://github.com/jm81/dm-devise
|
190
|
+
licenses: []
|
191
|
+
|
192
|
+
post_install_message:
|
193
|
+
rdoc_options:
|
194
|
+
- --charset=UTF-8
|
195
|
+
require_paths:
|
196
|
+
- lib
|
197
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
199
|
+
requirements:
|
200
|
+
- - ">="
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
hash: 3
|
203
|
+
segments:
|
204
|
+
- 0
|
205
|
+
version: "0"
|
206
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
207
|
+
none: false
|
208
|
+
requirements:
|
209
|
+
- - ">="
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
hash: 3
|
212
|
+
segments:
|
213
|
+
- 0
|
214
|
+
version: "0"
|
215
|
+
requirements: []
|
216
|
+
|
217
|
+
rubyforge_project:
|
218
|
+
rubygems_version: 1.3.7
|
219
|
+
signing_key:
|
220
|
+
specification_version: 3
|
221
|
+
summary: Support for using DataMapper ORM with devise
|
222
|
+
test_files:
|
223
|
+
- test/test_helper.rb
|
224
|
+
- test/rails_app/config/environment.rb
|
225
|
+
- test/rails_app/config/application.rb
|
226
|
+
- test/rails_app/app/data_mapper/admin.rb
|
227
|
+
- test/rails_app/app/data_mapper/shim.rb
|
228
|
+
- test/rails_app/app/data_mapper/user.rb
|
229
|
+
- test/rails_app/app/data_mapper_active_model/admin.rb
|
230
|
+
- test/rails_app/app/data_mapper_active_model/shim.rb
|
231
|
+
- test/rails_app/app/data_mapper_active_model/user.rb
|
232
|
+
- test/overrides/data_mapper_test.rb
|
233
|
+
- test/overrides/dm_validations_test.rb
|
234
|
+
- test/orm/data_mapper.rb
|
235
|
+
- test/orm/data_mapper_active_model.rb
|