rubydictionary 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/Makefile +52 -0
- data/MyInfo.plist +31 -0
- data/README.markdown +30 -0
- data/Rakefile +1 -0
- data/Ruby.css +42 -0
- data/bin/rubydictionary +17 -0
- data/dictionary_generator.rb +121 -0
- data/lib/rubydictionary/generator.rb +99 -0
- data/lib/rubydictionary/version.rb +3 -0
- data/lib/rubydictionary.rb +7 -0
- data/rubydictionary.gemspec +20 -0
- data/templates/class.erb +44 -0
- data/templates/dictionary.erb +9 -0
- data/templates/method.erb +11 -0
- metadata +83 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Makefile
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
#
|
2
|
+
# Makefile
|
3
|
+
#
|
4
|
+
#
|
5
|
+
#
|
6
|
+
|
7
|
+
###########################
|
8
|
+
|
9
|
+
# You need to edit these values.
|
10
|
+
|
11
|
+
DICT_NAME = "Ruby"
|
12
|
+
DICT_SRC_PATH = Ruby.xml
|
13
|
+
CSS_PATH = Ruby.css
|
14
|
+
PLIST_PATH = MyInfo.plist
|
15
|
+
|
16
|
+
DICT_BUILD_OPTS =
|
17
|
+
# Suppress adding supplementary key.
|
18
|
+
# DICT_BUILD_OPTS = -s 0 # Suppress adding supplementary key.
|
19
|
+
|
20
|
+
###########################
|
21
|
+
|
22
|
+
# The DICT_BUILD_TOOL_DIR value is used also in "build_dict.sh" script.
|
23
|
+
# You need to set it when you invoke the script directly.
|
24
|
+
|
25
|
+
DICT_BUILD_TOOL_DIR = "/Developer/Extras/Dictionary Development Kit"
|
26
|
+
DICT_BUILD_TOOL_BIN = "$(DICT_BUILD_TOOL_DIR)/bin"
|
27
|
+
|
28
|
+
###########################
|
29
|
+
|
30
|
+
DICT_DEV_KIT_OBJ_DIR = ./objects
|
31
|
+
export DICT_DEV_KIT_OBJ_DIR
|
32
|
+
|
33
|
+
DESTINATION_FOLDER = ~/Library/Dictionaries
|
34
|
+
RM = /bin/rm
|
35
|
+
|
36
|
+
###########################
|
37
|
+
|
38
|
+
all:
|
39
|
+
"$(DICT_BUILD_TOOL_BIN)/build_dict.sh" $(DICT_BUILD_OPTS) $(DICT_NAME) $(DICT_SRC_PATH) $(CSS_PATH) $(PLIST_PATH)
|
40
|
+
echo "Done."
|
41
|
+
|
42
|
+
|
43
|
+
install:
|
44
|
+
echo "Installing into $(DESTINATION_FOLDER)".
|
45
|
+
mkdir -p $(DESTINATION_FOLDER)
|
46
|
+
ditto --noextattr --norsrc $(DICT_DEV_KIT_OBJ_DIR)/$(DICT_NAME).dictionary $(DESTINATION_FOLDER)/$(DICT_NAME).dictionary
|
47
|
+
touch $(DESTINATION_FOLDER)
|
48
|
+
echo "Done."
|
49
|
+
echo "To test the new dictionary, try Dictionary.app."
|
50
|
+
|
51
|
+
clean:
|
52
|
+
$(RM) -rf $(DICT_DEV_KIT_OBJ_DIR)
|
data/MyInfo.plist
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>English</string>
|
7
|
+
<key>CFBundleIdentifier</key>
|
8
|
+
<string>org.ruby-lang.Dictionary</string>
|
9
|
+
<key>CFBundleName</key>
|
10
|
+
<string>Ruby</string>
|
11
|
+
<key>CFBundleShortVersionString</key>
|
12
|
+
<string>1.0</string>
|
13
|
+
<key>DCSDictionaryCopyright</key>
|
14
|
+
<string>Copyright</string>
|
15
|
+
<key>DCSDictionaryManufacturerName</key>
|
16
|
+
<string>Ruby</string>
|
17
|
+
<key>DCSDictionaryFrontMatterReferenceID</key>
|
18
|
+
<string>front_back_matter</string>
|
19
|
+
<key>DCSDictionaryDefaultPrefs</key>
|
20
|
+
<dict>
|
21
|
+
<key>pronunciation</key>
|
22
|
+
<string>0</string>
|
23
|
+
<key>display-column</key>
|
24
|
+
<string>1</string>
|
25
|
+
<key>display-picture</key>
|
26
|
+
<string>1</string>
|
27
|
+
<key>version</key>
|
28
|
+
<string>1</string>
|
29
|
+
</dict>
|
30
|
+
</dict>
|
31
|
+
</plist>
|
data/README.markdown
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
This gem adds `rubydictionary` formatter to RDoc.
|
2
|
+
|
3
|
+
## Prerequisites
|
4
|
+
|
5
|
+
You will need latest [*Xcode* developer tools](http://developer.apple.com/).
|
6
|
+
|
7
|
+
## Install
|
8
|
+
|
9
|
+
gem install rubydictionary
|
10
|
+
|
11
|
+
## Building dictionary
|
12
|
+
|
13
|
+
Create documentation from the source code like you normally would. Only do not forget to pass `--format=rubydictionary` option:
|
14
|
+
|
15
|
+
rdoc --format=rubydictionary ./sourcedir
|
16
|
+
|
17
|
+
If all goes well, you should have .dictionary file under ./doc directory. Drop it into `~/Library/Dictionaries/` folder.
|
18
|
+
|
19
|
+
## TODO
|
20
|
+
|
21
|
+
* Set RDoc options from command line:
|
22
|
+
** Dictionary name
|
23
|
+
** Dictionary title (optional, name is default)
|
24
|
+
* Dictinary builder script:
|
25
|
+
** Store RDoc results into xml file (into doc/ directory)
|
26
|
+
** Prepare .plist file
|
27
|
+
|
28
|
+
# Links
|
29
|
+
|
30
|
+
* [Dictionary Services programming guide at Apple Developer site](http://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/DictionaryServicesProgGuide/index.html)
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/Ruby.css
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
@namespace d url(http://www.apple.com/DTDs/DictionaryService-1.0.rng);
|
3
|
+
|
4
|
+
d|entry {
|
5
|
+
}
|
6
|
+
|
7
|
+
h1, h2, h3 {
|
8
|
+
font-family: 'Helvetica Neue', Helvetica, sans-serif;
|
9
|
+
text-shadow: 0px 0px 0px #000;
|
10
|
+
}
|
11
|
+
|
12
|
+
h1 { font-size: 150%; }
|
13
|
+
h1 .classname { font-size: 80%; }
|
14
|
+
h1 .methodtype { font-size: 80%; }
|
15
|
+
h1 .visibility { font-size: 70%; font-weight: normal; }
|
16
|
+
|
17
|
+
ul.classmethods li { list-style-type: circle; }
|
18
|
+
ul.instancemethods li { list-style-type: disc; }
|
19
|
+
ul.attributes li { list-style-type: none; }
|
20
|
+
|
21
|
+
.access { background-color: #000; color: #fff; border-radius: 5px; padding: 0 0 0 2px; text-align: center; font-size: 70%; margin-right: 5px; }
|
22
|
+
.raccess { background-color: #666; }
|
23
|
+
|
24
|
+
hr { border: none; border-bottom: 1px solid #ddd; }
|
25
|
+
|
26
|
+
tt,
|
27
|
+
pre,
|
28
|
+
p.signatures {
|
29
|
+
font-family: Monaco;
|
30
|
+
font-size: 12px;
|
31
|
+
}
|
32
|
+
|
33
|
+
pre {
|
34
|
+
padding: 10px;
|
35
|
+
background-color: #eee;
|
36
|
+
border: 1px solid #ddd;
|
37
|
+
}
|
38
|
+
|
39
|
+
a {
|
40
|
+
color: #555;
|
41
|
+
text-decoration: none;
|
42
|
+
}
|
data/bin/rubydictionary
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby -KU
|
2
|
+
|
3
|
+
require File.expand_path('../../lib/rubydictionary', __FILE__)
|
4
|
+
|
5
|
+
ARGV.push('--format=rubydictionary') if ARGV.grep(/\A(-f|--fmt|--format|-r|-R|--ri|--ri-site)\b/).empty?
|
6
|
+
r = RDoc::RDoc.new
|
7
|
+
r.document ARGV
|
8
|
+
|
9
|
+
# TODO: this below must be moved into special generator class
|
10
|
+
dict_name = 'Ruby'
|
11
|
+
dict_src_path = File.expand_path('../../doc/Ruby.xml', __FILE__)
|
12
|
+
css_path = File.expand_path('../../Ruby.css', __FILE__)
|
13
|
+
plist_path = File.expand_path('../../MyInfo.plist', __FILE__)
|
14
|
+
|
15
|
+
dict_build_tool = "/Developer/Extras/Dictionary Development Kit/bin/build_dict.sh"
|
16
|
+
|
17
|
+
%x{"#{dict_build_tool}" #{dict_name} #{dict_src_path} #{css_path} #{plist_path}}
|
@@ -0,0 +1,121 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'erb'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'iconv'
|
6
|
+
|
7
|
+
gem 'rdoc', '>= 0'
|
8
|
+
require 'rdoc/ri'
|
9
|
+
require 'rdoc/ri/store'
|
10
|
+
require 'rdoc/ri/paths'
|
11
|
+
require 'rdoc/markup'
|
12
|
+
require 'rdoc/markup/formatter'
|
13
|
+
require 'rdoc/text'
|
14
|
+
|
15
|
+
class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
|
16
|
+
def self.gen_relative_url(path, target)
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class String
|
22
|
+
def escape
|
23
|
+
gsub("&", "&").gsub("<", "<").gsub(">", ">").gsub("'", "'").gsub("\"", """)
|
24
|
+
end
|
25
|
+
def to_id
|
26
|
+
downcase.gsub('::', '_')
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_template(file)
|
31
|
+
erb = ''
|
32
|
+
File.open("./templates/#{file}", 'r') { |f| erb = f.read }
|
33
|
+
ERB.new(erb)
|
34
|
+
end
|
35
|
+
|
36
|
+
class_template = get_template('class.erb')
|
37
|
+
|
38
|
+
def render_class(klass)
|
39
|
+
tpl = get_template('class.erb')
|
40
|
+
@class = klass
|
41
|
+
@class_methods = klass.method_list.reject{ |m| !m.singleton }.sort{ |a,b| a.name <=> b.name }
|
42
|
+
@instance_methods = klass.method_list.reject{ |m| m.singleton }.sort{ |a,b| a.name <=> b.name }
|
43
|
+
begin
|
44
|
+
@description = @iconv.iconv(klass.comment.accept(@formatter))
|
45
|
+
rescue
|
46
|
+
@description = ""
|
47
|
+
end
|
48
|
+
tpl.result(binding)
|
49
|
+
end
|
50
|
+
|
51
|
+
def render_class_method(klass, method)
|
52
|
+
tpl = get_template('method.erb')
|
53
|
+
@klass = klass
|
54
|
+
@method = method
|
55
|
+
begin
|
56
|
+
@description = @iconv.iconv(method.comment.accept(@formatter))
|
57
|
+
rescue
|
58
|
+
@description = ""
|
59
|
+
end
|
60
|
+
tpl.result(binding)
|
61
|
+
end
|
62
|
+
|
63
|
+
puts "Loading Ruby documentation"
|
64
|
+
|
65
|
+
classes = {}
|
66
|
+
class_methods = {}
|
67
|
+
instance_methods = {}
|
68
|
+
stores = []
|
69
|
+
class_count = 0
|
70
|
+
count = 0
|
71
|
+
|
72
|
+
@formatter = RDoc::Markup::ToHtml.new
|
73
|
+
@iconv = Iconv.new('UTF-8//IGNORE', 'UTF-8')
|
74
|
+
|
75
|
+
RDoc::RI::Paths.each(true, true, true, true) do |path, type|
|
76
|
+
$stderr.puts path
|
77
|
+
store = RDoc::RI::Store.new(path, type)
|
78
|
+
store.load_cache
|
79
|
+
stores << store
|
80
|
+
class_count += store.modules.count
|
81
|
+
end
|
82
|
+
|
83
|
+
stores.each do |store|
|
84
|
+
store.modules.each do |name|
|
85
|
+
count += 1
|
86
|
+
$stderr << "Parse [#{count}/#{class_count}]...\r"
|
87
|
+
klass = store.load_class(name)
|
88
|
+
oldklass = classes[name]
|
89
|
+
unless oldklass.nil? || oldklass.method_list.count < klass.method_list.count
|
90
|
+
$stderr.puts "Skipping #{name}..."
|
91
|
+
next
|
92
|
+
end
|
93
|
+
classes[name] = klass
|
94
|
+
klass.method_list.each_index do |index|
|
95
|
+
method = klass.method_list[index]
|
96
|
+
begin
|
97
|
+
method = store.load_method(name, "#{method.singleton ? '::' : '#'}#{method.name}")
|
98
|
+
klass.method_list[index] = method
|
99
|
+
rescue Errno::ENOENT => e
|
100
|
+
$stderr.puts e
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
puts "Building XML files from sources"
|
107
|
+
|
108
|
+
@classes = []
|
109
|
+
@methods = []
|
110
|
+
count = 0
|
111
|
+
|
112
|
+
classes.each do |name, klass|
|
113
|
+
count += 1
|
114
|
+
$stderr << "Render [#{count}/#{class_count}]...\r"
|
115
|
+
@classes << render_class(klass)
|
116
|
+
klass.method_list.each { |method| @methods << render_class_method(klass, method) }
|
117
|
+
end
|
118
|
+
|
119
|
+
File.open('./Ruby.xml', 'w') { |file| file.puts get_template('dictionary.erb').result(binding) }
|
120
|
+
|
121
|
+
puts "Dictionary XML file generation complete"
|
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'rdoc'
|
2
|
+
require 'rdoc/rdoc'
|
3
|
+
require 'rdoc/generator'
|
4
|
+
|
5
|
+
require 'nokogiri'
|
6
|
+
|
7
|
+
class Rubydictionary::Generator
|
8
|
+
|
9
|
+
RDoc::RDoc.add_generator self
|
10
|
+
|
11
|
+
XMLNS = 'http://www.w3.org/1999/xhtml'
|
12
|
+
|
13
|
+
XMLNS_D = 'http://www.apple.com/DTDs/DictionaryService-1.0.rng'
|
14
|
+
|
15
|
+
def self.setup_options(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def generate(top_levels)
|
22
|
+
|
23
|
+
builder = Nokogiri::XML::Builder.new(:encoding => 'utf-8') do |xml|
|
24
|
+
xml.send('dictionary', 'xmlns' => XMLNS, 'xmlns:d' => XMLNS_D) do
|
25
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
26
|
+
|
27
|
+
RDoc::TopLevel.all_classes.each do |clazz|
|
28
|
+
append_class_entry(clazz, xml)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
puts "Writing into Ruby.xml..."
|
34
|
+
File.open('Ruby.xml', 'w') { |f| f << builder.to_xml }
|
35
|
+
end
|
36
|
+
|
37
|
+
def class_dir
|
38
|
+
'classes'
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
# <d:entry id="activerecord_base" d:title="ActiveRecord::Base">
|
44
|
+
# <d:index d:value="ActiveRecord::Base"/>
|
45
|
+
# <d:index d:value="Base"/>
|
46
|
+
# <h1>ActiveRecord::Base</h1>
|
47
|
+
def append_class_entry(cls, xml)
|
48
|
+
xml.entry('id' => class_id(cls), 'd:title' => class_title(cls)) do
|
49
|
+
xml.index('d:value' => cls.full_name)
|
50
|
+
# xml.index('d:value' => class_index_name(clazz))
|
51
|
+
|
52
|
+
xml.h1(cls.full_name, :xmlns => XMLNS)
|
53
|
+
|
54
|
+
xml.div(:xmlns => XMLNS) do
|
55
|
+
xml.cdata cls.description
|
56
|
+
end
|
57
|
+
|
58
|
+
# Link to class methods
|
59
|
+
unless cls.class_method_list.empty?
|
60
|
+
xml.h3('Class methods', :xmlns => XMLNS)
|
61
|
+
xml.ul(:xmlns => XMLNS) do
|
62
|
+
cls.class_method_list.each do |mthd|
|
63
|
+
xml.li(:xmlns => XMLNS) do
|
64
|
+
xml.a(mthd.name, :href => method_url(mthd), :xmlns => XMLNS)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
# Link to instance methods
|
71
|
+
unless cls.instance_method_list.empty?
|
72
|
+
xml.h3('Instance methods', :xmlns => XMLNS)
|
73
|
+
xml.ul(:xmlns => XMLNS) do
|
74
|
+
cls.instance_method_list.each do |mthd|
|
75
|
+
xml.li(:xmlns => XMLNS) do
|
76
|
+
xml.a(mthd.name, :href => method_url(mthd), :xmlns => XMLNS)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def class_id(cls)
|
85
|
+
cls.full_name.downcase.gsub('::', '_')
|
86
|
+
end
|
87
|
+
|
88
|
+
def class_title(cls)
|
89
|
+
cls.full_name
|
90
|
+
end
|
91
|
+
|
92
|
+
def method_url(mthd)
|
93
|
+
"x-dictionary:r:method_#{method_id(mthd)}:org.ruby-lang.Dictionary"
|
94
|
+
end
|
95
|
+
|
96
|
+
def method_id(mthd)
|
97
|
+
mthd.name
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'rubydictionary/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'rubydictionary'
|
7
|
+
s.version = Rubydictionary::VERSION
|
8
|
+
s.authors = ['Priit Haamer']
|
9
|
+
s.email = ['priit@fraktal.ee']
|
10
|
+
s.homepage = 'https://github.com/priithaamer/rubydictionary'
|
11
|
+
s.summary = %q{Adds "rubydictionary" formatter to RDoc}
|
12
|
+
s.description = %q{Builds dictionary files for Mac OS Dictionary.app of Ruby documentation using RDoc}
|
13
|
+
|
14
|
+
s.rubyforge_project = 'rubydictionary'
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ['lib']
|
20
|
+
end
|
data/templates/class.erb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
<d:entry id="class_<%= @class.object_id.to_s(36) %>" d:title="<%= @class.full_name.escape %>">
|
2
|
+
<d:index d:value="<%= @class.full_name.escape %>"/>
|
3
|
+
<d:index d:value="<%= @class.name.escape %>"/>
|
4
|
+
<h1><%= @class.full_name.escape %></h1>
|
5
|
+
<% unless @description.empty? %>
|
6
|
+
<%= @description %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<% unless @class_methods.empty? %>
|
10
|
+
<h3>Class methods</h3>
|
11
|
+
<ul class="classmethods">
|
12
|
+
<% for method in @class_methods %>
|
13
|
+
<li><a href="x-dictionary:r:method_<%= method.object_id.to_s(36) %>:org.ruby-lang.Dictionary"><%= method.name.escape %></a></li>
|
14
|
+
<% end %>
|
15
|
+
</ul>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<% unless @instance_methods.empty? %>
|
19
|
+
<h3>Instance methods</h3>
|
20
|
+
<ul class="instancemethods">
|
21
|
+
<% for method in @instance_methods %>
|
22
|
+
<li><a href="x-dictionary:r:method_<%= method.object_id.to_s(36) %>:org.ruby-lang.Dictionary"><%= method.name.escape %></a></li>
|
23
|
+
<% end %>
|
24
|
+
</ul>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<% unless @class.constants.empty? %>
|
28
|
+
<h3>Constants</h3>
|
29
|
+
<ul class="constants">
|
30
|
+
<% for constant in @class.constants %>
|
31
|
+
<li><tt><%= constant.name.escape %><% unless constant.value.nil? %>= <%= constant.value.escape %><% end %></tt> <% if constant.comment.respond_to?(:accept) %><%= @iconv.iconv(constant.comment.accept(@formatter)) %><% end %></li>
|
32
|
+
<% end %>
|
33
|
+
</ul>
|
34
|
+
<% end %>
|
35
|
+
|
36
|
+
<% unless @class.attributes.empty? %>
|
37
|
+
<h3>Attributes</h3>
|
38
|
+
<ul class="attributes">
|
39
|
+
<% for attrib in @class.attributes %>
|
40
|
+
<li><span class="access <%= attrib.rw.downcase %>access"> <%= attrib.rw %> </span> <%= attrib.name.escape %> <% if attrib.comment.respond_to?(:accept) %><%= @iconv.iconv(attrib.comment.accept(@formatter)) %><% end %></li>
|
41
|
+
<% end %>
|
42
|
+
</ul>
|
43
|
+
<% end %>
|
44
|
+
</d:entry>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng">
|
3
|
+
<% for cls in @classes %>
|
4
|
+
<%= cls %>
|
5
|
+
<% end %>
|
6
|
+
<% for mthd in @methods %>
|
7
|
+
<%= mthd %>
|
8
|
+
<% end %>
|
9
|
+
</d:dictionary>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<d:entry id="method_<%= @method.object_id.to_s(36) %>" d:title="<%= @method.name.escape %>">
|
2
|
+
<d:index d:value="<%= @method.full_name.escape %>"/>
|
3
|
+
<d:index d:value="<%= @method.name.escape %>"/>
|
4
|
+
<h1><a href="x-dictionary:r:class_<%= @class.object_id.to_s(36) %>:org.ruby-lang.Dictionary"><%= @class.full_name.escape %></a> <span class="methodtype"> <%= @method.singleton ? '::' : '#' %> </span> <%= @method.name.escape %> <span class="visibility">(<%= @method.visibility %>)</span></h1>
|
5
|
+
<% unless @method.arglists.nil? %><p class="signatures"><%= @method.arglists.escape %></p><% end %>
|
6
|
+
<% unless !@method.respond_to?(:aliases) || @method.aliases.empty? %><p>Aliases: <%= @method.aliases.map {|a| a.new_name }.join(", ").escape %></p><% end %>
|
7
|
+
<% unless !@method.respond_to?(:is_alias_for) || @method.is_alias_for.nil? %><p>Alias for: <%= @method.is_alias_for.escape %></p><% end %>
|
8
|
+
<% unless @description.empty? %>
|
9
|
+
<%= @description %>
|
10
|
+
<% end %>
|
11
|
+
</d:entry>
|
metadata
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rubydictionary
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Priit Haamer
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-09-14 00:00:00 +03:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: Builds dictionary files for Mac OS Dictionary.app of Ruby documentation using RDoc
|
23
|
+
email:
|
24
|
+
- priit@fraktal.ee
|
25
|
+
executables:
|
26
|
+
- rubydictionary
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- Makefile
|
35
|
+
- MyInfo.plist
|
36
|
+
- README.markdown
|
37
|
+
- Rakefile
|
38
|
+
- Ruby.css
|
39
|
+
- bin/rubydictionary
|
40
|
+
- dictionary_generator.rb
|
41
|
+
- lib/rubydictionary.rb
|
42
|
+
- lib/rubydictionary/generator.rb
|
43
|
+
- lib/rubydictionary/version.rb
|
44
|
+
- rubydictionary.gemspec
|
45
|
+
- templates/class.erb
|
46
|
+
- templates/dictionary.erb
|
47
|
+
- templates/method.erb
|
48
|
+
has_rdoc: true
|
49
|
+
homepage: https://github.com/priithaamer/rubydictionary
|
50
|
+
licenses: []
|
51
|
+
|
52
|
+
post_install_message:
|
53
|
+
rdoc_options: []
|
54
|
+
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
requirements: []
|
76
|
+
|
77
|
+
rubyforge_project: rubydictionary
|
78
|
+
rubygems_version: 1.4.2
|
79
|
+
signing_key:
|
80
|
+
specification_version: 3
|
81
|
+
summary: Adds "rubydictionary" formatter to RDoc
|
82
|
+
test_files: []
|
83
|
+
|