dato 0.6.3.beta → 0.6.3

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
  SHA256:
3
- metadata.gz: 15067b99fcc4a58291b9a0f0e4d7526be9a05bfbc701c610a053d7d264e56068
4
- data.tar.gz: a9edb33c2f22c72372fcf1816faf21e33fffa4e56da2532716664de2cf66cc54
3
+ metadata.gz: caf533c45c36a3d0ab706de24d87eb9644c6d75cd96fd382548f2e33669c116a
4
+ data.tar.gz: 5ac31c58ab266710d4a7cd01d77b1c0a72557028cf3db98a0b97582274812eed
5
5
  SHA512:
6
- metadata.gz: bbdb13300444f185c228a38716fe192dd9a151b3a483ca77227ea2358c0e629af011d8b30e198046e0daba57ce72619059cc9416bc70211f375a80d2ea77eee2
7
- data.tar.gz: 6f4e56b6518a23f792b1a2edd9759f7d26edcb21e180051f0e0050980ef0eebc52023ea35536cc57678c0bfebfd0d2cfb528dc1419f7f59c58303e6262b4b783
6
+ metadata.gz: 301ec61a7fc330eacb9b158ed4171d002dd5cf751155acfc8b8229dabe06160c507a600b47e64f519109dff95e02fc4509f132c6e13728afcaf9866b4d08c01c
7
+ data.tar.gz: d4e17fac97b98ed6d6b3e5e37613702943db6518a0b25ea8773b61b9607c73c8c88da2e1a43e23d0ee01ed0c6bf4eec24cda45fb31a756d2b116f31a27b71b03
@@ -37,15 +37,12 @@ module Dato
37
37
 
38
38
  schema.definitions.each do |type, schema|
39
39
  is_collection = schema.links.select{|x| x.rel === "instances"}.any?
40
+ namespace = is_collection ? type.pluralize : type
40
41
 
41
- if is_collection
42
- type = type.pluralize
43
- end
44
-
45
- define_method(type) do
42
+ define_method(namespace) do
46
43
  instance_variable_set(
47
- "@#{type}",
48
- instance_variable_get("@#{type}") ||
44
+ "@#{namespace}",
45
+ instance_variable_get("@#{namespace}") ||
49
46
  Dato::Repo.new(self, type, schema)
50
47
  )
51
48
  end
@@ -44,6 +44,7 @@ module Dato
44
44
  relationships.each do |relationship, meta|
45
45
  if resource.key? relationship
46
46
  value = resource[relationship]
47
+
47
48
  data = if value
48
49
  if meta[:collection]
49
50
  value.map do |id|
@@ -65,7 +66,15 @@ module Dato
65
66
 
66
67
  def attributes(resource)
67
68
  if type == "item"
68
- resource.keys - [:item_type, :id]
69
+ return resource.keys.map(&:to_sym) - [
70
+ :item_type,
71
+ :id,
72
+ :created_at,
73
+ :updated_at,
74
+ :is_valid,
75
+ :published_version,
76
+ :current_version
77
+ ]
69
78
  end
70
79
 
71
80
  link_attributes["properties"].keys.map(&:to_sym)
@@ -73,7 +82,7 @@ module Dato
73
82
 
74
83
  def required_attributes
75
84
  if type == "item"
76
- []
85
+ return []
77
86
  end
78
87
 
79
88
  (link_attributes.required || []).map(&:to_sym)
@@ -81,9 +90,11 @@ module Dato
81
90
 
82
91
  def relationships
83
92
  if type == "item"
84
- {
85
- item_type: { collection: false, type: 'item_type' }
86
- }
93
+ if link.rel == :create
94
+ return { item_type: { collection: false, type: 'item_type' } }
95
+ else
96
+ {}
97
+ end
87
98
  end
88
99
 
89
100
  if !link_relationships
@@ -110,12 +121,14 @@ module Dato
110
121
  collection: is_collection,
111
122
  type: type,
112
123
  }
124
+
125
+ acc
113
126
  end
114
127
  end
115
128
 
116
129
  def required_relationships
117
130
  if type == "item"
118
- %i(item_type)
131
+ return %i(item_type)
119
132
  end
120
133
 
121
134
  (link_relationships.required || []).map(&:to_sym)
@@ -33,10 +33,12 @@ module Dato
33
33
  "wrong number of arguments (given #{args.size}, expected #{min_arguments_count})"
34
34
  )
35
35
 
36
- last_url_id = nil
36
+ placeholders = []
37
37
 
38
38
  url = link["href"].gsub(IDENTITY_REGEXP) do |_stuff|
39
- last_url_id = args.shift.to_s
39
+ placeholder = args.shift.to_s
40
+ placeholders << placeholder
41
+ placeholder
40
42
  end
41
43
 
42
44
  response = if %i(post put).include?(link.method)
@@ -45,7 +47,7 @@ module Dato
45
47
 
46
48
  JsonApiSerializer.new(type, link).serialize(
47
49
  unserialized_body,
48
- last_url_id
50
+ link.method == :post ? nil : placeholders.last
49
51
  )
50
52
  else
51
53
  {}
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Dato
3
- VERSION = '0.6.3.beta'
3
+ VERSION = '0.6.3'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3.beta
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Verna
@@ -455,9 +455,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
455
455
  version: '0'
456
456
  required_rubygems_version: !ruby/object:Gem::Requirement
457
457
  requirements:
458
- - - ">"
458
+ - - ">="
459
459
  - !ruby/object:Gem::Version
460
- version: 1.3.1
460
+ version: '0'
461
461
  requirements: []
462
462
  rubyforge_project:
463
463
  rubygems_version: 2.7.6