<feed xmlns='http://www.w3.org/2005/Atom'>
<title>angular.js/Rakefile, branch v0.9.4</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/'/>
<entry>
<title>jsdoc parser + generator + viewer + scenario runner</title>
<updated>2010-11-03T16:47:22+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-10-27T22:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=659af29adbd041fbbbaf041ead53266210a61f4e'/>
<id>659af29adbd041fbbbaf041ead53266210a61f4e</id>
<content type='text'>
- parse jsdocs from source code
- generate prerendered (markdown + mustache) partials
- generate json
- generate scenario runner for examples in docs
- basic angular doc viewer
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- parse jsdocs from source code
- generate prerendered (markdown + mustache) partials
- generate json
- generate scenario runner for examples in docs
- basic angular doc viewer
</pre>
</div>
</content>
</entry>
<entry>
<title>rename src/Parser.js to src/parser.js</title>
<updated>2010-10-27T22:32:30+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2010-10-27T22:20:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=c67af8a03819004c4aaa775805badd1e631af738'/>
<id>c67af8a03819004c4aaa775805badd1e631af738</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Lots of bug fixes in the scenario runner and a bunch of new features.</title>
<updated>2010-10-26T22:17:57+00:00</updated>
<author>
<name>Elliott Sprehn</name>
</author>
<published>2010-10-24T21:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=40d7e66f408eaaa66efd8d7934ab2eb3324236a1'/>
<id>40d7e66f408eaaa66efd8d7934ab2eb3324236a1</id>
<content type='text'>
- By default the runner now creates multiple output formats as it runs. Nodes are created in the DOM with ids: json, xml, and html.

ex. $('#json').html() =&gt; json output of the runner
ex. $('#xml').html() =&gt; json output of the runner

$result is also an object tree result.

The permitted formats are html,json,xml,object.

If you don't want certain formats you can select specific ones with the new ng:scenario-output attribute on the script tag.

&lt;script src="angular-scenario.js" ng:scenario-output="xml,json"&gt;

- Added element(...).count() that returns the number of matching elements for the selector.

- repeater(...).count() now returns 0 if no elements matched which can be used to check if a repeater is empty.

- Added toBe() matcher that does strict equality with ===

- Implement iit and ddescribe. If iit() is used instead of it() then only that test will run. If ddescribe() is used instead of describe() them only it() statements inside of it will run. Several iit/ddescribe() blocks can be used to run isolated tests.

- Implement new event based model for SpecRunner. You can now listen for events in the runner. This is useful for writing your own UI or connecting a remote process (ex. WebDriver). Event callbacks execute on the Runner instance.

Events, if fired, will always be in the below order. All events always happen
except for Failure and Error events which only happen in error conditions.

Events:
  RunnerBegin
  SpecBegin(spec)
  StepBegin(spec, step)
  StepError(spec, step, error)
  StepFailure(spec, step, error)
  StepEnd(spec, step)
  SpecError(spec, step, error)
  SpecEnd(spec)
  RunnerEnd

- Only allow the browser to repaint every 10 steps. Cuts 700ms off Firefox in benchmark, 200ms off Chrome.

- Bug Fix: Manually navigate anchors on click since trigger wont work in Firefox.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- By default the runner now creates multiple output formats as it runs. Nodes are created in the DOM with ids: json, xml, and html.

ex. $('#json').html() =&gt; json output of the runner
ex. $('#xml').html() =&gt; json output of the runner

$result is also an object tree result.

The permitted formats are html,json,xml,object.

If you don't want certain formats you can select specific ones with the new ng:scenario-output attribute on the script tag.

&lt;script src="angular-scenario.js" ng:scenario-output="xml,json"&gt;

- Added element(...).count() that returns the number of matching elements for the selector.

- repeater(...).count() now returns 0 if no elements matched which can be used to check if a repeater is empty.

- Added toBe() matcher that does strict equality with ===

- Implement iit and ddescribe. If iit() is used instead of it() then only that test will run. If ddescribe() is used instead of describe() them only it() statements inside of it will run. Several iit/ddescribe() blocks can be used to run isolated tests.

- Implement new event based model for SpecRunner. You can now listen for events in the runner. This is useful for writing your own UI or connecting a remote process (ex. WebDriver). Event callbacks execute on the Runner instance.

Events, if fired, will always be in the below order. All events always happen
except for Failure and Error events which only happen in error conditions.

Events:
  RunnerBegin
  SpecBegin(spec)
  StepBegin(spec, step)
  StepError(spec, step, error)
  StepFailure(spec, step, error)
  StepEnd(spec, step)
  SpecError(spec, step, error)
  SpecEnd(spec)
  RunnerEnd

- Only allow the browser to repaint every 10 steps. Cuts 700ms off Firefox in benchmark, 200ms off Chrome.

- Bug Fix: Manually navigate anchors on click since trigger wont work in Firefox.
</pre>
</div>
</content>
</entry>
<entry>
<title>create HTML sanitizer to allow inclusion of untrusted HTML in safe manner.</title>
<updated>2010-10-26T20:41:07+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-10-19T04:20:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=4fdab3765919e9fffc6d2f84e74754b1012997be'/>
<id>4fdab3765919e9fffc6d2f84e74754b1012997be</id>
<content type='text'>
Sanitization works in two phases:
 1) We parse the HTML into sax-like events (start, end, chars).
    HTML parsing is very complex, and so it may very well be that what
    most browser consider valid HTML may not pares properly here,
    but we do best effort. We treat this parser as untrusted.
 2) We have safe sanitizeWriter which treats its input (start, end, chars)
    as untrusted content and escapes everything. It only allows elements
    in the whitelist and only allows attributes which are whitelisted.
    Any attribute value must not start with 'javascript:'. This check
    is performed after escaping for entity (&amp;xAB; etc..) and ignoring
    any whitespace.

 - Correct linky filter to use safeHtmlWriter
 - Correct html filter to use safeHtmlWriter

Close #33; Close #34
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sanitization works in two phases:
 1) We parse the HTML into sax-like events (start, end, chars).
    HTML parsing is very complex, and so it may very well be that what
    most browser consider valid HTML may not pares properly here,
    but we do best effort. We treat this parser as untrusted.
 2) We have safe sanitizeWriter which treats its input (start, end, chars)
    as untrusted content and escapes everything. It only allows elements
    in the whitelist and only allows attributes which are whitelisted.
    Any attribute value must not start with 'javascript:'. This check
    is performed after escaping for entity (&amp;xAB; etc..) and ignoring
    any whitespace.

 - Correct linky filter to use safeHtmlWriter
 - Correct html filter to use safeHtmlWriter

Close #33; Close #34
</pre>
</div>
</content>
</entry>
<entry>
<title>Rakefile should create the build directory when it is needed and doesn't exist</title>
<updated>2010-10-21T00:14:31+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2010-10-21T00:14:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=c6107fe8acbc2c7631c728044bb57b608c3aeef1'/>
<id>c6107fe8acbc2c7631c728044bb57b608c3aeef1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for version numbers in the Rakefile</title>
<updated>2010-10-20T21:48:35+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2010-10-20T04:19:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=2e687ee56fb81e96c0f45b2655a1a723331e2d20'/>
<id>2e687ee56fb81e96c0f45b2655a1a723331e2d20</id>
<content type='text'>
* version number is stored in version.yaml
  - work in progress is marked with version number that ends with '-snapshot'
* all compiled files are stored in the './build/' directory without version numbers
* :package task creates a tarball in the build directory
  - if version number contains '-snapshot', this substring is replaced with sha of the head
  - tarball contains version number in the filename
  - all js files contain version number in the filename
* .gitignore was updated to reflect all these changes
* the .map file is not created by the closure compiler any more
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* version number is stored in version.yaml
  - work in progress is marked with version number that ends with '-snapshot'
* all compiled files are stored in the './build/' directory without version numbers
* :package task creates a tarball in the build directory
  - if version number contains '-snapshot', this substring is replaced with sha of the head
  - tarball contains version number in the filename
  - all js files contain version number in the filename
* .gitignore was updated to reflect all these changes
* the .map file is not created by the closure compiler any more
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix browser triggering in scenario to always do native events.</title>
<updated>2010-10-19T22:56:53+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-10-19T22:34:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=01c7abab35dbdee711c54875424b388f8631a3c0'/>
<id>01c7abab35dbdee711c54875424b388f8631a3c0</id>
<content type='text'>
 - Also fixed angular.suffix for scenarios
 - refactored click() to browserTrigger()
 - Fixed Rakefile with CSS and jQuery
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - Also fixed angular.suffix for scenarios
 - refactored click() to browserTrigger()
 - Fixed Rakefile with CSS and jQuery
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove externs target from the Rakefile</title>
<updated>2010-10-18T23:24:44+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2010-10-18T18:15:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=ffb968b08b68351e9e2e19fd7992d55ddcdedb84'/>
<id>ffb968b08b68351e9e2e19fd7992d55ddcdedb84</id>
<content type='text'>
We are not going to do advanced optimization in the forseeable
future, so until then we don't need we should remove them from
Rakefile.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are not going to do advanced optimization in the forseeable
future, so until then we don't need we should remove them from
Rakefile.
</pre>
</div>
</content>
</entry>
<entry>
<title>inline all images into css</title>
<updated>2010-10-18T23:24:43+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2010-10-16T04:38:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=7059579c7499337c7946f3877ce77dd9a04ea22a'/>
<id>7059579c7499337c7946f3877ce77dd9a04ea22a</id>
<content type='text'>
* embedded images as data URIs
* rake task to generate multipart js file with embeded images for IE
* move images into a separate directory outside of src or css and
  keep them there for reference
* clean up Rakefile and ruby code
* .gitignore update
* don't penalize IE 8+ with an extra request to the ie-compat.js file
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* embedded images as data URIs
* rake task to generate multipart js file with embeded images for IE
* move images into a separate directory outside of src or css and
  keep them there for reference
* clean up Rakefile and ruby code
* .gitignore update
* don't penalize IE 8+ with an extra request to the ie-compat.js file
</pre>
</div>
</content>
</entry>
<entry>
<title>New Angular Scenario runner and DSL system with redesigned HTML UI.</title>
<updated>2010-10-14T16:47:39+00:00</updated>
<author>
<name>Elliott Sprehn</name>
</author>
<published>2010-10-08T23:43:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=03df6cbddbb80186caf571e29957370b2ef9881c'/>
<id>03df6cbddbb80186caf571e29957370b2ef9881c</id>
<content type='text'>
Uses the Jasmine syntax for tests, ex:

describe('widgets', function() {
  it('should verify that basic widgets work', function(){
    navigateTo('widgets.html');
    input('text.basic').enter('Carlos');
    expect(binding('text.basic')).toEqual('Carlos');
    input('text.basic').enter('Carlos Santana');
    expect(binding('text.basic')).not().toEqual('Carlos Boozer');
    input('text.password').enter('secret');
    expect(binding('text.password')).toEqual('secret');
    expect(binding('text.hidden')).toEqual('hiddenValue');
    expect(binding('gender')).toEqual('male');
    input('gender').select('female');
    expect(binding('gender')).toEqual('female');
  });
});

Note: To create new UI's implement the interface shown in angular.scenario.ui.Html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Uses the Jasmine syntax for tests, ex:

describe('widgets', function() {
  it('should verify that basic widgets work', function(){
    navigateTo('widgets.html');
    input('text.basic').enter('Carlos');
    expect(binding('text.basic')).toEqual('Carlos');
    input('text.basic').enter('Carlos Santana');
    expect(binding('text.basic')).not().toEqual('Carlos Boozer');
    input('text.password').enter('secret');
    expect(binding('text.password')).toEqual('secret');
    expect(binding('text.hidden')).toEqual('hiddenValue');
    expect(binding('gender')).toEqual('male');
    input('gender').select('female');
    expect(binding('gender')).toEqual('female');
  });
});

Note: To create new UI's implement the interface shown in angular.scenario.ui.Html.
</pre>
</div>
</content>
</entry>
</feed>
