Module ActionWebService::Container::Direct::ClassMethods
In: actionwebservice/lib/action_web_service/container/direct_container.rb

Methods

Public Instance methods

Attaches ActionWebService API definition to the calling class.

Action Controllers can have a default associated API, removing the need to call this method if you follow the Action Web Service naming conventions.

A controller with a class name of GoogleSearchController will implicitly load app/apis/google_search_api.rb, and expect the API definition class to be named GoogleSearchAPI or GoogleSearchApi.

Service class example

  class MyService < ActionWebService::Base
    web_service_api MyAPI
  end

  class MyAPI < ActionWebService::API::Base
    ...
  end

Controller class example

  class MyController < ActionController::Base
    web_service_api MyAPI
  end

  class MyAPI < ActionWebService::API::Base
    ...
  end

[Source]

# File actionwebservice/lib/action_web_service/container/direct_container.rb, line 41
        def web_service_api(definition=nil)
          if definition.nil?
            read_inheritable_attribute("web_service_api")
          else
            if definition.is_a?(Symbol)
              raise(ContainerError, "symbols can only be used for #web_service_api inside of a controller")
            end
            unless definition.respond_to?(:ancestors) && definition.ancestors.include?(ActionWebService::API::Base)
              raise(ContainerError, "#{definition.to_s} is not a valid API definition")
            end
            write_inheritable_attribute("web_service_api", definition)
            call_web_service_api_callbacks(self, definition)
          end
        end

Private Instance methods

[Source]

# File actionwebservice/lib/action_web_service/container/direct_container.rb, line 61
          def call_web_service_api_callbacks(container_class, definition)
            (read_inheritable_attribute("web_service_api_callbacks") || []).each do |block|
              block.call(container_class, definition)
            end
          end

[Validate]