webget-current_user 1.2.2

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.
@@ -0,0 +1,49 @@
1
+ # = CurrentUser
2
+ #
3
+ # Author:: Joel Parker Henderson, joelparkerhenderson@gmail.com
4
+ # Copyright:: Copyright (c) 2005-2009 Joel Parker Henderson
5
+ # License:: CreativeCommons License, Non-commercial Share Alike
6
+ # License:: LGPL, GNU Lesser General Public License
7
+ #
8
+ # Simple gem to get and set the current user,
9
+ # using the related gem for current_user_id.
10
+ #
11
+ # For speed, we memoize the current_user.
12
+ #
13
+ # The current_user_find method also includes the user's roles.
14
+ ##
15
+
16
+ require 'current_user_id'
17
+
18
+ module CurrentUser
19
+
20
+ include CurrentUserId
21
+
22
+ # Get the current user:
23
+ # - if it is already set, then return it without doing a lookup
24
+ # - otherwise, find the user via current_user_find(current_user_id)
25
+ #
26
+ # If the current user is not set, and the current user id is nil,
27
+ # then this returns nil because current_user_find returns nil.
28
+
29
+ def current_user
30
+ @current_user ||= current_user_find(current_user_id)
31
+ end
32
+
33
+
34
+ # Set the current user and also set the current user id.
35
+
36
+ def current_user=(user)
37
+ @current_user = user
38
+ current_user_id = user ? user.id : nil
39
+ end
40
+
41
+
42
+ # Return the current user by calling User.find with a user id;
43
+ # if the user id is nil, then return nil for the current user.
44
+
45
+ def current_user_find(id)
46
+ id ? User.find(id,:include=>[:roles]) : nil
47
+ end
48
+
49
+ end
@@ -0,0 +1,56 @@
1
+ require 'test/unit'
2
+ require 'current_user'
3
+ require 'active_record_mock'
4
+ require 'session_mock'
5
+
6
+ class CurrentUserTest < Test::Unit::TestCase
7
+
8
+ include CurrentUser
9
+
10
+ def session
11
+ @session||=SessionMock.new
12
+ end
13
+
14
+ def test_get
15
+ assert_not_nil(session,"session")
16
+ assert_nil(current_user,"current_user")
17
+ assert_nil(current_user_id,"current_user_id")
18
+ end
19
+
20
+ def test_set
21
+
22
+ # Verify we have a blank slate
23
+ assert_not_nil(session,"session")
24
+ assert_nil(current_user,"current_user")
25
+ assert_nil(current_user_id,"current_user_id")
26
+
27
+ # Create mock users
28
+ anne = User.new(:id => 1, :name => 'Anne')
29
+ beth = User.new(:id => 2, :name => 'Beth')
30
+ cate = User.new(:id => 3, :name => 'Cate')
31
+
32
+ # Set via object
33
+ current_user=beth
34
+ x=current_user
35
+ assert_equal(beth,x,"beth,x:#{x}")
36
+ assert_not_equal(anne,x,"anne,x:#{x}")
37
+ assert_not_equal(cate,x,"beth,x:#{x}")
38
+
39
+ # Clear
40
+ current_user=nil
41
+ assert_nil(current_user,"current_user")
42
+ assert_nil(current_user_id,"current_user_id")
43
+
44
+ # Set via id
45
+ current_user_id=2
46
+ assert_equal(beth,x,"beth,x:#{x}")
47
+ assert_not_equal(anne,x,"anne,x:#{x}")
48
+ assert_not_equal(cate,x,"beth,x:#{x}")
49
+
50
+ end
51
+
52
+ end
53
+
54
+ class User < ActiveRecordMock
55
+ end
56
+
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webget-current_user
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.2
5
+ platform: ruby
6
+ authors:
7
+ - WebGet
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-02-05 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: current_user_id
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.1
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: active_record_mock
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 1.2.1
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: session_mock
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.1
41
+ version:
42
+ description:
43
+ email: webget@webget.com
44
+ executables: []
45
+
46
+ extensions: []
47
+
48
+ extra_rdoc_files: []
49
+
50
+ files:
51
+ - lib/current_user.rb
52
+ has_rdoc: true
53
+ homepage: http://webget.com/
54
+ post_install_message:
55
+ rdoc_options: []
56
+
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ version:
71
+ requirements: []
72
+
73
+ rubyforge_project:
74
+ rubygems_version: 1.2.0
75
+ signing_key:
76
+ specification_version: 2
77
+ summary: "current_user: get and set a user in a rails app session"
78
+ test_files:
79
+ - test/unit/current_user_test.rb