Sha256: 294d06cf2f1f67b4c18d54869b7a229f17c1e3667fcb7fb95b4874c397f83255

Contents?: true

Size: 853 Bytes

Versions: 1

Compression:

Stored size: 853 Bytes

Contents

module Rubeus::Extensions::Java::Sql
  module ResultSetMetaData
    include Enumerable
    
    def each(&block)
      return unless block_given?
      @column_count ||= get_column_count
      (1..@column_count).each(&block)
    end
    
    def columns
      @columns ||= build_columns
    end
    
    def column_names
      @column_names ||= columns.inject({}) do |dest, column|
        dest[column.index] = column.name
        dest
      end
    end

    def column_index(i)
      i
    end
    
    private
    def build_columns
      result = []
      attrs = Rubeus::Jdbc::ResultSetColumn::ATTRIBUTES
      each do |i|
        column_hash = attrs.inject({}) do |dest, attr|
          dest[attr] = send(attr, i)
          dest
        end
        result << Rubeus::Jdbc::ResultSetColumn.new(i,column_hash)
      end
      result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubeus-0.0.8-java lib/rubeus/extensions/java/sql/result_set_meta_data.rb