module Apipie::DSL::Common

Public Instance Methods

_apipie_define_validators(description) click to toggle source
# File lib/apipie/dsl_definition.rb, line 170
def _apipie_define_validators(description)
  # redefine method only if validation is turned on
  if description && Apipie.configuration.validate == true

    old_method = instance_method(description.method)

    define_method(description.method) do |*args|

      if Apipie.configuration.validate_presence?
        description.params.each do |_, param|
          # check if required parameters are present
          raise ParamMissing.new(param.name) if param.required && !params.has_key?(param.name)
        end
      end

      if Apipie.configuration.validate_value?
        description.params.each do |_, param|
          # params validations
          param.validate(params[:"#{param.name}"]) if params.has_key?(param.name)
        end
      end

      # run the original method code
      old_method.bind(self).call(*args)
    end

  end

end
api_version(*versions)
Alias for: api_versions
api_versions(*versions) click to toggle source
# File lib/apipie/dsl_definition.rb, line 124
def api_versions(*versions)
  _apipie_dsl_data[:api_versions].concat(versions)
end
Also aliased as: api_version
desc(description) click to toggle source

Describe the next method.

Example:

desc "print hello world"
def hello_world
  puts "hello world"
end
# File lib/apipie/dsl_definition.rb, line 137
def desc(description) #:doc:
  return unless Apipie.active_dsl?
  if _apipie_dsl_data[:description]
    raise "Double method description."
  end
  _apipie_dsl_data[:description] = description
end
Also aliased as: description, full_description
description(description)
Alias for: desc
error(*args) click to toggle source

Describe possible errors

Example:

error :desc => "speaker is sleeping", :code => 500
error 500, "speaker is sleeping"
def hello_world
  return 500 if self.speaker.sleeping?
  puts "hello world"
end
# File lib/apipie/dsl_definition.rb, line 165
def error(*args) #:doc:
  return unless Apipie.active_dsl?
  _apipie_dsl_data[:errors] << args
end
formats(formats) click to toggle source

Describe available request/response formats

formats ['json', 'jsonp', 'xml']
# File lib/apipie/dsl_definition.rb, line 150
def formats(formats) #:doc:
  return unless Apipie.active_dsl?
  _apipie_dsl_data[:formats] = formats
end
full_description(description)
Alias for: desc