trackstamps-reborn 0.0.3 → 0.0.5

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: fadfa370c842bc476bfa043e9fbf39403f63670a04688cfec1dbf71fa6e08aa6
4
- data.tar.gz: 75b0cdeb8330a0532c44abc9666c2636786481934d4aba58d99784d004e99269
3
+ metadata.gz: 47b8037687df6e16b2ca5d66a07c2d3da27c7146c36718356c62ad428458de8e
4
+ data.tar.gz: 7261748050c07bc01c95cdc57811781b4e6a05292c14145771a5b1052258e37d
5
5
  SHA512:
6
- metadata.gz: 18b286fe9b6431c629ba07bd8c324ad4d8e25405968d6ee411e984a05abff1580f0e7786b1f9bc98d700f00a8e3809691c760921081ad85550640f62f28350c8
7
- data.tar.gz: c360f942e6dafa16d5b592ddafccfe02646b24b1a0363cd0b1e320ba0d47e99872840b97508d6de6ab71d25aaca945d2d1de3d169500449dd5e0ac4d89f8127f
6
+ metadata.gz: edc4eb2e953309e523126fbeae51c27034e1910ce9c0e328e5d6ab79cd42b326e2744ba263e49fb0281de5d13eb23231a04504b5f264e43b12861b354c90def4
7
+ data.tar.gz: 91c1210eebecb2174ebdf864a914217b845675f2702242be116d58306c5d14709d6110281c96eb1fa1ebe4198a81944e14bcdefa812f1c2f02c7565e2e92f830
data/README.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  Track which user created or updated record in Rails.
8
8
 
9
+ Inspired and part of code used from original [Trackstamps](https://github.com/mshahzadtariq/trackstamps) gem
10
+
9
11
  ---
10
12
 
11
13
  - [Quick start](#quick-start)
@@ -32,6 +34,12 @@ class ApplicationController < ActionController::Base
32
34
  end
33
35
  ```
34
36
 
37
+ ### Override implementation for current user
38
+
39
+ ```ruby
40
+ Trackstamps::Reborn.config.get_current_user = -> { YourCurrentAttributesClass.account }
41
+ ```
42
+
35
43
  ### Generate migrations
36
44
  ```
37
45
  rails generate trackstamps:reborn:migration table_name
@@ -1,5 +1,5 @@
1
1
  module Trackstamps
2
2
  module Reborn
3
- VERSION = "0.0.3".freeze
3
+ VERSION = "0.0.5".freeze
4
4
  end
5
5
  end
@@ -1,35 +1,47 @@
1
1
  require 'trackstamps/reborn/current'
2
2
  require 'active_support/current_attributes'
3
3
  require 'active_support/concern'
4
+ require 'dry-configurable'
4
5
 
5
6
  module Trackstamps
6
7
  module Reborn
8
+ extend Dry::Configurable
7
9
  extend ActiveSupport::Concern
8
10
  autoload :VERSION, "trackstamps/reborn/version"
9
11
 
12
+ setting :get_current_user, default: -> { Trackstamps::Reborn::Current.user }
13
+
14
+ setting :user_class_name, default: 'User'.freeze
15
+ setting :updater_foreign_key, default: 'updated_by_id'.freeze
16
+ setting :creator_foreign_key, default: 'created_by_id'.freeze
17
+
10
18
  def trackstamps_current_user
11
- Current.user
19
+ Trackstamps::Reborn.config.get_current_user.call
12
20
  end
13
21
 
14
- TRACKSTAMPS_USER_CLASS_NAME = 'User'
15
- TRACKSTAMPS_UPDATER_FOREIGN_KEY = 'updated_by_id'
16
- TRACKSTAMPS_CREATOR_FOREIGN_KEY = 'created_by_id'
17
-
18
22
  included do
19
23
  before_save :trackstamps_set_updater
20
24
  before_create :trackstamps_set_creator
21
25
 
22
- belongs_to :updater, class_name: TRACKSTAMPS_USER_CLASS_NAME, foreign_key: TRACKSTAMPS_UPDATER_FOREIGN_KEY, optional: true
23
- belongs_to :creator, class_name: TRACKSTAMPS_USER_CLASS_NAME, foreign_key: TRACKSTAMPS_CREATOR_FOREIGN_KEY, optional: true
26
+ belongs_to :updater,
27
+ class_name: Trackstamps::Reborn.config.user_class_name,
28
+ foreign_key: Trackstamps::Reborn.config.updater_foreign_key,
29
+ optional: true
30
+ belongs_to :creator,
31
+ class_name: Trackstamps::Reborn.config.user_class_name,
32
+ foreign_key: Trackstamps::Reborn.config.creator_foreign_key,
33
+ optional: true
24
34
 
25
35
  def trackstamps_set_updater
26
36
  return unless trackstamps_current_user
27
- self.send("#{TRACKSTAMPS_UPDATER_FOREIGN_KEY}=", trackstamps_current_user.id)
37
+
38
+ send("#{Trackstamps::Reborn.config.updater_foreign_key}=", trackstamps_current_user.id)
28
39
  end
29
40
 
30
41
  def trackstamps_set_creator
31
42
  return unless trackstamps_current_user
32
- self.send("#{TRACKSTAMPS_CREATOR_FOREIGN_KEY}=", trackstamps_current_user.id)
43
+
44
+ send("#{Trackstamps::Reborn.config.creator_foreign_key}=", trackstamps_current_user.id)
33
45
  end
34
46
  end
35
47
  end
metadata CHANGED
@@ -1,29 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackstamps-reborn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dušan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-17 00:00:00.000000000 Z
11
+ date: 2022-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
33
+ - !ruby/object:Gem::Dependency
34
+ name: dry-configurable
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
27
47
  description:
28
48
  email:
29
49
  - dusan.uveric@mitigate.dev
@@ -55,14 +75,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
75
  requirements:
56
76
  - - ">="
57
77
  - !ruby/object:Gem::Version
58
- version: '2.6'
78
+ version: 2.7.0
59
79
  required_rubygems_version: !ruby/object:Gem::Requirement
60
80
  requirements:
61
81
  - - ">="
62
82
  - !ruby/object:Gem::Version
63
83
  version: '0'
64
84
  requirements: []
65
- rubygems_version: 3.3.7
85
+ rubygems_version: 3.3.23
66
86
  signing_key:
67
87
  specification_version: 4
68
88
  summary: ''