Examples
Below are some examples of using Autocode:
- JSON Stringify
- JSON Parse
- Express.js App
- Bower Config: .bowerrc
- Bower Package: bower.json
- Composer Package - composer.json
- Gruntfile
- Laravel Models
- PHP Config
- PIP Package
- README.md
- Redis Config - redis.conf
- Sequelize Model
JSON Stringify
Uses json.stringify.Engine to load spec as a JSON string:
imports
crystal/json latest
outputs
filename albums.json
engine json.StringifyEngine
spec
albums
artist Anniversary, The
title Designing a Nervous Breakdown
artist Cursive
title Burst and Bloom
artist Thrice
title The Illusion of Safety
{
"albums": [
{
"artist": "Anniversary, The",
"title": "Designing a Nervous Breakdown"
},
{
"artist": "Cursive",
"title": "Burst and Bloom"
},
{
"artist": "Thrice",
"title": "The Illusion of Safety"
}
]
}
JSON Parse
Uses json.parse.Processor to process a spec as a JSON object:
imports
crystal/json latest
outputs
filename albums.json
engine json.StringifyEngine
processor json.ParseProcessor
spec
albums
$processor json
$value"artist""Anniversary, The""title""Designing a Nervous Breakdown""artist""Cursive""title""Burst and Bloom""artist""Thrice""title""The Illusion of Safety"
{
"albums": [
{
"artist": "Anniversary, The",
"title": "Designing a Nervous Breakdown"
},
{
"artist": "Cursive",
"title": "Burst and Bloom"
},
{
"artist": "Thrice",
"title": "The Illusion of Safety"
}
]
}
Express.js App
Uses express.app.Generator to generate an Express.js app:
imports
crystal/express latest
outputs
generator express.AppGenerator
spec
port8080
# load modules
express = require 'express'
path = require 'path'
# create app
app = express()
# serve app
console.log 'Serving...'
app.listen 8080
Bower Config: .bowerrc
Uses bower.config.Generator to generate a .bowerrc
file:
imports
crystal/bower latest
outputs
generator bower.ConfigGenerator
spec
directory app/components/
analyticsfalse
timeout120000
registry
search
http://localhost:8000
https://bower.herokuapp.com
{
"analytics": false,
"directory": "app/components/",
"registry": {
"search": [
"http://localhost:8000",
"https://bower.herokuapp.com"
]
},
"timeout": 120000
}
Bower Package: bower.json
Uses bower.package.Generator to generate a bower.json
file:
imports
crystal/bower latest
outputs
generator bower.PackageGenerator
spec
name blue-leaf
version1.2.3
description Physics-like animations for pretty particles
main
js/motion.js
sass/motion.scss
dependencies
get-size ~1.2.2
eventEmitter ~4.2.11
devDependencies
qunit ~1.16.0
moduleType
amd
globals
node
keywords
motion
physics
particles
authors
Betty Beta <bbeta@example.com>
license MIT
ignore
'**/.*'
node_modules
bower_components
test
tests
{
"authors": [
"Betty Beta <bbeta@example.com>"
],
"dependencies": {
"get-size": "~1.2.2",
"eventEmitter": "~4.2.11"
},
"description": "Physics-like animations for pretty particles",
"devDependencies": {
"qunit": "~1.16.0"
},
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"keywords": [
"motion",
"physics",
"particles"
],
"license": "MIT",
"main": [
"js/motion.js",
"sass/motion.scss"
],
"moduleType": [
"amd",
"globals",
"node"
],
"name": "blue-leaf",
"version": "1.2.3"
}
Composer Package - composer.json
Uses composer.package.Generator to generate a composer.json
file:
imports
crystal/composer latest
outputs
generator composer.PackageGenerator
spec
name test
description test
require
monolog/monolog 1.0.*
{
"description": "test",
"name": "test",
"require": {
"monolog/monolog": "1.0.*"
}
}
Gruntfile
Uses grunt.file.Generator to generate a Gruntfile.js
file:
imports
crystal/git latest
crystal/grunt latest
crystal/npm latest
outputs
generator git.GitignoreGenerator
spec
items
node_modules/
generator grunt.GruntfileGenerator
spec
loadNpmTasks
grunt-contrib-sass
grunt-contrib-watch
registerTask
default
sass
config
pkg package.json
sass
dist
files
expandtrue
cwd src/sass
src
'**/*.scss'
dest src/public/css
ext .css
options
sourcemap none
style compressed
watch
files src/sass/**/*.scss
tasks sass
generator npm.PackageGenerator
spec
dependencies
grunt-contrib-sass latest
grunt-contrib-watch latest
module.exports = function(grunt) {
grunt.initConfig({
"pkg": "package.json",
"sass": {
"dist": {
"files": [{
"expand": true,
"cwd": "src/sass",
"src": [
"**/*.scss"
],
"dest": "src/public/css",
"ext": ".css"
}],
"options": {
"sourcemap": "none",
"style": "compressed"
}
}
},
"watch": {
"files": "src/sass/**/*.scss",
"tasks": "sass"
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['sass']);
};
Laravel Models
Uses laravel.model.Generator to generate models for Laravel:
imports
crystal/laravel latest
outputs
generator laravel.ModelGenerator
path model
spec
models
name post
attributes
name content
requiredtrue
type string
name user
attributes
name username
requiredtrue
type string
<?php
class Post extends Eloquent {
}
?>
<?php
class User extends Eloquent {
}
?>
PHP Config
Uses php.config.Generator to generate a php.ini
file:
imports
crystal/php latest
outputs
generator php.ConfigGenerator
spec
register_globalsfalse
include_path /usr/local
register_globals=false
include_path=/usr/local
PIP Package - requirements.txt
Uses pip.requirements.Generator to generate a requirements.txt
file:
imports
crystal/pip latest
outputs
generator pip.RequirementsGenerator
spec
requirements
Flask0.8
Jinja22.6
Werkzeug0.8.3
certifi0.0.8
chardet1.0.1
distribute0.6.24
gunicorn0.14.2
requests0.11.1
Flask==0.8
Jinja2==2.6
Werkzeug==0.8.3
certifi==0.0.8
chardet==1.0.1
distribute==0.6.24
gunicorn==0.14.2
requests==0.11.1
README.md
Uses readme.md.Generator to generate a README.md
file:
imports
crystal/readme latest
outputs
generator readme.ReadmeGenerator
spec
name readme
version1.2.3
description a readme test
# readme 1.2.3
a readme test
Redis Config - redis.conf
Uses redis.config.Generator to generate a redis.conf
file:
imports
crystal/redis latest
outputs
generator redis.ConfigGenerator
spec
daemonizetrue
port6379
timeout0
daemonize yes
port 6379
Sequelize Model
Uses sequels.model.Generator to generate models for Sequelize:
imports
crystal/sequelize latest
outputs
generator sequelize.ModelGenerator
path model
spec
models
post
attributes
content
requiredtrue
type string
user
attributes
username
requiredtrue
uniquetrue
type string
birthday
type date
var Post = sequelize.define('post', {
content: {
type: mysql.STRING
}
});
var User = sequelize.define('user', {
username: {
type: mysql.STRING
unique: true
}
birthday: {
type: mysql.DATE
}
});
Updated less than a minute ago