restful_objects 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +3 -2
- data/bin/restful_server.rb +0 -0
- data/lib/restful_objects/action_description.rb +96 -82
- data/lib/restful_objects/action_list.rb +17 -17
- data/lib/restful_objects/collection_description.rb +47 -47
- data/lib/restful_objects/collection_list.rb +17 -17
- data/lib/restful_objects/domain_model.rb +83 -79
- data/lib/restful_objects/http_response.rb +11 -11
- data/lib/restful_objects/link_generator.rb +104 -104
- data/lib/restful_objects/object.rb +20 -20
- data/lib/restful_objects/object_actions.rb +134 -134
- data/lib/restful_objects/object_base.rb +10 -0
- data/lib/restful_objects/object_collections.rb +84 -84
- data/lib/restful_objects/object_list.rb +16 -16
- data/lib/restful_objects/object_macros.rb +35 -35
- data/lib/restful_objects/object_properties.rb +78 -78
- data/lib/restful_objects/parameter_description.rb +60 -60
- data/lib/restful_objects/parameter_description_list.rb +15 -15
- data/lib/restful_objects/property_description.rb +68 -68
- data/lib/restful_objects/property_list.rb +17 -17
- data/lib/restful_objects/service.rb +21 -21
- data/lib/restful_objects/service_list.rb +55 -55
- data/lib/restful_objects/type.rb +110 -110
- data/lib/restful_objects/type_list.rb +30 -30
- data/lib/restful_objects/user.rb +30 -30
- data/lib/restful_objects/version.rb +1 -1
- data/spec/integration/domain-types_actions_spec.rb +43 -43
- data/spec/integration/domain-types_collections_spec.rb +45 -45
- data/spec/integration/domain-types_properties_spec.rb +41 -41
- data/spec/integration/server-root_spec.rb +98 -98
- data/spec/spec_helper.rb +52 -52
- data/spec/unit/object_actions_spec.rb +380 -380
- data/spec/unit/object_collections_spec.rb +190 -190
- data/spec/unit/object_properties_spec.rb +215 -206
- data/spec/unit/object_spec.rb +228 -228
- data/spec/unit/service_spec.rb +125 -125
- data/spec/unit/type_list_spec.rb +37 -37
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTk4ZmFkNzBlZDBlZmIwNzkxMjVmYzY5Nzg1NGQ5N2IyMGIzODRiYg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OGU3NDBlZDE3OWRhZmZmNThhN2YxM2Q4YTk5Mjk3NmRmMDI3Mzk1Yw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDRmZDgzY2NkNzFiYzk1MjUyNTkyMTVkYzcyNzZmZjcyN2UwNDI1NWIwZjJk
|
10
|
+
ZjYzYjU2ZDFkZDNiMWRlZGMwYmM0Y2VlMzg0ZWFjMDcxMjQyNDhjMDU3MDVj
|
11
|
+
MDA5MGM2NmRiN2Q2MDNjYTgxYjc2MzhhZTU5ZDIxYzNlMDYzN2I=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGM4N2Y2MGU1MDMwNDk4MDJlMjE2MzZhODQ5Y2MxMDRjY2E2YmE0ZTYwYzQ4
|
14
|
+
M2JiODdhMDRkNzFjYjgwNTQxN2Y0ODJmNTlhOTZjNTFjYTJlNWZmMmE2NjQ0
|
15
|
+
NGJkZThmMTNkNzRmNGI4Y2U5YzcyYjExYWMwYmE3NTlkNjdmM2Q=
|
data/README.md
CHANGED
@@ -44,7 +44,8 @@ class Graph
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
```
|
47
|
-
|
47
|
+
You can check this example and more [here](https://github.com/vizcay/RestfulObjectsRubyExamples).
|
48
|
+
|
48
49
|
### How to install it?
|
49
50
|
Run
|
50
51
|
|
@@ -64,7 +65,7 @@ to your's project Gemfile and 'bundle install' it.
|
|
64
65
|
The source quality is at alpha state, and it was created mostly as a proof of concept. Still is has plenty of specs and a big percentage of the specification implemented, the grey areas are mostly related to errors and validations. It has been developed with MRI and hasn't been tested on other Ruby implementations.
|
65
66
|
|
66
67
|
### Dependencies
|
67
|
-
- [Ruby 1.9.3 or higher](https://www.ruby-lang.org
|
68
|
+
- [Ruby 1.9.3 or higher](https://www.ruby-lang.org/)
|
68
69
|
- [Sinatra](http://www.sinatrarb.com/)
|
69
70
|
- [RSpec](http://rspec.info/)
|
70
71
|
- [json_expressions](https://github.com/chancancode/json_expressions) for json testing.
|
data/bin/restful_server.rb
CHANGED
File without changes
|
@@ -1,82 +1,96 @@
|
|
1
|
-
module RestfulObjects
|
2
|
-
class ActionDescription
|
3
|
-
include LinkGenerator
|
4
|
-
|
5
|
-
attr_reader :id, :kind_result_type, :result_type, :parameters
|
6
|
-
attr_accessor :friendly_name, :description, :member_order, :disabled_reason
|
7
|
-
|
8
|
-
def initialize(id,
|
9
|
-
@id
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
representation
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
|
1
|
+
module RestfulObjects
|
2
|
+
class ActionDescription
|
3
|
+
include LinkGenerator
|
4
|
+
|
5
|
+
attr_reader :id, :kind_result_type, :result_type, :parameters
|
6
|
+
attr_accessor :friendly_name, :description, :member_order, :disabled_reason
|
7
|
+
|
8
|
+
def initialize(id, domain_type, options)
|
9
|
+
@id = id
|
10
|
+
@domain_type = domain_type
|
11
|
+
@friendly_name = options[:friendly_name] || id
|
12
|
+
@description = options[:description] || id
|
13
|
+
@member_order = options[:member_order] || 0
|
14
|
+
@disabled_reason = options[:disabled_reason] || ''
|
15
|
+
|
16
|
+
case options[:return_type]
|
17
|
+
when NilClass
|
18
|
+
@result_type = :void
|
19
|
+
@kind_result_type = :void
|
20
|
+
when Symbol
|
21
|
+
if options[:return_type] == :void
|
22
|
+
@result_type = :void
|
23
|
+
@kind_result_type = :void
|
24
|
+
else
|
25
|
+
raise "result type for scalar '#{options[:return_type]}' unssuported" unless [:string, :int, :bool, :decimal, :date, :blob].include?(options[:return_type])
|
26
|
+
@result_type = options[:return_type]
|
27
|
+
@kind_result_type = :scalar
|
28
|
+
end
|
29
|
+
when Hash
|
30
|
+
options[:return_type]
|
31
|
+
if options[:return_type][:object]
|
32
|
+
@result_type = options[:return_type][:object]
|
33
|
+
@kind_result_type = :object
|
34
|
+
elsif options[:return_type][:proto_object]
|
35
|
+
@result_type = options[:return_type][:proto_object]
|
36
|
+
@kind_result_type = :proto_object
|
37
|
+
elsif options[:return_type][:list]
|
38
|
+
@result_type = options[:return_type][:list]
|
39
|
+
@kind_result_type = :list
|
40
|
+
else
|
41
|
+
raise 'invalid return_type: object, proto_object or list key expected'
|
42
|
+
end
|
43
|
+
unless @result_type.is_a?(Class) or @result_type.is_a?(String)
|
44
|
+
raise 'return_type object, proto_object or list value should be a class or a string'
|
45
|
+
end
|
46
|
+
else
|
47
|
+
raise 'invalid return_type: symbol or hash expected'
|
48
|
+
end
|
49
|
+
|
50
|
+
@parameters = ParameterDescriptionList.new
|
51
|
+
options[:parameters].each { |name, definition| @parameters.add(name, definition) } if options[:parameters]
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_representation
|
55
|
+
representation = {
|
56
|
+
'id' => @id,
|
57
|
+
'hasParams' => has_params,
|
58
|
+
'memberOrder' => @member_order,
|
59
|
+
'parameters' => parameters_list,
|
60
|
+
'links' => [
|
61
|
+
link_to(:self, "/domain-types/#{@domain_type}/actions/#{@id}", :action_description),
|
62
|
+
link_to(:up, "/domain-types/#{@domain_type}", :domain_type),
|
63
|
+
link_to(:return_type, "/domain-types/#{result_type}", :domain_type)
|
64
|
+
],
|
65
|
+
'extensions' => {}
|
66
|
+
}
|
67
|
+
|
68
|
+
representation['friendlyName'] = friendly_name if friendly_name
|
69
|
+
representation['description'] = description if description
|
70
|
+
|
71
|
+
representation.to_json
|
72
|
+
end
|
73
|
+
|
74
|
+
def metadata
|
75
|
+
result = { 'friendlyName' => friendly_name,
|
76
|
+
'description' => description,
|
77
|
+
'returnType' => result_type,
|
78
|
+
'hasParams' => has_params,
|
79
|
+
'memberOrder' => member_order }
|
80
|
+
end
|
81
|
+
|
82
|
+
def has_params
|
83
|
+
not @parameters.empty?
|
84
|
+
end
|
85
|
+
|
86
|
+
def parameters_list
|
87
|
+
result = {}
|
88
|
+
parameters.each do |name, parameter|
|
89
|
+
result[name] = {
|
90
|
+
'extension' => parameter.metadata
|
91
|
+
}
|
92
|
+
end
|
93
|
+
result
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
module RestfulObjects
|
2
|
-
class ActionList
|
3
|
-
extend Forwardable
|
4
|
-
|
5
|
-
def initialize(domain_type)
|
6
|
-
@actions = Hash.new
|
7
|
-
@domain_type = domain_type
|
8
|
-
end
|
9
|
-
|
10
|
-
def add(id,
|
11
|
-
options[:member_order] ||= count + 1
|
12
|
-
@actions[id] = ActionDescription.new(id,
|
13
|
-
end
|
14
|
-
|
15
|
-
def_delegators :@actions, :[], :each, :include?, :count, :empty?
|
16
|
-
end
|
17
|
-
end
|
1
|
+
module RestfulObjects
|
2
|
+
class ActionList
|
3
|
+
extend Forwardable
|
4
|
+
|
5
|
+
def initialize(domain_type)
|
6
|
+
@actions = Hash.new
|
7
|
+
@domain_type = domain_type
|
8
|
+
end
|
9
|
+
|
10
|
+
def add(id, options = {})
|
11
|
+
options[:member_order] ||= count + 1
|
12
|
+
@actions[id] = ActionDescription.new(id, @domain_type, options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def_delegators :@actions, :[], :each, :include?, :count, :empty?
|
16
|
+
end
|
17
|
+
end
|
@@ -1,47 +1,47 @@
|
|
1
|
-
module RestfulObjects
|
2
|
-
class CollectionDescription
|
3
|
-
include LinkGenerator
|
4
|
-
attr_reader :id, :type, :read_only
|
5
|
-
attr_accessor :friendly_name, :description, :plural_form, :member_order, :disabled_reason
|
6
|
-
|
7
|
-
def initialize(id, type, domain_type, options = {})
|
8
|
-
@id = id
|
9
|
-
@type = type
|
10
|
-
@domain_type = domain_type
|
11
|
-
@read_only = options[:read_only].nil? ? false : options[:read_only]
|
12
|
-
@disabled_reason = options[:disabled_reason] || 'read only collection' if read_only
|
13
|
-
@friendly_name = options[:friendly_name] || id
|
14
|
-
@description = options[:description] || id
|
15
|
-
@plural_form = options[:plural_form]
|
16
|
-
@member_order = options[:member_order]
|
17
|
-
end
|
18
|
-
|
19
|
-
def get_representation
|
20
|
-
representation = {
|
21
|
-
'id' => id,
|
22
|
-
'memberOrder' => member_order,
|
23
|
-
'links' => [
|
24
|
-
link_to(:self, "/domain-types/#{@domain_type}/collections/#{@id}", :collection_description),
|
25
|
-
link_to(:up, "/domain-types/#{@domain_type}", :domain_type),
|
26
|
-
link_to(:return_type, "/domain-types/list", :domain_type),
|
27
|
-
link_to(:element_type, "/domain-types/#{@type}", :domain_type)
|
28
|
-
],
|
29
|
-
'extensions' => metadata
|
30
|
-
}
|
31
|
-
|
32
|
-
representation['friendlyName'] = friendly_name if friendly_name
|
33
|
-
representation['description'] = description if description
|
34
|
-
|
35
|
-
representation.to_json
|
36
|
-
end
|
37
|
-
|
38
|
-
def metadata
|
39
|
-
{ 'friendlyName' => friendly_name,
|
40
|
-
'description' => description,
|
41
|
-
'returnType' => 'list',
|
42
|
-
'elementType' => type,
|
43
|
-
'memberOrder' => member_order,
|
44
|
-
'pluralForm' => plural_form }
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
1
|
+
module RestfulObjects
|
2
|
+
class CollectionDescription
|
3
|
+
include LinkGenerator
|
4
|
+
attr_reader :id, :type, :read_only
|
5
|
+
attr_accessor :friendly_name, :description, :plural_form, :member_order, :disabled_reason
|
6
|
+
|
7
|
+
def initialize(id, type, domain_type, options = {})
|
8
|
+
@id = id
|
9
|
+
@type = type
|
10
|
+
@domain_type = domain_type
|
11
|
+
@read_only = options[:read_only].nil? ? false : options[:read_only]
|
12
|
+
@disabled_reason = options[:disabled_reason] || 'read only collection' if read_only
|
13
|
+
@friendly_name = options[:friendly_name] || id
|
14
|
+
@description = options[:description] || id
|
15
|
+
@plural_form = options[:plural_form]
|
16
|
+
@member_order = options[:member_order]
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_representation
|
20
|
+
representation = {
|
21
|
+
'id' => id,
|
22
|
+
'memberOrder' => member_order,
|
23
|
+
'links' => [
|
24
|
+
link_to(:self, "/domain-types/#{@domain_type}/collections/#{@id}", :collection_description),
|
25
|
+
link_to(:up, "/domain-types/#{@domain_type}", :domain_type),
|
26
|
+
link_to(:return_type, "/domain-types/list", :domain_type),
|
27
|
+
link_to(:element_type, "/domain-types/#{@type}", :domain_type)
|
28
|
+
],
|
29
|
+
'extensions' => metadata
|
30
|
+
}
|
31
|
+
|
32
|
+
representation['friendlyName'] = friendly_name if friendly_name
|
33
|
+
representation['description'] = description if description
|
34
|
+
|
35
|
+
representation.to_json
|
36
|
+
end
|
37
|
+
|
38
|
+
def metadata
|
39
|
+
{ 'friendlyName' => friendly_name,
|
40
|
+
'description' => description,
|
41
|
+
'returnType' => 'list',
|
42
|
+
'elementType' => type,
|
43
|
+
'memberOrder' => member_order,
|
44
|
+
'pluralForm' => plural_form }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
module RestfulObjects
|
2
|
-
class CollectionList
|
3
|
-
extend Forwardable
|
4
|
-
|
5
|
-
def initialize(domain_type)
|
6
|
-
@domain_type = domain_type
|
7
|
-
@collections = Hash.new
|
8
|
-
end
|
9
|
-
|
10
|
-
def add(name, type, options = {})
|
11
|
-
options[:member_order] ||= count + 1
|
12
|
-
@collections[name] = CollectionDescription.new(name, type, @domain_type, options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def_delegators :@collections, :[], :each, :each_key, :each_value, :include?, :count, :empty?, :clear
|
16
|
-
end
|
17
|
-
end
|
1
|
+
module RestfulObjects
|
2
|
+
class CollectionList
|
3
|
+
extend Forwardable
|
4
|
+
|
5
|
+
def initialize(domain_type)
|
6
|
+
@domain_type = domain_type
|
7
|
+
@collections = Hash.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def add(name, type, options = {})
|
11
|
+
options[:member_order] ||= count + 1
|
12
|
+
@collections[name] = CollectionDescription.new(name, type, @domain_type, options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def_delegators :@collections, :[], :each, :each_key, :each_value, :include?, :count, :empty?, :clear
|
16
|
+
end
|
17
|
+
end
|
@@ -1,79 +1,83 @@
|
|
1
|
-
module RestfulObjects
|
2
|
-
class DomainModel
|
3
|
-
include LinkGenerator
|
4
|
-
|
5
|
-
attr_accessor :base_url, :compatible_mode
|
6
|
-
attr_reader :metadata_schema, :version, :user, :types, :services, :objects
|
7
|
-
|
8
|
-
def self.current
|
9
|
-
@current ||= DomainModel.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.current=(value)
|
13
|
-
@current = value
|
14
|
-
end
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
@base_url = 'http://localhost'
|
18
|
-
@metadata_schema = :selectable
|
19
|
-
@compatible_mode = false
|
20
|
-
@user = User.new(@base_url, 'anonymous')
|
21
|
-
@types = TypeList.new
|
22
|
-
@services = ServiceList.new(@base_url)
|
23
|
-
@objects = ObjectList.new(@base_url)
|
24
|
-
end
|
25
|
-
|
26
|
-
def get_homepage
|
27
|
-
{ 'links' => [
|
28
|
-
link_to(:self, '/', :homepage),
|
29
|
-
link_to(:user, '/user', :user),
|
30
|
-
link_to(:services, '/services', :list),
|
31
|
-
link_to(:version, '/version', :version),
|
32
|
-
link_to(:domain_types, '/domain-types', :type_list)
|
33
|
-
],
|
34
|
-
'extensions' => {}
|
35
|
-
}.to_json
|
36
|
-
end
|
37
|
-
|
38
|
-
def get_version
|
39
|
-
{ 'links' => [
|
40
|
-
link_to(:self, '/version', :version),
|
41
|
-
link_to(:up, '/', :homepage),
|
42
|
-
],
|
43
|
-
'specVersion' => '1.0',
|
44
|
-
'optionalCapabilities' => {
|
45
|
-
'blobsClobs' => true,
|
46
|
-
'deleteObjects' => true,
|
47
|
-
'domainModel' => metadata_schema.to_s,
|
48
|
-
'protoPersistentObjects' => true,
|
49
|
-
'validateOnly' => false
|
50
|
-
},
|
51
|
-
'extensions' => {}
|
52
|
-
}.to_json
|
53
|
-
end
|
54
|
-
|
55
|
-
def get_user
|
56
|
-
@user.get_as_json
|
57
|
-
end
|
58
|
-
|
59
|
-
def get_services
|
60
|
-
services.get_list
|
61
|
-
end
|
62
|
-
|
63
|
-
def metadata_schema=(value)
|
64
|
-
if not [:simple, :formal, :selectable].include?(value)
|
65
|
-
raise "invalid metadata schema, choose :simple, :formal or :selectable"
|
66
|
-
end
|
67
|
-
@metadata_schema = value
|
68
|
-
end
|
69
|
-
|
70
|
-
def reset
|
71
|
-
@base_url = 'http://localhost'
|
72
|
-
@user = nil
|
73
|
-
@types.clear
|
74
|
-
@services.clear
|
75
|
-
@objects.clear
|
76
|
-
end
|
77
|
-
|
78
|
-
|
79
|
-
|
1
|
+
module RestfulObjects
|
2
|
+
class DomainModel
|
3
|
+
include LinkGenerator
|
4
|
+
|
5
|
+
attr_accessor :base_url, :compatible_mode
|
6
|
+
attr_reader :metadata_schema, :version, :user, :types, :services, :objects
|
7
|
+
|
8
|
+
def self.current
|
9
|
+
@current ||= DomainModel.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.current=(value)
|
13
|
+
@current = value
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@base_url = 'http://localhost'
|
18
|
+
@metadata_schema = :selectable
|
19
|
+
@compatible_mode = false
|
20
|
+
@user = User.new(@base_url, 'anonymous')
|
21
|
+
@types = TypeList.new
|
22
|
+
@services = ServiceList.new(@base_url)
|
23
|
+
@objects = ObjectList.new(@base_url)
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_homepage
|
27
|
+
{ 'links' => [
|
28
|
+
link_to(:self, '/', :homepage),
|
29
|
+
link_to(:user, '/user', :user),
|
30
|
+
link_to(:services, '/services', :list),
|
31
|
+
link_to(:version, '/version', :version),
|
32
|
+
link_to(:domain_types, '/domain-types', :type_list)
|
33
|
+
],
|
34
|
+
'extensions' => {}
|
35
|
+
}.to_json
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_version
|
39
|
+
{ 'links' => [
|
40
|
+
link_to(:self, '/version', :version),
|
41
|
+
link_to(:up, '/', :homepage),
|
42
|
+
],
|
43
|
+
'specVersion' => '1.0',
|
44
|
+
'optionalCapabilities' => {
|
45
|
+
'blobsClobs' => true,
|
46
|
+
'deleteObjects' => true,
|
47
|
+
'domainModel' => metadata_schema.to_s,
|
48
|
+
'protoPersistentObjects' => true,
|
49
|
+
'validateOnly' => false
|
50
|
+
},
|
51
|
+
'extensions' => {}
|
52
|
+
}.to_json
|
53
|
+
end
|
54
|
+
|
55
|
+
def get_user
|
56
|
+
@user.get_as_json
|
57
|
+
end
|
58
|
+
|
59
|
+
def get_services
|
60
|
+
services.get_list
|
61
|
+
end
|
62
|
+
|
63
|
+
def metadata_schema=(value)
|
64
|
+
if not [:simple, :formal, :selectable].include?(value)
|
65
|
+
raise "invalid metadata schema, choose :simple, :formal or :selectable"
|
66
|
+
end
|
67
|
+
@metadata_schema = value
|
68
|
+
end
|
69
|
+
|
70
|
+
def reset
|
71
|
+
@base_url = 'http://localhost'
|
72
|
+
@user = nil
|
73
|
+
@types.clear
|
74
|
+
@services.clear
|
75
|
+
@objects.clear
|
76
|
+
end
|
77
|
+
|
78
|
+
def reset_objects
|
79
|
+
@objects.clear
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|