dato 0.6.3.beta → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
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