fixturex 0.1.5 → 0.1.6

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: 404ffc47cf8333c8e253ec3c9a2bc7f503239c4b522583824faf3f39d3181dd6
4
- data.tar.gz: a171c81ab51265e86395af98c62935eca28f378d7836afd05462626d8e7af6f2
3
+ metadata.gz: ba442689cba33d6a107a78f02cce97607f69b122f14e7a47ed71466ebfb3ef51
4
+ data.tar.gz: 6aaa1d21d83b24a0346caf5d49df17954f08f5da559e8f1a897038d90e01c3dc
5
5
  SHA512:
6
- metadata.gz: 3d40f03023164dc2aeed88092b8575eddb5a7196c52a0b75edc9c4a73431a961ddeb95b1f98fe40e9fc40061647398bc3f70177af1e269a89ce84e0b6416b854
7
- data.tar.gz: fdaa79ae96ef13a30bb9504184df2e5197a606a1f1ee3896ee2132493c55cf331bd24e0eea05d88b55607fcb5e7464795839f6a754baf425cd90d16337783368
6
+ metadata.gz: 6fa6003d12a1e64a1b680b8780e468e5e54fe05fc6992887b7c1eacb408bb113f5510d738dd8020727607667a5728fb5b9109e3c89fba587a607ba5294c15196
7
+ data.tar.gz: 6f21761a41d8802e638121fae5051f6a69a6754eabcd3479a841e2a88668e80c94eb7ef390fcfe3627793a596cad741aabad8e9e4a134e1bceaf9128c0296d52
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fixturex (0.1.5)
4
+ fixturex (0.1.6)
5
5
  rails (>= 6.0)
6
6
 
7
7
  GEM
@@ -118,7 +118,7 @@ GEM
118
118
  mini_mime (1.1.5)
119
119
  mini_portile2 (2.8.8)
120
120
  minitest (5.25.5)
121
- net-imap (0.5.8)
121
+ net-imap (0.5.9)
122
122
  date
123
123
  net-protocol
124
124
  net-pop (0.1.2)
@@ -15,27 +15,31 @@ module Fixturex
15
15
  fixtures_paths(model_class).each_with_object([]) do |path, acc|
16
16
  fixtures = YAML.load_file(path)
17
17
  fixtures.select! do |_name, attributes|
18
- # if fixture has `type` - STI - then we only want type == class_name
19
- attributes['type'].nil? || attributes['type'] == model_class.name
18
+ attributes['type'].nil? || attributes['type'].constantize <= model_class
20
19
  end
21
20
  acc.concat(fixtures.map { |name, attributes| Fixture.new(name, path, attributes) })
22
21
  end
23
22
  end
24
23
 
25
24
  def self.fixtures_paths(model_class)
26
- fixtures_paths = []
27
25
  # TODO: is there a better way to find out fixtures root directory?
28
26
  fixtures_root = ActiveRecord::Tasks::DatabaseTasks.fixtures_path
29
27
 
30
- while model_class < ActiveRecord::Base
31
- fixture_file = "#{model_class.to_s.tableize}.yml"
32
- path = File.join(fixtures_root, *fixture_file.split('/'))
28
+ # Make subclasses/ancestors discoverable
29
+ Rails.application.eager_load!
33
30
 
34
- fixtures_paths << path if File.exist?(path)
31
+ superclasses = model_class.ancestors.select do |ancestor|
32
+ ancestor < ActiveRecord::Base
33
+ end
35
34
 
36
- model_class = model_class.superclass
35
+ (
36
+ superclasses + [model_class] + model_class.subclasses
37
+ ).filter_map do |klass|
38
+ fixture_file = "#{klass.to_s.tableize}.yml"
39
+ path = File.join(fixtures_root, *fixture_file.split('/'))
40
+
41
+ path if File.exist?(path)
37
42
  end
38
- fixtures_paths
39
43
  end
40
44
  end
41
45
 
@@ -94,6 +98,10 @@ module Fixturex
94
98
  namespace = association.active_record.name.split('::')[0..-2].join('::')
95
99
  class_name = [namespace, association.class_name].filter(&:present?).join('::')
96
100
 
101
+ unless Object.const_defined?(class_name)
102
+ class_name = association.class_name
103
+ end
104
+
97
105
  class_name.constantize
98
106
  end
99
107
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fixturex
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fixturex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - artemave
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-17 00:00:00.000000000 Z
11
+ date: 2025-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails