1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

constructor should not do so much work; avoid allocating object if possible

This commit is contained in:
Aaron Patterson 2010-09-27 17:38:49 -07:00
parent 133742d185
commit 65d74312c8

View file

@ -8,18 +8,13 @@ module ActiveRecord
# scope except that it's dynamic. # scope except that it's dynamic.
class DynamicScopeMatch class DynamicScopeMatch
def self.match(method) def self.match(method)
ds_match = new(method) return unless method.to_s =~ /^scoped_by_([_a-zA-Z]\w*)$/
ds_match.scope && ds_match new(true, $1 && $1.split('_and_'))
end end
def initialize(method) def initialize(scope, attribute_names)
@scope = nil @scope = scope
if method.to_s =~ /^scoped_by_([_a-zA-Z]\w*)$/ @attribute_names = attribute_names
names = $1
@scope = true
end
@attribute_names = names && names.split('_and_')
end end
attr_reader :scope, :attribute_names attr_reader :scope, :attribute_names