trellis 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. data/.git/COMMIT_EDITMSG +1 -0
  2. data/.git/HEAD +1 -0
  3. data/.git/config +9 -0
  4. data/.git/description +1 -0
  5. data/.git/hooks/applypatch-msg.sample +15 -0
  6. data/.git/hooks/commit-msg.sample +24 -0
  7. data/.git/hooks/post-commit.sample +8 -0
  8. data/.git/hooks/post-receive.sample +15 -0
  9. data/.git/hooks/post-update.sample +8 -0
  10. data/.git/hooks/pre-applypatch.sample +14 -0
  11. data/.git/hooks/pre-commit.sample +18 -0
  12. data/.git/hooks/pre-rebase.sample +169 -0
  13. data/.git/hooks/prepare-commit-msg.sample +36 -0
  14. data/.git/hooks/update.sample +107 -0
  15. data/.git/index +0 -0
  16. data/.git/info/exclude +6 -0
  17. data/.git/logs/HEAD +1 -0
  18. data/.git/logs/refs/heads/master +1 -0
  19. data/.git/logs/refs/remotes/origin/master +1 -0
  20. data/.git/objects/01/2368d4dd3162ed570e6c1423ecb07a6a35f8c0 +0 -0
  21. data/.git/objects/02/238c88c522b88e71529495460cc5c2c8abe110 +0 -0
  22. data/.git/objects/07/03d3b123189f1da72d3889d9340e681841c96d +0 -0
  23. data/.git/objects/0b/3935fdbf3ce8d37e6cb2a6ec94edaccb1c58dc +0 -0
  24. data/.git/objects/0f/ecd1ad35f280c874ce070b7a97a4c1f86ace54 +0 -0
  25. data/.git/objects/12/61911b063b7e6883c5e9db7ab4396183f6f2b5 +0 -0
  26. data/.git/objects/13/0b7e2d214ec198d07aeed5b462597670ce85ad +0 -0
  27. data/.git/objects/13/214d40f02b63f1233fd7881b1df9bb75d9c0a7 +0 -0
  28. data/.git/objects/14/7522bdc96af0b578935d81c1a7347b40573940 +0 -0
  29. data/.git/objects/16/a7fde706fe92b3548254d29722f5ca311ce63b +2 -0
  30. data/.git/objects/16/fe580663cc29d141bf416dff5bf21bf4ea42a3 +0 -0
  31. data/.git/objects/17/2d55806918bafb4e701515edb27147a4ef6498 +0 -0
  32. data/.git/objects/17/686ef1882ed6c3c07b781fab18739b1c5e48bd +0 -0
  33. data/.git/objects/17/824053c41a2cb523303e20cac42f66f9ca2134 +0 -0
  34. data/.git/objects/18/68448c5f88bc73b2fef6b8f3aa75b663013a3a +1 -0
  35. data/.git/objects/1a/6d9051dc4c7db10bdcf5e17c5cb717b072d30a +0 -0
  36. data/.git/objects/1a/8bdb445fb5668dcd1309cb9de5dedf846c822f +0 -0
  37. data/.git/objects/1b/6fa67b70358fdb82eabcd7ef3bc46d518d0426 +0 -0
  38. data/.git/objects/1c/f6510ed08a274fb3292d40557cebb3e7090767 +0 -0
  39. data/.git/objects/1d/e661ce11d5335e5dd7968ef5698e2eb164eb52 +0 -0
  40. data/.git/objects/1e/301ee672d6040e734af6d0a5491185129d7b67 +0 -0
  41. data/.git/objects/21/2201d46200f13d23d8199bd4a7ecc9165205b3 +0 -0
  42. data/.git/objects/22/f687370babdf38d224d2a9ff039707e8d0aac1 +0 -0
  43. data/.git/objects/24/202d2de95dc31f5f1802e629a16ad45b723267 +0 -0
  44. data/.git/objects/25/4c5b6b8d211d8b9f07310fd342fd7b078a81af +0 -0
  45. data/.git/objects/25/5832653fde9e9748855347fe7bce013aa0a6c7 +0 -0
  46. data/.git/objects/25/806945c89b4b5adb8c8676c308e4653361109c +5 -0
  47. data/.git/objects/26/cb8deaca28bf275769cbb71b88e53a44adb9ca +0 -0
  48. data/.git/objects/2e/1c13fb5f154f89cccd4c645540a2ec8ee0f57a +0 -0
  49. data/.git/objects/2f/437425b2c085bb529379e409d6b4bc7f9f9fba +0 -0
  50. data/.git/objects/2f/7cf4a25937b71f3de52e70c7a47cb2f7da07ea +0 -0
  51. data/.git/objects/31/31bdbbac6e6e7e24fd6ea84332461f67e6e5b6 +0 -0
  52. data/.git/objects/32/02e02de478263912b729283eabc7cdab8a8037 +0 -0
  53. data/.git/objects/32/839ed9baa8c800d9033655d1ee995499825fb5 +0 -0
  54. data/.git/objects/34/2e479c61796125b0e025b483401ec12f3c5824 +2 -0
  55. data/.git/objects/36/7acb017aebab3f627a5208c25885c21fa7fdbb +0 -0
  56. data/.git/objects/38/12910d2e2a8e6eeb79a399d20751675d3fbe77 +0 -0
  57. data/.git/objects/38/3fe1e1a07537db6e0f39c6005b7b4e40fa5ccd +0 -0
  58. data/.git/objects/39/5ef328bc94df9191f4d80a77503a5be9f1f673 +0 -0
  59. data/.git/objects/39/dc76dc096fdf737e9f4f7062b78cbf4ab9628f +0 -0
  60. data/.git/objects/3b/09eb196140b471556ed4c3987c0bc739733617 +0 -0
  61. data/.git/objects/3b/9f97f1bf55834832a92bab1ab900918dc49570 +0 -0
  62. data/.git/objects/40/5ffd3925b39dd905638ec24640dd8efa27cc1b +0 -0
  63. data/.git/objects/42/4a5f37c6fe3a7cac54b0f85688c1cce7da9cdf +0 -0
  64. data/.git/objects/44/9e23363d4e20da6a67be7ab78fc610b4e9852a +0 -0
  65. data/.git/objects/48/90bb5d241cecaa30b28148c920b833056c7508 +0 -0
  66. data/.git/objects/4c/558c43676410a2c0a7d5c7b94fca18923a9af1 +0 -0
  67. data/.git/objects/4f/bf572175dd5245104679ff8f676f6a34466c29 +0 -0
  68. data/.git/objects/53/8583edf00c9f656b32149a0e69e030371737c5 +0 -0
  69. data/.git/objects/5b/8a2c4bf7bb56ae199414096dbda21fd4b8cd63 +0 -0
  70. data/.git/objects/5c/9fe8ff998d56dc076657ef88ee9f784ec160f9 +0 -0
  71. data/.git/objects/5f/8441f9d3507587940f31af04dd9fd5911d2812 +0 -0
  72. data/.git/objects/61/4f2752550e63b793e31dcf98b5ea26c32eb0be +0 -0
  73. data/.git/objects/65/801b0fabdfd673861dbb2ac134d438ab2cc5e4 +3 -0
  74. data/.git/objects/66/2746dffaddbcd311f4ac070b5b9bddcd8894a7 +0 -0
  75. data/.git/objects/69/1ed3b65603a0d0dabfb66720e7163664be78f5 +0 -0
  76. data/.git/objects/69/3dc3b6037df8c1c8dfda916d649e7975481124 +0 -0
  77. data/.git/objects/69/67538427b3a371b33c01c72726ac7e67a04c39 +0 -0
  78. data/.git/objects/69/6cd6c3508e2adcc68829497884ff3d4b774dc2 +0 -0
  79. data/.git/objects/69/6ee93917040308ccd0bfc245d63c1cbeb23dae +0 -0
  80. data/.git/objects/6a/3ac317746a8a2cfc88f3580bbd2b03dc0d50b5 +0 -0
  81. data/.git/objects/6d/6ba435839a65b96cb3f7584a40dd3767a0990f +0 -0
  82. data/.git/objects/6f/32c190a651a82caeefeb55eb797fc5daf05426 +0 -0
  83. data/.git/objects/71/fecbce1bec36eaf4de655763d4bb7ceffc991d +0 -0
  84. data/.git/objects/72/01d78a9e90347fd2f7790f9e8665587791d853 +0 -0
  85. data/.git/objects/73/6c97d6a551363ba4a4956408ba228fcab7f91f +0 -0
  86. data/.git/objects/75/3264271e935e18f4eada49aa1818c6fb9e6abb +0 -0
  87. data/.git/objects/75/cc7d390b4a565495cbdc5a08d4479e7e8dbfeb +0 -0
  88. data/.git/objects/76/7c0c96f68b9ccec34ae538045a63bbe4f97d3e +0 -0
  89. data/.git/objects/7b/47fe9b1ab9f2692b9706054de706430089ecd4 +0 -0
  90. data/.git/objects/7c/73144ef6847d1bc2315aee0925c0e5cf5c09d1 +0 -0
  91. data/.git/objects/7d/9c177c155386606aa1024d5cb020a097eea64a +0 -0
  92. data/.git/objects/7d/e9a3296007c09ba9b7bc1802e1c5d9ad1d5dbb +0 -0
  93. data/.git/objects/7e/b73d408147c8d84881109189a9724292abcb8d +0 -0
  94. data/.git/objects/82/0e3bf5449a8f6b8eb637a653dcb2dc387b393c +0 -0
  95. data/.git/objects/83/a10ce96763cb30d0b81425e9372f89c52f4c9f +0 -0
  96. data/.git/objects/83/bdb801e78444d59225f83cf2f336f114cd23cf +0 -0
  97. data/.git/objects/85/24e583e822abc18b1ffdd0aa356c9c079b5548 +0 -0
  98. data/.git/objects/88/b46cc8de5237897d4ba5023d3efdc83fec4f7c +0 -0
  99. data/.git/objects/89/5eea66474f48a2cbf643ad0ef266fd26f9d2a3 +0 -0
  100. data/.git/objects/8a/539c5fc35d5b770d67241d2ccb6c6855df6a43 +0 -0
  101. data/.git/objects/8a/82cdbfb20cc58fdffe4e13b70b55977deb92c6 +0 -0
  102. data/.git/objects/8b/2b537442e4ac8719ffa71b3ae0c707133df06f +0 -0
  103. data/.git/objects/8c/2a45f0c81284a081f8d7980e9a54210a9dd52c +0 -0
  104. data/.git/objects/8e/10355b4ab312450031966107ef6a65b13833ee +0 -0
  105. data/.git/objects/90/f6c76767ae725f15fa6790dcb6afd1719fa0e2 +0 -0
  106. data/.git/objects/92/92b696aba9840c089241c68d4c6ca14be38a64 +2 -0
  107. data/.git/objects/93/e03faa6906892434fa9f2ad230c4ececc64055 +0 -0
  108. data/.git/objects/93/eca2e28d80fda45d327fdfc6c39ae690af41cd +0 -0
  109. data/.git/objects/95/92fe63bd5403654730cdec76cbf116ef83bbff +0 -0
  110. data/.git/objects/96/bc6dd471c1c188a2eb4308bcc3ca4e6c8faac8 +0 -0
  111. data/.git/objects/96/d855221a9ff4fba57d2b70680b57bd5115cfde +0 -0
  112. data/.git/objects/97/4ec92b2b9eb01a73fb57dc78d463cafdda69a7 +0 -0
  113. data/.git/objects/97/b7ec01ebe089832a0972d20b0a40d54456985c +2 -0
  114. data/.git/objects/97/fa6aaae4cfc7654feb39971e7aee5c41ed1679 +1 -0
  115. data/.git/objects/98/18351c6685a1df5d23686e6346d11d261cc6f0 +0 -0
  116. data/.git/objects/98/3d3b7e55cbbce2f2a52c6e6d830a5dca7b4d42 +0 -0
  117. data/.git/objects/a2/e551049a5388112c21e7f3a4a720bf720601fa +0 -0
  118. data/.git/objects/a3/7066bea4fae90d34761a3ebb3f8a348d94eba1 +0 -0
  119. data/.git/objects/a6/c99619145d1b9b75aa15ca04fbe4db0b2ee79b +0 -0
  120. data/.git/objects/aa/e2234d0a8c1485096c7a7de039eceb4e019e13 +0 -0
  121. data/.git/objects/b0/3b52f4269c9719e02ecd6caabd8aff5adf3aac +0 -0
  122. data/.git/objects/b1/50dbbd89f825302a9e82d8fdd66f238b8e6fc4 +0 -0
  123. data/.git/objects/b4/545fbe393aaa18f1c48de4d9f68f64ebf09ddc +0 -0
  124. data/.git/objects/b6/8691404e088692929d40b988b993f815d76756 +0 -0
  125. data/.git/objects/b7/daa3d844ef5f5cd917084e48edd82e67f8f476 +0 -0
  126. data/.git/objects/bf/4232281dba5a0f17e8b5c16b9cbd0f52274fa8 +0 -0
  127. data/.git/objects/bf/9b84d10f19188beffe5ee99e6f5af035ba77d3 +2 -0
  128. data/.git/objects/c0/06e664b306145de804f74ab27550d62a92f58a +1 -0
  129. data/.git/objects/c2/2806b16775f66453012d085d21fb8698521ea9 +0 -0
  130. data/.git/objects/c2/7f6559350f7adb19d43742b55b2f91d07b6550 +0 -0
  131. data/.git/objects/c3/833df21ed674a77374fd40ed931f900134d38b +0 -0
  132. data/.git/objects/c3/b9da021eb76abad0b17ad6c4be75595e41a7e6 +0 -0
  133. data/.git/objects/c5/ca6b7e3561ea88aba1712aabb984d1167787f1 +0 -0
  134. data/.git/objects/c6/39f65e1f43c75b7f57c5ab28623d295dfb2afd +0 -0
  135. data/.git/objects/c8/6f05fa5539f8e69e94850d1cd917919ff581be +0 -0
  136. data/.git/objects/cb/5e499c8dcc6f2901014a08e74f04b7a4bd6596 +0 -0
  137. data/.git/objects/cc/1289d25eeee6ba31b4e406372cb9abf969fc6f +0 -0
  138. data/.git/objects/cc/784e1b49111c42fa7eae10ad0e788186e672d1 +0 -0
  139. data/.git/objects/cc/bcae254dad515d7ef01a461980544e4483c41e +0 -0
  140. data/.git/objects/ce/bfadad3a7c17148998e04275e6d0d1cf1b2e1e +0 -0
  141. data/.git/objects/ce/f3335522abdc47a2c94be70455dcfaa9a51a27 +0 -0
  142. data/.git/objects/cf/6add7ea568d3d90d6a1f8afb0898b0119b14ff +0 -0
  143. data/.git/objects/d0/719abd196033fec0e4cbe2af68a26ca435389c +0 -0
  144. data/.git/objects/d1/ce63ff0eaec4dba419e5547f99195dfb9b5b20 +0 -0
  145. data/.git/objects/d2/c3feb3c74b892cca0049c0aced6ce786a784c8 +0 -0
  146. data/.git/objects/d7/8a91da13413419da71b539a3c6c7df4d8a2458 +0 -0
  147. data/.git/objects/d8/c7bed2b1357d54b6935536a8a51a3c73d535b4 +0 -0
  148. data/.git/objects/da/c3a1277ccb4806011e33eb32c5609cc45c46f2 +0 -0
  149. data/.git/objects/dc/3f920f4b937d0e2ac512f0bb31d477624c46d5 +0 -0
  150. data/.git/objects/dc/6c389abf5bd0d7b9be2a6bb6af90738a410e59 +0 -0
  151. data/.git/objects/df/07c423309f39c4d5570b0fad65dff23af654ae +0 -0
  152. data/.git/objects/e2/93a5c9e2257b9f3fcb8fa5d5c8147a2f07ba1b +0 -0
  153. data/.git/objects/e4/8464df56bf487e96e21ea99487330266dae3c9 +0 -0
  154. data/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
  155. data/.git/objects/e8/0c13a1d1f62756fb9f1e4fb9f7512e5b8c5816 +0 -0
  156. data/.git/objects/e9/b8ade2125b2615ddc4c8043940c40ed36215c9 +0 -0
  157. data/.git/objects/ed/59a7599a81ef7ea7c230c3332345a3484febf8 +0 -0
  158. data/.git/objects/f0/d2a74226877e9a28af814d0d3727e4a3487439 +0 -0
  159. data/.git/objects/f0/f3ba7264f1d8e60eb93a907092af98fdc248e4 +0 -0
  160. data/.git/objects/f1/cdcc7ff2dc6298318523b2c4e425f515a58bf7 +3 -0
  161. data/.git/objects/f4/45c96f406f4d2f9839b3fe2fe8bc7f943ab469 +0 -0
  162. data/.git/objects/f7/eef7ce0a650d6f0c85dc4982f481da7bd44362 +0 -0
  163. data/.git/objects/f9/0abf96c5059ce1ba115f73bc9cf33e4663b3e1 +0 -0
  164. data/.git/objects/f9/cf7ae572eaebbd63f809f16a5ef14b9c679790 +0 -0
  165. data/.git/objects/fc/300df53fe2c9467210e2fd4c2f34e1c9c7c89a +0 -0
  166. data/.git/objects/fc/45546596ab8debc4c9f49a7abc7fc14a7bcc7f +4 -0
  167. data/.git/objects/fc/68d89167f69614eda17bd56dfccb4355d818e6 +0 -0
  168. data/.git/objects/fc/e4c02bb132e73b3cb957da182db7b75a47c242 +0 -0
  169. data/.git/objects/fe/be283da7f326344013f1fc847c12c8f29ab6ef +0 -0
  170. data/.git/refs/heads/master +1 -0
  171. data/.git/refs/remotes/origin/master +1 -0
  172. data/.gitignore +5 -0
  173. data/History.txt +4 -0
  174. data/License.txt +22 -0
  175. data/Manifest.txt +291 -0
  176. data/README +156 -0
  177. data/README.txt +156 -0
  178. data/Rakefile +4 -0
  179. data/config/hoe.rb +83 -0
  180. data/config/requirements.rb +15 -0
  181. data/examples/crud_components/html/address_view_edit.xhtml +19 -0
  182. data/examples/crud_components/html/addresses.xhtml +20 -0
  183. data/examples/crud_components/html/images/destroy.gif +0 -0
  184. data/examples/crud_components/html/images/edit.gif +0 -0
  185. data/examples/crud_components/html/images/field-error-marker.gif +0 -0
  186. data/examples/crud_components/html/images/sort-asc.png +0 -0
  187. data/examples/crud_components/html/images/sort-desc.png +0 -0
  188. data/examples/crud_components/html/images/sortable.png +0 -0
  189. data/examples/crud_components/html/style/trellis.css +416 -0
  190. data/examples/crud_components/source/crud_components.rb +77 -0
  191. data/examples/crud_components/source/domain.rb +6 -0
  192. data/examples/examples.txt +65 -0
  193. data/examples/flickr/source/flickr.rb +87 -0
  194. data/examples/guest_book/source/guest_book.rb +61 -0
  195. data/examples/hangman/html/game_over.xhtml +23 -0
  196. data/examples/hangman/html/guess.xhtml +47 -0
  197. data/examples/hangman/html/images/a_disabled.png +0 -0
  198. data/examples/hangman/html/images/a_enabled.png +0 -0
  199. data/examples/hangman/html/images/b_disabled.png +0 -0
  200. data/examples/hangman/html/images/b_enabled.png +0 -0
  201. data/examples/hangman/html/images/c_disabled.png +0 -0
  202. data/examples/hangman/html/images/c_enabled.png +0 -0
  203. data/examples/hangman/html/images/d_disabled.png +0 -0
  204. data/examples/hangman/html/images/d_enabled.png +0 -0
  205. data/examples/hangman/html/images/e_disabled.png +0 -0
  206. data/examples/hangman/html/images/e_enabled.png +0 -0
  207. data/examples/hangman/html/images/f_disabled.png +0 -0
  208. data/examples/hangman/html/images/f_enabled.png +0 -0
  209. data/examples/hangman/html/images/g_disabled.png +0 -0
  210. data/examples/hangman/html/images/g_enabled.png +0 -0
  211. data/examples/hangman/html/images/h_disabled.png +0 -0
  212. data/examples/hangman/html/images/h_enabled.png +0 -0
  213. data/examples/hangman/html/images/i_disabled.png +0 -0
  214. data/examples/hangman/html/images/i_enabled.png +0 -0
  215. data/examples/hangman/html/images/j_disabled.png +0 -0
  216. data/examples/hangman/html/images/j_enabled.png +0 -0
  217. data/examples/hangman/html/images/k_disabled.png +0 -0
  218. data/examples/hangman/html/images/k_enabled.png +0 -0
  219. data/examples/hangman/html/images/l_disabled.png +0 -0
  220. data/examples/hangman/html/images/l_enabled.png +0 -0
  221. data/examples/hangman/html/images/m_disabled.png +0 -0
  222. data/examples/hangman/html/images/m_enabled.png +0 -0
  223. data/examples/hangman/html/images/n_disabled.png +0 -0
  224. data/examples/hangman/html/images/n_enabled.png +0 -0
  225. data/examples/hangman/html/images/o_disabled.png +0 -0
  226. data/examples/hangman/html/images/o_enabled.png +0 -0
  227. data/examples/hangman/html/images/p_disabled.png +0 -0
  228. data/examples/hangman/html/images/p_enabled.png +0 -0
  229. data/examples/hangman/html/images/q_disabled.png +0 -0
  230. data/examples/hangman/html/images/q_enabled.png +0 -0
  231. data/examples/hangman/html/images/r_disabled.png +0 -0
  232. data/examples/hangman/html/images/r_enabled.png +0 -0
  233. data/examples/hangman/html/images/s_disabled.png +0 -0
  234. data/examples/hangman/html/images/s_enabled.png +0 -0
  235. data/examples/hangman/html/images/t_disabled.png +0 -0
  236. data/examples/hangman/html/images/t_enabled.png +0 -0
  237. data/examples/hangman/html/images/u_disabled.png +0 -0
  238. data/examples/hangman/html/images/u_enabled.png +0 -0
  239. data/examples/hangman/html/images/v_disabled.png +0 -0
  240. data/examples/hangman/html/images/v_enabled.png +0 -0
  241. data/examples/hangman/html/images/w_disabled.png +0 -0
  242. data/examples/hangman/html/images/w_enabled.png +0 -0
  243. data/examples/hangman/html/images/x_disabled.png +0 -0
  244. data/examples/hangman/html/images/x_enabled.png +0 -0
  245. data/examples/hangman/html/images/y_disabled.png +0 -0
  246. data/examples/hangman/html/images/y_enabled.png +0 -0
  247. data/examples/hangman/html/images/z_disabled.png +0 -0
  248. data/examples/hangman/html/images/z_enabled.png +0 -0
  249. data/examples/hangman/html/resources/word_list.txt +35 -0
  250. data/examples/hangman/html/start.xhtml +18 -0
  251. data/examples/hangman/html/style/hangman.css +27 -0
  252. data/examples/hangman/source/hangman.rb +71 -0
  253. data/examples/hilo/html/game_over.xhtml +15 -0
  254. data/examples/hilo/html/guess.xhtml +18 -0
  255. data/examples/hilo/html/start.xhtml +17 -0
  256. data/examples/hilo/source/hilo.rb +51 -0
  257. data/examples/simplest/html/start.xhtml +0 -0
  258. data/examples/simplest/source/simplest.rb +39 -0
  259. data/examples/stateful_counters/html/counters.xhtml +49 -0
  260. data/examples/stateful_counters/html/style/main.css +441 -0
  261. data/examples/stateful_counters/source/stateful_counters.rb +68 -0
  262. data/lib/trellis/core_components.rb +870 -0
  263. data/lib/trellis/jquery.rb +38 -0
  264. data/lib/trellis/logging.rb +60 -0
  265. data/lib/trellis/trellis.rb +701 -0
  266. data/lib/trellis/utils.rb +209 -0
  267. data/lib/trellis/version.rb +35 -0
  268. data/lib/trellis.rb +27 -0
  269. data/script/console +10 -0
  270. data/script/destroy +14 -0
  271. data/script/generate +14 -0
  272. data/script/txt2html +82 -0
  273. data/setup.rb +1585 -0
  274. data/tasks/deployment.rake +34 -0
  275. data/tasks/environment.rake +7 -0
  276. data/tasks/rspec.rake +21 -0
  277. data/tasks/website.rake +17 -0
  278. data/test/application_spec.rb +79 -0
  279. data/test/component_spec.rb +88 -0
  280. data/test/core_extensions_spec.rb +108 -0
  281. data/test/fixtures/application_spec_applications.rb +51 -0
  282. data/test/page_spec.rb +46 -0
  283. data/test/renderer_spec.rb +12 -0
  284. data/test/router_spec.rb +52 -0
  285. data/test/spec.opts +1 -0
  286. data/test/spec_helper.rb +16 -0
  287. data/website/index.html +124 -0
  288. data/website/index.txt +119 -0
  289. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  290. data/website/stylesheets/screen.css +138 -0
  291. data/website/template.html.erb +48 -0
  292. metadata +512 -0
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <link rel="stylesheet" type="text/css" href="/style/hangman.css" />
7
+ <title>Game Over!</title>
8
+ </head>
9
+ <body>
10
+ <trellis:if test="!win">
11
+ <p>Bad luck. You failed to guess that the word was <trellis:value name="target"><b>education</b></trellis:value>.
12
+ </p><p>Better luck next time!</p>
13
+ </trellis:if>
14
+
15
+ <trellis:if test="win">
16
+ <p>Congratulations! You guessed that the word was <trellis:value name="target"><b>education</b></trellis:value>
17
+ with <trellis:value name="guesses_left">2</trellis:value> remaining guesses.</p>
18
+ </trellis:if>
19
+
20
+ <p>[<trellis:page_link tpage="start">Play Again</trellis:page_link>].</p>
21
+ </body>
22
+ </html>
23
+
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:trellis="http://labs.integralis.org/schema/trellis_1_0_0.xsd">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <link rel="stylesheet" type="text/css" href="/style/hangman.css" />
7
+ <title>Trellis Hangman</title>
8
+ </head>
9
+ <body>
10
+ <p><trellis:value name="guesses_left">n</trellis:value> guesses remaining</p>
11
+ <p>Word: <trellis:value name="letters">________</trellis:value></p>
12
+
13
+ <div style="width: 250px;">
14
+ <trellis:loop source="a..z" value="guess">
15
+ <div class="letter">
16
+ <trellis:if test="!guessed['${guess}']">
17
+ <trellis:action_link tid="link" context="guess">
18
+ <trellis:img alt="${guess}" style="vertical-align:middle;border:0" src="/images/${guess}_disabled.png" />
19
+ </trellis:action_link>
20
+ </trellis:if>
21
+ <trellis:if test="guessed['${guess}']">
22
+ <trellis:img alt="${guess}" style="vertical-align:middle;border:0" src="/images/${guess}_enabled.png" />
23
+ </trellis:if>
24
+ </div>
25
+ </trellis:loop>
26
+ <trellis:remove>
27
+ <!-- preview by designers -->
28
+ <div class="letter">
29
+ <img alt="" style="vertical-align:middle;border:0" src="images/a_disabled.png" />
30
+ </div>
31
+ <div class="letter">
32
+ <img alt="" style="vertical-align:middle;border:0" src="images/b_disabled.png" />
33
+ </div>
34
+ <div class="letter">
35
+ <img alt="" style="vertical-align:middle;border:0" src="images/c_disabled.png" />
36
+ </div>
37
+ <div class="letter">
38
+ <img alt="" style="vertical-align:middle;border:0" src="images/d_enabled.png" />
39
+ </div>
40
+ <div class="letter">
41
+ <img alt="" style="vertical-align:middle;border:0" src="images/e_disabled.png" />
42
+ </div>
43
+ <!-- end of preview -->
44
+ </trellis:remove>
45
+ </div>
46
+ </body>
47
+ </html>
@@ -0,0 +1,35 @@
1
+ tapestry
2
+ trellis
3
+ peanut
4
+ pinball
5
+ helmet
6
+ stereo
7
+ citadel
8
+ gargoyle
9
+ cranium
10
+ axiom
11
+ media
12
+ virus
13
+ orbit
14
+ wizard
15
+ golden
16
+ revenge
17
+ bowling
18
+ annual
19
+ mercy
20
+ anatomy
21
+ zanzibar
22
+ pepper
23
+ connect
24
+ monster
25
+ impress
26
+ doctor
27
+ horror
28
+ cooking
29
+ virtual
30
+ power
31
+ freight
32
+ formula
33
+ board
34
+ eclipse
35
+ biology
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <link rel="stylesheet" type="text/css" href="/style/hangman.css" />
7
+ <title>Trellis Hangman</title>
8
+ </head>
9
+ <body>
10
+ <h1>Trellis Hangman</h1>
11
+
12
+ <p>Are you ready to play? ... </p>
13
+
14
+ <p>
15
+ <trellis:action_link>Start playing</trellis:action_link>
16
+ </p>
17
+ </body>
18
+ </html>
@@ -0,0 +1,27 @@
1
+ body {
2
+ background-color: white;
3
+ color: #555555;
4
+ font-family: 'Lucida Sans', 'Helvetica', 'Sans-serif', 'sans';
5
+ font-size: 9pt;
6
+ line-height: 1.8em;
7
+ padding: 1em;
8
+ margin: 1em;
9
+ }
10
+
11
+ form {
12
+ padding: 0;
13
+ margin: 0;
14
+ display: inline;
15
+ }
16
+
17
+ .letter {
18
+ width: 30px;
19
+ height: 30px;
20
+ margin: 2px;
21
+ float: left;
22
+ }
23
+
24
+ a {
25
+ color: black;
26
+ }
27
+
@@ -0,0 +1,71 @@
1
+ require 'rubygems'
2
+ require 'trellis'
3
+
4
+ include Trellis
5
+
6
+ module Hangman
7
+ class HangmanGame < Application
8
+ home :start
9
+ pages :guess, :game_over
10
+
11
+ map_static ['/images', '/style', '/favicon.ico']
12
+ end
13
+
14
+ class Start < Page
15
+ pages :guess
16
+
17
+ @@words = Array.new
18
+ File.open("#{File.dirname($0)}/../html/resources/word_list.txt", "r").each do |word|
19
+ @@words << word.strip
20
+ end
21
+
22
+ def on_select
23
+ @guess.set_target_word = @@words[rand(@@words.size)]
24
+ @guess
25
+ end
26
+ end
27
+
28
+ class Guess < Page
29
+ pages :game_over
30
+ persistent :target, :guesses_left, :letters, :guessed, :win
31
+
32
+ def on_select_from_link(value)
33
+ next_page = self
34
+ @guessed[value] = true
35
+
36
+ if @target.include?(value)
37
+ @letters.each_index { |index| @letters[index] = value if @target[index] == value }
38
+ else
39
+ @guesses_left = @guesses_left - 1
40
+ end
41
+
42
+ @win = !@letters.include?('_')
43
+
44
+ if @win || @guesses_left == 0
45
+ next_page = @game_over
46
+ @game_over.target = @target
47
+ @game_over.win = @win
48
+ @game_over.guesses_left = @guesses_left
49
+ end
50
+
51
+ next_page
52
+ end
53
+
54
+ def set_target_word=(value)
55
+ @win = false
56
+ @guesses_left = 5
57
+ @target = Array.new
58
+ value.scan(/.{1}/).each { |char| @target << char }
59
+ @letters = Array.new(@target.length, '_')
60
+ @guessed = Hash.new(false)
61
+ ('a'..'z').each { |letter| @guessed[letter] = false }
62
+ end
63
+ end
64
+
65
+ class GameOver < Page
66
+ attr_accessor :target, :win, :guesses_left
67
+ end
68
+
69
+ web_app = HangmanGame.new
70
+ web_app.start 3010 if __FILE__ == $PROGRAM_NAME
71
+ end
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <title>Game Over!</title>
7
+ </head>
8
+ <body>
9
+ <h1>Game Over</h1>
10
+
11
+ <p>You guessed the secret number in <trellis:value name="count">n</trellis:value> guesses!</p>
12
+ <p>[<trellis:page_link tpage="start">Play Again</trellis:page_link>]</p>
13
+ </body>
14
+ </html>
15
+
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <title>Guess A Number</title>
7
+ </head>
8
+ <body>
9
+ <p>Make a guess between one and ten:</p>
10
+ <p><trellis:value name="message">Too low or two high message</trellis:value></p>
11
+
12
+ <trellis:loop source="1..10" value="guess">
13
+ <trellis:action_link tid="link" context="guess">
14
+ <trellis:value name="guess">guess</trellis:value>
15
+ </trellis:action_link>
16
+ </trellis:loop>
17
+ </body>
18
+ </html>
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
6
+ <title>Hi/Lo Game Start Page</title>
7
+ </head>
8
+ <body>
9
+ <h1>Hi/Lo Guess</h1>
10
+
11
+ <p>I'm thinking of a number between one and ten ... </p>
12
+
13
+ <p>
14
+ <trellis:action_link>Start guessing</trellis:action_link>
15
+ </p>
16
+ </body>
17
+ </html>
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'trellis'
3
+
4
+ include Trellis
5
+
6
+ module HiLo
7
+
8
+ class HiLoGame < Application
9
+ home :start
10
+ pages :guess, :game_over
11
+ end
12
+
13
+ class Start < Page
14
+ pages :guess
15
+
16
+ def on_select
17
+ @guess.target = rand(10);
18
+ return @guess
19
+ end
20
+ end
21
+
22
+ class Guess < Page
23
+ pages :game_over
24
+ persistent :target, :message, :count
25
+
26
+ def on_select_from_link(value)
27
+ guess_val = value.to_i
28
+ next_page = self
29
+ @count = @count + 1
30
+ if guess_val == @target
31
+ @game_over.count = @count
32
+ next_page = @game_over
33
+ else
34
+ @message = "Guess #{guess_val} is too #{guess_val < @target ? 'low' : 'high'}"
35
+ end
36
+
37
+ next_page
38
+ end
39
+
40
+ def target=(value)
41
+ @target, @count, @message = value, 0, ''
42
+ end
43
+ end
44
+
45
+ class GameOver < Page
46
+ attr_accessor :count
47
+ end
48
+
49
+ web_app = HiLoGame.new
50
+ web_app.start 3001 if __FILE__ == $PROGRAM_NAME
51
+ end
File without changes
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ require 'trellis'
3
+
4
+ include Trellis
5
+
6
+ module Simplest
7
+
8
+ class Simplest < Application
9
+ home :start
10
+ end
11
+
12
+ class Start < Page
13
+ attr_accessor :current_time
14
+
15
+ def initialize
16
+ @current_time = Time.now
17
+ end
18
+
19
+ template do # using Markaby
20
+ xhtml_strict {
21
+ head { title "Simplest Trellis Application" }
22
+ body {
23
+ h1 "Simplest Trellis Application"
24
+ p "One Application, One Page, Two Components"
25
+ p "The time below should change after each request."
26
+ p {
27
+ text "The current time is: "
28
+ text %[<trellis:value name="current_time">${currentTime}.</trellis:value>]
29
+ }
30
+ p {
31
+ text %[[<trellis:page_link tpage="start">refresh</trellis:page_link>]]
32
+ }
33
+ }
34
+ }
35
+ end
36
+ end
37
+
38
+ Simplest.new.start if __FILE__ == $PROGRAM_NAME
39
+ end
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
+ <head>
5
+ <title>Trellis: Multi Counter</title>
6
+ <link rel="stylesheet" type="text/css" media="all" href="style/main.css"/>
7
+ </head>
8
+ <body>
9
+ <div id="wrap">
10
+ <div id="desk" class="wide">
11
+ <div id="body" class="columns">
12
+ <div id="content" class="triple">
13
+ <h1 class="heading">Multi Counter</h1>
14
+ <p>The multicounter show multiple instances of a stateful component. It displays several instances of the same counter component.</p>
15
+ <p>
16
+
17
+ </p>
18
+ <div class="paragraph">
19
+ <div class="trellis">
20
+ <trellis:remove>
21
+ <h1>1</h1>
22
+ <a href="add_link">++</a> <a href="subtract_link">--</a>
23
+ <hr/>
24
+ <h1>1</h1>
25
+ <a href="add_link">++</a> <a href="subtract_link">--</a>
26
+ <hr/>
27
+ <h1>1</h1>
28
+ <a href="add_link">++</a> <a href="subtract_link">--</a>
29
+ <hr/>
30
+ <h1>0</h1>
31
+ <a href="add_link">++</a> <a href="subtract_link">--</a>
32
+ <hr/>
33
+ <h1>0</h1>
34
+ <a href="add_link">++</a> <a href="subtract_link">--</a>
35
+ </trellis:remove>
36
+ <trellis:counter tid="one" />
37
+ <hr/>
38
+ <trellis:counter tid="two" />
39
+ <hr/>
40
+ <trellis:counter tid="three" />
41
+ </div>
42
+ </div>
43
+ <trellis:action_link tid="reset">Reset all counters</trellis:action_link>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </body>
49
+ </html>