Class: Arrow::ListArrayBuilder
- Inherits:
-
ArrayBuilder
show all
- Defined in:
- lib/arrow/list-array-builder.rb,
lib/arrow/jruby/array-builder.rb
Constant Summary
ArrayBuildable::ValueVector
Class Method Summary
collapse
Instance Method Summary
collapse
#append_nulls, #build, buildable?, #finish, #initialize
#buildable?
Class Method Details
.build(data_type, values) ⇒ Object
21
22
23
24
|
# File 'lib/arrow/list-array-builder.rb', line 21
def build(data_type, values)
builder = new(data_type)
builder.build(values)
end
|
Instance Method Details
#append(*values) ⇒ Object
88
89
90
91
92
93
94
95
|
# File 'lib/arrow/list-array-builder.rb', line 88
def append(*values)
if values.empty?
append_value
else
super
end
end
|
#append_value ⇒ Object
#append_value(list) ⇒ Object
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/arrow/list-array-builder.rb', line 45
def append_value(*args)
n_args = args.size
case n_args
when 0
append_value_raw
when 1
value = args[0]
case value
when nil
append_null
when ::Array
append_value_raw
return if value.empty?
@value_builder ||= value_builder
@value_builder.append(*value)
else
message = "list value must be nil or Array: #{value.inspect}"
raise ArgumentError, message
end
else
message = "wrong number of arguments (given #{n_args}, expected 0..1)"
raise ArgumentError, message
end
end
|
#append_value_raw ⇒ Object
27
|
# File 'lib/arrow/list-array-builder.rb', line 27
alias_method :append_value_raw, :append_value
|
#append_values(lists, is_valids = nil) ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/arrow/list-array-builder.rb', line 71
def append_values(lists, is_valids=nil)
if is_valids
is_valids.each_with_index do |is_valid, i|
if is_valid
append_value(lists[i])
else
append_null
end
end
else
lists.each do |list|
append_value(list)
end
end
end
|