userapp 0.1.5 → 0.2.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.
- data/lib/userapp/client.rb +3 -3
- data/lib/userapp/client_options.rb +2 -4
- data/lib/userapp/errors.rb +2 -2
- data/lib/userapp/proxy_client.rb +7 -13
- data/lib/userapp/userapp.rb +7 -0
- data/lib/userapp/version.rb +1 -1
- metadata +3 -3
data/lib/userapp/client.rb
CHANGED
@@ -25,7 +25,7 @@ module UserApp
|
|
25
25
|
|
26
26
|
def get_options(*args)
|
27
27
|
if self.options.nil?
|
28
|
-
self.options =
|
28
|
+
self.options = ClientOptions.get_global().clone()
|
29
29
|
end
|
30
30
|
return self.options
|
31
31
|
end
|
@@ -62,9 +62,9 @@ module UserApp
|
|
62
62
|
|
63
63
|
if self.options.throw_errors and is_error_result
|
64
64
|
if result.error_code == 'INVALID_SERVICE'
|
65
|
-
raise
|
65
|
+
raise InvalidServiceError.new("Service '#{service}' does not exist.")
|
66
66
|
elsif result.error_code == 'INVALID_METHOD'
|
67
|
-
raise
|
67
|
+
raise InvalidServiceError.new("Method '#{method}' on service '#{service}' does not exist.")
|
68
68
|
else
|
69
69
|
raise ServiceError.new(result.error_code, result.message)
|
70
70
|
end
|
@@ -4,6 +4,7 @@ module UserApp
|
|
4
4
|
class ClientOptions
|
5
5
|
@@instance = nil
|
6
6
|
|
7
|
+
attr_accessor :version
|
7
8
|
attr_accessor :app_id
|
8
9
|
attr_accessor :token
|
9
10
|
attr_accessor :base_address
|
@@ -13,6 +14,7 @@ module UserApp
|
|
13
14
|
attr_accessor :logger
|
14
15
|
|
15
16
|
def initialize(*args)
|
17
|
+
@version = 1
|
16
18
|
@base_address = 'api.userapp.io'
|
17
19
|
@throw_errors = true
|
18
20
|
@secure = true
|
@@ -42,10 +44,6 @@ module UserApp
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
def copy()
|
46
|
-
return ClientOptions.new(self.instance_variables)
|
47
|
-
end
|
48
|
-
|
49
47
|
def self.get_global(*args)
|
50
48
|
if @@instance.nil?
|
51
49
|
@@instance = ClientOptions.new(args)
|
data/lib/userapp/errors.rb
CHANGED
data/lib/userapp/proxy_client.rb
CHANGED
@@ -8,16 +8,13 @@ module UserApp
|
|
8
8
|
attr_accessor :client
|
9
9
|
attr_accessor :services
|
10
10
|
attr_accessor :service_name
|
11
|
-
attr_accessor :service_version
|
12
11
|
|
13
12
|
def initialize(*args)
|
14
13
|
@services = Hash.new()
|
15
|
-
if
|
14
|
+
if args.length == 2 and args[0].is_a?(Client)
|
16
15
|
@client = args[0]
|
17
16
|
@service_name = args[1]
|
18
|
-
@service_version = args.length == 2 ? 1 : args[2]
|
19
17
|
else
|
20
|
-
self.service_version = 1
|
21
18
|
@client = Client.new(*args)
|
22
19
|
end
|
23
20
|
end
|
@@ -29,24 +26,20 @@ module UserApp
|
|
29
26
|
def method_missing(method_id, *args)
|
30
27
|
if args.length > 0
|
31
28
|
if self.service_name.nil?
|
32
|
-
raise
|
29
|
+
raise UserApp::Error.new("Unable to call method on base service.")
|
33
30
|
end
|
34
31
|
|
35
|
-
self.client.call(self.
|
32
|
+
self.client.call(self.get_options().version, self.service_name, method_id.to_s(), args[0])
|
36
33
|
else
|
37
34
|
target_service = nil
|
38
|
-
target_version = nil
|
39
35
|
|
40
36
|
if self.services[method_id]
|
41
37
|
return self.services[method_id]
|
42
38
|
end
|
43
39
|
|
44
40
|
if self.service_name.nil? and method_id.length >= 2 and method_id[0] == 'v' and method_id[1, method_id.length-1].match(/\A[0-9]+\Z/)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
if target_version.nil?
|
49
|
-
target_version = self.service_version
|
41
|
+
self.get_options().version = method_id[1].to_i
|
42
|
+
else
|
50
43
|
if !self.service_name.nil?
|
51
44
|
target_service = self.service_name.to_s + '.' + method_id.to_s
|
52
45
|
else
|
@@ -54,7 +47,8 @@ module UserApp
|
|
54
47
|
end
|
55
48
|
end
|
56
49
|
|
57
|
-
|
50
|
+
puts target_service
|
51
|
+
proxy = ProxyClient.new(self.client, target_service)
|
58
52
|
self.services[method_id] = proxy
|
59
53
|
|
60
54
|
return proxy
|
data/lib/userapp/userapp.rb
CHANGED
@@ -2,10 +2,17 @@ module UserApp
|
|
2
2
|
class Client
|
3
3
|
require File.expand_path('../client.rb', __FILE__)
|
4
4
|
end
|
5
|
+
|
5
6
|
class ProxyClient
|
6
7
|
require File.expand_path('../proxy_client.rb', __FILE__)
|
7
8
|
end
|
9
|
+
|
8
10
|
class API < ProxyClient
|
9
11
|
require File.expand_path('../api.rb', __FILE__)
|
10
12
|
end
|
13
|
+
|
14
|
+
class Error < Exception; end
|
15
|
+
class InvalidServiceError < Error; end
|
16
|
+
class InvalidMethodError < Error; end
|
17
|
+
class ServiceError < Error; end
|
11
18
|
end
|
data/lib/userapp/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: userapp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2014-01-16 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &15729580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *15729580
|
25
25
|
description: User management and authentication for your Ruby app.
|
26
26
|
email: robin.orheden@userapp.io
|
27
27
|
executables: []
|