Class: Restapi::ResourceDescription
- Inherits:
-
Object
- Object
- Restapi::ResourceDescription
- Defined in:
- lib/restapi/resource_description.rb
Overview
Resource description
version - api version (1) description path - relative path (/api/articles) methods - array of keys to Restapi.method_descriptions (array of Restapi::MethodDescription) name - human readable alias of resource (Articles) id - resouce name
Instance Attribute Summary collapse
-
#_full_description ⇒ Object
readonly
Returns the value of attribute _full_description.
-
#_id ⇒ Object
readonly
Returns the value of attribute _id.
-
#_methods ⇒ Object
readonly
Returns the value of attribute _methods.
-
#_name ⇒ Object
readonly
Returns the value of attribute _name.
-
#_params ⇒ Object
readonly
Returns the value of attribute _params.
-
#_path ⇒ Object
readonly
Returns the value of attribute _path.
-
#_short_description ⇒ Object
readonly
Returns the value of attribute _short_description.
-
#_version ⇒ Object
readonly
Returns the value of attribute _version.
Instance Method Summary collapse
-
#add_method(mapi_key) ⇒ Object
add description of resource method.
- #api_url ⇒ Object
- #desc(description) ⇒ Object (also: #description, #full_description)
- #doc_url ⇒ Object
-
#initialize(resource_name, &block) ⇒ ResourceDescription
constructor
A new instance of ResourceDescription.
- #name(name) ⇒ Object
- #param(param_name, *args, &block) ⇒ Object
- #path(path) ⇒ Object
- #short(short) ⇒ Object (also: #short_description)
- #to_json(method_name = nil) ⇒ Object
- #version(version) ⇒ Object
Constructor Details
#initialize(resource_name, &block) ⇒ ResourceDescription
Returns a new instance of ResourceDescription.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/restapi/resource_description.rb', line 15 def initialize(resource_name, &block) @_methods = [] @_params = Hash.new @_id = resource_name @_version = "1" @_name = @_id.humanize @_full_description = "" @_short_description = "" @_path = "" block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? end |
Instance Attribute Details
#_full_description ⇒ Object (readonly)
Returns the value of attribute _full_description.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _full_description @_full_description end |
#_id ⇒ Object (readonly)
Returns the value of attribute _id.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _id @_id end |
#_methods ⇒ Object (readonly)
Returns the value of attribute _methods.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _methods @_methods end |
#_name ⇒ Object (readonly)
Returns the value of attribute _name.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _name @_name end |
#_params ⇒ Object (readonly)
Returns the value of attribute _params.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _params @_params end |
#_path ⇒ Object (readonly)
Returns the value of attribute _path.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _path @_path end |
#_short_description ⇒ Object (readonly)
Returns the value of attribute _short_description.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _short_description @_short_description end |
#_version ⇒ Object (readonly)
Returns the value of attribute _version.
13 14 15 |
# File 'lib/restapi/resource_description.rb', line 13 def _version @_version end |
Instance Method Details
#add_method(mapi_key) ⇒ Object
add description of resource method
46 47 48 49 |
# File 'lib/restapi/resource_description.rb', line 46 def add_method(mapi_key) @_methods << mapi_key @_methods.uniq! end |
#api_url ⇒ Object
52 |
# File 'lib/restapi/resource_description.rb', line 52 def api_url; "#{Restapi.configuration.api_base_url}#{@_path}"; end |
#desc(description) ⇒ Object Also known as: description, full_description
38 39 40 41 |
# File 'lib/restapi/resource_description.rb', line 38 def desc(description) description ||= '' @_full_description = Restapi.rdoc.convert(description.strip_heredoc) end |
#doc_url ⇒ Object
51 |
# File 'lib/restapi/resource_description.rb', line 51 def doc_url; "#{Restapi.configuration.doc_base_url}/#{@_id}"; end |
#name(name) ⇒ Object
35 |
# File 'lib/restapi/resource_description.rb', line 35 def name(name); @_name = name; end |
#param(param_name, *args, &block) ⇒ Object
29 30 31 |
# File 'lib/restapi/resource_description.rb', line 29 def param(param_name, *args, &block) @_params[param_name] = Restapi::ParamDescription.new(param_name, *args, &block) end |
#path(path) ⇒ Object
33 |
# File 'lib/restapi/resource_description.rb', line 33 def path(path); @_path = path; end |
#short(short) ⇒ Object Also known as: short_description
36 |
# File 'lib/restapi/resource_description.rb', line 36 def short(short); @_short_description = short; end |
#to_json(method_name = nil) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/restapi/resource_description.rb', line 54 def to_json(method_name = nil) _methods = if method_name.blank? @_methods.collect { |key| Restapi.method_descriptions[key].to_json } else [Restapi.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, :methods => _methods } end |
#version(version) ⇒ Object
34 |
# File 'lib/restapi/resource_description.rb', line 34 def version(version); @_version = version; end |