Skip to content

Instantly share code, notes, and snippets.

@francescoagati
Created September 29, 2013 00:27
Show Gist options
  • Save francescoagati/6748072 to your computer and use it in GitHub Desktop.
Save francescoagati/6748072 to your computer and use it in GitHub Desktop.
metaprogramming for coffeescript
meta = (context,fn) ->
def =
accessors: (names...) -> @accessor(name) for name in names
accessor: (name) ->
context["get_#{name}"] = -> @[name]
context["set_#{name}"] = (v) -> @[name] = v
fn(def)
class Pippa
meta @::, (def) ->
def.accessors 'name','surname'
x=(new Pippa)
x.set_name('aaaa')
x.set_surname('abaaa')
alert x.get_surname()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment