disiid_user 3.1.3 → 3.1.4

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/lib/disiid_user.rb CHANGED
@@ -21,11 +21,11 @@ require 'active_resource'
21
21
  #
22
22
  module DisiidUser
23
23
 
24
- def self.included(klass)
24
+ def self.included(klass)
25
25
  klass.class_eval do
26
+ extend ClassMethods
26
27
  scope :with_local_role, lambda { |role| where('role & ? > 0', 2**LOCAL_ROLES.index(role.to_s)) }
27
28
  end
28
- klass.extend(ClassMethods)
29
29
  end
30
30
 
31
31
  ########################################################################
@@ -55,12 +55,14 @@ module DisiidUser
55
55
  # if you want to persist it in a local database.
56
56
  #
57
57
  # Note: your local :users table should :identity_url string attribute for this to work.
58
- def build_from_identity(url)
58
+ def build_from_identity_url(url)
59
59
  user = new
60
60
  user.identity_url = url
61
61
  user
62
62
  end
63
63
 
64
+ alias :build_from_identity :build_from_identity_url
65
+
64
66
  # Looks for a local user record with a given UUID by matching its local attribute :identity_url.
65
67
  # Creates a new user if it doesn't exist locally but is present remotely using #build_from_identity method.
66
68
  # This method will throw ActiveRecord::RecordNotFound exception if persistance process didn't go well.
@@ -1,3 +1,3 @@
1
1
  module DisiidUser
2
- VERSION = "3.1.3"
2
+ VERSION = "3.1.4"
3
3
  end
@@ -36,13 +36,23 @@ describe DisiidUser do
36
36
  @user.uuid.should be_nil
37
37
  end
38
38
 
39
- it "should build a new user with correct identity url" do
40
- u = User.build_from_identity 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55'
41
-
42
- u.should be_instance_of(User)
43
- u.should be_new_record
44
- u.identity_url.should == 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55'
45
- u.uuid.should == '6a002a40-bc63-4095-9bb0-f31bf386bf55'
39
+ shared_examples_for "new user from identity" do
40
+ it { should be_instance_of(User) }
41
+ it { should be_new_record }
42
+ its(:identity_url) { should == 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55' }
43
+ its(:uuid) { should == '6a002a40-bc63-4095-9bb0-f31bf386bf55' }
44
+ end
45
+
46
+ describe ".build_from_identity" do
47
+ it_should_behave_like "new user from identity" do
48
+ subject { User.build_from_identity('http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55') }
49
+ end
50
+ end
51
+
52
+ describe ".build_from_identity_url" do
53
+ it_should_behave_like "new user from identity" do
54
+ subject { User.build_from_identity_url('http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55') }
55
+ end
46
56
  end
47
57
 
48
58
  describe "#find_local_or_remote_by_uuid!" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disiid_user
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2011-12-28 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &70235164696820 !ruby/object:Gem::Requirement
17
+ requirement: &70313544551380 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *70235164696820
25
+ version_requirements: *70313544551380
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &70235164696060 !ruby/object:Gem::Requirement
28
+ requirement: &70313544550720 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *70235164696060
36
+ version_requirements: *70313544550720
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: activeresource
39
- requirement: &70235164695120 !ruby/object:Gem::Requirement
39
+ requirement: &70313544550160 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '3'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70235164695120
47
+ version_requirements: *70313544550160
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: activerecord
50
- requirement: &70235164694120 !ruby/object:Gem::Requirement
50
+ requirement: &70313544549320 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,7 +55,7 @@ dependencies:
55
55
  version: '3'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70235164694120
58
+ version_requirements: *70313544549320
59
59
  description: DISI - UniTN internal development
60
60
  email:
61
61
  - tech@disi.unitn.it