Class: TeradataCli::Record
- Inherits:
-
Object
- Object
- TeradataCli::Record
- Includes:
- Enumerable
- Defined in:
- lib/teradata-cli/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
- #to_hash_with_sym ⇒ Object
- #values_at(*keys) ⇒ Object
Constructor Details
#initialize(metadata, fields) ⇒ Record
Returns a new instance of Record.
1044 1045 1046 1047 1048 |
# File 'lib/teradata-cli/connection.rb', line 1044 def initialize(, fields) @metadata = @fields = fields @index = build_name_index() end |
Instance Method Details
#[](key) ⇒ Object
1070 1071 1072 |
# File 'lib/teradata-cli/connection.rb', line 1070 def [](key) field(key).value end |
#each_field(&block) ⇒ Object
1080 1081 1082 |
# File 'lib/teradata-cli/connection.rb', line 1080 def each_field(&block) @fields.each(&block) end |
#each_value ⇒ Object Also known as: each
1084 1085 1086 1087 1088 |
# File 'lib/teradata-cli/connection.rb', line 1084 def each_value @fields.each {|c| yield c.value } end |
#field(key) ⇒ Object
1074 1075 1076 1077 1078 |
# File 'lib/teradata-cli/connection.rb', line 1074 def field(key) i = (@index[key.to_s.downcase] || @index[key]) or raise ArgumentError, "bad field key: #{key}" @fields[i] end |
#inspect ⇒ Object
1117 1118 1119 |
# File 'lib/teradata-cli/connection.rb', line 1117 def inspect "\#<Record #{@fields.map {|c| c.to_s }.join(', ')}>" end |
#keys ⇒ Object
1066 1067 1068 |
# File 'lib/teradata-cli/connection.rb', line 1066 def keys @metadata.field_names end |
#size ⇒ Object
1062 1063 1064 |
# File 'lib/teradata-cli/connection.rb', line 1062 def size @fields.size end |
#to_a ⇒ Object
1096 1097 1098 |
# File 'lib/teradata-cli/connection.rb', line 1096 def to_a @fields.map {|f| f.value } end |
#to_h ⇒ Object
1100 1101 1102 1103 1104 1105 1106 |
# File 'lib/teradata-cli/connection.rb', line 1100 def to_h h = {} @metadata.field_names.zip(@fields) do |name, field| h[name] = field.value end h end |
#to_hash_with_sym ⇒ Object
1108 1109 1110 1111 1112 1113 1114 |
# File 'lib/teradata-cli/connection.rb', line 1108 def to_hash_with_sym h = {} @metadata.field_names.zip(@fields) do |name, field| h[name.downcase.to_sym] = field.value end h end |
#values_at(*keys) ⇒ Object
1092 1093 1094 |
# File 'lib/teradata-cli/connection.rb', line 1092 def values_at(*keys) keys.map {|k| self[k] } end |