Skip to content
This repository has been archived by the owner on Mar 17, 2020. It is now read-only.
/ attr-accessor Public archive

Convenience factories for creating getter/setters

License

Notifications You must be signed in to change notification settings

timkurvers/attr-accessor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attr Accessor

Version Build Status Maintainability Test Coverage Known Vulnerabilities

Convenience factories for creating getter/setters.

Licensed under the MIT license.

Installation

Attr Accessor is available via npm:

npm install attr-accessor

Or for usage in the browser:

  • dist/attr-accessor.js
  • dist/attr-accessor.min.js

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)

ES2015 introduced classes and has support for getter/setters.

CoffeeScript, on the other hand, 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(this)

  group = []

  constructor: (@firstName, @lastName) ->
    group.push this

  get name: ->
    "#{@firstName} #{@lastName}"

  @get count: ->
    group.length
new Person('John', 'Doe').name # John Doe
Person.count # 1

Development & Contribution

Attr Accessor is written in ES2015, compiled by Babel, developed with Gulp and tested through Mocha.

Getting this toolchain up and running, is easy and straight-forward:

  1. Get the code:

    git clone git://github.com/timkurvers/attr-accessor.git
  2. Download and install Node.js – including npm – for your platform.

  3. Install dependencies:

    npm install
  4. Run npm run gulp which will automatically build and test the project when source files change.

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 (such as dist/attr-accessor.js)

About

Convenience factories for creating getter/setters

Resources

License

Stars

Watchers

Forks

Packages

No packages published