aboutsummaryrefslogblamecommitdiffstats
path: root/actionwebservice/lib/action_web_service/base.rb
blob: 42a514716a1b1da45745931e69de496ecb9cf27d (plain) (tree)
1
2
3
4
5
6
7
8

                                                              
 

                                                       

     
                                                            




                                                                  
                                                  
                                 









                                       
                                                   











                                                                                       
                                                                   

     
require 'action_web_service/support/class_inheritable_options'
require 'action_web_service/support/signature'

module ActionWebService # :nodoc:
  class ActionWebServiceError < StandardError # :nodoc:
  end

  # An Action Web Service object implements a specified API.
  #
  # Used by controllers operating in _Delegated_ dispatching mode.
  #
  # ==== Example
  # 
  #   class PersonService < ActionWebService::Base
  #     web_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 < ActionWebService::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 :web_service_exception_reporting, true
  end
end