iron_trail 0.1.1 → 0.1.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: e0eaa9c2070ae46d7386af196b943c47c495fba0485bc1b1956691e182ad099e
4
- data.tar.gz: 732e39b8d5edba42b54a0f6bc67f6389d89fe1d037930c10dc4dff72a1afeb18
3
+ metadata.gz: eddde7b02bdbba2a0c1aa1c19ee3b94ec7b072b9997efbbe448ca08df57b259a
4
+ data.tar.gz: aef0e076c736ce71b549ce25e92a5e2c4787c98a511ac4cd99c9378947ee26eb
5
5
  SHA512:
6
- metadata.gz: 21577368bee6f5560d27488a4bfbc3cd064bdca3869a8538002838e10f64bcaf6c20f7ec2a0a1ce56d5690b9959adbe780e6b4d7b41e59af1a78f281f1ef413a
7
- data.tar.gz: 7e6b3c94d40059c22aa929efb07f93fdcef8abc1ffc6ef63dfe10c7d862c31d39880cc1175ad953231675bb2dd644e23d7a0b2ba1e426544af330309c77e26bb
6
+ metadata.gz: 8c44cfbb096061ab84e56d0185fd8f70cd499e8be74719dbbbce8e2c9dd19b87280a7781ab40efde0b3cd982ae9bfd3b789701fd4763d334d8f839fbfd199671
7
+ data.tar.gz: b63a94044f453db750308883742d359871dc5598df6c83d6be91731d82c0087d29f66955aa09f57131611f38efce48c8c8e940ab7ea0b3a295017e4ed9c98222
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module IronTrail
4
+ class Current < ActiveSupport::CurrentAttributes
5
+ attribute :metadata
6
+
7
+ def self.store_metadata(key, value)
8
+ self.metadata ||= {}
9
+ self.metadata[key] = value
10
+ end
11
+
12
+ def self.merge_metadata(keys, merge_hash)
13
+ self.metadata ||= {}
14
+ base = self.metadata
15
+ keys.each do |key|
16
+ if base.key?(key)
17
+ base = base[key]
18
+ else
19
+ h = {}
20
+ base[key] = h
21
+ base = h
22
+ end
23
+ end
24
+ base.merge!(merge_hash)
25
+ end
26
+ end
27
+ end
@@ -36,7 +36,9 @@ BEGIN
36
36
  IF (TG_OP = 'INSERT' AND new_obj ? 'created_at') THEN
37
37
  created_at = NEW.created_at;
38
38
  ELSIF (TG_OP = 'UPDATE' AND new_obj ? 'updated_at') THEN
39
- created_at = NEW.updated_at;
39
+ IF (NEW.updated_at <> OLD.updated_at) THEN
40
+ created_at = NEW.updated_at;
41
+ END IF;
40
42
  END IF;
41
43
 
42
44
  IF (created_at IS NULL) THEN
@@ -18,7 +18,7 @@ module IronTrail
18
18
 
19
19
  def create_query_transformer_proc
20
20
  proc do |query, adapter|
21
- current_metadata = IronTrail.current_metadata
21
+ current_metadata = IronTrail::Current.metadata
22
22
  next query unless adapter.write_query?(query) && (current_metadata.is_a?(Hash) && !current_metadata.empty?)
23
23
 
24
24
  metadata = JSON.dump(current_metadata)
@@ -1,5 +1,5 @@
1
1
  # frozen_literal_string: true
2
2
 
3
3
  module IronTrail
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.3'
5
5
  end
data/lib/iron_trail.rb CHANGED
@@ -3,14 +3,13 @@
3
3
  require 'singleton'
4
4
  require 'json'
5
5
  require 'forwardable'
6
- require 'request_store'
7
6
 
8
7
  require 'iron_trail/version'
9
8
  require 'iron_trail/config'
10
9
  require 'iron_trail/db_functions'
11
10
  require 'iron_trail/migration'
12
11
 
13
- require 'iron_trail/metadata_store'
12
+ require 'iron_trail/current'
14
13
  require 'iron_trail/query_transformer'
15
14
 
16
15
  require 'iron_trail/association'
@@ -73,16 +72,9 @@ module IronTrail
73
72
  @query_transformer.setup_active_record
74
73
  end
75
74
 
76
- def store_instance
77
- @store_instance ||= MetadataStore.new
78
- end
79
-
80
- def_delegators :store_instance,
75
+ def_delegators ::IronTrail::Current,
81
76
  :store_metadata,
82
- :merge_metadata,
83
- :current_metadata
84
-
85
-
77
+ :merge_metadata
86
78
  end
87
79
  end
88
80
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_trail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Diego Piske
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-04 00:00:00.000000000 Z
10
+ date: 2025-02-12 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: rails
@@ -23,20 +23,6 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '7.1'
26
- - !ruby/object:Gem::Dependency
27
- name: request_store
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - "~>"
31
- - !ruby/object:Gem::Version
32
- version: '1.5'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.5'
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: appraisal
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -136,9 +122,9 @@ files:
136
122
  - lib/iron_trail/change_model_concern.rb
137
123
  - lib/iron_trail/collection_proxy_mixin.rb
138
124
  - lib/iron_trail/config.rb
125
+ - lib/iron_trail/current.rb
139
126
  - lib/iron_trail/db_functions.rb
140
127
  - lib/iron_trail/irontrail_log_row_function.sql
141
- - lib/iron_trail/metadata_store.rb
142
128
  - lib/iron_trail/migration.rb
143
129
  - lib/iron_trail/model.rb
144
130
  - lib/iron_trail/query_transformer.rb
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module IronTrail
4
- class MetadataStore
5
- def store_metadata(key, value)
6
- RequestStore.store[:irontrail_metadata] ||= {}
7
- RequestStore.store[:irontrail_metadata][key] = value
8
- end
9
-
10
- def merge_metadata(keys, merge_hash)
11
- RequestStore.store[:irontrail_metadata] ||= {}
12
- base = RequestStore.store[:irontrail_metadata]
13
- keys.each do |key|
14
- if base.key?(key)
15
- base = base[key]
16
- else
17
- h = {}
18
- base[key] = h
19
- base = h
20
- end
21
- end
22
- base.merge!(merge_hash)
23
- end
24
-
25
- def current_metadata
26
- RequestStore.store[:irontrail_metadata]
27
- end
28
- end
29
- end