summaryrefslogtreecommitdiffhomepage
path: root/lib/yard/mruby/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'lib/yard/mruby/handlers')
-rw-r--r--lib/yard/mruby/handlers/c.rb8
-rw-r--r--lib/yard/mruby/handlers/c/base.rb52
-rw-r--r--lib/yard/mruby/handlers/c/header.rb (renamed from lib/yard/mruby/handlers/header.rb)0
-rw-r--r--lib/yard/mruby/handlers/c/header/base.rb30
-rw-r--r--lib/yard/mruby/handlers/c/header/define_handler.rb (renamed from lib/yard/mruby/handlers/header/define_handler.rb)0
-rw-r--r--lib/yard/mruby/handlers/c/header/function_handler.rb (renamed from lib/yard/mruby/handlers/header/function_handler.rb)5
-rw-r--r--lib/yard/mruby/handlers/c/source.rb7
-rw-r--r--lib/yard/mruby/handlers/c/source/base.rb54
-rw-r--r--lib/yard/mruby/handlers/c/source/class_handler.rb (renamed from lib/yard/mruby/handlers/c/class_handler.rb)2
-rw-r--r--lib/yard/mruby/handlers/c/source/init_handler.rb16
-rw-r--r--lib/yard/mruby/handlers/c/source/method_handler.rb (renamed from lib/yard/mruby/handlers/c/method_handler.rb)2
-rw-r--r--lib/yard/mruby/handlers/c/source/module_handler.rb (renamed from lib/yard/mruby/handlers/c/module_handler.rb)2
-rw-r--r--lib/yard/mruby/handlers/c/source/symbol_handler.rb (renamed from lib/yard/mruby/handlers/c/symbol_handler.rb)2
-rw-r--r--lib/yard/mruby/handlers/header/base.rb28
-rw-r--r--lib/yard/mruby/handlers/header/header_handler.rb0
15 files changed, 118 insertions, 90 deletions
diff --git a/lib/yard/mruby/handlers/c.rb b/lib/yard/mruby/handlers/c.rb
index 2f25788..766989a 100644
--- a/lib/yard/mruby/handlers/c.rb
+++ b/lib/yard/mruby/handlers/c.rb
@@ -1,6 +1,4 @@
-require_relative 'c/base'
-require_relative 'c/symbol_handler'
-require_relative 'c/class_handler'
-require_relative 'c/module_handler'
-require_relative 'c/method_handler'
+require_relative 'c/source'
+require_relative 'c/header'
+YARD::Handlers::Processor.namespace_for_handler.delete(:c)
diff --git a/lib/yard/mruby/handlers/c/base.rb b/lib/yard/mruby/handlers/c/base.rb
deleted file mode 100644
index 6bb2436..0000000
--- a/lib/yard/mruby/handlers/c/base.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-module YARD::MRuby::Handlers
- module C
- class Base < YARD::Handlers::C::Base
-
- DEFAULT_NAMESPACES = {
- # 'mrb->top_self' => '',
- 'object_class' => 'Object',
- 'class_class' => 'Class',
- 'module_class' => 'Module',
- 'proc_class' => 'Proc',
- 'string_class' => 'String',
- 'array_class' => 'Array',
- 'hash_class' => 'Hash',
- 'float_class' => 'Float',
- 'fixnum_class' => 'Fixnum',
- 'true_class' => 'TrueClass',
- 'false_class' => 'FalseClass',
- 'nil_class' => 'NilClass',
- 'symbol_class' => 'Symbol',
- 'kernel_module' => 'Kernel'
- }
-
- def namespace_for_variable(var)
- DEFAULT_NAMESPACES[ var[/^\w+->(\w+)$/, 1] ] || 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
-
- def handle_module(var_name, module_name, stmt, in_module = nil)
- object = super(var_name, module_name, in_module)
-
- if stmt.comments
- register_docstring(object, stmt.comments.source, stmt)
- end
-
- object
- end
-
- end
-
- end
-
- YARD::Handlers::Processor.register_handler_namespace :c, C
-end
diff --git a/lib/yard/mruby/handlers/header.rb b/lib/yard/mruby/handlers/c/header.rb
index 590386f..590386f 100644
--- a/lib/yard/mruby/handlers/header.rb
+++ b/lib/yard/mruby/handlers/c/header.rb
diff --git a/lib/yard/mruby/handlers/c/header/base.rb b/lib/yard/mruby/handlers/c/header/base.rb
new file mode 100644
index 0000000..f0771ca
--- /dev/null
+++ b/lib/yard/mruby/handlers/c/header/base.rb
@@ -0,0 +1,30 @@
+module YARD::MRuby::Handlers
+ module C
+ module Header
+ class Base < YARD::Handlers::C::Base
+ include YARD::MRuby::CodeObjects
+
+ def header(path)
+ # Remove include prefix
+ path = path.gsub(/^.*include\//,'')
+
+ headers[path] ||= begin
+ header = HeaderObject.new(HEADERS_ROOT, path)
+ register header
+ header
+ end
+
+
+ end
+
+ def headers
+ globals.mruby_headers ||= {}
+ end
+
+ end
+
+ end
+
+ YARD::Handlers::Processor.register_handler_namespace :header, Header
+ end
+end
diff --git a/lib/yard/mruby/handlers/header/define_handler.rb b/lib/yard/mruby/handlers/c/header/define_handler.rb
index e69de29..e69de29 100644
--- a/lib/yard/mruby/handlers/header/define_handler.rb
+++ b/lib/yard/mruby/handlers/c/header/define_handler.rb
diff --git a/lib/yard/mruby/handlers/header/function_handler.rb b/lib/yard/mruby/handlers/c/header/function_handler.rb
index 9b98258..6bdb8a6 100644
--- a/lib/yard/mruby/handlers/header/function_handler.rb
+++ b/lib/yard/mruby/handlers/c/header/function_handler.rb
@@ -1,4 +1,4 @@
-module YARD::MRuby::Handlers::Header
+module YARD::MRuby::Handlers::C::Header
class FunctionHandler < Base
MATCH = /
MRB_(API|INLINE)\s+((\w+\s+)+)(\w+)\s*\(
@@ -16,6 +16,9 @@ module YARD::MRuby::Handlers::Header
statement.source.scan(MATCH) do |type, prefix, _, name, *args|
register FunctionObject.new(header, name) do |obj|
+ if statement.comments
+ register_docstring(obj, statement.comments.source, statement)
+ end
end
end
end
diff --git a/lib/yard/mruby/handlers/c/source.rb b/lib/yard/mruby/handlers/c/source.rb
new file mode 100644
index 0000000..8f2a68c
--- /dev/null
+++ b/lib/yard/mruby/handlers/c/source.rb
@@ -0,0 +1,7 @@
+require_relative 'source/base'
+require_relative 'source/init_handler'
+require_relative 'source/symbol_handler'
+require_relative 'source/class_handler'
+require_relative 'source/module_handler'
+require_relative 'source/method_handler'
+
diff --git a/lib/yard/mruby/handlers/c/source/base.rb b/lib/yard/mruby/handlers/c/source/base.rb
new file mode 100644
index 0000000..268ef9f
--- /dev/null
+++ b/lib/yard/mruby/handlers/c/source/base.rb
@@ -0,0 +1,54 @@
+module YARD::MRuby::Handlers
+ module C
+ module Source
+ class Base < YARD::Handlers::C::Base
+
+ DEFAULT_NAMESPACES = {
+ # 'mrb->top_self' => '',
+ 'object_class' => 'Object',
+ 'class_class' => 'Class',
+ 'module_class' => 'Module',
+ 'proc_class' => 'Proc',
+ 'string_class' => 'String',
+ 'array_class' => 'Array',
+ 'hash_class' => 'Hash',
+ 'float_class' => 'Float',
+ 'fixnum_class' => 'Fixnum',
+ 'true_class' => 'TrueClass',
+ 'false_class' => 'FalseClass',
+ 'nil_class' => 'NilClass',
+ 'symbol_class' => 'Symbol',
+ 'kernel_module' => 'Kernel'
+ }
+
+ def namespace_for_variable(var)
+ DEFAULT_NAMESPACES[ var[/^\w+->(\w+)$/, 1] ] || 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
+
+ def handle_module(var_name, module_name, stmt, in_module = nil)
+ object = super(var_name, module_name, in_module)
+
+ if stmt.comments
+ register_docstring(object, stmt.comments.source, stmt)
+ end
+
+ object
+ end
+
+ end
+
+ end
+
+ YARD::Handlers::Processor.register_handler_namespace :source, Source
+ end
+end
diff --git a/lib/yard/mruby/handlers/c/class_handler.rb b/lib/yard/mruby/handlers/c/source/class_handler.rb
index f0223f0..a8f3b84 100644
--- a/lib/yard/mruby/handlers/c/class_handler.rb
+++ b/lib/yard/mruby/handlers/c/source/class_handler.rb
@@ -1,4 +1,4 @@
-module YARD::MRuby::Handlers::C
+module YARD::MRuby::Handlers::C::Source
class ClassHandler < Base
TOP_LEVEL_CLASS = /([\w]+)\s*=\s*mrb_define_class\s*
diff --git a/lib/yard/mruby/handlers/c/source/init_handler.rb b/lib/yard/mruby/handlers/c/source/init_handler.rb
new file mode 100644
index 0000000..43115a0
--- /dev/null
+++ b/lib/yard/mruby/handlers/c/source/init_handler.rb
@@ -0,0 +1,16 @@
+module YARD::MRuby::Handlers::C::Source
+ class InitHandler < Base
+ MATCH1 = /mrb_\w+_gem_init\s*\(/mx
+ MATCH2 = /mrb_init_\w\s*\(/mx
+
+ handles MATCH1
+ handles MATCH2
+ statement_class ToplevelStatement
+
+ process do
+ parse_block
+ end
+
+ end
+end
+
diff --git a/lib/yard/mruby/handlers/c/method_handler.rb b/lib/yard/mruby/handlers/c/source/method_handler.rb
index d60b568..b744f54 100644
--- a/lib/yard/mruby/handlers/c/method_handler.rb
+++ b/lib/yard/mruby/handlers/c/source/method_handler.rb
@@ -1,4 +1,4 @@
-module YARD::MRuby::Handlers::C
+module YARD::MRuby::Handlers::C::Source
class MethodHandler < Base
MATCH1 = /mrb_define_(
method |
diff --git a/lib/yard/mruby/handlers/c/module_handler.rb b/lib/yard/mruby/handlers/c/source/module_handler.rb
index 6b38be9..587fc3e 100644
--- a/lib/yard/mruby/handlers/c/module_handler.rb
+++ b/lib/yard/mruby/handlers/c/source/module_handler.rb
@@ -1,4 +1,4 @@
-module YARD::MRuby::Handlers::C
+module YARD::MRuby::Handlers::C::Source
class ModuleHandler < Base
TOP_LEVEL_MODULE = /([\w]+)\s*=\s*mrb_define_module\s*
diff --git a/lib/yard/mruby/handlers/c/symbol_handler.rb b/lib/yard/mruby/handlers/c/source/symbol_handler.rb
index 8f24b93..a1e3caa 100644
--- a/lib/yard/mruby/handlers/c/symbol_handler.rb
+++ b/lib/yard/mruby/handlers/c/source/symbol_handler.rb
@@ -1,4 +1,4 @@
-module YARD::MRuby::Handlers::C
+module YARD::MRuby::Handlers::C::Source
# Keeps track of function bodies for symbol lookup during MRuby method declarations
class SymbolHandler < Base
diff --git a/lib/yard/mruby/handlers/header/base.rb b/lib/yard/mruby/handlers/header/base.rb
deleted file mode 100644
index 1f3f16e..0000000
--- a/lib/yard/mruby/handlers/header/base.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-module YARD::MRuby::Handlers
- module Header
- class Base < YARD::Handlers::C::Base
- include YARD::MRuby::CodeObjects
-
- def header(path)
- # Remove include prefix
- path = path.gsub(/^.*include\//,'')
-
- headers[path] ||= begin
- header = HeaderObject.new(HEADERS_ROOT, path)
- register header
- header
- end
-
-
- end
-
- def headers
- globals.mruby_headers ||= {}
- end
-
- end
-
- end
-
- YARD::Handlers::Processor.register_handler_namespace :header, Header
-end
diff --git a/lib/yard/mruby/handlers/header/header_handler.rb b/lib/yard/mruby/handlers/header/header_handler.rb
deleted file mode 100644
index e69de29..0000000
--- a/lib/yard/mruby/handlers/header/header_handler.rb
+++ /dev/null