trellis 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/Manifest.txt +6 -181
- data/examples/crud_components/source/crud_components.rb +0 -1
- data/examples/examples.txt +32 -30
- data/examples/flickr/source/flickr.rb +0 -4
- data/examples/hangman/source/hangman.rb +1 -2
- data/examples/hilo/html/guess.xhtml +2 -2
- data/examples/hilo/source/hilo.rb +6 -6
- data/examples/routing/source/routing.rb +50 -0
- data/examples/stateful_counters/source/stateful_counters.rb +9 -4
- data/lib/trellis/{core_components.rb → component_library/core_components.rb} +48 -398
- data/lib/trellis/component_library/grid.rb +311 -0
- data/lib/trellis/{jquery.rb → component_library/jquery.rb} +0 -0
- data/lib/trellis/component_library/object_editor.rb +110 -0
- data/lib/trellis/trellis.rb +162 -52
- data/lib/trellis/utils.rb +9 -3
- data/lib/trellis/version.rb +1 -1
- data/tasks/rspec.rake +2 -1
- data/test/application_spec.rb +55 -30
- data/test/component_spec.rb +95 -81
- data/test/core_extensions_spec.rb +34 -2
- data/test/default_router_spec.rb +91 -0
- data/test/fixtures/application_spec_applications.rb +91 -3
- data/test/page_spec.rb +18 -8
- data/test/router_spec.rb +49 -49
- metadata +8 -185
- data/.git/COMMIT_EDITMSG +0 -1
- data/.git/HEAD +0 -1
- data/.git/config +0 -9
- data/.git/description +0 -1
- data/.git/hooks/applypatch-msg.sample +0 -15
- data/.git/hooks/commit-msg.sample +0 -24
- data/.git/hooks/post-commit.sample +0 -8
- data/.git/hooks/post-receive.sample +0 -15
- data/.git/hooks/post-update.sample +0 -8
- data/.git/hooks/pre-applypatch.sample +0 -14
- data/.git/hooks/pre-commit.sample +0 -18
- data/.git/hooks/pre-rebase.sample +0 -169
- data/.git/hooks/prepare-commit-msg.sample +0 -36
- data/.git/hooks/update.sample +0 -107
- data/.git/index +0 -0
- data/.git/info/exclude +0 -6
- data/.git/logs/HEAD +0 -1
- data/.git/logs/refs/heads/master +0 -1
- data/.git/logs/refs/remotes/origin/master +0 -1
- 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 +0 -2
- 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 +0 -1
- 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 +0 -5
- 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 +0 -2
- 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 +0 -3
- 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 +0 -2
- 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 +0 -2
- data/.git/objects/97/fa6aaae4cfc7654feb39971e7aee5c41ed1679 +0 -1
- 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 +0 -2
- data/.git/objects/c0/06e664b306145de804f74ab27550d62a92f58a +0 -1
- 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 +0 -3
- 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 +0 -4
- 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 +0 -1
- data/.git/refs/remotes/origin/master +0 -1
- data/.gitignore +0 -5
- data/README.txt +0 -156
- data/examples/simplest/html/start.xhtml +0 -0
- data/website/index.html +0 -124
- data/website/index.txt +0 -119
- data/website/javascripts/rounded_corners_lite.inc.js +0 -285
- data/website/stylesheets/screen.css +0 -138
- data/website/template.html.erb +0 -48
data/README.txt
DELETED
@@ -1,156 +0,0 @@
|
|
1
|
-
= Project: Trellis
|
2
|
-
|
3
|
-
Trellis is a component-based Web Application Framework written in Ruby.
|
4
|
-
Its main goal is to bring component-driven development to the micro-framework world.
|
5
|
-
The framework aims to be a zero-configuration framework.
|
6
|
-
|
7
|
-
It draws inspiration from:
|
8
|
-
|
9
|
-
Ruby Web Frameworks
|
10
|
-
===================
|
11
|
-
* Rails
|
12
|
-
* Camping
|
13
|
-
* Merb
|
14
|
-
* Iowa
|
15
|
-
* Sinatra
|
16
|
-
|
17
|
-
Java Web Frameworks
|
18
|
-
===================
|
19
|
-
* Tapesty
|
20
|
-
* Wicket
|
21
|
-
* The good parts of JSF (components)
|
22
|
-
|
23
|
-
Others
|
24
|
-
======
|
25
|
-
* Seaside
|
26
|
-
|
27
|
-
== Goals
|
28
|
-
Accomplished goals are marked with a (*)
|
29
|
-
- * Pure HTML templates or in-line template creation with Markaby or HAML
|
30
|
-
- * To abstract away the request-response nature of web development and replace
|
31
|
-
with events and listeners
|
32
|
-
- * Reusable, extensible components including invisible components (behavior
|
33
|
-
providers), tags (stateless components) or stateful components
|
34
|
-
- Easy component composition and markup inheritance
|
35
|
-
- * Multi-threading support
|
36
|
-
- * Heavy CoC :-) (Convention Over Configuration) ala Rails
|
37
|
-
- * No static code generation, no generators, just a Ruby file!
|
38
|
-
- * Component Libraries as Gems
|
39
|
-
- * Solid Ajax support attached to the event model using a single* massively tested
|
40
|
-
Ajax framework/toolkit such as JQuery
|
41
|
-
- Skinnable components a la DotNet. That is the ability to apply a theme to a
|
42
|
-
page and cascade that to the contained components
|
43
|
-
- Support for continuations in a componentized fashion (maybe)
|
44
|
-
- CRUD behaviours for Pages/Components and using Datamapper under the covers
|
45
|
-
- Web-based debugging and administration of the application similar to what
|
46
|
-
Seaside provides
|
47
|
-
|
48
|
-
== Development Goals (To-do's)
|
49
|
-
|
50
|
-
- Keep the core framework in a single file
|
51
|
-
- Keep the core components in another file
|
52
|
-
- I have not done anything about exception handling (didn't wanted to litter the
|
53
|
-
code base). Currently I'm always sending an HTTP 200 back or I'm just letting
|
54
|
-
the app blow chuncks and showing rack's exception page
|
55
|
-
- Radius usage is really entrenched in the current component implementation need
|
56
|
-
to clean it up
|
57
|
-
- Currently Trellis uses the Mongrel Rack Adapter. In the near future the
|
58
|
-
particular web server would be configurable (one of the reasons to use Rack)
|
59
|
-
|
60
|
-
== Classes
|
61
|
-
|
62
|
-
Trellis::Application:: Base case for all Trellis applications
|
63
|
-
Trellis::Page:: Base class for all application Pages
|
64
|
-
Trellis::Renderer:: Renders XML/XHTML tags in the markup using Radius
|
65
|
-
Trellis::Component:: Base class for all Trellis components (work in progress)
|
66
|
-
Trellis::DefaultRouter:: Encapsulates the default routing logic
|
67
|
-
|
68
|
-
== <b>Notes</b>::
|
69
|
-
|
70
|
-
* Event model is pretty shallow right now. Basically events are just
|
71
|
-
a convention of how the URLs are interpreted which results on a page method
|
72
|
-
being invoked. A given URL contains information about the target page, event,
|
73
|
-
source of the event and possible context values.This information is used to
|
74
|
-
map to a single method in the page.
|
75
|
-
* Navigation is a la Tapestry; Page methods can return the instance of a
|
76
|
-
injected Page or they can return self in which case the same page is
|
77
|
-
re-rendered.
|
78
|
-
* Component can register their event handlers with the page. The page wraps the
|
79
|
-
event handlers of the contained components and dispatches the events to the
|
80
|
-
component instance.
|
81
|
-
* Currently the Application is a single object, the multi-threading (which I had
|
82
|
-
nothing to do with is provided by Rack) happens in the request dispatching.
|
83
|
-
* Trellis is not a managed framework like Tapestry, in that sense it is more like
|
84
|
-
Wicket. Pages instances are just created when needed, there is no pooling,
|
85
|
-
or any of the complexity involved in activating/passivating objects to a pool.
|
86
|
-
|
87
|
-
== Installation
|
88
|
-
|
89
|
-
* <tt>gem install trellis</tt>
|
90
|
-
|
91
|
-
A Trellis application consists of the Application class; a descendant of
|
92
|
-
Trellis::Application and one or more pages; descendants of Trellis::Page. The
|
93
|
-
Application at a minimum needs to declare the starting or home page:
|
94
|
-
|
95
|
-
module Hello
|
96
|
-
class HelloWorld < Trellis::Application
|
97
|
-
home :home
|
98
|
-
end
|
99
|
-
|
100
|
-
class Home < Trellis::Page
|
101
|
-
template do html { body { h1 "Hello World!" }} end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
To run the above application simply add the line:
|
106
|
-
|
107
|
-
Hello::HelloWorld.new.start
|
108
|
-
|
109
|
-
That will start the application on Mongrel running on port 3000 by default. To
|
110
|
-
run on any other port pass the port number to the start method like:
|
111
|
-
|
112
|
-
Hello::HelloWorld.new.start 8282
|
113
|
-
|
114
|
-
== Required Gems
|
115
|
-
|
116
|
-
rack => http://rack.rubyforge.org
|
117
|
-
mongrel => http://mongrel.rubyforge.org
|
118
|
-
radius => http://radius.rubyforge.org
|
119
|
-
builder => http://builder.rubyforge.org
|
120
|
-
paginator => http://paginator.rubyforge.org
|
121
|
-
hpricot => http://code.whytheluckystiff.net/hpricot
|
122
|
-
extensions => http://extensions.rubyforge.org
|
123
|
-
haml => http://haml.hamptoncatlin.com
|
124
|
-
markaby => http://code.whytheluckystiff.net/markaby
|
125
|
-
|
126
|
-
== LICENSE:
|
127
|
-
|
128
|
-
(The MIT License)
|
129
|
-
|
130
|
-
Copyright &169;2001-2009 Integrallis Software, LLC.
|
131
|
-
|
132
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
133
|
-
a copy of this software and associated documentation files (the
|
134
|
-
'Software'), to deal in the Software without restriction, including
|
135
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
136
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
137
|
-
permit persons to whom the Software is furnished to do so, subject to
|
138
|
-
the following conditions:
|
139
|
-
|
140
|
-
The above copyright notice and this permission notice shall be
|
141
|
-
included in all copies or substantial portions of the Software.
|
142
|
-
|
143
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
144
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
145
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
146
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
147
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
148
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
149
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
150
|
-
|
151
|
-
== Contact
|
152
|
-
|
153
|
-
Author:: Brian Sam-Bodden
|
154
|
-
Email:: bsbodden@integrallis.com
|
155
|
-
Home Page:: http://integrallis.com
|
156
|
-
License:: MIT Licence (http://www.opensource.org/licenses/mit-license.html)
|
File without changes
|
data/website/index.html
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
-
<head>
|
5
|
-
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
-
<title>
|
8
|
-
Trellis
|
9
|
-
</title>
|
10
|
-
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
-
<style>
|
12
|
-
|
13
|
-
</style>
|
14
|
-
<script type="text/javascript">
|
15
|
-
window.onload = function() {
|
16
|
-
settings = {
|
17
|
-
tl: { radius: 10 },
|
18
|
-
tr: { radius: 10 },
|
19
|
-
bl: { radius: 10 },
|
20
|
-
br: { radius: 10 },
|
21
|
-
antiAlias: true,
|
22
|
-
autoPad: true,
|
23
|
-
validTags: ["div"]
|
24
|
-
}
|
25
|
-
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
-
versionBox.applyCornersToAll();
|
27
|
-
}
|
28
|
-
</script>
|
29
|
-
</head>
|
30
|
-
<body>
|
31
|
-
<div id="main">
|
32
|
-
|
33
|
-
<h1>Trellis</h1>
|
34
|
-
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/trellis"; return false'>
|
35
|
-
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/trellis" class="numbers">0.0.1</a>
|
37
|
-
</div>
|
38
|
-
<h2>What</h2>
|
39
|
-
<p>Trellis is an object-oriented, event-driven, page and component-based Web <br />
|
40
|
-
Application Framework written in Ruby. Its main goal is to bring <br />
|
41
|
-
component-driven development to the micro-framework world. <br />
|
42
|
-
The framework is a zero configuration framework.</p>
|
43
|
-
<p>It draws inspiration from:</p>
|
44
|
-
<p>Ruby Web Frameworks<br />
|
45
|
-
=======</p>
|
46
|
-
<ul>
|
47
|
-
<li>Rails</li>
|
48
|
-
<li>Camping</li>
|
49
|
-
<li>Merb</li>
|
50
|
-
<li>Iowa</li>
|
51
|
-
</ul>
|
52
|
-
<p>Java Web Frameworks<br />
|
53
|
-
=======</p>
|
54
|
-
<ul>
|
55
|
-
<li>Tapesty</li>
|
56
|
-
<li>Wicket</li>
|
57
|
-
<li>The good parts of <span class="caps">JSF</span> (components)</li>
|
58
|
-
<li>Seam (session per conversation)</li>
|
59
|
-
</ul>
|
60
|
-
<h2>Installing</h2>
|
61
|
-
<p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">trellis</span></pre></p>
|
62
|
-
<h2>The basics</h2>
|
63
|
-
<p>A Trellis application consists of the Application class; a descendant of <br />
|
64
|
-
Trellis::Application and one or more pages; descendants of Trellis::Page. The<br />
|
65
|
-
Application at a minimum needs to declare the starting or home page:</p>
|
66
|
-
<p><pre class='syntax'>
|
67
|
-
<span class="keyword">module </span><span class="module">Hello</span>
|
68
|
-
<span class="keyword">class </span><span class="class">HelloWorld</span> <span class="punct"><</span> <span class="constant">Trellis</span><span class="punct">::</span><span class="constant">Application</span>
|
69
|
-
<span class="ident">home</span> <span class="symbol">:home</span>
|
70
|
-
<span class="keyword">end</span>
|
71
|
-
|
72
|
-
<span class="keyword">class </span><span class="class">Home</span> <span class="punct"><</span> <span class="constant">Trellis</span><span class="punct">::</span><span class="constant">Page</span>
|
73
|
-
<span class="ident">template_as_markaby</span> <span class="keyword">do</span> <span class="ident">html</span> <span class="punct">{</span> <span class="ident">body</span> <span class="punct">{</span> <span class="ident">h1</span> <span class="punct">"</span><span class="string">Hello World!</span><span class="punct">"</span> <span class="punct">}}</span> <span class="keyword">end</span>
|
74
|
-
<span class="keyword">end</span>
|
75
|
-
<span class="keyword">end</span>
|
76
|
-
</pre></p>
|
77
|
-
<h2>Demonstration of usage</h2>
|
78
|
-
<p>To run the above application simply add the line:</p>
|
79
|
-
<pre class='syntax'><span class="constant">Hello</span><span class="punct">::</span><span class="constant">HelloWorld</span><span class="punct">.</span><span class="ident">new</span><span class="punct">.</span><span class="ident">start</span></pre>
|
80
|
-
<p>That will start the application on Mongrel running on port 3000 by default. To <br />
|
81
|
-
run on any other port pass the port number to the start method like:</p>
|
82
|
-
<pre class='syntax'><span class="constant">Hello</span><span class="punct">::</span><span class="constant">HelloWorld</span><span class="punct">.</span><span class="ident">new</span><span class="punct">.</span><span class="ident">start</span> <span class="number">8282</span></pre>
|
83
|
-
<h2>Forum</h2>
|
84
|
-
<p><a href="http://groups.google.com/group/trellis">http://groups.google.com/group/trellis</a></p>
|
85
|
-
<h2>How to submit patches</h2>
|
86
|
-
<p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people’s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
|
87
|
-
<p><span class="caps">TODO</span> – pick <span class="caps">SVN</span> or Git instructions</p>
|
88
|
-
<p>The trunk repository is <code>svn://rubyforge.org/var/svn/trellis/trunk</code> for anonymous access.</p>
|
89
|
-
<p><span class="caps">OOOORRRR</span></p>
|
90
|
-
<p>You can fetch the source from either:</p>
|
91
|
-
<ul>
|
92
|
-
<li>rubyforge: <span class="caps">MISSING</span> IN <span class="caps">ACTION</span></li>
|
93
|
-
</ul>
|
94
|
-
<p><span class="caps">TODO</span> – You can not created a RubyForge project, OR have not run <code>rubyforge config</code><br />
|
95
|
-
yet to refresh your local rubyforge data with this projects’ id information.</p>
|
96
|
-
<p>When you do this, this message will magically disappear!</p>
|
97
|
-
<p>Or you can hack website/index.txt and make it all go away!!</p>
|
98
|
-
<ul>
|
99
|
-
<li>github: <a href="http://github.com/GITHUB_USERNAME/trellis/tree/master">http://github.com/GITHUB_USERNAME/trellis/tree/master</a></li>
|
100
|
-
</ul>
|
101
|
-
<pre>git clone git://github.com/GITHUB_USERNAME/trellis.git</pre>
|
102
|
-
<p><span class="caps">TODO</span> – add “github_username: username” to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.</p>
|
103
|
-
<ul>
|
104
|
-
<li>gitorious: <a href="git://gitorious.org/trellis/mainline.git">git://gitorious.org/trellis/mainline.git</a></li>
|
105
|
-
</ul>
|
106
|
-
<pre>git clone git://gitorious.org/trellis/mainline.git</pre>
|
107
|
-
<h3>Build and test instructions</h3>
|
108
|
-
<pre>cd trellis
|
109
|
-
rake spec
|
110
|
-
rake install_gem</pre>
|
111
|
-
<h2>License</h2>
|
112
|
-
<p>This code is free to use under the terms of the <span class="caps">MIT</span> license.</p>
|
113
|
-
<h2>Contact</h2>
|
114
|
-
<p>Comments are welcome. Send an email to <a href="mailto:bsbodden@integrallis.com">Brian Sam-Bodden</a> email via the <a href="http://groups.google.com/group/trellis">forum</a></p>
|
115
|
-
<p class="coda">
|
116
|
-
<a href="FIXME email">FIXME full name</a>, 25th August 2008<br>
|
117
|
-
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
118
|
-
</p>
|
119
|
-
</div>
|
120
|
-
|
121
|
-
<!-- insert site tracking codes here, like Google Urchin -->
|
122
|
-
|
123
|
-
</body>
|
124
|
-
</html>
|
data/website/index.txt
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
h1. Trellis
|
2
|
-
|
3
|
-
h2. What
|
4
|
-
|
5
|
-
Trellis is an object-oriented, event-driven, page and component-based Web
|
6
|
-
Application Framework written in Ruby. Its main goal is to bring
|
7
|
-
component-driven development to the micro-framework world.
|
8
|
-
The framework is a zero configuration framework.
|
9
|
-
|
10
|
-
It draws inspiration from:
|
11
|
-
|
12
|
-
Ruby Web Frameworks
|
13
|
-
===================
|
14
|
-
* Rails
|
15
|
-
* Camping
|
16
|
-
* Merb
|
17
|
-
* Iowa
|
18
|
-
|
19
|
-
Java Web Frameworks
|
20
|
-
===================
|
21
|
-
* Tapesty
|
22
|
-
* Wicket
|
23
|
-
* The good parts of JSF (components)
|
24
|
-
* Seam (session per conversation)
|
25
|
-
|
26
|
-
h2. Installing
|
27
|
-
|
28
|
-
<pre syntax="ruby">sudo gem install trellis</pre>
|
29
|
-
|
30
|
-
h2. The basics
|
31
|
-
|
32
|
-
A Trellis application consists of the Application class; a descendant of
|
33
|
-
Trellis::Application and one or more pages; descendants of Trellis::Page. The
|
34
|
-
Application at a minimum needs to declare the starting or home page:
|
35
|
-
|
36
|
-
<pre syntax="ruby">
|
37
|
-
module Hello
|
38
|
-
class HelloWorld < Trellis::Application
|
39
|
-
home :home
|
40
|
-
end
|
41
|
-
|
42
|
-
class Home < Trellis::Page
|
43
|
-
template_as_markaby do html { body { h1 "Hello World!" }} end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
</pre>
|
47
|
-
|
48
|
-
h2. Demonstration of usage
|
49
|
-
|
50
|
-
To run the above application simply add the line:
|
51
|
-
|
52
|
-
<pre syntax="ruby">Hello::HelloWorld.new.start</pre>
|
53
|
-
|
54
|
-
That will start the application on Mongrel running on port 3000 by default. To
|
55
|
-
run on any other port pass the port number to the start method like:
|
56
|
-
|
57
|
-
<pre syntax="ruby">Hello::HelloWorld.new.start 8282</pre>
|
58
|
-
|
59
|
-
h2. Forum
|
60
|
-
|
61
|
-
"http://groups.google.com/group/trellis":http://groups.google.com/group/trellis
|
62
|
-
|
63
|
-
h2. How to submit patches
|
64
|
-
|
65
|
-
Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
|
66
|
-
|
67
|
-
TODO - pick SVN or Git instructions
|
68
|
-
|
69
|
-
The trunk repository is <code>svn://rubyforge.org/var/svn/trellis/trunk</code> for anonymous access.
|
70
|
-
|
71
|
-
OOOORRRR
|
72
|
-
|
73
|
-
You can fetch the source from either:
|
74
|
-
|
75
|
-
<% if rubyforge_project_id %>
|
76
|
-
|
77
|
-
* rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
|
78
|
-
|
79
|
-
<pre>git clone git://rubyforge.org/trellis.git</pre>
|
80
|
-
|
81
|
-
<% else %>
|
82
|
-
|
83
|
-
* rubyforge: MISSING IN ACTION
|
84
|
-
|
85
|
-
TODO - You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
|
86
|
-
yet to refresh your local rubyforge data with this projects' id information.
|
87
|
-
|
88
|
-
When you do this, this message will magically disappear!
|
89
|
-
|
90
|
-
Or you can hack website/index.txt and make it all go away!!
|
91
|
-
|
92
|
-
<% end %>
|
93
|
-
|
94
|
-
* github: "http://github.com/GITHUB_USERNAME/trellis/tree/master":http://github.com/GITHUB_USERNAME/trellis/tree/master
|
95
|
-
|
96
|
-
<pre>git clone git://github.com/GITHUB_USERNAME/trellis.git</pre>
|
97
|
-
|
98
|
-
|
99
|
-
TODO - add "github_username: username" to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.
|
100
|
-
|
101
|
-
|
102
|
-
* gitorious: "git://gitorious.org/trellis/mainline.git":git://gitorious.org/trellis/mainline.git
|
103
|
-
|
104
|
-
<pre>git clone git://gitorious.org/trellis/mainline.git</pre>
|
105
|
-
|
106
|
-
h3. Build and test instructions
|
107
|
-
|
108
|
-
<pre>cd trellis
|
109
|
-
rake spec
|
110
|
-
rake install_gem</pre>
|
111
|
-
|
112
|
-
h2. License
|
113
|
-
|
114
|
-
This code is free to use under the terms of the MIT license.
|
115
|
-
|
116
|
-
h2. Contact
|
117
|
-
|
118
|
-
Comments are welcome. Send an email to "Brian Sam-Bodden":mailto:bsbodden@integrallis.com email via the "forum":http://groups.google.com/group/trellis
|
119
|
-
|