hoardable 0.12.2 → 0.12.4

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: eec6cda69bb2bbb1aeec6a0c460881c33abbe1de123ef9178d2c16378374b2bd
4
- data.tar.gz: f3f57007e08f958017483dfffd0275b5b70c0ef1522984ea78da4c595a9e5506
3
+ metadata.gz: 2b940ff00b64dbcac655857a5e95db2b673c078df455c8312573632f1b6dc8ba
4
+ data.tar.gz: e88289a54a746f2be3d4b42d6e33707243a092bfa492cec37c4e2fc7d14a3b9e
5
5
  SHA512:
6
- metadata.gz: 04a13fec8198d4c4fda05b5364a7925755e7f2708004e15a564f243b64836577f4393cb502e7dd7d88ea123df29909ccb36a1d603cae8b2e711958250dc45763
7
- data.tar.gz: 34a59cb91ed643784e4aa6ab88abac2d3e7a59a59945bcdce6e849aa441bc1490a6870c2661f65c31d246e4cb87bb39c4502e6cb8ce05cb3c42a6ad0e56f1140
6
+ metadata.gz: ede35d5b21927f65e6442292d3b2d0a3d36371648dc0419feb29b88e7ca41c3bb7aeb1704149ba4467d0046f52bf5fd5e174791cc619d78441b5297a48a54035
7
+ data.tar.gz: f6d3582dc7980d8ab049f2200406f9465810f744c27605578aaa1769cd69e11c7f677f343cb7755db185e9c90e1f8be701af883288ab5504596c4ffe35cf41d9
@@ -13,6 +13,7 @@ class InstallHoardable < ActiveRecord::Migration[<%= ActiveRecord::Migration.cur
13
13
  END IF;
14
14
  END
15
15
  $$;
16
+
16
17
  CREATE OR REPLACE FUNCTION hoardable_source_set_id() RETURNS trigger
17
18
  LANGUAGE plpgsql AS
18
19
  $$
@@ -31,6 +32,16 @@ class InstallHoardable < ActiveRecord::Migration[<%= ActiveRecord::Migration.cur
31
32
  NEW.hoardable_id = _id;
32
33
  RETURN NEW;
33
34
  END;$$;
35
+
36
+ CREATE OR REPLACE FUNCTION hoardable_prevent_update_id() RETURNS trigger
37
+ LANGUAGE plpgsql AS
38
+ $$BEGIN
39
+ IF NEW.hoardable_id <> OLD.hoardable_id THEN
40
+ RAISE EXCEPTION 'hoardable id cannot be updated';
41
+ END IF;
42
+ RETURN NEW;
43
+ END;$$;
44
+
34
45
  CREATE OR REPLACE FUNCTION hoardable_version_prevent_update() RETURNS trigger
35
46
  LANGUAGE plpgsql AS
36
47
  $$BEGIN
@@ -46,6 +57,7 @@ class InstallHoardable < ActiveRecord::Migration[<%= ActiveRecord::Migration.cur
46
57
  DROP TYPE IF EXISTS hoardable_operation;
47
58
  DROP FUNCTION IF EXISTS hoardable_version_prevent_update();
48
59
  DROP FUNCTION IF EXISTS hoardable_source_set_id();
60
+ DROP FUNCTION IF EXISTS hoardable_prevent_update_id();
49
61
  SQL
50
62
  )
51
63
  end
@@ -21,6 +21,9 @@ class Create<%= class_name.singularize.delete(':') %>Versions < ActiveRecord::Mi
21
21
  CREATE TRIGGER <%= table_name %>_set_hoardable_id
22
22
  BEFORE INSERT ON <%= table_name %> FOR EACH ROW
23
23
  EXECUTE PROCEDURE hoardable_source_set_id();
24
+ CREATE TRIGGER <%= table_name %>_prevent_update_hoardable_id
25
+ BEFORE UPDATE ON <%= table_name %> FOR EACH ROW
26
+ EXECUTE PROCEDURE hoardable_prevent_update_id();
24
27
  SQL
25
28
  )
26
29
  end
@@ -31,16 +34,15 @@ class Create<%= class_name.singularize.delete(':') %>Versions < ActiveRecord::Mi
31
34
  ON <%= singularized_table_name %>_versions;
32
35
  DROP TRIGGER <%= table_name %>_set_hoardable_id
33
36
  ON <%= table_name %>;
37
+ DROP TRIGGER <%= table_name %>_prevent_update_hoardable_id
38
+ ON <%= table_name %>;
34
39
  SQL
35
40
  )
36
41
  end
37
42
  end
38
43
  change_column_null :<%= table_name %>, :hoardable_id, false
39
- add_index(:<%= singularized_table_name %>_versions, :<%= primary_key %>, unique: true)
40
- add_index(
41
- :<%= singularized_table_name %>_versions,
42
- %i[_during hoardable_id],
43
- name: 'idx_<%= singularized_table_name %>_versions_temporally'
44
- )
44
+ add_index :<%= singularized_table_name %>_versions, :<%= primary_key %>, unique: true
45
+ add_index :<%= singularized_table_name %>_versions, :hoardable_id
46
+ add_index :<%= singularized_table_name %>_versions, :_during
45
47
  end
46
48
  end
@@ -14,6 +14,7 @@ module Hoardable
14
14
  end
15
15
  return unless hoardable
16
16
 
17
+ 'ActionText::RichText'.constantize # forces ActionText::RichText to load if it has not
17
18
  reflection_options = reflections["rich_text_#{name}"].options
18
19
  reflection_options[:class_name] = reflection_options[:class_name].sub(/ActionText/, 'Hoardable')
19
20
  end
@@ -46,6 +46,7 @@ module Hoardable
46
46
 
47
47
  included do
48
48
  include Associations
49
+ attr_readonly :hoardable_id
49
50
  define_model_callbacks :versioned, only: :after
50
51
  define_model_callbacks :reverted, only: :after
51
52
  define_model_callbacks :untrashed, only: :after
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hoardable
4
- VERSION = '0.12.2'
4
+ VERSION = '0.12.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hoardable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.12.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - justin talbott
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-11 00:00:00.000000000 Z
11
+ date: 2022-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord