testingrecord 0.6 → 0.7

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: 544af1645ff65521c916a5ab879ad49711e9ef0aa18e58360ebc175672fc22bc
4
- data.tar.gz: 139ed45cbfdc8f24cd77a88538a46962457b7c3c78e94142e501633d8ce603a9
3
+ metadata.gz: 163d454cbedadbfb903dcfd141aafe10554fb9aa6b8ef2ff8c5c44abe6d1a7b3
4
+ data.tar.gz: bb4fcd7db84017b1032cbf1a362cdddc9fae583b7b71146c6b4019ed7b372288
5
5
  SHA512:
6
- metadata.gz: f0f8a9a6b9a1ec1d238038ee9bd3fcae8441d4488e1328fb8bf1693015ff309613a8ffdfb70c0bf12dc2189f1aaa9f5c83ea1cc7231bdf5e2dc63641cb865d94
7
- data.tar.gz: cf54b5e657d77a034e631a4b1c5bb35cd21fe88f7281c26b317f0f832b26b8dedee3b5b1015fd5f453afb33a5479736c6722fba3d703fd36dbd77c98406618b9
6
+ metadata.gz: 1cb9024a7d5dd9cda0f15841e955ae45e4caa508d90c13433be6e70fc12aa75b7ec54cd9f9e1bb04b050e4f7e23408558106a18e67cd64403a20da57184e4057
7
+ data.tar.gz: 0d479648df51da1455edfa5b2b5c4a749cefc6f68e572fd3e9384a8d21b7e097a5a5e3d4a5ae2a049b8338815b07c4a389defbbdb9e0b710bdfbd3fe64c30fa7
@@ -6,17 +6,20 @@ module TestingRecord
6
6
  # [TestingRecord::DSL::Builder::Helpers]
7
7
  # Ways in which we can build in extra helper methods from building requests
8
8
  module Helpers
9
- # Method to add all helpers - Should be called last in the DSL invocations in the class definition
10
- #
11
- # @return [Array]
12
- def add_helpers
13
- attributes.each do |attribute|
14
- add_presence_helper(attribute)
15
- end
9
+ # DSL signature to add all helpers - Should be procedurally called in the class definition
10
+ def include_helpers
11
+ @include_helpers = true
16
12
  end
17
13
 
18
14
  private
19
15
 
16
+ # Top level wrapper method that will incrementally add each helper (Currently only one)
17
+ def add_helpers(attributes)
18
+ attributes.each_key do |attribute|
19
+ add_presence_helper(attribute)
20
+ end
21
+ end
22
+
20
23
  # Add the boolean helper which will perform a check to determine whether...
21
24
  # For singular / default categorisations, this checks if one has been set over the default empty value
22
25
  # For plural attributes whether the array has any values
@@ -12,19 +12,6 @@ module TestingRecord
12
12
 
13
13
  attr_reader :__primary_key
14
14
 
15
- # Sets an attribute on the model
16
- #
17
- # @return [Array<Symbol>]
18
- def attribute(name)
19
- attr_reader name
20
-
21
- attributes << name
22
- end
23
-
24
- def attributes
25
- @attributes ||= []
26
- end
27
-
28
15
  # Create a cache of the entities, named according to the classname
29
16
  #
30
17
  # @return [Symbol]
@@ -21,18 +21,11 @@ module TestingRecord
21
21
  # -> Adding it to the cache if caching is enabled
22
22
  #
23
23
  # @return [TestingRecord::Model]
24
- def create(attributes = self.attributes)
24
+ def create(attributes)
25
25
  new(attributes).tap do |entity|
26
- attributes.each do |attribute_key, attribute_value|
27
- entity.instance_variable_set("@#{attribute_key}", attribute_value)
28
- entity.class.attr_reader attribute_key
29
- end
30
-
31
- break entity unless respond_to?(:all)
32
-
33
- self.current = entity
34
- all << entity
35
- TestingRecord.logger.debug("Entity: #{entity} added to cache")
26
+ configure_data(entity, attributes)
27
+ add_helpers(attributes) if entity.class.instance_variable_get(:@include_helpers)
28
+ cache_entity(entity)
36
29
  end
37
30
  end
38
31
 
@@ -42,6 +35,23 @@ module TestingRecord
42
35
  def delete(entity)
43
36
  all.delete(entity) if respond_to?(:all)
44
37
  end
38
+
39
+ private
40
+
41
+ def cache_entity(entity)
42
+ return unless respond_to?(:all)
43
+
44
+ self.current = entity
45
+ all << entity
46
+ TestingRecord.logger.debug("Entity: #{entity} added to cache")
47
+ end
48
+
49
+ def configure_data(entity, attributes)
50
+ attributes.each do |attribute_key, attribute_value|
51
+ entity.instance_variable_set("@#{attribute_key}", attribute_value)
52
+ entity.class.attr_reader attribute_key
53
+ end
54
+ end
45
55
  end
46
56
 
47
57
  def initialize(attributes = {})
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TestingRecord
4
- VERSION = '0.6'
4
+ VERSION = '0.7'
5
5
  end
@@ -32,5 +32,23 @@ module TestingRecord
32
32
  def log_path=(logdev)
33
33
  logger.reopen(logdev)
34
34
  end
35
+
36
+ # To enable full logging (This uses the Ruby API, so can accept any of a
37
+ # Symbol / String / Integer as an input
38
+ # TestingRecord.log_level = :DEBUG
39
+ # TestingRecord.log_level = 'DEBUG'
40
+ # TestingRecord.log_level = 0
41
+ #
42
+ # To disable all logging
43
+ # TestingRecord.log_level = :UNKNOWN
44
+ def log_level=(value)
45
+ logger.level = value
46
+ end
47
+
48
+ # To query what level is being logged
49
+ # TestingRecord.log_level # => :DEBUG # By default
50
+ def log_level
51
+ %i[DEBUG INFO WARN ERROR FATAL UNKNOWN][logger.level]
52
+ end
35
53
  end
36
54
  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.6'
4
+ version: '0.7'
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-02-09 00:00:00.000000000 Z
11
+ date: 2026-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: automation_helpers
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 1.84.0
67
+ version: 1.85.0
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.84.0
74
+ version: 1.85.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rubocop-performance
77
77
  requirement: !ruby/object:Gem::Requirement