summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorbluehavana <[email protected]>2017-01-21 21:34:55 -0800
committerbluehavana <[email protected]>2017-01-21 22:15:32 -0800
commit42773d99a92696787c333b1db5b815ecad748c5d (patch)
treeff2c0d91e5c35206a167dc51f26e3a72df4ba1e1
parentb27c45a15069d89f735450944133608bce1201db (diff)
downloadyard-mruby-42773d99a92696787c333b1db5b815ecad748c5d.tar.gz
yard-mruby-42773d99a92696787c333b1db5b815ecad748c5d.zip
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.
-rw-r--r--lib/yard/mruby/code_objects/header_object.rb6
-rw-r--r--spec/code_objects/header_object_spec.rb10
-rw-r--r--spec/code_objects/spec_helper.rb1
-rw-r--r--spec/handlers/c/source/class_handler_spec.rb6
-rw-r--r--spec/handlers/c/source/module_handler_spec.rb6
-rw-r--r--templates/default/fulldoc/html/setup.rb2
-rw-r--r--yard-mruby.gemspec2
7 files changed, 26 insertions, 7 deletions
diff --git a/lib/yard/mruby/code_objects/header_object.rb b/lib/yard/mruby/code_objects/header_object.rb
index 2f9e7e4..45e1f5b 100644
--- a/lib/yard/mruby/code_objects/header_object.rb
+++ b/lib/yard/mruby/code_objects/header_object.rb
@@ -4,11 +4,11 @@ module YARD::MRuby::CodeObjects
# It groups C Functions and define macros.
class HeaderObject < YARD::CodeObjects::NamespaceObject
def functions
- children.find_all {|d| d.is_a?(FunctionObject) }
+ children.find_all {|d| d.is_a?(FunctionObject) }
end
def defines
- children.find_all {|d| d.is_a?(DefineObject) }
+ children.find_all {|d| d.is_a?(DefineObject) }
end
def typedefs
@@ -16,7 +16,7 @@ module YARD::MRuby::CodeObjects
end
def path
- self.name
+ self.name.to_s
end
def title
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
diff --git a/templates/default/fulldoc/html/setup.rb b/templates/default/fulldoc/html/setup.rb
index 43e1e15..48661e2 100644
--- a/templates/default/fulldoc/html/setup.rb
+++ b/templates/default/fulldoc/html/setup.rb
@@ -51,7 +51,7 @@ end
# This method removes the namespace from the root node, generates the class list,
# and then adds it back into the root node.
#
-def class_list(root = Registry.root)
+def class_list(root = Registry.root, tree = TreeContext.new)
return super unless root == Registry.root
include_namespace = YARD::MRuby::CodeObjects::HEADERS_ROOT
diff --git a/yard-mruby.gemspec b/yard-mruby.gemspec
index 08598a4..aa5326e 100644
--- a/yard-mruby.gemspec
+++ b/yard-mruby.gemspec
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
- spec.add_dependency "yard"
+ spec.add_dependency "yard", ">= 0.9.0"
spec.add_development_dependency "bundler", "~> 1.10"
spec.add_development_dependency "rake", "~> 10.0"