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.
- data/.git/COMMIT_EDITMSG +1 -0
- data/.git/HEAD +1 -0
- data/.git/config +9 -0
- data/.git/description +1 -0
- data/.git/hooks/applypatch-msg.sample +15 -0
- data/.git/hooks/commit-msg.sample +24 -0
- data/.git/hooks/post-commit.sample +8 -0
- data/.git/hooks/post-receive.sample +15 -0
- data/.git/hooks/post-update.sample +8 -0
- data/.git/hooks/pre-applypatch.sample +14 -0
- data/.git/hooks/pre-commit.sample +18 -0
- data/.git/hooks/pre-rebase.sample +169 -0
- data/.git/hooks/prepare-commit-msg.sample +36 -0
- data/.git/hooks/update.sample +107 -0
- data/.git/index +0 -0
- data/.git/info/exclude +6 -0
- data/.git/logs/HEAD +1 -0
- data/.git/logs/refs/heads/master +1 -0
- data/.git/logs/refs/remotes/origin/master +1 -0
- data/.git/objects/01/2368d4dd3162ed570e6c1423ecb07a6a35f8c0 +0 -0
- data/.git/objects/02/238c88c522b88e71529495460cc5c2c8abe110 +0 -0
- data/.git/objects/07/03d3b123189f1da72d3889d9340e681841c96d +0 -0
- data/.git/objects/0b/3935fdbf3ce8d37e6cb2a6ec94edaccb1c58dc +0 -0
- data/.git/objects/0f/ecd1ad35f280c874ce070b7a97a4c1f86ace54 +0 -0
- data/.git/objects/12/61911b063b7e6883c5e9db7ab4396183f6f2b5 +0 -0
- data/.git/objects/13/0b7e2d214ec198d07aeed5b462597670ce85ad +0 -0
- data/.git/objects/13/214d40f02b63f1233fd7881b1df9bb75d9c0a7 +0 -0
- data/.git/objects/14/7522bdc96af0b578935d81c1a7347b40573940 +0 -0
- data/.git/objects/16/a7fde706fe92b3548254d29722f5ca311ce63b +2 -0
- data/.git/objects/16/fe580663cc29d141bf416dff5bf21bf4ea42a3 +0 -0
- data/.git/objects/17/2d55806918bafb4e701515edb27147a4ef6498 +0 -0
- data/.git/objects/17/686ef1882ed6c3c07b781fab18739b1c5e48bd +0 -0
- data/.git/objects/17/824053c41a2cb523303e20cac42f66f9ca2134 +0 -0
- data/.git/objects/18/68448c5f88bc73b2fef6b8f3aa75b663013a3a +1 -0
- data/.git/objects/1a/6d9051dc4c7db10bdcf5e17c5cb717b072d30a +0 -0
- data/.git/objects/1a/8bdb445fb5668dcd1309cb9de5dedf846c822f +0 -0
- data/.git/objects/1b/6fa67b70358fdb82eabcd7ef3bc46d518d0426 +0 -0
- data/.git/objects/1c/f6510ed08a274fb3292d40557cebb3e7090767 +0 -0
- data/.git/objects/1d/e661ce11d5335e5dd7968ef5698e2eb164eb52 +0 -0
- data/.git/objects/1e/301ee672d6040e734af6d0a5491185129d7b67 +0 -0
- data/.git/objects/21/2201d46200f13d23d8199bd4a7ecc9165205b3 +0 -0
- data/.git/objects/22/f687370babdf38d224d2a9ff039707e8d0aac1 +0 -0
- data/.git/objects/24/202d2de95dc31f5f1802e629a16ad45b723267 +0 -0
- data/.git/objects/25/4c5b6b8d211d8b9f07310fd342fd7b078a81af +0 -0
- data/.git/objects/25/5832653fde9e9748855347fe7bce013aa0a6c7 +0 -0
- data/.git/objects/25/806945c89b4b5adb8c8676c308e4653361109c +5 -0
- data/.git/objects/26/cb8deaca28bf275769cbb71b88e53a44adb9ca +0 -0
- data/.git/objects/2e/1c13fb5f154f89cccd4c645540a2ec8ee0f57a +0 -0
- data/.git/objects/2f/437425b2c085bb529379e409d6b4bc7f9f9fba +0 -0
- data/.git/objects/2f/7cf4a25937b71f3de52e70c7a47cb2f7da07ea +0 -0
- data/.git/objects/31/31bdbbac6e6e7e24fd6ea84332461f67e6e5b6 +0 -0
- data/.git/objects/32/02e02de478263912b729283eabc7cdab8a8037 +0 -0
- data/.git/objects/32/839ed9baa8c800d9033655d1ee995499825fb5 +0 -0
- data/.git/objects/34/2e479c61796125b0e025b483401ec12f3c5824 +2 -0
- data/.git/objects/36/7acb017aebab3f627a5208c25885c21fa7fdbb +0 -0
- data/.git/objects/38/12910d2e2a8e6eeb79a399d20751675d3fbe77 +0 -0
- data/.git/objects/38/3fe1e1a07537db6e0f39c6005b7b4e40fa5ccd +0 -0
- data/.git/objects/39/5ef328bc94df9191f4d80a77503a5be9f1f673 +0 -0
- data/.git/objects/39/dc76dc096fdf737e9f4f7062b78cbf4ab9628f +0 -0
- data/.git/objects/3b/09eb196140b471556ed4c3987c0bc739733617 +0 -0
- data/.git/objects/3b/9f97f1bf55834832a92bab1ab900918dc49570 +0 -0
- data/.git/objects/40/5ffd3925b39dd905638ec24640dd8efa27cc1b +0 -0
- data/.git/objects/42/4a5f37c6fe3a7cac54b0f85688c1cce7da9cdf +0 -0
- data/.git/objects/44/9e23363d4e20da6a67be7ab78fc610b4e9852a +0 -0
- data/.git/objects/48/90bb5d241cecaa30b28148c920b833056c7508 +0 -0
- data/.git/objects/4c/558c43676410a2c0a7d5c7b94fca18923a9af1 +0 -0
- data/.git/objects/4f/bf572175dd5245104679ff8f676f6a34466c29 +0 -0
- data/.git/objects/53/8583edf00c9f656b32149a0e69e030371737c5 +0 -0
- data/.git/objects/5b/8a2c4bf7bb56ae199414096dbda21fd4b8cd63 +0 -0
- data/.git/objects/5c/9fe8ff998d56dc076657ef88ee9f784ec160f9 +0 -0
- data/.git/objects/5f/8441f9d3507587940f31af04dd9fd5911d2812 +0 -0
- data/.git/objects/61/4f2752550e63b793e31dcf98b5ea26c32eb0be +0 -0
- data/.git/objects/65/801b0fabdfd673861dbb2ac134d438ab2cc5e4 +3 -0
- data/.git/objects/66/2746dffaddbcd311f4ac070b5b9bddcd8894a7 +0 -0
- data/.git/objects/69/1ed3b65603a0d0dabfb66720e7163664be78f5 +0 -0
- data/.git/objects/69/3dc3b6037df8c1c8dfda916d649e7975481124 +0 -0
- data/.git/objects/69/67538427b3a371b33c01c72726ac7e67a04c39 +0 -0
- data/.git/objects/69/6cd6c3508e2adcc68829497884ff3d4b774dc2 +0 -0
- data/.git/objects/69/6ee93917040308ccd0bfc245d63c1cbeb23dae +0 -0
- data/.git/objects/6a/3ac317746a8a2cfc88f3580bbd2b03dc0d50b5 +0 -0
- data/.git/objects/6d/6ba435839a65b96cb3f7584a40dd3767a0990f +0 -0
- data/.git/objects/6f/32c190a651a82caeefeb55eb797fc5daf05426 +0 -0
- data/.git/objects/71/fecbce1bec36eaf4de655763d4bb7ceffc991d +0 -0
- data/.git/objects/72/01d78a9e90347fd2f7790f9e8665587791d853 +0 -0
- data/.git/objects/73/6c97d6a551363ba4a4956408ba228fcab7f91f +0 -0
- data/.git/objects/75/3264271e935e18f4eada49aa1818c6fb9e6abb +0 -0
- data/.git/objects/75/cc7d390b4a565495cbdc5a08d4479e7e8dbfeb +0 -0
- data/.git/objects/76/7c0c96f68b9ccec34ae538045a63bbe4f97d3e +0 -0
- data/.git/objects/7b/47fe9b1ab9f2692b9706054de706430089ecd4 +0 -0
- data/.git/objects/7c/73144ef6847d1bc2315aee0925c0e5cf5c09d1 +0 -0
- data/.git/objects/7d/9c177c155386606aa1024d5cb020a097eea64a +0 -0
- data/.git/objects/7d/e9a3296007c09ba9b7bc1802e1c5d9ad1d5dbb +0 -0
- data/.git/objects/7e/b73d408147c8d84881109189a9724292abcb8d +0 -0
- data/.git/objects/82/0e3bf5449a8f6b8eb637a653dcb2dc387b393c +0 -0
- data/.git/objects/83/a10ce96763cb30d0b81425e9372f89c52f4c9f +0 -0
- data/.git/objects/83/bdb801e78444d59225f83cf2f336f114cd23cf +0 -0
- data/.git/objects/85/24e583e822abc18b1ffdd0aa356c9c079b5548 +0 -0
- data/.git/objects/88/b46cc8de5237897d4ba5023d3efdc83fec4f7c +0 -0
- data/.git/objects/89/5eea66474f48a2cbf643ad0ef266fd26f9d2a3 +0 -0
- data/.git/objects/8a/539c5fc35d5b770d67241d2ccb6c6855df6a43 +0 -0
- data/.git/objects/8a/82cdbfb20cc58fdffe4e13b70b55977deb92c6 +0 -0
- data/.git/objects/8b/2b537442e4ac8719ffa71b3ae0c707133df06f +0 -0
- data/.git/objects/8c/2a45f0c81284a081f8d7980e9a54210a9dd52c +0 -0
- data/.git/objects/8e/10355b4ab312450031966107ef6a65b13833ee +0 -0
- data/.git/objects/90/f6c76767ae725f15fa6790dcb6afd1719fa0e2 +0 -0
- data/.git/objects/92/92b696aba9840c089241c68d4c6ca14be38a64 +2 -0
- data/.git/objects/93/e03faa6906892434fa9f2ad230c4ececc64055 +0 -0
- data/.git/objects/93/eca2e28d80fda45d327fdfc6c39ae690af41cd +0 -0
- data/.git/objects/95/92fe63bd5403654730cdec76cbf116ef83bbff +0 -0
- data/.git/objects/96/bc6dd471c1c188a2eb4308bcc3ca4e6c8faac8 +0 -0
- data/.git/objects/96/d855221a9ff4fba57d2b70680b57bd5115cfde +0 -0
- data/.git/objects/97/4ec92b2b9eb01a73fb57dc78d463cafdda69a7 +0 -0
- data/.git/objects/97/b7ec01ebe089832a0972d20b0a40d54456985c +2 -0
- data/.git/objects/97/fa6aaae4cfc7654feb39971e7aee5c41ed1679 +1 -0
- data/.git/objects/98/18351c6685a1df5d23686e6346d11d261cc6f0 +0 -0
- data/.git/objects/98/3d3b7e55cbbce2f2a52c6e6d830a5dca7b4d42 +0 -0
- data/.git/objects/a2/e551049a5388112c21e7f3a4a720bf720601fa +0 -0
- data/.git/objects/a3/7066bea4fae90d34761a3ebb3f8a348d94eba1 +0 -0
- data/.git/objects/a6/c99619145d1b9b75aa15ca04fbe4db0b2ee79b +0 -0
- data/.git/objects/aa/e2234d0a8c1485096c7a7de039eceb4e019e13 +0 -0
- data/.git/objects/b0/3b52f4269c9719e02ecd6caabd8aff5adf3aac +0 -0
- data/.git/objects/b1/50dbbd89f825302a9e82d8fdd66f238b8e6fc4 +0 -0
- data/.git/objects/b4/545fbe393aaa18f1c48de4d9f68f64ebf09ddc +0 -0
- data/.git/objects/b6/8691404e088692929d40b988b993f815d76756 +0 -0
- data/.git/objects/b7/daa3d844ef5f5cd917084e48edd82e67f8f476 +0 -0
- data/.git/objects/bf/4232281dba5a0f17e8b5c16b9cbd0f52274fa8 +0 -0
- data/.git/objects/bf/9b84d10f19188beffe5ee99e6f5af035ba77d3 +2 -0
- data/.git/objects/c0/06e664b306145de804f74ab27550d62a92f58a +1 -0
- data/.git/objects/c2/2806b16775f66453012d085d21fb8698521ea9 +0 -0
- data/.git/objects/c2/7f6559350f7adb19d43742b55b2f91d07b6550 +0 -0
- data/.git/objects/c3/833df21ed674a77374fd40ed931f900134d38b +0 -0
- data/.git/objects/c3/b9da021eb76abad0b17ad6c4be75595e41a7e6 +0 -0
- data/.git/objects/c5/ca6b7e3561ea88aba1712aabb984d1167787f1 +0 -0
- data/.git/objects/c6/39f65e1f43c75b7f57c5ab28623d295dfb2afd +0 -0
- data/.git/objects/c8/6f05fa5539f8e69e94850d1cd917919ff581be +0 -0
- data/.git/objects/cb/5e499c8dcc6f2901014a08e74f04b7a4bd6596 +0 -0
- data/.git/objects/cc/1289d25eeee6ba31b4e406372cb9abf969fc6f +0 -0
- data/.git/objects/cc/784e1b49111c42fa7eae10ad0e788186e672d1 +0 -0
- data/.git/objects/cc/bcae254dad515d7ef01a461980544e4483c41e +0 -0
- data/.git/objects/ce/bfadad3a7c17148998e04275e6d0d1cf1b2e1e +0 -0
- data/.git/objects/ce/f3335522abdc47a2c94be70455dcfaa9a51a27 +0 -0
- data/.git/objects/cf/6add7ea568d3d90d6a1f8afb0898b0119b14ff +0 -0
- data/.git/objects/d0/719abd196033fec0e4cbe2af68a26ca435389c +0 -0
- data/.git/objects/d1/ce63ff0eaec4dba419e5547f99195dfb9b5b20 +0 -0
- data/.git/objects/d2/c3feb3c74b892cca0049c0aced6ce786a784c8 +0 -0
- data/.git/objects/d7/8a91da13413419da71b539a3c6c7df4d8a2458 +0 -0
- data/.git/objects/d8/c7bed2b1357d54b6935536a8a51a3c73d535b4 +0 -0
- data/.git/objects/da/c3a1277ccb4806011e33eb32c5609cc45c46f2 +0 -0
- data/.git/objects/dc/3f920f4b937d0e2ac512f0bb31d477624c46d5 +0 -0
- data/.git/objects/dc/6c389abf5bd0d7b9be2a6bb6af90738a410e59 +0 -0
- data/.git/objects/df/07c423309f39c4d5570b0fad65dff23af654ae +0 -0
- data/.git/objects/e2/93a5c9e2257b9f3fcb8fa5d5c8147a2f07ba1b +0 -0
- data/.git/objects/e4/8464df56bf487e96e21ea99487330266dae3c9 +0 -0
- data/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/.git/objects/e8/0c13a1d1f62756fb9f1e4fb9f7512e5b8c5816 +0 -0
- data/.git/objects/e9/b8ade2125b2615ddc4c8043940c40ed36215c9 +0 -0
- data/.git/objects/ed/59a7599a81ef7ea7c230c3332345a3484febf8 +0 -0
- data/.git/objects/f0/d2a74226877e9a28af814d0d3727e4a3487439 +0 -0
- data/.git/objects/f0/f3ba7264f1d8e60eb93a907092af98fdc248e4 +0 -0
- data/.git/objects/f1/cdcc7ff2dc6298318523b2c4e425f515a58bf7 +3 -0
- data/.git/objects/f4/45c96f406f4d2f9839b3fe2fe8bc7f943ab469 +0 -0
- data/.git/objects/f7/eef7ce0a650d6f0c85dc4982f481da7bd44362 +0 -0
- data/.git/objects/f9/0abf96c5059ce1ba115f73bc9cf33e4663b3e1 +0 -0
- data/.git/objects/f9/cf7ae572eaebbd63f809f16a5ef14b9c679790 +0 -0
- data/.git/objects/fc/300df53fe2c9467210e2fd4c2f34e1c9c7c89a +0 -0
- data/.git/objects/fc/45546596ab8debc4c9f49a7abc7fc14a7bcc7f +4 -0
- data/.git/objects/fc/68d89167f69614eda17bd56dfccb4355d818e6 +0 -0
- data/.git/objects/fc/e4c02bb132e73b3cb957da182db7b75a47c242 +0 -0
- data/.git/objects/fe/be283da7f326344013f1fc847c12c8f29ab6ef +0 -0
- data/.git/refs/heads/master +1 -0
- data/.git/refs/remotes/origin/master +1 -0
- data/.gitignore +5 -0
- data/History.txt +4 -0
- data/License.txt +22 -0
- data/Manifest.txt +291 -0
- data/README +156 -0
- data/README.txt +156 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +83 -0
- data/config/requirements.rb +15 -0
- data/examples/crud_components/html/address_view_edit.xhtml +19 -0
- data/examples/crud_components/html/addresses.xhtml +20 -0
- data/examples/crud_components/html/images/destroy.gif +0 -0
- data/examples/crud_components/html/images/edit.gif +0 -0
- data/examples/crud_components/html/images/field-error-marker.gif +0 -0
- data/examples/crud_components/html/images/sort-asc.png +0 -0
- data/examples/crud_components/html/images/sort-desc.png +0 -0
- data/examples/crud_components/html/images/sortable.png +0 -0
- data/examples/crud_components/html/style/trellis.css +416 -0
- data/examples/crud_components/source/crud_components.rb +77 -0
- data/examples/crud_components/source/domain.rb +6 -0
- data/examples/examples.txt +65 -0
- data/examples/flickr/source/flickr.rb +87 -0
- data/examples/guest_book/source/guest_book.rb +61 -0
- data/examples/hangman/html/game_over.xhtml +23 -0
- data/examples/hangman/html/guess.xhtml +47 -0
- data/examples/hangman/html/images/a_disabled.png +0 -0
- data/examples/hangman/html/images/a_enabled.png +0 -0
- data/examples/hangman/html/images/b_disabled.png +0 -0
- data/examples/hangman/html/images/b_enabled.png +0 -0
- data/examples/hangman/html/images/c_disabled.png +0 -0
- data/examples/hangman/html/images/c_enabled.png +0 -0
- data/examples/hangman/html/images/d_disabled.png +0 -0
- data/examples/hangman/html/images/d_enabled.png +0 -0
- data/examples/hangman/html/images/e_disabled.png +0 -0
- data/examples/hangman/html/images/e_enabled.png +0 -0
- data/examples/hangman/html/images/f_disabled.png +0 -0
- data/examples/hangman/html/images/f_enabled.png +0 -0
- data/examples/hangman/html/images/g_disabled.png +0 -0
- data/examples/hangman/html/images/g_enabled.png +0 -0
- data/examples/hangman/html/images/h_disabled.png +0 -0
- data/examples/hangman/html/images/h_enabled.png +0 -0
- data/examples/hangman/html/images/i_disabled.png +0 -0
- data/examples/hangman/html/images/i_enabled.png +0 -0
- data/examples/hangman/html/images/j_disabled.png +0 -0
- data/examples/hangman/html/images/j_enabled.png +0 -0
- data/examples/hangman/html/images/k_disabled.png +0 -0
- data/examples/hangman/html/images/k_enabled.png +0 -0
- data/examples/hangman/html/images/l_disabled.png +0 -0
- data/examples/hangman/html/images/l_enabled.png +0 -0
- data/examples/hangman/html/images/m_disabled.png +0 -0
- data/examples/hangman/html/images/m_enabled.png +0 -0
- data/examples/hangman/html/images/n_disabled.png +0 -0
- data/examples/hangman/html/images/n_enabled.png +0 -0
- data/examples/hangman/html/images/o_disabled.png +0 -0
- data/examples/hangman/html/images/o_enabled.png +0 -0
- data/examples/hangman/html/images/p_disabled.png +0 -0
- data/examples/hangman/html/images/p_enabled.png +0 -0
- data/examples/hangman/html/images/q_disabled.png +0 -0
- data/examples/hangman/html/images/q_enabled.png +0 -0
- data/examples/hangman/html/images/r_disabled.png +0 -0
- data/examples/hangman/html/images/r_enabled.png +0 -0
- data/examples/hangman/html/images/s_disabled.png +0 -0
- data/examples/hangman/html/images/s_enabled.png +0 -0
- data/examples/hangman/html/images/t_disabled.png +0 -0
- data/examples/hangman/html/images/t_enabled.png +0 -0
- data/examples/hangman/html/images/u_disabled.png +0 -0
- data/examples/hangman/html/images/u_enabled.png +0 -0
- data/examples/hangman/html/images/v_disabled.png +0 -0
- data/examples/hangman/html/images/v_enabled.png +0 -0
- data/examples/hangman/html/images/w_disabled.png +0 -0
- data/examples/hangman/html/images/w_enabled.png +0 -0
- data/examples/hangman/html/images/x_disabled.png +0 -0
- data/examples/hangman/html/images/x_enabled.png +0 -0
- data/examples/hangman/html/images/y_disabled.png +0 -0
- data/examples/hangman/html/images/y_enabled.png +0 -0
- data/examples/hangman/html/images/z_disabled.png +0 -0
- data/examples/hangman/html/images/z_enabled.png +0 -0
- data/examples/hangman/html/resources/word_list.txt +35 -0
- data/examples/hangman/html/start.xhtml +18 -0
- data/examples/hangman/html/style/hangman.css +27 -0
- data/examples/hangman/source/hangman.rb +71 -0
- data/examples/hilo/html/game_over.xhtml +15 -0
- data/examples/hilo/html/guess.xhtml +18 -0
- data/examples/hilo/html/start.xhtml +17 -0
- data/examples/hilo/source/hilo.rb +51 -0
- data/examples/simplest/html/start.xhtml +0 -0
- data/examples/simplest/source/simplest.rb +39 -0
- data/examples/stateful_counters/html/counters.xhtml +49 -0
- data/examples/stateful_counters/html/style/main.css +441 -0
- data/examples/stateful_counters/source/stateful_counters.rb +68 -0
- data/lib/trellis/core_components.rb +870 -0
- data/lib/trellis/jquery.rb +38 -0
- data/lib/trellis/logging.rb +60 -0
- data/lib/trellis/trellis.rb +701 -0
- data/lib/trellis/utils.rb +209 -0
- data/lib/trellis/version.rb +35 -0
- data/lib/trellis.rb +27 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +82 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rspec.rake +21 -0
- data/tasks/website.rake +17 -0
- data/test/application_spec.rb +79 -0
- data/test/component_spec.rb +88 -0
- data/test/core_extensions_spec.rb +108 -0
- data/test/fixtures/application_spec_applications.rb +51 -0
- data/test/page_spec.rb +46 -0
- data/test/renderer_spec.rb +12 -0
- data/test/router_spec.rb +52 -0
- data/test/spec.opts +1 -0
- data/test/spec_helper.rb +16 -0
- data/website/index.html +124 -0
- data/website/index.txt +119 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.html.erb +48 -0
- metadata +512 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
# Copyright &169;2001-2008 Integrallis Software, LLC.
|
|
5
|
+
# All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
8
|
+
# a copy of this software and associated documentation files (the
|
|
9
|
+
# "Software"), to deal in the Software without restriction, including
|
|
10
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
11
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
12
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
13
|
+
# the following conditions:
|
|
14
|
+
#
|
|
15
|
+
# The above copyright notice and this permission notice shall be
|
|
16
|
+
# included in all copies or substantial portions of the Software.
|
|
17
|
+
#
|
|
18
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
22
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
23
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
24
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
25
|
+
#++
|
|
26
|
+
|
|
27
|
+
module Kernel
|
|
28
|
+
def with( object, &block )
|
|
29
|
+
object.instance_eval(&block); object
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class Object #:nodoc:
|
|
34
|
+
def meta_def(m,&b) #:nodoc:
|
|
35
|
+
metaclass.send(:define_method,m,&b)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def metaclass
|
|
39
|
+
class<<self;self end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def call_if_provided(sym)
|
|
43
|
+
send sym if respond_to? sym
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class Class #:nodoc:
|
|
48
|
+
def class_to_sym
|
|
49
|
+
underscore_class_name.to_sym
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def underscore_class_name
|
|
53
|
+
name.to_s.gsub(/::/, '/').
|
|
54
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
|
55
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
|
56
|
+
tr("-", "_").
|
|
57
|
+
downcase.split('/').last
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def meta_attr_accessor(*syms)
|
|
61
|
+
syms.flatten.each do |sym|
|
|
62
|
+
metaclass.instance_eval { attr_accessor(sym) }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def meta_attr_reader(*syms)
|
|
67
|
+
syms.flatten.each do |sym|
|
|
68
|
+
metaclass.instance_eval { attr_reader(sym) }
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def meta_attr_writer(*syms)
|
|
73
|
+
syms.flatten.each do |sym|
|
|
74
|
+
metaclass.instance_eval { attr_writer(sym) }
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def attr_array(plural_array_name_sym, options={})
|
|
79
|
+
create_accessor = options[:create_accessor].nil? ? true : options[:create_accessor]
|
|
80
|
+
plural_array_name_sym = plural_array_name_sym.to_s #convert to string if it is a symbol
|
|
81
|
+
instance_variable_set("@#{plural_array_name_sym}".to_sym, Array.new)
|
|
82
|
+
meta_def(plural_array_name_sym) { instance_variable_get("@#{plural_array_name_sym}".to_sym) } if create_accessor
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
class String #:nodoc:
|
|
87
|
+
def blank?
|
|
88
|
+
self !~ /\S/
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def replace_ant_style_property(property, value)
|
|
92
|
+
result = self.gsub(/\$\{#{property.to_s}\}/) do |match|
|
|
93
|
+
value
|
|
94
|
+
end
|
|
95
|
+
result
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def replace_ant_style_properties(properties)
|
|
99
|
+
text = self
|
|
100
|
+
properties.each_pair do |key,value|
|
|
101
|
+
text = text.replace_ant_style_property(key, value)
|
|
102
|
+
end
|
|
103
|
+
text
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def humanize
|
|
107
|
+
gsub(/_id$/, "").gsub(/_/, " ").capitalize
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
class Array #:nodoc:
|
|
112
|
+
def next_to_last
|
|
113
|
+
self.last(2).first if self.size > 1
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
class Hash #:nodoc:
|
|
118
|
+
def keys_to_symbols
|
|
119
|
+
self.each_pair do |key, value|
|
|
120
|
+
self["#{key}".to_sym] = value if key
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def each_pair_except(*exceptions)
|
|
125
|
+
_each_pair_except(exceptions)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def exclude_keys(*exceptions)
|
|
129
|
+
result = Hash.new
|
|
130
|
+
self._each_pair_except(exceptions) do |key, value|
|
|
131
|
+
result[key] = value
|
|
132
|
+
end
|
|
133
|
+
result
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
protected
|
|
137
|
+
|
|
138
|
+
def _each_pair_except(exceptions)
|
|
139
|
+
self.each_pair do |key, value|
|
|
140
|
+
unless exceptions.include?(key) then
|
|
141
|
+
yield [key, value]
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
class File
|
|
148
|
+
def self.find(dir, filename="*.*", subdirs=true)
|
|
149
|
+
Dir[ subdirs ? File.join(dir.split(/\\/), "**", filename) : File.join(dir.split(/\\/), filename) ]
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def self.find_first(dir, filename, subdirs=false)
|
|
153
|
+
find(dir, filename, subdirs).first
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
# class Radius::TagBinding #:nodoc:
|
|
160
|
+
#
|
|
161
|
+
# end
|
|
162
|
+
|
|
163
|
+
module Utils
|
|
164
|
+
|
|
165
|
+
# TODO open the tag ==> TagContext?? class
|
|
166
|
+
def self.expand_properties_in_tag(text, tag)
|
|
167
|
+
# resolve the ${} variables
|
|
168
|
+
result = text #TODO not tested!
|
|
169
|
+
result = text.gsub(/\$\{.*?\}/) do |match|
|
|
170
|
+
name = match.split(/\$\{|\}/)[1]
|
|
171
|
+
unless name.include?('.')
|
|
172
|
+
tag.locals.send(name.to_sym) || tag.globals.send(name.to_sym)
|
|
173
|
+
else
|
|
174
|
+
target_name, method = name.split('.')
|
|
175
|
+
target = tag.locals.send(target_name.to_sym) || tag.globals.send(target_name.to_sym)
|
|
176
|
+
target.send(method.to_sym) if target
|
|
177
|
+
end
|
|
178
|
+
end if text
|
|
179
|
+
result
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# TODO open the tag ==> TagContext?? class
|
|
183
|
+
def self.evaluate_tag_attribute(attribute_name, tag)
|
|
184
|
+
result = nil
|
|
185
|
+
source = tag.attr[attribute_name]
|
|
186
|
+
if source
|
|
187
|
+
source = expand_properties_in_tag(source, tag)
|
|
188
|
+
begin
|
|
189
|
+
local = tag.locals.instance_eval(source)
|
|
190
|
+
rescue
|
|
191
|
+
# log that they try to get a value that doesn't exist/can't be reached
|
|
192
|
+
end
|
|
193
|
+
begin
|
|
194
|
+
global = tag.globals.instance_eval(source)
|
|
195
|
+
rescue
|
|
196
|
+
# same as above
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
if local
|
|
200
|
+
result = local
|
|
201
|
+
elsif global
|
|
202
|
+
result = global
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
result
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
end
|
|
209
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
# Copyright &169;2001-2008 Integrallis Software, LLC.
|
|
5
|
+
# All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
8
|
+
# a copy of this software and associated documentation files (the
|
|
9
|
+
# "Software"), to deal in the Software without restriction, including
|
|
10
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
11
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
12
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
13
|
+
# the following conditions:
|
|
14
|
+
#
|
|
15
|
+
# The above copyright notice and this permission notice shall be
|
|
16
|
+
# included in all copies or substantial portions of the Software.
|
|
17
|
+
#
|
|
18
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
22
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
23
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
24
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
25
|
+
#++
|
|
26
|
+
|
|
27
|
+
module Trellis
|
|
28
|
+
module VERSION #:nodoc:
|
|
29
|
+
MAJOR = 0
|
|
30
|
+
MINOR = 0
|
|
31
|
+
TINY = 1
|
|
32
|
+
|
|
33
|
+
STRING = [MAJOR, MINOR, TINY].join('.')
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/trellis.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
#--
|
|
4
|
+
# Copyright &169;2001-2008 Integrallis Software, LLC.
|
|
5
|
+
# All Rights Reserved.
|
|
6
|
+
#
|
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
8
|
+
# a copy of this software and associated documentation files (the
|
|
9
|
+
# "Software"), to deal in the Software without restriction, including
|
|
10
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
11
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
12
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
13
|
+
# the following conditions:
|
|
14
|
+
#
|
|
15
|
+
# The above copyright notice and this permission notice shall be
|
|
16
|
+
# included in all copies or substantial portions of the Software.
|
|
17
|
+
#
|
|
18
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
19
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
22
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
23
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
24
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
25
|
+
#++
|
|
26
|
+
|
|
27
|
+
require 'trellis/trellis'
|
data/script/console
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# File: script/console
|
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
|
4
|
+
|
|
5
|
+
libs = " -r irb/completion"
|
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/trellis.rb'}"
|
|
9
|
+
puts "Loading trellis gem"
|
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'rubigen'
|
|
6
|
+
rescue LoadError
|
|
7
|
+
require 'rubygems'
|
|
8
|
+
require 'rubigen'
|
|
9
|
+
end
|
|
10
|
+
require 'rubigen/scripts/destroy'
|
|
11
|
+
|
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'rubigen'
|
|
6
|
+
rescue LoadError
|
|
7
|
+
require 'rubygems'
|
|
8
|
+
require 'rubigen'
|
|
9
|
+
end
|
|
10
|
+
require 'rubigen/scripts/generate'
|
|
11
|
+
|
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/script/txt2html
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
GEM_NAME = 'trellis' # what ppl will type to install your gem
|
|
4
|
+
RUBYFORGE_PROJECT = 'trellis'
|
|
5
|
+
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
begin
|
|
8
|
+
require 'newgem'
|
|
9
|
+
require 'rubyforge'
|
|
10
|
+
rescue LoadError
|
|
11
|
+
puts "\n\nGenerating the website requires the newgem RubyGem"
|
|
12
|
+
puts "Install: gem install newgem\n\n"
|
|
13
|
+
exit(1)
|
|
14
|
+
end
|
|
15
|
+
require 'redcloth'
|
|
16
|
+
require 'syntax/convertors/html'
|
|
17
|
+
require 'erb'
|
|
18
|
+
require File.dirname(__FILE__) + "/../lib/#{GEM_NAME}/version.rb"
|
|
19
|
+
|
|
20
|
+
version = Trellis::VERSION::STRING
|
|
21
|
+
download = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
|
22
|
+
|
|
23
|
+
def rubyforge_project_id
|
|
24
|
+
RubyForge.new.autoconfig["group_ids"][RUBYFORGE_PROJECT]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Fixnum
|
|
28
|
+
def ordinal
|
|
29
|
+
# teens
|
|
30
|
+
return 'th' if (10..19).include?(self % 100)
|
|
31
|
+
# others
|
|
32
|
+
case self % 10
|
|
33
|
+
when 1: return 'st'
|
|
34
|
+
when 2: return 'nd'
|
|
35
|
+
when 3: return 'rd'
|
|
36
|
+
else return 'th'
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Time
|
|
42
|
+
def pretty
|
|
43
|
+
return "#{mday}#{mday.ordinal} #{strftime('%B')} #{year}"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def convert_syntax(syntax, source)
|
|
48
|
+
return Syntax::Convertors::HTML.for_syntax(syntax).convert(source).gsub(%r!^<pre>|</pre>$!,'')
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
if ARGV.length >= 1
|
|
52
|
+
src, template = ARGV
|
|
53
|
+
template ||= File.join(File.dirname(__FILE__), '/../website/template.html.erb')
|
|
54
|
+
else
|
|
55
|
+
puts("Usage: #{File.split($0).last} source.txt [template.html.erb] > output.html")
|
|
56
|
+
exit!
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
template = ERB.new(File.open(template).read)
|
|
60
|
+
|
|
61
|
+
title = nil
|
|
62
|
+
body = nil
|
|
63
|
+
File.open(src) do |fsrc|
|
|
64
|
+
title_text = fsrc.readline
|
|
65
|
+
body_text_template = fsrc.read
|
|
66
|
+
body_text = ERB.new(body_text_template).result(binding)
|
|
67
|
+
syntax_items = []
|
|
68
|
+
body_text.gsub!(%r!<(pre|code)[^>]*?syntax=['"]([^'"]+)[^>]*>(.*?)</\1>!m){
|
|
69
|
+
ident = syntax_items.length
|
|
70
|
+
element, syntax, source = $1, $2, $3
|
|
71
|
+
syntax_items << "<#{element} class='syntax'>#{convert_syntax(syntax, source)}</#{element}>"
|
|
72
|
+
"syntax-temp-#{ident}"
|
|
73
|
+
}
|
|
74
|
+
title = RedCloth.new(title_text).to_html.gsub(%r!<.*?>!,'').strip
|
|
75
|
+
body = RedCloth.new(body_text).to_html
|
|
76
|
+
body.gsub!(%r!(?:<pre><code>)?syntax-temp-(\d+)(?:</code></pre>)?!){ syntax_items[$1.to_i] }
|
|
77
|
+
end
|
|
78
|
+
stat = File.stat(src)
|
|
79
|
+
created = stat.ctime
|
|
80
|
+
modified = stat.mtime
|
|
81
|
+
|
|
82
|
+
$stdout << template.result(binding)
|