0.1.0 • Published 11 years ago

redscript v0.1.0

Weekly downloads
48
License
-
Repository
github
Last release
11 years ago

RedScript

A Ruby flavored superset of JavaScript

RedScript was created to provide a better syntax for AMD modules and to provide a few aliases to make things a bit nicer to work with.

It was also created as a side project to learn more about Node, NPM Modules and Regular Expressions. In the future I would also like to add a lexer/parser to implement more advanced features (feel free to fork!).

I would also like to let JavaScript's prototype goodness shine through by adding conviences and syntax to make working with straight objects and prototypes easier than using faux classes and constructors.

  • Better syntax for AMD modules
  • Better object inheritence
  • Easier ES5 object litterals
  • Alias { } with do end
  • Alias is, isnt, and, or with ===, !==, &&, ||
  • Arrow function
  • More explicet object literals
  • Define object methods with def keyword

Once I have a solid parser/lexer, I would like to implement:

  • optional parens
  • no var declarations (e.g. coffeescript/ruby/python)
  • possibly optional type checking? not sure how useful it would be

NPM module coming soon!

A better AMD RequireJS syntax

# define an anonymous AMD module & require deps    // # define an anonymous AMD module & require deps
define module                                        define(
require 'jquery' as $                                ["jquery","./libs/toolbox","backbone"], function($,_,Backbone) {
require './libs/toolbox' as tb
require 'backbone' as Backbone                       

# do stuff                                           // do stuff

export {                                              return {
  methodName: funcName                                 methodName: funcName
  methodName: funcName                                 methodName: funcName 
}                                                     }       
                                                    });
# define an anonymous AMD module and require dependancies
define module
require 'jquery' as $
require './utils/toolbox' as tb

function sayHello () {
  $('body').html('Hello World!');
}

# Arrow function in a callback
fs.readFile('/etc/passwd', (err, data) ->
  if (err) throw err;
  console.log(data);
});

# Alias @ with this.
model.on('change', @render)
define module
require 'jquery' as $
require './myFile' as baz

# Func alias
func sayHello () {
  alert("Hi!");
}

# alias { } with do end
func sayHello(msg) do
  alert(msg);
end

# Private blocks
foo = 200
private
  foo = 10
end
alert foo  # alerts 200

# Arrow function, great for parameters
mbtn.on 'click', ->
  $('.widget').slideToggle "slow"
end

# Paren free if/for/while
while foo is 200 do
  console.log "I'm looping forever"
end

See more syntax examples on RedScript's website (coming soon)

0.1.0

11 years ago

0.0.12

11 years ago

0.0.11

11 years ago

0.0.10

11 years ago

0.0.9

11 years ago

0.0.8

11 years ago

0.0.7

11 years ago

0.0.6

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.1

11 years ago