deku 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +5 -0
  6. data/LICENSE +25 -0
  7. data/README.md +28 -0
  8. data/Rakefile +1 -0
  9. data/deku.gemspec +23 -0
  10. data/deps/node_modules/deku.js +2 -0
  11. data/deps/node_modules/deku/.editorconfig +16 -0
  12. data/deps/node_modules/deku/.zuul.yml +15 -0
  13. data/deps/node_modules/deku/History.md +290 -0
  14. data/deps/node_modules/deku/LICENSE.md +7 -0
  15. data/deps/node_modules/deku/Makefile +91 -0
  16. data/deps/node_modules/deku/README.md +293 -0
  17. data/deps/node_modules/deku/index.js +4072 -0
  18. data/deps/node_modules/deku/lib/application.js +85 -0
  19. data/deps/node_modules/deku/lib/index.js +28 -0
  20. data/deps/node_modules/deku/lib/render.js +1300 -0
  21. data/deps/node_modules/deku/lib/stringify.js +105 -0
  22. data/deps/node_modules/deku/lib/svg.js +107 -0
  23. data/deps/node_modules/deku/lib/utils.js +18 -0
  24. data/deps/node_modules/deku/lib/virtual.js +247 -0
  25. data/deps/node_modules/deku/node_modules/array-flatten/LICENSE +21 -0
  26. data/deps/node_modules/deku/node_modules/array-flatten/README.md +43 -0
  27. data/deps/node_modules/deku/node_modules/array-flatten/array-flatten.js +57 -0
  28. data/deps/node_modules/deku/node_modules/array-flatten/package.json +62 -0
  29. data/deps/node_modules/deku/node_modules/component-emitter/History.md +63 -0
  30. data/deps/node_modules/deku/node_modules/component-emitter/LICENSE +24 -0
  31. data/deps/node_modules/deku/node_modules/component-emitter/Readme.md +74 -0
  32. data/deps/node_modules/deku/node_modules/component-emitter/index.js +161 -0
  33. data/deps/node_modules/deku/node_modules/component-emitter/package.json +174 -0
  34. data/deps/node_modules/deku/node_modules/component-raf/.npmignore +2 -0
  35. data/deps/node_modules/deku/node_modules/component-raf/History.md +26 -0
  36. data/deps/node_modules/deku/node_modules/component-raf/Makefile +11 -0
  37. data/deps/node_modules/deku/node_modules/component-raf/Readme.md +46 -0
  38. data/deps/node_modules/deku/node_modules/component-raf/component.json +16 -0
  39. data/deps/node_modules/deku/node_modules/component-raf/example.html +43 -0
  40. data/deps/node_modules/deku/node_modules/component-raf/index.js +34 -0
  41. data/deps/node_modules/deku/node_modules/component-raf/package.json +164 -0
  42. data/deps/node_modules/deku/node_modules/component-type/.npmignore +3 -0
  43. data/deps/node_modules/deku/node_modules/component-type/Makefile +14 -0
  44. data/deps/node_modules/deku/node_modules/component-type/Readme.md +37 -0
  45. data/deps/node_modules/deku/node_modules/component-type/component.json +13 -0
  46. data/deps/node_modules/deku/node_modules/component-type/index.js +34 -0
  47. data/deps/node_modules/deku/node_modules/component-type/package.json +120 -0
  48. data/deps/node_modules/deku/node_modules/component-type/test/index.html +17 -0
  49. data/deps/node_modules/deku/node_modules/component-type/test/mocha.css +231 -0
  50. data/deps/node_modules/deku/node_modules/component-type/test/mocha.js +5340 -0
  51. data/deps/node_modules/deku/node_modules/component-type/test/tests.js +72 -0
  52. data/deps/node_modules/deku/node_modules/dom-pool/.npmignore +1 -0
  53. data/deps/node_modules/deku/node_modules/dom-pool/Pool.js +52 -0
  54. data/deps/node_modules/deku/node_modules/dom-pool/README.md +42 -0
  55. data/deps/node_modules/deku/node_modules/dom-pool/authors.txt +4 -0
  56. data/deps/node_modules/deku/node_modules/dom-pool/bower.json +26 -0
  57. data/deps/node_modules/deku/node_modules/dom-pool/package.json +46 -0
  58. data/deps/node_modules/deku/node_modules/dom-pool/tests.html +16 -0
  59. data/deps/node_modules/deku/node_modules/dom-pool/tests.js +102 -0
  60. data/deps/node_modules/deku/node_modules/dom-walk/.npmignore +3 -0
  61. data/deps/node_modules/deku/node_modules/dom-walk/LICENCE +19 -0
  62. data/deps/node_modules/deku/node_modules/dom-walk/Makefile +2 -0
  63. data/deps/node_modules/deku/node_modules/dom-walk/README.md +23 -0
  64. data/deps/node_modules/deku/node_modules/dom-walk/example/index.js +5 -0
  65. data/deps/node_modules/deku/node_modules/dom-walk/example/static/bundle.js +211 -0
  66. data/deps/node_modules/deku/node_modules/dom-walk/example/static/index.html +16 -0
  67. data/deps/node_modules/deku/node_modules/dom-walk/index.js +24 -0
  68. data/deps/node_modules/deku/node_modules/dom-walk/package.json +57 -0
  69. data/deps/node_modules/deku/node_modules/fast.js/.jshintignore +7 -0
  70. data/deps/node_modules/deku/node_modules/fast.js/.jshintrc +80 -0
  71. data/deps/node_modules/deku/node_modules/fast.js/.npmignore +6 -0
  72. data/deps/node_modules/deku/node_modules/fast.js/.travis.yml +3 -0
  73. data/deps/node_modules/deku/node_modules/fast.js/LICENSE.md +21 -0
  74. data/deps/node_modules/deku/node_modules/fast.js/README.md +552 -0
  75. data/deps/node_modules/deku/node_modules/fast.js/array/clone.js +21 -0
  76. data/deps/node_modules/deku/node_modules/fast.js/array/concat.js +32 -0
  77. data/deps/node_modules/deku/node_modules/fast.js/array/every.js +25 -0
  78. data/deps/node_modules/deku/node_modules/fast.js/array/fill.js +29 -0
  79. data/deps/node_modules/deku/node_modules/fast.js/array/filter.js +26 -0
  80. data/deps/node_modules/deku/node_modules/fast.js/array/forEach.js +21 -0
  81. data/deps/node_modules/deku/node_modules/fast.js/array/index.js +15 -0
  82. data/deps/node_modules/deku/node_modules/fast.js/array/indexOf.js +33 -0
  83. data/deps/node_modules/deku/node_modules/fast.js/array/lastIndexOf.js +29 -0
  84. data/deps/node_modules/deku/node_modules/fast.js/array/map.js +24 -0
  85. data/deps/node_modules/deku/node_modules/fast.js/array/pluck.js +24 -0
  86. data/deps/node_modules/deku/node_modules/fast.js/array/reduce.js +35 -0
  87. data/deps/node_modules/deku/node_modules/fast.js/array/reduceRight.js +35 -0
  88. data/deps/node_modules/deku/node_modules/fast.js/array/some.js +25 -0
  89. data/deps/node_modules/deku/node_modules/fast.js/bower.json +28 -0
  90. data/deps/node_modules/deku/node_modules/fast.js/clone.js +27 -0
  91. data/deps/node_modules/deku/node_modules/fast.js/dist/bench.html +15 -0
  92. data/deps/node_modules/deku/node_modules/fast.js/dist/bench.js +19900 -0
  93. data/deps/node_modules/deku/node_modules/fast.js/dist/fast.js +1450 -0
  94. data/deps/node_modules/deku/node_modules/fast.js/dist/fast.min.js +1 -0
  95. data/deps/node_modules/deku/node_modules/fast.js/filter.js +23 -0
  96. data/deps/node_modules/deku/node_modules/fast.js/forEach.js +22 -0
  97. data/deps/node_modules/deku/node_modules/fast.js/function/apply.js +19 -0
  98. data/deps/node_modules/deku/node_modules/fast.js/function/applyNoContext.js +29 -0
  99. data/deps/node_modules/deku/node_modules/fast.js/function/applyWithContext.js +29 -0
  100. data/deps/node_modules/deku/node_modules/fast.js/function/bind.js +71 -0
  101. data/deps/node_modules/deku/node_modules/fast.js/function/bindInternal3.js +11 -0
  102. data/deps/node_modules/deku/node_modules/fast.js/function/bindInternal4.js +11 -0
  103. data/deps/node_modules/deku/node_modules/fast.js/function/index.js +7 -0
  104. data/deps/node_modules/deku/node_modules/fast.js/function/partial.js +42 -0
  105. data/deps/node_modules/deku/node_modules/fast.js/function/partialConstructor.js +45 -0
  106. data/deps/node_modules/deku/node_modules/fast.js/function/try.js +35 -0
  107. data/deps/node_modules/deku/node_modules/fast.js/index.js +241 -0
  108. data/deps/node_modules/deku/node_modules/fast.js/map.js +23 -0
  109. data/deps/node_modules/deku/node_modules/fast.js/object/assign.js +34 -0
  110. data/deps/node_modules/deku/node_modules/fast.js/object/clone.js +25 -0
  111. data/deps/node_modules/deku/node_modules/fast.js/object/filter.js +28 -0
  112. data/deps/node_modules/deku/node_modules/fast.js/object/forEach.js +23 -0
  113. data/deps/node_modules/deku/node_modules/fast.js/object/index.js +11 -0
  114. data/deps/node_modules/deku/node_modules/fast.js/object/keys.js +17 -0
  115. data/deps/node_modules/deku/node_modules/fast.js/object/map.js +26 -0
  116. data/deps/node_modules/deku/node_modules/fast.js/object/reduce.js +37 -0
  117. data/deps/node_modules/deku/node_modules/fast.js/object/reduceRight.js +37 -0
  118. data/deps/node_modules/deku/node_modules/fast.js/object/values.js +20 -0
  119. data/deps/node_modules/deku/node_modules/fast.js/package.json +73 -0
  120. data/deps/node_modules/deku/node_modules/fast.js/reduce.js +24 -0
  121. data/deps/node_modules/deku/node_modules/fast.js/reduceRight.js +24 -0
  122. data/deps/node_modules/deku/node_modules/fast.js/string/index.js +3 -0
  123. data/deps/node_modules/deku/node_modules/fast.js/string/intern.js +56 -0
  124. data/deps/node_modules/deku/node_modules/get-uid/README.md +44 -0
  125. data/deps/node_modules/deku/node_modules/get-uid/index.js +6 -0
  126. data/deps/node_modules/deku/node_modules/get-uid/package.json +56 -0
  127. data/deps/node_modules/deku/node_modules/is-dom/HISTORY.md +2 -0
  128. data/deps/node_modules/deku/node_modules/is-dom/LICENSE +21 -0
  129. data/deps/node_modules/deku/node_modules/is-dom/README.md +32 -0
  130. data/deps/node_modules/deku/node_modules/is-dom/index.js +15 -0
  131. data/deps/node_modules/deku/node_modules/is-dom/package.json +62 -0
  132. data/deps/node_modules/deku/node_modules/object-path/.npmignore +7 -0
  133. data/deps/node_modules/deku/node_modules/object-path/.travis.yml +6 -0
  134. data/deps/node_modules/deku/node_modules/object-path/LICENSE +21 -0
  135. data/deps/node_modules/deku/node_modules/object-path/README.md +96 -0
  136. data/deps/node_modules/deku/node_modules/object-path/bower.json +17 -0
  137. data/deps/node_modules/deku/node_modules/object-path/component.json +22 -0
  138. data/deps/node_modules/deku/node_modules/object-path/index.js +269 -0
  139. data/deps/node_modules/deku/node_modules/object-path/package.json +89 -0
  140. data/deps/node_modules/deku/node_modules/object-path/test.js +510 -0
  141. data/deps/node_modules/deku/node_modules/per-frame/.npmignore +68 -0
  142. data/deps/node_modules/deku/node_modules/per-frame/History.md +32 -0
  143. data/deps/node_modules/deku/node_modules/per-frame/README.md +44 -0
  144. data/deps/node_modules/deku/node_modules/per-frame/component.json +13 -0
  145. data/deps/node_modules/deku/node_modules/per-frame/index.js +37 -0
  146. data/deps/node_modules/deku/node_modules/per-frame/package.json +143 -0
  147. data/deps/node_modules/deku/node_modules/per-frame/test/test.js +94 -0
  148. data/deps/node_modules/deku/node_modules/sliced/.npmignore +2 -0
  149. data/deps/node_modules/deku/node_modules/sliced/.travis.yml +4 -0
  150. data/deps/node_modules/deku/node_modules/sliced/History.md +30 -0
  151. data/deps/node_modules/deku/node_modules/sliced/LICENSE +22 -0
  152. data/deps/node_modules/deku/node_modules/sliced/Makefile +5 -0
  153. data/deps/node_modules/deku/node_modules/sliced/README.md +62 -0
  154. data/deps/node_modules/deku/node_modules/sliced/bench.js +95 -0
  155. data/deps/node_modules/deku/node_modules/sliced/component.json +14 -0
  156. data/deps/node_modules/deku/node_modules/sliced/index.js +1 -0
  157. data/deps/node_modules/deku/node_modules/sliced/lib/sliced.js +33 -0
  158. data/deps/node_modules/deku/node_modules/sliced/package.json +52 -0
  159. data/deps/node_modules/deku/node_modules/sliced/test/index.js +80 -0
  160. data/deps/node_modules/deku/package.json +67 -0
  161. data/lib/deku.rb +11 -0
  162. data/lib/deku/application.rb +16 -0
  163. data/lib/deku/component.rb +36 -0
  164. data/lib/deku/context.rb +38 -0
  165. data/lib/deku/element_node.rb +17 -0
  166. data/lib/deku/version.rb +4 -0
  167. metadata +278 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bb68e2c5f00116fbe6e8093c6568d303598e2274
4
+ data.tar.gz: bdd3c81486b0f9e0afc761a60fe6849c3237f865
5
+ SHA512:
6
+ metadata.gz: 5b253f25cee754e459e51095511b9d09cad1fe3f305457bcd42225bde1e515d7759de50e0681624e10a76ede0850b5d4eff46e33c451c0e544d88d0068d13f56
7
+ data.tar.gz: ecc794241b4243e284360d40d8b4753ad8ebff72ffee6275405183a148eb9ecf8c385051890db039c14043c4006e414b16309c0e27867d9eb3116b4ddb6849b2
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3"
4
+ - "2.2.0"
5
+ script: "rspec"
6
+
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in deku.gemspec
4
+ gemspec
5
+
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ Copyright (c) 2015 Dirk Gadsden
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+ * Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ * Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+ * Neither the name of Dirk Gadsden nor the names of its contributors
12
+ may be used to endorse or promote products derived from this software
13
+ without specific prior written permission.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL DIRK GADSDEN BE LIABLE FOR ANY
19
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
@@ -0,0 +1,28 @@
1
+ # Deku
2
+
3
+ A Ruby interface to the [Deku][] JavaScript library.
4
+
5
+ [Deku]: https://github.com/segmentio/deku
6
+
7
+ ## Installation
8
+
9
+ Available as the `deku` gem. Install via Rubygems or your preferred Ruby dependency manager.
10
+
11
+ ```sh
12
+ gem install deku
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ TODO: Write usage instructions here
18
+
19
+ ## Contributing
20
+
21
+ 1. Fork it (https://github.com/dirk/deku.rb/fork)
22
+ 2. Create a feature branch and commit changes
23
+ 3. Open a pull request against that branch
24
+
25
+ ## License
26
+
27
+ Released under the Modified BSD License. See [LICENSE](LICENSE) for details.
28
+
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'deku/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'deku'
8
+ spec.version = Deku::VERSION
9
+ spec.authors = ['Dirk Gadsden']
10
+ spec.email = ['dirk@dirk.to']
11
+ spec.summary = 'Ruby interface to Deku JavaScript library'
12
+ spec.homepage = 'https://github.com/dirk/deku.rb'
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|bin)/}) }
15
+ spec.require_paths = ['lib']
16
+
17
+ spec.add_development_dependency 'bundler', '>= 1.7'
18
+ spec.add_development_dependency 'rake', '~> 10.0'
19
+ spec.add_development_dependency 'rspec', '~> 3.2'
20
+ spec.add_development_dependency 'therubyracer', '~> 0.12.2'
21
+
22
+ spec.add_dependency 'commonjs', '~> 0.2.7'
23
+ end
@@ -0,0 +1,2 @@
1
+ module.exports = require('deku/index')
2
+
@@ -0,0 +1,16 @@
1
+ # http://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [Makefile]
13
+ indent_style = tab
14
+
15
+ [*.md]
16
+ trim_trailing_whitespace = false
@@ -0,0 +1,15 @@
1
+ ui: mocha-bdd
2
+ concurrency: 1
3
+ browsers:
4
+ - name: iphone
5
+ version: latest
6
+ - name: ipad
7
+ version: latest
8
+ - name: ie
9
+ version: 10..latest
10
+ - name: chrome
11
+ version: 39..latest
12
+ - name: firefox
13
+ version: 34..latest
14
+ - name: safari
15
+ version: 7..latest
@@ -0,0 +1,290 @@
1
+
2
+ 0.2.17 / 2015-05-11
3
+ ==================
4
+
5
+ * Merge pull request #94 from segmentio/fix/sources
6
+ * set sources on update
7
+ * Updated changelog
8
+
9
+ 0.2.16 / 2015-05-11
10
+ ==================
11
+
12
+ * Using a different component object each render
13
+ * Cleaned up tests and build
14
+ * Calling .set will always trigger an update instead of checking equality with the previous data value.
15
+ * Added React comparison examples
16
+ * Fixed bug where handler references weren't removed
17
+ * Skip rendering if element is the same
18
+
19
+ 0.2.15 / 2015-05-04
20
+ ==================
21
+
22
+ * add svg support
23
+ * Throw errors for empty types on elements
24
+
25
+ 0.2.14 / 2015-05-03
26
+ ==================
27
+
28
+ * Using fast.js
29
+ * Added some simple examples
30
+
31
+ 0.2.13 / 2015-04-30
32
+ ==================
33
+
34
+ * Added workaround for diffChildren bug
35
+
36
+ 0.2.12 / 2015-04-29
37
+ ==================
38
+
39
+ * Merge pull request #83 from segmentio/fix/child-key-diffing
40
+ * Removed key diffing for elements
41
+ * Passing tests for the keys with events
42
+ * Tests passing with janky first version
43
+ * Added failing test
44
+ * Only flatten children one level deep
45
+
46
+ 0.2.11 / 2015-04-29
47
+ ==================
48
+
49
+ * Added test for virtual node indexes
50
+ * Correctly casting key to a string
51
+
52
+ 0.2.10 / 2015-04-29
53
+ ==================
54
+
55
+ * Improved performance by removing 'omit'
56
+ * IE10 fix
57
+ * Running all tests
58
+ * Added tests for components with keys
59
+ * Coercing keys to strings
60
+ * Code style
61
+
62
+ 0.2.9 / 2015-04-28
63
+ ==================
64
+
65
+ * Passing tests
66
+ * The patch returns the updated element
67
+ * Code style
68
+ * Removing elements first when diffing
69
+ * Cleaned up the key diffing
70
+
71
+ 0.2.8 / 2015-04-28
72
+ ==================
73
+
74
+ * Fixed more issues with falsy keys
75
+
76
+ 0.2.7 / 2015-04-28
77
+ ==================
78
+
79
+ * Fixed falsy keys
80
+
81
+ 0.2.6 / 2015-04-28
82
+ ==================
83
+
84
+ * Fixed incorrect path
85
+
86
+ 0.2.5 / 2015-04-28
87
+ ==================
88
+
89
+ * Avoid touching elements that haven't moved
90
+ * Added test for adding nodes with new keys
91
+
92
+ 0.2.4 / 2015-04-28
93
+ ==================
94
+
95
+ * Fixed bug with creating new nodes in the diff
96
+
97
+ 0.2.3 / 2015-04-27
98
+ ==================
99
+
100
+ * Fixed issue with initial mount
101
+
102
+ 0.2.2 / 2015-04-27
103
+ ==================
104
+
105
+ * Merge branch 'docs'
106
+ * Updated docs
107
+ * Removed old docs and examples
108
+ * Allowing easier initial mounting
109
+ * Adding docs
110
+
111
+ 0.2.1 / 2015-04-25
112
+ ==================
113
+
114
+ * Fixed bug with diffing keyed nodes
115
+
116
+ 0.2.0 / 2015-04-25
117
+ ==================
118
+
119
+ * Updated the hook API
120
+ * Removed defaults
121
+
122
+ 0.1.1 / 2015-04-22
123
+ ==================
124
+
125
+ * Replaced lodash and removed unused modules
126
+
127
+ 0.1.0 / 2015-04-21
128
+ ==================
129
+
130
+ Breaking
131
+ * Updated the top-level API. It now mounts virtual nodes instead of components directly.
132
+ * Removed the `component()` DSL. Components are just objects now with no concept of `this`. This is one step towards making hook functions pure.
133
+ * There is no more `this` in any of the functions used in a component. Instead of `this.setState`, the last argument to the function is `setState`, or `send` (think of it as sending changes to the UI).
134
+ * Removed tagName parsing (eg. `dom('div.foo')`) as it was slowing things down
135
+
136
+ New Features
137
+ * Added key diffing using the `key` attribute on virtual nodes
138
+ * Added optional prop validation via `propTypes`
139
+ * Added defaultProps hook to components
140
+ * Added the ability for components to access data on the app. This makes it easy to side-load data.
141
+
142
+ Fixes
143
+ * Fixed bug with inputs/textarea being pooled incorrectly
144
+ * Merge pull request #72 from segmentio/attr-modification-bug
145
+ * Fixed a bug in the renderer for falsy attributes
146
+ * Numerous speed improvements
147
+ * Fixed bug with string renderer not calling `beforeMount`
148
+ * Removed the raf loop and just batches
149
+
150
+ 0.0.33 / 2015-04-02
151
+ ==================
152
+
153
+ * Fixed bug with nested components not being unmounted
154
+ * Added test for nested components disabling pooling
155
+
156
+ 0.0.32 / 2015-04-01
157
+ ==================
158
+
159
+ * dom: Fixed disablePooling flag for nested components
160
+
161
+ 0.0.31 / 2015-04-01
162
+ ==================
163
+
164
+ * dom: Tests for scene removal
165
+ * dom: Cleaned up removing of elements
166
+
167
+ 0.0.30 / 2015-03-27
168
+ ==================
169
+
170
+ * Added DOM pooling
171
+
172
+ 0.0.29 / 2015-03-24
173
+ ==================
174
+
175
+ * Breaking change: Updated the scene/renderer API to allow for more powerful plugins. The Component API is now decoupled from the renderer.
176
+ * Tests now using ES6
177
+ * Fixed beforeMount not firing with renderString
178
+ * Fixed innerHTML rendering with renderString
179
+
180
+ 0.0.28 / 2015-03-11
181
+ ==================
182
+
183
+ * Interactions bind to the body
184
+ * Update component#render() to throw if container is empty
185
+ * Fixed tests in IE9. Fixed SauceLab tests.
186
+ * Removed all the crap from the repo
187
+
188
+ 0.0.27 / 2015-02-26
189
+ ==================
190
+
191
+ * Fixed bug with re-rendering child nodes
192
+
193
+ 0.0.26 / 2015-02-26
194
+ ==================
195
+
196
+ * The renderer now renders the entire tree whenever it is dirty and no longer performs shallow equality checks to determine if a component should update. This means that when a component changes, the entire tree below it is re-rendered, including all nested components. This helps to prevent annoying bugs with objects changing and the UI not updating.
197
+ * The scene continues to update on every frame, but will still only actually render a component in the tree has changed.
198
+ * There is a new shouldUpdate hook available to components to optimize this. You can stop it from re-rendering a component by returning false from this method.
199
+ * Removed channels from the API. This was an experimental API and it turned out to be the wrong abstraction when using it in practice. It was making the library responsible for more than it should be.
200
+ * The entities now don't know about the scene at all, making them completely decoupled from it.
201
+ * The HTMLRenderer now keeps track of the entity state and structure. This allows the entity to become a wrapper around the user component and only provide managing the state/props from the component.
202
+ * The scene will now pause when there is an error during rendering to prevent endless errors.
203
+ * The scene methods no longer return a promise. It was never used in practice because the top level components are never used in flow control.
204
+ * The diff is now slightly more decoupled, which will allow it to be extracted from deku.
205
+ * Removed some unused dependencies. This should make the whole library smaller.
206
+ * The logic around commiting changes to props/state in the entity has been reworked. It's now much simpler and less prone to bugs.
207
+
208
+
209
+ 0.0.25 / 2015-02-22
210
+ ==================
211
+
212
+ * JSX support
213
+
214
+ 0.0.24 / 2015-02-11
215
+ ==================
216
+
217
+ * Added failing test for nested events
218
+ * added hasFunction to fix #47
219
+ * added failing test to demo function diffing
220
+
221
+ 0.0.23 / 2015-02-09
222
+ ==================
223
+
224
+ * Added innerHTML support
225
+ * Fixed drag and drop test event
226
+ * Added test for #47
227
+
228
+ 0.0.22 / 2015-02-03
229
+ ==================
230
+
231
+ * Pulled virtual DOM lib out
232
+
233
+ 0.0.21 / 2015-02-03
234
+ ==================
235
+
236
+ * Added ability to render component at the root
237
+
238
+ 0.0.20 / 2015-01-29
239
+ ==================
240
+
241
+ * Value attribute gets a special case in the diff
242
+ * Using raf-loop instead of local module
243
+ * Using uid module
244
+
245
+ 0.0.19 / 2015-01-25
246
+ ==================
247
+
248
+ * Moved to browserify for the build
249
+
250
+ 0.0.18 / 2015-01-25
251
+ ==================
252
+
253
+ * Fixed event delegation
254
+ * Added some super basic perf tests
255
+ * Fixed issue with scene not removing listeners
256
+
257
+ 0.0.17 / 2015-01-24
258
+ ==================
259
+
260
+ * Fixed bug when changing root node. Closes #33
261
+
262
+ 0.0.16 / 2015-01-23
263
+ ==================
264
+
265
+ * Fixed issue with channels not being sent to render
266
+
267
+ 0.0.15 / 2015-01-23
268
+ ==================
269
+
270
+ * Added .channel and .prop methods
271
+ * Removed .send and .onMessage in favour of channels
272
+ * Scene is no longer immediately rendered
273
+
274
+ 0.0.14 / 2015-01-21
275
+ ==================
276
+
277
+ * Add .send and .onMessage methods. You can call this.send(name, payload) within components and listen for those events on the scene with scene.onMessage(name, fn);
278
+
279
+ 0.0.13 / 2015-01-20
280
+ ==================
281
+
282
+ * Fixed a bug with IDs being identical
283
+ * Added History.md
284
+
285
+ 0.0.12 / 2015-01-19
286
+ ==================
287
+
288
+ * Add repo field
289
+ * Updated bump
290
+ * Updated release task