lib/groonga/record.rb in groonga-0.0.6 vs lib/groonga/record.rb in groonga-0.0.7

- old
+ new

@@ -32,31 +32,37 @@ self.class == other.class and [table, id] == [other.table, other.id] end def [](column_name) - column(column_name, true)[@id] + column(column_name)[@id] end def []=(column_name, value) - column(column_name, true)[@id] = value + column(column_name)[@id] = value end def append(column_name, value) - column(column_name, true).append(@id, value) + column(column_name).append(@id, value) end + def prepend(column_name, value) + column(column_name).prepend(@id, value) + end + def have_column?(name) - not column(name).nil? + column(name).is_a?(Groonga::Column) + rescue Groonga::InvalidArgument + false end def reference_column?(name) - column(name, true).range.is_a?(Groonga::Table) + column(name).range.is_a?(Groonga::Table) end def search(name, query, options={}) - column(name, true).search(query, options) + column(name).search(query, options) end def key @table.key(@id) end @@ -72,15 +78,15 @@ def value=(value) @table[@id] = value end def increment!(name, delta=nil) - column(name, true).increment!(@id, delta) + column(name).increment!(@id, delta) end def decrement!(name, delta=nil) - column(name, true).decrement!(@id, delta) + column(name).decrement!(@id, delta) end def columns @table.columns end @@ -88,11 +94,11 @@ def attributes attributes = {} table_name = @table.name columns.each do |column| next if column.is_a?(Groonga::IndexColumn) - attributes[column.name[(table_name.size + 1)..-1]] = column[@id] + attributes[column.local_name] = column[@id] end attributes end def delete @@ -114,14 +120,12 @@ def locked?(options={}) @table.locked?(options.merge(:id => @id)) end private - def column(name, required=false) + def column(name) _column = @table.column(name.to_s) - if _column.nil? and required - raise Groonga::Error, "nonexistent column: <#{name.inspect}>" - end + raise InvalidArgument, "column(#{name.inspect}) is nil" if _column.nil? _column end end end