summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSeba Gamboa <[email protected]>2015-09-23 15:37:14 -0300
committerSeba Gamboa <[email protected]>2015-09-23 15:37:14 -0300
commit31e52a0a7d6ffc367132f260c18b41c99dbcb5c1 (patch)
tree2b920221a6a1187d8625ff24ebde0b01288fe35f
parent3474e63884bc7fb8dbacd2c94a5b30f6abf155c8 (diff)
downloadyard-mruby-31e52a0a7d6ffc367132f260c18b41c99dbcb5c1.tar.gz
yard-mruby-31e52a0a7d6ffc367132f260c18b41c99dbcb5c1.zip
Handlinc class comments
-rw-r--r--lib/yard/handlers/c/mruby_base.rb11
-rw-r--r--lib/yard/handlers/c/mruby_class_handler.rb4
-rw-r--r--spec/handlers/c/mruby_class_handler_spec.rb9
3 files changed, 22 insertions, 2 deletions
diff --git a/lib/yard/handlers/c/mruby_base.rb b/lib/yard/handlers/c/mruby_base.rb
index 45f0dd6..ccf85b4 100644
--- a/lib/yard/handlers/c/mruby_base.rb
+++ b/lib/yard/handlers/c/mruby_base.rb
@@ -24,5 +24,16 @@ module YARD::Handlers::C
super
end
+
+ def handle_class(var_name, class_name, parent, stmt, in_module = nil)
+ object = super(var_name, class_name, parent, in_module)
+
+ if stmt.comments
+ register_docstring(object, stmt.comments.source, stmt)
+ end
+
+ object
+ end
+
end
end
diff --git a/lib/yard/handlers/c/mruby_class_handler.rb b/lib/yard/handlers/c/mruby_class_handler.rb
index 9e3d1f5..72d516c 100644
--- a/lib/yard/handlers/c/mruby_class_handler.rb
+++ b/lib/yard/handlers/c/mruby_class_handler.rb
@@ -25,10 +25,10 @@ module YARD::Handlers::C
process do
statement.source.scan(TOP_LEVEL_CLASS) do |var_name, class_name, parent|
- handle_class(var_name, class_name, parent)
+ handle_class(var_name, class_name, parent, statement)
end
statement.source.scan(NAMESPACED_CLASS) do |var_name, in_module, class_name, parent|
- handle_class(var_name, class_name, parent, in_module)
+ handle_class(var_name, class_name, parent, statement, in_module)
end
end
end
diff --git a/spec/handlers/c/mruby_class_handler_spec.rb b/spec/handlers/c/mruby_class_handler_spec.rb
index 521ad62..5c13ab2 100644
--- a/spec/handlers/c/mruby_class_handler_spec.rb
+++ b/spec/handlers/c/mruby_class_handler_spec.rb
@@ -29,4 +29,13 @@ describe YARD::Handlers::C::MRubyClassHandler do
expect(Registry.at('Bar').superclass).to eq Registry.at('Foo')
end
+ it "should associate declaration comments as class docstring" do
+ parse_init(<<-eof)
+ /* Docstring! */
+ cFoo = mrb_define_class(mrb, "Foo", mrb->object_class);
+ eof
+
+ expect(Registry.at('Foo').docstring).not_to be_blank
+ end
+
end