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 |