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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acc457412078eadbb0d83af84afa695eb3abea02
4
- data.tar.gz: 761377929fe4800901ee88b361cfe6b7e603a98e
3
+ metadata.gz: ab9347453b22d38c76c2ab4c8711d1c1bd825ea4
4
+ data.tar.gz: 85549e79dde2126e2871841d00d8ea64dfeced79
5
5
  SHA512:
6
- metadata.gz: 197315bdd45d57a1dea3ab04593561893106582eb5b7bdbd8da84116b4abc992dbb1ffc2390b568ceb12ddf5f5d5afd2d585ea578bebc16485ae4adcea9edf6d
7
- data.tar.gz: 8e73987857c84cababd5eaa857b67b38041d7f8691f9ae7826c09f5da2bd2d24065a4a3212af13860375d827cfac358d70b050405b109b0ef507f88378451243
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
- { 'links' => [link_to(:self, '/domain-types', :type_list), link_to(:up, '/', :homepage)],
102
- 'value' => @types.map { |name| link_to(:domain_type, "/domain-types/#{name}", :domain_type) }
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
- if not is_service
61
- representation['instanceId'] = object_id.to_s
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['serviceId'] = self.class.name
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
- href_value = value['href']
107
- match = Regexp.new(".*/objects/(?<domain-type>\\w*)/(?<object-id>\\d*)").match(href_value)
108
- raise "invalid property reference format: '#{href_value}'" if not match
109
- domain_type = match['domain-type']
110
- id = match['object-id'].to_i
111
- raise "value does not exists" if not rs_model.objects.include?(id)
112
- raise "domain-type does not exists" if not rs_model.types.include?(domain_type)
113
- send "#{property}=".to_sym, rs_model.objects[id]
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
- result = { 'friendlyName' => friendly_name,
78
- 'description' => description,
79
- 'returnType' => result_type,
80
- 'hasParams' => has_params,
81
- 'memberOrder' => member_order }
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
- representation = {
36
- 'id' => @id,
37
- 'optional' => optional,
38
- 'memberOrder' => @member_order,
39
- 'links' => [
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
@@ -4,7 +4,7 @@ module RestfulObjects
4
4
  def self.registered(router)
5
5
  # D.21 Domain Types
6
6
  router.get "/domain-types" do
7
- model.types.get_representation
7
+ model.get_type_list_representation
8
8
  end
9
9
 
10
10
  # D.22 Domain Type
@@ -1,3 +1,3 @@
1
1
  module RestfulObjects
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
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.6
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: 2014-10-31 00:00:00.000000000 Z
11
+ date: 2016-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler