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,24 @@
1
+ # Handles 'private', 'protected', and 'public' calls.
2
+ class YARD::Handlers::Ruby::VisibilityHandler < YARD::Handlers::Ruby::Base
3
+ handles method_call(:private)
4
+ handles method_call(:protected)
5
+ handles method_call(:public)
6
+ namespace_only
7
+
8
+ process do
9
+ return if (ident = statement.jump(:ident)) == statement
10
+ case statement.type
11
+ when :var_ref, :vcall
12
+ self.visibility = ident.first
13
+ when :fcall, :command
14
+ statement[1].traverse do |node|
15
+ case node.type
16
+ when :symbol; source = node.first.source
17
+ when :string_content; source = node.source
18
+ else next
19
+ end
20
+ MethodObject.new(namespace, source, scope) {|o| o.visibility = ident.first }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,30 @@
1
+ # Handles 'yield' calls
2
+ class YARD::Handlers::Ruby::YieldHandler < YARD::Handlers::Ruby::Base
3
+ handles :yield, :yield0
4
+
5
+ process do
6
+ return unless owner.is_a?(MethodObject) # Only methods yield
7
+ return if owner.has_tag? :yield # Don't override yield tags
8
+ return if owner.has_tag? :yieldparam # Same thing.
9
+
10
+ yieldtag = YARD::Tags::Tag.new(:yield, "", [])
11
+
12
+ if statement.type == :yield
13
+ statement.jump(:list).children.each do |item|
14
+ if item == s(:var_ref, s(:kw, "self"))
15
+ yieldtag.types << '_self'
16
+ owner.docstring.add_tag YARD::Tags::Tag.new(:yieldparam,
17
+ "the object that the method was called on", owner.namespace.path, '_self')
18
+ elsif item == s(:zsuper)
19
+ yieldtag.types << '_super'
20
+ owner.docstring.add_tag YARD::Tags::Tag.new(:yieldparam,
21
+ "the result of the method from the superclass", nil, '_super')
22
+ else
23
+ yieldtag.types << item.source
24
+ end
25
+ end
26
+ end
27
+
28
+ owner.docstring.add_tag(yieldtag) unless yieldtag.types.empty?
29
+ end
30
+ end
@@ -0,0 +1,77 @@
1
+ require 'logger'
2
+
3
+ module YARD
4
+ # Handles console logging for info, warnings and errors.
5
+ # Uses the stdlib Logger class in Ruby for all the backend logic.
6
+ class Logger < ::Logger
7
+ attr_writer :show_backtraces
8
+ def show_backtraces; @show_backtraces || level == DEBUG end
9
+
10
+ # The logger instance
11
+ # @return [Logger] the logger instance
12
+ def self.instance(pipe = STDERR)
13
+ @logger ||= new(pipe)
14
+ end
15
+
16
+ # Creates a new logger
17
+ def initialize(*args)
18
+ super
19
+ self.show_backtraces = true
20
+ self.level = WARN
21
+ self.formatter = method(:format_log)
22
+ end
23
+
24
+ # Changes the debug level to DEBUG if $DEBUG is set
25
+ # and writes a debugging message.
26
+ def debug(*args)
27
+ self.level = DEBUG if $DEBUG
28
+ super
29
+ end
30
+
31
+ # Prints the backtrace +exc+ to the logger as error data.
32
+ #
33
+ # @param [Array<String>] exc the backtrace list
34
+ # @return [void]
35
+ def backtrace(exc)
36
+ return unless show_backtraces
37
+ error "#{exc.class.class_name}: #{exc.message}"
38
+ error "Stack trace:" +
39
+ exc.backtrace[0..5].map {|x| "\n\t#{x}" }.join + "\n"
40
+ end
41
+
42
+ # Warns that the Ruby environment does not support continuations. Applies
43
+ # to JRuby, Rubinius and MacRuby. This warning will only display once
44
+ # per Ruby process.
45
+ #
46
+ # @return [void]
47
+ def warn_no_continuations
48
+ return if CONTINUATIONS_SUPPORTED
49
+ return if $NO_CONTINUATION_WARNING
50
+ $NO_CONTINUATION_WARNING = true
51
+ warn "JRuby/MacRuby/Rubinius do not implement Kernel#callcc and cannot " +
52
+ "load files in order. You must specify the correct order manually."
53
+ end
54
+
55
+ # Sets the logger level for the duration of the block
56
+ #
57
+ # @example
58
+ # log.enter_level(Logger::ERROR) do
59
+ # YARD.parse_string "def x; end"
60
+ # end
61
+ # @param [Fixnum] new_level the logger level for the duration of the block.
62
+ # values can be found in Ruby's Logger class.
63
+ # @yield the block with the logger temporarily set to +new_level+
64
+ def enter_level(new_level = level, &block)
65
+ old_level, self.level = level, new_level
66
+ yield
67
+ self.level = old_level
68
+ end
69
+
70
+ private
71
+
72
+ # Log format (from Logger implementation). Used by Logger internally
73
+ def format_log(sev, time, prog, msg)
74
+ "[#{sev.downcase}]: #{msg}\n"
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,56 @@
1
+ module YARD
2
+ module Parser
3
+ # Represents the abstract base parser class that parses source code in
4
+ # a specific way. A parser should implement {#parse}, {#tokenize} and
5
+ # {#enumerator}.
6
+ #
7
+ # == Registering a Custom Parser
8
+ # To register a parser, see {SourceParser.register_parser_type}
9
+ #
10
+ # @abstract
11
+ # @see #parse
12
+ # @see #tokenize
13
+ # @see #enumerator
14
+ # @since 0.5.6
15
+ class Base
16
+ # Convenience method to create a new parser and {#parse}
17
+ def self.parse(source, filename = nil)
18
+ new(source, filename).parse
19
+ end
20
+
21
+ # This default constructor does nothing. The subclass is responsible for
22
+ # storing the source contents and filename if they are required.
23
+ # @param [String] source the source contents
24
+ # @param [String] filename the name of the file if from disk
25
+ def initialize(source, filename)
26
+ raise NotImplementedError, "invalid parser implementation"
27
+ end
28
+
29
+ # This method should be implemented to parse the source and return itself.
30
+ # @abstract
31
+ # @return [Base] this method should return itself
32
+ def parse
33
+ raise NotImplementedError, "#{self.class} must implement #parse"
34
+ end
35
+
36
+ # This method should be implemented to tokenize given source
37
+ # @abstract
38
+ # @return [Array] a list/tree of lexical tokens
39
+ def tokenize
40
+ raise NotImplementedError, "#{self.class} does not support tokenization"
41
+ end
42
+
43
+ # This method should be implemented to return a list of semantic tokens
44
+ # representing the source code to be post-processed. Otherwise the method
45
+ # should return nil.
46
+ #
47
+ # @abstract
48
+ # @return [Array] a list of semantic tokens representing the source code
49
+ # to be post-processed
50
+ # @return [nil] if no post-processing should be done
51
+ def enumerator
52
+ nil
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,501 @@
1
+ # Parts of this source were borrowed from `rdoc/parser/c.rb`
2
+ # RDoc's license is packaged along with Ruby.
3
+
4
+
5
+ module YARD
6
+ module Parser
7
+ class CParser < Base
8
+ def initialize(source, file = '(stdin)')
9
+ @file = file
10
+ @namespaces = {}
11
+ @content = clean_source(source)
12
+ end
13
+
14
+ def parse
15
+ parse_modules
16
+ parse_classes
17
+ parse_methods
18
+ parse_aliases
19
+ parse_attributes
20
+ parse_constants
21
+ parse_includes
22
+ end
23
+
24
+ # @since 0.5.6
25
+ def tokenize
26
+ raise NotImplementedError, "no tokenization support for C/C++ files"
27
+ end
28
+
29
+ private
30
+
31
+ # @since 0.5.3
32
+ def remove_var_prefix(var)
33
+ var.gsub(/^rb_[mc]|^[a-z_]+/, '')
34
+ end
35
+
36
+ def ensure_loaded!(object, max_retries = 1)
37
+ return if object.is_a?(CodeObjects::RootObject)
38
+ unless CONTINUATIONS_SUPPORTED
39
+ log.warn_no_continuations
40
+ raise Handlers::NamespaceMissingError, object
41
+ end
42
+
43
+ retries = 0
44
+ context = callcc {|c| c }
45
+ retries += 1
46
+
47
+ if object.is_a?(CodeObjects::Proxy)
48
+ if retries <= max_retries
49
+ log.debug "Missing object #{object} in file `#{@file}', moving it to the back of the line."
50
+ raise Parser::LoadOrderError, context
51
+ end
52
+ end
53
+ object
54
+ end
55
+
56
+ def handle_module(var_name, mod_name, in_module = nil)
57
+ namespace = @namespaces[in_module] || (in_module ? P(remove_var_prefix(in_module)) : :root)
58
+ ensure_loaded!(namespace)
59
+ obj = CodeObjects::ModuleObject.new(namespace, mod_name)
60
+ obj.add_file(@file)
61
+ find_namespace_docstring(obj)
62
+ @namespaces[var_name] = obj
63
+ end
64
+
65
+ def handle_class(var_name, class_name, parent, in_module = nil)
66
+ parent = nil if parent == "0"
67
+ namespace = @namespaces[in_module] || (in_module ? P(remove_var_prefix(in_module)) : :root)
68
+ ensure_loaded!(namespace)
69
+ obj = CodeObjects::ClassObject.new(namespace, class_name)
70
+ obj.superclass = @namespaces[parent] || remove_var_prefix(parent) if parent
71
+ obj.add_file(@file)
72
+ find_namespace_docstring(obj)
73
+ @namespaces[var_name] = obj
74
+ end
75
+
76
+ # @return [CodeObjects::Base]
77
+ def handle_method(scope, var_name, name, func_name, source_file = nil)
78
+ case scope
79
+ when "singleton_method", "module_function"; scope = :class
80
+ else; scope = :instance
81
+ end
82
+
83
+ namespace = @namespaces[var_name] || P(remove_var_prefix(var_name))
84
+ ensure_loaded!(namespace)
85
+ obj = CodeObjects::MethodObject.new(namespace, name, scope)
86
+ obj.add_file(@file)
87
+ obj.parameters = []
88
+ obj.docstring.add_tag(YARD::Tags::Tag.new(:return, '', 'Boolean')) if name =~ /\?$/
89
+ obj.source_type = :c
90
+
91
+ content = nil
92
+ begin
93
+ content = File.read(source_file) if source_file
94
+ rescue Errno::ENOENT
95
+ path = "#{namespace}#{scope == :instance ? '#' : '.'}#{name}"
96
+ log.warn "Missing source file `#{source_file}' when parsing #{path}"
97
+ ensure
98
+ content ||= @content
99
+ end
100
+ find_method_body(obj, func_name, content)
101
+ obj
102
+ end
103
+
104
+ def handle_alias(var_name, new_name, old_name)
105
+ namespace = P(remove_var_prefix(var_name))
106
+ ensure_loaded!(namespace)
107
+ new_meth, old_meth = new_name.to_sym, old_name.to_sym
108
+ old_obj = namespace.child(:name => old_meth, :scope => :instance)
109
+ new_obj = YARD::CodeObjects::MethodObject.new(namespace, new_meth, :instance) do |o|
110
+ o.visibility = :public
111
+ o.scope = :instance
112
+ o.add_file(@file)
113
+ o.source_type = :c
114
+ end
115
+
116
+ if old_obj
117
+ new_obj.signature = old_obj.signature
118
+ new_obj.source = old_obj.source
119
+ new_obj.docstring = old_obj.docstring
120
+ new_obj.docstring.object = new_obj
121
+ else
122
+ new_obj.signature = "def #{new_meth}" # this is all we know.
123
+ end
124
+
125
+ namespace.aliases[new_obj] = old_meth
126
+ end
127
+
128
+ def handle_attribute(var_name, name, func_name, read, write, source_file = nil)
129
+ values = {:read => read.to_i, :write => write.to_i}
130
+ {:read => name, :write => "#{name}="}.each do |type, meth_name|
131
+ next unless values[type] > 0
132
+ obj = handle_method(:instance, var_name, meth_name, func_name, source_file)
133
+ ensure_loaded!(obj.namespace)
134
+ obj.namespace.attributes[:instance][name] ||= SymbolHash[:read => nil, :write => nil]
135
+ obj.namespace.attributes[:instance][name][type] = obj
136
+ end
137
+ end
138
+
139
+ def handle_constants(type, var_name, const_name, definition)
140
+ namespace = @namespaces[var_name]
141
+ obj = CodeObjects::ConstantObject.new(namespace, const_name)
142
+ obj.value = definition
143
+ obj.add_file(@file)
144
+ obj.source_type = :c
145
+ comment = find_constant_docstring(obj, type, const_name)
146
+
147
+ # In the case of rb_define_const, the definition and comment are in
148
+ # "/* definition: comment */" form. The literal ':' and '\' characters
149
+ # can be escaped with a backslash.
150
+ if type.downcase == 'const'
151
+ elements = comment.split(':')
152
+ new_definition = elements[0..-2].join(':')
153
+ if new_definition.empty? then # Default to literal C definition
154
+ new_definition = definition
155
+ else
156
+ new_definition.gsub!("\:", ":")
157
+ new_definition.gsub!("\\", '\\')
158
+ end
159
+ new_definition.sub!(/\A(\s+)/, '')
160
+ comment = $1.nil? ? elements.last : "#{$1}#{elements.last.lstrip}"
161
+ end
162
+
163
+ obj.docstring = comment
164
+ end
165
+
166
+ def find_namespace_docstring(object)
167
+ comment = nil
168
+ if @content =~ %r{((?>/\*.*?\*/\s+))
169
+ (static\s+)?void\s+Init_#{object.name}\s*(?:_\(\s*)?\(\s*(?:void\s*)\)}xmi then
170
+ comment = $1
171
+ elsif @content =~ %r{Document-(?:class|module):\s#{object.path}\s*?(?:<\s+[:,\w]+)?\n((?>.*?\*/))}m
172
+ comment = $1
173
+ end
174
+ object.docstring = parse_comments(object, comment) if comment
175
+ end
176
+
177
+ def find_constant_docstring(object, type, const_name)
178
+ comment = if @content =~ %r{((?>^\s*/\*.*?\*/\s+))
179
+ rb_define_#{type}\((?:\s*(\w+),)?\s*"#{const_name}"\s*,.*?\)\s*;}xmi
180
+ $1
181
+ elsif @content =~ %r{Document-(?:const|global|variable):\s#{const_name}\s*?\n((?>.*?\*/))}m
182
+ $1
183
+ else
184
+ ''
185
+ end
186
+ object.docstring = parse_comments(object, comment) if comment
187
+ end
188
+
189
+ def find_method_body(object, func_name, content = @content)
190
+ case content
191
+ when %r"((?>/\*.*?\*/\s*))(?:(?:static|SWIGINTERN)\s+)?(?:intern\s+)?VALUE\s+#{func_name}
192
+ \s*(\([^)]*\))([^;]|$)"xm
193
+ comment, params = $1, $2
194
+ body_text = $&
195
+
196
+ remove_private_comments(comment) if comment
197
+
198
+ # see if we can find the whole body
199
+
200
+ re = Regexp.escape(body_text) + '[^(]*\{.*?\}'
201
+ body_text = $& if /#{re}/m =~ content
202
+
203
+ # The comment block may have been overridden with a 'Document-method'
204
+ # block. This happens in the interpreter when multiple methods are
205
+ # vectored through to the same C method but those methods are logically
206
+ # distinct (for example Kernel.hash and Kernel.object_id share the same
207
+ # implementation
208
+
209
+ override_comment = find_override_comment(object)
210
+ comment = override_comment if override_comment
211
+
212
+ object.docstring = parse_comments(object, comment) if comment
213
+ object.source = body_text.gsub(/\A#{Regexp.quote comment}/, '')
214
+ when %r{((?>/\*.*?\*/\s*))^\s*\#\s*define\s+#{func_name}\s+(\w+)}m
215
+ comment = $1
216
+ find_method_body(object, $2, content)
217
+ else
218
+ # No body, but might still have an override comment
219
+ comment = find_override_comment(object)
220
+ object.docstring = parse_comments(object, comment) if comment
221
+ end
222
+ end
223
+
224
+ def find_override_comment(object, content = @content)
225
+ name = Regexp.escape(object.name.to_s)
226
+ name = "(?:initialize|new)" if name == 'initialize'
227
+ class_name = object.parent.path
228
+ if content =~ %r{Document-method:\s+#{class_name}(?:\.|::|#)#{name}\s*?\n((?>.*?\*/))}m then
229
+ $1
230
+ elsif content =~ %r{Document-method:\s#{name}\s*?\n((?>.*?\*/))}m then
231
+ $1
232
+ else
233
+ nil
234
+ end
235
+ end
236
+
237
+ def parse_comments(object, comments)
238
+ spaces = nil
239
+ comments = remove_private_comments(comments)
240
+ comments = comments.split(/\r?\n/).map do |line|
241
+ line.gsub!(/^\s*\/?\*\/?/, '')
242
+ line.gsub!(/\*\/\s*$/, '')
243
+ if line =~ /^\s*$/
244
+ next if spaces.nil?
245
+ next ""
246
+ end
247
+ spaces = (line[/^(\s+)/, 1] || "").size if spaces.nil?
248
+ line.gsub(/^\s{0,#{spaces}}/, '').rstrip
249
+ end.compact
250
+
251
+ comments.shift if comments.first =~ /^\s*Document-method:/
252
+ comments = parse_callseq(object, comments)
253
+ comments.join("\n")
254
+ end
255
+
256
+ def parse_callseq(object, comments)
257
+ return comments unless comments[0] =~ /\Acall-seq:\s*(\S.+)?/
258
+ if $1
259
+ comments[0] = " #{$1}"
260
+ else
261
+ comments.shift
262
+ end
263
+ overloads = []
264
+ seen_data = false
265
+ while comments.first =~ /^\s+(\S.+)/ || comments.first =~ /^\s*$/
266
+ line = comments.shift.strip
267
+ break if line.empty? && seen_data
268
+ next if line.empty?
269
+ seen_data = true
270
+ line.sub!(/^\w+[\.#]/, '')
271
+ signature, types = *line.split(/ [-=]> /)
272
+ types = parse_types(object, types)
273
+ if signature.sub!(/\[?\s*(\{(?:\s*\|(.+?)\|)?.*\})\s*\]?\s*$/, '') && $1
274
+ blk, blkparams = $1, $2
275
+ else
276
+ blk, blkparams = nil, nil
277
+ end
278
+ case signature
279
+ when /^(\w+)\s*=\s+(\w+)/
280
+ signature = "#{$1}=(#{$2})"
281
+ when /^\w+\s+\S/
282
+ signature = signature.split(/\s+/)
283
+ signature = "#{signature[1]}#{signature[2] ? '(' + signature[2..-1].join(' ') + ')' : ''}"
284
+ when /^\w+\[(.+?)\]\s*(=)?/
285
+ signature = "[]#{$2}(#{$1})"
286
+ when /^\w+\s+(#{CodeObjects::METHODMATCH})\s+(\w+)/
287
+ signature = "#{$1}(#{$2})"
288
+ end
289
+ break unless signature =~ /^#{CodeObjects::METHODNAMEMATCH}/
290
+ signature = signature.rstrip
291
+ overloads << "@overload #{signature}"
292
+ overloads << " @yield [#{blkparams}]" if blk
293
+ overloads << " @return [#{types.join(', ')}]" unless types.empty?
294
+ end
295
+
296
+ comments + [""] + overloads
297
+ end
298
+
299
+ def parse_types(object, types)
300
+ if types =~ /true or false/
301
+ ["Boolean"]
302
+ else
303
+ (types||"").split(/,| or /).map do |t|
304
+ case t.strip.gsub(/^an?_/, '')
305
+ when "class"; "Class"
306
+ when "obj", "object", "anObject"; "Object"
307
+ when "arr", "array", "anArray", /^\[/; "Array"
308
+ when /^char\s*\*/, "char", "str", "string", "new_str"; "String"
309
+ when "enum", "anEnumerator"; "Enumerator"
310
+ when "exc", "exception"; "Exception"
311
+ when "proc", "proc_obj", "prc"; "Proc"
312
+ when "binding"; "Binding"
313
+ when "hsh", "hash", "aHash"; "Hash"
314
+ when "ios", "io"; "IO"
315
+ when "file"; "File"
316
+ when "float"; "Float"
317
+ when "time", "new_time"; "Time"
318
+ when "dir", "aDir"; "Dir"
319
+ when "regexp", "new_regexp"; "Regexp"
320
+ when "matchdata"; "MatchData"
321
+ when "encoding"; "Encoding"
322
+ when "fixnum", "fix"; "Fixnum"
323
+ when /^(?:un)?signed$/, /^(?:(?:un)?signed\s*)?(?:short|int|long|long\s+long)$/, "integer", "Integer"; "Integer"
324
+ when "num", "numeric", "Numeric", "number"; "Numeric"
325
+ when "aBignum"; "Bignum"
326
+ when "nil"; "nil"
327
+ when "true"; "true"
328
+ when "false"; "false"
329
+ when "bool", "boolean", "Boolean"; "Boolean"
330
+ when "self"; object.namespace.name.to_s
331
+ when /^[-+]?\d/; t
332
+ when /[A-Z][_a-z0-9]+/; t
333
+ end
334
+ end.compact
335
+ end
336
+ end
337
+
338
+ def parse_modules
339
+ @content.scan(/(\w+)\s* = \s*rb_define_module\s*
340
+ \(\s*"(\w+)"\s*\)/mx) do |var_name, class_name|
341
+ handle_module(var_name, class_name)
342
+ end
343
+
344
+ @content.scan(/(\w+)\s* = \s*rb_define_module_under\s*
345
+ \(
346
+ \s*(\w+),
347
+ \s*"(\w+)"
348
+ \s*\)/mx) do |var_name, in_module, class_name|
349
+ handle_module(var_name, class_name, in_module)
350
+ end
351
+ end
352
+
353
+ def parse_classes
354
+ # The '.' lets us handle SWIG-generated files
355
+ @content.scan(/([\w\.]+)\s* = \s*(?:rb_define_class|boot_defclass)\s*
356
+ \(
357
+ \s*"(\w+)",
358
+ \s*(\w+|0)\s*
359
+ \)/mx) do |var_name, class_name, parent|
360
+ handle_class(var_name, class_name, parent)
361
+ end
362
+
363
+ @content.scan(/([\w\.]+)\s* = \s*rb_define_class_under\s*
364
+ \(
365
+ \s*(\w+),
366
+ \s*"(\w+)",
367
+ \s*([\w\*\s\(\)\.\->]+)\s* # for SWIG
368
+ \s*\)/mx) do |var_name, in_module, class_name, parent|
369
+ handle_class(var_name, class_name, parent, in_module)
370
+ end
371
+ end
372
+
373
+ def parse_methods
374
+ @content.scan(%r{rb_define_
375
+ (
376
+ singleton_method |
377
+ method |
378
+ module_function |
379
+ private_method
380
+ )
381
+ \s*\(\s*([\w\.]+),
382
+ \s*"([^"]+)",
383
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
384
+ \s*(-?\w+)\s*\)
385
+ (?:;\s*/[*/]\s+in\s+(.+?\.[cy]))?
386
+ }xm) do |type, var_name, name, func_name, param_count, source_file|
387
+
388
+ # Ignore top-object and weird struct.c dynamic stuff
389
+ next if var_name == "ruby_top_self"
390
+ next if var_name == "nstr"
391
+ next if var_name == "envtbl"
392
+
393
+ var_name = "rb_cObject" if var_name == "rb_mKernel"
394
+ handle_method(type, var_name, name, func_name, source_file)
395
+ end
396
+
397
+ @content.scan(%r{rb_define_global_function\s*\(
398
+ \s*"([^"]+)",
399
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
400
+ \s*(-?\w+)\s*\)
401
+ (?:;\s*/[*/]\s+in\s+(.+?\.[cy]))?
402
+ }xm) do |name, func_name, param_count, source_file|
403
+ handle_method("method", "rb_mKernel", name, func_name, source_file)
404
+ end
405
+ end
406
+
407
+ def parse_aliases
408
+ @content.scan(%r{rb_define_alias
409
+ \s*\(\s*([\w\.]+),
410
+ \s*"([^"]+)",
411
+ \s*"([^"]+)"\s*\)
412
+ }xm) do |var_name, new_name, old_name|
413
+
414
+ var_name = "rb_cObject" if var_name == "rb_mKernel"
415
+ handle_alias(var_name, new_name, old_name)
416
+ end
417
+ end
418
+
419
+ def parse_attributes
420
+ @content.scan(%r{rb_define_attr
421
+ \s*\(\s*([\w\.]+),
422
+ \s*"([^"]+)",
423
+ \s*(?:RUBY_METHOD_FUNC\(|VALUEFUNC\()?(\w+)\)?,
424
+ \s*(0|1)\s*,\s*(0|1)\s*\)
425
+ (?:;\s*/[*/]\s+in\s+(.+?\.[cy]))?
426
+ }xm) do |var_name, name, func_name, read, write, source_file|
427
+
428
+ # Ignore top-object and weird struct.c dynamic stuff
429
+ next if var_name == "ruby_top_self"
430
+ next if var_name == "nstr"
431
+ next if var_name == "envtbl"
432
+
433
+ var_name = "rb_cObject" if var_name == "rb_mKernel"
434
+ handle_attribute(var_name, name, func_name, read, write, source_file)
435
+ end
436
+ end
437
+
438
+ def parse_includes
439
+ @content.scan(/rb_include_module\s*\(\s*(\w+?),\s*(\w+?)\s*\)/) do |klass, mod|
440
+ if klass = @namespaces[klass]
441
+ mod = @namespaces[mod] || P(remove_var_prefix(mod))
442
+ klass.mixins(:instance) << mod
443
+ end
444
+ end
445
+ end
446
+
447
+ def parse_constants
448
+ @content.scan(%r{\Wrb_define_
449
+ (
450
+ variable |
451
+ readonly_variable |
452
+ const |
453
+ global_const |
454
+ )
455
+ \s*\(
456
+ (?:\s*(\w+),)?
457
+ \s*"(\w+)",
458
+ \s*(.*?)\s*\)\s*;
459
+ }xm) do |type, var_name, const_name, definition|
460
+ var_name = "rb_cObject" if !var_name or var_name == "rb_mKernel"
461
+ handle_constants(type, var_name, const_name, definition)
462
+ end
463
+ end
464
+
465
+ private
466
+
467
+ def clean_source(source)
468
+ source = handle_ifdefs_in(source)
469
+ source = handle_tab_width(source)
470
+ source = remove_commented_out_lines(source)
471
+ source
472
+ end
473
+
474
+ def handle_ifdefs_in(body)
475
+ body.gsub(/^#ifdef HAVE_PROTOTYPES.*?#else.*?\n(.*?)#endif.*?\n/m, '\1')
476
+ end
477
+
478
+ def handle_tab_width(body)
479
+ if /\t/ =~ body
480
+ tab_width = 4
481
+ body.split(/\n/).map do |line|
482
+ 1 while line.gsub!(/\t+/) { ' ' * (tab_width*$&.length - $`.length % tab_width)} && $~ #`
483
+ line
484
+ end .join("\n")
485
+ else
486
+ body
487
+ end
488
+ end
489
+
490
+ def remove_commented_out_lines(body)
491
+ body.gsub(%r{//.*rb_define_}, '//')
492
+ end
493
+
494
+ def remove_private_comments(comment)
495
+ comment = comment.gsub(/\/?\*--\n(.*?)\/?\*\+\+/m, '')
496
+ comment = comment.sub(/\/?\*--\n.*/m, '')
497
+ comment
498
+ end
499
+ end
500
+ end
501
+ end