1 # Licensed to the Apache Software Foundation (ASF) under one
2 # or more contributor license agreements. See the NOTICE file
3 # distributed with this work for additional information
4 # regarding copyright ownership. The ASF licenses this file
5 # to you under the Apache License, Version 2.0 (the
6 # "License"); you may not use this file except in compliance
7 # with the License. You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing,
12 # software distributed under the License is distributed on an
13 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 # KIND, either express or implied. See the License for the
15 # specific language governing permissions and limitations
18 require "arrow/block-closable"
21 class Loader
< GObjectIntrospection
::Loader
29 def post_load(repository
, namespace
)
31 require_extension_library
36 require "arrow/column-containable"
37 require "arrow/field-containable"
38 require "arrow/generic-filterable"
39 require "arrow/generic-takeable"
40 require "arrow/record-containable"
41 require "arrow/symbol-values-appendable"
43 require "arrow/aggregate-node-options"
44 require "arrow/aggregation"
46 require "arrow/array-builder"
47 require "arrow/bigdecimal-extension"
48 require "arrow/binary-dictionary-array-builder"
49 require "arrow/buffer"
50 require "arrow/chunked-array"
51 require "arrow/column"
52 require "arrow/compression-type"
53 require "arrow/csv-loader"
54 require "arrow/csv-read-options"
55 require "arrow/data-type"
56 require "arrow/date32-array"
57 require "arrow/date32-array-builder"
58 require "arrow/date64-array"
59 require "arrow/date64-array-builder"
61 require "arrow/decimal128"
62 require "arrow/decimal128-array"
63 require "arrow/decimal128-array-builder"
64 require "arrow/decimal128-data-type"
65 require "arrow/decimal256"
66 require "arrow/decimal256-array"
67 require "arrow/decimal256-array-builder"
68 require "arrow/decimal256-data-type"
69 require "arrow/dense-union-data-type"
70 require "arrow/dictionary-array"
71 require "arrow/dictionary-data-type"
72 require "arrow/equal-options"
73 require "arrow/expression"
75 require "arrow/file-output-stream"
76 require "arrow/file-system"
77 require "arrow/fixed-size-binary-array"
78 require "arrow/fixed-size-binary-array-builder"
80 require "arrow/list-array-builder"
81 require "arrow/list-data-type"
82 require "arrow/map-array"
83 require "arrow/map-array-builder"
84 require "arrow/map-data-type"
85 require "arrow/null-array"
86 require "arrow/null-array-builder"
87 require "arrow/path-extension"
88 require "arrow/record"
89 require "arrow/record-batch"
90 require "arrow/record-batch-builder"
91 require "arrow/record-batch-file-reader"
92 require "arrow/record-batch-iterator"
93 require "arrow/record-batch-reader"
94 require "arrow/record-batch-stream-reader"
95 require "arrow/rolling-window"
96 require "arrow/scalar"
97 require "arrow/schema"
98 require "arrow/slicer"
99 require "arrow/sort-key"
100 require "arrow/sort-options"
101 require "arrow/source-node-options"
102 require "arrow/sparse-union-data-type"
103 require "arrow/string-dictionary-array-builder"
104 require "arrow/struct-array"
105 require "arrow/struct-array-builder"
106 require "arrow/struct-data-type"
107 require "arrow/table"
108 require "arrow/table-concatenate-options"
109 require "arrow/table-formatter"
110 require "arrow/table-list-formatter"
111 require "arrow/table-table-formatter"
112 require "arrow/table-loader"
113 require "arrow/table-saver"
114 require "arrow/tensor"
116 require "arrow/time32-array"
117 require "arrow/time32-array-builder"
118 require "arrow/time32-data-type"
119 require "arrow/time64-array"
120 require "arrow/time64-array-builder"
121 require "arrow/time64-data-type"
122 require "arrow/timestamp-array"
123 require "arrow/timestamp-array-builder"
124 require "arrow/timestamp-data-type"
125 require "arrow/writable"
128 def require_extension_library
133 require "arrow/constructor-arguments-gc-guardable"
136 @base_module::BinaryScalar,
137 @base_module::Buffer,
138 @base_module::DenseUnionScalar,
139 @base_module::FixedSizeBinaryScalar,
140 @base_module::LargeBinaryScalar,
141 @base_module::LargeListScalar,
142 @base_module::LargeStringScalar,
143 @base_module::ListScalar,
144 @base_module::MapScalar,
145 @base_module::SparseUnionScalar,
146 @base_module::StringScalar,
147 @base_module::StructScalar,
149 klass
.prepend(ConstructorArgumentsGCGuardable
)
153 def load_object_info(info
)
156 klass
= @base_module.const_get(rubyish_class_name(info
))
157 if klass
.method_defined
?(:close)
158 klass
.extend(BlockClosable
)
162 def load_method_info(info
, klass
, method_name
)
167 method_name
= "values_raw"
179 when "Arrow::StringArray"
182 method_name
= "get_raw_value"
184 method_name
= "get_value"
186 super(info
, klass
, method_name
)
187 when "Arrow::Date32Array",
188 "Arrow::Date64Array",
189 "Arrow::Decimal128Array",
190 "Arrow::Decimal256Array",
191 "Arrow::Time32Array",
192 "Arrow::Time64Array",
193 "Arrow::TimestampArray"
196 method_name
= "get_raw_value"
198 super(info
, klass
, method_name
)
199 when "Arrow::Decimal128", "Arrow::Decimal256"
204 super(info
, klass
, method_name
)
205 when "Arrow::BooleanScalar"
208 method_name
= "value"
210 super(info
, klass
, method_name
)