(values)
| 21 | class ArrayBuilder |
| 22 | class << self |
| 23 | def build(values) |
| 24 | if self != ArrayBuilder |
| 25 | builder = new |
| 26 | return builder.build(values) |
| 27 | end |
| 28 | |
| 29 | builder_info = nil |
| 30 | values.each do |value| |
| 31 | builder_info = detect_builder_info(value, builder_info) |
| 32 | break if builder_info and builder_info[:detected] |
| 33 | end |
| 34 | if builder_info |
| 35 | builder = builder_info[:builder] |
| 36 | if builder.nil? and builder_info[:builder_type] |
| 37 | builder = create_builder(builder_info) |
| 38 | end |
| 39 | end |
| 40 | if builder |
| 41 | builder.build(values) |
| 42 | else |
| 43 | Arrow::StringArray.new(values) |
| 44 | end |
| 45 | end |
| 46 | |
| 47 | def buildable?(args) |
| 48 | args.size == method(:build).arity |
no test coverage detected