Skip to content

Commit a0ba3a2

Browse files
committed
use kwargs for virtual associations
1 parent b029a97 commit a0ba3a2

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

lib/active_record/virtual_attributes/virtual_reflections.rb

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,23 @@ module ClassMethods
99
# Definition
1010
#
1111

12-
def virtual_has_one(name, options = {})
13-
uses = options.delete(:uses)
12+
def virtual_has_one(name, uses: nil, **options)
1413
reflection = ActiveRecord::Associations::Builder::HasOne.build(self, name, nil, options)
15-
add_virtual_reflection(reflection, name, uses, options)
14+
add_virtual_reflection(reflection, name, uses)
1615
end
1716

18-
def virtual_has_many(name, options = {})
17+
def virtual_has_many(name, uses: nil, **options)
1918
define_method(:"#{name.to_s.singularize}_ids") do
2019
records = send(name)
2120
records.respond_to?(:ids) ? records.ids : records.collect(&:id)
2221
end
23-
uses = options.delete(:uses)
2422
reflection = ActiveRecord::Associations::Builder::HasMany.build(self, name, nil, options)
25-
add_virtual_reflection(reflection, name, uses, options)
23+
add_virtual_reflection(reflection, name, uses)
2624
end
2725

28-
def virtual_belongs_to(name, options = {})
29-
uses = options.delete(:uses)
26+
def virtual_belongs_to(name, uses: nil, **options)
3027
reflection = ActiveRecord::Associations::Builder::BelongsTo.build(self, name, nil, options)
31-
add_virtual_reflection(reflection, name, uses, options)
28+
add_virtual_reflection(reflection, name, uses)
3229
end
3330

3431
def virtual_reflection?(name)
@@ -94,7 +91,7 @@ def collect_reflections_with_virtual(association_names)
9491

9592
private
9693

97-
def add_virtual_reflection(reflection, name, uses, _options)
94+
def add_virtual_reflection(reflection, name, uses)
9895
raise ArgumentError, "macro must be specified" unless reflection
9996

10097
reset_virtual_reflection_information

0 commit comments

Comments
 (0)