lib/og/store.rb in og-0.23.0 vs lib/og/store.rb in og-0.24.0
- old
+ new
@@ -53,44 +53,44 @@
def enchant(klass, manager)
klass.class.send(:define_method, :index) do |arg|
meta :index, arg
end
- pk = klass.primary_key.first
+ pk = klass.primary_key.symbol
klass.module_eval %{
def saved?
- return @#{klass.primary_key.first}
+ return #{klass.primary_key.symbol}
end
def unsaved?
- return !@#{klass.primary_key.first}
+ return !#{klass.primary_key.symbol}
end
# Evaluate an alias for the primary key.
alias_method :pk, :#{pk}
alias_method :pk=, :#{pk}=
def self.pk_symbol
- :#{klass.primary_key.first}
+ :#{klass.primary_key.symbol}
end
}
# Generate finder methods.
code = ''
- for p in klass.properties
- # gmosx: :uniq does NOT set a unique constrain in the
+ for p in klass.properties.values
+ # gmosx: :uniq does NOT set a unique constraint in the
# database.
- finder = p.meta[:uniq] || p.meta[:unique] ? 'find_one' : 'find'
+ finder = p.uniq || p.unique ? 'find_one' : 'find'
code << %{
- def self.find_by_#{p.symbol}(val, operator = '=', options = {})
+ def self.find_by_#{p}(val, operator = '=', options = {})
options.update(
:class => #{klass},
- :condition => "#{p.meta[:field] || p.symbol}\#{operator}\#{ogmanager.store.quote(val)}"
+ :condition => "#{p.field || p}\#{operator}\#{ogmanager.store.quote(val)}"
)
ogmanager.store.#{finder}(options)
end;
}
end