Class: Teradata::Record
- Inherits:
-
Object
- Object
- Teradata::Record
- Includes:
- Enumerable
- Defined in:
- lib/teradata/connection.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #each_field(&block) ⇒ Object
- #each_value ⇒ Object (also: #each)
- #field(key) ⇒ Object
-
#initialize(metadata, fields) ⇒ Record
constructor
A new instance of Record.
- #inspect ⇒ Object
- #keys ⇒ Object
- #size ⇒ Object
- #to_a ⇒ Object
- #to_h ⇒ Object
- #values_at(*keys) ⇒ Object
Constructor Details
#initialize(metadata, fields) ⇒ Record
Returns a new instance of Record.
1021 1022 1023 1024 1025 |
# File 'lib/teradata/connection.rb', line 1021 def initialize(, fields) @metadata = @fields = fields @index = build_name_index() end |
Instance Method Details
#[](key) ⇒ Object
1047 1048 1049 |
# File 'lib/teradata/connection.rb', line 1047 def [](key) field(key).value end |
#each_field(&block) ⇒ Object
1057 1058 1059 |
# File 'lib/teradata/connection.rb', line 1057 def each_field(&block) @fields.each(&block) end |
#each_value ⇒ Object Also known as: each
1061 1062 1063 1064 1065 |
# File 'lib/teradata/connection.rb', line 1061 def each_value @fields.each {|c| yield c.value } end |
#field(key) ⇒ Object
1051 1052 1053 1054 1055 |
# File 'lib/teradata/connection.rb', line 1051 def field(key) i = (@index[key.to_s.downcase] || @index[key]) or raise ArgumentError, "bad field key: #{key}" @fields[i] end |
#inspect ⇒ Object
1085 1086 1087 |
# File 'lib/teradata/connection.rb', line 1085 def inspect "\#<Record #{@fields.map {|c| c.to_s }.join(', ')}>" end |
#keys ⇒ Object
1043 1044 1045 |
# File 'lib/teradata/connection.rb', line 1043 def keys @metadata.field_names end |
#size ⇒ Object
1039 1040 1041 |
# File 'lib/teradata/connection.rb', line 1039 def size @fields.size end |
#to_a ⇒ Object
1073 1074 1075 |
# File 'lib/teradata/connection.rb', line 1073 def to_a @fields.map {|f| f.value } end |
#to_h ⇒ Object
1077 1078 1079 1080 1081 1082 1083 |
# File 'lib/teradata/connection.rb', line 1077 def to_h h = {} @metadata.field_names.zip(@fields) do |name, field| h[name] = field.value end h end |
#values_at(*keys) ⇒ Object
1069 1070 1071 |
# File 'lib/teradata/connection.rb', line 1069 def values_at(*keys) keys.map {|k| self[k] } end |