Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    jobjectpublic

    Jobject

    A class that adds properties to your class that are easily overriden and maintain direct accessors. Similiar to objective-c @property and @synthesize.

    Jobject = require './'
     
    class MyClass extends Jobject
      @property 'name'
     
      @property 'title'''
        get: ()->
          return 'TITLE: ' + @_title
      
      @property 'author'''
        get: ()->
          return @_author + '!!!!'
        set: (author)->
          @_author = 'AUTHOR: ' + author
     
    myClass = new MyClass()
    myClass.name = 'Jesse Earle'
    myClass.title = 'Fruit Loop'
    myClass.author = 'Stephen King'
     
    console.log(myClass.name) # Jesse earle 
    console.log(myClass.title) # TITLE: Fruit Loop 
    console.log(myClass.author) #AUTHOR: Stephen King!!!! 

    Features

    • A simple way to attach getters and setters to your classes
    • Similarity Objective-C @property and @synthesize
    • Reduce redundant code
    • Access properties with the simple dot syntax

    Usage

    Create a class that extends Jobject

    class MyClass extends Jobject
      @property 'name'

    This class now has the following properties:

    • _name
    • name

    The _name property provides direct access to the value of the property.

    The name property on the other hand actually points to a getter and setter function, but you still access it normally:

    myClass = new MyClass()
    myClass.name = 'Jesse'
    console.log myClass.name # logs: Jesse 

    You can also give a default value to the property:

    class MyClass extends Jobject
      @property 'name''Default'
     
    myClass = new MyClass()
    console.log myClass.name # logs: Default 

    If you do not provide a default value it will point to null. Note that the property will exist on the instance.

    Overriding the getter and setter is simple:

    class MyClass extends Jobject
     
      @property 'name''',
        get: ()->
          return @_name + '!'
        set: (name)->
          @_name = '!' + name
     
    myClass = new MyClass()
    myClass.name = 'Jesse'
    console.log myClass.name # logs: !Jesse! 

    Keywords

    none

    install

    npm i jobject

    Downloadslast 7 days

    0

    version

    0.0.2

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar