module NSSQL::Table::ClassMethods

Class methods for NSSQL::Table module.

Attributes

ns_columns[R]

Public Instance Methods

ns_aliased_column_names() click to toggle source
# File lib/nssql/table.rb, line 48
def ns_aliased_column_names
  ns_columns.sort.map do |name, options|
    options[:as] || name
  end
end
ns_column(name, options = {}) click to toggle source
# File lib/nssql/table.rb, line 43
def ns_column(name, options = {})
  @ns_columns ||= {}
  @ns_columns[name] = options
end
ns_column_names() click to toggle source
# File lib/nssql/table.rb, line 54
def ns_column_names
  ns_columns.keys.sort
end
ns_primary_keys(*ns_primary_keys) click to toggle source
# File lib/nssql/table.rb, line 37
def ns_primary_keys(*ns_primary_keys)
  return @ns_primary_keys if ns_primary_keys.empty?

  @ns_primary_keys = ns_primary_keys.flatten
end
ns_table_name(ns_table_name = nil) click to toggle source
# File lib/nssql/table.rb, line 31
def ns_table_name(ns_table_name = nil)
  return @ns_table_name if ns_table_name.nil?

  @ns_table_name = ns_table_name
end
select_ns_columns_query(where: nil) click to toggle source
# File lib/nssql/table.rb, line 17
      def select_ns_columns_query(where: nil)
        where_statement = "WHERE #{where}" if where

        <<~SQL
          SELECT
            #{ns_column_names.join(',')}
          FROM
            #{ns_table_name}
          #{where_statement if where}
          ORDER BY
            #{ns_primary_keys.first}
        SQL
      end