diff options
Diffstat (limited to 'actionservice/lib/action_service/base.rb')
-rw-r--r-- | actionservice/lib/action_service/base.rb | 41 |
1 files changed, 41 insertions, 0 deletions
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 |