chop 0.36.6 → 0.37.0

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: a4d477e3610880a15f5ab315ad6c2f3a212f28f443147e363edc79508c7316b8
4
- data.tar.gz: c0cdf43b5a9415e21216d1ed4babddee3a141d9651bf593d6ffac484b1d1140c
3
+ metadata.gz: 4f913987c39cc9d3a8c36fbd479af12e59fd8319415c15b24fcbd32e737af1aa
4
+ data.tar.gz: e85ac13a6ceabcad966813e1050ed5ce21f5d2db012453407458019c4c1c7a1e
5
5
  SHA512:
6
- metadata.gz: e3c86c9f999bdb1c9b2cbb8c721affa85008ae8cd65947311d182bdd1c5923d0aeedd14f4e2e75a6820c211a7e477a599e18628c2230c26dc6ef75530728d6ec
7
- data.tar.gz: e51e524727d4a813a0e19756fdc9c82a389e2e30404eac8de13fd7f512fd4edf218ca96787b5c9a63e56e2dc2557115add2851cb2d408adfc0c6399de35e4185
6
+ metadata.gz: 96d2f1ae11404d221fdc04d37b8d9f322fa5d1dc9f90e0dba798fcdc964d6492c5558d6c9911f5643318a7b2eb6bc850bc4790daca7737830b61101d4543ca22
7
+ data.tar.gz: 904edaee4530b7ed62c11f65791f5b1c55eaf9432e66d4b0b3dbe1f7bdb7c3813710fc295b4972a85f487cb66a40a7051f7d59ffb0cd2d5125b5b4a48c2247c3
data/README.md CHANGED
@@ -163,7 +163,7 @@ end
163
163
 
164
164
  Given "the following stories exist:" do |table|
165
165
  table.create! factory_girl: "conversation_table/story" do
166
- belongs_to :industry, ConversationTable::Industry
166
+ belongs_to :industry # class is inferred from association reflection
167
167
 
168
168
  rename :image => :image_file
169
169
  file :image_file
data/chop.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "cucumber"
24
24
  spec.add_dependency "capybara"
25
25
 
26
+ spec.add_development_dependency "sqlite3", "~> 1.4"
26
27
  spec.add_development_dependency "appraisal"
27
28
  spec.add_development_dependency "rake"
28
29
  spec.add_development_dependency "rspec"
data/lib/chop/create.rb CHANGED
@@ -159,7 +159,7 @@ module Chop
159
159
 
160
160
  def has_many key, klass=nil, delimiter: ", ", field: :name, find_by: nil
161
161
  field = find_by if find_by
162
- klass ||= key.to_s.classify.constantize
162
+ klass ||= class_from_association(key)
163
163
  self.field key do |names|
164
164
  names.split(delimiter).map do |name|
165
165
  klass.find_by!(field => name)
@@ -169,7 +169,7 @@ module Chop
169
169
 
170
170
  def has_one key, klass=nil, field: :name, find_by: nil
171
171
  field = find_by if find_by
172
- klass ||= key.to_s.classify.constantize
172
+ klass ||= class_from_association(key)
173
173
  self.field key do |name|
174
174
  klass.find_by!(field => name) if name.present?
175
175
  end
@@ -206,6 +206,12 @@ module Chop
206
206
  keys.replace keys.first.values
207
207
  end
208
208
  end
209
+
210
+ def class_from_association(key)
211
+ if self[:klass].respond_to?(:reflect_on_association)
212
+ self[:klass].reflect_on_association(key)&.klass
213
+ end || key.to_s.classify.constantize
214
+ end
209
215
  end
210
216
  end
211
217
 
data/lib/chop/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Chop
2
- VERSION = "0.36.6"
2
+ VERSION = "0.37.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.36.6
4
+ version: 0.37.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-03 00:00:00.000000000 Z
11
+ date: 2026-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.4'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.4'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: appraisal
57
71
  requirement: !ruby/object:Gem::Requirement