rum 0.0.1-universal-darwin-10
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.
- data/CHANGELOG +3 -0
- data/README +30 -0
- data/Rakefile +134 -0
- data/bin/rum-client +124 -0
- data/doc/basic.rb +10 -0
- data/doc/doc.html +602 -0
- data/doc/example.rb +59 -0
- data/doc/reference.rb +415 -0
- data/doc/resources/bg.png +0 -0
- data/doc/resources/bottom.png +0 -0
- data/doc/resources/build.rb +235 -0
- data/doc/resources/doc.haml +167 -0
- data/doc/resources/emacs-auto-completion.png +0 -0
- data/doc/resources/flash.png +0 -0
- data/doc/resources/highlight.css +94 -0
- data/doc/resources/intro.rb +17 -0
- data/doc/resources/left.png +0 -0
- data/doc/resources/logo.png +0 -0
- data/doc/resources/screen.css +420 -0
- data/doc/resources/screenshot.png +0 -0
- data/doc/resources/top.png +0 -0
- data/ext/mac/keyboard_hook/English.lproj/InfoPlist.strings +0 -0
- data/ext/mac/keyboard_hook/Event.h +17 -0
- data/ext/mac/keyboard_hook/Event.m +18 -0
- data/ext/mac/keyboard_hook/EventTap.h +11 -0
- data/ext/mac/keyboard_hook/EventTap.m +77 -0
- data/ext/mac/keyboard_hook/Info.plist +26 -0
- data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/TemplateIcon.icns +0 -0
- data/ext/mac/keyboard_hook/KeyboardHook.xcodeproj/project.pbxproj +323 -0
- data/ext/mac/keyboard_hook/KeyboardHook_Prefix.pch +7 -0
- data/ext/mac/keyboard_hook/version.plist +16 -0
- data/ext/windows/keyboard_hook/extconf.rb +2 -0
- data/ext/windows/keyboard_hook/keyboard_hook.c +126 -0
- data/ext/windows/system/autohotkey_stuff.c +255 -0
- data/ext/windows/system/autohotkey_stuff.h +2 -0
- data/ext/windows/system/clipboard_watcher.c +58 -0
- data/ext/windows/system/clipboard_watcher.h +2 -0
- data/ext/windows/system/extconf.rb +3 -0
- data/ext/windows/system/input_box.c +239 -0
- data/ext/windows/system/input_box.h +4 -0
- data/ext/windows/system/system.c +273 -0
- data/lib/rum.rb +4 -0
- data/lib/rum/apps.rb +4 -0
- data/lib/rum/barrel.rb +157 -0
- data/lib/rum/barrel/emacs.rb +44 -0
- data/lib/rum/barrel/emacs_client.rb +74 -0
- data/lib/rum/core.rb +125 -0
- data/lib/rum/dsl.rb +109 -0
- data/lib/rum/gui.rb +93 -0
- data/lib/rum/help.rb +128 -0
- data/lib/rum/hotkey_core.rb +479 -0
- data/lib/rum/mac.rb +18 -0
- data/lib/rum/mac/app.rb +4 -0
- data/lib/rum/mac/apps.rb +19 -0
- data/lib/rum/mac/gui.rb +26 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Info.plist +28 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/MacOS/CocoaDialog +0 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Info.plist +28 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/InfoPlist.strings +0 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/classes.nib +51 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/info.nib +16 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Inputbox.nib/keyedobjects.nib +0 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/classes.nib +7 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib +21 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/info.nib.orig +21 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib +0 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/MainMenu.nib/objects.nib.orig +0 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/classes.nib +27 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/info.nib +16 -0
- data/lib/rum/mac/gui/CocoaDialog.app/Contents/Resources/Msgbox.nib/keyedobjects.nib +0 -0
- data/lib/rum/mac/gui/Growl.framework/Growl +0 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Growl +0 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/Growl.h +6 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge-Carbon.h +780 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlApplicationBridge.h +575 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Headers/GrowlDefines.h +348 -0
- data/lib/rum/mac/gui/Growl.framework/Versions/A/Resources/Info.plist +24 -0
- data/lib/rum/mac/gui/growl.rb +54 -0
- data/lib/rum/mac/irb/completion.rb +207 -0
- data/lib/rum/mac/keyboard_hook.rb +73 -0
- data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/KeyboardHook +0 -0
- data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/KeyboardHook +0 -0
- data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/English.lproj/InfoPlist.strings +0 -0
- data/lib/rum/mac/keyboard_hook/KeyboardHook.framework/Versions/A/Resources/Info.plist +22 -0
- data/lib/rum/mac/layouts.rb +146 -0
- data/lib/rum/mac/system.rb +45 -0
- data/lib/rum/remote.rb +48 -0
- data/lib/rum/server.rb +92 -0
- data/lib/rum/windows.rb +23 -0
- data/lib/rum/windows/app.rb +72 -0
- data/lib/rum/windows/apps.rb +25 -0
- data/lib/rum/windows/gui.rb +116 -0
- data/lib/rum/windows/keyboard.rb +80 -0
- data/lib/rum/windows/keyboard_hook.rb +20 -0
- data/lib/rum/windows/layouts.rb +232 -0
- data/lib/rum/windows/system.rb +310 -0
- data/lib/rum/windows/system_foreign_functions.rb +129 -0
- data/rum.gemspec +14 -0
- metadata +166 -0
Binary file
|
Binary file
|
@@ -0,0 +1,235 @@
|
|
1
|
+
require 'haml'
|
2
|
+
|
3
|
+
class Doc
|
4
|
+
module Pygmentize
|
5
|
+
Bin = if RUBY_PLATFORM =~ /mswin|mingw/ and ENV['USER'] == 'nonsequitur'
|
6
|
+
'C:/Programme/Python26/Scripts/pygmentize.exe'
|
7
|
+
else
|
8
|
+
'pygmentize'
|
9
|
+
end
|
10
|
+
Cmd = "#{Bin} -O encoding=utf-8 -l ruby -f html"
|
11
|
+
|
12
|
+
def self.file file
|
13
|
+
fix_pygments_output(`#{Cmd} #{file}`)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.string str
|
17
|
+
IO.popen(Cmd, 'w+') do |pygmentize|
|
18
|
+
pygmentize.write str
|
19
|
+
pygmentize.close_write
|
20
|
+
fix_pygments_output(pygmentize.read)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.fix_pygments_output str
|
25
|
+
# Bug in Pygments 1.3.1: 'type' is no Ruby builtin
|
26
|
+
str.gsub('<span class="nb">type</span>', 'type')\
|
27
|
+
.gsub('<span class="nb">require</span>', 'require')
|
28
|
+
end
|
29
|
+
|
30
|
+
class Snippets
|
31
|
+
def initialize
|
32
|
+
@snippets = []
|
33
|
+
@highlighted = []
|
34
|
+
end
|
35
|
+
|
36
|
+
def add str
|
37
|
+
@snippets << str
|
38
|
+
result = ''
|
39
|
+
@highlighted << result
|
40
|
+
result
|
41
|
+
end
|
42
|
+
|
43
|
+
def pygmentize!
|
44
|
+
highlighted = Pygmentize.string(@snippets.join("\n")).lines.to_a
|
45
|
+
highlighted.first.sub! /<div.*?pre>/, ''
|
46
|
+
@snippets.each_with_index do |snippet, i|
|
47
|
+
length = snippet.lines.to_a.length
|
48
|
+
str = '<pre class="highlight">'
|
49
|
+
str << highlighted.slice!(0, length).join.chomp
|
50
|
+
str << '</pre>'
|
51
|
+
@highlighted[i].replace str
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class Code
|
58
|
+
def initialize(file)
|
59
|
+
@lines = File.read(file).split /\n/
|
60
|
+
end
|
61
|
+
|
62
|
+
def render
|
63
|
+
parse
|
64
|
+
to_html
|
65
|
+
end
|
66
|
+
|
67
|
+
def parse
|
68
|
+
@result = []
|
69
|
+
@last_type = nil
|
70
|
+
@lines.each { |line| compose_doc(*classify_and_extract(line)) }
|
71
|
+
@result
|
72
|
+
end
|
73
|
+
|
74
|
+
def classify_and_extract line
|
75
|
+
case line
|
76
|
+
when /^#?\s*$/ then [:empty, nil]
|
77
|
+
when /^####\s+(.*)/ then [:chapter, $1.rstrip]
|
78
|
+
when /^###\s+(.*)/ then [:h2, $1.rstrip]
|
79
|
+
when /^##\s+(.*)/ then [:h3, $1.rstrip]
|
80
|
+
when /^#\s*(.*)/ then [:text, $1.rstrip]
|
81
|
+
else [:code, line]
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
EmptyAllowed = { code: true, text: true }
|
86
|
+
|
87
|
+
def compose_doc type, line
|
88
|
+
if type == :empty
|
89
|
+
@result.last << '' if EmptyAllowed[@last_type]
|
90
|
+
elsif type == @last_type
|
91
|
+
@result.last << line
|
92
|
+
else
|
93
|
+
@result << [type, line]
|
94
|
+
@last_type = type
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
class TableOfContents
|
99
|
+
Heading = Struct.new(:text, :anchor_name)
|
100
|
+
|
101
|
+
def initialize
|
102
|
+
@headings = []
|
103
|
+
end
|
104
|
+
|
105
|
+
def add_heading heading
|
106
|
+
chapter_number = @headings.count + 1
|
107
|
+
@headings << Heading.new(heading, "chapter_#{chapter_number}")
|
108
|
+
end
|
109
|
+
|
110
|
+
def heading_html
|
111
|
+
heading = @headings.last
|
112
|
+
"<a name=\"#{heading.anchor_name}\"><h1>#{heading.text}</h1></a>"
|
113
|
+
end
|
114
|
+
|
115
|
+
def heading_list_items
|
116
|
+
@headings.map do |heading|
|
117
|
+
"<li><a href=\"##{heading.anchor_name}\">#{heading.text}</a></li>"
|
118
|
+
end.join
|
119
|
+
end
|
120
|
+
|
121
|
+
def to_html
|
122
|
+
html = "<div id=\"table_of_contents\"><h1>Chapters</h1>"
|
123
|
+
html << "<ul>"
|
124
|
+
html << heading_list_items
|
125
|
+
html << "</ul>"
|
126
|
+
html << "</div>"
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
ChapterEnd = "</div>\n"
|
131
|
+
ChapterBeginning = "<div class=\"chapter\">\n"
|
132
|
+
|
133
|
+
def to_html
|
134
|
+
snippets = Pygmentize::Snippets.new
|
135
|
+
table_of_contents = TableOfContents.new
|
136
|
+
|
137
|
+
sections = @result.map do |type, *lines|
|
138
|
+
case type
|
139
|
+
when :chapter
|
140
|
+
table_of_contents.add_heading lines.first
|
141
|
+
chapter = ChapterEnd.dup
|
142
|
+
chapter << ChapterBeginning
|
143
|
+
chapter << table_of_contents.heading_html << "\n"
|
144
|
+
when :h2
|
145
|
+
"<h2>#{lines.first}</h2>"
|
146
|
+
when :h3
|
147
|
+
"<h3>#{lines.first}</h3>"
|
148
|
+
when :text
|
149
|
+
"<p>#{join_text(lines)}</p>"
|
150
|
+
when :code
|
151
|
+
snippets.add(lines.join("\n").rstrip)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
sections.first.sub! ChapterEnd, ''
|
156
|
+
sections << ChapterEnd
|
157
|
+
sections.unshift table_of_contents.to_html
|
158
|
+
|
159
|
+
snippets.pygmentize!
|
160
|
+
sections.join("\n")
|
161
|
+
end
|
162
|
+
|
163
|
+
def join_text(lines)
|
164
|
+
paragraphs = []
|
165
|
+
paragraphs << lines.first.dup
|
166
|
+
lines.each_cons(2) do |a, b|
|
167
|
+
if (a.empty? or b.empty? or
|
168
|
+
a.chars.to_a.last =~ /[.:!?)>]/ or a.length < 8)
|
169
|
+
paragraphs << b
|
170
|
+
else
|
171
|
+
paragraphs.last << ' ' << b
|
172
|
+
end
|
173
|
+
end
|
174
|
+
paragraphs.pop while paragraphs.last.empty?
|
175
|
+
paragraphs.join('<br />')
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
def initialize(index, intro, basic, example, reference, args)
|
180
|
+
@dir = args[:dir] || ''
|
181
|
+
@output = File.join(@dir, args[:output])
|
182
|
+
@index = File.join(@dir, index)
|
183
|
+
@intro = File.join(@dir, intro)
|
184
|
+
@basic = File.join(@dir, basic)
|
185
|
+
@example = File.join(@dir, example)
|
186
|
+
@reference = File.join(@dir, reference)
|
187
|
+
end
|
188
|
+
|
189
|
+
def current_version
|
190
|
+
gemspec = eval(IO.read('rum.gemspec'))
|
191
|
+
gemspec.version
|
192
|
+
end
|
193
|
+
|
194
|
+
def intro
|
195
|
+
Pygmentize.file @intro
|
196
|
+
end
|
197
|
+
|
198
|
+
def inf_ruby_setup
|
199
|
+
<<EOF
|
200
|
+
(add-to-list 'inf-ruby-implementations
|
201
|
+
'("rum-client" . "rum-client -i --inf-ruby-mode")
|
202
|
+
(defun rum-client ()
|
203
|
+
(interactive)
|
204
|
+
(inf-ruby "rum-client")))
|
205
|
+
EOF
|
206
|
+
end
|
207
|
+
|
208
|
+
def basic
|
209
|
+
Pygmentize.file(@basic)
|
210
|
+
end
|
211
|
+
|
212
|
+
def example
|
213
|
+
Pygmentize.file @example
|
214
|
+
end
|
215
|
+
|
216
|
+
def reference
|
217
|
+
Doc::Code.new(@reference).render
|
218
|
+
end
|
219
|
+
|
220
|
+
def render
|
221
|
+
doc = File.read(@index)
|
222
|
+
# Ugly is needed for Pygments-formatted code
|
223
|
+
haml = Haml::Engine.new(doc, ugly: true)
|
224
|
+
@doc = haml.render(self)
|
225
|
+
end
|
226
|
+
|
227
|
+
def save
|
228
|
+
File.open(@output, 'w') { |f| f.write @doc }
|
229
|
+
end
|
230
|
+
|
231
|
+
def build
|
232
|
+
render
|
233
|
+
save
|
234
|
+
end
|
235
|
+
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
%html(xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en")
|
2
|
+
%head
|
3
|
+
%title Rum
|
4
|
+
%meta(http-equiv="Content-Type" content="text/html;charset=utf-8")
|
5
|
+
%link(rel="stylesheet" href="resources/screen.css" type="text/css" media="screen")
|
6
|
+
%link(rel="stylesheet" href="resources/highlight.css" type="text/css" media="screen")
|
7
|
+
|
8
|
+
%body
|
9
|
+
%img{id: "logo", src: "resources/logo.png"}
|
10
|
+
#nav
|
11
|
+
%ul
|
12
|
+
%li
|
13
|
+
%a{href: "#"} Intro
|
14
|
+
%li
|
15
|
+
%a{href: "#installation"} Installation
|
16
|
+
%li
|
17
|
+
%a{href: "#coding"} Coding
|
18
|
+
%li
|
19
|
+
%a{href: "#example"} Example
|
20
|
+
%li
|
21
|
+
%a{href: "#reference"} Reference
|
22
|
+
%li
|
23
|
+
%a{href: "#development"} Development
|
24
|
+
#wrapper
|
25
|
+
#intro Rum is a cross-platform Hotkey and Macro utility, built in Ruby.<br />Not yet running on Linux, it’s progressing steadily on the Mac (MacRuby) and is fully supported on Windows.
|
26
|
+
|
27
|
+
%img{src: "resources/screenshot.png"}
|
28
|
+
#screenshot-sub
|
29
|
+
#intro-code
|
30
|
+
#top
|
31
|
+
#content
|
32
|
+
%img{id: "flash", src: "resources/flash.png"}
|
33
|
+
#sshot-sub This snippet powers the above screenshot.
|
34
|
+
-# #sshot-sub The above screenshot is powered by this snippet.
|
35
|
+
= intro
|
36
|
+
#bottom
|
37
|
+
#intro-code-sub Rum configuration files are regular Ruby scripts, like the above.<br /> Running Rum is as easy as calling <span class="code">ruby my_rum_config_file.rb</span> from the command line.<br />(Or <span class="code">macruby -rubygems my_rum_config_file.rb</span> on the Mac.)
|
38
|
+
#guide
|
39
|
+
#installation
|
40
|
+
%a{name: "installation"}
|
41
|
+
%h1 Installation
|
42
|
+
#gem
|
43
|
+
#regulargem
|
44
|
+
%span{class: "code"} gem install rum
|
45
|
+
#macgem
|
46
|
+
%span{class: "code"} macgem install rum
|
47
|
+
%div
|
48
|
+
-# %span{class: "onthemac"} On the Mac
|
49
|
+
.clear
|
50
|
+
|
51
|
+
%p{id: "current_version"}
|
52
|
+
Current version:
|
53
|
+
= current_version
|
54
|
+
%span{id: "changelog"} (<a href="https://github.com/nonsequitur/rum/blob/master/CHANGELOG">Changelog</a>)
|
55
|
+
|
56
|
+
#platforms
|
57
|
+
%h3 Supported platforms
|
58
|
+
%ul
|
59
|
+
%li Mac OS X – MacRuby >=0.10
|
60
|
+
%li
|
61
|
+
32-bit Windows XP/Vista/7 – Ruby >=1.9.1p378.<br />
|
62
|
+
#growl
|
63
|
+
%h2 Recommended: Growl
|
64
|
+
%ul
|
65
|
+
%li Get Growl: <a href="http://growl.info/">Mac</a>, <a href="http://www.growlforwindows.com/gfw/">Windows</a>
|
66
|
+
%li To use Growl in Rum: Add <span class="code">Gui.use Gui::Growl</span> to your Rum config.
|
67
|
+
#growl-explanation
|
68
|
+
%h3 Why Growl?
|
69
|
+
Notification bubbles are a convenient alternative to focus-stealing message boxes.
|
70
|
+
Some higher level Rum methods only work smoothly with Growl-style notifications.
|
71
|
+
Currently, Growl is the only notification system supported by Rum.
|
72
|
+
|
73
|
+
#coding
|
74
|
+
%a{name: "coding"}
|
75
|
+
%h1 Coding in Rum
|
76
|
+
Rum encourages an interactive approach to coding and a fast code-and-feedback cycle.
|
77
|
+
%h2 Core techniques
|
78
|
+
%ul{id: "core-techniques"}
|
79
|
+
%li
|
80
|
+
%h3 rum-client REPL
|
81
|
+
%p Add <span class="code">Rum::Server.start</span> to your Rum config.
|
82
|
+
%p Call <span class="code">rum-client -i</span> from the command line to start an IRB-session inside a running Rum instance. IRB Completion is fully supported.
|
83
|
+
%p Nearly all snippets in this guide can be evaluated interactively.
|
84
|
+
|
85
|
+
%p Set the environment variable <span class="code">RUM_PORT</span> to change the port on which client and server connect.
|
86
|
+
|
87
|
+
%p
|
88
|
+
%h3 rum-client in emacs:
|
89
|
+
%ul
|
90
|
+
%li Get the latest Inf-Ruby via <a href="http://marmalade-repo.org/packages/inf-ruby">ELPA</a>
|
91
|
+
%li
|
92
|
+
Add the following to your Emacs config:
|
93
|
+
%pre{id: "inf_ruby_setup"}= inf_ruby_setup
|
94
|
+
%li
|
95
|
+
Run <span class="code">M-x rum-client</span>
|
96
|
+
#auto-completion
|
97
|
+
%h4 Auto-completion
|
98
|
+
%img{id: "auto-completion",
|
99
|
+
src: "resources/emacs-auto-completion.png"}
|
100
|
+
-# %p The Inf-Ruby backend for Company-Mode offers auto-completion for Inf-Ruby buffers.
|
101
|
+
%p
|
102
|
+
Company-Mode features auto-completion for IRB sessions.<br />
|
103
|
+
<a href="http://www.emacswiki.org/emacs/InfRubyCompany">See here for installation instructions</a>.
|
104
|
+
|
105
|
+
%li
|
106
|
+
%%h3 Rum.restart
|
107
|
+
Restarts Rum.
|
108
|
+
Bind it to a key, like <span class="code">'shift f1'.do { Rum.restart }</span>
|
109
|
+
|
110
|
+
Run Rum with this basic, REPL-enabled setup to get started:
|
111
|
+
#basic= basic
|
112
|
+
|
113
|
+
#example
|
114
|
+
%a{name: "example"}
|
115
|
+
%h1 Extended Example
|
116
|
+
= example
|
117
|
+
|
118
|
+
|
119
|
+
-# #example-configs
|
120
|
+
|
121
|
+
%a{name: "reference"}
|
122
|
+
%h1 Reference
|
123
|
+
%p
|
124
|
+
This section is also available as a Ruby source file and can be
|
125
|
+
conveniently viewed in a text editor.<br />
|
126
|
+
Call <span class="code">Rum.reference</span> or manually open
|
127
|
+
<span class="code">rum_dir/doc/reference.rb</span>.
|
128
|
+
#reference_wrapper= reference
|
129
|
+
|
130
|
+
#development
|
131
|
+
%a{name: "development"}
|
132
|
+
%h1 Development
|
133
|
+
%p
|
134
|
+
Patches and suggestions are most appreciated.
|
135
|
+
%p
|
136
|
+
There's a <a href="https://github.com/nonsequitur/rum-dev/blob/master/rum-development.org">low-ceremony
|
137
|
+
to-do list</a> to coordinate the development
|
138
|
+
of larger-scale features.<br />
|
139
|
+
-# Please check this out if you're interested in contributing.
|
140
|
+
Feel free to have a look if you're interested in contributing.
|
141
|
+
-# Instructions on how to contribute can be found inside the list.
|
142
|
+
%h2 Building
|
143
|
+
%p
|
144
|
+
%span{class: "code"} rake build
|
145
|
+
builds the extension and the document.
|
146
|
+
%p
|
147
|
+
%span{class: "code"} rake ext
|
148
|
+
builds just the extension.
|
149
|
+
%p
|
150
|
+
%span{class: "code"} rake doc
|
151
|
+
builds this document. Requires Pygments.
|
152
|
+
%h3 Mac specifics:
|
153
|
+
%p
|
154
|
+
XCode required.
|
155
|
+
%h3 Windows specifics:
|
156
|
+
%p
|
157
|
+
Visual Studio required. (Out-of-the-box MinGW support coming soon.)
|
158
|
+
%p
|
159
|
+
You need to setup the Visual Studio build environment before running the rake commands.<br />Call <span class="code">"%programfiles%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86</span> from your Windows terminal.
|
160
|
+
%p
|
161
|
+
You might have to delete the following lines from <span class="code">ruby_dir/include/ruby-1.9.x/i386-mswin32/ruby/config.h</span> to work around a compiler error:
|
162
|
+
%pre
|
163
|
+
\#if _MSC_VER != 1200
|
164
|
+
\#error MSC version unmatch: _MSC_VER: 1200 is expected.
|
165
|
+
\#endif
|
166
|
+
#footer
|
167
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,94 @@
|
|
1
|
+
.chapter .highlight { background-color: #F4F4F4; }
|
2
|
+
|
3
|
+
|
4
|
+
/* .chapter .highlight { color: #F7F7F7; background-color: #27262F; } */
|
5
|
+
/* .chapter .c1 { color: #8b8b8b; font-style: italic } /\* Comment.Single *\/ */
|
6
|
+
/* .chapter .nb { color: #c13a3a } /\* Name.Builtin *\/ */
|
7
|
+
/* .chapter .k { color: #c13a3a; font-weight: bold } /\* Keyword *\/ */
|
8
|
+
/* .chapter .kp { color: #c13a3a } /\* Keyword.Pseudo *\/ */
|
9
|
+
/* .chapter .no { color: #FF4530 } /\* Name.Constant *\/ */
|
10
|
+
/* /\* .no { color: #664312 } /\\* Name.Constant *\\/ *\/ */
|
11
|
+
/* .chapter .s1 { color: #13E618 } /\* Literal.String.Single *\/ */
|
12
|
+
/* /\* .s1 { color: #68b800 } /\\* Literal.String.Single *\\/ *\/ */
|
13
|
+
/* /\* #content .s1 { color: #68b800 } *\/ */
|
14
|
+
/* .chapter .ss { color: #FF9E21 } /\* Literal.String.Symbol *\/ */
|
15
|
+
/* .chapter .sr { color: #BB6688 } /\* Literal.String.Regex *\/ */
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
.c1 { color: #717171; font-style: italic } /* Comment.Single */
|
20
|
+
.nb { color: #c13a3a } /* Name.Builtin */
|
21
|
+
.k { color: #c13a3a; font-weight: bold } /* Keyword */
|
22
|
+
.kp { color: #c13a3a } /* Keyword.Pseudo */
|
23
|
+
/* .no { color: #661A12 } /\* Name.Constant */
|
24
|
+
.no { color: #B42313 } /* Name.Constant */
|
25
|
+
/* .no { color: ##FF3300 } /\* Name.Constant *\/ */
|
26
|
+
/* .no { color: #664312 } /\* Name.Constant *\/ */
|
27
|
+
/* .s1 { color: #58920e } /\* Literal.String.Single *\/ */
|
28
|
+
.s1 { color: #39BF06 } /* Literal.String.Single */
|
29
|
+
.s1 { color: #34AD06 } /* Literal.String.Single */39BF06
|
30
|
+
/* .s1 { color: #68b800 } /\* Literal.String.Single *\/ */
|
31
|
+
/* #content .s1 { color: #68b800 } */
|
32
|
+
.ss { color: #58920e } /* Literal.String.Symbol */
|
33
|
+
.sr { color: #BB6688 } /* Literal.String.Regex */
|
34
|
+
/* .mi { color: #666666 } /\* Literal.Number.Integer *\/ */
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
.hll { background-color: #ffffcc }
|
39
|
+
.c { color: #408080; font-style: italic } /* Comment */
|
40
|
+
.err { border: 1px solid #FF0000 } /* Error */
|
41
|
+
/* .o { color: #666666 } /\* Operator *\/ */
|
42
|
+
.cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
43
|
+
.cp { color: #BC7A00 } /* Comment.Preproc */
|
44
|
+
|
45
|
+
|
46
|
+
.cs { color: #408080; font-style: italic } /* Comment.Special */
|
47
|
+
.gd { color: #A00000 } /* Generic.Deleted */
|
48
|
+
.ge { font-style: italic } /* Generic.Emph */
|
49
|
+
.gr { color: #FF0000 } /* Generic.Error */
|
50
|
+
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
51
|
+
.gi { color: #00A000 } /* Generic.Inserted */
|
52
|
+
.go { color: #808080 } /* Generic.Output */
|
53
|
+
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
54
|
+
.gs { font-weight: bold } /* Generic.Strong */
|
55
|
+
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
56
|
+
.gt { color: #0040D0 } /* Generic.Traceback */
|
57
|
+
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
58
|
+
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
59
|
+
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
60
|
+
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
61
|
+
.kt { color: #B00040 } /* Keyword.Type */
|
62
|
+
.m { color: #666666 } /* Literal.Number */
|
63
|
+
.s { color: #BA2121 } /* Literal.String */
|
64
|
+
.na { color: #7D9029 } /* Name.Attribute */
|
65
|
+
|
66
|
+
.nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
67
|
+
.nd { color: #AA22FF } /* Name.Decorator */
|
68
|
+
.ni { color: #999999; font-weight: bold } /* Name.Entity */
|
69
|
+
.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
70
|
+
.nf { color: #0000FF } /* Name.Function */
|
71
|
+
.nl { color: #A0A000 } /* Name.Label */
|
72
|
+
.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
73
|
+
.nt { color: #008000; font-weight: bold } /* Name.Tag */
|
74
|
+
.nv { color: #19177C } /* Name.Variable */
|
75
|
+
.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
76
|
+
.w { color: #bbbbbb } /* Text.Whitespace */
|
77
|
+
.mf { color: #666666 } /* Literal.Number.Float */
|
78
|
+
.mh { color: #666666 } /* Literal.Number.Hex */
|
79
|
+
|
80
|
+
.mo { color: #666666 } /* Literal.Number.Oct */
|
81
|
+
.sb { color: #BA2121 } /* Literal.String.Backtick */
|
82
|
+
.sc { color: #BA2121 } /* Literal.String.Char */
|
83
|
+
.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
84
|
+
.s2 { color: #BA2121 } /* Literal.String.Double */
|
85
|
+
.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
86
|
+
.sh { color: #BA2121 } /* Literal.String.Heredoc */
|
87
|
+
.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
88
|
+
.sx { color: #008000 } /* Literal.String.Other */
|
89
|
+
|
90
|
+
.bp { color: #008000 } /* Name.Builtin.Pseudo */
|
91
|
+
.vc { color: #19177C } /* Name.Variable.Class */
|
92
|
+
.vg { color: #19177C } /* Name.Variable.Global */
|
93
|
+
.vi { color: #19177C } /* Name.Variable.Instance */
|
94
|
+
.il { color: #666666 } /* Literal.Number.Integer.Long */
|