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