my_yard 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +5 -0
  3. data/doc/GlobalSettings.html +556 -0
  4. data/doc/MyYard.html +1203 -0
  5. data/doc/TreeContext/Alternator.html +301 -0
  6. data/doc/TreeContext.html +471 -0
  7. data/doc/YardTheme.html +750 -0
  8. data/doc/YardThemeDefaults.html +418 -0
  9. data/doc/_index.html +174 -0
  10. data/doc/class_and_method_list.html +842 -0
  11. data/doc/class_list.html +51 -0
  12. data/doc/css/common.css +36 -0
  13. data/doc/css/full_list.css +62 -0
  14. data/doc/css/style.css +476 -0
  15. data/doc/file.README.html +79 -0
  16. data/doc/file_list.html +56 -0
  17. data/doc/frames.html +17 -0
  18. data/doc/index.html +79 -0
  19. data/doc/js/app.js +243 -0
  20. data/doc/js/full_list.js +213 -0
  21. data/doc/js/jquery.js +4 -0
  22. data/doc/just_file_list.html +37 -0
  23. data/doc/method_list.html +835 -0
  24. data/full_list.css +58 -0
  25. data/home_my_yard/templates/visualruby/class/dot/setup.rb +6 -0
  26. data/home_my_yard/templates/visualruby/class/dot/superklass.erb +3 -0
  27. data/home_my_yard/templates/visualruby/class/html/constructor_details.erb +8 -0
  28. data/home_my_yard/templates/visualruby/class/html/setup.rb +1 -0
  29. data/home_my_yard/templates/visualruby/class/html/subclasses.erb +4 -0
  30. data/home_my_yard/templates/visualruby/class/setup.rb +36 -0
  31. data/home_my_yard/templates/visualruby/class/text/setup.rb +11 -0
  32. data/home_my_yard/templates/visualruby/class/text/subclasses.erb +5 -0
  33. data/home_my_yard/templates/visualruby/constant/text/header.erb +11 -0
  34. data/home_my_yard/templates/visualruby/constant/text/setup.rb +3 -0
  35. data/home_my_yard/templates/visualruby/docstring/html/abstract.erb +4 -0
  36. data/home_my_yard/templates/visualruby/docstring/html/deprecated.erb +1 -0
  37. data/home_my_yard/templates/visualruby/docstring/html/index.erb +5 -0
  38. data/home_my_yard/templates/visualruby/docstring/html/note.erb +6 -0
  39. data/home_my_yard/templates/visualruby/docstring/html/private.erb +4 -0
  40. data/home_my_yard/templates/visualruby/docstring/html/returns_void.erb +1 -0
  41. data/home_my_yard/templates/visualruby/docstring/html/text.erb +1 -0
  42. data/home_my_yard/templates/visualruby/docstring/html/todo.erb +6 -0
  43. data/home_my_yard/templates/visualruby/docstring/setup.rb +51 -0
  44. data/home_my_yard/templates/visualruby/docstring/text/abstract.erb +2 -0
  45. data/home_my_yard/templates/visualruby/docstring/text/deprecated.erb +2 -0
  46. data/home_my_yard/templates/visualruby/docstring/text/index.erb +2 -0
  47. data/home_my_yard/templates/visualruby/docstring/text/note.erb +4 -0
  48. data/home_my_yard/templates/visualruby/docstring/text/private.erb +2 -0
  49. data/home_my_yard/templates/visualruby/docstring/text/returns_void.erb +1 -0
  50. data/home_my_yard/templates/visualruby/docstring/text/text.erb +1 -0
  51. data/home_my_yard/templates/visualruby/docstring/text/todo.erb +4 -0
  52. data/home_my_yard/templates/visualruby/fulldoc/html/class_and_method.erb +42 -0
  53. data/home_my_yard/templates/visualruby/fulldoc/html/css/common.css +1 -0
  54. data/home_my_yard/templates/visualruby/fulldoc/html/css/full_list.css +62 -0
  55. data/home_my_yard/templates/visualruby/fulldoc/html/css/style.css +476 -0
  56. data/home_my_yard/templates/visualruby/fulldoc/html/frames.erb +17 -0
  57. data/home_my_yard/templates/visualruby/fulldoc/html/full_list.erb +37 -0
  58. data/home_my_yard/templates/visualruby/fulldoc/html/full_list_class.erb +2 -0
  59. data/home_my_yard/templates/visualruby/fulldoc/html/full_list_file.erb +7 -0
  60. data/home_my_yard/templates/visualruby/fulldoc/html/full_list_method.erb +10 -0
  61. data/home_my_yard/templates/visualruby/fulldoc/html/js/app.js +243 -0
  62. data/home_my_yard/templates/visualruby/fulldoc/html/js/full_list.js +213 -0
  63. data/home_my_yard/templates/visualruby/fulldoc/html/js/jquery.js +4 -0
  64. data/home_my_yard/templates/visualruby/fulldoc/html/just_files.erb +33 -0
  65. data/home_my_yard/templates/visualruby/fulldoc/html/setup.rb +267 -0
  66. data/home_my_yard/templates/visualruby/layout/dot/header.erb +6 -0
  67. data/home_my_yard/templates/visualruby/layout/dot/setup.rb +14 -0
  68. data/home_my_yard/templates/visualruby/layout/html/breadcrumb.erb +11 -0
  69. data/home_my_yard/templates/visualruby/layout/html/files.erb +11 -0
  70. data/home_my_yard/templates/visualruby/layout/html/footer.erb +5 -0
  71. data/home_my_yard/templates/visualruby/layout/html/headers.erb +15 -0
  72. data/home_my_yard/templates/visualruby/layout/html/index.erb +2 -0
  73. data/home_my_yard/templates/visualruby/layout/html/layout.erb +30 -0
  74. data/home_my_yard/templates/visualruby/layout/html/listing.erb +4 -0
  75. data/home_my_yard/templates/visualruby/layout/html/objects.erb +32 -0
  76. data/home_my_yard/templates/visualruby/layout/html/script_setup.erb +4 -0
  77. data/home_my_yard/templates/visualruby/layout/html/search.erb +13 -0
  78. data/home_my_yard/templates/visualruby/layout/html/setup.rb +88 -0
  79. data/home_my_yard/templates/visualruby/method/html/header.erb +17 -0
  80. data/home_my_yard/templates/visualruby/method/setup.rb +3 -0
  81. data/home_my_yard/templates/visualruby/method/text/header.erb +1 -0
  82. data/home_my_yard/templates/visualruby/method_details/html/header.erb +3 -0
  83. data/home_my_yard/templates/visualruby/method_details/html/method_signature.erb +25 -0
  84. data/home_my_yard/templates/visualruby/method_details/html/source.erb +10 -0
  85. data/home_my_yard/templates/visualruby/method_details/setup.rb +10 -0
  86. data/home_my_yard/templates/visualruby/method_details/text/header.erb +10 -0
  87. data/home_my_yard/templates/visualruby/method_details/text/method_signature.erb +12 -0
  88. data/home_my_yard/templates/visualruby/method_details/text/setup.rb +10 -0
  89. data/home_my_yard/templates/visualruby/module/dot/child.erb +1 -0
  90. data/home_my_yard/templates/visualruby/module/dot/dependencies.erb +3 -0
  91. data/home_my_yard/templates/visualruby/module/dot/header.erb +6 -0
  92. data/home_my_yard/templates/visualruby/module/dot/info.erb +14 -0
  93. data/home_my_yard/templates/visualruby/module/dot/setup.rb +14 -0
  94. data/home_my_yard/templates/visualruby/module/html/attribute_details.erb +10 -0
  95. data/home_my_yard/templates/visualruby/module/html/attribute_summary.erb +8 -0
  96. data/home_my_yard/templates/visualruby/module/html/box_info.erb +43 -0
  97. data/home_my_yard/templates/visualruby/module/html/children.erb +8 -0
  98. data/home_my_yard/templates/visualruby/module/html/constant_summary.erb +13 -0
  99. data/home_my_yard/templates/visualruby/module/html/defines.erb +3 -0
  100. data/home_my_yard/templates/visualruby/module/html/header.erb +5 -0
  101. data/home_my_yard/templates/visualruby/module/html/inherited_attributes.erb +14 -0
  102. data/home_my_yard/templates/visualruby/module/html/inherited_constants.erb +8 -0
  103. data/home_my_yard/templates/visualruby/module/html/inherited_methods.erb +19 -0
  104. data/home_my_yard/templates/visualruby/module/html/item_summary.erb +40 -0
  105. data/home_my_yard/templates/visualruby/module/html/method_details_list.erb +9 -0
  106. data/home_my_yard/templates/visualruby/module/html/method_summary.erb +14 -0
  107. data/home_my_yard/templates/visualruby/module/html/methodmissing.erb +12 -0
  108. data/home_my_yard/templates/visualruby/module/html/pre_docstring.erb +1 -0
  109. data/home_my_yard/templates/visualruby/module/setup.rb +164 -0
  110. data/home_my_yard/templates/visualruby/module/text/children.erb +10 -0
  111. data/home_my_yard/templates/visualruby/module/text/class_meths_list.erb +8 -0
  112. data/home_my_yard/templates/visualruby/module/text/extends.erb +8 -0
  113. data/home_my_yard/templates/visualruby/module/text/header.erb +7 -0
  114. data/home_my_yard/templates/visualruby/module/text/includes.erb +8 -0
  115. data/home_my_yard/templates/visualruby/module/text/instance_meths_list.erb +8 -0
  116. data/home_my_yard/templates/visualruby/module/text/setup.rb +12 -0
  117. data/home_my_yard/templates/visualruby/onefile/html/files.erb +5 -0
  118. data/home_my_yard/templates/visualruby/onefile/html/headers.erb +6 -0
  119. data/home_my_yard/templates/visualruby/onefile/html/layout.erb +17 -0
  120. data/home_my_yard/templates/visualruby/onefile/html/readme.erb +3 -0
  121. data/home_my_yard/templates/visualruby/onefile/html/setup.rb +61 -0
  122. data/home_my_yard/templates/visualruby/root/dot/child.erb +3 -0
  123. data/home_my_yard/templates/visualruby/root/dot/setup.rb +5 -0
  124. data/home_my_yard/templates/visualruby/root/html/setup.rb +1 -0
  125. data/home_my_yard/templates/visualruby/tags/html/example.erb +11 -0
  126. data/home_my_yard/templates/visualruby/tags/html/index.erb +3 -0
  127. data/home_my_yard/templates/visualruby/tags/html/option.erb +24 -0
  128. data/home_my_yard/templates/visualruby/tags/html/overload.erb +14 -0
  129. data/home_my_yard/templates/visualruby/tags/html/see.erb +8 -0
  130. data/home_my_yard/templates/visualruby/tags/html/tag.erb +20 -0
  131. data/home_my_yard/templates/visualruby/tags/setup.rb +55 -0
  132. data/home_my_yard/templates/visualruby/tags/text/example.erb +12 -0
  133. data/home_my_yard/templates/visualruby/tags/text/index.erb +1 -0
  134. data/home_my_yard/templates/visualruby/tags/text/option.erb +20 -0
  135. data/home_my_yard/templates/visualruby/tags/text/overload.erb +19 -0
  136. data/home_my_yard/templates/visualruby/tags/text/see.erb +11 -0
  137. data/home_my_yard/templates/visualruby/tags/text/tag.erb +13 -0
  138. data/home_my_yard/themes/visualruby.yaml +36 -0
  139. data/install.md +11 -0
  140. data/my_yard +31 -0
  141. data/my_yard.gemspec +20 -0
  142. data/src/GlobalSettings.rb +22 -0
  143. data/src/MyYard.rb +195 -0
  144. data/src/YardTheme.rb +77 -0
  145. data/src/YardThemeDefaults.rb +100 -0
  146. data/src/glade/MyYard.glade +595 -0
  147. data/src/glade/MyYard.glade~ +595 -0
  148. data/src/glade/YardTheme.glade +791 -0
  149. data/src/glade/YardTheme.glade~ +812 -0
  150. data/style.css +474 -0
  151. metadata +224 -0
@@ -0,0 +1,164 @@
1
+ include Helpers::ModuleHelper
2
+
3
+ def init
4
+ sections :header, :box_info, :pre_docstring, T('docstring'), :children,
5
+ :constant_summary, [T('docstring')], :inherited_constants,
6
+ :attribute_summary, [:item_summary], :inherited_attributes,
7
+ :method_summary, [:item_summary], :inherited_methods,
8
+ :methodmissing, [T('method_details')],
9
+ :attribute_details, [T('method_details')],
10
+ :method_details_list, [T('method_details')]
11
+ end
12
+
13
+ def pre_docstring
14
+ return if object.docstring.blank?
15
+ erb(:pre_docstring)
16
+ end
17
+
18
+ def children
19
+ @inner = [[:modules, []], [:classes, []]]
20
+ object.children.each do |child|
21
+ @inner[0][1] << child if child.type == :module
22
+ @inner[1][1] << child if child.type == :class
23
+ end
24
+ @inner.map! {|v| [v[0], run_verifier(v[1].sort_by {|o| o.name.to_s })] }
25
+ return if (@inner[0][1].size + @inner[1][1].size) == 0
26
+ erb(:children)
27
+ end
28
+
29
+ def methodmissing
30
+ mms = object.meths(:inherited => true, :included => true)
31
+ return unless @mm = mms.find {|o| o.name == :method_missing && o.scope == :instance }
32
+ erb(:methodmissing)
33
+ end
34
+
35
+ def method_listing(include_specials = true)
36
+ return @smeths ||= method_listing.reject {|o| special_method?(o) } unless include_specials
37
+ return @meths if @meths
38
+ @meths = object.meths(:inherited => false, :included => !options.embed_mixins.empty?)
39
+ if options.embed_mixins.size > 0
40
+ @meths = @meths.reject {|m| options.embed_mixins_match?(m.namespace) == false }
41
+ end
42
+ @meths = sort_listing(prune_method_listing(@meths))
43
+ @meths
44
+ end
45
+
46
+ def special_method?(meth)
47
+ return true if meth.name(true) == '#method_missing'
48
+ return true if meth.constructor?
49
+ false
50
+ end
51
+
52
+ def attr_listing
53
+ return @attrs if @attrs
54
+ @attrs = []
55
+ object.inheritance_tree(true).each do |superclass|
56
+ next if superclass.is_a?(CodeObjects::Proxy)
57
+ next if options.embed_mixins.size > 0 &&
58
+ options.embed_mixins_match?(superclass) == false
59
+ [:class, :instance].each do |scope|
60
+ superclass.attributes[scope].each do |name, rw|
61
+ attr = prune_method_listing([rw[:read], rw[:write]].compact, false).first
62
+ @attrs << attr if attr
63
+ end
64
+ end
65
+ break if options.embed_mixins.empty?
66
+ end
67
+ @attrs = sort_listing(@attrs)
68
+ end
69
+
70
+ def constant_listing
71
+ return @constants if @constants
72
+ @constants = object.constants(:included => false, :inherited => false)
73
+ @constants += object.cvars
74
+ @constants = run_verifier(@constants)
75
+ @constants
76
+ end
77
+
78
+ def sort_listing(list)
79
+ list.sort_by {|o| [o.scope.to_s, o.name.to_s.downcase] }
80
+ end
81
+
82
+ def inherited_attr_list(&block)
83
+ object.inheritance_tree(true)[1..-1].each do |superclass|
84
+ next if superclass.is_a?(YARD::CodeObjects::Proxy)
85
+ next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
86
+ attribs = superclass.attributes[:instance]
87
+ attribs = attribs.reject {|name, rw| object.child(:scope => :instance, :name => name) != nil }
88
+ attribs = attribs.sort_by {|args| args.first.to_s }.map {|n, m| m[:read] || m[:write] }
89
+ attribs = prune_method_listing(attribs, false)
90
+ yield superclass, attribs if attribs.size > 0
91
+ end
92
+ end
93
+
94
+ def inherited_constant_list(&block)
95
+ object.inheritance_tree(true)[1..-1].each do |superclass|
96
+ next if superclass.is_a?(YARD::CodeObjects::Proxy)
97
+ next if options.embed_mixins.size > 0 && options.embed_mixins_match?(superclass) != false
98
+ consts = superclass.constants(:included => false, :inherited => false)
99
+ consts = consts.reject {|const| object.child(:type => :constant, :name => const.name) != nil }
100
+ consts = consts.sort_by {|const| const.name.to_s }
101
+ consts = run_verifier(consts)
102
+ yield superclass, consts if consts.size > 0
103
+ end
104
+ end
105
+
106
+ def docstring_full(obj)
107
+ docstring = ""
108
+ if obj.tags(:overload).size == 1 && obj.docstring.empty?
109
+ docstring = obj.tag(:overload).docstring
110
+ else
111
+ docstring = obj.docstring
112
+ end
113
+
114
+ if docstring.summary.empty? && obj.tags(:return).size == 1 && obj.tag(:return).text
115
+ docstring = Docstring.new(obj.tag(:return).text.gsub(/\A([a-z])/) {|x| x.upcase }.strip)
116
+ end
117
+
118
+ docstring
119
+ end
120
+
121
+ def docstring_summary(obj)
122
+ docstring_full(obj).summary
123
+ end
124
+
125
+ def groups(list, type = "Method")
126
+ if groups_data = object.groups
127
+ list.each {|m| groups_data |= [m.group] if m.group && owner != m.namespace }
128
+ others = list.select {|m| !m.group || !groups_data.include?(m.group) }
129
+ groups_data.each do |name|
130
+ items = list.select {|m| m.group == name }
131
+ yield(items, name) unless items.empty?
132
+ end
133
+ else
134
+ others = []
135
+ group_data = {}
136
+ list.each do |meth|
137
+ if meth.group
138
+ (group_data[meth.group] ||= []) << meth
139
+ else
140
+ others << meth
141
+ end
142
+ end
143
+ group_data.each {|group, items| yield(items, group) unless items.empty? }
144
+ end
145
+
146
+ scopes(others) {|items, scope| yield(items, "#{scope.to_s.capitalize} #{type} Summary") }
147
+ end
148
+
149
+ def scopes(list)
150
+ [:class, :instance].each do |scope|
151
+ items = list.select {|m| m.scope == scope }
152
+ yield(items, scope) unless items.empty?
153
+ end
154
+ end
155
+
156
+ def mixed_into(object)
157
+ unless globals.mixed_into
158
+ globals.mixed_into = {}
159
+ list = run_verifier Registry.all(:class, :module)
160
+ list.each {|o| o.mixins.each {|m| (globals.mixed_into[m.path] ||= []) << o } }
161
+ end
162
+
163
+ globals.mixed_into[object.path] || []
164
+ end
@@ -0,0 +1,10 @@
1
+ Defined Under Namespace:
2
+ ------------------------
3
+
4
+ <% @inner.each do |name, list| %>
5
+ <% if list.size > 0 %>
6
+ <% text = list.map {|c| c.name }.join(", ") + " (#{name})" %>
7
+ <%= indent(wrap(text)) %>
8
+
9
+ <% end %>
10
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if class_meths.size > 0 %>
2
+ Class methods:
3
+ --------------
4
+
5
+ <%= indent wrap(class_meths.map {|o| o.name.to_s }.join(", "), 68) %>
6
+
7
+
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if object.mixins(:class).size > 0 %>
2
+ Extended by:
3
+ ------------
4
+
5
+ <%= indent wrap(object.mixins(:class).join(", "), 68) %>
6
+
7
+
8
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <%= title_align_right format_object_title(object) %>
2
+
3
+ <%= yieldall %>
4
+
5
+ <%= hr %>
6
+
7
+
@@ -0,0 +1,8 @@
1
+ <% if object.mixins(:instance).size > 0 %>
2
+ Includes:
3
+ ---------
4
+
5
+ <%= indent wrap(object.mixins(:instance).join(", "), 68) %>
6
+
7
+
8
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if instance_meths.size > 0 %>
2
+ Instance methods:
3
+ -----------------
4
+
5
+ <%= indent wrap(instance_meths.map {|o| o.name.to_s }.join(", "), 68) %>
6
+
7
+
8
+ <% end %>
@@ -0,0 +1,12 @@
1
+ def init
2
+ sections :header, [T('docstring')], :children, :includes, :extends,
3
+ :class_meths_list, :instance_meths_list
4
+ end
5
+
6
+ def class_meths
7
+ @classmeths ||= method_listing.select {|o| o.scope == :class }
8
+ end
9
+
10
+ def instance_meths
11
+ @instmeths ||= method_listing.select {|o| o.scope == :instance }
12
+ end
@@ -0,0 +1,5 @@
1
+ <% @files.each do |file| %>
2
+ <% @file = file %>
3
+ <h2><%= file.title %></h2>
4
+ <%= diskfile %>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ <style type="text/css">
2
+ <%= @css_data %>
3
+ </style>
4
+ <script type="text/javascript" charset="utf-8">
5
+ <%= @js_data %>
6
+ </script>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=<%= charset %>" />
6
+ <title><%= @title %></title>
7
+ <%= erb(:headers) %>
8
+ </head>
9
+ <body>
10
+ <div id="content">
11
+ <h1><%= @title %></h1>
12
+ <%= yieldall %>
13
+ </div>
14
+
15
+ <%= erb(:footer) %>
16
+ </body>
17
+ </html>
@@ -0,0 +1,3 @@
1
+ <div id="readme">
2
+ <%= htmlify(parse_top_comments_from_file) %>
3
+ </div>
@@ -0,0 +1,61 @@
1
+ include T('default/layout/html')
2
+ include YARD::Parser::Ruby::Legacy
3
+
4
+ def init
5
+ override_serializer
6
+ @object = YARD::Registry.root
7
+ @files.shift
8
+ @objects.delete(YARD::Registry.root)
9
+ @objects.unshift(YARD::Registry.root)
10
+ sections :layout, [:readme, :files, :all_objects]
11
+ end
12
+
13
+ def all_objects
14
+ @objects.map {|obj| obj.format(options) }.join("\n")
15
+ end
16
+
17
+ def layout
18
+ fulldoc = Object.new.extend(T('fulldoc'))
19
+ layout = Object.new.extend(T('layout'))
20
+ @css_data = layout.stylesheets.map {|sheet| read_asset(sheet) }.join("\n")
21
+ @js_data = layout.javascripts.map {|script| read_asset(script) }.join("")
22
+
23
+ erb(:layout)
24
+ end
25
+
26
+ def read_asset(file)
27
+ return unless file = T('fulldoc').find_file(file)
28
+ data = File.read(file)
29
+ superfile = self.class.find_nth_file('fulldoc', 2)
30
+ data.gsub!('{{{__super__}}}', superfile ? IO.read(superfile) : "")
31
+ data
32
+ end
33
+
34
+ private
35
+
36
+ def parse_top_comments_from_file
37
+ return unless @readme
38
+ return @readme.contents unless @readme.filename =~ /\.rb$/
39
+ data = ""
40
+ tokens = TokenList.new(@readme.contents)
41
+ tokens.each do |token|
42
+ break unless token.is_a?(RubyToken::TkCOMMENT) || token.is_a?(RubyToken::TkNL)
43
+ data << (token.text[/\A#\s{0,1}(.*)/, 1] || "\n")
44
+ end
45
+ YARD::Docstring.new(data)
46
+ end
47
+
48
+ def override_serializer
49
+ return if @serializer.nil?
50
+ class << @serializer
51
+ def serialize(object, data)
52
+ return unless object == 'index.html'
53
+ super
54
+ end
55
+
56
+ def serialized_path(object)
57
+ return object if object.is_a?(String)
58
+ return 'index.html'
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ <% if inner = yieldall.gsub("\n", '') %>
2
+ Root [label="{<%= inner %>}" rank=sink];
3
+ <% end %>
@@ -0,0 +1,5 @@
1
+ include T('default/module/dot')
2
+
3
+ def format_path(object)
4
+ ""
5
+ end
@@ -0,0 +1 @@
1
+ include T('default/module/html')
@@ -0,0 +1,11 @@
1
+ <% if object.has_tag?(:example) %>
2
+ <div class="examples">
3
+ <p class="tag_title">Examples:</p>
4
+ <% object.tags(:example).each do |tag| %>
5
+ <% unless tag.name.empty? %>
6
+ <p class="example_title"><%= htmlify_line(tag.name) %></p>
7
+ <% end %>
8
+ <pre class="example code"><code><%= html_syntax_highlight(tag.text) %></code></pre>
9
+ <% end %>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <div class="tags">
2
+ <%= yieldall %>
3
+ </div>
@@ -0,0 +1,24 @@
1
+ <% if object.has_tag?(:option) %>
2
+ <% object.parameters.each do |param, default| %>
3
+ <% tags = object.tags(:option).select {|x| x.name.to_s == param.to_s.sub(/^\*+/, '') } %>
4
+ <% next if tags.empty? %>
5
+ <p class="tag_title">Options Hash (<tt><%= param %></tt>):</p>
6
+ <ul class="option">
7
+ <% for tag in tags %>
8
+ <li>
9
+ <span class="name"><%= tag.pair.name %></span>
10
+ <span class="type"><%= format_types(tag.pair.types || ['Object']) %></span>
11
+ <span class="default">
12
+ <% if tag.pair.defaults %>
13
+ &mdash; default:
14
+ <%= tag.pair.defaults.map {|t| "<tt>#{h t}</tt>" }.join(", ") %>
15
+ <% end %>
16
+ </span>
17
+ <% if tag.pair.text && tag.pair.text =~ /\S/ %>
18
+ &mdash; <%= htmlify_line(tag.pair.text) %>
19
+ <% end %>
20
+ </li>
21
+ <% end %>
22
+ </ul>
23
+ <% end %>
24
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <% if object.tags(:overload).size == 1 %>
2
+ <%= yieldall :object => object.tag(:overload) %>
3
+ <% elsif object.has_tag?(:overload) && object.tags(:overload).any? {|o| !o.docstring.blank? } %>
4
+ <p class="tag_title">Overloads:</p>
5
+ <ul class="overload">
6
+ <% object.tags(:overload).each do |overload| %>
7
+ <% next if overload.docstring.blank? %>
8
+ <li class="overload_item">
9
+ <span class="signature"><%= signature(overload, false, false) %></span>
10
+ <%= yieldall :object => overload %>
11
+ </li>
12
+ <% end %>
13
+ </ul>
14
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% if object.has_tag?(:see) %>
2
+ <p class="tag_title">See Also:</p>
3
+ <ul class="see">
4
+ <% for tag in object.tags(:see) %>
5
+ <li><%= linkify(tag.name, tag.text) %></li>
6
+ <% end %>
7
+ </ul>
8
+ <% end %>
@@ -0,0 +1,20 @@
1
+ <p class="tag_title"><%= @label ? @label : YARD::Tags::Library.labels[@name] %>:</p>
2
+ <ul class="<%= @name %>">
3
+ <% object.tags(@name).each do |tag| %>
4
+ <li>
5
+ <% unless @no_names %>
6
+ <span class='name'><%= h tag.name %></span>
7
+ <% end %>
8
+ <% unless @no_types %>
9
+ <span class='type'><%= format_types(tag.types) %></span>
10
+ <% end %>
11
+ <% if @name == :param && (o=object.parameters.assoc(tag.name.to_s)) && o[1] %>
12
+ <em class="default">(defaults to: <tt><%= h o[1] %></tt>)</em>
13
+ <% end %>
14
+ <% if tag.text && !tag.text.empty? %>
15
+ <% unless (@no_types || tag.types.nil? || tag.types.empty?) && @no_names %>&mdash;<% end %>
16
+ <%= htmlify_line(tag.text) %>
17
+ <% end %>
18
+ </li>
19
+ <% end %>
20
+ </ul>
@@ -0,0 +1,55 @@
1
+ def init
2
+ tags = Tags::Library.visible_tags - [:abstract, :deprecated, :note, :todo]
3
+ create_tag_methods(tags - [:example, :option, :overload, :see])
4
+ sections :index, tags.map {|t| t.to_s.gsub('.', '_').to_sym }
5
+ sections.any(:overload).push(T('docstring'))
6
+ end
7
+
8
+ def return
9
+ if object.type == :method
10
+ return if object.constructor?
11
+ return if object.tags(:return).size == 1 && object.tag(:return).types == ['void']
12
+ end
13
+ tag(:return)
14
+ end
15
+
16
+ def param
17
+ tag(:param) if object.type == :method
18
+ end
19
+
20
+ private
21
+
22
+ def tag(name, opts = nil)
23
+ return unless object.has_tag?(name)
24
+ opts ||= options_for_tag(name)
25
+ @no_names = true if opts[:no_names]
26
+ @no_types = true if opts[:no_types]
27
+ @name = name
28
+ out = erb('tag')
29
+ @no_names, @no_types = nil, nil
30
+ out
31
+ end
32
+
33
+ def create_tag_methods(tags)
34
+ tags.each do |tag|
35
+ tag_meth = tag.to_s.gsub('.', '_')
36
+ next if respond_to?(tag_meth)
37
+ instance_eval(<<-eof, __FILE__, __LINE__ + 1)
38
+ def #{tag_meth}; tag(#{tag.inspect}) end
39
+ eof
40
+ end
41
+ end
42
+
43
+ def options_for_tag(tag)
44
+ opts = {:no_types => true, :no_names => true}
45
+ case Tags::Library.factory_method_for(tag)
46
+ when :with_types
47
+ opts[:no_types] = false
48
+ when :with_types_and_name
49
+ opts[:no_types] = false
50
+ opts[:no_names] = false
51
+ when :with_name
52
+ opts[:no_names] = false
53
+ end
54
+ opts
55
+ end
@@ -0,0 +1,12 @@
1
+ <% if object.has_tag?(:example) %>
2
+
3
+ Examples:
4
+ ---------
5
+
6
+ <% object.tags(:example).each_with_index do |tag, i| %>
7
+ <%= indent("# " + tag.name + "\n") if tag.name %>
8
+ <%= indent(format_source(tag.text)) + "\n" %>
9
+ <%= "\n" if i < object.tags(:example).size - 1 %>
10
+ <% end %>
11
+ <% end %>
12
+
@@ -0,0 +1 @@
1
+ <%= yieldall %>
@@ -0,0 +1,20 @@
1
+ <% if object.has_tag?(:option) %>
2
+ <% object.parameters.each do |param, default| %>
3
+ <% tags = object.tags(:option).select {|x| x.name.to_s == param.to_s } %>
4
+ <% next if tags.empty? %>
5
+ Options Hash (<%= param %>):
6
+ --------------<%= hr(param.to_s.length) %>--
7
+
8
+ <% for tag in tags %>
9
+ <% text = "" %>
10
+ <% text += format_types(tag.pair.types || ['Object']) %>
11
+ <% text += " " + tag.pair.name.to_s %>
12
+ <% if tag.pair.defaults %>
13
+ <% text += " - default: " + tag.pair.defaults.join(", ") %>
14
+ <% end %>
15
+ <% text += " - " + tag.pair.text if tag.pair.text %>
16
+ <%= indent(wrap(text)) %>
17
+
18
+ <% end %>
19
+ <% end %>
20
+ <% end %>
@@ -0,0 +1,19 @@
1
+ <% if object.tags(:overload).size == 1 %>
2
+ <%= wrap(yieldall(:object => object.tag(:overload))) %>
3
+ <% elsif object.has_tag?(:overload) %>
4
+ Overloads:
5
+ ----------
6
+
7
+ <% object.tags(:overload).each do |overload| %>
8
+ <% if overload.tags.size > 0 %>
9
+ <%= hr %>
10
+
11
+ <%= indent signature(overload) %>
12
+
13
+ <%= hr %>
14
+
15
+ <%= indent(wrap(yieldall(:object => overload))) %>
16
+
17
+ <% end %>
18
+ <% end %>
19
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <% if object.has_tag?(:see) %>
2
+ See Also:
3
+ ---------
4
+
5
+ <% for tag in object.tags(:see) %>
6
+ <% text = "- " + tag.name %>
7
+ <% text += " - " + tag.text if tag.text && !tag.text.empty? %>
8
+ <%= indent(wrap(text)) %>
9
+ <% end %>
10
+ <% end %>
11
+
@@ -0,0 +1,13 @@
1
+ <% title = @label ? @label : YARD::Tags::Library.labels[@name] %>
2
+ <%= title %>:
3
+ <%= hr(title.length) %>-
4
+
5
+ <% object.tags(@name).each do |tag| %>
6
+ <% text = "" %>
7
+ <% text += format_types(tag.types) + " " unless @no_types || tag.types.nil? %>
8
+ <% text += tag.name.to_s + " " unless @no_names %>
9
+ <% text += "- " unless @no_names && @no_types %>
10
+ <% text += tag.text if tag.text && !tag.text.empty? %>
11
+ <%= indent wrap(text) %>
12
+
13
+ <% end %>
@@ -0,0 +1,36 @@
1
+ --- !ruby/object:YardTheme
2
+ css:
3
+ body {color}: "#000000"
4
+ "#main {background}": "#ffffff"
5
+ body {background-color}: "#ffffff"
6
+ body {font-size}: 15px
7
+ p {width}: 65%
8
+ "#main a, #main a:visited {color}": "#662211"
9
+ ".object_link a {color}": "#662211"
10
+ li.odd {background}: "#eeeeee"
11
+ li.even {background}: "#dddddd"
12
+ ".item:hover {background}": "#d7d5c1"
13
+ li.clicked > .item {background}: "#000000"
14
+ li.clicked > .item {color}: "#d3d7cf"
15
+ "#main a:hover {background}": "#f6f5cb"
16
+ h1 {font-family}: Assistant
17
+ h2 {font-family}: Raleway
18
+ h3 {font-family}: Rubik One
19
+ h1 {font-weight}: '200'
20
+ h2 {font-weight}: '300'
21
+ h3 {font-weight}: '300'
22
+ h1 {font-size}: 3em
23
+ h2 {font-size}: 1.4em
24
+ h3 {font-size}: 1.4em
25
+ h1 {color}: "#662211"
26
+ h2 {color}: "#000000"
27
+ h3 {color}: "#000000"
28
+ h1 {background}: "#ffffff"
29
+ h2 {background}: "#ffffff"
30
+ h3 {background}: "#ebeade"
31
+ "#toc {background-color}": "#f3f3eb"
32
+ p.signature, h3.signature {background}: "#0a6"
33
+ "#main p {width}": 65%
34
+ vr_yaml_file: "/home/eric/my_yard/themes/visualruby.yaml"
35
+ builder: !ruby/object:Gtk::Builder {}
36
+ top_level_window: false
data/install.md ADDED
@@ -0,0 +1,11 @@
1
+ # @title Installing my_yard
2
+
3
+ Just do:
4
+
5
+ gem install my_yard
6
+
7
+ That's it!
8
+
9
+ Then go to the directory that you want to document, and enter:
10
+
11
+ my_yard
data/my_yard ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require "vrlib"
4
+ require "yard"
5
+
6
+ # from require_all gem:
7
+ require_rel 'src/'
8
+
9
+ def start_my_yard
10
+
11
+ # create /home/my_yard if doesn't exist
12
+ unless File.directory?(File.join(Dir.home, "my_yard"))
13
+ VR.copy_recursively File.join(File.dirname(__FILE__), "home_my_yard"), File.join(Dir.home, "my_yard")
14
+ end
15
+
16
+ VR::save_yaml(YardTheme.new(), File.join(Dir.home, "my_yard", "themes", "default.yaml"))
17
+
18
+ $open_project = (ARGV[0] and File.directory?(ARGV[0])) ? File.expand_path(ARGV[0]) : Dir.pwd
19
+
20
+ $env = VR::load_yaml(GlobalSettings, File.join(Dir.home, "my_yard", "global_settings.yaml"))
21
+
22
+ loop do
23
+ $env.add_project($open_project)
24
+ proj = VR::load_yaml(MyYard, File.join($open_project, ".yardoc", "my_yard.yaml"))
25
+ proj.show_glade()
26
+ break if $open_project == :exit
27
+ end
28
+
29
+ end
30
+
31
+ start_my_yard