Sha256: e182fa4e310587baa7a687be8379383cb1e6911c77b1813182a5ac34bd3fc8f0

Contents?: true

Size: 933 Bytes

Versions: 2

Compression:

Stored size: 933 Bytes

Contents

class ColumnData < Struct[untyped]
  attr_accessor name: string
  attr_accessor type: string
  attr_accessor nullable: bool
  attr_accessor option: Hash[string, string]
end

class SchemaData < Struct[untyped]
  attr_accessor table_name: string
  attr_accessor id_type: Symbol
  attr_accessor columns: Array[ColumnData]

  def initialize: (table_name: string, id_type: Symbol, columns: Array[ColumnData]) -> void
end

# parse code and generate schema by included modules
class Speek
  attr_reader code: untyped

  attr_reader ast: untyped

  class Error < StandardError
  end

  def initialize: (string code) -> Speek

  def self.read: (string filename) -> Speek

  def self.example: () -> Speek

  def table_name: () -> string

  def id_type: () -> string

  def columns: () -> Array[ColumnData]

  def schema_data: () -> SchemaData

  private

  def extract_column: (untyped column_ast_node) -> (ColumnData | Array[ColumnData])
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
speek-0.1.1 sig/lib/speek.rbs
speek-0.1.0 sig/lib/speek.rbs