userapp 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|