Sha256: f3d3d2d03d5a60df01d6a6e88a4bd17ad3b2c76df47920ab9f2f87686dc35ebd

Contents?: true

Size: 1.72 KB

Versions: 1

Compression:

Stored size: 1.72 KB

Contents

module RbsRails::ActiveRecord
  def self.class_to_rbs: (untyped klass, ?dependencies: Array[String]) -> untyped
  def self.generatable?: (untyped klass) -> boolish
end

class RbsRails::ActiveRecord::Generator
  @parse_model_file: nil | Parser::AST::Node

  def initialize: (singleton(ActiveRecord::Base) klass, dependencies: Array[String]) -> untyped

  def generate: () -> String

  def klass_decl: () -> String

  def pk_type: () -> String

  def relation_decl: () -> String

  def collection_proxy_decl: () -> String

  def header: () -> String

  def footer: () -> String

  def associations: () -> String

  def has_many: () -> String

  def has_one: () -> String

  def belongs_to: () -> String

  def enum_instance_methods: () -> String

  def enum_scope_methods: (singleton: untyped `singleton`) -> String

  def enum_definitions: () -> Array[Hash[Symbol, untyped]]

  # We need static analysis to detect enum.
  # ActiveRecord has `defined_enums` method,
  # but it does not contain _prefix and _suffix information.
  def build_enum_definitions: () -> Array[Hash[Symbol, untyped]]

  def enum_method_name: (Hash[Symbol, untyped] hash, Symbol name, Symbol label) -> String

  def scopes: (singleton: untyped `singleton`) -> untyped

  def args_to_type: (untyped args_node) -> untyped

  def parse_model_file: () -> untyped

  def traverse: (Parser::AST::Node node) { (Parser::AST::Node) -> untyped } -> untyped
              | (Parser::AST::Node node) -> Enumerator[Parser::AST::Node, untyped]

  def relation_class_name: () -> untyped

  def columns: () -> untyped

  def sql_type_to_class: (untyped t) -> untyped

  def optional: (String) -> String

  private

  attr_reader klass: singleton(ActiveRecord::Base)

  attr_reader klass_name: String
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rbs_rails-0.8.2 sig/rbs_rails/active_record.rbs