Attr Accessor
Convenience factories for creating getter/setters.
Licensed under the MIT license, see LICENSE for more information.
Usage
Pass in an object to attr.reader
or attr.writer
to obtain a getter or setter
factory respectively:
get = attr.reader(object)
set = attr.writer(object)
CoffeeScript has had no elegant way of defining getter/setters, until now. Use its
destructuring syntax in combination with attr.accessor
to obtain both factories:
[get, set] = attr.accessor(object)
Use attr.accessors
when dealing with classes to obtain two prototypal /
instance-bound factories as well as two static factories:
[get, set, @get, @set] = attr.accessors(object)
Example
class Person
[get, set, @get, @set] = attr.accessors(@)
group = []
constructor: (@firstName, @lastName) ->
group.push @
get name: ->
"#{@firstName} #{@lastName}"
@get count: ->
group.length
new Person('John', 'Doe').name # John Doe
Person.count # 1
Browser Support
Development & Contribution
When contributing, please:
- Fork the repository
- Accompany each logical unit of operation with at least one test
- Open a pull request
- Do not include any distribution files