dawo 0.0.75

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 50

dawo 0.0.75

https://img.shields.io/pub/v/box2d.svg

https://pub.dartlang.org/packages/dawo

Minor version now; saving efforts now and not modifying documentation and comments. Learning Dart; by building complicated Dart package with many libraries. Organizing it, finding it's inner connections and developing multipurpose methods. Beginner Dart programmers kickoff to learn by developing a glorious package. Latest code in GitHub: https://github.com/heiklap/dawo

  • Read: /doc/hist_versions.txt in gitHub to see full changes to this, and coming versions.
  • Blog: http://dawopack.blogspot.fi/search/label/dawo
  • Dependencies: Dawo is using my other package: dawolang: 0.0.1, for word recognition in connector.

Usage

// Mission Class has wide access to data, since they have instances of
// Chore classes inside them, in choresL : List<CommmonChore>   
// Example files here rolls only once, without loops, and output their data in console.
// To run dawoApp in rumba demands two imports:
import 'package:dawo/rumba.dart';
import 'package:dawo/dawo_app.dart';
///  Instance of dawoApp is already created inside package.
dawoApp.name = 'Play-rumba:dawoApp';
dawoApp.motto = 'By: dawo_example: dawoApp rolls missioms');
//  or using init:
dawoApp.init(':dawpApp:daily:bundle:', 'By: :daily:bundle:test:');

var rumba = new Rumba();

// This returns in addition a StringBuffer, that is not used here.
rumba.dance(dawoApp);
// Example apps presents output-data on windows console in flow, or in two kind of boxes. 

Packages shape

Purpose and direction of this package: do one clearly restricted thing and do it well.
Not commercial program; using promos, demos to imitate realWorld functionality.
Extra functionality is done by plugins that connect to other packages.

Brainstorming

Get people together, let they present ideas, collect best ideas to libraries and group them meaningfully. Start building first new classes, but keep your mind open for intuitive solutions.

Practise to use Dawo by finding it's properties in editor, and think their importance in app.

Versions

First dawo version was kind of artistic mess, as a consequence of long-time brainstorming. Dawo 0.0.1 shows starter programmers confusion, and records ways and steps out of this mess to clarity and understanding. Latest code in GitHub: https://github.com/heiklap/dawo

0.0.1 demonstrates how data is messy, when it is not inside classes. But you have direct instant access to every piece of it. Check for pollution of public namespace!!

0.0.3 Was for building first control-flow structure (Rumba.dance) to use Class-data inside app. Theme: Present different Mission ( = Client / customer) data and small, elementary work-flow. Chores ( 7 chores by default in every Mission). dawo_example.dart gives 14 screen-full data output.

0.0.4 Version Theme: Statistics, output, variation, versatility, documentation in doc-folder. dawo_example.dart gives 11 -36 screen-full data output.

0.0.5 High level connections between objects, placard, glb, commonOp and states.
0.0.6 box_serve presentation and corporate.
0.0.7 Connector and #say language, scout class and join.

0.0.75 Mission act Map. Instance of dawoApp is now created inside app.

Files;

code_snippets, learn / copy-paste stuff:

  • aldente_func : Simple functions, including some logical errors. Can you spot errors?!
  • bat_loop : Control flow structure samples.
  • learn_stream_sync : Examples of simple Streams. So. async stuff.

app files

  • alpha : Structuring base classes. These two libraries do not depend other dawo files.

  • beta : Develop common properties, that other libraries should depend on.

  • dawo.dart : main file, exports : dawo_src.dart.

  • dawo_app : DawoApp class, handles Missions and keeps out-put-buffers in Map.

  • dawo_src : File created by stagehand plugin app.

  • mill : Plan: processing commands orderly, all they in row, by given priorities.

  • rumba.dart : Rumba classes .dance method runs here dawo's control-flow (once)

  • shower.dart : presentations on console, mostly box-shaped. src/box_serve.dart makes it better!

  • tools : Helper tools, sleep, stamps, lists aso.Helper functions for cl (command line)and screen output.

  • mis/missions : Chunk of command-processing between app and chore. Caring Chores. Missions keep and process data ( #clay) of their favorite area.

  • mis/chore : Start of bigger "job" / "chore" for real-world-work. Imitating functionality of other, bigger, same kind of library.

  • mis/effort.dart : Human activities, chores sub, main user-activity and presentation.

  • mis/equipment.dart : Controlling material resources for Mission and Chore.

  • mis/camp : Scout class has connected objects stuff.

  • corp-folder has corporate, affair, resolve and store classes.

  • corp/connector.dart Connecting ( as #client's) app - mission - chore together, mediating them. Seeking deep, inner connections of objects.

  • clay-folder has data

  • (? dawlib_coll : Resources. Examples and hacking material of Dart collections. Missing / todo)

  • dawo_dev : Classes and data, that help in developing this package.

  • src/box_serve gives frames for box_shaped cl outputs.

  • src/glb keeps global variables.

Creating Dawo variables in new file:

// play with them in IDE:
dawoApp.   //  dot notation gives you hint of classes properties.
var mission = new Mission('#name','#state');  //  #state  ? :)
mission.

var ch = new Chore('#name','info');
// play with them:
ch.
///  connector is in very early state
var connector = new Connector('name','info');
connector.

// Using Dawo in your web app: (Dawo do not include HTML-code)

Add to your pubspec.yaml:
dependencies:
  dawo: 0.0.7
  
dev_dependencies:
  browser: ^0.10.0
  dart_to_js_script_rewriter: ^1.0.1
  
//  your main.dart
import 'dart:html';
import 'package:dawo/dawo.dart';
import 'package:dawo/rumba.dart';
import 'package:dawo/dawo_app.dart';    
  
main() {
  //  Create classes as above. Or copy code from: Usage:
  
  var dawoApp = new DawoApp('Pplay-rumba:dawoApp', 'By: dawo_example: dawoApp rolls missioms');
  var rumba = new Rumba();
  rumba.dance(dawoApp);
}
// Run code in browser and check console output: Ctrl-Shift-i 
// Or make html templates that catch output to text fields / elements.

About variable names and Classes in Dawo

Play in IDE editor with alphabet: a..z to see, what variables are available. See how common namespace might become polluted with unnecessary stuff, and try to find a way, to organize them/ your variables to meaningful classes.

Like: goals, teams, temps morn, night, day dev, make, init

Test objects in code_snippets-folder / learn... -section. These files might be best, when copy-pasted and studied in computer.

Joker.., aldente...  bat...

sleep(), start..()  
render....()

ride....()   roll(....) 
// Watch: init.. build.. roll.. show.. done method-cycle.

Features and bugs

Please file feature requests and bugs at the issue tracker.

Changelog

0.0.75

  • Chore and Mission modification.

0.0.7

  • Connector - scout.join

0.0.6

  • Box_serve console presentation.

0.0.5

  • Effort, diagonal and schedule console output.

0.0.4

  • Console output of mission, chore, dev; in box-form.

0.0.3

  • Rumba.dance() method rolls mission-chore data.

0.0.2

  • Classes are ready but no client data or roll-all.

0.0.1

  • Elementary messy data, waiting for pruning and classification.

example/dawo_example.dart

// Copyright (c) 2017, Heikki K Lappalainen. All rights reserved. Use of this source code
// is governed by a BSD-style license that can be found in the LICENSE file.
///  *  dawo_example   dawo version   0.0.7. - 18.12.2017
///  *  dawo_example creates 28 screens of console output data presentation.
///  * Find:  :con: :connector: :opCom:  :corporate:

import 'package:dawo/dawo.dart';

///  watch difference, when importing dawo/dawo_src.dart
///  dawo_src only #imports all dawo files except dawo.dart
///  dawo.dart exports: export 'package:dawo/dawo_src.dart';

///


import 'package:dawo/alpha.dart';
import 'package:dawo/beta.dart';
import 'package:dawo/dawo_app.dart';
import 'package:dawo/shower.dart';
import 'package:dawo/rumba.dart';
import 'package:dawo/tools.dart';

import 'package:dawo/mis/camp.dart';
import 'package:dawo/mis/chore.dart';
import 'package:dawo/mis/missions.dart';

import 'package:dawo/corp/bind.dart';
import 'package:dawo/corp/connector.dart';
import 'package:dawo/dev/dawo_dev.dart';
import 'package:dawo/src/glb.dart';
import 'package:dawo/src/box_serve.dart';


//  Unused package is marked with grey, and #warning.
//  import 'package:dawo/mill.dart';

//  You can use any name for classes, that you create:
//  var da = new DawoApp('exampleApp', 'Testing in dawo_example');

/// Mill class is planned to be method runner / scheduler of dawo.
//  var mill = new Mill();

//  Example, how extra instance of mission is created:
//  var missionX = new Mission('Mission-class', 'example:dawo_example');

//  Made by Google Stagehand automatically, when creating a new package.
//  This serves as an example of class, and user can develop it further.
var awesome = new Awesome();
//  When you try code below, you can see 6 properties of awesome class.
//  awesome.

//  Used once here to run method roll()
///  2. parameter must be class with name and say properties
var ch = new CommonChore('ChoreInDawoExample','myMusicMission', 'Test-Chore');

//  create classes, that do not already have an instance inside dawo::
//  Instance is not created here beginning from 12-2017  0.0.7+
//  var dawoApp = new DawoApp(':play-rumba-test:dawoApp',
//    'By: dawo_example.dart: dawoApp rolls missioms');
var rumba = new Rumba();

///  Data fields:
///  Information of #user for :con:  :opCom: and :corporate:
Map<String, String> placardM = {
  'actor': 'D-example',
  'sender': 'Dawo example',
  'receiver': 'D-ex-loops',
  'command': 'D-ex-cmd:',
  'msg': 'D-ex-msg:',
};

///  Local variables for this presentation.
bool _pB = true; //  Boolean value used to control printing.
String dexS = ':d:ex:'; //  Prefix for print messages and easy find.
int dexC = 0; //  counter for activities in this example.
String connectorMsg = ':ORDER of :OUTER process is :ANY KIND ';

///  For 0.0.6, main function is 17.11.2017 separated to small functions.
///  In dawo package there is no main-function. Only in example files.
///  Every dart program starts it's execution from main method.
main() {
  dawoApp.init(':dawo_example:','Testing in dawo_example' );

  glb.dawoLogo.forEach(print);
  devBox(':d:ex:main:', ['* header *', '* footer *'], [glb.keyWords, glb.keyWordsSmall], 28);
  devBox('By:dev:versions:',['* header *', '* footer *'],  [tl.mapToFineList(dev.later, 75, 20) ,tl.mapToFineList(dev.version008 , 75, 20)], 24);
  var sw = new Stopwatch()..start();
  DateTime start = new DateTime.now();

  ///  Call function that adds #actor and #count to this String and prints it.
  exInfo('==>>==>>==   dawo_example    ==>>==>>==');

  print(':glb:print:states:  set to false. only :buf: used');
  print(glb.prSt);
  print('-- Change print status: glb.setGlbPrint(true or false) ------');
  glb.box(dexS);

  exInfo('==>>==>>==   dawo_example  awesome: ${awesome.isAwesome}');

  ///  All connector activity is marked with: :connector: in output.
  //  exInfo('==>>==>>==   dawo_example calling :connector:    ==>>==>>==');
  //  Later:  connectorOp(dexS); //  function below.

  // This method also returns a StringBuffer, that is not used here.
  rumba.dance(dawoApp); //  15 screens of output.

  exampleMethodsPlay(); //  Add more 13 screens output.
  bind.report('$dexS');
  dawoApp.box(dexS); //  2. time here-

  connectorOp(dexS);
  exInfo('    ==<<==<<==    dawo_example done    ==<<==<<==');

  print("Executing dawo_example.dart took: ${sw.elapsed}us");
  DateTime stop = new DateTime.now();
  print(' \nStopTime::  $stop');
  print(stop.difference(start));
  print('FlowServe calls::   $flowI ');
  boxServeTemplate();
  packDawoMission.joyChr.box(':dawoExample:call:joyChr:box:');
  print('.......... :glb:boxServe:buf: length and names  ................');
  print(glb.boxServeBuffers.length);
  for (var z in glb.boxServeBuffers.keys) {
    print(glb.boxServeBuffers[z].length);
    print(z);
  }
  //  glb.boxServeBuffers.keys.forEach(print);

  //  testing infoBox in boxServe
  //  infoBox(Map<String,String> inM, int _k, _v, [int margin]){
  //  using:  dawoApp.say.
  /// NOTE  all Map to List rows, here 8, are printed.
  List<String> infoOne = boxServe.infoBox(dawoApp.say, 8, 57, 9);
  infoOne.forEach(print);
 //   packDawoMission.say
  print('----  second info box  ----');
  List<String> infoTwo = boxServe.infoBox(packDawoMission.say, 8, 40, 19);
  infoTwo.forEach(print);

  //print buffer: print(glb.boxServeBuffers[':dawoHist:dailyAction:friday:6']);
  print('---- main done   ');
} //  -----  end of main.

///  From dailyAction
void boxServeTemplate() {
  print('---------- :boxServe:dawoLogo: :temporary:hack:   ----------------');
  DawoHist dawoHist = new DawoHist();
  dawoHist.init();
  dawoHist.build('_emblemString', '_masterString');
  dawoHist.roll();
  dawoHist.buf.writeln(':dailyAction:friday:');

  ///  TODO  hosTo handle:  in boxServe there are:  title and footer.
  boxServe.init(36, 175, '_');

  ///  Table name and glb.buffer name
  boxServe.construct(
      ':dawoHist:dailyAction:friday:', ':dawoHist:dailyAction:friday:');

  ///  BaseStruct fields:  boxLayoutDap(BaseStruct _model, String _rubric)
  boxLayoutDap(dawoHist, ':dawoHist:dailyAction:friday:');
  boxServe.show(':dailyAction:test:', 'print', 3);
  boxServe.done(':dailyAction:test:');
}

///  To allow easy-run of these 8 separated activities.
void exampleMethodsPlay() {
  exampleMission();

  ///  Calling Class scheduleBox method, in dawo/shower.dart
  ///  Nice screen of collected data in boxed for,
  scheduleBox.roll('$dexS');

  lonelySampleChore();
  sampleDawoBuffers();

  exInfo('==>>==>>==   calling choreEffort---------- dawo sets, goals:');
  choreEffort('$dexS');
  exInfo('    ==<<==<<==    calling choreEffort done  dawo sets, goals:');

  sampleJsonData();
  connectorExampleReport();
  //  deprecated  schedulePlay();
}

///  Form  message row to easy-find and print it if: _pB
void exInfo(String msg) {
  dexC++;
  String dexCS = dexC.toString();
  //  String: -exInfo appended here, as an example. It is 16 times in output.
  String _msg = ' -exInfo $dexS $dexCS $msg';
  if (_pB) print(_msg);
}

///  Place where :corporate:  :opCom:  and :connector: play together.
void connectorOp(String caller) {
  connector.join('DawoExample', placardM, connectorMsg, ':Dawo:example:');
  connector.roll();
  connector.box(':d:ex:');
}

//  TODO  #IDEA: for courier carrier, to do something really nice.
//  :courier: marks this message carriage functions activity.
void courierMessage() => print('d-ex-exmpl: * *  :courier: Mission!. * * ');

///  This class instance has been created in dawo, and it is usable here.
void exampleMission() {
  exInfo('    ==<<==<<==    roll mission op/ init -open - roll: -close==<<==');
  exInfo('\n ==>>==>>==   rolling :packDawo:Mission:    ==>>==>>==');

  ///  Eventually opRoll handles all these others.
  scout.init(1, 'empty parameter');
  scout.open(2, 'second empty parameter');
  //  calls void function that prints a String.
  //  In front of String is line feed, and another String with interpolation.
  exInfo('\n $dexS-:dw:ex: -----------  rolling :courier:Message: ------ ');
  scout.roll(3, courierMessage);
  exInfo('  - -:dw:ex: -----  rolling :courier:mission: opFunc  done ---\n');
  scout.close(); //  No  parameters.
  scout.report();

  exInfo('    ==<<==<<==    rolling :packDawo:Mission: done    ==<<==<<==');
  //  When you print row below, you can see all methods.
  //  packDawoMission.
}

///
void lonelySampleChore() {
  exInfo('\n ==>>==>>==   rolling lonelySampleChore    ==>>==>>==');

  ///  Sample lonely Chore, that is created here
  ch.roll();
  ///  TODO  This chore do not have master field set.
  ch.master = 'MyMusicMission';
  ch.box(':app:chore:play:');
  exInfo('    ==<<==<<==    rolling lonelySampleChore: done    ==<<==<<==');
}

///
void sampleDawoBuffers() {
  exInfo('\n ==>>==>>==   rolling sampleDawoBuffers    ==>>==>>==');
  out.outBuffersSizes('dawo_example');
  outBuffersPrint('$dexS dawo_example', 'no-prevent-printing');
  exInfo('    ==<<==<<==    rolling sampleDawoBuffers: done    ==<<==<<==');
}

///
void sampleJsonData() {
  exInfo('\n ==>>==>>==   rolling sampleJsonData    ==>>==>>==');
  exInfo('==>>==>>==   encoded - decoded    ==>>==>>==');
  exInfo('==>>==>>==   chore > effort > user_json render   ==>>==>>===');
  choreToEffortUserJson(':d:ex:');
  exInfo('    ==<<==<<==    encoded - decoded   done    ==<<==<<==');
  exInfo('    ==<<==<<==    rolling sampleJsonData: done    ==<<==<<==');
}

///
void connectorExampleReport() {
  exInfo('==>>==>>==   calling :connector: report    ==>>==>>==');

  connector.report();
  exInfo('    ==<<==<<==    :connector: report done    ==<<==<<==');
}

///  For to check variables visibility.
void wordPlay() {
  //  Play with variables: watch something from every file
  //  base
  // baseLibMotto

  //  baseStructMotto;

  //  chore
  // choreBuf

  //  dawo
  // dawoBuf

  //  app  3 variables
  // appMap;

  //  dev  17 variables
  //  devBlame;

  //  flow*  2 variables

  //  mill  4 variables

  //  DawoMill

  //  mission
  //  Mission  class

  //  out  15 variables
  //  placard* : 1

  //  toolsActive;

  //  play with classes
  /*
  da.
  df.
  ch.
  */

  ///  testing dawo
  //  daw... ok

  //  render   //  there are 5 render-functions

  //  No, too much noise.
  //  printBuffers();
}

///  Empty not used method.
void playDawoSrcDart() {}

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  dawo: "^0.0.75"

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter packages get

Alternatively, your editor might support pub get or packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:dawo/dawo.dart';
        
Version Uploaded Documentation Archive
0.0.75 Jan 8, 2018 Go to the documentation of dawo 0.0.75 Download dawo 0.0.75 archive
0.0.7 Dec 18, 2017 Go to the documentation of dawo 0.0.7 Download dawo 0.0.7 archive
0.0.6 Nov 27, 2017 Go to the documentation of dawo 0.0.6 Download dawo 0.0.6 archive
0.0.5 Nov 6, 2017 Go to the documentation of dawo 0.0.5 Download dawo 0.0.5 archive
0.0.4 Oct 16, 2017 Go to the documentation of dawo 0.0.4 Download dawo 0.0.4 archive
0.0.3 Sep 25, 2017 Go to the documentation of dawo 0.0.3 Download dawo 0.0.3 archive
0.0.2 Sep 11, 2017 Go to the documentation of dawo 0.0.2 Download dawo 0.0.2 archive
0.0.1 Sep 5, 2017 Go to the documentation of dawo 0.0.1 Download dawo 0.0.1 archive
0.0.0 Sep 21, 2013 Go to the documentation of dawo 0.0.0 Download dawo 0.0.0 archive

Analysis

We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.49.0
  • pana: 0.10.6

Scores

Popularity:
Describes how popular the package is relative to other packages. [more]
0 / 100
Health:
Code health derived from static analysis. [more]
99 / 100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
99 / 100
Overall score:
Weighted score of the above. [more]
50
Learn more about scoring.

Platforms

Detected platforms: Flutter, web, other

No platform restriction found in primary library package:dawo/dawo.dart.

Suggestions

  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 41 hints.

    Strong-mode analysis of lib/clay/user_json.dart gave the following hint:

    line: 70 col: 20
    'JSON' is deprecated and shouldn't be used.

    Strong-mode analysis of lib/corp/connector.dart gave the following hint:

    line: 417 col: 12
    The value of the local variable 'boxHeader' isn't used.

    Similar analysis of the following files failed:

    • lib/dawo_app.dart (hint)
    • lib/dawo_src.dart (hint)
    • lib/mis/missions.dart (hint)
    • lib/mis/treaty.dart (hint)
    • lib/shower.dart (hint)
    • lib/src/glb.dart (hint)
  • Package is pre-v1 release.

    While there is nothing inherently wrong with versions of 0.*.*, it usually means that the author is still experimenting with the general direction API.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.23.0-dev.11.5 <2.0.0
browser ^0.10.0+2 0.10.0+3
dawolang ^0.0.1 0.0.1
http ^0.11.3+16 0.11.3+16
http_server ^0.9.6 0.9.7
intl ^0.15.2 0.15.6
io ^0.3.0 0.3.2+1
Transitive dependencies
async 2.0.6
charcode 1.1.1
collection 1.14.9
http_parser 3.1.1
meta 1.1.2
mime 0.9.6
path 1.5.1
source_span 1.4.0
string_scanner 1.0.2
typed_data 1.1.5
Dev dependencies
test ^0.12.24+2