disiid_user 4.0.1 → 4.0.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.
- checksums.yaml +4 -4
- data/lib/disiid_user.rb +1 -1
- data/lib/disiid_user/version.rb +1 -1
- data/spec/disiid_user_spec.rb +3 -3
- data/spec/stub_user.rb +9 -39
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbb68883236561190cd994567c2dc9bdd3770b9b
|
4
|
+
data.tar.gz: faf56b478b6a939acf2eac2999abdd275f93174c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75613e9b4b2c5db2e716c04391a4f79c6b7a063a2b5fc0f273f1d473707f1a4b1e9e64a88f0dbf4b2cadacd0cc71c2c8f8f05078784a89cd1202ff51225c2a97
|
7
|
+
data.tar.gz: 1f4867c5c95d93379d03398578e1433b77f1727ece21db364124829a16eaf8d0c26866ce246f6c8800cb9f52a288cd31c10c7e3d02130227eaee7a6b33e68ed1
|
data/lib/disiid_user.rb
CHANGED
@@ -67,7 +67,7 @@ module DisiidUser
|
|
67
67
|
# Creates a new user if it doesn't exist locally but is present remotely using #build_from_identity method.
|
68
68
|
# This method will throw ActiveRecord::RecordNotFound exception if persistance process didn't go well.
|
69
69
|
def find_local_or_remote_by_uuid!(id)
|
70
|
-
user =
|
70
|
+
user = where('identity_url LIKE ?', "%#{id}").first
|
71
71
|
if !user && DisiidUser::RemoteUser.exists?(id, params: {auth_token: DisiidUser::RemoteUser.auth_token})
|
72
72
|
# DisiidUser::RemoteUser.site is a URI::HTTP object, not a string
|
73
73
|
user_url = DisiidUser::RemoteUser.site.merge("#{DisiidUser::RemoteUser.collection_name}/#{id}").to_s
|
data/lib/disiid_user/version.rb
CHANGED
data/spec/disiid_user_spec.rb
CHANGED
@@ -71,14 +71,14 @@ describe DisiidUser do
|
|
71
71
|
|
72
72
|
it { should respond_to :find_local_or_remote_by_uuid! }
|
73
73
|
it "should look for a local user" do
|
74
|
-
|
74
|
+
expect(User).to receive(:where).and_return([@user])
|
75
75
|
user.find_local_or_remote_by_uuid!('some-uuid')
|
76
76
|
end
|
77
77
|
|
78
78
|
context "when local user doesn't exist" do
|
79
79
|
let(:new_user) { mock('new user', :save! => true) }
|
80
80
|
before {
|
81
|
-
user.stub(:
|
81
|
+
user.stub(:where).and_return([])
|
82
82
|
user.stub(:build_from_identity).and_return(new_user)
|
83
83
|
}
|
84
84
|
|
@@ -127,7 +127,7 @@ describe DisiidUser do
|
|
127
127
|
|
128
128
|
context "when local user exists" do
|
129
129
|
let(:existing_user) { mock('existing user') }
|
130
|
-
before { user.stub(:
|
130
|
+
before { user.stub(:where).and_return([existing_user]) }
|
131
131
|
|
132
132
|
it "should not fetch from remote" do
|
133
133
|
DisiidUser::RemoteUser.should_not_receive(:exists?)
|
data/spec/stub_user.rb
CHANGED
@@ -23,13 +23,11 @@ class User
|
|
23
23
|
def self.scope(*args); end
|
24
24
|
|
25
25
|
include DisiidUser
|
26
|
-
|
27
26
|
end
|
28
27
|
|
29
28
|
class FakeResponse
|
30
29
|
attr_accessor :body
|
31
30
|
def initialize(body); @body = body; end
|
32
|
-
|
33
31
|
end
|
34
32
|
|
35
33
|
# Stub ActiveRecord so that it won't do real HTTP requests
|
@@ -37,28 +35,11 @@ module ActiveResource
|
|
37
35
|
class Connection
|
38
36
|
# taps into ActiveRecord to read data from stub files
|
39
37
|
# instead of doing a real HTTP request
|
40
|
-
## def get(path, *args)
|
41
|
-
# def get(path, headers = {})
|
42
|
-
# read_from_file(path)
|
43
|
-
# rescue; raise ActiveResource::ResourceNotFound; end
|
44
|
-
#
|
45
|
-
# # stubs PUT request so to not do it for real
|
46
|
-
## def put(path, payload, headers)
|
47
|
-
# def put(path, body = '', headers = {})
|
48
|
-
# read_from_file(path)
|
49
|
-
# rescue; raise ActiveResource::ResourceNotFound; end
|
50
|
-
#
|
51
|
-
# def patch(path, body = '', headers = {})
|
52
|
-
# read_from_file(path)
|
53
|
-
# rescue; raise ActiveResource::ResourceNotFound; end
|
54
|
-
|
55
|
-
# # taps into ActiveRecord to read data from stub files
|
56
|
-
# # instead of doing a real HTTP request
|
57
38
|
# def get(path, *args)
|
58
39
|
# read_from_file(path)
|
59
40
|
# rescue; raise ActiveResource::ResourceNotFound; end
|
60
|
-
|
61
|
-
|
41
|
+
|
42
|
+
# stubs PUT request so to not do it for real
|
62
43
|
# def put(path, payload, headers)
|
63
44
|
# read_from_file(path)
|
64
45
|
# rescue; raise ActiveResource::ResourceNotFound; end
|
@@ -66,28 +47,18 @@ module ActiveResource
|
|
66
47
|
private
|
67
48
|
|
68
49
|
def read_from_file(fake_url_path)
|
69
|
-
|
70
|
-
|
71
|
-
# else
|
72
|
-
# # /collection_name/uuid?query
|
73
|
-
# record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
|
74
|
-
# # record string includes .xml or .json too
|
75
|
-
# filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
|
76
|
-
# end
|
77
|
-
# fake_url_path
|
78
|
-
# /users.xml?uuid=XXX
|
79
|
-
# /users.xml
|
80
|
-
if fake_url_path.match("uuid=")
|
81
|
-
name = fake_url_path.split("?uuid=")[1]
|
82
|
-
ext = fake_url_path.split("?uuid=")[0].split(".")[1]
|
83
|
-
filename = "#{File.dirname(__FILE__)}/#{name}.#{ext}"
|
50
|
+
if matched = /users\.(xml|json)/.match(fake_url_path)
|
51
|
+
filename = "#{File.dirname(__FILE__)}/users.#{matched[1]}"
|
84
52
|
else
|
85
|
-
|
53
|
+
# /collection_name/uuid?query
|
54
|
+
record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
|
55
|
+
# record string includes .xml or .json too
|
56
|
+
filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
|
86
57
|
end
|
87
58
|
# format is either ActiveResource::Formats::XmlFormat or JsonFormat
|
88
59
|
# 3.0.x defaults to XML, 3.1.x defaults to JSON
|
89
60
|
data = open(filename).read
|
90
|
-
|
61
|
+
/3\.1/.match(ActiveResource::VERSION::STRING) ? FakeResponse.new(data) : format.decode(data)
|
91
62
|
end
|
92
63
|
end
|
93
64
|
end
|
@@ -103,4 +74,3 @@ module Rails
|
|
103
74
|
def self.cache; StubCache; end
|
104
75
|
end
|
105
76
|
|
106
|
-
|
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: 4.0.
|
4
|
+
version: 4.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danilo Severina
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|