Class: Google::Cloud::Bigquery::Schema::Field
- Inherits:
-
Object
- Object
- Google::Cloud::Bigquery::Schema::Field
- Defined in:
- lib/google/cloud/bigquery/schema/field.rb
Overview
Schema Field
The fields of a table schema.
Instance Method Summary collapse
-
#boolean(name, description: nil, mode: :nullable) ⇒ Object
Adds a boolean field to the schema.
-
#boolean? ⇒ Boolean
Checks if the mode of the field is
BOOLEAN
. -
#bytes(name, description: nil, mode: :nullable) ⇒ Object
Adds a bytes field to the schema.
-
#bytes? ⇒ Boolean
Checks if the mode of the field is
BYTES
. -
#date(name, description: nil, mode: :nullable) ⇒ Object
Adds a date field to the schema.
-
#date? ⇒ Boolean
Checks if the mode of the field is
DATE
. -
#datetime(name, description: nil, mode: :nullable) ⇒ Object
Adds a datetime field to the schema.
-
#datetime? ⇒ Boolean
Checks if the mode of the field is
DATETIME
. -
#description ⇒ Object
The description of the field.
-
#description=(new_description) ⇒ Object
Updates the description of the field.
-
#field(name) {|f| ... } ⇒ Object
Retreive a nested fields by name, if the type property is set to
RECORD
. -
#fields ⇒ Object
The nested fields if the type property is set to
RECORD
. -
#float(name, description: nil, mode: :nullable) ⇒ Object
Adds a floating-point number field to the schema.
-
#float? ⇒ Boolean
Checks if the mode of the field is
FLOAT
. -
#headers ⇒ Object
The names of the nested fields as symbols if the type property is set to
RECORD
. -
#integer(name, description: nil, mode: :nullable) ⇒ Object
Adds an integer field to the schema.
-
#integer? ⇒ Boolean
Checks if the mode of the field is
INTEGER
. -
#mode ⇒ Object
The mode of the field.
-
#mode=(new_mode) ⇒ Object
Updates the mode of the field.
-
#name ⇒ Object
The name of the field.
-
#name=(new_name) ⇒ Object
Updates the name of the field.
-
#nullable? ⇒ Boolean
Checks if the type of the field is
NULLABLE
. -
#record(name, description: nil, mode: nil) {|nested_schema| ... } ⇒ Object
Adds a record field to the schema.
-
#record? ⇒ Boolean
Checks if the mode of the field is
RECORD
. -
#repeated? ⇒ Boolean
Checks if the type of the field is
REPEATED
. -
#required? ⇒ Boolean
Checks if the type of the field is
REQUIRED
. -
#string(name, description: nil, mode: :nullable) ⇒ Object
Adds a string field to the schema.
-
#string? ⇒ Boolean
Checks if the mode of the field is
STRING
. -
#time(name, description: nil, mode: :nullable) ⇒ Object
Adds a time field to the schema.
-
#time? ⇒ Boolean
Checks if the mode of the field is
TIME
. -
#timestamp(name, description: nil, mode: :nullable) ⇒ Object
Adds a timestamp field to the schema.
-
#timestamp? ⇒ Boolean
Checks if the mode of the field is
TIMESTAMP
. -
#type ⇒ Object
The type of the field.
-
#type=(new_type) ⇒ Object
Updates the type of the field.
Instance Method Details
#boolean(name, description: nil, mode: :nullable) ⇒ Object
Adds a boolean field to the schema.
This can only be called on fields that are of type RECORD
.
277 278 279 280 281 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 277 def boolean name, description: nil, mode: :nullable record_check! add_field name, :boolean, description: description, mode: mode end |
#boolean? ⇒ Boolean
Checks if the mode of the field is BOOLEAN
.
139 140 141 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 139 def boolean? mode == "BOOLEAN" end |
#bytes(name, description: nil, mode: :nullable) ⇒ Object
Adds a bytes field to the schema.
This can only be called on fields that are of type RECORD
.
296 297 298 299 300 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 296 def bytes name, description: nil, mode: :nullable record_check! add_field name, :bytes, description: description, mode: mode end |
#bytes? ⇒ Boolean
Checks if the mode of the field is BYTES
.
145 146 147 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 145 def bytes? mode == "BYTES" end |
#date(name, description: nil, mode: :nullable) ⇒ Object
Adds a date field to the schema.
This can only be called on fields that are of type RECORD
.
372 373 374 375 376 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 372 def date name, description: nil, mode: :nullable record_check! add_field name, :date, description: description, mode: mode end |
#date? ⇒ Boolean
Checks if the mode of the field is DATE
.
169 170 171 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 169 def date? mode == "DATE" end |
#datetime(name, description: nil, mode: :nullable) ⇒ Object
Adds a datetime field to the schema.
This can only be called on fields that are of type RECORD
.
353 354 355 356 357 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 353 def datetime name, description: nil, mode: :nullable record_check! add_field name, :datetime, description: description, mode: mode end |
#datetime? ⇒ Boolean
Checks if the mode of the field is DATETIME
.
163 164 165 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 163 def datetime? mode == "DATETIME" end |
#description ⇒ Object
The description of the field.
94 95 96 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 94 def description @gapi.description end |
#description=(new_description) ⇒ Object
Updates the description of the field.
101 102 103 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 101 def description= new_description @gapi.update! description: new_description end |
#field(name) {|f| ... } ⇒ Object
Retreive a nested fields by name, if the type property is
set to RECORD
. Will return nil
otherwise.
200 201 202 203 204 205 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 200 def field name f = fields.find { |fld| fld.name == name.to_s } return nil if f.nil? yield f if block_given? f end |
#fields ⇒ Object
The nested fields if the type property is set to RECORD
. Will be
empty otherwise.
182 183 184 185 186 187 188 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 182 def fields if frozen? Array(@gapi.fields).map { |f| Field.from_gapi(f).freeze }.freeze else Array(@gapi.fields).map { |f| Field.from_gapi f } end end |
#float(name, description: nil, mode: :nullable) ⇒ Object
Adds a floating-point number field to the schema.
This can only be called on fields that are of type RECORD
.
258 259 260 261 262 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 258 def float name, description: nil, mode: :nullable record_check! add_field name, :float, description: description, mode: mode end |
#float? ⇒ Boolean
Checks if the mode of the field is FLOAT
.
133 134 135 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 133 def float? mode == "FLOAT" end |
#headers ⇒ Object
The names of the nested fields as symbols if the type property is
set to RECORD
. Will be empty otherwise.
193 194 195 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 193 def headers fields.map(&:name).map(&:to_sym) end |
#integer(name, description: nil, mode: :nullable) ⇒ Object
Adds an integer field to the schema.
This can only be called on fields that are of type RECORD
.
239 240 241 242 243 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 239 def integer name, description: nil, mode: :nullable record_check! add_field name, :integer, description: description, mode: mode end |
#integer? ⇒ Boolean
Checks if the mode of the field is INTEGER
.
127 128 129 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 127 def integer? mode == "INTEGER" end |
#mode ⇒ Object
The mode of the field.
108 109 110 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 108 def mode @gapi.mode end |
#mode=(new_mode) ⇒ Object
Updates the mode of the field.
115 116 117 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 115 def mode= new_mode @gapi.update! mode: verify_mode(new_mode) end |
#name ⇒ Object
The name of the field.
48 49 50 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 48 def name @gapi.name end |
#name=(new_name) ⇒ Object
Updates the name of the field.
55 56 57 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 55 def name= new_name @gapi.update! name: String(new_name) end |
#nullable? ⇒ Boolean
Checks if the type of the field is NULLABLE
.
75 76 77 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 75 def nullable? mode == "NULLABLE" end |
#record(name, description: nil, mode: nil) {|nested_schema| ... } ⇒ Object
Adds a record field to the schema. A block must be passed describing the nested fields of the record. For more information about nested and repeated records, see Preparing Data for BigQuery .
This can only be called on fields that are of type RECORD
.
413 414 415 416 417 418 419 420 421 422 423 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 413 def record name, description: nil, mode: nil record_check! # TODO: do we need to fail if no block was given? fail ArgumentError, "a block is required" unless block_given? nested_field = add_field name, :record, description: description, mode: mode yield nested_field nested_field end |
#record? ⇒ Boolean
Checks if the mode of the field is RECORD
.
175 176 177 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 175 def record? mode == "RECORD" end |
#repeated? ⇒ Boolean
Checks if the type of the field is REPEATED
.
87 88 89 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 87 def repeated? mode == "REPEATED" end |
#required? ⇒ Boolean
Checks if the type of the field is REQUIRED
.
81 82 83 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 81 def required? mode == "REQUIRED" end |
#string(name, description: nil, mode: :nullable) ⇒ Object
Adds a string field to the schema.
This can only be called on fields that are of type RECORD
.
220 221 222 223 224 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 220 def string name, description: nil, mode: :nullable record_check! add_field name, :string, description: description, mode: mode end |
#string? ⇒ Boolean
Checks if the mode of the field is STRING
.
121 122 123 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 121 def string? mode == "STRING" end |
#time(name, description: nil, mode: :nullable) ⇒ Object
Adds a time field to the schema.
This can only be called on fields that are of type RECORD
.
334 335 336 337 338 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 334 def time name, description: nil, mode: :nullable record_check! add_field name, :time, description: description, mode: mode end |
#time? ⇒ Boolean
Checks if the mode of the field is TIME
.
157 158 159 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 157 def time? mode == "TIME" end |
#timestamp(name, description: nil, mode: :nullable) ⇒ Object
Adds a timestamp field to the schema.
This can only be called on fields that are of type RECORD
.
315 316 317 318 319 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 315 def name, description: nil, mode: :nullable record_check! add_field name, :timestamp, description: description, mode: mode end |
#timestamp? ⇒ Boolean
Checks if the mode of the field is TIMESTAMP
.
151 152 153 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 151 def mode == "TIMESTAMP" end |
#type ⇒ Object
The type of the field.
62 63 64 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 62 def type @gapi.type end |
#type=(new_type) ⇒ Object
Updates the type of the field.
69 70 71 |
# File 'lib/google/cloud/bigquery/schema/field.rb', line 69 def type= new_type @gapi.update! type: verify_type(new_type) end |