devision 0.0.2.9 → 0.0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c1c77b71327aec36fa2df6c7dd64f7c019c1c38
4
- data.tar.gz: 5554a5ae0c2aa22c2f3de805e905f14c2a3dba8b
3
+ metadata.gz: f06d18b5d5046d3909518b72ac9ba7b0dd330ee3
4
+ data.tar.gz: 904a96ccfba3ceacab4d1d54418ab98b8b7203b4
5
5
  SHA512:
6
- metadata.gz: 0f434934bd9af6e2c2870f72e44776d6c7e56a4e3ef965f4a27e5a90703e3cd5f4d736739849e51462254ebd8cedcb42fa23451371fd4abb70adda0269f92e03
7
- data.tar.gz: 439b127e29cce9af2e590318e48ab9771340f930b2395c1d1dda9a0004891c5fbae1a22a32da7c7353292be06a7fdc351f0ded45078d5621f9332d3e6e631051
6
+ metadata.gz: b9cd8ec92036b4d24a4d4d90c72d87e785c59dbd920420ea797fd91831008b069d92e7d90444abb8141663972e0657317f9086bcb44784a25cc8066e60a4499d
7
+ data.tar.gz: e9b63cc0a1b998b590240fe10c3bf5e17a2357b9571d05c606bd2c9f53160836b2a53978b8feae4f2215507fa5e732a405876b62faf794d2be08c158485b1ae6
data/.envrc ADDED
@@ -0,0 +1 @@
1
+ export PATH=$PWD/bin:$PATH
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --warnings
3
+ --require spec_helper
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.1.0
5
+ - ruby-head
6
+ - jruby-19mode
7
+ - rbx-2.2.9
8
+ - jruby-head
@@ -0,0 +1 @@
1
+ Thanks for installing Devision!
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rspec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rspec-core', 'rspec')
@@ -1,29 +1,33 @@
1
1
  # encoding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $:.unshift(lib) unless $:.include?(lib)
2
+ $:.unshift File.expand_path('../lib', __FILE__)
4
3
  require 'devision/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
6
+
7
+ # metadata
7
8
  spec.name = 'devision'
8
9
  spec.version = Devision::VERSION::STRING
9
10
  spec.authors = ['John Faucett']
10
11
  spec.email = ['jwaterfaucett@gmail.com']
11
12
  spec.summary = 'Devise on a Diet'
12
13
  spec.license = 'MIT'
14
+ spec.require_paths = ['lib']
15
+ spec.platform = Gem::Platform::RUBY
16
+ spec.post_install_message = File.read('./POST_INSTALL_MESSAGE')
13
17
 
18
+ # files
14
19
  spec.files = `git ls-files -z`.split("\x0")
15
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
21
  spec.test_files = spec.files.grep(%r{^(spec|features)/})
17
22
  spec.require_paths = ["lib"]
18
23
 
19
- spec.add_development_dependency 'bundler', '~> 1.6'
24
+ # dependencies
25
+ spec.add_development_dependency 'bundler', '~> 1.7'
20
26
  spec.add_development_dependency 'rake'
21
-
22
27
  spec.add_development_dependency 'rspec', '~> 3.0.0'
23
-
24
- spec.add_dependency 'railties', '>= 3.2.6', '< 5'
25
- spec.add_dependency 'orm_adapter', '~> 0.5'
26
- spec.add_dependency 'bcrypt', '~> 3.1'
27
- spec.add_dependency 'thread_safe', '~> 0.3'
28
+ spec.add_runtime_dependency 'railties', '>= 3.2.6', '< 5'
29
+ spec.add_runtime_dependency 'orm_adapter', '~> 0.5'
30
+ spec.add_runtime_dependency 'bcrypt', '~> 3.1'
31
+ spec.add_runtime_dependency 'thread_safe', '~> 0.3'
28
32
 
29
33
  end
@@ -20,7 +20,7 @@ module Devision
20
20
  mattr_accessor :reset_password_within
21
21
  @@reset_password_within = 6.hours
22
22
 
23
-
23
+
24
24
  # Email regex used to validate email formats. It simply asserts that
25
25
  # an one (and only one) @ exists in the given string. This is mainly
26
26
  # to give user feedback and not to assert the e-mail validity.
@@ -28,16 +28,13 @@ module Devision
28
28
  @@email_regexp = /\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z/
29
29
 
30
30
  # Range validation for password length
31
- mattr_accessor :password_length
32
- @@password_length = 6..128
31
+ mattr_accessor :password_range
32
+ @@password_range = 6..128
33
33
 
34
34
  # ======================
35
35
  # REMEMBERABLE OPTIONS
36
36
  # ======================
37
37
 
38
- # Custom domain or key for cookies. Not set by default
39
- # mattr_accessor :rememberable_options
40
- # @@rememberable_options = {}
41
38
 
42
39
  # The time the user will be remembered without asking for credentials again.
43
40
  mattr_accessor :remember_for
@@ -3,44 +3,58 @@ module Devision
3
3
 
4
4
  module Validatable
5
5
 
6
- def self.required_fields(klass)
7
- []
8
- end
9
-
10
- def self.included(base)
11
- base.extend(ClassMethods)
12
- base.class_eval do
6
+ module Email
7
+ def self.required_fields(klass)
8
+ [:email]
9
+ end
13
10
 
14
- if base.instance_methods.include?(:email)
11
+ def self.included(base)
12
+ base.extend(ClassMethods)
13
+ base.class_eval do
15
14
  validates_presence_of :email, if: :email_required?
16
15
  validates_uniqueness_of :email, allow_blank: true, if: :email_changed?
17
16
  validates_format_of :email, with: email_regexp, allow_blank: true, if: :email_changed?
18
17
  end
19
18
 
20
- if base.instance_methods.include?(:password)
21
- validates_presence_of :password, if: :password_required?
22
- validates_confirmation_of :password, if: :password_required?
23
- validates_length_of :password, within: password_length, allow_blank: true
19
+ def email_required?
20
+ true
24
21
  end
25
22
  end
23
+
24
+ module ClassMethods
25
+ Devision::Models::Config.add_options(self, :email_regexp)
26
+ end
26
27
  end
27
28
 
28
- protected
29
+ module Password
30
+ def self.required_fields(klass)
31
+ [:password]
32
+ end
33
+
34
+ def self.included(base)
35
+
36
+ base.extend(ClassMethods)
37
+ base.class_eval do
38
+ validates_presence_of :password, if: :password_required?
39
+ validates_confirmation_of :password, if: :password_required?
40
+ validates_length_of :password, within: password_range, allow_blank: true
41
+ end
42
+ end
29
43
 
30
44
  # Password/Confirmation combo is required for:
31
45
  # new records
32
46
  # whenever either password or password_confirmation is set
33
- def password_required?
34
- !persisted? || !password.nil? || !password_confirmation.nil?
35
- end
36
-
37
- def email_required?
38
- true
39
- end
47
+ private
48
+ def password_required?
49
+ !persisted? || !password.nil? || !password_confirmation.nil?
50
+ end
40
51
 
41
52
  module ClassMethods
42
- Devision::Models::Config.add_options(self, :email_regexp, :password_length)
53
+ Devision::Models::Config.add_options(self, :password_range)
43
54
  end
55
+ end
56
+
57
+
44
58
  end
45
59
  end
46
60
  end
@@ -7,9 +7,17 @@ module Devision
7
7
 
8
8
  MAJOR = 0
9
9
  MINOR = 0
10
- PATCH = 2
11
- PRE = 9
10
+ PATCH = 3
11
+ PRE = 0
12
12
 
13
- STRING = [MAJOR,MINOR,PATCH,PRE].compact.join('.').freeze
13
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.').freeze
14
+ end
15
+
16
+ def self.gem_version
17
+ VERSION.gem_version
18
+ end
19
+
20
+ def self.version
21
+ VERSION::STRING
14
22
  end
15
23
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Devision do
4
+
5
+ describe '#nice_token' do
6
+
7
+ it 'should generate a token 20 chars long without O0lI' do
8
+ 100.times do
9
+ tkn = Devision.nice_token
10
+ expect(tkn.length).to eq(20)
11
+ 'O0lI'.each_char do |ch|
12
+ expect(tkn.index(ch)).to be(nil)
13
+ end
14
+ end
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ $:.unshift File.expand_path('../lib', __FILE__)
2
+ require 'devision'
3
+
4
+ RSpec.configure do |config|
5
+
6
+ # files
7
+ config.pattern = 'spec/**/*_spec.rb'
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devision
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.9
4
+ version: 0.0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Faucett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-26 00:00:00.000000000 Z
11
+ date: 2014-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.7'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -117,15 +117,21 @@ dependencies:
117
117
  description:
118
118
  email:
119
119
  - jwaterfaucett@gmail.com
120
- executables: []
120
+ executables:
121
+ - rspec
121
122
  extensions: []
122
123
  extra_rdoc_files: []
123
124
  files:
125
+ - .envrc
124
126
  - .gitignore
127
+ - .rspec
128
+ - .travis.yml
125
129
  - Gemfile
126
130
  - LICENSE.txt
131
+ - POST_INSTALL_MESSAGE
127
132
  - README.md
128
133
  - Rakefile
134
+ - bin/rspec
129
135
  - devision.gemspec
130
136
  - lib/devision.rb
131
137
  - lib/devision/configuration_options.rb
@@ -140,11 +146,14 @@ files:
140
146
  - lib/devision/models/validatable.rb
141
147
  - lib/devision/token_generator.rb
142
148
  - lib/devision/version.rb
149
+ - spec/devision_spec.rb
150
+ - spec/spec_helper.rb
143
151
  homepage:
144
152
  licenses:
145
153
  - MIT
146
154
  metadata: {}
147
- post_install_message:
155
+ post_install_message: |
156
+ Thanks for installing Devision!
148
157
  rdoc_options: []
149
158
  require_paths:
150
159
  - lib
@@ -164,4 +173,6 @@ rubygems_version: 2.4.1
164
173
  signing_key:
165
174
  specification_version: 4
166
175
  summary: Devise on a Diet
167
- test_files: []
176
+ test_files:
177
+ - spec/devision_spec.rb
178
+ - spec/spec_helper.rb