nutshell-crm 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. data/Rakefile +4 -1
  2. data/lib/nutshell-crm.rb +274 -6
  3. data/lib/nutshell-crm/version.rb +1 -1
  4. data/nutshell-crm.gemspec +1 -0
  5. data/spec/nutshell-crm_spec.rb +40 -167
  6. data/vendor/bundle/bin/yard +19 -0
  7. data/vendor/bundle/bin/yardoc +19 -0
  8. data/vendor/bundle/bin/yri +19 -0
  9. data/vendor/bundle/gems/yard-0.7.4/.yardopts +18 -0
  10. data/vendor/bundle/gems/yard-0.7.4/ChangeLog +10533 -0
  11. data/vendor/bundle/gems/yard-0.7.4/LEGAL +74 -0
  12. data/vendor/bundle/gems/yard-0.7.4/LICENSE +22 -0
  13. data/vendor/bundle/gems/yard-0.7.4/README.md +514 -0
  14. data/vendor/bundle/gems/yard-0.7.4/Rakefile +99 -0
  15. data/vendor/bundle/gems/yard-0.7.4/benchmarks/builtins_vs_eval.rb +23 -0
  16. data/vendor/bundle/gems/yard-0.7.4/benchmarks/concat_vs_join.rb +12 -0
  17. data/vendor/bundle/gems/yard-0.7.4/benchmarks/erb_vs_erubis.rb +53 -0
  18. data/vendor/bundle/gems/yard-0.7.4/benchmarks/format_args.rb +46 -0
  19. data/vendor/bundle/gems/yard-0.7.4/benchmarks/generation.rb +37 -0
  20. data/vendor/bundle/gems/yard-0.7.4/benchmarks/marshal_vs_dbm.rb +63 -0
  21. data/vendor/bundle/gems/yard-0.7.4/benchmarks/parsing.rb +46 -0
  22. data/vendor/bundle/gems/yard-0.7.4/benchmarks/pathname_vs_string.rb +50 -0
  23. data/vendor/bundle/gems/yard-0.7.4/benchmarks/rdoc_vs_yardoc.rb +10 -0
  24. data/vendor/bundle/gems/yard-0.7.4/benchmarks/ri_vs_yri.rb +18 -0
  25. data/vendor/bundle/gems/yard-0.7.4/benchmarks/ripper_parser.rb +12 -0
  26. data/vendor/bundle/gems/yard-0.7.4/benchmarks/splat_vs_flatten.rb +12 -0
  27. data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_erb.rb +22 -0
  28. data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_format.rb +6 -0
  29. data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_profile.rb +17 -0
  30. data/vendor/bundle/gems/yard-0.7.4/benchmarks/yri_cache.rb +19 -0
  31. data/vendor/bundle/gems/yard-0.7.4/bin/yard +4 -0
  32. data/vendor/bundle/gems/yard-0.7.4/bin/yard-graph +4 -0
  33. data/vendor/bundle/gems/yard-0.7.4/bin/yard-server +4 -0
  34. data/vendor/bundle/gems/yard-0.7.4/bin/yardoc +4 -0
  35. data/vendor/bundle/gems/yard-0.7.4/bin/yri +4 -0
  36. data/vendor/bundle/gems/yard-0.7.4/docs/CodeObjects.md +115 -0
  37. data/vendor/bundle/gems/yard-0.7.4/docs/GettingStarted.md +590 -0
  38. data/vendor/bundle/gems/yard-0.7.4/docs/Glossary.md +12 -0
  39. data/vendor/bundle/gems/yard-0.7.4/docs/Handlers.md +152 -0
  40. data/vendor/bundle/gems/yard-0.7.4/docs/Overview.md +61 -0
  41. data/vendor/bundle/gems/yard-0.7.4/docs/Parser.md +191 -0
  42. data/vendor/bundle/gems/yard-0.7.4/docs/Tags.md +586 -0
  43. data/vendor/bundle/gems/yard-0.7.4/docs/Templates.md +518 -0
  44. data/vendor/bundle/gems/yard-0.7.4/docs/WhatsNew.md +887 -0
  45. data/vendor/bundle/gems/yard-0.7.4/docs/images/code-objects-class-diagram.png +0 -0
  46. data/vendor/bundle/gems/yard-0.7.4/docs/images/handlers-class-diagram.png +0 -0
  47. data/vendor/bundle/gems/yard-0.7.4/docs/images/overview-class-diagram.png +0 -0
  48. data/vendor/bundle/gems/yard-0.7.4/docs/images/parser-class-diagram.png +0 -0
  49. data/vendor/bundle/gems/yard-0.7.4/docs/images/tags-class-diagram.png +0 -0
  50. data/vendor/bundle/gems/yard-0.7.4/lib/rubygems_plugin.rb +4 -0
  51. data/vendor/bundle/gems/yard-0.7.4/lib/yard.rb +57 -0
  52. data/vendor/bundle/gems/yard-0.7.4/lib/yard/autoload.rb +233 -0
  53. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/command.rb +73 -0
  54. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/command_parser.rb +89 -0
  55. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/config.rb +136 -0
  56. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/diff.rb +201 -0
  57. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/gems.rb +83 -0
  58. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/graph.rb +103 -0
  59. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/help.rb +18 -0
  60. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/list.rb +22 -0
  61. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/server.rb +160 -0
  62. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/stats.rb +210 -0
  63. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/yardoc.rb +696 -0
  64. data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/yri.rb +193 -0
  65. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/base.rb +513 -0
  66. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/class_object.rb +143 -0
  67. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/class_variable_object.rb +8 -0
  68. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/constant_object.rb +13 -0
  69. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/extended_method_object.rb +23 -0
  70. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/extra_file_object.rb +89 -0
  71. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/macro_object.rb +215 -0
  72. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/method_object.rb +153 -0
  73. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/module_object.rb +18 -0
  74. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/namespace_object.rb +200 -0
  75. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/proxy.rb +252 -0
  76. data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/root_object.rb +16 -0
  77. data/vendor/bundle/gems/yard-0.7.4/lib/yard/config.rb +259 -0
  78. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/array.rb +15 -0
  79. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/file.rb +65 -0
  80. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/hash.rb +15 -0
  81. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/insertion.rb +60 -0
  82. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/module.rb +19 -0
  83. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/string.rb +67 -0
  84. data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/symbol_hash.rb +73 -0
  85. data/vendor/bundle/gems/yard-0.7.4/lib/yard/docstring.rb +331 -0
  86. data/vendor/bundle/gems/yard-0.7.4/lib/yard/globals.rb +18 -0
  87. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/base.rb +569 -0
  88. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/processor.rb +187 -0
  89. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/alias_handler.rb +43 -0
  90. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/attribute_handler.rb +83 -0
  91. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/base.rb +160 -0
  92. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_condition_handler.rb +84 -0
  93. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_handler.rb +122 -0
  94. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_variable_handler.rb +16 -0
  95. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/constant_handler.rb +45 -0
  96. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/exception_handler.rb +26 -0
  97. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/extend_handler.rb +21 -0
  98. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -0
  99. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/attribute_handler.rb +61 -0
  100. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/base.rb +228 -0
  101. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +81 -0
  102. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_handler.rb +110 -0
  103. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +14 -0
  104. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/constant_handler.rb +28 -0
  105. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/exception_handler.rb +12 -0
  106. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/extend_handler.rb +20 -0
  107. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/macro_handler.rb +39 -0
  108. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/method_handler.rb +78 -0
  109. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/mixin_handler.rb +41 -0
  110. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/module_handler.rb +11 -0
  111. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +21 -0
  112. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/visibility_handler.rb +16 -0
  113. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/yield_handler.rb +28 -0
  114. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/macro_handler.rb +40 -0
  115. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/macro_handler_methods.rb +130 -0
  116. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/method_condition_handler.rb +8 -0
  117. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/method_handler.rb +94 -0
  118. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/mixin_handler.rb +36 -0
  119. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/module_handler.rb +11 -0
  120. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/private_constant_handler.rb +36 -0
  121. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/struct_handler_methods.rb +140 -0
  122. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/visibility_handler.rb +24 -0
  123. data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/yield_handler.rb +30 -0
  124. data/vendor/bundle/gems/yard-0.7.4/lib/yard/logging.rb +77 -0
  125. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/base.rb +56 -0
  126. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/c_parser.rb +501 -0
  127. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/ast_node.rb +399 -0
  128. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/ruby_lex.rb +1376 -0
  129. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/ruby_parser.rb +30 -0
  130. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/statement.rb +60 -0
  131. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/statement_list.rb +390 -0
  132. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/token_list.rb +66 -0
  133. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/ruby_parser.rb +542 -0
  134. data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/source_parser.rb +517 -0
  135. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rake/yardoc_task.rb +75 -0
  136. data/vendor/bundle/gems/yard-0.7.4/lib/yard/registry.rb +400 -0
  137. data/vendor/bundle/gems/yard-0.7.4/lib/yard/registry_store.rb +252 -0
  138. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports.rb +8 -0
  139. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/LICENSE.txt +57 -0
  140. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/MIT.txt +20 -0
  141. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/gem.rb +8 -0
  142. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/source_index.rb +353 -0
  143. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/doc_manager.rb +75 -0
  144. data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/specification.rb +41 -0
  145. data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/base.rb +80 -0
  146. data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/file_system_serializer.rb +92 -0
  147. data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/process_serializer.rb +24 -0
  148. data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/stdout_serializer.rb +32 -0
  149. data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/yardoc_serializer.rb +122 -0
  150. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server.rb +11 -0
  151. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/adapter.rb +100 -0
  152. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/base.rb +192 -0
  153. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/display_file_command.rb +24 -0
  154. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/display_object_command.rb +51 -0
  155. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/frames_command.rb +32 -0
  156. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/library_command.rb +100 -0
  157. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/library_index_command.rb +24 -0
  158. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/list_command.rb +48 -0
  159. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/search_command.rb +72 -0
  160. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/static_file_command.rb +50 -0
  161. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/doc_server_helper.rb +40 -0
  162. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/doc_server_serializer.rb +31 -0
  163. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/library_version.rb +227 -0
  164. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/rack_adapter.rb +83 -0
  165. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/router.rb +180 -0
  166. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/static_caching.rb +45 -0
  167. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/css/custom.css +78 -0
  168. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
  169. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +12 -0
  170. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/js/live.js +32 -0
  171. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/breadcrumb.erb +46 -0
  172. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/headers.erb +16 -0
  173. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
  174. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/frames/html/frames.erb +13 -0
  175. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/frames/html/setup.rb +3 -0
  176. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +34 -0
  177. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/full_list/html/setup.rb +20 -0
  178. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/contents.erb +13 -0
  179. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/headers.erb +26 -0
  180. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +12 -0
  181. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/setup.rb +3 -0
  182. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
  183. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/processing/html/processing.erb +51 -0
  184. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/processing/html/setup.rb +3 -0
  185. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/search/html/search.erb +19 -0
  186. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/search/html/setup.rb +8 -0
  187. data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/webrick_adapter.rb +42 -0
  188. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/default_factory.rb +141 -0
  189. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/default_tag.rb +12 -0
  190. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/library.rb +201 -0
  191. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/option_tag.rb +12 -0
  192. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/overload_tag.rb +65 -0
  193. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/ref_tag.rb +7 -0
  194. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/ref_tag_list.rb +27 -0
  195. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/tag.rb +57 -0
  196. data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/tag_format_error.rb +6 -0
  197. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/engine.rb +173 -0
  198. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/erb_cache.rb +22 -0
  199. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/base_helper.rb +206 -0
  200. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/filter_helper.rb +26 -0
  201. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/html_helper.rb +520 -0
  202. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +59 -0
  203. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/markup/rdoc_markup.rb +85 -0
  204. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/markup_helper.rb +164 -0
  205. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/method_helper.rb +72 -0
  206. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/module_helper.rb +19 -0
  207. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/text_helper.rb +95 -0
  208. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/uml_helper.rb +46 -0
  209. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/section.rb +106 -0
  210. data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/template.rb +366 -0
  211. data/vendor/bundle/gems/yard-0.7.4/lib/yard/verifier.rb +148 -0
  212. data/vendor/bundle/gems/yard-0.7.4/spec/cli/command_parser_spec.rb +43 -0
  213. data/vendor/bundle/gems/yard-0.7.4/spec/cli/command_spec.rb +36 -0
  214. data/vendor/bundle/gems/yard-0.7.4/spec/cli/config_spec.rb +92 -0
  215. data/vendor/bundle/gems/yard-0.7.4/spec/cli/diff_spec.rb +172 -0
  216. data/vendor/bundle/gems/yard-0.7.4/spec/cli/gems_spec.rb +81 -0
  217. data/vendor/bundle/gems/yard-0.7.4/spec/cli/help_spec.rb +22 -0
  218. data/vendor/bundle/gems/yard-0.7.4/spec/cli/list_spec.rb +8 -0
  219. data/vendor/bundle/gems/yard-0.7.4/spec/cli/server_spec.rb +171 -0
  220. data/vendor/bundle/gems/yard-0.7.4/spec/cli/stats_spec.rb +90 -0
  221. data/vendor/bundle/gems/yard-0.7.4/spec/cli/yardoc_spec.rb +628 -0
  222. data/vendor/bundle/gems/yard-0.7.4/spec/cli/yri_spec.rb +87 -0
  223. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/base_spec.rb +334 -0
  224. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/class_object_spec.rb +225 -0
  225. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/code_object_list_spec.rb +33 -0
  226. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/constants_spec.rb +81 -0
  227. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/extra_file_object_spec.rb +132 -0
  228. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/macro_object_spec.rb +154 -0
  229. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/method_object_spec.rb +152 -0
  230. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/module_object_spec.rb +141 -0
  231. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/namespace_object_spec.rb +170 -0
  232. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/proxy_spec.rb +124 -0
  233. data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/spec_helper.rb +3 -0
  234. data/vendor/bundle/gems/yard-0.7.4/spec/config_spec.rb +167 -0
  235. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/array_spec.rb +14 -0
  236. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/file_spec.rb +68 -0
  237. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/hash_spec.rb +14 -0
  238. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/insertion_spec.rb +37 -0
  239. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/module_spec.rb +15 -0
  240. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/string_spec.rb +42 -0
  241. data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/symbol_hash_spec.rb +86 -0
  242. data/vendor/bundle/gems/yard-0.7.4/spec/docstring_spec.rb +400 -0
  243. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/alias_handler_spec.rb +80 -0
  244. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/attribute_handler_spec.rb +94 -0
  245. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/base_spec.rb +197 -0
  246. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_condition_handler_spec.rb +62 -0
  247. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_handler_spec.rb +246 -0
  248. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_variable_handler_spec.rb +11 -0
  249. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/constant_handler_spec.rb +64 -0
  250. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/alias_handler_001.rb.txt +44 -0
  251. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/attribute_handler_001.rb.txt +32 -0
  252. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_condition_handler_001.rb.txt +61 -0
  253. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_handler_001.rb.txt +120 -0
  254. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_variable_handler_001.rb.txt +10 -0
  255. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/constant_handler_001.rb.txt +25 -0
  256. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/exception_handler_001.rb.txt +59 -0
  257. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/extend_handler_001.rb.txt +16 -0
  258. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/macro_handler_001.rb.txt +83 -0
  259. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/method_condition_handler_001.rb.txt +10 -0
  260. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/method_handler_001.rb.txt +122 -0
  261. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/mixin_handler_001.rb.txt +33 -0
  262. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/module_handler_001.rb.txt +29 -0
  263. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -0
  264. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/process_handler_001.rb.txt +11 -0
  265. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/visibility_handler_001.rb.txt +27 -0
  266. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/yield_handler_001.rb.txt +55 -0
  267. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/exception_handler_spec.rb +48 -0
  268. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/extend_handler_spec.rb +23 -0
  269. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/legacy_base_spec.rb +128 -0
  270. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/macro_handler_spec.rb +157 -0
  271. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/method_condition_handler_spec.rb +14 -0
  272. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/method_handler_spec.rb +177 -0
  273. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/mixin_handler_spec.rb +50 -0
  274. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/module_handler_spec.rb +34 -0
  275. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/private_constant_handler_spec.rb +24 -0
  276. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/processor_spec.rb +23 -0
  277. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/ruby/base_spec.rb +90 -0
  278. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/ruby/legacy/base_spec.rb +78 -0
  279. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/spec_helper.rb +34 -0
  280. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/visibility_handler_spec.rb +34 -0
  281. data/vendor/bundle/gems/yard-0.7.4/spec/handlers/yield_handler_spec.rb +51 -0
  282. data/vendor/bundle/gems/yard-0.7.4/spec/logging_spec.rb +14 -0
  283. data/vendor/bundle/gems/yard-0.7.4/spec/parser/base_spec.rb +24 -0
  284. data/vendor/bundle/gems/yard-0.7.4/spec/parser/c_parser_spec.rb +231 -0
  285. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/array.c.txt +3887 -0
  286. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/example1.rb.txt +8 -0
  287. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/extrafile.c.txt +8 -0
  288. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/multifile.c.txt +6 -0
  289. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/override.c.txt +424 -0
  290. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/parse_in_order_001.rb.txt +2 -0
  291. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/parse_in_order_002.rb.txt +2 -0
  292. data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/tag_handler_001.rb.txt +8 -0
  293. data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/ast_node_spec.rb +33 -0
  294. data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/legacy/statement_list_spec.rb +299 -0
  295. data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/legacy/token_list_spec.rb +69 -0
  296. data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/ruby_parser_spec.rb +257 -0
  297. data/vendor/bundle/gems/yard-0.7.4/spec/parser/source_parser_spec.rb +595 -0
  298. data/vendor/bundle/gems/yard-0.7.4/spec/parser/tag_parsing_spec.rb +18 -0
  299. data/vendor/bundle/gems/yard-0.7.4/spec/rake/yardoc_task_spec.rb +90 -0
  300. data/vendor/bundle/gems/yard-0.7.4/spec/registry_spec.rb +303 -0
  301. data/vendor/bundle/gems/yard-0.7.4/spec/registry_store_spec.rb +255 -0
  302. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/checksums +1 -0
  303. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
  304. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
  305. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
  306. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
  307. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/proxy_types +2 -0
  308. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/file_system_serializer_spec.rb +124 -0
  309. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/spec_helper.rb +2 -0
  310. data/vendor/bundle/gems/yard-0.7.4/spec/serializers/yardoc_serializer_spec.rb +46 -0
  311. data/vendor/bundle/gems/yard-0.7.4/spec/server/adapter_spec.rb +38 -0
  312. data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/base_spec.rb +87 -0
  313. data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/library_command_spec.rb +39 -0
  314. data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/static_file_command_spec.rb +84 -0
  315. data/vendor/bundle/gems/yard-0.7.4/spec/server/doc_server_serializer_spec.rb +58 -0
  316. data/vendor/bundle/gems/yard-0.7.4/spec/server/rack_adapter_spec.rb +18 -0
  317. data/vendor/bundle/gems/yard-0.7.4/spec/server/router_spec.rb +115 -0
  318. data/vendor/bundle/gems/yard-0.7.4/spec/server/spec_helper.rb +17 -0
  319. data/vendor/bundle/gems/yard-0.7.4/spec/server/static_caching_spec.rb +39 -0
  320. data/vendor/bundle/gems/yard-0.7.4/spec/server/webrick_servlet_spec.rb +20 -0
  321. data/vendor/bundle/gems/yard-0.7.4/spec/server_spec.rb +10 -0
  322. data/vendor/bundle/gems/yard-0.7.4/spec/spec_helper.rb +105 -0
  323. data/vendor/bundle/gems/yard-0.7.4/spec/tags/default_factory_spec.rb +138 -0
  324. data/vendor/bundle/gems/yard-0.7.4/spec/tags/default_tag_spec.rb +11 -0
  325. data/vendor/bundle/gems/yard-0.7.4/spec/tags/library_spec.rb +23 -0
  326. data/vendor/bundle/gems/yard-0.7.4/spec/tags/overload_tag_spec.rb +53 -0
  327. data/vendor/bundle/gems/yard-0.7.4/spec/tags/ref_tag_list_spec.rb +53 -0
  328. data/vendor/bundle/gems/yard-0.7.4/spec/templates/class_spec.rb +43 -0
  329. data/vendor/bundle/gems/yard-0.7.4/spec/templates/constant_spec.rb +40 -0
  330. data/vendor/bundle/gems/yard-0.7.4/spec/templates/engine_spec.rb +129 -0
  331. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class001.html +280 -0
  332. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class001.txt +36 -0
  333. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class002.html +35 -0
  334. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant001.txt +25 -0
  335. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant002.txt +7 -0
  336. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant003.txt +11 -0
  337. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method001.html +130 -0
  338. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method001.txt +35 -0
  339. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method002.html +86 -0
  340. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method002.txt +20 -0
  341. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method003.html +159 -0
  342. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method003.txt +45 -0
  343. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method004.html +44 -0
  344. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method004.txt +10 -0
  345. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method005.html +99 -0
  346. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method005.txt +33 -0
  347. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.dot +33 -0
  348. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.html +795 -0
  349. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.txt +33 -0
  350. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module002.html +319 -0
  351. data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/tag001.txt +82 -0
  352. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/base_helper_spec.rb +175 -0
  353. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/html_helper_spec.rb +541 -0
  354. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +48 -0
  355. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -0
  356. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/markup_helper_spec.rb +132 -0
  357. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/method_helper_spec.rb +75 -0
  358. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/shared_signature_examples.rb +121 -0
  359. data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/text_helper_spec.rb +44 -0
  360. data/vendor/bundle/gems/yard-0.7.4/spec/templates/method_spec.rb +102 -0
  361. data/vendor/bundle/gems/yard-0.7.4/spec/templates/module_spec.rb +109 -0
  362. data/vendor/bundle/gems/yard-0.7.4/spec/templates/onefile_spec.rb +47 -0
  363. data/vendor/bundle/gems/yard-0.7.4/spec/templates/section_spec.rb +146 -0
  364. data/vendor/bundle/gems/yard-0.7.4/spec/templates/spec_helper.rb +42 -0
  365. data/vendor/bundle/gems/yard-0.7.4/spec/templates/tag_spec.rb +39 -0
  366. data/vendor/bundle/gems/yard-0.7.4/spec/templates/template_spec.rb +401 -0
  367. data/vendor/bundle/gems/yard-0.7.4/spec/verifier_spec.rb +86 -0
  368. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/dot/setup.rb +6 -0
  369. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/dot/superklass.erb +3 -0
  370. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/constructor_details.erb +8 -0
  371. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/setup.rb +1 -0
  372. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/subclasses.erb +4 -0
  373. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/setup.rb +36 -0
  374. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/text/setup.rb +11 -0
  375. data/vendor/bundle/gems/yard-0.7.4/templates/default/class/text/subclasses.erb +5 -0
  376. data/vendor/bundle/gems/yard-0.7.4/templates/default/constant/text/header.erb +11 -0
  377. data/vendor/bundle/gems/yard-0.7.4/templates/default/constant/text/setup.rb +3 -0
  378. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/abstract.erb +4 -0
  379. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/deprecated.erb +1 -0
  380. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/index.erb +5 -0
  381. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/note.erb +6 -0
  382. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/private.erb +4 -0
  383. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/returns_void.erb +1 -0
  384. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/text.erb +1 -0
  385. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/todo.erb +6 -0
  386. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/setup.rb +49 -0
  387. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/abstract.erb +2 -0
  388. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/deprecated.erb +2 -0
  389. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/index.erb +2 -0
  390. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/note.erb +4 -0
  391. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/private.erb +2 -0
  392. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/returns_void.erb +1 -0
  393. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/text.erb +1 -0
  394. data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/todo.erb +4 -0
  395. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/common.css +1 -0
  396. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/full_list.css +55 -0
  397. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/style.css +322 -0
  398. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/frames.erb +13 -0
  399. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list.erb +37 -0
  400. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_class.erb +2 -0
  401. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_files.erb +5 -0
  402. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_methods.erb +12 -0
  403. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/app.js +205 -0
  404. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/full_list.js +167 -0
  405. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/jquery.js +16 -0
  406. data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/setup.rb +198 -0
  407. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/dot/header.erb +6 -0
  408. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/dot/setup.rb +14 -0
  409. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/breadcrumb.erb +13 -0
  410. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/files.erb +11 -0
  411. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/footer.erb +5 -0
  412. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/headers.erb +17 -0
  413. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/index.erb +2 -0
  414. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/layout.erb +24 -0
  415. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/listing.erb +4 -0
  416. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/objects.erb +32 -0
  417. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/search.erb +5 -0
  418. data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/setup.rb +71 -0
  419. data/vendor/bundle/gems/yard-0.7.4/templates/default/method/html/header.erb +16 -0
  420. data/vendor/bundle/gems/yard-0.7.4/templates/default/method/setup.rb +3 -0
  421. data/vendor/bundle/gems/yard-0.7.4/templates/default/method/text/header.erb +1 -0
  422. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/header.erb +3 -0
  423. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/method_signature.erb +18 -0
  424. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/source.erb +10 -0
  425. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/setup.rb +9 -0
  426. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/header.erb +10 -0
  427. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/method_signature.erb +12 -0
  428. data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/setup.rb +10 -0
  429. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/child.erb +1 -0
  430. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/dependencies.erb +3 -0
  431. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/header.erb +6 -0
  432. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/info.erb +14 -0
  433. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/setup.rb +14 -0
  434. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/attribute_details.erb +11 -0
  435. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/attribute_summary.erb +8 -0
  436. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/box_info.erb +37 -0
  437. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/children.erb +8 -0
  438. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/constant_summary.erb +13 -0
  439. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/defines.erb +3 -0
  440. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/header.erb +5 -0
  441. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_attributes.erb +17 -0
  442. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_constants.erb +8 -0
  443. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_methods.erb +18 -0
  444. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/item_summary.erb +30 -0
  445. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/method_details_list.erb +9 -0
  446. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/method_summary.erb +14 -0
  447. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/methodmissing.erb +12 -0
  448. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/pre_docstring.erb +1 -0
  449. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/setup.rb +129 -0
  450. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/children.erb +10 -0
  451. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/class_meths_list.erb +8 -0
  452. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/extends.erb +8 -0
  453. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/header.erb +7 -0
  454. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/includes.erb +8 -0
  455. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/instance_meths_list.erb +8 -0
  456. data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/setup.rb +12 -0
  457. data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/files.erb +5 -0
  458. data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/layout.erb +22 -0
  459. data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/readme.erb +3 -0
  460. data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/setup.rb +43 -0
  461. data/vendor/bundle/gems/yard-0.7.4/templates/default/root/dot/child.erb +3 -0
  462. data/vendor/bundle/gems/yard-0.7.4/templates/default/root/dot/setup.rb +5 -0
  463. data/vendor/bundle/gems/yard-0.7.4/templates/default/root/html/setup.rb +1 -0
  464. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/example.erb +9 -0
  465. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/index.erb +3 -0
  466. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/option.erb +22 -0
  467. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/overload.erb +14 -0
  468. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/see.erb +8 -0
  469. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/tag.erb +20 -0
  470. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/setup.rb +50 -0
  471. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/example.erb +12 -0
  472. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/index.erb +1 -0
  473. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/option.erb +20 -0
  474. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/overload.erb +19 -0
  475. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/see.erb +11 -0
  476. data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/tag.erb +13 -0
  477. data/vendor/bundle/gems/yard-0.7.4/templates/guide/class/html/setup.rb +1 -0
  478. data/vendor/bundle/gems/yard-0.7.4/templates/guide/docstring/html/setup.rb +1 -0
  479. data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/css/style.css +93 -0
  480. data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/js/app.js +33 -0
  481. data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/setup.rb +54 -0
  482. data/vendor/bundle/gems/yard-0.7.4/templates/guide/layout/html/layout.erb +81 -0
  483. data/vendor/bundle/gems/yard-0.7.4/templates/guide/layout/html/setup.rb +24 -0
  484. data/vendor/bundle/gems/yard-0.7.4/templates/guide/method/html/header.erb +18 -0
  485. data/vendor/bundle/gems/yard-0.7.4/templates/guide/method/html/setup.rb +21 -0
  486. data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/header.erb +7 -0
  487. data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/method_list.erb +5 -0
  488. data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/setup.rb +26 -0
  489. data/vendor/bundle/gems/yard-0.7.4/templates/guide/tags/html/setup.rb +8 -0
  490. data/vendor/bundle/specifications/yard-0.7.4.gemspec +28 -0
  491. metadata +505 -8
@@ -0,0 +1,18 @@
1
+ require "benchmark"
2
+
3
+ TIMES = 10
4
+ Benchmark.bmbm do |x|
5
+ x.report("ri") { TIMES.times { `ri -T YARD::Tags::Library` } }
6
+ x.report("yri") { TIMES.times { `./bin/yri -T YARD::Tags::Library` } }
7
+ end
8
+
9
+ __END__
10
+
11
+ Rehearsal ---------------------------------------
12
+ ri 0.000000 0.020000 6.880000 ( 6.929591)
13
+ yri 0.000000 0.000000 1.060000 ( 1.074840)
14
+ ------------------------------ total: 7.940000sec
15
+
16
+ user system total real
17
+ ri 0.000000 0.020000 6.850000 ( 6.871660)
18
+ yri 0.000000 0.010000 1.060000 ( 1.067585)
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+ require 'benchmark'
3
+ require File.dirname(__FILE__) + '/../lib/yard'
4
+
5
+ $files = Dir[File.dirname(__FILE__) + '/../lib/**/*.rb'].map {|f| File.read(f) }
6
+ $files_rip = Dir[File.dirname(__FILE__) + '/../lib/**/*.rb'].map {|f| [File.read(f), f] }
7
+
8
+ TIMES = 2
9
+ Benchmark.bmbm do |x|
10
+ x.report("rip-parser") { TIMES.times { $files_rip.each {|f| YARD::Parser::Ruby::RubyParser.parse(*f) } } }
11
+ x.report("yard-parser ") { TIMES.times { $files.each {|f| YARD::Parser::Ruby::Legacy::StatementList.new(f) } } }
12
+ end
@@ -0,0 +1,12 @@
1
+ require "benchmark"
2
+
3
+ # To prove that flattening a small list is not significantly slower than
4
+ # calling *list (used to get around create_tag list issue)
5
+ $a = "FOO BAR BAZ"
6
+ def foo(*args) args.last.inspect end
7
+
8
+ TESTS = 10_000
9
+ Benchmark.bmbm do |x|
10
+ x.report("splat") { TESTS.times { foo *$a } }
11
+ x.report("flatten") { TESTS.times { foo *[$a].flatten } }
12
+ end
@@ -0,0 +1,22 @@
1
+ require "benchmark"
2
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
3
+
4
+ YARD::Registry.load_yardoc(File.join(File.dirname(__FILE__), '..', '.yardoc'))
5
+ obj = YARD::Registry.at("YARD::CodeObjects::Base")
6
+
7
+ TIMES = 3
8
+ Benchmark.bm do |x|
9
+ x.report("trim-line") { TIMES.times { obj.format(:format => :html) } }
10
+ module YARD
11
+ module Templates
12
+ module Template
13
+ def erb(section, &block)
14
+ erb = ERB.new(cache(section), nil)
15
+ erb.filename = cache_filename(section).to_s
16
+ erb.result(binding, &block)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ x.report("no-trim ") { TIMES.times { obj.format(:format => :html) } }
22
+ end
@@ -0,0 +1,6 @@
1
+ require "benchmark"
2
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
3
+
4
+ YARD::Registry.load_yardoc(File.join(File.dirname(__FILE__), '..', '.yardoc'))
5
+ obj = YARD::Registry.at("YARD::CodeObjects::Base")
6
+ puts Benchmark.measure { obj.format(:format => :html) }
@@ -0,0 +1,17 @@
1
+ require 'rubygems'
2
+ require 'ruby-prof'
3
+ #require 'benchmark'
4
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'yard')
5
+
6
+ YARD::Registry.load_yardoc(File.join(File.dirname(__FILE__), '..', '.yardoc'))
7
+ obj = YARD::Registry.at("YARD::CodeObjects::Base")
8
+
9
+ #PerfTools::CpuProfiler.start("template_profile") do
10
+ #end
11
+
12
+ result = RubyProf.profile do
13
+ obj.format(:format => :html, :no_highlight => true)
14
+ end
15
+
16
+ printer = RubyProf::CallTreePrinter.new(result)
17
+ printer.print(STDOUT)
@@ -0,0 +1,19 @@
1
+ require File.dirname(__FILE__) + "/../lib/yard"
2
+ require "benchmark"
3
+ include YARD::CLI
4
+
5
+ class YARD::CLI::YRI
6
+ def print_object(object) end
7
+ end
8
+
9
+ def remove_cache
10
+ File.unlink(YRI::CACHE_FILE)
11
+ end
12
+
13
+ TIMES = 10
14
+ NAME = 'YARD'
15
+ remove_cache; YRI.run(NAME)
16
+ Benchmark.bmbm do |x|
17
+ x.report("cache ") { TIMES.times { YRI.run(NAME) } }
18
+ x.report("no-cache") { TIMES.times { remove_cache; YRI.run(NAME) } }
19
+ end
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/yard'
3
+
4
+ YARD::CLI::CommandParser.run(*ARGV)
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/yard'
3
+
4
+ YARD::CLI::Graph.run(*ARGV)
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/yard'
3
+
4
+ YARD::CLI::Server.run(*ARGV)
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/yard'
3
+
4
+ YARD::CLI::Yardoc.run(*ARGV)
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/yard'
3
+
4
+ YARD::CLI::YRI.run(*ARGV)
@@ -0,0 +1,115 @@
1
+ # @title CodeObjects Architecture
2
+
3
+ # CodeObjects Architecture
4
+
5
+ Code objects are Ruby objects that describe the code being documented. For instance,
6
+ all classes, modules, methods, etc. are all extracted from the Ruby source as code
7
+ objects. All of these code objects extend from the {YARD::CodeObjects::Base} class, which
8
+ provides basic attributes like source location, source code, name and path.
9
+
10
+ ## CodeObjects Organization
11
+
12
+ Code objects are divided into two basic types. {YARD::CodeObjects::NamespaceObject NamespaceObjects}
13
+ and non-namespace objects. A namespace object refers to any object in Ruby that can have
14
+ other objects defined inside of it. In the context of Ruby, this specifically means
15
+ modules and classes (both of which are subclasses of `NamespaceObject`). These objects
16
+ act like tree structures, maintaining a list of all of their direct children. All non
17
+ namespace objects are simply subclasses of the Base class. The {YARD::CodeObjects::RootObject RootObject}
18
+ is a special kind of `NamespaceObject` which refers to the top level namespace in Ruby.
19
+ Methods that accept a namespace object as a parameter should also accept the symbol
20
+ `:root` as a shortcut for the root object.
21
+
22
+ The following is an overview of the classes within the `CodeObjects` namespace:
23
+
24
+ ![CodeObjects Class Diagram](images/code-objects-class-diagram.png)
25
+
26
+ ## Unique Path Representation
27
+
28
+ All CodeObjects are uniquely defined by their implementation of {YARD::CodeObjects::Base#path}.
29
+ This path is used to locate or store a code object in the {YARD::Registry}. It is therefore
30
+ essential that any Base subclass return a unique String value for #path so that the
31
+ object may co-exist with other objects in the Registry.
32
+
33
+ In practice, a path is simply the conventional Ruby representation of a class,
34
+ module, constant, class variable or method. For example, the following objects
35
+ would have the following respective paths:
36
+
37
+ * Class `Klass` inside module `Mod`: `Mod::Klass`
38
+ * Instance method `bar` inside class `Foo`: `Foo#bar`
39
+ * Class method `bar` inside class `Foo`: `Foo.bar`
40
+ * Constant `VERSION` inside class `YARD`: `YARD::VERSION`
41
+ * Class variable `@@abc` inside class `A`: `A::@@abc`
42
+
43
+ ## Registry
44
+
45
+ CodeObjects classes are coupled with the {YARD::Registry} class which keeps track of
46
+ all instantiated code objects. This is an explicit design choice to allow objects
47
+ to be fetched, cached, imported and exported from a centralized location. As mentioned
48
+ above, this coupling is a result of the fact that each object is uniquely identified by
49
+ its path, which is used to implement lookups. You can read more about the registry
50
+ in the {YARD::Registry} class.
51
+
52
+ ## Identity Map
53
+
54
+ Code objects are instantiated using an identity-map like implementation that guarantees
55
+ only one unique Ruby object exists for an object described by a specific path. This
56
+ allows developers to create a code object without checking if it already exists in
57
+ the {YARD::Registry}. The following example will only create one object:
58
+
59
+ id = ClassObject.new(:root, "MyClass").object_id #=> 13352
60
+ ClassObject.new(:root, "MyClass").object_id #=> 13352
61
+
62
+ ## Proxy Objects
63
+
64
+ In addition to providing access to existing objects, a {YARD::CodeObjects::Proxy}
65
+ class exists which can represent an object at a path that may or may not have been
66
+ created. This is necessary to represent a reference to an object in code that is
67
+ never defined in the same body of source code, or perhaps defined later. If any
68
+ attributes of a proxy are accessed, it will immediately be resolved to the object
69
+ at its declared path. In the case where such an object exists, it will act as
70
+ a delegate to the object. However, if the object does not exist, a warning will
71
+ be raised. Whenever arbitrary code objects are used, care should be taken in
72
+ order to make sure attributes are not accessed on unresolvable proxies. An
73
+ unresolvable proxy will return a class name of `Proxy` and #type of `:proxy`,
74
+ for example:
75
+
76
+ P(:InvalidObject).type == :proxy #=> true
77
+ P(:InvalidObject).is_a?(Proxy) #=> true
78
+
79
+ ## Adding Data to Code Objects
80
+
81
+ Code objects act as hash-like structures that allow any arbitrary value to be set.
82
+ This allows easy extending of existing objects without creating custom subclasses.
83
+ For instance, to add a timestamp to a method object (when it was modified, maybe),
84
+ it is possible to simply do:
85
+
86
+ object = MethodObject.new(:root, "my_method")
87
+ object[:modified_at] = Time.now
88
+
89
+ This value can now be retrieved on this object both by the hash `[]` syntax as
90
+ well as like any other method:
91
+
92
+ object.modified_at #=> 2009-06-03 20:08:46 -0400
93
+
94
+ ## Creating a Custom CodeObject
95
+
96
+ It should first be mentioned that creating a custom code object should not be
97
+ necessary in most cases, except when functionality that cannot be represented
98
+ by classical Ruby objects is added. A good example *might* be a test class,
99
+ which although is technically a Ruby class, has a significantly different purpose
100
+ in documentation and needs a different set of metadata, as well as its own
101
+ representation in documentation.
102
+
103
+ The {YARD::CodeObjects::Base#path} implementation is the most important part of the
104
+ code object architecture. The first thing any custom code object must guarantee is
105
+ that its path value is unique among all other objects. The recommended way to do this
106
+ with custom objects is to add a descriptive prefix to the path. For example, the
107
+ following is an implementation of the path for a hypothetical `FooObject`:
108
+
109
+ def path
110
+ "__FooPrefix" + sep + super
111
+ end
112
+
113
+ Note that if our FooObject is a `NamespaceObject`, meaning if it can have child
114
+ FooObjects defined inside of it, you may need to verify that the prefix is only
115
+ applied once.
@@ -0,0 +1,590 @@
1
+ # @title Getting Started Guide
2
+
3
+ # Getting Started with YARD
4
+
5
+ There are a few ways which YARD can be of use to you or your project. This
6
+ document will cover the most common ways to use YARD:
7
+
8
+ * [Documenting Code with YARD](#docing)
9
+ * [Using YARD to Generate Documentation](#using)
10
+ * [Configuring YARD](#config)
11
+ * [Extending YARD](#extending)
12
+ * [Templating YARD](#templating)
13
+ * [Plugin Support](#plugins)
14
+
15
+ <a name="docing"></a>
16
+
17
+ ## Documenting Code with YARD
18
+
19
+ By default, YARD is compatible with the same RDoc syntax most Ruby developers
20
+ are already familiar with. However, one of the biggest advantages of YARD is
21
+ the extended meta-data syntax, commonly known as "tags", that you can use
22
+ to express small bits of information in a structured and formal manner. While
23
+ RDoc syntax expects you to describe your method in a completely free-form
24
+ manner, YARD recommends declaring your parameters, return types, etc. with
25
+ the `@tag` syntax, which makes outputting the documentation more consistent
26
+ and easier to read. Consider the RDoc documentation for a method to_format:
27
+
28
+ # Converts the object into textual markup given a specific `format`
29
+ # (defaults to `:html`)
30
+ #
31
+ # == Parameters:
32
+ # format::
33
+ # A Symbol declaring the format to convert the object to. This
34
+ # can be `:text` or `:html`.
35
+ #
36
+ # == Returns:
37
+ # A string representing the object in a specified
38
+ # format.
39
+ #
40
+ def to_format(format = :html)
41
+ # format the object
42
+ end
43
+
44
+ While this may seem easy enough to read and understand, it's hard for a machine
45
+ to properly pull this data back out of our documentation. Also we've tied our
46
+ markup to our content, and now our documentation becomes hard to maintain if
47
+ we decide later to change our markup style (maybe we don't want the ":" suffix
48
+ on our headers anymore).
49
+
50
+ In YARD, we would simply define our method as:
51
+
52
+ # Converts the object into textual markup given a specific format.
53
+ #
54
+ # @param [Symbol] format the format type, `:text` or `:html`
55
+ # @return [String] the object converted into the expected format.
56
+ def to_format(format = :html)
57
+ # format the object
58
+ end
59
+
60
+ Using tags we can add semantic metadata to our code without worrying about
61
+ presentation. YARD will handle presentation for us when we decide to generate
62
+ documentation later.
63
+
64
+ ## Which Markup Format?
65
+
66
+ YARD does not impose a specific markup. The above example uses standard RDoc
67
+ markup formatting, but YARD also supports textile and markdown via the
68
+ command-line switch or `.yardopts` file (see below). This means that you are
69
+ free to use whatever formatting you like. This guide is actually written
70
+ using markdown. YARD, however, does add a few important syntaxes that are
71
+ processed no matter which markup formatting you use, such as tag support
72
+ and inter-document linking. These syntaxes are discussed below.
73
+
74
+ ## Adding Tags to Documentation
75
+
76
+ The tag syntax that YARD uses is the same @tag-style syntax you may have seen
77
+ if you've ever coded in Java, Python, PHP, Objective-C or a myriad of other
78
+ languages. The following tag adds an author tag to your class:
79
+
80
+ # @author Loren Segal
81
+ class MyClass
82
+ end
83
+
84
+ To allow for large amounts of text, the @tag syntax will recognize any indented
85
+ lines following a tag as part of the tag data. For example:
86
+
87
+ # @deprecated Use {#my_new_method} instead of this method because
88
+ # it uses a library that is no longer supported in Ruby 1.9.
89
+ # The new method accepts the same parameters.
90
+ def mymethod
91
+ end
92
+
93
+ ### List of Tags
94
+
95
+ A list of tags can be found in {file:docs/Tags.md#taglist}
96
+
97
+ ### Reference Tags
98
+
99
+ To reduce the amount of duplication in writing documentation for repetitive
100
+ code, YARD introduces "reference tags", which are not quite tags, but not
101
+ quite docstrings either. In a sense, they are tag (and docstring) modifiers.
102
+ Basically, any docstring (or tag) that begins with "(see OTHEROBJECT)" will
103
+ implicitly link the docstring or tag to the "OTHEROBJECT", copying any data
104
+ from that docstring/tag into your current object. Consider the example:
105
+
106
+ class MyWebServer
107
+ # Handles a request
108
+ # @param [Request] request the request object
109
+ # @return [String] the resulting webpage
110
+ def get(request) "hello" end
111
+
112
+ # (see #get)
113
+ def post(request) "hello" end
114
+ end
115
+
116
+ The above `#post` method takes the docstring and all tags (`param` and `return`)
117
+ of the `#get` method. When you generate HTML documentation, you will see this
118
+ duplication automatically, so you don't have to manually type it out. We can
119
+ also add our own custom docstring information below the "see" reference, and
120
+ whatever we write will be appended to the docstring:
121
+
122
+ # (see #get)
123
+ # @note This method may modify our application state!
124
+ def post(request) self.state += 1; "hello" end
125
+
126
+ Here we added another tag, but we could have also added plain text. The
127
+ text must be appended *after* the `(see ...)` statement, preferably on
128
+ a separate line.
129
+
130
+ Note that we don't have to "refer" the whole docstring. We can also link
131
+ individual tags instead. Since "get" and "post" actually have different
132
+ descriptions, a more accurate example would be to only refer our parameter
133
+ and return tags:
134
+
135
+ class MyWebServer
136
+ # Handles a GET request
137
+ # @param [Request] request the request object
138
+ # @return [String] the resulting webpage
139
+ def get(request) "hello" end
140
+
141
+ # Handles a POST request
142
+ # @note This method may modify our application state!
143
+ # @param (see #get)
144
+ # @return (see #get)
145
+ def post(request) self.state += 1; "hello" end
146
+ end
147
+
148
+ The above copies all of the param and return tags from `#get`. Note that you
149
+ cannot copy individual tags of a specific type with this syntax.
150
+
151
+ ## Declaring Types
152
+
153
+ Some tags also have an optional "types" field which let us declare a list of
154
+ types associated with the tag. For instance, a return tag can be declared
155
+ with or without a types field.
156
+
157
+ # @return [String, nil] the contents of our object or nil
158
+ # if the object has not been filled with data.
159
+ def validate; end
160
+
161
+ # We don't care about the "type" here:
162
+ # @return the object
163
+ def to_obj; end
164
+
165
+ The list of types is in the form `[type1, type2, ...]` and is mostly free-form,
166
+ so we can also specify duck-types or constant values. For example:
167
+
168
+ # @param [#to_s] argname any object that responds to `#to_s`
169
+ # @param [true, false] argname only true or false
170
+
171
+ Note the the latter example can be replaced by the meta-type "Boolean", and
172
+ numeric types can be replaced by "Number". These meta-types are by convention
173
+ only, but are recommended.
174
+
175
+ List types can be specified in the form `CollectionClass<ElementType, ...>`.
176
+ For instance, consider the following Array that holds a set of Strings and
177
+ Symbols:
178
+
179
+ # @param [Array<String, Symbol>] list the list of strings and symbols.
180
+
181
+ We mentioned that these type fields are "mostly" free-form. In truth, they
182
+ are defined "by convention". To view samples of common type specifications
183
+ and recommended conventions for writing type specifications, see
184
+ [http://yardoc.org/types.html](http://yardoc.org/types.html). Note that these
185
+ conventions may change every now and then, although we are working on a more
186
+ "formal" type specification proposal.
187
+
188
+ ## Documenting DSL Methods
189
+
190
+ Application code in Ruby often makes use of DSL style metaprogrammed methods.
191
+ The most common is the `attr_accessor` method, which of course has built-in
192
+ support in YARD. However, frameworks and libraries often expose custom
193
+ methods that perform similar metaprogramming tasks, and it is often useful
194
+ to document their functionality in your application. Consider the `property`
195
+ method in a project like [DataMapper](http://datamapper.org), which creates
196
+ a typed attribute for a database model. The code might look like:
197
+
198
+ class Post
199
+ include DataMapper::Resource
200
+
201
+ property :title, String
202
+ end
203
+
204
+ As of version 0.7.0, YARD will automatically pick up on these basic methods if
205
+ you document them with a docstring. Therefore, simply adding some comments to
206
+ the code will cause it to generate documentation:
207
+
208
+ class Post
209
+ include DataMapper::Resource
210
+
211
+ # @return [String] the title property of the post
212
+ property :title, String
213
+ end
214
+
215
+ Note that YARD uses the first argument in the method call to determine the
216
+ method name. In some cases, this would not be the method name, and you would
217
+ need to declare it manually. You can do so with the `@method` tag:
218
+
219
+ # @method foo
220
+ create_a_foo_method
221
+
222
+ The @method tag can also accept a full method signature with parameters:
223
+
224
+ # @method foo(name, opts = {})
225
+ create_a_foo_method
226
+
227
+ You can also set visibility and scope, or modify the method signature with
228
+ extra tags. The following adds documentation for a private class method:
229
+
230
+ # @method foo(opts = {})
231
+ # The foo method!
232
+ # @scope class
233
+ # @visibility private
234
+ create_a_private_foo_class_method
235
+
236
+ Finally, you can tag a method as an attribute by replacing the @method
237
+ tag with @attribute. The @attribute tag allows for the flags [r], [w], or
238
+ [rw] to declare a readonly, writeonly, or readwrite attribute, respectively.
239
+
240
+ # @attribute [w]
241
+ # The writeonly foo attribute!
242
+ a_writeonly_attribute :foo
243
+
244
+ (Note that if the name can be automatically detected, you do not need to
245
+ specify it in the @method or @attribute tag)
246
+
247
+ However, you will notice a few drawbacks with this basic support:
248
+
249
+ 1. There is a fair bit of duplication in such documentation. Specifically, we
250
+ repeat the term String and title twice in the property example.
251
+ 2. We must write a code comment for this property to show up in the documentation.
252
+ If we do not write a comment, it is ignored.
253
+
254
+ ### Macros
255
+
256
+ Fortunately YARD 0.7.0 also adds macros, a powerful way to add support for
257
+ these DSL methods on the fly without writing extra plugins. Macros allow
258
+ you to interpolate arguments from the method call inside the docstring,
259
+ reducing duplication. If we re-wrote the `property` example from above
260
+ using a macro, it might look like:
261
+
262
+ class Post
263
+ include DataMapper::Resource
264
+
265
+ # @macro dm.property
266
+ # @return [$2] the $1 $0 of the post
267
+ property :title, String
268
+ end
269
+
270
+ (Note that $0 represents the method call, in this case `property`. The rest
271
+ are arguments in the method call.)
272
+
273
+ The above example is equivalent to the first version shown in the previous
274
+ section. There is also some extra benefit to using this macro, in that we
275
+ can re-apply it to any other property in our class by simply calling on
276
+ the macro. The following:
277
+
278
+ # @macro dm.property
279
+ property :view_count, Integer
280
+
281
+ Would be equivalent to:
282
+
283
+ # @return [Integer] the view_count property of the post
284
+ property :view_count, Integer
285
+
286
+ Finally, macros can be "attached" to method calls, allowing them to be implicitly
287
+ activated every time the method call is seen in the source code of the class,
288
+ or an inheriting class. By simply adding the `[attach]` flag, the macro
289
+ becomes implicit on future calls. All of the properties below get documented
290
+ by using this snippet:
291
+
292
+ class Post
293
+ include DataMapper::Resource
294
+
295
+ # @macro [attach] dm.property
296
+ # @return [$2] the $1 $0 of the post
297
+ property :title, String
298
+ property :view_count, Integer
299
+ property :email, String
300
+ end
301
+
302
+ You can read more about macros in the {file:docs/Tags.md Tags Overview} document.
303
+
304
+ ## Customized YARD Markup
305
+
306
+ YARD supports a special syntax to link to other code objects, URLs, files,
307
+ or embed docstrings between documents. This syntax has the general form
308
+ of `{Name OptionalTitle}` (where `OptionalTitle` can have spaces, but `Name`
309
+ cannot).
310
+
311
+ ### Linking Objects `{...}`
312
+
313
+ To link another "object" (class, method, module, etc.), use the format:
314
+
315
+ {ObjectName#method OPTIONAL_TITLE}
316
+ {Class::CONSTANT My constant's title}
317
+ {#method_inside_current_namespace}
318
+
319
+ Without an explicit title, YARD will use the relative path to the object as
320
+ the link name. Note that you can also use relative paths inside the object
321
+ path to refer to an object inside the same namespace as your current docstring.
322
+
323
+ Note that the `@see` tag automatically links its data. You should not use
324
+ the link syntax in this tag:
325
+
326
+ # @see #methodname <- Correct.
327
+ # @see {#methodname} <- Incorrect.
328
+
329
+ If you want to use a Hash, prefix the first { with "!":
330
+
331
+ # !{ :some_key => 'value' }
332
+
333
+ ### Linking URLs `{http://...}`
334
+
335
+ URLs are also linked using this `{...}` syntax:
336
+
337
+ {http://example.com Optional Title}
338
+ {mailto:email@example.com}
339
+
340
+ ### Linking Files `{file:...}`
341
+
342
+ Files can also be linked using this same syntax but by adding the `file:`
343
+ prefix to the object name. Files refer to extra readme files you added
344
+ via the command-line. Consider the following examples:
345
+
346
+ {file:docs/GettingStarted.md Getting Started}
347
+ {file:mypage.html Name#anchor}
348
+
349
+ As shown, you can also add an optional `#anchor` if the page is an HTML link.
350
+
351
+ ### Embedding Docstrings `{include:...}`
352
+
353
+ We saw the `(see ...)` syntax above, which allowed us to link an entire docstring
354
+ with another. Sometimes, however, we just want to copy docstring text without
355
+ tags. Using the same `{...}` syntax, but using the `include:` prefix, we can
356
+ embed a docstring (minus tags) at a specific point in the text.
357
+
358
+ # This class is cool
359
+ # @abstract
360
+ class Foo; end
361
+
362
+ # This is another class. {include:Foo} too!
363
+ class Bar; end
364
+
365
+ The docstring for Bar becomes:
366
+
367
+ "This is another class. This class is cool too!"
368
+
369
+ ### Embedding Files `{include:file:...}`
370
+
371
+ You can embed the contents of files using `{include:file:path/to/file}`,
372
+ similar to the `{include:OBJECT}` tag above. If the file uses a specific markup
373
+ type, it will be applied and embedded as marked up text. The following
374
+ shows how the tag can be used inside of comments:
375
+
376
+ # Here is an example of a highlighted Ruby file:
377
+ #
378
+ # {include:file:examples/test.rb}
379
+
380
+ ### Rendering Objects `{render:...}`
381
+
382
+ Entire objects can also be rendered in place in documentation. This can be
383
+ used for guide-style documentation which does not document the entire source
384
+ tree, but instead selectively renders important classes or methods. Consider
385
+ the following documentation inside of a README file:
386
+
387
+ = igLatinPay!
388
+
389
+ This library adds pig latin methods to the string class, allowing you
390
+ to transform sentences into pig latin.
391
+
392
+ {render:String#pig_latin}
393
+
394
+ You can also un-pig-latin-ify a word or sentence:
395
+
396
+ {render:String#de_pig_latin}
397
+
398
+ The above would render the methods in place inside the README document,
399
+ allowing you to summarize a small library in a single file.
400
+
401
+ <a name="using"></a>
402
+
403
+ ## Using YARD to Generate Documentation
404
+
405
+ ### `yard` Executable
406
+
407
+ YARD ships with a single executable aptly named `yard`. In addition to
408
+ generating standard documentation for your project, you would use this tool
409
+ if you wanted to:
410
+
411
+ * Document all installed gems
412
+ * Run a local documentation server
413
+ * Generate UML diagrams using [Graphviz][graphviz]
414
+ * View `ri`-style documentation
415
+ * Diff your documentation
416
+ * Analyze documentation statistics.
417
+
418
+ The following commands are available in YARD 0.6.x (see `yard help` for a
419
+ full list):
420
+
421
+ Usage: yard <command> [options]
422
+
423
+ Commands:
424
+ config Views or edits current global configuration
425
+ diff Returns the object diff of two gems or .yardoc files
426
+ doc Generates documentation
427
+ gems Builds YARD index for gems
428
+ graph Graphs class diagram using Graphviz
429
+ help Retrieves help for a command
430
+ ri A tool to view documentation in the console like `ri`
431
+ server Runs a local documentation server
432
+ stats Prints documentation statistics on a set of files
433
+
434
+ Note that `yardoc` is an alias for `yard doc`, and `yri` is an alias for
435
+ `yard ri`. These commands are maintained for backwards compatibility.
436
+
437
+ ### `.yardopts` Options File
438
+
439
+ Unless your documentation is very small, you'll end up needing to run `yardoc`
440
+ with many options. The `yardoc` tool will use the options found in this file.
441
+ It is recommended to check this in to your repository and distribute it with
442
+ your source. This file is placed at the root of your project (in the directory
443
+ you run `yardoc` from) and contains all of arguments you would otherwise pass
444
+ to the command-line tool. For instance, if you often type:
445
+
446
+ yardoc --no-private --protected app/**/*.rb - README LEGAL COPYING
447
+
448
+ You can place the following into your `.yardopts`:
449
+
450
+ --no-private --protected app/**/*.rb - README LEGAL COPYING
451
+
452
+ This way, you only need to type:
453
+
454
+ yardoc
455
+
456
+ Any extra switches passed to the command-line now will be appended to your
457
+ `.yardopts` options.
458
+
459
+ Note that options for `yardoc` are discussed in the {file:README.md README},
460
+ and a full overview of the `.yardopts` file can be found in {YARD::CLI::Yardoc}.
461
+
462
+ ### Documenting Extra Files
463
+
464
+ "Extra files" are extra guide style documents that help to give a brief overview
465
+ of how to use your library/framework, as well as any extra information that
466
+ might be vital for your users. The most common "extra file" is the README,
467
+ which is automatically detected by YARD if found in the root of your project
468
+ (any file starting with `README*`). You can specify extra files on the command
469
+ line (or in the `.yardopts` file) by listing them after the '-' separator:
470
+
471
+ yardoc lib/**/*.rb ext/**/*.c - LICENSE.txt
472
+
473
+ Note that the README will automatically be picked up, so you do not need to
474
+ specify it. If you don't want to modify the default file globs, you can ignore
475
+ the first set of arguments:
476
+
477
+ yardoc - LICENSE.txt
478
+
479
+ Below you can read about how to customize the look of these extra files, both
480
+ with markup and pretty titles.
481
+
482
+ #### Adding Meta-Data to Extra Files
483
+
484
+ You can add YARD-style `@tag` metadata to the top of any extra file if prefixed
485
+ by a `#` hash comment. YARD allows for arbitrary meta-data, but pays special
486
+ attention to the tags `@markup`, `@encoding`, and `@title`. Note that there
487
+ cannot be any whitespace before the tags. Here is an example of some tag data
488
+ in a README:
489
+
490
+ # @markup markdown
491
+ # @title The Best Library in the World!
492
+ # @author The Author Name
493
+
494
+ This is the best library you will ever meet. Lipsum ...
495
+
496
+ The `@markup` tag allows you to specify a markup format to use for the file,
497
+ including "markdown", "textile", "rdoc", "ruby", "text", "html", or "none"
498
+ (no markup). This can be used when the markup cannot be auto-detected using
499
+ the extension of the filename, if the file has no extension, or if you want
500
+ to override the auto-detection.
501
+
502
+ By using `@encoding` you can specify a non-standard encoding. Note that
503
+ `yardoc --charset` sets the global encoding (for all comments / files),
504
+ so if you are using unicode across all your files, you can specify it there.
505
+ Using the `@encoding` tag might be used to override the default global
506
+ charset, say, if you had a localized `README.jp` file with SJIS data.
507
+ Also note that this only affects Ruby 1.9.x, as Ruby 1.8 is not properly
508
+ encoding aware.
509
+
510
+ The `@title` tag allows you to specify a full title name for the document.
511
+ By default, YARD uses the filename as the title of the document and lists
512
+ it in the file list in the index and file menu. In some cases, the file name
513
+ might not be descriptive enough, so YARD allows you to specify a full title:
514
+
515
+ contents of TITLE.txt:
516
+ # @title The Title of The Document
517
+
518
+ Currently all other meta-data is hidden from view, though accessible
519
+ programmatically using the {YARD::CodeObjects::ExtraFileObject} class.
520
+
521
+ <a name="config"></a>
522
+
523
+ ## Configuring YARD
524
+
525
+ YARD (0.6.2+) supports a global configuration file stored in `~/.yard/config`.
526
+ This file is stored as a YAML file and can contain arbitrary keys and values
527
+ that can be used by YARD at run-time. YARD defines specific keys that are used
528
+ to control various features, and they are listed in {YARD::Config::DEFAULT_CONFIG_OPTIONS}.
529
+ A sample configuration file might look like:
530
+
531
+ :load_plugins: false
532
+ :ignored_plugins:
533
+ - my_plugin
534
+ - my_other_plugin
535
+ :autoload_plugins:
536
+ - my_autoload_plugin
537
+ :safe_mode: false
538
+
539
+ You can also view and edit these configuration options from the commandline
540
+ using the `yard config` command. To list your configuration, use `yard config --list`.
541
+ To view a key, use `yard config ITEM`, and to set it, use `yard config ITEM VALUE`.
542
+
543
+ <a name="extending"></a>
544
+
545
+ ## Extending YARD
546
+
547
+ There are many ways to extend YARD to support non-standard Ruby syntax (DSLs),
548
+ add new meta-data tags or programmatically access the intermediate metadata
549
+ and documentation from code. An overview of YARD's full architecture can be
550
+ found in the {file:docs/Overview.md} document.
551
+
552
+ For information on adding support for Ruby DSLs, see the {file:docs/Handlers.md}
553
+ and {file:docs/Parser.md} architecture documents.
554
+
555
+ For information on adding extra tags, see {file:docs/Tags.md}.
556
+
557
+ For information on accessing the data YARD stores about your documentation,
558
+ look at the {file:docs/CodeObjects.md} architecture document.
559
+
560
+ <a name="templating"></a>
561
+
562
+ ## Templating YARD
563
+
564
+ In many cases you may want to change the style of YARD's templates or add extra
565
+ information after extending it. The {file:docs/Templates.md} architecture
566
+ document covers the basics of how YARD's templating system works.
567
+
568
+ <a name="plugins"></a>
569
+
570
+ ## Plugin Support
571
+
572
+ As of 0.4, YARD will automatically load any gem named with the prefix of
573
+ `yard-` or `yard_`. You can use this to load a custom plugin that
574
+ [extend](#extending) YARD's functionality. A good example of this
575
+ is the [yard-rspec][yard-rspec] plugin, which adds [RSpec][rspec] specifications
576
+ to your documentation (`yardoc` and `yri`). You can try it out by installing
577
+ the gem or cloning the project and trying the example:
578
+
579
+ $ gem install yard-rspec -s http://gemcutter.org
580
+ or
581
+ $ git clone git://github.com/lsegal/yard-spec-plugin
582
+
583
+ YARD also provides a way to temporarily disable plugins on a per-user basis.
584
+ To disable a plugin create the file `~/.yard/ignored_plugins` with a list
585
+ of plugin names separated by newlines. Note that the `.yard` directory might
586
+ not exist, so you may need to create it.
587
+
588
+ [graphviz]:http://www.graphviz.org
589
+ [yard-rspec]:http://github.com/lsegal/yard-spec-plugin
590
+ [rspec]:http://rspec.info