Browse Source

amber init

Herbert Vojčík 8 years ago
parent
commit
1c6276ee90
15 changed files with 288 additions and 0 deletions
  1. 7 0
      .gitignore
  2. 116 0
      Gruntfile.js
  3. 37 0
      bower.json
  4. 2 0
      config-browser.js
  5. 7 0
      config-node.js
  6. 8 0
      deploy.js
  7. 9 0
      devel.js
  8. 25 0
      index.html
  9. 5 0
      local.amd.json
  10. 42 0
      package.json
  11. 9 0
      src/Sedux-Tests.js
  12. 5 0
      src/Sedux-Tests.st
  13. 6 0
      src/Sedux.js
  14. 1 0
      src/Sedux.st
  15. 9 0
      testing.js

+ 7 - 0
.gitignore

@@ -0,0 +1,7 @@
+/node_modules/
+/bower_components/
+
+/test_runner.js
+
+/config.js
+/the.js

+ 116 - 0
Gruntfile.js

@@ -0,0 +1,116 @@
+'use strict';
+
+module.exports = function (grunt) {
+    var path = require('path'),
+        helpers = require('amber-dev').helpers;
+
+    // These plugins provide necessary tasks.
+    grunt.loadNpmTasks('grunt-contrib-clean');
+    grunt.loadNpmTasks('grunt-contrib-requirejs');
+    grunt.loadNpmTasks('grunt-execute');
+    grunt.loadNpmTasks('amber-dev');
+
+    // Default task.
+    grunt.registerTask('default', ['amdconfig:app', 'amberc:all']);
+    grunt.registerTask('test', ['amdconfig:app', 'requirejs:test_runner', 'execute:test_runner', 'clean:test_runner']);
+    grunt.registerTask('devel', ['amdconfig:app', 'requirejs:devel']);
+    grunt.registerTask('deploy', ['amdconfig:app', 'requirejs:deploy']);
+
+    // Project configuration.
+    grunt.initConfig({
+        // Metadata.
+        // pkg: grunt.file.readJSON(''),
+        banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
+        '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
+        '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
+        '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
+        ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n',
+        // task configuration
+        amberc: {
+            options: {
+                amber_dir: path.join(__dirname, "bower_components", "amber"),
+                configFile: "config.js"
+            },
+            all: {
+                src: [
+                    'src/Sedux.st', // list all sources in dependency order
+                    'src/Sedux-Tests.st' // list all tests in dependency order
+                ],
+                amd_namespace: 'sedux',
+                libraries: ['amber_core/SUnit']
+            }
+        },
+
+        amdconfig: {app: {dest: 'config.js'}},
+
+        requirejs: {
+            options: {
+                useStrict: true
+            },
+            deploy: {
+                options: {
+                    mainConfigFile: "config.js",
+                    rawText: {
+                        "amber/compatibility": "/*stub*/",
+                        "amber/Platform": "/*stub*/",
+                        "app": 'define(["deploy"],function(x){return x});'
+                    },
+                    pragmas: {
+                        excludeIdeData: true,
+                        excludeDebugContexts: true
+                    },
+                    include: ['config', 'config-browser', 'node_modules/requirejs/require', 'app'],
+                    optimize: "uglify2",
+                    out: "the.js"
+                }
+            },
+            devel: {
+                options: {
+                    mainConfigFile: "config.js",
+                    rawText: {
+                        "amber/compatibility": "/*stub*/",
+                        "amber/Platform": "/*stub*/",
+                        "app": 'define(["devel"],function(x){return x});'
+                    },
+                    include: ['config', 'config-browser', 'node_modules/requirejs/require', 'app'],
+                    exclude: ['devel'],
+                    out: "the.js"
+                }
+            },
+            test_runner: {
+                options: {
+                    mainConfigFile: "config.js",
+                    rawText: {
+                        "app": "(" + function () {
+                            define(["testing", "amber_devkit/NodeTestRunner"], function (amber) {
+                                amber.initialize().then(function () {
+                                    amber.globals.NodeTestRunner._main();
+                                });
+                            });
+                        } + "());"
+                    },
+                    paths: {"amber_devkit": helpers.libPath},
+                    pragmas: {
+                        excludeIdeData: true
+                    },
+                    include: ['config-node', 'app'],
+                    insertRequire: ['app'],
+                    optimize: "none",
+                    wrap: helpers.nodeWrapperWithShebang,
+                    out: "test_runner.js"
+                }
+            }
+        },
+
+        execute: {
+            test_runner: {
+                src: ['test_runner.js']
+            }
+        },
+
+        clean: {
+            test_runner: ['test_runner.js']
+        }
+    });
+
+};

+ 37 - 0
bower.json

@@ -0,0 +1,37 @@
+{
+  "name": "sedux",
+  "description": "Redux-inspired framework for (Amber) Smalltalk.",
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "/*.js",
+    "/*.html",
+    "test",
+    "tests"
+  ],
+  "authors": [
+    {
+      "name": "Herbert Vojčík",
+      "email": "herby@mailbox.sk"
+    }
+  ],
+  "homepage": "https://github.com/herby/sedux",
+  "keywords": [
+    "Amber",
+    "Smalltalk",
+    "Redux"
+  ],
+  "license": [
+    "MIT"
+  ],
+  "private": false,
+  "dependencies": {
+    "amber": ">=0.15.0"
+  },
+  "devDependencies": {
+    "amber-contrib-legacy": "^0.3.0",
+    "amber-ide-starter-dialog": "^0.1.0",
+    "helios": "^0.6.0"
+  }
+}

+ 2 - 0
config-browser.js

@@ -0,0 +1,2 @@
+define("amber/Platform", ["amber_core/Platform-Browser"], {});
+define("amber/compatibility", ["amber/browser-compatibility"], {});

+ 7 - 0
config-node.js

@@ -0,0 +1,7 @@
+// This file is used to make additional changes
+// when building an app to run in node.js.
+// Free to edit. You can break tests (cli test runner uses
+// this to build itself - it is a node executable).
+define("amber/Platform", ["amber_core/Platform-Node"], {});
+define("amber/compatibility", ["amber/node-compatibility"], {});
+define("jquery", {});

+ 8 - 0
deploy.js

@@ -0,0 +1,8 @@
+define([
+    'amber/deploy',
+    // --- packages to be deployed begin here ---
+    'sedux/Sedux'
+    // --- packages to be deployed end here ---
+], function (amber) {
+    return amber;
+});

+ 9 - 0
devel.js

@@ -0,0 +1,9 @@
+define([
+    './testing',
+    'amber/devel',
+    // --- packages used only during development begin here ---
+    'amber/legacy/IDE'
+    // --- packages used only during development end here ---
+], function (amber) {
+    return amber;
+});

+ 25 - 0
index.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+
+  <head>
+    <title>sedux</title>
+    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+    <meta name="author" content="Herbert Vojčík" />
+    <script type='text/javascript' src='the.js'></script>
+  </head>
+
+  <body>
+  <script type='text/javascript'>
+      require(['app'], function (amber) {
+          amber.initialize({
+            //used for all new packages in IDE
+            'transport.defaultAmdNamespace': "sedux"
+          }).then(function () {
+              require(["amber-ide-starter-dialog"], function (dlg) { dlg.start(); });
+              amber.globals.Sedux._start();
+          });
+      });
+  </script>
+  </body>
+
+</html>

+ 5 - 0
local.amd.json

@@ -0,0 +1,5 @@
+{
+    "paths": {
+        "sedux": "src"
+    }
+}

+ 42 - 0
package.json

@@ -0,0 +1,42 @@
+{
+  "name": "sedux",
+  "title": "sedux",
+  "description": "Redux-inspired framework for (Amber) Smalltalk.",
+  "version": "0.0.1",
+  "homepage": "https://github.com/herby/sedux",
+  "author": {
+    "name": "Herbert Vojčík",
+    "email": "herby@mailbox.sk"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/herby/sedux.git"
+  },
+  "bugs": {
+    "url": "https://github.com/herby/sedux/issues"
+  },
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "https://github.com/herby/sedux/blob/master/LICENSE"
+    }
+  ],
+  "engines": {
+    "node": "0.10.x || 0.12.x || >=4.0.0"
+  },
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "amber-dev": "^0.8.2",
+    "grunt": "^0.4.5",
+    "grunt-contrib-clean": "^0.7.0",
+    "grunt-contrib-requirejs": "^0.4.4",
+    "grunt-execute": "^0.2.2",
+    "requirejs": "^2.1.15"
+  },
+  "keywords": [
+    "Amber",
+    "Smalltalk"
+  ]
+}

+ 9 - 0
src/Sedux-Tests.js

@@ -0,0 +1,9 @@
+define("sedux/Sedux-Tests", ["amber/boot", "amber_core/SUnit"], function($boot){"use strict";
+var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
+$core.addPackage('Sedux-Tests');
+$core.packages["Sedux-Tests"].innerEval = function (expr) { return eval(expr); };
+$core.packages["Sedux-Tests"].transport = {"type":"amd","amdNamespace":"sedux"};
+
+$core.addClass('SeduxTest', $globals.TestCase, [], 'Sedux-Tests');
+
+});

+ 5 - 0
src/Sedux-Tests.st

@@ -0,0 +1,5 @@
+Smalltalk createPackage: 'Sedux-Tests'!
+TestCase subclass: #SeduxTest
+	instanceVariableNames: ''
+	package: 'Sedux-Tests'!
+

+ 6 - 0
src/Sedux.js

@@ -0,0 +1,6 @@
+define("sedux/Sedux", ["amber/boot"], function($boot){"use strict";
+var $core=$boot.api,nil=$boot.nil,$recv=$boot.asReceiver,$globals=$boot.globals;
+$core.addPackage('Sedux');
+$core.packages["Sedux"].innerEval = function (expr) { return eval(expr); };
+$core.packages["Sedux"].transport = {"type":"amd","amdNamespace":"sedux"};
+});

+ 1 - 0
src/Sedux.st

@@ -0,0 +1 @@
+Smalltalk createPackage: 'Sedux'!

+ 9 - 0
testing.js

@@ -0,0 +1,9 @@
+define([
+    './deploy',
+    'amber_core/SUnit',
+    // --- packages used only during automated testing begin here ---
+    'sedux/Sedux-Tests'
+    // --- packages used only during automated testing end here ---
+], function (amber) {
+    return amber;
+});