You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Meta Code is a set of metaprogramming utilities for CoffeeScript (inspired by Ruby).
Although you can achieve the same things by hard-coding everything, this package is good
because function names convey meaning, and is good to have consensus among developers.
Features
Curently, the folowing tools are provided (nicely documented in the code)
module
extend - copies the module object's methods onto an object
include - copies the module object's methods onto an object's prototype
includeInter - inject a shallow copy of the module object into an object's prototype chain
forward
forward - forward a method call to an object property
autoload
autoload - load a property from a file
extract_options
extract_options - extract options from function arguments
Install
Install with npm:
# install locally in "./node_modules"
npm install meta_code
# or use -g to install globally
npm install meta_code -g
# or add it as a dependecy to your package.json and run
npm install
Usage
Metacode consists of a series of tools like "forward" or "module" that aid you to inject code in your objects.
There are two interfaces that can be used:
Use via metaCode helper
metaCode=require'meta_code'# a "module" we'll be including in our classPower=sword:'katana'fight:->console.log@swordclassSamurai# Enable the module tool. Once enabled we can use this tool's methods # like 'extend' and 'include' in our object, because the tool's methods # get copied in our object
metaCode @, 'module'@include Power
Use directly
module=require'meta_code/tools/module'# require the tool# a "module" we'll be including in our classPower=sword:'katana'fight:->console.log@swordclassSamuraimodule.include.call@, Power