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  |