lib/arrow/record.rb in red-arrow-0.8.0 vs lib/arrow/record.rb in red-arrow-0.8.1
- old
+ new
@@ -13,27 +13,42 @@
# limitations under the License.
module Arrow
class Record
attr_accessor :index
- def initialize(record_batch, index)
- @record_batch = record_batch
+ def initialize(record_container, index)
+ @record_container = record_container
@index = index
end
def [](column_name_or_column_index)
- @record_batch.find_column(column_name_or_column_index)[@index]
+ column = @record_container.find_column(column_name_or_column_index)
+ return nil if column.nil?
+ column[@index]
end
def columns
- @record_batch.columns
+ @record_container.columns
end
def to_h
attributes = {}
- @record_batch.schema.fields.each_with_index do |field, i|
+ @record_container.schema.fields.each_with_index do |field, i|
attributes[field.name] = self[i]
end
attributes
+ end
+
+ def respond_to_missing?(name, include_private)
+ return true if @record_container.find_column(name)
+ super
+ end
+
+ def method_missing(name, *args, &block)
+ if args.empty?
+ column = @record_container.find_column(name)
+ return column[@index] if column
+ end
+ super
end
end
end