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.
1022 1023 1024 1025 1026 |
# File 'lib/teradata-cli/connection.rb', line 1022 def initialize(, fields) @metadata = @fields = fields @index = build_name_index() end |
Instance Method Details
#[](key) ⇒ Object
1048 1049 1050 |
# File 'lib/teradata-cli/connection.rb', line 1048 def [](key) field(key).value end |
#each_field(&block) ⇒ Object
1058 1059 1060 |
# File 'lib/teradata-cli/connection.rb', line 1058 def each_field(&block) @fields.each(&block) end |
#each_value ⇒ Object Also known as: each
1062 1063 1064 1065 1066 |
# File 'lib/teradata-cli/connection.rb', line 1062 def each_value @fields.each {|c| yield c.value } end |
#field(key) ⇒ Object
1052 1053 1054 1055 1056 |
# File 'lib/teradata-cli/connection.rb', line 1052 def field(key) i = (@index[key.to_s.downcase] || @index[key]) or raise ArgumentError, "bad field key: #{key}" @fields[i] end |
#inspect ⇒ Object
1095 1096 1097 |
# File 'lib/teradata-cli/connection.rb', line 1095 def inspect "\#<Record #{@fields.map {|c| c.to_s }.join(', ')}>" end |
#keys ⇒ Object
1044 1045 1046 |
# File 'lib/teradata-cli/connection.rb', line 1044 def keys @metadata.field_names end |
#size ⇒ Object
1040 1041 1042 |
# File 'lib/teradata-cli/connection.rb', line 1040 def size @fields.size end |
#to_a ⇒ Object
1074 1075 1076 |
# File 'lib/teradata-cli/connection.rb', line 1074 def to_a @fields.map {|f| f.value } end |
#to_h ⇒ Object
1078 1079 1080 1081 1082 1083 1084 |
# File 'lib/teradata-cli/connection.rb', line 1078 def to_h h = {} @metadata.field_names.zip(@fields) do |name, field| h[name] = field.value end h end |
#to_hash_with_sym ⇒ Object
1086 1087 1088 1089 1090 1091 1092 |
# File 'lib/teradata-cli/connection.rb', line 1086 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
1070 1071 1072 |
# File 'lib/teradata-cli/connection.rb', line 1070 def values_at(*keys) keys.map {|k| self[k] } end |