Sha256: 499de344405338e8f241f5a27e5a76c72ada5773543beebdf69e8b9cf8bd0e7a

Contents?: true

Size: 634 Bytes

Versions: 3

Compression:

Stored size: 634 Bytes

Contents

module WhoAmI
  class TableInfo
    def initialize(table_name)
      @table_name = table_name
    end

    attr_reader :table_name

    def columns
      @columns ||=
        basic_model_class.columns.map do |column|
          TableColumnInfo.new(basic_model_class: basic_model_class, column: column)
        end
    end

    def indices
      @indices ||=
        basic_model_class.connection.indexes(@table_name)
    end

    private

    def basic_model_class
      @basic_model_class ||=
        begin
          table = @table_name
          Class.new(ActiveRecord::Base) { self.table_name = table }
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
who_am_i-0.0.3 lib/who_am_i/table_info.rb
who_am_i-0.0.2 lib/who_am_i/table_info.rb
who_am_i-0.0.1 lib/who_am_i/table_info.rb