Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

strukt

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

strukt

Ruby inspired Structs for node and the browser.

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Structs for JavaScript inspired by Ruby

Ruby Structs are an awesome way to add several attributes to a class. Inspired by these, Strukt provides a similiar minimalistic API for JavaScript in the browser and in Node.

Installation

  • Node: $ npm install strukt

    var Struct = require('strukt');
    
  • Browser: Grab lib/strukt.js and include it in your HTML document.

    A global Struct function will be added. AMD and CommonJS loaders are also supported.


Basic structs

Simple. Pass the parameters you want to Struct, a new constructor function will be returned.

var Point = new Struct('x', 'y');
var p = new Point(42, 1337);
p.x; // 42
p.y; // 1337

Prefer CoffeeScript?

class Point extends new Struct 'x', 'y'
  # More class logic

p = new Point 42, 1337;
p.x # 42
p.y # 1337

Explicit structs

Explicit is better than implicit. The Zen of Python

Explicits structs are pretty much the same thing, but you pass an object to the returned constructor.

var Person = new Struct.Explicit('forename', 'surname');

var john = new Person({
	forename: 'John',
	surname: 'Doe'
});

john.forename; // 'John'
john.surname; // 'Doe'

Constructor functions

Maybe you'd like to add a constructor function to your Struct. If the last argument of Struct or Struct.Explicit is a function it'll used as a constructor function.

var Person = new Struct.Explicit('forename', 'surname', function () {
	alert('Welcome ' + this.forename + " " + this.surname);
});
new Person({
	forename: 'John',
	surname: 'Doe'
}); // Will alert 'Welcome John Doe'

Adding properties to the prototype

Struct and Struct.Explicit return functions, so you can just add properties to the prototype as always.

var Point = new Struct("x", "y");

Point.prototype.equals = function (pt) {
	return this.x == pt.x && this.y == pt.y;
}

Test suite

Visit spec/index.html in your browser to run the test suite.

Alternatively you can install testacular and enjoy the awesomeness

$ testacular start

It will launch several browsers and run the tests again if a a spec or the library code changes.

FAQs

Package last updated on 18 Dec 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc