tdc 1.2 → 1.4

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -4
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +18 -0
  5. data/Gemfile +12 -0
  6. data/gemfiles/rails_7_2.gemfile +12 -0
  7. data/gemfiles/rails_8_0.gemfile +12 -0
  8. data/lib/tdc/data_definition.rb +2 -0
  9. data/lib/tdc/data_definition_file_reader.rb +2 -0
  10. data/lib/tdc/definition_resolvers/definition_resolver.rb +13 -1
  11. data/lib/tdc/definition_resolvers/tag_resolver.rb +2 -0
  12. data/lib/tdc/definition_resolvers.rb +2 -0
  13. data/lib/tdc/extended_attributes/default_interpreter.rb +4 -2
  14. data/lib/tdc/extended_attributes/interpreter_base.rb +2 -0
  15. data/lib/tdc/extended_attributes/interpreter_registry.rb +2 -0
  16. data/lib/tdc/extended_attributes.rb +2 -0
  17. data/lib/tdc/fatal_error.rb +2 -0
  18. data/lib/tdc/generators/catalog_entries.rb +2 -0
  19. data/lib/tdc/generators/definition_resolvable.rb +3 -0
  20. data/lib/tdc/generators/definition_sourcable.rb +2 -0
  21. data/lib/tdc/generators/generation_context.rb +14 -0
  22. data/lib/tdc/generators/generator_base.rb +2 -0
  23. data/lib/tdc/generators/standard_generator.rb +32 -1
  24. data/lib/tdc/generators.rb +2 -0
  25. data/lib/tdc/in_memory_data_definition.rb +2 -0
  26. data/lib/tdc/missing_override_error.rb +2 -0
  27. data/lib/tdc/version.rb +3 -1
  28. data/lib/tdc/with_indifferent_access_decorator.rb +2 -0
  29. data/lib/tdc/yaml_readers/null_yaml_reader.rb +2 -0
  30. data/lib/tdc/yaml_readers/yaml_reader.rb +2 -0
  31. data/lib/tdc/yaml_readers/yaml_reader_base.rb +4 -2
  32. data/lib/tdc/yaml_readers/yaml_reader_factory.rb +2 -0
  33. data/lib/tdc/yaml_readers/yaml_reader_with_expansion.rb +2 -0
  34. data/lib/tdc/yaml_readers.rb +2 -0
  35. data/lib/tdc.rb +2 -0
  36. data/tdc.gemspec +4 -11
  37. metadata +12 -128
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50ad351391fe24e0f4edac9aab8c3c168bd1663fc573453106f0dd705be52f6f
4
- data.tar.gz: 4818a7bae4a7a81bd03e76c24af0f6fb70ab43cd38a9a4e3ccb6aa12d9b338a3
3
+ metadata.gz: 96f4dcb68a0b66da5d24ceb550ea17484044c4489dbc898f72b76529287b9d8a
4
+ data.tar.gz: b56e406533429d735cce8c26c338b111c66965d8341cd744d672d9ff8bc642d1
5
5
  SHA512:
6
- metadata.gz: 5ed0d723f97ce97cb41c1f0158753212352167d1f0dae4c1a231fb588d68035dc3bb1a4d4f3d7a3d9c24f87bb60be6dedb22180672cca64c4be21d98396c1d9c
7
- data.tar.gz: bf8dbccc23d5f42fb6ba6818e938b62309aad5a9c3683d55f7aeb831d32fb3ca2d928100336b737aba373e506b572d038da65906805c41394fa0ed980f07c4f2
6
+ metadata.gz: cb7c52792c80baac6651a2fa434cebd9a1331cd00a41350f34409d7d083dbf21aaf40717006ed72012be7b2cd07055eca0b0bf5784d0431efb52bc7b4b5cdd70
7
+ data.tar.gz: 6e761091a8cb869f160d28e652563fa88c8b5de959fef37f4f2a60aaadbfc9e4beae1323aa851c714422de05f73888c6730ec86079a50ee1e44bc8e9d883b3a1
data/.rubocop.yml CHANGED
@@ -1,11 +1,12 @@
1
- require:
1
+ plugins:
2
2
  - rubocop-performance
3
3
  - rubocop-rake
4
4
  - rubocop-rspec
5
5
 
6
6
  AllCops:
7
7
  NewCops: enable
8
- TargetRubyVersion: 3.1
8
+ SuggestExtensions: false
9
+ TargetRubyVersion: 3.3
9
10
 
10
11
  Exclude:
11
12
  - 'bin/**/*'
@@ -80,9 +81,13 @@ Style/DocumentDynamicEvalDefinition:
80
81
  Style/EmptyMethod:
81
82
  EnforcedStyle: expanded
82
83
 
83
- # We can ignore this small performance improvement.
84
84
  Style/FrozenStringLiteralComment:
85
- Enabled: false
85
+ Enabled: true
86
+ Exclude:
87
+ - 'Appraisals'
88
+ - 'Gemfile'
89
+ - 'Rakefile'
90
+ - 'gemfiles/*.gemfile'
86
91
 
87
92
  # We like to use the hash rocket in rake files.
88
93
  Style/HashSyntax:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.6
1
+ 3.4.7
data/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.4] - 2026-04-04
10
+
11
+ #### New Features
12
+
13
+ - Update-or-create support in `StandardGenerator`: when an extension row's tag matches a previously created
14
+ record, the generator routes to `update_instance` instead of `generate_instance`
15
+ - `GenerationContext` tracks updating state via `with_updating` / `updating?`
16
+ - `DefinitionResolver` exposes `updating?` via generation context so subclass resolvers can skip missing keys
17
+ when updating
18
+
19
+ ## [1.3] - 2025-10-25
20
+
21
+ - Support Ruby 3.4
22
+
23
+ #### Breaking Changes
24
+
25
+ - Drop support for Ruby 3.2
26
+
9
27
  ## [1.2] - 2025-10-07
10
28
 
11
29
  - Support Rails 8.0.x
data/Gemfile CHANGED
@@ -2,3 +2,15 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in tdc.gemspec
4
4
  gemspec
5
+
6
+ group :development, :test do
7
+ gem "appraisal", "~> 2.5"
8
+ gem "rake", "~> 13.2"
9
+ gem "rspec", "~> 3.13"
10
+ gem "rubocop", "~> 1.69"
11
+ gem "rubocop-performance", "~> 1.23"
12
+ gem "rubocop-rake", "~> 0.6"
13
+ gem "rubocop-rspec", "~> 3.3"
14
+ gem "rubycritic", "~> 4.9"
15
+ gem "simplecov", "~> 0.22"
16
+ end
@@ -4,4 +4,16 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "7.2.2.1"
6
6
 
7
+ group :development, :test do
8
+ gem "appraisal", "~> 2.5"
9
+ gem "rake", "~> 13.2"
10
+ gem "rspec", "~> 3.13"
11
+ gem "rubocop", "~> 1.69"
12
+ gem "rubocop-performance", "~> 1.23"
13
+ gem "rubocop-rake", "~> 0.6"
14
+ gem "rubocop-rspec", "~> 3.3"
15
+ gem "rubycritic", "~> 4.9"
16
+ gem "simplecov", "~> 0.22"
17
+ end
18
+
7
19
  gemspec path: "../"
@@ -4,4 +4,16 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "rails", "8.0.3"
6
6
 
7
+ group :development, :test do
8
+ gem "appraisal", "~> 2.5"
9
+ gem "rake", "~> 13.2"
10
+ gem "rspec", "~> 3.13"
11
+ gem "rubocop", "~> 1.69"
12
+ gem "rubocop-performance", "~> 1.23"
13
+ gem "rubocop-rake", "~> 0.6"
14
+ gem "rubocop-rspec", "~> 3.3"
15
+ gem "rubycritic", "~> 4.9"
16
+ gem "simplecov", "~> 0.22"
17
+ end
18
+
7
19
  gemspec path: "../"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Knows how to read data definitions from the specified path elements.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Knows how to read data definitions from YAML files.
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module DefinitionResolvers
3
5
  #
4
6
  # Base class for any definition resolver.
5
7
  #
6
8
  class DefinitionResolver
7
- attr_reader :current_catalog
9
+ attr_reader :current_catalog, :generation_context
8
10
 
9
11
  def configure_current_catalog(current_catalog)
10
12
  @current_catalog = current_catalog
@@ -12,6 +14,16 @@ module Tdc
12
14
  self
13
15
  end
14
16
 
17
+ def configure_generation_context(generation_context)
18
+ @generation_context = generation_context
19
+
20
+ self
21
+ end
22
+
23
+ def updating?
24
+ generation_context&.updating? == true
25
+ end
26
+
15
27
  def resolve(_instance_definition)
16
28
  raise Tdc::MissingOverrideError, "Implement the 'resolve' method"
17
29
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module DefinitionResolvers
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Namespace to host definition resolvers.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module ExtendedAttributes
3
5
  #
@@ -6,6 +8,8 @@ module Tdc
6
8
  # Note: extended attribute keys are expected to be strings rather than symbols.
7
9
  #
8
10
  class DefaultInterpreter < Tdc::ExtendedAttributes::InterpreterBase
11
+ EXTENDED_ATTRIBUTE_SUFFIX = "_xa"
12
+
9
13
  def interpret(instance_definition)
10
14
  extended_attribute_definitions = keep_extended_attributes(instance_definition)
11
15
 
@@ -27,8 +31,6 @@ module Tdc
27
31
 
28
32
  private
29
33
 
30
- EXTENDED_ATTRIBUTE_SUFFIX = "_xa"
31
-
32
34
  def convert_to_standard_attribute(extended_attribute_key)
33
35
  extended_attribute_key.delete_suffix(EXTENDED_ATTRIBUTE_SUFFIX)
34
36
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module ExtendedAttributes
3
5
  class InterpreterBase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module ExtendedAttributes
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Namespace to host extended attributes.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  class FatalError < RuntimeError
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -40,6 +42,7 @@ module Tdc
40
42
  def run_definition_resolvers(instance_definition)
41
43
  _definition_resolvers.each do |definition_resolver|
42
44
  definition_resolver.configure_current_catalog(current_catalog)
45
+ definition_resolver.configure_generation_context(generation_context)
43
46
 
44
47
  definition_resolver.resolve(instance_definition)
45
48
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -9,6 +11,18 @@ module Tdc
9
11
  def initialize(current_catalog:, data_definition:)
10
12
  @current_catalog = current_catalog
11
13
  @data_definition = data_definition
14
+ @updating = false
15
+ end
16
+
17
+ def updating?
18
+ @updating
19
+ end
20
+
21
+ def with_updating
22
+ @updating = true
23
+ yield
24
+ ensure
25
+ @updating = false
12
26
  end
13
27
  end
14
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module Generators
3
5
  #
@@ -18,7 +20,13 @@ module Tdc
18
20
  # Delete the tag so that the models do not need to filter it out.
19
21
  tag = instance_definition.delete("tag")
20
22
 
21
- generated = run_resolvers_and_generate_instance
23
+ existing_record = find_existing_record(tag, catalog_entries)
24
+
25
+ if existing_record
26
+ generated = run_resolvers_and_update_instance(existing_record)
27
+ else
28
+ generated = run_resolvers_and_generate_instance
29
+ end
22
30
 
23
31
  # Add generated instance to the catalog entries whenever a tag provided.
24
32
  catalog_entries.add_catalog_entry(tag, generated) if tag
@@ -33,6 +41,15 @@ module Tdc
33
41
  generate_instance
34
42
  end
35
43
 
44
+ def run_resolvers_and_update_instance(existing_record)
45
+ generation_context.with_updating do
46
+ run_extended_attribute_interpreters(instance_definition)
47
+ run_definition_resolvers(instance_definition)
48
+
49
+ update_instance(existing_record)
50
+ end
51
+ end
52
+
36
53
  #
37
54
  # Hook method: subclasses are expected to define how to generate a model instance.
38
55
  #
@@ -40,6 +57,14 @@ module Tdc
40
57
  raise Tdc::MissingOverrideError, "Implement the 'generate_instance' method"
41
58
  end
42
59
 
60
+ #
61
+ # Hook method: subclasses may override to customize update behavior for existing records.
62
+ #
63
+ def update_instance(existing_record)
64
+ existing_record.update!(instance_definition)
65
+ existing_record
66
+ end
67
+
43
68
  #
44
69
  # Hook method: subclasses may include the DefinitionResolvable concern to override.
45
70
  #
@@ -49,6 +74,12 @@ module Tdc
49
74
 
50
75
  private
51
76
 
77
+ def find_existing_record(tag, catalog_entries)
78
+ return unless tag
79
+
80
+ catalog_entries.respond_to?(tag) ? catalog_entries.send(tag) : nil
81
+ end
82
+
52
83
  def configure_instance_definition(instance_definition)
53
84
  @instance_definition = instance_definition
54
85
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Namespace to host generators.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Knows how to read data definitions from an in-memory representation.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  MissingOverrideError = Class.new(Tdc::FatalError)
3
5
  end
data/lib/tdc/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
- VERSION = "1.2"
4
+ VERSION = "1.4"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Knows how to transform the result of calling the TestDefinitionReader#read method from an Array
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module YamlReaders
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module YamlReaders
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module YamlReaders
3
5
  #
@@ -40,9 +42,9 @@ module Tdc
40
42
 
41
43
  def definitions_file
42
44
  @_definitions_file ||= begin
43
- fully_qualified_path_elements = [@catalog_root_directory].concat(@path_elements.map(&:to_s))
45
+ fully_qualified_path_elements = [@catalog_root_directory] + @path_elements.map(&:to_s)
44
46
 
45
- fully_qualified_path_elements.last.concat(file_extension)
47
+ fully_qualified_path_elements[-1] = "#{fully_qualified_path_elements.last}#{file_extension}"
46
48
 
47
49
  File.join(*fully_qualified_path_elements)
48
50
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module YamlReaders
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  module YamlReaders
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Tdc
2
4
  #
3
5
  # Namespace to host YAML readers.
data/lib/tdc.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "ostruct"
2
4
  require "yaml"
3
5
 
data/tdc.gemspec CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "lib/tdc/version"
2
4
 
3
5
  Gem::Specification.new do |spec|
@@ -10,7 +12,7 @@ Gem::Specification.new do |spec|
10
12
  spec.homepage = "https://github.com/nulogy/tdc"
11
13
  spec.license = "MIT"
12
14
 
13
- spec.required_ruby_version = Gem::Requirement.new(">= 3.2")
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.3")
14
16
 
15
17
  spec.metadata = {
16
18
  "homepage_uri" => "https://github.com/nulogy/tdc",
@@ -29,15 +31,6 @@ Gem::Specification.new do |spec|
29
31
  spec.require_paths = ["lib"]
30
32
 
31
33
  spec.add_dependency "activesupport", ">= 7.2", "< 8.1"
34
+ spec.add_dependency "ostruct", ">= 0.6"
32
35
  spec.add_dependency "zeitwerk", ">= 2.7"
33
-
34
- spec.add_development_dependency "appraisal", "~> 2.5"
35
- spec.add_development_dependency "rake", "~> 13.2"
36
- spec.add_development_dependency "rspec", "~> 3.13"
37
- spec.add_development_dependency "rubocop", "~> 1.69"
38
- spec.add_development_dependency "rubocop-performance", "~> 1.23"
39
- spec.add_development_dependency "rubocop-rake", "~> 0.6"
40
- spec.add_development_dependency "rubocop-rspec", "~> 3.3"
41
- spec.add_development_dependency "rubycritic", "~> 4.9"
42
- spec.add_development_dependency "simplecov", "~> 0.22"
43
36
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tdc
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
4
+ version: '1.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alistair McKinnell
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-10-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -31,146 +30,33 @@ dependencies:
31
30
  - !ruby/object:Gem::Version
32
31
  version: '8.1'
33
32
  - !ruby/object:Gem::Dependency
34
- name: zeitwerk
33
+ name: ostruct
35
34
  requirement: !ruby/object:Gem::Requirement
36
35
  requirements:
37
36
  - - ">="
38
37
  - !ruby/object:Gem::Version
39
- version: '2.7'
38
+ version: '0.6'
40
39
  type: :runtime
41
40
  prerelease: false
42
41
  version_requirements: !ruby/object:Gem::Requirement
43
42
  requirements:
44
43
  - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '2.7'
47
- - !ruby/object:Gem::Dependency
48
- name: appraisal
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '2.5'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '2.5'
61
- - !ruby/object:Gem::Dependency
62
- name: rake
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '13.2'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '13.2'
75
- - !ruby/object:Gem::Dependency
76
- name: rspec
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '3.13'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '3.13'
89
- - !ruby/object:Gem::Dependency
90
- name: rubocop
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '1.69'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '1.69'
103
- - !ruby/object:Gem::Dependency
104
- name: rubocop-performance
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - "~>"
108
- - !ruby/object:Gem::Version
109
- version: '1.23'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '1.23'
117
- - !ruby/object:Gem::Dependency
118
- name: rubocop-rake
119
- requirement: !ruby/object:Gem::Requirement
120
- requirements:
121
- - - "~>"
122
- - !ruby/object:Gem::Version
123
- version: '0.6'
124
- type: :development
125
- prerelease: false
126
- version_requirements: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
44
  - !ruby/object:Gem::Version
130
45
  version: '0.6'
131
46
  - !ruby/object:Gem::Dependency
132
- name: rubocop-rspec
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '3.3'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: '3.3'
145
- - !ruby/object:Gem::Dependency
146
- name: rubycritic
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '4.9'
152
- type: :development
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '4.9'
159
- - !ruby/object:Gem::Dependency
160
- name: simplecov
47
+ name: zeitwerk
161
48
  requirement: !ruby/object:Gem::Requirement
162
49
  requirements:
163
- - - "~>"
50
+ - - ">="
164
51
  - !ruby/object:Gem::Version
165
- version: '0.22'
166
- type: :development
52
+ version: '2.7'
53
+ type: :runtime
167
54
  prerelease: false
168
55
  version_requirements: !ruby/object:Gem::Requirement
169
56
  requirements:
170
- - - "~>"
57
+ - - ">="
171
58
  - !ruby/object:Gem::Version
172
- version: '0.22'
173
- description:
59
+ version: '2.7'
174
60
  email:
175
61
  - alistairm@nulogy.com
176
62
  executables: []
@@ -230,7 +116,6 @@ metadata:
230
116
  changelog_uri: https://github.com/nulogy/tdc/blob/master/CHANGELOG.md
231
117
  bug_tracker_uri: https://github.com/nulogy/tdc/issues
232
118
  rubygems_mfa_required: 'true'
233
- post_install_message:
234
119
  rdoc_options: []
235
120
  require_paths:
236
121
  - lib
@@ -238,15 +123,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
123
  requirements:
239
124
  - - ">="
240
125
  - !ruby/object:Gem::Version
241
- version: '3.2'
126
+ version: '3.3'
242
127
  required_rubygems_version: !ruby/object:Gem::Requirement
243
128
  requirements:
244
129
  - - ">="
245
130
  - !ruby/object:Gem::Version
246
131
  version: '0'
247
132
  requirements: []
248
- rubygems_version: 3.5.22
249
- signing_key:
133
+ rubygems_version: 4.0.8
250
134
  specification_version: 4
251
135
  summary: A simple framework for creating a Test Data Catalog
252
136
  test_files: []