linked_rails 0.0.4.pre.g92825d924 → 0.0.4.pre.g7123943aa

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: 2dfbd0d96709d5036bcfcb422c88bf39e1c8c006ae4a4e5d6c8dfabc7d45cbb7
4
- data.tar.gz: b5629f658ccf27bcd7ca9605d001668f55df2d5b311ce170a20c68a7cc895057
3
+ metadata.gz: 24aa1f95dca21df7152b6be6499f57d84a5fe37ac3944a0275b55d382a02f662
4
+ data.tar.gz: 1cfe8deb84e11ec8ec5fa0f2b088a60fe3078f8abe07c2c12fb0fd0e210bed9c
5
5
  SHA512:
6
- metadata.gz: bd523b32c77f3836257b1821b0a70fe4fcd9e6ab75bf39366501e75104aed3fe92ab9a690468051aacdace53ae5b79182642d3a55147da0d409f107fa47e1e7f
7
- data.tar.gz: 220bac95f7fc0f3ca454e4dc7e6ca9953afc60e0e8230c497c22a8751cdc78a1c654760fa57908f2b4c716b382e308a371f104b8b48db027d081f4e1db3e8f3b
6
+ metadata.gz: 668e32f354c65baeafd91e3e4f5521bcef0c9b9194389afca075e0eb0b078e248e6ec3206df63799e0dbce29f7425e9b6c654e2847bfdba5f6a052476175868f
7
+ data.tar.gz: 75835d167f14a03c94f24bf56fe8c13021ae2250b152637847cf0df295ddda9de827c0ae9a586ec6b1ac7fc8c2e7a62655e1bf00c1907a067a906a2e835b3f00
@@ -161,13 +161,17 @@ module LinkedRails
161
161
 
162
162
  resource_response(
163
163
  iri,
164
- body: include && status == 200 ? resource_body(resource) : nil,
164
+ body: response_from_resource_body(include, iri, resource, status),
165
165
  cache: resource_cache_control(resource.try(:cacheable?), status, resource_policy),
166
166
  language: I18n.locale,
167
167
  status: status
168
168
  )
169
169
  end
170
170
 
171
+ def response_from_resource_body(include, _iri, resource, status)
172
+ include && status == 200 ? resource_body(resource) : nil
173
+ end
174
+
171
175
  def term_from_vocab(iri)
172
176
  vocab = Vocab.for(iri)
173
177
  tag = iri.to_s.split(vocab.to_s).last
@@ -9,9 +9,7 @@ module LinkedRails
9
9
  Storage.hset(
10
10
  :persistent,
11
11
  :manifest,
12
- {
13
- LinkedRails.iri.to_s => web_manifest.to_json
14
- }
12
+ URL.as_href(LinkedRails.iri) => web_manifest.to_json
15
13
  )
16
14
  end
17
15
 
@@ -163,13 +161,19 @@ module LinkedRails
163
161
 
164
162
  class << self
165
163
  def destroy(iri)
166
- Storage.hdel(:persistent, :manifest, iri)
164
+ Storage.hdel(:persistent, :manifest, URL.as_href(iri))
167
165
  end
168
166
 
169
167
  def move(from, to)
170
- data = Storage.hget(:persistent, :manifest, from)
168
+ Storage.hset(
169
+ :persistent,
170
+ :redirect_prefix,
171
+ URL.as_href(from) => URL.as_href(to)
172
+ )
171
173
 
172
- Storage.hset(:persistent, :manifest, to, data) if data
174
+ data = Storage.hget(:persistent, :manifest, URL.as_href(from))
175
+
176
+ Storage.hset(:persistent, :manifest, URL.as_href(to), data) if data
173
177
 
174
178
  destroy(from)
175
179
  end
@@ -8,7 +8,7 @@ module LinkedRails
8
8
  resource: iri,
9
9
  resourceType: resource_type
10
10
  }
11
- id = Storage.xadd(:stream, entry)
11
+ id = Storage.xadd(:stream, LinkedRails.cache_stream, entry)
12
12
 
13
13
  raise('No message id returned, implies failure') if id.blank?
14
14
  end
@@ -17,8 +17,6 @@ module LinkedRails
17
17
  true
18
18
  end
19
19
 
20
- private
21
-
22
20
  def publish_create
23
21
  publish_message('io.ontola.transactions.Created')
24
22
  end
@@ -31,14 +29,14 @@ module LinkedRails
31
29
  publish_message('io.ontola.transactions.Deleted')
32
30
  end
33
31
 
32
+ private
33
+
34
34
  def publish_message(type)
35
35
  LinkedRails::InvalidationStreamWorker.perform_now(type, iri.to_s, self.class.iri.to_s)
36
36
  rescue StandardError
37
37
  LinkedRails::InvalidationStreamWorker.perform_later(type, iri.to_s, self.class.iri.to_s)
38
38
  end
39
39
 
40
- private
41
-
42
40
  def should_publish_changes
43
41
  cacheable? && !Rails.env.test?
44
42
  end
@@ -4,26 +4,27 @@ require 'redis'
4
4
 
5
5
  module LinkedRails
6
6
  class Storage
7
- CLIENT = {
8
- cache: Redis.new(db: LinkedRails.cache_redis_database),
9
- persistent: Redis.new(db: LinkedRails.persistent_redis_database),
10
- stream: Redis.new(db: LinkedRails.stream_redis_database)
7
+ REDIS_DB = {
8
+ cache: LinkedRails.cache_redis_database,
9
+ persistent: LinkedRails.persistent_redis_database,
10
+ stream: LinkedRails.stream_redis_database
11
11
  }.freeze
12
12
  KEYS = {
13
13
  manifest: 'cache:Manifest',
14
- redirect: 'cache:Redirect'
14
+ redirect_exact: 'cache:Redirect:Exact',
15
+ redirect_prefix: 'cache:Redirect:Prefix'
15
16
  }.freeze
16
17
 
17
18
  class << self
18
19
  %i[xadd].each do |method|
19
20
  define_method(method) do |db, *args|
20
- CLIENT.fetch(db).send(method, *args)
21
+ Redis.new(db: REDIS_DB.fetch(db)).send(method, *args)
21
22
  end
22
23
  end
23
24
 
24
25
  %i[hset hdel hget].each do |method|
25
26
  define_method(method) do |db, key, *args|
26
- CLIENT.fetch(db).send(method, KEYS.fetch(key), *args)
27
+ Redis.new(db: REDIS_DB.fetch(db)).send(method, KEYS.fetch(key), *args)
27
28
  end
28
29
  end
29
30
  end
@@ -0,0 +1,11 @@
1
+ module LinkedRails
2
+ class URL
3
+ class << self
4
+ def as_href(url)
5
+ uri = URI(url)
6
+ uri.path = uri.path.presence || '/'
7
+ uri.to_s
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/linked_rails.rb CHANGED
@@ -106,4 +106,5 @@ require 'linked_rails/routes'
106
106
  require 'linked_rails/serializer'
107
107
  require 'linked_rails/translate'
108
108
  require 'linked_rails/railtie'
109
+ require 'linked_rails/url'
109
110
  require 'linked_rails/storage'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linked_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.pre.g92825d924
4
+ version: 0.0.4.pre.g7123943aa
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arthur Dingemans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-09 00:00:00.000000000 Z
11
+ date: 2022-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_response
@@ -429,6 +429,7 @@ files:
429
429
  - lib/linked_rails/translate.rb
430
430
  - lib/linked_rails/types/iri_type.rb
431
431
  - lib/linked_rails/uri_template.rb
432
+ - lib/linked_rails/url.rb
432
433
  - lib/linked_rails/version.rb
433
434
  - lib/linked_rails/vocab.rb
434
435
  - lib/nill_class_renderer.rb