sem-core 0.6.2

Entity-level semantic diff engine. Extracts functions, classes, and methods from 20 languages via tree-sitter and diffs at the entity level.
Documentation
require_relative 'models'
require_relative 'database'

def create_dog(name)
  dog = Dog.new(name)
  raise ArgumentError, "invalid dog" unless dog.validate
  conn = get_connection
  conn.execute("INSERT INTO dogs VALUES (?)")
  conn.commit
  dog
end

def create_cat(name)
  cat = Cat.new(name)
  raise ArgumentError, "invalid cat" unless cat.validate
  conn = get_connection
  conn.execute("INSERT INTO cats VALUES (?)")
  conn.commit
  cat
end

def transfer_animal(animal, shelter)
  txn = Transaction.new(get_connection)
  txn.execute("UPDATE animals SET shelter_id = ?")
  shelter.add(animal)
  txn.commit
end

def list_animals
  conn = get_connection
  conn.execute("SELECT * FROM animals")
end