class Apipie::ResourceDescription

Resource description

version - api version (1) description path - relative path (/api/articles) methods - array of keys to Apipie.method_descriptions (array of Apipie::MethodDescription) name - human readable alias of resource (Articles) id - resouce name formats - acceptable request/response format types

Attributes

_errors_ordered[R]
_formats[R]
_full_description[R]
_id[R]
_methods[R]
_name[R]
_params_ordered[R]
_path[R]
_short_description[R]
_version[R]
controller[R]

Public Class Methods

new(controller, resource_name, &block) click to toggle source
# File lib/apipie/resource_description.rb, line 17
def initialize(controller, resource_name, &block)
  @_methods = []
  @_params_ordered = []
  @_errors_ordered = []

  @controller = controller
  @_id = resource_name
  @_version = "1"
  @_name = @_id.humanize
  @_full_description = ""
  @_short_description = ""
  @_path = ""
  @_formats = []

  block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
end

Public Instance Methods

add_method(mapi_key) click to toggle source

add description of resource method

# File lib/apipie/resource_description.rb, line 64
def add_method(mapi_key)
  @_methods << mapi_key
  @_methods.uniq!
end
api_url() click to toggle source
# File lib/apipie/resource_description.rb, line 73
def api_url; "#{Apipie.configuration.api_base_url}#{@_path}"; end
desc(description) click to toggle source
# File lib/apipie/resource_description.rb, line 56
def desc(description)
  description ||= ''
  @_full_description = Apipie.markup_to_html(description)
end
Also aliased as: description, full_description
description(description) click to toggle source
Alias for: desc
doc_url() click to toggle source
# File lib/apipie/resource_description.rb, line 69
def doc_url
  Apipie.full_url(@_id)
end
error(*args) click to toggle source
# File lib/apipie/resource_description.rb, line 39
def error(*args)
  error_description = Apipie::ErrorDescription.new(args)
  @_errors_ordered << error_description
end
formats(formats) click to toggle source
# File lib/apipie/resource_description.rb, line 49
def formats(formats); @_formats = formats; end
full_description(description) click to toggle source
Alias for: desc
name(name) click to toggle source
# File lib/apipie/resource_description.rb, line 51
def name(name); @_name = name; end
param(param_name, *args, &block) click to toggle source
# File lib/apipie/resource_description.rb, line 34
def param(param_name, *args, &block)
  param_description = Apipie::ParamDescription.new(param_name, *args, &block)
  @_params_ordered << param_description
end
path(path) click to toggle source
# File lib/apipie/resource_description.rb, line 45
def path(path); @_path = path; end
short(short) click to toggle source
# File lib/apipie/resource_description.rb, line 53
def short(short); @_short_description = short; end
Also aliased as: short_description
short_description(short) click to toggle source
Alias for: short
to_json(method_name = nil) click to toggle source
# File lib/apipie/resource_description.rb, line 75
def to_json(method_name = nil)

  _methods = if method_name.blank?
    @_methods.collect { |key| Apipie.method_descriptions[key].to_json }
  else
    [Apipie.method_descriptions[[@_id, method_name].join('#')].to_json]
  end

  {
    :doc_url => doc_url,
    :api_url => api_url,
    :name => @_name,
    :short_description => @_short_description,
    :full_description => @_full_description,
    :version => @_version,
    :formats => @_formats,
    :methods => _methods
  }
end
version(version) click to toggle source
# File lib/apipie/resource_description.rb, line 47
def version(version); @_version = version; end