summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorSeba Gamboa <[email protected]>2015-09-24 18:25:12 -0300
committerSeba Gamboa <[email protected]>2015-09-24 18:25:12 -0300
commitc1f2404de71e9a8f73271b05f59a225728212069 (patch)
treeb4f3842661dd6edd38c594579335e1ae5ea61f33 /lib
parentcc49ade5e7029e4d8d8d62b7c09590042b43d65d (diff)
downloadyard-mruby-c1f2404de71e9a8f73271b05f59a225728212069.tar.gz
yard-mruby-c1f2404de71e9a8f73271b05f59a225728212069.zip
Generating C API HTML Layout
Diffstat (limited to 'lib')
-rw-r--r--lib/yard/mruby.rb1
-rw-r--r--lib/yard/mruby/code_objects.rb1
-rw-r--r--lib/yard/mruby/code_objects/header_object.rb11
-rw-r--r--lib/yard/mruby/code_objects/namespace_object.rb16
-rw-r--r--lib/yard/mruby/handlers/header/base.rb2
-rw-r--r--lib/yard/mruby/templates.rb7
6 files changed, 37 insertions, 1 deletions
diff --git a/lib/yard/mruby.rb b/lib/yard/mruby.rb
index 2ccd6e8..194c9e7 100644
--- a/lib/yard/mruby.rb
+++ b/lib/yard/mruby.rb
@@ -2,3 +2,4 @@ require_relative "mruby/version"
require_relative "mruby/code_objects"
require_relative "mruby/parser"
require_relative "mruby/handlers"
+require_relative "mruby/templates"
diff --git a/lib/yard/mruby/code_objects.rb b/lib/yard/mruby/code_objects.rb
index 83cf18d..65b2dd5 100644
--- a/lib/yard/mruby/code_objects.rb
+++ b/lib/yard/mruby/code_objects.rb
@@ -1,3 +1,4 @@
+require_relative 'code_objects/namespace_object'
require_relative 'code_objects/header_object'
require_relative 'code_objects/function_object'
require_relative 'code_objects/define_object'
diff --git a/lib/yard/mruby/code_objects/header_object.rb b/lib/yard/mruby/code_objects/header_object.rb
index 99fb3cf..519d76c 100644
--- a/lib/yard/mruby/code_objects/header_object.rb
+++ b/lib/yard/mruby/code_objects/header_object.rb
@@ -3,5 +3,16 @@ module YARD::MRuby::CodeObjects
# A HeaderObject represents a MRuby header inside an include directory
# It groups C Functions and define macros.
class HeaderObject < YARD::CodeObjects::NamespaceObject
+ def functions
+ children.find_all {|d| d.is_a?(FunctionObject) }
+ end
+
+ def path
+ self.name
+ end
+
+ def title
+ super.to_s
+ end
end
end
diff --git a/lib/yard/mruby/code_objects/namespace_object.rb b/lib/yard/mruby/code_objects/namespace_object.rb
new file mode 100644
index 0000000..896b84b
--- /dev/null
+++ b/lib/yard/mruby/code_objects/namespace_object.rb
@@ -0,0 +1,16 @@
+module YARD::MRuby::CodeObjects
+
+ class NamespaceObject < YARD::CodeObjects::NamespaceObject
+ def value ; nil ; end
+ end
+
+ class IncludeDirectory < NamespaceObject
+ def headers
+ children
+ end
+ end
+
+ INCLUDE_DIRECTORY = IncludeDirectory.new(:root, "include")
+ ## YARD::Registry.register INCLUDE_DIRECTORY
+
+end
diff --git a/lib/yard/mruby/handlers/header/base.rb b/lib/yard/mruby/handlers/header/base.rb
index 58178fe..42178d0 100644
--- a/lib/yard/mruby/handlers/header/base.rb
+++ b/lib/yard/mruby/handlers/header/base.rb
@@ -8,7 +8,7 @@ module YARD::MRuby::Handlers
path = path.gsub(/^.*include\//,'')
headers[path] ||= begin
- header = HeaderObject.new(:root, path)
+ header = HeaderObject.new(INCLUDE_DIRECTORY, path)
register header
header
end
diff --git a/lib/yard/mruby/templates.rb b/lib/yard/mruby/templates.rb
new file mode 100644
index 0000000..43ffd99
--- /dev/null
+++ b/lib/yard/mruby/templates.rb
@@ -0,0 +1,7 @@
+YARD::MRuby::TEMPLATES_PATH = File.expand_path('../../../../templates', __FILE__)
+
+# This registered template works for yardoc
+YARD::Templates::Engine.register_template_path YARD::MRuby::TEMPLATES_PATH
+
+# The following static paths and templates are for yard server
+# YARD::Server.register_static_path File.join(YARD::MRuby::TEMPLATES_PATH,'default/fulldoc/html')