diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-18 10:35:25 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-02-18 10:35:25 +0000 |
commit | e7a29380292902eae4799b2658507b3cfffb9cec (patch) | |
tree | 99a7cd3c7d720ef73f998c2756be1fef77ff0ee1 /actionservice/HACKING | |
parent | e39bf105941133d3d6699c52c18dbd3b9aa0bf5c (diff) | |
download | rails-e7a29380292902eae4799b2658507b3cfffb9cec.tar.gz rails-e7a29380292902eae4799b2658507b3cfffb9cec.tar.bz2 rails-e7a29380292902eae4799b2658507b3cfffb9cec.zip |
Added Action Service to the repository
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@658 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionservice/HACKING')
-rw-r--r-- | actionservice/HACKING | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/actionservice/HACKING b/actionservice/HACKING new file mode 100644 index 0000000000..9c0cde6313 --- /dev/null +++ b/actionservice/HACKING @@ -0,0 +1,44 @@ +== Coding Style + +Please try to follow Rails conventions and idioms. + + +== Concepts + + * Service + A service has an associated API definition, and + implements the methods defined in the API definition + + * Container + A container contains zero or more services + + * API + An API definition defines a list of methods implemented by + a service + + * Router + A router takes raw wire requests, decodes them, performs the invocation on + the service, and generates raw wire responses from the invocation result. + A router is mixed into a container class. + + * Protocol + A protocol implementation implements the unmarshaling and marshaling of + raw wire requests and responses. Registers with router. + + +== Action Pack Integration + +For Action Pack, the ActionController is both container and router, and also contains +the protocol implementations. + + +== Adding support for a new protocol + + 1. Add an ActionService::Protocol::YourProtocol module and any classes you need to + perform unmarshaling/marshaling of protocol requests. See the SOAP implementation + for an example of a complex mapping, and also see + ActionService::Protocol::AbstractProtocol for the methods you need to implement. + + 2. Add unit tests for your new protocol. Be sure to test using a Action Pack test request + duplicating how the real requests will arrive and verify that mapping to and from Ruby + types works correctly. |