lib/ocean/ocean_resource_controller.rb
def ocean_resource_controller(required_attributes:     [:lock_version, :name, :description],
                                    permitted_attributes:    [],
                                    no_validation_errors_on: [],
                                    extra_actions:           {}
      	                           )
      	cattr_accessor :ocean_resource_controller_extra_actions
        cattr_accessor :ocean_resource_controller_required_attributes
        cattr_accessor :ocean_resource_controller_permitted_attributes
        cattr_accessor :ocean_resource_controller_no_validation_errors_on
      	self.ocean_resource_controller_extra_actions = extra_actions
        self.ocean_resource_controller_required_attributes = required_attributes
        self.ocean_resource_controller_permitted_attributes = permitted_attributes
        self.ocean_resource_controller_no_validation_errors_on = no_validation_errors_on
      end
#
# The presence of +ocean_resource_controller+ in a Rails controller declares
# that the controller is an Ocean controller handling an Ocean resource. It takes
# three optional keyword parameters:
#
# +required_attributes+: a list of keywords naming model attributes which must be
# present. If an API consumer submits data where any of these attributes isn't present, 
# an API error will be generated.
#
#   ocean_resource_controller required_attributes: [:lock_version, :title]
#
# +permitted_attributes+: a list of keywords naming model attributes which may be
# present. Attributes not in +permitted_attributes+ or +required_attributes+ will be
# filtered away.
#
# +no_validation_errors_on+: a symbol, string, or an array of symbols and strings. Error
# descriptions in 422 responses will not include the enumerated attributes. This
# is sometimes useful for purely internal attributes which should never appear
# in error descriptions.
#
#   ocean_resource_controller no_validation_errors_on: [:password_hash, :password_salt]
#
# +extra_actions+: a hash containing information about extra controller actions
# apart from the standard Rails ones of +index+, +show+, +create+, +update+, and 
# +destroy+. One entry per extra action is required in order to process authentication
# requests. Here's an example:
#
#   ocean_resource_controller extra_actions: {'comments' =>       ['comments', "GET"],
#                                             'comment_create' => ['comments', "POST"]}
#
# The above example declares that the controller has two non-standard actions called
# +comments+ and +comments_create+, respectively. Their respective values indicate that
# +comments+ will be called as the result of a +GET+ to the +comments+ hyperlink, and
# that +comment_create+ will be called as the result of a +POST+ to the same hyperlink.
# Thus, +extra_actions+ maps actions to hyperlink names and HTTP methods.
#
The presence of +ocean_resource_controller+ in a Rails controller declares
that the controller is an Ocean controller handling an Ocean resource. It takes
three optional keyword parameters.

+required_attributes+: a list of keywords naming model attributes which must be
present. If an API consumer submits data where any of these attributes isn't present,
an API error will be generated.



+permitted_attributes+: a list of keywords naming model attributes which may be
present. Attributes not in +permitted_attributes+ or +required_attributes+ will be
filtered away.

+no_validation_errors_on+: a symbol, string, or an array of symbols and strings. Error
descriptions in 422 responses will not include the enumerated attributes. This
is sometimes useful for purely internal attributes which should never appear
in error descriptions.







The above example declares that the controller has two non-standard actions called
+comments+ and +comments_create+, respectively.
The presence of + ocean_resource_controller + in a Rails controller declares that the controller is an Ocean controller handling an Ocean resource . It takes three optional keyword parameters . + required_attributes + : a list of keywords naming model attributes which must be present . If an API consumer submits data where any of these attributes isn ' t present an API error will be generated . + permitted_attributes + : a list of keywords naming model attributes which may be present . Attributes not in + permitted_attributes + or + required_attributes + will be filtered away . + no_validation_errors_on + : a symbol string or an array of symbols and strings . Error descriptions in 422 responses will not include the enumerated attributes . This is sometimes useful for purely internal attributes which should never appear in error descriptions . The above example declares that the controller has two non - standard actions called + comments + and + comments_create + respectively .
def ocean_resource_controller(required_attributes:     [:lock_version, :name, :description],
                                    permitted_attributes:    [],
                                    no_validation_errors_on: [],
                                    extra_actions:           {}
      	                           )
      	cattr_accessor :ocean_resource_controller_extra_actions
        cattr_accessor :ocean_resource_controller_required_attributes
        cattr_accessor :ocean_resource_controller_permitted_attributes
        cattr_accessor :ocean_resource_controller_no_validation_errors_on
      	self.ocean_resource_controller_extra_actions = extra_actions
        self.ocean_resource_controller_required_attributes = required_attributes
        self.ocean_resource_controller_permitted_attributes = permitted_attributes
        self.ocean_resource_controller_no_validation_errors_on = no_validation_errors_on
      end
def ocean_resource_controller ( required_attributes : [ :lock_version , :name , :description ] , permitted_attributes : [ ] , no_validation_errors_on : [ ] , extra_actions : { } ) cattr_accessor :ocean_resource_controller_extra_actions cattr_accessor :ocean_resource_controller_required_attributes cattr_accessor :ocean_resource_controller_permitted_attributes cattr_accessor :ocean_resource_controller_no_validation_errors_on self . ocean_resource_controller_extra_actions = extra_actions self . ocean_resource_controller_required_attributes = required_attributes self . ocean_resource_controller_permitted_attributes = permitted_attributes self . ocean_resource_controller_no_validation_errors_on = no_validation_errors_on end
The presence of +ocean_resource_controller+ in a Rails controller declares
that the controller is an Ocean controller handling an Ocean resource.
The presence of + ocean_resource_controller + in a Rails controller declares that the controller is an Ocean controller handling an Ocean resource .
required_attributes
permitted_attributes
no_validation_errors_on
extra_actions