open-index/open-npm huggingface dataset:
npm package: @objj/jake
Description: Jake ====
Latest version: 1.1.6

Jake
====

Jake is a build tool similar to Make and Rake, but written in and for JavaScript. It's a port of Ruby's [Rake](http://rake.rubyforge.org/), which is inspired by the classic [Make](http://en.wikipedia.org/wiki/Make_(software\)) tool.

API
---

The API is very similar to the Rake API, though with JavaScript syntax.

- `jake.task(name, [dependencies], [action])`

Declares a task called "name", with an optional array of dependent tasks, and optional function to perform.

- `jake.file(path, [dependencies], [action])`

Like `task`, but only runs the action if the target file ("name") doesn't exist or was last modified before at least on dependency.

- jake.directory(directoryPath)
- jake.filedir(path, [dependencies], action)

*TODO: better API docs*

Example "Jakefile"
------------------

    var jake = require("jake");
    
    // prints "default":
    jake.task("default", function(t) {
        print(t.name());
    });
    
    // runs tasks "bar" and "baz"
    jake.task("foo", ["bar", "baz"]);
    
    // only runs if "bar" is older than "bar.source" or non-existant
    jake.file("bar", ["bar.source"], function() {
        // stuff to compile "bar.source" to "bar"
    });
    
    // does nothing
    jake.task("baz");

Example Usage
-------------

    # runs "default" task if no task names are given
    jake
    
    # runs "bar", "baz" dependent tasks, then "foo" task
    jake foo
    
    # runs "bar", "baz", "foo", and "default" tasks
    jake foo default
npm package: @objj/ojtest
Description: Test framework written in Objective-J used by the Cappuccino framework
Latest version: 1.0.3

OJTest
======

OJTest is a collection of Frameworks and Tools that aim to provide a comprehensive testing solution for Cappuccino applications.

Node
====

This is a first version that is adjusted to run on NodeJS. There are many things that are not working yet.

Install it with
```npm objj-ojtest
```

Run a test case with
```npx ojtest Test/OJAssertTest.j
```

Frameworks
==========

* OJUnit - an xUnit framework
* OJMoq  - a mocking framework
* OJSpec - a specification framework

Tools
=====

* OJAutotest - a tool to automatically test your Cappuccino application when you make changes
* OJCov - a coverage tool to help you identify code not covered by tests

Old Installation
================

Clone this repository and do a jake install

```bash
jake install
```

Contributors
============

* Klaas Pieter Annema
* Paul Baumgart
* Ross Boucher
* Antonio Salazar Cardozo
* Saikat Chakrabarti
* Andreas Falk
* Martin Häcker
* Derek Hammer
* Chandler Kent
* Tom Robinson
* Jared Santo
* Alexandre Wilhelm
* Martin Carlberg
npm package: @objj/runtime
Description: JavaScript (ECMAScript) and Objective-J runtime
Latest version: 1.2.4

Objective-J Runtime
=================

A Node runtime for the [Objective-J][objj] language.

[objj]: http://www.cappuccino-project.org/learn/objective-j.html

It uses an Objective-J to JavaScript [compiler][objj-transpiler] by Martin Carlberg.

[objj-transpiler]: https://github.com/mrcarlberg/ObjJAcornCompiler

## How to use

Install using npm

```
npm install objj-runtime
```

Make sure you have grunt commandline installed. If not install with

```
npm install -g grunt-cli

```

Compile and build the runtime with grunt from inside the objj-runtime directory.

```
grunt
```

Copy a built Cappuccino Foundation framework to the Framework directory. You might need to create the Framework directory inside the objj-runtime directory.

Create an Objective-J main.j file

```
@import <Foundation/Foundation.j>

@implementation MyClass : CPObject

- (CPString)myMethod {
    return [CPString stringWithFormat:@"Node version: %@", process.version];
}

@end

function main(args, namedArgs)
{
    console.log("Hello World");
    console.log([[[MyClass alloc] init] myMethod]);
}
```

Compile and run
```
bin/objj main.j
```

You can debug with the node-inspector and Chrome.

```
node --inspect-brk bin/objj main.j
```

A framework that is already built can be use if placed inside the Framework directory.

To update the Objective-J runtime you need to copy the files from the Cappuccino Objective-J directory into the Objective-J directory. (This will not work yet as there are some changes to the Objective-J runtime that is not pushed to the Cappuccino project. Should work if you merge in your changes)

Compile and build the runtime with grunt

```
grunt
```

There are many things that don't work yet. For example you can't just compile your files. You have to compile and run.

## Example

Example of very simple backend webserver in Objective-J can be downloaded [here][objj-node-webserver] as a zip file.

[objj-node-webserver]: http://mini.carlberg.org/dev/objj-node-webserver.zip

Start the backend webserver from the command prompt with
```
bin/objj main.j
```

From another command prompt json data can be stored with:
```
curl 127.0.0.1:1337/Name/42 -d '{"name": "martin"}'
```

It can be retrieved with:
```
curl 127.0.0.1:1337/Name/42
```

The url uses a pattern with entity and identifier for storage. It looks like this:
```
curl 127.0.0.1:1337/<entity>/<identifier>
```