Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - LuaDist/objl: An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines. · GitHub
Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Repository files navigation

 ########## ####### ######### ## ____ o
## ## ## ## ## ## / o\
## ## ## ### ## ## ## Objective Lua | O O |
## ## ## ## ## ## ## \____/
########## ####### ##### ######### (c) 2006 John Ohno
Licensed under the GNU LGPL
#####################################################################
#####################################################################
So you've downloaded ObjL. You're probably wondering what the hell it is, and why the hell you downloaded it. Or, alternately, you could be wondering how the hell someone came up with something so Insanely Great and how the hell to install it (hey, it could happen ^.~ ). Well, this document will (hopefully) answer all such questions, or at least point you to someone who can.
WHAT IS OBJL?
ObjL is Objective Lua, an attempt at making Lua object oriented. "Why," you may say, "when so many people have already done so -- and when most people simply implement a new one for each project!" Well, ObjL isn't just ANY oo system -- it is based upon the design goals of Objective C, and therefore aims to meet the following criteria:
- It provides a full Object Orientation system, including multiple inheritence, classes, constructors, and even some less common features like inheritence on object creation.
- It is very small and light -- simply a tiny upper layer to the language.
- It provides Objective C's concept of method forwarding -- allowing objects to field method calls to other objects, possibly across processes or a network, while making it seem as if the call was completely local to said object.
- It retains support for manual modification of objects and their contents, via any method used in pure lua.
- It provides all this without modifying the underlying language at all -- only extending it.
WHY USE OBJL?
- ObjL is small, light, and fast. The overhead is epsilon when compared to the flexibility and functionality it brings to the programmer.
- ObjL is pure lua -- no recompiling or messing with dynamic libraries.
- ObjL provides the functionality of an object orientation framework and an object brokering system to lua, in a small package.
WHAT ARE SOME GOOD APPLICATIONS FOR OBJL?
- Clustering
- Inter-process communication
- Behavior-based AI
- Games
- Desktop integration
- Network apps
- Home automation
- Anything that requires functional object orientation
INSTALLATION
See INSTALL file for details.
WHAT'S IN THE PACKAGE?
The package has a number of directories. They are:
- doc/ Documentation and tutorials (ASCII text; see doc/README for details on contents)
- examples/ Various code examples for applying ObjL
- lib/ The ObjL library itself
- src/ Various C/C++ code useful for C API developers
- tools/	A few utility scripts useful to users of this package
- test/ A few ObjL testing scripts
WHERE TO GET OBJL
For more details, new releases, help, and community interaction, check out:
http://luaforge.net/projects/objl
If you can't find anything to help you, and nobody knows the answer, as a last resort you can email me at:
john.ohno@gmail.com
Put "ObjL" in the subject line.
~John Ohno
President/Accela Labs
Lead Developer/ObjL
Note:
If you like ObjL and want to drop me a line in a fun way, send me a postcard:
John Ohno
Accela Labs
81 Pond Hill Rd
North Haven, CT
06473
USA
By the way, I don't want you dropping by my house -- trespassers are shot ;-)

About

An OO framework for Lua similar to that of Objective C, containing objects with multiple inheritence and forwarding to other objects, possibly between processes and machines.

Resources

Stars

1 star

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages