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.
- data/Rakefile +4 -1
- data/lib/nutshell-crm.rb +274 -6
- data/lib/nutshell-crm/version.rb +1 -1
- data/nutshell-crm.gemspec +1 -0
- data/spec/nutshell-crm_spec.rb +40 -167
- data/vendor/bundle/bin/yard +19 -0
- data/vendor/bundle/bin/yardoc +19 -0
- data/vendor/bundle/bin/yri +19 -0
- data/vendor/bundle/gems/yard-0.7.4/.yardopts +18 -0
- data/vendor/bundle/gems/yard-0.7.4/ChangeLog +10533 -0
- data/vendor/bundle/gems/yard-0.7.4/LEGAL +74 -0
- data/vendor/bundle/gems/yard-0.7.4/LICENSE +22 -0
- data/vendor/bundle/gems/yard-0.7.4/README.md +514 -0
- data/vendor/bundle/gems/yard-0.7.4/Rakefile +99 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/builtins_vs_eval.rb +23 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/concat_vs_join.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/erb_vs_erubis.rb +53 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/format_args.rb +46 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/generation.rb +37 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/marshal_vs_dbm.rb +63 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/parsing.rb +46 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/pathname_vs_string.rb +50 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/rdoc_vs_yardoc.rb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/ri_vs_yri.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/ripper_parser.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/splat_vs_flatten.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_erb.rb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_format.rb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/template_profile.rb +17 -0
- data/vendor/bundle/gems/yard-0.7.4/benchmarks/yri_cache.rb +19 -0
- data/vendor/bundle/gems/yard-0.7.4/bin/yard +4 -0
- data/vendor/bundle/gems/yard-0.7.4/bin/yard-graph +4 -0
- data/vendor/bundle/gems/yard-0.7.4/bin/yard-server +4 -0
- data/vendor/bundle/gems/yard-0.7.4/bin/yardoc +4 -0
- data/vendor/bundle/gems/yard-0.7.4/bin/yri +4 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/CodeObjects.md +115 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/GettingStarted.md +590 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Glossary.md +12 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Handlers.md +152 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Overview.md +61 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Parser.md +191 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Tags.md +586 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/Templates.md +518 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/WhatsNew.md +887 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/images/code-objects-class-diagram.png +0 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/images/handlers-class-diagram.png +0 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/images/overview-class-diagram.png +0 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/images/parser-class-diagram.png +0 -0
- data/vendor/bundle/gems/yard-0.7.4/docs/images/tags-class-diagram.png +0 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/rubygems_plugin.rb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard.rb +57 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/autoload.rb +233 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/command.rb +73 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/command_parser.rb +89 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/config.rb +136 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/diff.rb +201 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/gems.rb +83 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/graph.rb +103 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/help.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/list.rb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/server.rb +160 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/stats.rb +210 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/yardoc.rb +696 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/cli/yri.rb +193 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/base.rb +513 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/class_object.rb +143 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/class_variable_object.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/constant_object.rb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/extended_method_object.rb +23 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/extra_file_object.rb +89 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/macro_object.rb +215 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/method_object.rb +153 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/module_object.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/namespace_object.rb +200 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/proxy.rb +252 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/code_objects/root_object.rb +16 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/config.rb +259 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/array.rb +15 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/file.rb +65 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/hash.rb +15 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/insertion.rb +60 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/module.rb +19 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/string.rb +67 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/core_ext/symbol_hash.rb +73 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/docstring.rb +331 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/globals.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/base.rb +569 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/processor.rb +187 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/alias_handler.rb +43 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/attribute_handler.rb +83 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/base.rb +160 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_condition_handler.rb +84 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_handler.rb +122 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/class_variable_handler.rb +16 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/constant_handler.rb +45 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/exception_handler.rb +26 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/extend_handler.rb +21 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/alias_handler.rb +37 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/attribute_handler.rb +61 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/base.rb +228 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_condition_handler.rb +81 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_handler.rb +110 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/class_variable_handler.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/constant_handler.rb +28 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/exception_handler.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/extend_handler.rb +20 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/macro_handler.rb +39 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/method_handler.rb +78 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/mixin_handler.rb +41 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/module_handler.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/private_constant_handler.rb +21 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/visibility_handler.rb +16 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/legacy/yield_handler.rb +28 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/macro_handler.rb +40 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/macro_handler_methods.rb +130 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/method_condition_handler.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/method_handler.rb +94 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/mixin_handler.rb +36 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/module_handler.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/private_constant_handler.rb +36 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/struct_handler_methods.rb +140 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/visibility_handler.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/handlers/ruby/yield_handler.rb +30 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/logging.rb +77 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/base.rb +56 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/c_parser.rb +501 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/ast_node.rb +399 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/ruby_lex.rb +1376 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/ruby_parser.rb +30 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/statement.rb +60 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/statement_list.rb +390 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/legacy/token_list.rb +66 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/ruby/ruby_parser.rb +542 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/parser/source_parser.rb +517 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rake/yardoc_task.rb +75 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/registry.rb +400 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/registry_store.rb +252 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/LICENSE.txt +57 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/MIT.txt +20 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/gem.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/backports/source_index.rb +353 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/doc_manager.rb +75 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/rubygems/specification.rb +41 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/base.rb +80 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/file_system_serializer.rb +92 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/process_serializer.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/stdout_serializer.rb +32 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/serializers/yardoc_serializer.rb +122 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/adapter.rb +100 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/base.rb +192 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/display_file_command.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/display_object_command.rb +51 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/frames_command.rb +32 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/library_command.rb +100 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/library_index_command.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/list_command.rb +48 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/search_command.rb +72 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/commands/static_file_command.rb +50 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/doc_server_helper.rb +40 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/doc_server_serializer.rb +31 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/library_version.rb +227 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/rack_adapter.rb +83 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/router.rb +180 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/static_caching.rb +45 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/css/custom.css +78 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/images/processing.gif +0 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/js/autocomplete.js +12 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/fulldoc/html/js/live.js +32 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/breadcrumb.erb +46 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/headers.erb +16 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/default/layout/html/setup.rb +7 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/frames/html/frames.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/frames/html/setup.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/full_list/html/full_list.erb +34 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/full_list/html/setup.rb +20 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/contents.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/headers.erb +26 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/library_list.erb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/setup.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/library_list/html/title.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/processing/html/processing.erb +51 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/processing/html/setup.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/search/html/search.erb +19 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/templates/doc_server/search/html/setup.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/server/webrick_adapter.rb +42 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/default_factory.rb +141 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/default_tag.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/library.rb +201 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/option_tag.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/overload_tag.rb +65 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/ref_tag.rb +7 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/ref_tag_list.rb +27 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/tag.rb +57 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/tags/tag_format_error.rb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/engine.rb +173 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/erb_cache.rb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/base_helper.rb +206 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/filter_helper.rb +26 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/html_helper.rb +520 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/html_syntax_highlight_helper.rb +59 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/markup/rdoc_markup.rb +85 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/markup_helper.rb +164 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/method_helper.rb +72 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/module_helper.rb +19 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/text_helper.rb +95 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/helpers/uml_helper.rb +46 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/section.rb +106 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/templates/template.rb +366 -0
- data/vendor/bundle/gems/yard-0.7.4/lib/yard/verifier.rb +148 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/command_parser_spec.rb +43 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/command_spec.rb +36 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/config_spec.rb +92 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/diff_spec.rb +172 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/gems_spec.rb +81 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/help_spec.rb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/list_spec.rb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/server_spec.rb +171 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/stats_spec.rb +90 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/yardoc_spec.rb +628 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/cli/yri_spec.rb +87 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/base_spec.rb +334 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/class_object_spec.rb +225 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/code_object_list_spec.rb +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/constants_spec.rb +81 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/extra_file_object_spec.rb +132 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/macro_object_spec.rb +154 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/method_object_spec.rb +152 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/module_object_spec.rb +141 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/namespace_object_spec.rb +170 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/proxy_spec.rb +124 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/code_objects/spec_helper.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/config_spec.rb +167 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/array_spec.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/file_spec.rb +68 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/hash_spec.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/insertion_spec.rb +37 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/module_spec.rb +15 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/string_spec.rb +42 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/core_ext/symbol_hash_spec.rb +86 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/docstring_spec.rb +400 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/alias_handler_spec.rb +80 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/attribute_handler_spec.rb +94 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/base_spec.rb +197 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_condition_handler_spec.rb +62 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_handler_spec.rb +246 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/class_variable_handler_spec.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/constant_handler_spec.rb +64 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/alias_handler_001.rb.txt +44 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/attribute_handler_001.rb.txt +32 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_condition_handler_001.rb.txt +61 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_handler_001.rb.txt +120 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/class_variable_handler_001.rb.txt +10 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/constant_handler_001.rb.txt +25 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/exception_handler_001.rb.txt +59 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/extend_handler_001.rb.txt +16 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/macro_handler_001.rb.txt +83 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/method_condition_handler_001.rb.txt +10 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/method_handler_001.rb.txt +122 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/mixin_handler_001.rb.txt +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/module_handler_001.rb.txt +29 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/private_constant_handler_001.rb.txt +8 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/process_handler_001.rb.txt +11 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/visibility_handler_001.rb.txt +27 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/examples/yield_handler_001.rb.txt +55 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/exception_handler_spec.rb +48 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/extend_handler_spec.rb +23 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/legacy_base_spec.rb +128 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/macro_handler_spec.rb +157 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/method_condition_handler_spec.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/method_handler_spec.rb +177 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/mixin_handler_spec.rb +50 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/module_handler_spec.rb +34 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/private_constant_handler_spec.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/processor_spec.rb +23 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/ruby/base_spec.rb +90 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/ruby/legacy/base_spec.rb +78 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/spec_helper.rb +34 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/visibility_handler_spec.rb +34 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/handlers/yield_handler_spec.rb +51 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/logging_spec.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/base_spec.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/c_parser_spec.rb +231 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/array.c.txt +3887 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/example1.rb.txt +8 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/extrafile.c.txt +8 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/multifile.c.txt +6 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/override.c.txt +424 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/parse_in_order_001.rb.txt +2 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/parse_in_order_002.rb.txt +2 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/examples/tag_handler_001.rb.txt +8 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/ast_node_spec.rb +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/legacy/statement_list_spec.rb +299 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/legacy/token_list_spec.rb +69 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/ruby/ruby_parser_spec.rb +257 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/source_parser_spec.rb +595 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/parser/tag_parsing_spec.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/rake/yardoc_task_spec.rb +90 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/registry_spec.rb +303 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/registry_store_spec.rb +255 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/checksums +1 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo.dat +0 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo/bar_i.dat +0 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/Foo/baz_i.dat +0 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/objects/root.dat +0 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/data/serialized_yardoc/proxy_types +2 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/file_system_serializer_spec.rb +124 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/spec_helper.rb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/serializers/yardoc_serializer_spec.rb +46 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/adapter_spec.rb +38 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/base_spec.rb +87 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/library_command_spec.rb +39 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/commands/static_file_command_spec.rb +84 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/doc_server_serializer_spec.rb +58 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/rack_adapter_spec.rb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/router_spec.rb +115 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/spec_helper.rb +17 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/static_caching_spec.rb +39 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server/webrick_servlet_spec.rb +20 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/server_spec.rb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/spec_helper.rb +105 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/tags/default_factory_spec.rb +138 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/tags/default_tag_spec.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/tags/library_spec.rb +23 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/tags/overload_tag_spec.rb +53 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/tags/ref_tag_list_spec.rb +53 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/class_spec.rb +43 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/constant_spec.rb +40 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/engine_spec.rb +129 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class001.html +280 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class001.txt +36 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/class002.html +35 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant001.txt +25 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant002.txt +7 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/constant003.txt +11 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method001.html +130 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method001.txt +35 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method002.html +86 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method002.txt +20 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method003.html +159 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method003.txt +45 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method004.html +44 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method004.txt +10 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method005.html +99 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/method005.txt +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.dot +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.html +795 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module001.txt +33 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/module002.html +319 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/examples/tag001.txt +82 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/base_helper_spec.rb +175 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/html_helper_spec.rb +541 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/html_syntax_highlight_helper_spec.rb +48 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/markup/rdoc_markup_spec.rb +84 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/markup_helper_spec.rb +132 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/method_helper_spec.rb +75 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/shared_signature_examples.rb +121 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/helpers/text_helper_spec.rb +44 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/method_spec.rb +102 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/module_spec.rb +109 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/onefile_spec.rb +47 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/section_spec.rb +146 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/spec_helper.rb +42 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/tag_spec.rb +39 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/templates/template_spec.rb +401 -0
- data/vendor/bundle/gems/yard-0.7.4/spec/verifier_spec.rb +86 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/dot/setup.rb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/dot/superklass.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/constructor_details.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/setup.rb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/html/subclasses.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/setup.rb +36 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/text/setup.rb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/class/text/subclasses.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/constant/text/header.erb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/constant/text/setup.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/abstract.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/deprecated.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/index.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/note.erb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/private.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/returns_void.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/text.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/html/todo.erb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/setup.rb +49 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/abstract.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/deprecated.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/index.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/note.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/private.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/returns_void.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/text.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/docstring/text/todo.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/common.css +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/full_list.css +55 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/css/style.css +322 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/frames.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list.erb +37 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_class.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_files.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/full_list_methods.erb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/app.js +205 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/full_list.js +167 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/js/jquery.js +16 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/fulldoc/html/setup.rb +198 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/dot/header.erb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/dot/setup.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/breadcrumb.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/files.erb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/footer.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/headers.erb +17 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/index.erb +2 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/layout.erb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/listing.erb +4 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/objects.erb +32 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/search.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/layout/html/setup.rb +71 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method/html/header.erb +16 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method/setup.rb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method/text/header.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/header.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/method_signature.erb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/html/source.erb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/setup.rb +9 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/header.erb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/method_signature.erb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/method_details/text/setup.rb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/child.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/dependencies.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/header.erb +6 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/info.erb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/dot/setup.rb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/attribute_details.erb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/attribute_summary.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/box_info.erb +37 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/children.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/constant_summary.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/defines.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/header.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_attributes.erb +17 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_constants.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/inherited_methods.erb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/item_summary.erb +30 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/method_details_list.erb +9 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/method_summary.erb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/methodmissing.erb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/html/pre_docstring.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/setup.rb +129 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/children.erb +10 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/class_meths_list.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/extends.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/header.erb +7 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/includes.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/instance_meths_list.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/module/text/setup.rb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/files.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/layout.erb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/readme.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/onefile/html/setup.rb +43 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/root/dot/child.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/root/dot/setup.rb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/root/html/setup.rb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/example.erb +9 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/index.erb +3 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/option.erb +22 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/overload.erb +14 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/see.erb +8 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/html/tag.erb +20 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/setup.rb +50 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/example.erb +12 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/index.erb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/option.erb +20 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/overload.erb +19 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/see.erb +11 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/default/tags/text/tag.erb +13 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/class/html/setup.rb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/docstring/html/setup.rb +1 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/css/style.css +93 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/js/app.js +33 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/fulldoc/html/setup.rb +54 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/layout/html/layout.erb +81 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/layout/html/setup.rb +24 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/method/html/header.erb +18 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/method/html/setup.rb +21 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/header.erb +7 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/method_list.erb +5 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/module/html/setup.rb +26 -0
- data/vendor/bundle/gems/yard-0.7.4/templates/guide/tags/html/setup.rb +8 -0
- data/vendor/bundle/specifications/yard-0.7.4.gemspec +28 -0
- 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
|