JS.Class

Software Screenshot:
JS.Class
Software Details:
Version: 4.0.5
Upload Date: 13 May 15
Developer: James Coglan
Distribution Type: Freeware
Downloads: 35

Rating: 4.0/5 (Total Votes: 1)

It is a port and advanced implementation of Ruby's core object/module/class system in JavaScript code, as well as several standard Ruby libraries and various other extensions.

Features:

  • General Features:
  • Method binding
  • Ruby-like object system with classes, mixins, and singleton methods
  • Late-binding arguments-optional super calls to parent classes and mixins
  • Included, extended and inherited hooks
  • Reflection APIs for the object system
  • Conventions for object equality, comparison, iteration and hashing
  • Versions of various standard Ruby modules and data structures
  • Works with:
  • Node
  • V8
  • Rhino
  • Narwhal
  • SpiderMonkey
  • Windows Script Host

What is new in this release:

  • Renamed MethodChain#_() to MethodChain#__() to avoid clobbering Underscore in test suites.

What is new in version 4.0.3:

  • Don't treat null as an error when passed to async test callbacks.
  • Be strict about whether stubbed functions are called with new or not.
  • Added withNew() as a stub modifier to replace stub('new', ...).
  • Added on(target) as a stub matcher for checking the this binding of a call.

What is new in version 4.0.2:

  • Change AsyncSteps so it wraps all calls to before(), it() and after() so that each block waits for all the steps it queues to complete.

What is new in version 4.0.1:

  • Fixed indexing bug in dynamic generation of autoload.require lists.

What is new in version 3.0:

  • All components now run on a much wider array of platforms
  • JS.Class is now tested using its own test framework, JS.Test.
  • New libraries: Benchmark, Console, Deferrable, OrderedHash, Range, OrderedSet, TSort.
  • HashSet has become the base Set implementation, and the original Set implementation has been removed
  • StackTrace has been totally overhauled to support extensible user-defined tracing functionality
  • New core method Module#alias() for aliasing methods
  • User-defined keyword methods using Method.keyword()
  • JS.Class no longer supports subclassing the Class class
  • Module#instanceMethod() returns a Method, not a Function
  • Enumerable#grep() now supports selecting by type, e.g. items.grep(Array). It does not support functional predicates like items.grep(function(x) { return x == 0 }), you should use Enumerable#select() for this
  • Objects with the same properties, and Arrays with the same elements are now considered equal when used as Hash keys
  • MethodChain#fire() is now called MethodChain#__exec__()
  • JS.Ruby has been removed

What is new in version 2.1.5:

  • Adds support for Node, Narwhal and Windows Script Host to the JS.Package loading system.
  • Adds an `autoload` macro to the package system for quickly configuring modules using filename conventions.
  • Renames `require()` to `JS.require()` so as not to conflict with CommonJS module API.

Requirements:

  • JavaScript enabled on client side

Similar Software

Bacon.js
Bacon.js

10 Feb 16

facade
facade

13 May 15

RPy
RPy

9 Apr 16

EvoSynth
EvoSynth

12 May 15

Other Software of Developer James Coglan

Faye
Faye

10 Dec 15

Comments to JS.Class

Comments not found
Add Comment
Turn on images!