From e7a29380292902eae4799b2658507b3cfffb9cec Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 18 Feb 2005 10:35:25 +0000 Subject: Added Action Service to the repository git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@658 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionservice/lib/action_service/base.rb | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 actionservice/lib/action_service/base.rb (limited to 'actionservice/lib/action_service/base.rb') diff --git a/actionservice/lib/action_service/base.rb b/actionservice/lib/action_service/base.rb new file mode 100644 index 0000000000..c3a1747106 --- /dev/null +++ b/actionservice/lib/action_service/base.rb @@ -0,0 +1,41 @@ +require 'action_service/support/class_inheritable_options' +require 'action_service/support/signature' + +module ActionService # :nodoc: + class ActionServiceError < StandardError # :nodoc: + end + + # An Action Service object implements a specified API. + # + # Used by controllers operating in _Delegated_ dispatching mode. + # + # ==== Example + # + # class PersonService < ActionService::Base + # service_api PersonAPI + # + # def find_person(criteria) + # Person.find_all [...] + # end + # + # def delete_person(id) + # Person.find_by_id(id).destroy + # end + # end + # + # class PersonAPI < ActionService::API::Base + # api_method :find_person, :expects => [SearchCriteria], :returns => [[Person]] + # api_method :delete_person, :expects => [:int] + # end + # + # class SearchCriteria < ActionStruct::Base + # member :firstname, :string + # member :lastname, :string + # member :email, :string + # end + class Base + # Whether to report exceptions back to the caller in the protocol's exception + # format + class_inheritable_option :service_exception_reporting, true + end +end -- cgit v1.2.3