active_model-session 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1e361dbb8d00204306b1d22e7088e9d2b84a299
4
- data.tar.gz: ef97b68bef1105728de9deff30ccf85d06165ad0
3
+ metadata.gz: fb37c5a803683c66784ff7c578a9fe27f9a5acb0
4
+ data.tar.gz: bba585ddd3c4291d080970340d98d0a065b19614
5
5
  SHA512:
6
- metadata.gz: d05d6039043638a7055e502e3390dfd594a056d2beb04bbf376d41ffd2dace3df7efea8807ccb585fc97dc7ece3ab56e47e1a3cb5cafdc06bc5e88fa163757ac
7
- data.tar.gz: abd058d56c08cd8dbe4e7a577020f43073eaf9e5f6fe154acb36fa31cfa7dd0fac5f2dfa7ce5e72ac2c5bbf5bf5933d1fdd327ecbba32bb654fed883c2fac2a4
6
+ metadata.gz: a9d55f68eeca4e52360500aa64d522d55bab96ce624701f73938769d77b179550eaa19dbbe09591f22b9eb286fbd5cd85ccad671b7a7477ba14ac48537ac9cf2
7
+ data.tar.gz: 96e740e67dc4da347a10ce1516b48708686ea1468309aa73f01bce4aa969b8ad2db87201c943853436603288d6c11232f89fd702b5e9f0b3eec119a814a3dcaa
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # ActiveModel::Session
2
2
 
3
- A simple session model implemented on top of `ActiveModel::Model`.
3
+ `ActiveModel::Session` is a lightweight session model implemented
4
+ on top of `ActiveModel::Model`.
4
5
 
5
6
  ## Installation
6
7
 
@@ -5,20 +5,25 @@ module ActiveModel
5
5
  class Session
6
6
  include Model
7
7
 
8
- attr_accessor :email, :password
9
- attr_writer :user
8
+ attr_accessor :password, :user
9
+ attr_reader :email
10
10
 
11
- validates :email, presence: true
12
- validate :authenticity, if: -> { email.present? }
11
+ validates :email, presence: true, if: -> { user.blank? }
12
+ validate :existence, if: -> { email.present? }
13
+ validate :authenticity, if: -> { user.present? }
13
14
  delegate :id, :authenticate, to: :user, prefix: true, allow_nil: true
14
15
 
15
- def user
16
- return @user if defined?(@user)
16
+ def email=(email)
17
+ @email = email
17
18
  @user = User.find_by(email: email)
18
19
  end
19
20
 
20
21
  private
21
22
 
23
+ def existence
24
+ errors.add(:email, :invalid) if user.blank?
25
+ end
26
+
22
27
  def authenticity
23
28
  errors.add(:password, :invalid) unless user_authenticate(password)
24
29
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveModel
2
2
  class Session
3
- VERSION = "1.0.1"
3
+ VERSION = "1.0.2"
4
4
  end
5
5
  end
@@ -47,7 +47,7 @@ class SessionWithUserModelTest < Test::Unit::TestCase
47
47
  def test_is_invalid_when_user_does_not_exist
48
48
  @session.email = "non-existing@example.com"
49
49
  assert @session.invalid?
50
- assert @session.errors[:password].present?
50
+ assert @session.errors[:email].present?
51
51
  end
52
52
 
53
53
  def test_is_invalid_with_incorrect_password
@@ -6,7 +6,7 @@ class SessionWithoutUserModelTest < Test::Unit::TestCase
6
6
  end
7
7
 
8
8
  def test_is_invalid_when_user_model_is_nil
9
- session = ActiveModel::Session.new(user: nil, email: "alice@example.com", password: "secret")
9
+ session = ActiveModel::Session.new(user: nil, password: "secret")
10
10
  assert session.invalid?
11
11
  end
12
12
 
@@ -15,7 +15,7 @@ class SessionWithoutUserModelTest < Test::Unit::TestCase
15
15
  def user.authenticate(password)
16
16
  password == "secret"
17
17
  end
18
- session = ActiveModel::Session.new(user: user, email: "alice@example.com", password: "wrongsecret")
18
+ session = ActiveModel::Session.new(user: user, password: "wrongsecret")
19
19
  assert session.invalid?
20
20
  end
21
21
 
@@ -24,7 +24,7 @@ class SessionWithoutUserModelTest < Test::Unit::TestCase
24
24
  def user.authenticate(password)
25
25
  password == "secret"
26
26
  end
27
- session = ActiveModel::Session.new(user: user, email: "alice@example.com", password: "secret")
27
+ session = ActiveModel::Session.new(user: user, password: "secret")
28
28
  assert session.valid?
29
29
  end
30
30
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_model-session
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kuba Kuźma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-15 00:00:00.000000000 Z
11
+ date: 2014-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: Simple session model implemented on top of ActiveModel::Model
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
62
+ - ".gitignore"
63
63
  - Gemfile
64
64
  - LICENSE
65
65
  - README.md
@@ -80,17 +80,17 @@ require_paths:
80
80
  - lib
81
81
  required_ruby_version: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - '>='
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  requirements: []
92
92
  rubyforge_project:
93
- rubygems_version: 2.0.3
93
+ rubygems_version: 2.2.0
94
94
  signing_key:
95
95
  specification_version: 4
96
96
  summary: Simple session model implemented on top of ActiveModel::Model