hoardable 0.12.2 → 0.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: 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