testingrecord 0.7 → 0.8

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: 163d454cbedadbfb903dcfd141aafe10554fb9aa6b8ef2ff8c5c44abe6d1a7b3
4
- data.tar.gz: bb4fcd7db84017b1032cbf1a362cdddc9fae583b7b71146c6b4019ed7b372288
3
+ metadata.gz: 63ee9271871c1194e05e12d7f4d5d23bc744f703461b8519d45300f180f5432c
4
+ data.tar.gz: 251d286e38df1ed55a6e25f40c615ca7ccc1673c50758ab0bec861eabc354da7
5
5
  SHA512:
6
- metadata.gz: 1cb9024a7d5dd9cda0f15841e955ae45e4caa508d90c13433be6e70fc12aa75b7ec54cd9f9e1bb04b050e4f7e23408558106a18e67cd64403a20da57184e4057
7
- data.tar.gz: 0d479648df51da1455edfa5b2b5c4a749cefc6f68e572fd3e9384a8d21b7e097a5a5e3d4a5ae2a049b8338815b07c4a389defbbdb9e0b710bdfbd3fe64c30fa7
6
+ metadata.gz: 45cc639fbc3e7d7ca82c4d08ad4a867f7ff550a78738de717ca07ae7b3fa5e6bf7b9991f07bc745690eab33db0e2a39a58cb8f1fb61f259567280651941630bb
7
+ data.tar.gz: 68975a0f8c4efbe1ed14aab9e47f0809c6f58377c5f587aa20c5192847869ff15becb145356d06a1a8fd78c1a3257e43ee85184806f91a40ed71eda331ba978c
@@ -14,21 +14,31 @@ module TestingRecord
14
14
  attr_reader :attributes
15
15
 
16
16
  class << self
17
- attr_accessor :current
17
+ attr_reader :current
18
18
 
19
19
  # Creates an instance of the model
20
20
  # -> Creating iVar values for each attribute that was provided
21
21
  # -> Adding it to the cache if caching is enabled
22
+ # -> Keeping a track of all originally supplied attributes in symbolized format in the `attributes` iVar
22
23
  #
23
24
  # @return [TestingRecord::Model]
24
25
  def create(attributes)
25
- new(attributes).tap do |entity|
26
+ new(attributes.transform_keys(&:to_sym)).tap do |entity|
26
27
  configure_data(entity, attributes)
27
28
  add_helpers(attributes) if entity.class.instance_variable_get(:@include_helpers)
28
29
  cache_entity(entity)
29
30
  end
30
31
  end
31
32
 
33
+ def current=(entity)
34
+ if entity
35
+ TestingRecord.logger.info("Switching current user from #{@current} to #{entity}")
36
+ else
37
+ TestingRecord.logger.info("Purging current user: #{@current}")
38
+ end
39
+ @current = entity
40
+ end
41
+
32
42
  # Deletes the instance of the model from the cache (Does nothing if caching is disabled)
33
43
  #
34
44
  # @return [TestingRecord::Model]
@@ -36,6 +46,13 @@ module TestingRecord
36
46
  all.delete(entity) if respond_to?(:all)
37
47
  end
38
48
 
49
+ # Deletes the instance of the model from the cache (Does nothing if caching is disabled)
50
+ #
51
+ # @return [TestingRecord::Model]
52
+ def delete_by_id(id)
53
+ delete(with_id(id)) if respond_to?(:all)
54
+ end
55
+
39
56
  private
40
57
 
41
58
  def cache_entity(entity)
@@ -74,15 +91,15 @@ module TestingRecord
74
91
  end
75
92
 
76
93
  # Updates an entity (instance), of a model
77
- # -> Updating iVar values for each attribute that was provided
94
+ # -> Updating iVar values for each attribute that was provided (Converting to symbolized format)
78
95
  # -> It will **not** create new reader methods for new variables added
79
96
  #
80
97
  # @return [TestingRecord::Model]
81
98
  def update(attrs)
82
- attrs.each do |key, value|
99
+ attrs.transform_keys(&:to_sym).each do |key, value|
83
100
  attributes[key] = value
84
101
  instance_variable_set("@#{key}", value)
85
- TestingRecord.logger.info("Updated '#{key}' on current #{self.class} entity to be '#{value}'")
102
+ TestingRecord.logger.info("Updated '#{key}' on the #{self.class} entity to be '#{value}'")
86
103
  end
87
104
  self
88
105
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TestingRecord
4
- VERSION = '0.7'
4
+ VERSION = '0.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testingrecord
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.7'
4
+ version: '0.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Hill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-03 00:00:00.000000000 Z
11
+ date: 2026-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: automation_helpers
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7'
22
+ version: '8'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7'
32
+ version: '8'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: logger
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -64,28 +64,28 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.85.0
67
+ version: 1.85.1
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: 1.85.0
74
+ version: 1.85.1
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rubocop-performance
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 1.25.0
81
+ version: 1.26.1
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 1.25.0
88
+ version: 1.26.1
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: rubocop-rspec
91
91
  requirement: !ruby/object:Gem::Requirement