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,193 @@
1
+ require 'rbconfig'
2
+
3
+ module YARD
4
+ module CLI
5
+ # A tool to view documentation in the console like `ri`
6
+ class YRI < Command
7
+ # The location in {YARD::CONFIG_DIR} where the YRI cache file is loaded
8
+ # from.
9
+ CACHE_FILE = File.expand_path('~/.yard/yri_cache')
10
+
11
+ # A file containing all paths, delimited by newlines, to search for
12
+ # yardoc databases.
13
+ # @since 0.5.1
14
+ SEARCH_PATHS_FILE = File.expand_path('~/.yard/yri_search_paths')
15
+
16
+ # Default search paths that should be loaded dynamically into YRI. These paths
17
+ # take precedence over all other paths ({SEARCH_PATHS_FILE} and RubyGems
18
+ # paths). To add a path, call:
19
+ #
20
+ # DEFAULT_SEARCH_PATHS.push("/path/to/.yardoc")
21
+ #
22
+ # @return [Array<String>] a list of extra search paths
23
+ # @since 0.6.0
24
+ DEFAULT_SEARCH_PATHS = []
25
+
26
+ # Helper method to run the utility on an instance.
27
+ # @see #run
28
+ def self.run(*args) new.run(*args) end
29
+
30
+ def initialize
31
+ super
32
+ @cache = {}
33
+ @search_paths = []
34
+ add_default_paths
35
+ add_gem_paths
36
+ load_cache
37
+ @search_paths.uniq!
38
+ end
39
+
40
+ def description
41
+ "A tool to view documentation in the console like `ri`"
42
+ end
43
+
44
+ # Runs the command-line utility.
45
+ #
46
+ # @example
47
+ # YRI.new.run('String#reverse')
48
+ # @param [Array<String>] args each tokenized argument
49
+ def run(*args)
50
+ optparse(*args)
51
+
52
+ if ::RbConfig::CONFIG['host_os'] =~ /mingw|win32/
53
+ @serializer ||= YARD::Serializers::StdoutSerializer.new
54
+ else
55
+ @serializer ||= YARD::Serializers::ProcessSerializer.new('less')
56
+ end
57
+
58
+ if @name.nil? || @name.strip.empty?
59
+ print_usage
60
+ exit(1)
61
+ elsif object = find_object(@name)
62
+ print_object(object)
63
+ else
64
+ STDERR.puts "No documentation for `#{@name}'"
65
+ exit(1)
66
+ end
67
+ end
68
+
69
+ protected
70
+
71
+ # Prints the command usage
72
+ # @return [void]
73
+ # @since 0.5.6
74
+ def print_usage
75
+ puts "Usage: yri [options] <Path to object>"
76
+ puts "See yri --help for more options."
77
+ end
78
+
79
+ # Caches the .yardoc file where an object can be found in the {CACHE_FILE}
80
+ # @return [void]
81
+ def cache_object(name, path)
82
+ return if path == Registry.yardoc_file
83
+ @cache[name] = path
84
+
85
+ File.open!(CACHE_FILE, 'w') do |file|
86
+ @cache.each do |key, value|
87
+ file.puts("#{key} #{value}")
88
+ end
89
+ end
90
+ end
91
+
92
+ # @param [CodeObjects::Base] object the object to print.
93
+ # @return [String] the formatted output for an object.
94
+ def print_object(object)
95
+ if object.type == :method && object.is_alias?
96
+ tmp = P(object.namespace, (object.scope == :instance ? "#" : "") +
97
+ object.namespace.aliases[object].to_s)
98
+ object = tmp unless YARD::CodeObjects::Proxy === tmp
99
+ end
100
+ object.format(:serializer => @serializer)
101
+ end
102
+
103
+ # Locates an object by name starting in the cached paths and then
104
+ # searching through any search paths.
105
+ #
106
+ # @param [String] name the full name of the object
107
+ # @return [CodeObjects::Base] an object if found
108
+ # @return [nil] if no object is found
109
+ def find_object(name)
110
+ @search_paths.unshift(@cache[name]) if @cache[name]
111
+ @search_paths.unshift(Registry.yardoc_file)
112
+
113
+ log.debug "Searching for #{name} in search paths"
114
+ @search_paths.each do |path|
115
+ next unless File.exist?(path)
116
+ log.debug "Searching for #{name} in #{path}..."
117
+ Registry.load(path)
118
+ obj = Registry.at(name)
119
+ if obj
120
+ cache_object(name, path)
121
+ return obj
122
+ end
123
+ end
124
+ nil
125
+ end
126
+
127
+ private
128
+
129
+ # Loads {CACHE_FILE}
130
+ # @return [void]
131
+ def load_cache
132
+ return unless File.file?(CACHE_FILE)
133
+ File.readlines(CACHE_FILE).each do |line|
134
+ line = line.strip.split(/\s+/)
135
+ @cache[line[0]] = line[1]
136
+ end
137
+ end
138
+
139
+ # Adds all RubyGems yardoc files to search paths
140
+ # @return [void]
141
+ def add_gem_paths
142
+ require 'rubygems'
143
+ gem_paths = []
144
+ Gem.source_index.find_name('').each do |spec|
145
+ if yfile = Registry.yardoc_file_for_gem(spec.name)
146
+ if spec.name =~ /^yard-doc-/
147
+ gem_paths.unshift(yfile)
148
+ else
149
+ gem_paths.push(yfile)
150
+ end
151
+ end
152
+ end
153
+ @search_paths += gem_paths
154
+ rescue LoadError
155
+ end
156
+
157
+ # Adds paths in {SEARCH_PATHS_FILE}
158
+ # @since 0.5.1
159
+ def add_default_paths
160
+ @search_paths.push(*DEFAULT_SEARCH_PATHS)
161
+ return unless File.file?(SEARCH_PATHS_FILE)
162
+ paths = File.readlines(SEARCH_PATHS_FILE).map {|l| l.strip }
163
+ @search_paths.push(*paths)
164
+ end
165
+
166
+ # Parses commandline options.
167
+ # @param [Array<String>] args each tokenized argument
168
+ def optparse(*args)
169
+ opts = OptionParser.new
170
+ opts.banner = "Usage: yri [options] <Path to object>"
171
+ opts.separator "Example: yri String#gsub"
172
+ opts.separator ""
173
+ opts.separator "General Options:"
174
+
175
+ opts.on('-b', '--db FILE', 'Use a specified .yardoc db to search in') do |yfile|
176
+ @search_paths.unshift(yfile)
177
+ end
178
+
179
+ opts.on('-T', '--no-pager', 'No pager') do
180
+ @serializer = YARD::Serializers::StdoutSerializer.new
181
+ end
182
+
183
+ opts.on('-p PAGER', '--pager') do |pager|
184
+ @serializer = YARD::Serializers::ProcessSerializer.new(pager)
185
+ end
186
+
187
+ common_options(opts)
188
+ parse_options(opts, args)
189
+ @name = args.first
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,513 @@
1
+ module YARD
2
+ module CodeObjects
3
+ # A list of code objects. This array acts like a set (no unique items)
4
+ # but also disallows any {Proxy} objects from being added.
5
+ class CodeObjectList < Array
6
+ # Creates a new object list associated with a namespace
7
+ #
8
+ # @param [NamespaceObject] owner the namespace the list should be associated with
9
+ # @return [CodeObjectList]
10
+ def initialize(owner = Registry.root)
11
+ @owner = owner
12
+ end
13
+
14
+ # Adds a new value to the list
15
+ #
16
+ # @param [Base] value a code object to add
17
+ # @return [CodeObjectList] self
18
+ def push(value)
19
+ value = Proxy.new(@owner, value) if value.is_a?(String) || value.is_a?(Symbol)
20
+ if value.is_a?(CodeObjects::Base) || value.is_a?(Proxy)
21
+ super(value) unless include?(value)
22
+ else
23
+ raise ArgumentError, "#{value.class} is not a valid CodeObject"
24
+ end
25
+ self
26
+ end
27
+ alias_method :<<, :push
28
+ end
29
+
30
+
31
+ # Namespace separator
32
+ NSEP = '::'
33
+
34
+ # Regex-quoted namespace separator
35
+ NSEPQ = NSEP
36
+
37
+ # Instance method separator
38
+ ISEP = '#'
39
+
40
+ # Regex-quoted instance method separator
41
+ ISEPQ = ISEP
42
+
43
+ # Class method separator
44
+ CSEP = '.'
45
+
46
+ # Regex-quoted class method separator
47
+ CSEPQ = Regexp.quote CSEP
48
+
49
+ # Regular expression to match constant name
50
+ CONSTANTMATCH = /[A-Z]\w*/
51
+
52
+ # Regular expression to match namespaces (const A or complex path A::B)
53
+ NAMESPACEMATCH = /(?:(?:#{NSEPQ})?#{CONSTANTMATCH})+/
54
+
55
+ # Regular expression to match a method name
56
+ METHODNAMEMATCH = /[a-zA-Z_]\w*[!?=]?|[-+~]\@|<<|>>|=~|===?|<=>|[<>]=?|\*\*|[-\/+%^&*~`|]|\[\]=?/
57
+
58
+ # Regular expression to match a fully qualified method def (self.foo, Class.foo).
59
+ METHODMATCH = /(?:(?:#{NAMESPACEMATCH}|[a-z]\w*)\s*(?:#{CSEPQ}|#{NSEPQ})\s*)?#{METHODNAMEMATCH}/
60
+
61
+ # All builtin Ruby exception classes for inheritance tree.
62
+ BUILTIN_EXCEPTIONS = ["SecurityError", "Exception", "NoMethodError", "FloatDomainError",
63
+ "IOError", "TypeError", "NotImplementedError", "SystemExit", "Interrupt", "SyntaxError",
64
+ "RangeError", "NoMemoryError", "ArgumentError", "ThreadError", "EOFError", "RuntimeError",
65
+ "ZeroDivisionError", "StandardError", "LoadError", "NameError", "LocalJumpError", "SystemCallError",
66
+ "SignalException", "ScriptError", "SystemStackError", "RegexpError", "IndexError"]
67
+ # All builtin Ruby classes for inheritance tree.
68
+ # @note MatchingData is a 1.8.x legacy class
69
+ BUILTIN_CLASSES = ["TrueClass", "Array", "Dir", "Struct", "UnboundMethod", "Object", "Fixnum", "Float",
70
+ "ThreadGroup", "MatchingData", "MatchData", "Proc", "Binding", "Class", "Time", "Bignum", "NilClass", "Symbol",
71
+ "Numeric", "String", "Data", "MatchData", "Regexp", "Integer", "File", "IO", "Range", "FalseClass",
72
+ "Method", "Continuation", "Thread", "Hash", "Module"] + BUILTIN_EXCEPTIONS
73
+ # All builtin Ruby modules for mixin handling.
74
+ BUILTIN_MODULES = ["ObjectSpace", "Signal", "Marshal", "Kernel", "Process", "GC", "FileTest", "Enumerable",
75
+ "Comparable", "Errno", "Precision", "Math"]
76
+ # All builtin Ruby classes and modules.
77
+ BUILTIN_ALL = BUILTIN_CLASSES + BUILTIN_MODULES
78
+
79
+ # Hash of {BUILTIN_EXCEPTIONS} as keys and true as value (for O(1) lookups)
80
+ BUILTIN_EXCEPTIONS_HASH = BUILTIN_EXCEPTIONS.inject({}) {|h,n| h.update(n => true) }
81
+
82
+ # +Base+ is the superclass of all code objects recognized by YARD. A code
83
+ # object is any entity in the Ruby language (class, method, module). A
84
+ # DSL might subclass +Base+ to create a new custom object representing
85
+ # a new entity type.
86
+ #
87
+ # == Registry Integration
88
+ # Any created object associated with a namespace is immediately registered
89
+ # with the registry. This allows the Registry to act as an identity map
90
+ # to ensure that no object is represented by more than one Ruby object
91
+ # in memory. A unique {#path} is essential for this identity map to work
92
+ # correctly.
93
+ #
94
+ # == Custom Attributes
95
+ # Code objects allow arbitrary custom attributes to be set using the
96
+ # {#[]=} assignment method.
97
+ #
98
+ # == Namespaces
99
+ # There is a special type of object called a "namespace". These are subclasses
100
+ # of the {NamespaceObject} and represent Ruby entities that can have
101
+ # objects defined within them. Classically these are modules and classes,
102
+ # though a DSL might create a custom {NamespaceObject} to describe a
103
+ # specific set of objects.
104
+ #
105
+ # @abstract This class should not be used directly. Instead, create a
106
+ # subclass that implements {#path}, {#sep} or {#type}.
107
+ # @see Registry
108
+ # @see #path
109
+ # @see #[]=
110
+ # @see NamespaceObject
111
+ class Base
112
+ # The files the object was defined in. To add a file, use {#add_file}.
113
+ # @return [Array<String>] a list of files
114
+ # @see #add_file
115
+ attr_reader :files
116
+
117
+ # The namespace the object is defined in. If the object is in the
118
+ # top level namespace, this is {Registry.root}
119
+ # @return [NamespaceObject] the namespace object
120
+ attr_reader :namespace
121
+
122
+ # The source code associated with the object
123
+ # @return [String, nil] source, if present, or nil
124
+ attr_reader :source
125
+
126
+ # Language of the source code associated with the object. Defaults to
127
+ # +:ruby+.
128
+ #
129
+ # @return [Symbol] the language type
130
+ attr_accessor :source_type
131
+
132
+ # The one line signature representing an object. For a method, this will
133
+ # be of the form "def meth(arguments...)". This is usually the first
134
+ # source line.
135
+ #
136
+ # @return [String] a line of source
137
+ attr_accessor :signature
138
+
139
+ # The documentation string associated with the object
140
+ # @return [Docstring] the documentation string
141
+ attr_reader :docstring
142
+
143
+ # Marks whether or not the method is conditionally defined at runtime
144
+ # @return [Boolean] true if the method is conditionally defined at runtime
145
+ attr_accessor :dynamic
146
+
147
+ # @return [String] the group this object is associated with
148
+ # @since 0.6.0
149
+ attr_accessor :group
150
+
151
+ # Is the object defined conditionally at runtime?
152
+ # @see #dynamic
153
+ def dynamic?; @dynamic end
154
+
155
+ # @return [Symbol] the visibility of an object (:public, :private, :protected)
156
+ attr_accessor :visibility
157
+ undef visibility=
158
+ def visibility=(v) @visibility = v.to_sym end
159
+
160
+ class << self
161
+ # Allocates a new code object
162
+ # @return [Base]
163
+ # @see #initialize
164
+ def new(namespace, name, *args, &block)
165
+ raise ArgumentError, "invalid empty object name" if name.to_s.empty?
166
+ if namespace.is_a?(ConstantObject)
167
+ namespace = Proxy.new(namespace.namespace, namespace.value)
168
+ end
169
+
170
+ if name.to_s[0,2] == NSEP
171
+ name = name.to_s[2..-1]
172
+ namespace = Registry.root
173
+ elsif name =~ /(?:#{NSEPQ})([^:]+)$/
174
+ return new(Proxy.new(namespace, $`), $1, *args, &block)
175
+ end
176
+
177
+ obj = super(namespace, name, *args)
178
+ existing_obj = Registry.at(obj.path)
179
+ obj = existing_obj if existing_obj && existing_obj.class == self
180
+ yield(obj) if block_given?
181
+ obj
182
+ end
183
+
184
+ # Compares the class with subclasses
185
+ #
186
+ # @param [Object] other the other object to compare classes with
187
+ # @return [Boolean] true if other is a subclass of self
188
+ def ===(other)
189
+ other.is_a?(self)
190
+ end
191
+ end
192
+
193
+ # Creates a new code object
194
+ #
195
+ # @example Create a method in the root namespace
196
+ # CodeObjects::Base.new(:root, '#method') # => #<yardoc method #method>
197
+ # @example Create class Z inside namespace X::Y
198
+ # CodeObjects::Base.new(P("X::Y"), :Z) # or
199
+ # CodeObjects::Base.new(Registry.root, "X::Y")
200
+ # @param [NamespaceObject] namespace the namespace the object belongs in,
201
+ # {Registry.root} or :root should be provided if it is associated with
202
+ # the top level namespace.
203
+ # @param [Symbol, String] name the name (or complex path) of the object.
204
+ # @yield [self] a block to perform any extra initialization on the object
205
+ # @yieldparam [Base] self the newly initialized code object
206
+ # @return [Base] the newly created object
207
+ def initialize(namespace, name, *args, &block)
208
+ if namespace && namespace != :root &&
209
+ !namespace.is_a?(NamespaceObject) && !namespace.is_a?(Proxy)
210
+ raise ArgumentError, "Invalid namespace object: #{namespace}"
211
+ end
212
+
213
+ @files = []
214
+ @current_file_has_comments = false
215
+ @name = name.to_sym
216
+ @source_type = :ruby
217
+ @visibility = :public
218
+ @tags = []
219
+ @docstring = Docstring.new('', self)
220
+ @namespace = nil
221
+ self.namespace = namespace
222
+ yield(self) if block_given?
223
+ end
224
+
225
+ # The name of the object
226
+ # @param [Boolean] prefix whether to show a prefix. Implement
227
+ # this in a subclass to define how the prefix is showed.
228
+ # @return [Symbol] if prefix is false, the symbolized name
229
+ # @return [String] if prefix is true, prefix + the name as a String.
230
+ # This must be implemented by the subclass.
231
+ def name(prefix = false)
232
+ prefix ? @name.to_s : @name
233
+ end
234
+
235
+ # Associates a file with a code object, optionally adding the line where it was defined.
236
+ # By convention, '<stdin>' should be used to associate code that comes form standard input.
237
+ #
238
+ # @param [String] file the filename ('<stdin>' for standard input)
239
+ # @param [Fixnum, nil] line the line number where the object lies in the file
240
+ # @param [Boolean] has_comments whether or not the definition has comments associated. This
241
+ # will allow {#file} to return the definition where the comments were made instead
242
+ # of any empty definitions that might have been parsed before (module namespaces for instance).
243
+ def add_file(file, line = nil, has_comments = false)
244
+ raise(ArgumentError, "file cannot be nil or empty") if file.nil? || file == ''
245
+ obj = [file.to_s, line]
246
+ return if files.include?(obj)
247
+ if has_comments && !@current_file_has_comments
248
+ @current_file_has_comments = true
249
+ @files.unshift(obj)
250
+ else
251
+ @files << obj # back of the line
252
+ end
253
+ end
254
+
255
+ # Returns the filename the object was first parsed at, taking
256
+ # definitions with docstrings first.
257
+ #
258
+ # @return [String] a filename
259
+ def file
260
+ @files.first ? @files.first[0] : nil
261
+ end
262
+
263
+ # Returns the line the object was first parsed at (or nil)
264
+ #
265
+ # @return [Fixnum] the line where the object was first defined.
266
+ # @return [nil] if there is no line associated with the object
267
+ def line
268
+ @files.first ? @files.first[1] : nil
269
+ end
270
+
271
+ # Tests if another object is equal to this, including a proxy
272
+ # @param [Base, Proxy] other if other is a {Proxy}, tests if
273
+ # the paths are equal
274
+ # @return [Boolean] whether or not the objects are considered the same
275
+ def equal?(other)
276
+ if other.is_a?(Base) || other.is_a?(Proxy)
277
+ path == other.path
278
+ else
279
+ super
280
+ end
281
+ end
282
+ alias == equal?
283
+ alias eql? equal?
284
+
285
+ # @return [Integer] the object's hash value (for equality checking)
286
+ def hash; path.hash end
287
+
288
+ # @return [nil] this object does not turn into an array
289
+ def to_ary; nil end
290
+
291
+ # Accesses a custom attribute on the object
292
+ # @param [#to_s] key the name of the custom attribute
293
+ # @return [Object, nil] the custom attribute or nil if not found.
294
+ # @see #[]=
295
+ def [](key)
296
+ if respond_to?(key)
297
+ send(key)
298
+ elsif instance_variable_defined?("@#{key}")
299
+ instance_variable_get("@#{key}")
300
+ end
301
+ end
302
+
303
+ # Sets a custom attribute on the object
304
+ # @param [#to_s] key the name of the custom attribute
305
+ # @param [Object] value the value to associate
306
+ # @return [void]
307
+ # @see #[]
308
+ def []=(key, value)
309
+ if respond_to?("#{key}=")
310
+ send("#{key}=", value)
311
+ else
312
+ instance_variable_set("@#{key}", value)
313
+ end
314
+ end
315
+
316
+ # @overload dynamic_attr_name
317
+ # @return the value of attribute named by the method attribute name
318
+ # @raise [NoMethodError] if no method or custom attribute exists by
319
+ # the attribute name
320
+ # @see #[]
321
+ # @overload dynamic_attr_name=(value)
322
+ # @param value a value to set
323
+ # @return +value+
324
+ # @see #[]=
325
+ def method_missing(meth, *args, &block)
326
+ if meth.to_s =~ /=$/
327
+ self[meth.to_s[0..-2]] = args.first
328
+ elsif instance_variable_get("@#{meth}")
329
+ self[meth]
330
+ else
331
+ super
332
+ end
333
+ end
334
+
335
+ # Attaches source code to a code object with an optional file location
336
+ #
337
+ # @param [#source, String] statement
338
+ # the +Parser::Statement+ holding the source code or the raw source
339
+ # as a +String+ for the definition of the code object only (not the block)
340
+ def source=(statement)
341
+ if statement.respond_to?(:source)
342
+ self.signature = statement.first_line
343
+ @source = format_source(statement.source.strip)
344
+ else
345
+ @source = format_source(statement.to_s)
346
+ end
347
+ end
348
+
349
+ def docstring
350
+ return @docstring if !@docstring_extra
351
+ case @docstring
352
+ when Proxy
353
+ return @docstring_extra
354
+ when Base
355
+ @docstring = @docstring.docstring + @docstring_extra
356
+ @docstring_extra = nil
357
+ end
358
+ @docstring
359
+ end
360
+
361
+ # Attaches a docstring to a code object by parsing the comments attached to the statement
362
+ # and filling the {#tags} and {#docstring} methods with the parsed information.
363
+ #
364
+ # @param [String, Array<String>, Docstring] comments
365
+ # the comments attached to the code object to be parsed
366
+ # into a docstring and meta tags.
367
+ def docstring=(comments)
368
+ if comments =~ /\A\s*\(see (\S+)\s*\)(?:\s|$)/
369
+ path, extra = $1, $'
370
+ @docstring_extra = Docstring.new(extra, self)
371
+ @docstring = Proxy.new(namespace, path)
372
+ else
373
+ @docstring_extra = nil
374
+ @docstring = Docstring === comments ? comments : Docstring.new(comments, self)
375
+ end
376
+ end
377
+
378
+ # Default type is the lowercase class name without the "Object" suffix.
379
+ # Override this method to provide a custom object type
380
+ #
381
+ # @return [Symbol] the type of code object this represents
382
+ def type
383
+ self.class.name.split(/#{NSEPQ}/).last.gsub(/Object$/, '').downcase.to_sym
384
+ end
385
+
386
+ # Represents the unique path of the object. The default implementation
387
+ # joins the path of {#namespace} with {#name} via the value of {#sep}.
388
+ # Custom code objects should ensure that the path is unique to the code
389
+ # object by either overriding {#sep} or this method.
390
+ #
391
+ # @example The path of an instance method
392
+ # MethodObject.new(P("A::B"), :c).path # => "A::B#c"
393
+ # @return [String] the unique path of the object
394
+ # @see #sep
395
+ def path
396
+ @path ||= if parent && !parent.root?
397
+ [parent.path, name.to_s].join(sep)
398
+ else
399
+ name.to_s
400
+ end
401
+ end
402
+ alias_method :to_s, :path
403
+
404
+ # @param [Base, String] other another code object (or object path)
405
+ # @return [String] the shortest relative path from this object to +other+
406
+ # @since 0.5.3
407
+ def relative_path(other)
408
+ other = Registry.at(other) if String === other && Registry.at(other)
409
+ same_parent = false
410
+ if other.respond_to?(:path)
411
+ same_parent = other.parent == parent
412
+ other = other.path
413
+ end
414
+ return other unless namespace
415
+ common = [path, other].join(" ").match(/^(\S*)\S*(?: \1\S*)*$/)[1]
416
+ common = path unless common =~ /(\.|::|#)$/
417
+ common = common.sub(/(\.|::|#)[^:#\.]*?$/, '') if same_parent
418
+ if %w(. :).include?(common[-1,1]) || other[common.size,1] == '#'
419
+ suffix = ''
420
+ else
421
+ suffix = '(::|\.)'
422
+ end
423
+ result = other.sub(/^#{Regexp.quote common}#{suffix}/, '')
424
+ result.empty? ? other : result
425
+ end
426
+
427
+ # Renders the object using the {Templates::Engine templating system}.
428
+ #
429
+ # @example Formats a class in plaintext
430
+ # puts P('MyClass').format
431
+ # @example Formats a method in html with rdoc markup
432
+ # puts P('MyClass#meth').format(:format => :html, :markup => :rdoc)
433
+ # @param [Hash] options a set of options to pass to the template
434
+ # @option options [Symbol] :format (:text) :html, :text or another output format
435
+ # @option options [Symbol] :template (:default) a specific template to use
436
+ # @option options [Symbol] :markup (nil) the markup type (:rdoc, :markdown, :textile)
437
+ # @option options [Serializers::Base] :serializer (nil) see Serializers
438
+ # @return [String] the rendered template
439
+ # @see Templates::Engine#render
440
+ def format(options = {})
441
+ options.merge!(:object => self)
442
+ Templates::Engine.render(options)
443
+ end
444
+
445
+ # Inspects the object, returning the type and path
446
+ # @return [String] a string describing the object
447
+ def inspect
448
+ "#<yardoc #{type} #{path}>"
449
+ end
450
+
451
+ # Sets the namespace the object is defined in.
452
+ #
453
+ # @param [NamespaceObject, :root, nil] obj the new namespace (:root
454
+ # for {Registry.root}). If obj is nil, the object is unregistered
455
+ # from the Registry.
456
+ def namespace=(obj)
457
+ if @namespace
458
+ @namespace.children.delete(self)
459
+ Registry.delete(self)
460
+ end
461
+
462
+ @namespace = (obj == :root ? Registry.root : obj)
463
+
464
+ if @namespace
465
+ reg_obj = Registry.at(path)
466
+ return if reg_obj && reg_obj.class == self.class
467
+ @namespace.children << self unless @namespace.is_a?(Proxy)
468
+ Registry.register(self)
469
+ end
470
+ end
471
+
472
+ alias_method :parent, :namespace
473
+ alias_method :parent=, :namespace=
474
+
475
+ # Gets a tag from the {#docstring}
476
+ # @see Docstring#tag
477
+ def tag(name); docstring.tag(name) end
478
+
479
+ # Gets a list of tags from the {#docstring}
480
+ # @see Docstring#tags
481
+ def tags(name = nil); docstring.tags(name) end
482
+
483
+ # Tests if the {#docstring} has a tag
484
+ # @see Docstring#has_tag?
485
+ def has_tag?(name); docstring.has_tag?(name) end
486
+
487
+ # @return whether or not this object is a RootObject
488
+ def root?; false end
489
+
490
+ protected
491
+
492
+ # Override this method with a custom component separator. For instance,
493
+ # {MethodObject} implements sep as '#' or '.' (depending on if the
494
+ # method is instance or class respectively). {#path} depends on this
495
+ # value to generate the full path in the form: namespace.path + sep + name
496
+ #
497
+ # @return [String] the component that separates the namespace path
498
+ # and the name (default is {NSEP})
499
+ def sep; NSEP end
500
+
501
+ # Formats source code by removing leading indentation
502
+ #
503
+ # @param [String] source the source code to format
504
+ # @return [String] formatted source
505
+ def format_source(source)
506
+ source.chomp!
507
+ last = source.split(/\r?\n/).last
508
+ indent = last ? last[/^([ \t]*)/, 1].length : 0
509
+ source.gsub(/^[ \t]{#{indent}}/, '')
510
+ end
511
+ end
512
+ end
513
+ end