restful_objects 0.0.6 → 0.0.7
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/restful_objects/domain_model/domain_model.rb +3 -2
- data/lib/restful_objects/domain_model/mixins/object_base.rb +5 -3
- data/lib/restful_objects/domain_model/mixins/object_properties.rb +12 -8
- data/lib/restful_objects/domain_model/types/action_description.rb +8 -6
- data/lib/restful_objects/domain_model/types/property_description.rb +8 -11
- data/lib/restful_objects/router/domain_type_resources.rb +1 -1
- data/lib/restful_objects/version.rb +1 -1
- 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: ab9347453b22d38c76c2ab4c8711d1c1bd825ea4
|
4
|
+
data.tar.gz: 85549e79dde2126e2871841d00d8ea64dfeced79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 935b685a0063195caa79387cb71c7cd51377c93de88dde3a285df92413a3c5289ef3586173d67da34a2e1ea41b840036de54e1a5f7bf90ea5b1efcb18703b3b7
|
7
|
+
data.tar.gz: d68969dfe27106b61abd847c742244e34160d498a1da0c44a6b0e34615aed0940edbd8c3cc3c53232e045f558384a285db4e15f44c10f32d80c712f17b516ee6
|
@@ -98,8 +98,9 @@ module RestfulObjects
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def get_type_list_representation
|
101
|
-
{
|
102
|
-
|
101
|
+
{
|
102
|
+
'value' => @types.each_value.map { |type| link_to(:domain_type, "/domain-types/#{type.id}", :domain_type) },
|
103
|
+
'links' => [link_to(:self, '/domain-types', :type_list), link_to(:up, '/', :homepage)]
|
103
104
|
}.to_json
|
104
105
|
end
|
105
106
|
|
@@ -51,17 +51,19 @@ module RestfulObjects
|
|
51
51
|
|
52
52
|
def representation(include_self_link = true)
|
53
53
|
representation = {
|
54
|
+
'instanceId' => object_id.to_s,
|
55
|
+
'serviceId' => self.class.name,
|
54
56
|
'title' => title,
|
55
57
|
'members' => generate_members,
|
56
58
|
'links' => [ link_to(:described_by, "/domain-types/#{self.class.name}", :domain_type) ],
|
57
59
|
'extensions' => rs_type.metadata
|
58
60
|
}
|
59
61
|
|
60
|
-
|
61
|
-
representation
|
62
|
+
unless is_service
|
63
|
+
representation.delete('serviceId')
|
62
64
|
representation['links'] << link_to(:self, "/objects/#{self.class.name}/#{object_id}", :object) if include_self_link
|
63
65
|
else
|
64
|
-
representation
|
66
|
+
representation.delete('instanceId')
|
65
67
|
representation['links'] << link_to(:self, "/services/#{self.class.name}", :object) if include_self_link
|
66
68
|
end
|
67
69
|
|
@@ -103,14 +103,18 @@ module RestfulObjects
|
|
103
103
|
|
104
104
|
def set_property_value(property, value)
|
105
105
|
if property_description(property).is_reference
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
106
|
+
unless value.nil?
|
107
|
+
href_value = value['href']
|
108
|
+
match = Regexp.new(".*/objects/(?<domain-type>\\w*)/(?<object-id>\\d*)").match(href_value)
|
109
|
+
raise "invalid property reference format: '#{href_value}'" if not match
|
110
|
+
domain_type = match['domain-type']
|
111
|
+
id = match['object-id'].to_i
|
112
|
+
raise "value does not exists" if not rs_model.objects.include?(id)
|
113
|
+
raise "domain-type does not exists" if not rs_model.types.include?(domain_type)
|
114
|
+
send "#{property}=".to_sym, rs_model.objects[id]
|
115
|
+
else
|
116
|
+
send "#{property}=".to_sym, nil
|
117
|
+
end
|
114
118
|
else
|
115
119
|
send "#{property}=".to_sym, decode_value(value, property_type(property))
|
116
120
|
end
|
@@ -43,7 +43,7 @@ module RestfulObjects
|
|
43
43
|
raise 'invalid return_type: object, proto_object or list key expected'
|
44
44
|
end
|
45
45
|
unless @result_type.is_a?(Class) or @result_type.is_a?(String)
|
46
|
-
raise 'return_type object, proto_object or list value should be a class or a string'
|
46
|
+
raise 'return_type object, proto_object or list value should be a class or a string'
|
47
47
|
end
|
48
48
|
else
|
49
49
|
raise 'invalid return_type: symbol or hash expected'
|
@@ -74,11 +74,13 @@ module RestfulObjects
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def metadata
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
77
|
+
{
|
78
|
+
'friendlyName' => friendly_name,
|
79
|
+
'description' => description,
|
80
|
+
'returnType' => result_type,
|
81
|
+
'hasParams' => has_params,
|
82
|
+
'memberOrder' => member_order
|
83
|
+
}
|
82
84
|
end
|
83
85
|
|
84
86
|
def has_params
|
@@ -32,22 +32,19 @@ module RestfulObjects
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def get_representation
|
35
|
-
|
36
|
-
'id'
|
37
|
-
'
|
38
|
-
'
|
39
|
-
'
|
35
|
+
{
|
36
|
+
'id' => @id,
|
37
|
+
'friendlyName' => friendly_name || '',
|
38
|
+
'description' => description || '',
|
39
|
+
'optional' => optional,
|
40
|
+
'memberOrder' => @member_order,
|
41
|
+
'links' => [
|
40
42
|
link_to(:self, "/domain-types/#{@domain_type}/properties/#{@id}", :property_description),
|
41
43
|
link_to(:up, "/domain-types/#{@domain_type}", :domain_type),
|
42
44
|
link_to(:return_type, "/domain-types/#{@return_type}", :domain_type)
|
43
45
|
],
|
44
46
|
'extensions' => {}
|
45
|
-
}
|
46
|
-
|
47
|
-
representation['friendlyName'] = friendly_name if friendly_name
|
48
|
-
representation['description'] = description if description
|
49
|
-
|
50
|
-
representation.to_json
|
47
|
+
}.to_json
|
51
48
|
end
|
52
49
|
|
53
50
|
def metadata
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restful_objects
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pablo Vizcay
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|