All Projects → Glasses-Neo → OOlib

Glasses-Neo / OOlib

Licence: WTFPL license
A nimble package for object-oriented programming

Programming Languages

nim
578 projects

Labels

Projects that are alternatives of or similar to OOlib

Aquila
🎨 An Advanced WordPress theme
Stars: ✭ 204 (+423.08%)
Mutual labels:  oop
LuaKit
Lua核心工具包,包含对面向对象,组件系统(灵活的绑定解绑模式),mvc分模块加载,事件分发系统等常用模式的封装。同时提供打印,内存泄漏检测,性能分析等常用工具类。
Stars: ✭ 112 (+187.18%)
Mutual labels:  oop
implements
🐍 Pythonic interfaces using decorators
Stars: ✭ 30 (-23.08%)
Mutual labels:  oop
Crystal Patterns
📖 Examples of GOF patterns written in Crystal
Stars: ✭ 228 (+484.62%)
Mutual labels:  oop
Design-Patterns
Project for learning and discuss about design patterns
Stars: ✭ 16 (-58.97%)
Mutual labels:  oop
SMmuiscPlay
🎼极简模式JavaScript音乐播放器组件,极简、小巧、无依赖、可定制,适用于手机页面,H5活动页,微信页面等的音乐播放支持
Stars: ✭ 40 (+2.56%)
Mutual labels:  oop
Bliss
Blissful JavaScript
Stars: ✭ 2,352 (+5930.77%)
Mutual labels:  oop
design-patterns-cookbook
Design Patterns in simple words with examples on PHP
Stars: ✭ 26 (-33.33%)
Mutual labels:  oop
wordpress-eloquent
A library that converts converts wordpress tables into Laravel Eloquent Models.
Stars: ✭ 129 (+230.77%)
Mutual labels:  oop
insta-story
🤖 📷 Instagram Story Downloader Anonymously - PHP
Stars: ✭ 25 (-35.9%)
Mutual labels:  oop
Oop
OOP in Elixir!
Stars: ✭ 233 (+497.44%)
Mutual labels:  oop
awesome-software-architecture
A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
Stars: ✭ 1,594 (+3987.18%)
Mutual labels:  oop
cactoos-matchers
Elegant object-oriented hamcrest matchers
Stars: ✭ 30 (-23.08%)
Mutual labels:  oop
Logtalk3
Logtalk - declarative object-oriented logic programming language
Stars: ✭ 221 (+466.67%)
Mutual labels:  oop
php-mvc-skeleton
A PHP OOP web application skeleton that uses MVC architectural pattern to create a basic application that contains login and multi language systems and can be used in any web project.
Stars: ✭ 46 (+17.95%)
Mutual labels:  oop
Learning Oop In Php
A collection of resources to learn object-oriented programming and related concepts for PHP developers.
Stars: ✭ 2,359 (+5948.72%)
Mutual labels:  oop
cactoos-crypto
Crypto extensions for Cactoos library
Stars: ✭ 15 (-61.54%)
Mutual labels:  oop
java-wegweiser
🔭 Ein wachsender Wegweiser für die Grundlagen der Java-Programmierung
Stars: ✭ 15 (-61.54%)
Mutual labels:  oop
JS HTML Widgets
Easily create widget objects of arbitrary complexity
Stars: ✭ 16 (-58.97%)
Mutual labels:  oop
jet
Jet is a simple OOP, dynamically typed, functional language that runs on the Erlang virtual machine (BEAM). Jet's syntax is Ruby-like syntax.
Stars: ✭ 22 (-43.59%)
Mutual labels:  oop

👑OOlib

license test contributors stars

OOlib is currently work in progress🔥

🗺Overview

OOlib is a nimble package for object oriented programming.

📜Usage

import strformat
import oolib

# add `pub` prefix to export class
class pub Person:
  var
    name*: string
    age* = 0

  # auto insert `self` as first argument
  proc `$`*: string = fmt"<Person> name: {self.name}"

  proc happyBirthday* =
    inc self.age

# auto define constructor
let p1 = Person.new("Tony")
let p2 = Person.new("Steve", 100)

Features

  • Member variables with default values
  • Class data constants
  • Definition of proc, method, func, etc... (the only exception being macro)
  • Auto definition of constructor
  • Support for inheritance, distinct, alias
  • super keyword for method
  • {.final.} by default
  • protocol that provides interfaces for class

details

See Wiki

💭Planned

  • struct
  • setter / getter
  • dataclass like Kotlin's data class

Changelog

See CHANGELOG

🥷Author

Twitter

License

Copyright © 2021 Neo [email protected] This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].