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