From 42773d99a92696787c333b1db5b815ecad748c5d Mon Sep 17 00:00:00 2001 From: bluehavana Date: Sat, 21 Jan 2017 21:34:55 -0800 Subject: Update to Yard >= 0.9.0 * Return a string from CodeObjects::HeaderObject#path A change in YARD::Serializers::FileSystemSerializer stopped calling `#to_s` on the the CodeObject passed, causing a NoMethodError for "+" missing Symbol (#path was just an alias to #name). Added minimal specs to cover only this case. * Fixed some handler specs dealing with namespaces. A bug in the Yard c handler allowed namespacing to be determined without a proper parent RClass. See lsegal/yard#912 * There were some breaking changes to templates. --- spec/code_objects/header_object_spec.rb | 10 ++++++++++ spec/code_objects/spec_helper.rb | 1 + spec/handlers/c/source/class_handler_spec.rb | 6 +++++- spec/handlers/c/source/module_handler_spec.rb | 6 +++++- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 spec/code_objects/header_object_spec.rb create mode 100644 spec/code_objects/spec_helper.rb (limited to 'spec') diff --git a/spec/code_objects/header_object_spec.rb b/spec/code_objects/header_object_spec.rb new file mode 100644 index 0000000..2e10a70 --- /dev/null +++ b/spec/code_objects/header_object_spec.rb @@ -0,0 +1,10 @@ +require_relative 'spec_helper' + +describe YARD::MRuby::CodeObjects::HeaderObject do + before { Registry.clear } + + it "should return the name of the header for the path" do + header_object = YARD::MRuby::CodeObjects::HeaderObject.new(nil, :"mruby.h") + expect(header_object.path).to eq("mruby.h") + end +end diff --git a/spec/code_objects/spec_helper.rb b/spec/code_objects/spec_helper.rb new file mode 100644 index 0000000..935238d --- /dev/null +++ b/spec/code_objects/spec_helper.rb @@ -0,0 +1 @@ +require_relative '../spec_helper' diff --git a/spec/handlers/c/source/class_handler_spec.rb b/spec/handlers/c/source/class_handler_spec.rb index bfac3b6..ac97bc8 100644 --- a/spec/handlers/c/source/class_handler_spec.rb +++ b/spec/handlers/c/source/class_handler_spec.rb @@ -8,7 +8,11 @@ describe YARD::MRuby::Handlers::C::Source::ClassHandler do end it "should register classes under namespaces" do - parse_init 'cFoo = mrb_define_class_under(mrb, cBar, "Foo", rb_cObject);' + parse_init(<<-eof) + cBar = mrb_define_class(mrb, "Bar", mrb->object_class); + cFoo = mrb_define_class_under(mrb, cBar, "Foo", rb_cObject);' + eof + expect(Registry.at('Bar::Foo').type).to be :class end diff --git a/spec/handlers/c/source/module_handler_spec.rb b/spec/handlers/c/source/module_handler_spec.rb index fd08ae6..9641eb3 100644 --- a/spec/handlers/c/source/module_handler_spec.rb +++ b/spec/handlers/c/source/module_handler_spec.rb @@ -7,7 +7,11 @@ describe YARD::MRuby::Handlers::C::Source::ModuleHandler do end it "should register modules under namespaces" do - parse_init 'mFoo = mrb_define_module_under(mrb, mBar, "Foo");' + parse_init(<<-eof) + cBar = mrb_define_module(mrb,"Bar"); + cFoo = mrb_define_module_under(mrb, cBar, "Foo"); + eof + expect(Registry.at('Bar::Foo').type).to be :module end -- cgit v1.2.3