hoodoo 2.12.3 → 2.12.4

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: 77237a09b76c06f3de3d9b841ab279df2e85f0face805921bc434d27d0121647
4
- data.tar.gz: 5c9dea30b74dae008458abddc8a7070dc515522a521dcfc7139c3b341baefbdf
3
+ metadata.gz: cdca69c2a29ece8bc75d1470298b790131dc103929c0bd654c5e01ff6b841175
4
+ data.tar.gz: 5ed6123e57aa9e3fc8344b7178f5aa68765ce5b646cf379ec08914ff2d86c89b
5
5
  SHA512:
6
- metadata.gz: 1ab5e8db21aefa1574adf39df846347078eba173ca7af321648bc6375a932a9cfc1791f0492f88f44bea1d0782254fc236c9e23a09d4c6b1038ef516facdbe30
7
- data.tar.gz: f248fd134ea0a9366f226f25b3afbd748f3315296b406b9d1463044158a5d45ecfab115a8d95e48873097de1e0b3438b373bbd42ef083635a79b365a17dae678
6
+ metadata.gz: 6ff3091821407f644dabb949c6f3bb45f54eba866184633904e056b74a979a9f73f555387f3f167bf43f39ea9e127ccf555f041b2f4cb7b6da74557e90cc3064
7
+ data.tar.gz: '078991782941704131ffe94f29a37c9e155b8bab2b64618d793c9923d42c70ff67d50dd1895e38a42a5966427d54f35dae37657bb445b325fdf08ab14cbb9d46'
@@ -90,12 +90,16 @@ module Hoodoo
90
90
  # were used to create the Session under which the
91
91
  # resource instance was created. Absent if omitted.
92
92
  #
93
+ # +updated_at+:: Optional Date/Time of instance update. This is a Ruby
94
+ # DateTime instance or similar, _NOT_ a string!
95
+ #
93
96
  def self.render( data,
94
97
  uuid = nil,
95
98
  created_at = nil,
96
99
  language = 'en-nz',
97
- created_by = nil )
98
-
100
+ created_by = nil,
101
+ updated_at = nil
102
+ )
99
103
  target = {}
100
104
  data = data || {}
101
105
 
@@ -126,6 +130,7 @@ module Hoodoo
126
130
  'created_at' => Hoodoo::Utilities.standard_datetime( created_at.to_datetime )
127
131
  } )
128
132
 
133
+ target[ 'updated_at' ] = Hoodoo::Utilities.standard_datetime( updated_at.to_datetime ) unless updated_at.nil?
129
134
  target[ 'created_by' ] = created_by unless created_by.nil?
130
135
  target[ 'language' ] = language if self.is_internationalised?()
131
136
 
@@ -167,6 +172,9 @@ module Hoodoo
167
172
  # +created_at+:: Same as the +created_at+ parameter to ::render, except
168
173
  # mandatory.
169
174
  #
175
+ # +updated_at+:: Optional value expressing the time the resource was last
176
+ # updated.
177
+ #
170
178
  # +created_by+:: Optional fingerprint of the Caller whose credentials
171
179
  # were used to create the Session under which the
172
180
  # resource instance was created.
@@ -194,13 +202,14 @@ module Hoodoo
194
202
  def self.render_in( context, data, options = {} )
195
203
  uuid = options[ :uuid ]
196
204
  created_at = options[ :created_at ]
205
+ updated_at = options[ :updated_at ]
197
206
  created_by = options[ :created_by ]
198
207
  language = options[ :language ] || context.request.locale
199
208
  secured_with = options[ :secured_with ]
200
209
  embeds = options[ :embeds ]
201
210
  references = options[ :references ]
202
211
 
203
- target = self.render( data, uuid, created_at, language, created_by )
212
+ target = self.render( data, uuid, created_at, language, created_by, updated_at )
204
213
 
205
214
  if defined?( ::ActiveRecord ) && secured_with.is_a?( ::ActiveRecord::Base )
206
215
  result_hash = {}
@@ -251,6 +260,9 @@ module Hoodoo
251
260
  created_by = data[ :created_by ]
252
261
  common_fields[ 'created_by' ] = created_by unless created_by.nil?
253
262
 
263
+ updated_at = data[ :updated_at ]
264
+ common_fields[ 'updated_at' ] = updated_at unless updated_at.nil?
265
+
254
266
  if self.is_internationalised?
255
267
  common_fields[ 'internationalised' ] = data[ 'internationalised' ]
256
268
  Hoodoo::Presenters::CommonResourceFields.get_schema.properties[ 'language' ].required = true
@@ -18,6 +18,7 @@ module Hoodoo
18
18
  schema do
19
19
  uuid :id, :required => true
20
20
  datetime :created_at, :required => true
21
+ datetime :updated_at, :required => false
21
22
  text :kind, :required => true
22
23
  text :language
23
24
 
@@ -12,11 +12,11 @@ module Hoodoo
12
12
  # The Hoodoo gem version. If this changes, be sure to re-run
13
13
  # <tt>bundle install</tt> or <tt>bundle update</tt>.
14
14
  #
15
- VERSION = '2.12.3'
15
+ VERSION = '2.12.4'
16
16
 
17
17
  # The Hoodoo gem date. If this changes, be sure to re-run
18
18
  # <tt>bundle install</tt> or <tt>bundle update</tt>.
19
19
  #
20
- DATE = '2019-11-12'
20
+ DATE = '2019-11-15'
21
21
 
22
22
  end
@@ -362,7 +362,8 @@ describe '#schema' do
362
362
  Hoodoo::UUID.generate,
363
363
  Time.now,
364
364
  'en-gb',
365
- Hoodoo::UUID.generate
365
+ Hoodoo::UUID.generate,
366
+ Time.now
366
367
  )
367
368
 
368
369
  expect(Hoodoo::Data::Resources::World.validate(rendered, true).errors).to eq([])
@@ -707,6 +708,7 @@ describe '#schema' do
707
708
  'id' => @uuid,
708
709
  'kind' => 'World',
709
710
  'created_at' => Hoodoo::Utilities.standard_datetime( @time ),
711
+ 'updated_at' => Hoodoo::Utilities.standard_datetime( @time ),
710
712
  'language' => 'en-gb',
711
713
  'errors_id' => @input['errors_id'],
712
714
  'test_tags' => 'foo,bar,baz',
@@ -729,7 +731,9 @@ describe '#schema' do
729
731
  @input,
730
732
  @uuid,
731
733
  @time,
732
- 'en-gb'
734
+ 'en-gb',
735
+ nil,
736
+ @time
733
737
  )
734
738
  ).to( eq( @output ) )
735
739
  end
@@ -744,7 +748,8 @@ describe '#schema' do
744
748
  @uuid,
745
749
  @time,
746
750
  'en-gb',
747
- fingerprint
751
+ fingerprint,
752
+ @time
748
753
  )
749
754
  ).to( eq( @output ) )
750
755
  end
@@ -6,13 +6,15 @@ describe Hoodoo::Presenters::CommonResourceFields do
6
6
 
7
7
  expect(schema.is_internationalised?()).to eq(false)
8
8
 
9
- expect(schema.properties.count).to eq(7)
9
+ expect(schema.properties.count).to eq(8)
10
10
 
11
11
  expect(schema.properties['id']).to be_a(Hoodoo::Presenters::UUID)
12
12
  expect(schema.properties['id'].required).to eq(true)
13
13
  expect(schema.properties['id'].resource).to be_nil
14
14
  expect(schema.properties['created_at']).to be_a(Hoodoo::Presenters::DateTime)
15
15
  expect(schema.properties['created_at'].required).to eq(true)
16
+ expect(schema.properties['updated_at']).to be_a(Hoodoo::Presenters::DateTime)
17
+ expect(schema.properties['updated_at'].required).to eq(false)
16
18
  expect(schema.properties['kind']).to be_a(Hoodoo::Presenters::Text)
17
19
  expect(schema.properties['kind'].required).to eq(true)
18
20
  expect(schema.properties['language']).to be_a(Hoodoo::Presenters::Text)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoodoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.3
4
+ version: 2.12.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Loyalty New Zealand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-12 00:00:00.000000000 Z
11
+ date: 2019-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack