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
# 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
add description of resource method
# File lib/apipie/resource_description.rb, line 64 def add_method(mapi_key) @_methods << mapi_key @_methods.uniq! end
# File lib/apipie/resource_description.rb, line 73 def api_url; "#{Apipie.configuration.api_base_url}#{@_path}"; end
# File lib/apipie/resource_description.rb, line 56 def desc(description) description ||= '' @_full_description = Apipie.markup_to_html(description) end
# File lib/apipie/resource_description.rb, line 69 def doc_url Apipie.full_url(@_id) end
# File lib/apipie/resource_description.rb, line 39 def error(*args) error_description = Apipie::ErrorDescription.new(args) @_errors_ordered << error_description end
# File lib/apipie/resource_description.rb, line 49 def formats(formats); @_formats = formats; end
# File lib/apipie/resource_description.rb, line 51 def name(name); @_name = name; end
# 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
# File lib/apipie/resource_description.rb, line 45 def path(path); @_path = path; end
# File lib/apipie/resource_description.rb, line 53 def short(short); @_short_description = short; end
# 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
# File lib/apipie/resource_description.rb, line 47 def version(version); @_version = version; end