Class: Restapi::ResourceDescription

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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_descriptionObject (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

#_idObject (readonly)

Returns the value of attribute _id.



13
14
15
# File 'lib/restapi/resource_description.rb', line 13

def _id
  @_id
end

#_methodsObject (readonly)

Returns the value of attribute _methods.



13
14
15
# File 'lib/restapi/resource_description.rb', line 13

def _methods
  @_methods
end

#_nameObject (readonly)

Returns the value of attribute _name.



13
14
15
# File 'lib/restapi/resource_description.rb', line 13

def _name
  @_name
end

#_paramsObject (readonly)

Returns the value of attribute _params.



13
14
15
# File 'lib/restapi/resource_description.rb', line 13

def _params
  @_params
end

#_pathObject (readonly)

Returns the value of attribute _path.



13
14
15
# File 'lib/restapi/resource_description.rb', line 13

def _path
  @_path
end

#_short_descriptionObject (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

#_versionObject (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_urlObject



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_urlObject



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