jruby-lint 0.4.0 → 0.4.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.
- data/.gitignore +1 -0
- data/History.txt +5 -0
- data/LICENSE.txt +2253 -0
- data/README.md +12 -0
- data/jruby-lint.gemspec +1 -0
- data/lib/jruby/lint/checkers.rb +1 -0
- data/lib/jruby/lint/checkers/nonatomic.rb +39 -0
- data/lib/jruby/lint/version.rb +1 -1
- data/spec/fixtures/C-Extension-Alternatives.html +155 -497
- data/spec/jruby/lint/checkers_spec.rb +78 -0
- metadata +32 -24
data/README.md
CHANGED
@@ -66,3 +66,15 @@ Here is a list of checks and options we'd like to implement:
|
|
66
66
|
and/or test suite runs
|
67
67
|
|
68
68
|
[install]: http://jruby.org/getting-started
|
69
|
+
|
70
|
+
## License
|
71
|
+
|
72
|
+
JRuby-Lint is Copyright (c) 2007-2013 The JRuby project, and is released
|
73
|
+
under a tri EPL/GPL/LGPL license. You can use it, redistribute it
|
74
|
+
and/or modify it under the terms of the:
|
75
|
+
|
76
|
+
Eclipse Public License version 1.0
|
77
|
+
GNU General Public License version 2
|
78
|
+
GNU Lesser General Public License version 2.1
|
79
|
+
|
80
|
+
See the file `LICENSE.txt` in distribution for details.
|
data/jruby-lint.gemspec
CHANGED
@@ -8,6 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.authors = ["Nick Sieger"]
|
10
10
|
s.email = ["nick@nicksieger.com"]
|
11
|
+
s.licenses = ["EPL 1.0", "GPL 2", "LGPL 2.1"]
|
11
12
|
s.homepage = "https://github.com/jruby/jruby-lint"
|
12
13
|
s.summary = %q{See how ready your Ruby code is to run on JRuby.}
|
13
14
|
s.description = %q{This utility presents hints and suggestions to
|
data/lib/jruby/lint/checkers.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
module JRuby::Lint
|
2
|
+
module Checkers
|
3
|
+
class NonAtomic
|
4
|
+
include Checker
|
5
|
+
|
6
|
+
def visitOpAsgnOrNode(node)
|
7
|
+
check_nonatomic(node, node.first_node)
|
8
|
+
end
|
9
|
+
|
10
|
+
def visitOpAsgnAndNode(node)
|
11
|
+
check_nonatomic(node, node.first_node)
|
12
|
+
end
|
13
|
+
|
14
|
+
def visitOpElementAsgnNode(node)
|
15
|
+
add_finding(collector, node)
|
16
|
+
end
|
17
|
+
|
18
|
+
def visitOpAsgnNode(node)
|
19
|
+
check_nonatomic(node, node.receiver_node)
|
20
|
+
end
|
21
|
+
|
22
|
+
def check_nonatomic(orig_node, risk_node)
|
23
|
+
case risk_node
|
24
|
+
when org::jruby::ast::LocalVarNode,
|
25
|
+
org::jruby::ast::DVarNode
|
26
|
+
# ok...mostly-safe cases
|
27
|
+
else
|
28
|
+
add_finding(collector, orig_node)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_finding(collector, node)
|
33
|
+
collector.findings << Finding.new("Non-local operator assignment is not guaranteed to be atomic",
|
34
|
+
[:nonatomic, :warning], node.position)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
data/lib/jruby/lint/version.rb
CHANGED
@@ -9,10 +9,11 @@
|
|
9
9
|
<title>C Extension Alternatives · jruby/jruby Wiki · GitHub</title>
|
10
10
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" />
|
11
11
|
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" />
|
12
|
-
<link rel="apple-touch-icon
|
13
|
-
<link rel="apple-touch-icon
|
14
|
-
<link rel="apple-touch-icon
|
15
|
-
<link rel="apple-touch-icon
|
12
|
+
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png" />
|
13
|
+
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png" />
|
14
|
+
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png" />
|
15
|
+
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png" />
|
16
|
+
<link rel="logo" type="image/svg" href="http://github-media-downloads.s3.amazonaws.com/github-logo.svg" />
|
16
17
|
<meta name="msapplication-TileImage" content="/windows-tile.png">
|
17
18
|
<meta name="msapplication-TileColor" content="#ffffff">
|
18
19
|
|
@@ -21,64 +22,72 @@
|
|
21
22
|
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
22
23
|
|
23
24
|
<meta content="authenticity_token" name="csrf-param" />
|
24
|
-
<meta content="
|
25
|
+
<meta content="wGM78MzZjf2nWL4+igQC+rfoXXPgouU6BMay3lyDqj8=" name="csrf-token" />
|
25
26
|
|
26
|
-
<link href="https://a248.e.akamai.net/assets.github.com/assets/github-
|
27
|
-
<link href="https://a248.e.akamai.net/assets.github.com/assets/github2-
|
27
|
+
<link href="https://a248.e.akamai.net/assets.github.com/assets/github-d0506285c2d299ff2ea4f1be2c134472cdc318aa.css" media="screen" rel="stylesheet" type="text/css" />
|
28
|
+
<link href="https://a248.e.akamai.net/assets.github.com/assets/github2-41b4a8d5dfdbb37bbeaffda10e7e9ebe84b944dc.css" media="screen" rel="stylesheet" type="text/css" />
|
28
29
|
|
29
30
|
|
30
31
|
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
<script src="https://a248.e.akamai.net/assets.github.com/assets/frameworks-5d526182eb5719ec57fe668ec5ca700f54fce693.js" type="text/javascript"></script>
|
33
|
+
<script src="https://a248.e.akamai.net/assets.github.com/assets/github-5c9cb759a38e8fa524a7f5cb418b8d44b8172f00.js" type="text/javascript"></script>
|
34
|
+
|
34
35
|
|
35
|
-
|
36
|
+
<script src="https://a248.e.akamai.net/assets.github.com/assets/wiki-ae952a28c0cbce081de354bdd0c0a996dce84c3e.js" type="text/javascript"></script>
|
36
37
|
<meta property="og:title" content="jruby"/>
|
37
38
|
<meta property="og:type" content="githubog:gitrepository"/>
|
38
39
|
<meta property="og:url" content="https://github.com/jruby/jruby"/>
|
39
|
-
<meta property="og:image" content="https://a248.e.akamai.net/assets.github.com
|
40
|
+
<meta property="og:image" content="https://secure.gravatar.com/avatar/1041835545ba2997fad5ca683a91d58d?s=420&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"/>
|
40
41
|
<meta property="og:site_name" content="GitHub"/>
|
41
42
|
<meta property="og:description" content="JRuby, an implementation of Ruby on the JVM. Contribute to jruby development by creating an account on GitHub."/>
|
43
|
+
<meta property="twitter:card" content="summary"/>
|
44
|
+
<meta property="twitter:site" content="@GitHub">
|
45
|
+
<meta property="twitter:title" content="jruby/jruby"/>
|
42
46
|
|
43
47
|
<meta name="description" content="JRuby, an implementation of Ruby on the JVM. Contribute to jruby development by creating an account on GitHub." />
|
48
|
+
|
44
49
|
<link href="https://github.com/jruby/jruby/commits/master.atom" rel="alternate" title="Recent Commits to jruby:master" type="application/atom+xml" />
|
45
50
|
|
46
51
|
</head>
|
47
52
|
|
48
53
|
|
49
|
-
<body class="logged_out vis-public env-production
|
54
|
+
<body class="logged_out vis-public env-production ">
|
50
55
|
<div id="wrapper">
|
51
56
|
|
52
|
-
|
53
|
-
|
57
|
+
|
54
58
|
|
55
|
-
|
59
|
+
|
56
60
|
|
57
|
-
|
58
|
-
<div class="container clearfix">
|
59
|
-
<a class="site-logo " href="https://github.com/">
|
60
|
-
<img alt="GitHub" class="github-logo-4x" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x.png?1337118066" />
|
61
|
-
<img alt="GitHub" class="github-logo-4x-hover" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x-hover.png?1337118066" />
|
62
|
-
</a>
|
63
|
-
|
64
|
-
|
65
|
-
<!--
|
66
|
-
make sure to use fully qualified URLs here since this nav
|
67
|
-
is used on error pages on other domains
|
68
|
-
-->
|
69
|
-
<ul class="top-nav logged_out">
|
70
|
-
<li class="pricing"><a href="https://github.com/plans">Signup and Pricing</a></li>
|
71
|
-
<li class="explore"><a href="https://github.com/explore">Explore GitHub</a></li>
|
72
|
-
<li class="features"><a href="https://github.com/features">Features</a></li>
|
73
|
-
<li class="blog"><a href="https://github.com/blog">Blog</a></li>
|
74
|
-
<li class="login"><a href="https://github.com/login?return_to=%2Fjruby%2Fjruby%2Fwiki%2FC-Extension-Alternatives">Sign in</a></li>
|
75
|
-
</ul>
|
61
|
+
|
76
62
|
|
63
|
+
|
77
64
|
|
78
65
|
|
79
|
-
|
66
|
+
<div class="header header-logged-out">
|
67
|
+
<div class="container clearfix">
|
68
|
+
|
69
|
+
<a class="header-logo-wordmark" href="https://github.com/">
|
70
|
+
<img alt="GitHub" class="github-logo-4x" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x.png?1340659561" />
|
71
|
+
<img alt="GitHub" class="github-logo-4x-hover" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x-hover.png?1340659561" />
|
72
|
+
</a>
|
73
|
+
|
74
|
+
|
75
|
+
<ul class="top-nav">
|
76
|
+
<li class="explore"><a href="https://github.com/explore">Explore GitHub</a></li>
|
77
|
+
<li class="search"><a href="https://github.com/search">Search</a></li>
|
78
|
+
<li class="features"><a href="https://github.com/features">Features</a></li>
|
79
|
+
<li class="blog"><a href="https://github.com/blog">Blog</a></li>
|
80
|
+
</ul>
|
81
|
+
|
82
|
+
|
83
|
+
<div class="header-actions">
|
84
|
+
<a class="button primary" href="https://github.com/signup">Sign up for free</a>
|
85
|
+
<a class="button" href="https://github.com/login?return_to=%2Fjruby%2Fjruby%2Fwiki%2FC-Extension-Alternatives">Sign in</a>
|
86
|
+
</div>
|
87
|
+
|
88
|
+
</div>
|
80
89
|
</div>
|
81
|
-
|
90
|
+
|
82
91
|
|
83
92
|
|
84
93
|
|
@@ -88,22 +97,37 @@
|
|
88
97
|
<div class="site hfeed" itemscope itemtype="http://schema.org/WebPage">
|
89
98
|
<div class="hentry">
|
90
99
|
|
91
|
-
<div class="pagehead repohead instapaper_ignore readability-menu">
|
100
|
+
<div class="pagehead repohead instapaper_ignore readability-menu ">
|
92
101
|
<div class="container">
|
93
102
|
<div class="title-actions-bar">
|
94
103
|
|
95
104
|
|
96
105
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
106
|
+
<ul class="pagehead-actions">
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
<li>
|
111
|
+
<a href="/login?return_to=%2Fjruby%2Fjruby"
|
112
|
+
class="minibutton js-toggler-target star-button entice tooltipped upwards"
|
113
|
+
title="You must be signed in to use this feature" rel="nofollow">
|
114
|
+
<span class="mini-icon mini-icon-star"></span>Star
|
115
|
+
</a>
|
116
|
+
<a class="social-count js-social-count" href="/jruby/jruby/stargazers">
|
117
|
+
1,284
|
118
|
+
</a>
|
119
|
+
</li>
|
120
|
+
<li>
|
121
|
+
<a href="/login?return_to=%2Fjruby%2Fjruby"
|
122
|
+
class="minibutton js-toggler-target fork-button entice tooltipped upwards"
|
123
|
+
title="You must be signed in to fork a repository" rel="nofollow">
|
124
|
+
<span class="mini-icon mini-icon-fork"></span>Fork
|
125
|
+
</a>
|
126
|
+
<a href="/jruby/jruby/network" class="social-count">
|
127
|
+
314
|
128
|
+
</a>
|
129
|
+
</li>
|
130
|
+
</ul>
|
107
131
|
|
108
132
|
<h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="entry-title public">
|
109
133
|
<span class="repo-label"><span>public</span></span>
|
@@ -117,18 +141,17 @@
|
|
117
141
|
</div>
|
118
142
|
|
119
143
|
|
120
|
-
|
121
144
|
<ul class="tabs">
|
122
|
-
<li><a href="/jruby/jruby" highlight="
|
123
|
-
<li><a href="/jruby/jruby/network" highlight="repo_network">Network</a></li>
|
124
|
-
<li><a href="/jruby/jruby/pulls" highlight="repo_pulls">Pull Requests <span class='counter'>
|
145
|
+
<li><a href="/jruby/jruby" highlight="[:repo_source, :repo_downloads, :repo_commits, :repo_tags, :repo_branches]">Code</a></li>
|
146
|
+
<li><a href="/jruby/jruby/network" highlight="[:repo_network]">Network</a></li>
|
147
|
+
<li><a href="/jruby/jruby/pulls" highlight="[:repo_pulls]">Pull Requests <span class='counter'>14</span></a></li>
|
125
148
|
|
126
|
-
<li><a href="/jruby/jruby/issues" highlight="repo_issues">Issues <span class='counter'>
|
149
|
+
<li><a href="/jruby/jruby/issues" highlight="[:repo_issues]">Issues <span class='counter'>126</span></a></li>
|
127
150
|
|
128
|
-
<li><a href="/jruby/jruby/wiki" class="selected" highlight="repo_wiki">Wiki</a></li>
|
151
|
+
<li><a href="/jruby/jruby/wiki" class="selected" highlight="[:repo_wiki]">Wiki</a></li>
|
129
152
|
|
130
153
|
|
131
|
-
<li><a href="/jruby/jruby/graphs" highlight="
|
154
|
+
<li><a href="/jruby/jruby/graphs" highlight="[:repo_graphs, :repo_contributors]">Graphs</a></li>
|
132
155
|
|
133
156
|
|
134
157
|
</ul>
|
@@ -153,33 +176,36 @@
|
|
153
176
|
<div id="js-repo-pjax-container" class="container context-loader-container" data-pjax-container>
|
154
177
|
|
155
178
|
|
179
|
+
|
156
180
|
<div id="wiki-wrapper" class="page">
|
157
181
|
<div id="head">
|
158
|
-
<h1 class="instapaper_title">C Extension Alternatives</h1>
|
159
182
|
<ul class="wiki-actions readability-extra">
|
160
183
|
<li class="gollum-minibutton"><a href="/jruby/jruby/wiki/C-Extension-Alternatives/_history"
|
161
184
|
class="minibutton bigger action-page-history">
|
162
185
|
Page History
|
163
186
|
</a></li>
|
164
187
|
</ul>
|
188
|
+
<h1 class="instapaper_title">C Extension Alternatives</h1>
|
165
189
|
</div>
|
166
190
|
<div id="wiki-content">
|
167
191
|
<div class="wrap">
|
168
192
|
<div id="wiki-body" class="gollum-markdown-content instapaper_body">
|
169
193
|
<div class="markdown-body">
|
170
|
-
<p>JRuby versions prior to 1.6 did not support Ruby C extensions, and even in 1.6 the support is still "in development" and considered experimental.
|
194
|
+
<p>JRuby versions prior to 1.6 did not support Ruby C extensions, and even in 1.6 the support is still "in development" and considered experimental. As of 1.7, it has been disabled and will likely <a href="https://twitter.com/headius/statuses/281091403919003649">be removed</a>.</p>
|
195
|
+
|
196
|
+
<p>This page lists common C extensions and non-C alternatives you can use to replace them.</p>
|
171
197
|
|
172
198
|
<ul>
|
173
|
-
<li><p><strong><a href="https://github.com/rtomayko/rdiscount">RDiscount</a></strong> - Use <a href="http://kramdown.rubyforge.org">kramdown</a>, <a href="https://github.com/
|
199
|
+
<li><p><strong><a href="https://github.com/rtomayko/rdiscount">RDiscount</a></strong> - Use <a href="http://kramdown.rubyforge.org">kramdown</a>, <a href="https://github.com/bhollis/maruku">Maruku</a> (pure Ruby) or <a href="https://github.com/nate/markdown_j">markdown_j</a> (wrapper around a Java library)</p></li>
|
174
200
|
<li><p><strong><a href="https://github.com/rmagick/rmagick">RMagick</a></strong> - Try <a href="https://github.com/Serabe/RMagick4J">RMagick4J</a> (implements ImageMagick functionality in Java) or preferably use alternatives <a href="https://github.com/probablycorey/mini_magick">mini_magick</a> & <a href="https://github.com/aseldawy/quick_magick">quick_magick</a>. For simple resizing, cropping, greyscaling, etc look at <a href="https://github.com/jruby/image_voodoo">image_voodoo</a>.</p></li>
|
175
201
|
<li><p><strong><a href="http://unicorn.bogomips.org/">Unicorn</a></strong> - Try any one of the following <a class="internal present" href="/jruby/jruby/wiki/Servers">JRuby-based servers</a>: <a href="https://github.com/trinidad/trinidad">Trinidad</a>, <a href="https://github.com/matadon/mizuno">Mizuno</a>, <a href="https://github.com/strobecorp/kirk">Kirk</a>, <a href="http://mobile.www.monde.org/?L=0">mobile</a> or <a href="http://puma.io/">Puma</a>.</p></li>
|
176
202
|
<li><p><strong><a href="http://code.macournoyer.com/thin/">Thin</a></strong> - Thin might compile and run but is not recommended. Try any one of the following <a class="internal present" href="/jruby/jruby/wiki/Servers">JRuby-based servers</a>: <a href="https://github.com/trinidad/trinidad">Trinidad</a>, <a href="https://github.com/matadon/mizuno">Mizuno</a>, <a href="https://github.com/strobecorp/kirk">Kirk</a>, <a href="http://torquebox.org/">TorqueBox</a> or <a href="http://puma.io/">Puma</a>.</p></li>
|
177
203
|
<li><p><strong><a href="https://github.com/dbalatero/typhoeus">Typhoeus</a></strong> - The C extension <a href="https://github.com/dbalatero/typhoeus/issues/65">doesn't currently compile</a>. There's no equivalent library for JRuby, but you might try any of the pure-Ruby HTTP clients (<code>net/http</code>, httpclient, etc.). There are also several Java HTTP client libraries that will work (<a href="http://hc.apache.org/httpcomponents-client-ga/">Apache HttpClient</a>, <a href="http://download.oracle.com/javase/1,5.0/docs/api/java/net/HttpURLConnection.html">HttpURLConnection</a>, etc).</p></li>
|
178
|
-
<li><p><strong>mysql</strong> - Use <a href="https://github.com/
|
179
|
-
<li><p><strong>mysql2</strong> - Use <a href="https://github.com/
|
180
|
-
<li><p><strong>sqlite3</strong> - Use <a href="https://github.com/
|
204
|
+
<li><p><strong>mysql</strong> - Use <a href="https://github.com/jruby/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-mysql</code>.</p></li>
|
205
|
+
<li><p><strong>mysql2</strong> - Use <a href="https://github.com/jruby/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-mysql</code>.</p></li>
|
206
|
+
<li><p><strong>sqlite3</strong> - Use <a href="https://github.com/jruby/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-sqlite3</code>.</p></li>
|
181
207
|
<li><p><strong><a href="http://nokogiri.org/">Nokogiri</a></strong> - For best results, use the pure-Java version of Nokogiri (default after v1.5).</p></li>
|
182
|
-
<li><p><strong><a href="https://github.com/brianmario/yajl-ruby">yajl-ruby</a></strong> - Try <code>json</code> or <code>
|
208
|
+
<li><p><strong><a href="https://github.com/brianmario/yajl-ruby">yajl-ruby</a></strong> - Try <code>json</code>, <code>json_pure</code>, or <code>oj</code> instead. Unfortunately there is no known equivalent JSON stream parser.</p></li>
|
183
209
|
<li><p><strong><a href="https://github.com/mongodb/mongo-ruby-driver">bson_ext</a></strong> - <code>bson_ext</code> isn't used with JRuby. Instead, some native Java extensions are bundled with the <code>bson</code> gem.</p></li>
|
184
210
|
<li><p><strong><a href="http://www.ruby-doc.org/stdlib/libdoc/win32ole/rdoc/index.html">win32ole</a></strong> - Use the <code>jruby-win32ole</code> gem (preinstalled in JRuby's Windows installer).</p></li>
|
185
211
|
<li><p><strong><a href="http://curb.rubyforge.org/">curb</a></strong> - <a href="https://github.com/rcyrus/Rurl">Rurl</a> is an example how to implement <em>some</em> of curb's functionality using <a href="http://hc.apache.org/httpcomponents-client-ga/">Apache HttpClient</a></p></li>
|
@@ -196,7 +222,7 @@
|
|
196
222
|
</div>
|
197
223
|
<div id="gollum-footer">
|
198
224
|
<p id="last-edit">
|
199
|
-
Last edited by
|
225
|
+
Last edited by chetan, <time class="js-relative-date" datetime="2012-12-18T11:37:06-08:00" title="2012-12-18 11:37:06">December 18, 2012</time>
|
200
226
|
</p>
|
201
227
|
</div>
|
202
228
|
</div>
|
@@ -211,470 +237,102 @@
|
|
211
237
|
</div><!-- end of wrapper - hack for sticky footer -->
|
212
238
|
|
213
239
|
<!-- footer -->
|
214
|
-
<div id="footer"
|
215
|
-
|
216
|
-
<div class="upper_footer">
|
217
|
-
<div class="container clearfix">
|
218
|
-
|
219
|
-
<h4 id="blacktocat">GitHub Links</h4>
|
220
|
-
|
221
|
-
<ul class="footer_nav">
|
222
|
-
<h4>GitHub</h4>
|
223
|
-
<li><a href="https://github.com/about">About</a></li>
|
224
|
-
<li><a href="https://github.com/blog">Blog</a></li>
|
225
|
-
<li><a href="https://github.com/features">Features</a></li>
|
226
|
-
<li><a href="https://github.com/contact">Contact & Support</a></li>
|
227
|
-
<li><a href="http://training.github.com/">Training</a></li>
|
228
|
-
<li><a href="http://enterprise.github.com/">GitHub Enterprise</a></li>
|
229
|
-
<li><a href="http://status.github.com/">Site Status</a></li>
|
230
|
-
</ul>
|
231
|
-
|
232
|
-
<ul class="footer_nav">
|
233
|
-
<h4>Clients</h4>
|
234
|
-
<li><a href="http://mac.github.com/">GitHub for Mac</a></li>
|
235
|
-
<li><a href="http://windows.github.com/">GitHub for Windows</a></li>
|
236
|
-
<li><a href="http://eclipse.github.com/">GitHub for Eclipse</a></li>
|
237
|
-
<li><a href="http://mobile.github.com/">GitHub Mobile Apps</a></li>
|
238
|
-
</ul>
|
239
|
-
|
240
|
-
<ul class="footer_nav">
|
241
|
-
<h4>Tools</h4>
|
242
|
-
<li><a href="http://get.gaug.es/">Gauges: Web analytics</a></li>
|
243
|
-
<li><a href="http://speakerdeck.com">Speaker Deck: Presentations</a></li>
|
244
|
-
<li><a href="https://gist.github.com">Gist: Code snippets</a></li>
|
245
|
-
|
246
|
-
<h4 class="second">Extras</h4>
|
247
|
-
<li><a href="http://jobs.github.com/">Job Board</a></li>
|
248
|
-
<li><a href="http://shop.github.com/">GitHub Shop</a></li>
|
249
|
-
<li><a href="http://octodex.github.com/">The Octodex</a></li>
|
250
|
-
</ul>
|
251
|
-
|
252
|
-
<ul class="footer_nav">
|
253
|
-
<h4>Documentation</h4>
|
254
|
-
<li><a href="http://help.github.com/">GitHub Help</a></li>
|
255
|
-
<li><a href="http://developer.github.com/">Developer API</a></li>
|
256
|
-
<li><a href="http://github.github.com/github-flavored-markdown/">GitHub Flavored Markdown</a></li>
|
257
|
-
<li><a href="http://pages.github.com/">GitHub Pages</a></li>
|
258
|
-
</ul>
|
259
|
-
|
260
|
-
</div><!-- /.site -->
|
261
|
-
</div><!-- /.upper_footer -->
|
262
|
-
|
263
|
-
<div class="lower_footer">
|
240
|
+
<div id="footer">
|
264
241
|
<div class="container clearfix">
|
265
|
-
<div id="legal">
|
266
|
-
<ul>
|
267
|
-
<li><a href="https://github.com/site/terms">Terms of Service</a></li>
|
268
|
-
<li><a href="https://github.com/site/privacy">Privacy</a></li>
|
269
|
-
<li><a href="https://github.com/security">Security</a></li>
|
270
|
-
</ul>
|
271
|
-
|
272
|
-
<p>© 2012 <span title="0.09641s from fe13.rs.github.com">GitHub</span> Inc. All rights reserved.</p>
|
273
|
-
</div><!-- /#legal or /#legal_ie-->
|
274
|
-
|
275
|
-
</div><!-- /.site -->
|
276
|
-
</div><!-- /.lower_footer -->
|
277
|
-
|
278
|
-
|
279
|
-
</div><!-- /#footer -->
|
280
|
-
|
281
|
-
|
282
242
|
|
283
|
-
<
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
<dt>s</dt>
|
291
|
-
<dd>Focus command bar</dd>
|
292
|
-
</dl>
|
293
|
-
<dl class="keyboard-mappings">
|
294
|
-
<dt>?</dt>
|
295
|
-
<dd>Bring up this help dialog</dd>
|
243
|
+
<dl class="footer_nav">
|
244
|
+
<dt>GitHub</dt>
|
245
|
+
<dd><a href="https://github.com/about">About us</a></dd>
|
246
|
+
<dd><a href="https://github.com/blog">Blog</a></dd>
|
247
|
+
<dd><a href="https://github.com/contact">Contact & support</a></dd>
|
248
|
+
<dd><a href="http://enterprise.github.com/">GitHub Enterprise</a></dd>
|
249
|
+
<dd><a href="http://status.github.com/">Site status</a></dd>
|
296
250
|
</dl>
|
297
|
-
</div><!-- /.column.first -->
|
298
251
|
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
<
|
303
|
-
<dd>
|
304
|
-
|
305
|
-
<dl class="keyboard-mappings">
|
306
|
-
<dt>k</dt>
|
307
|
-
<dd>Move selection up</dd>
|
308
|
-
</dl>
|
309
|
-
<dl class="keyboard-mappings">
|
310
|
-
<dt>c <em>or</em> o <em>or</em> enter</dt>
|
311
|
-
<dd>Open commit</dd>
|
312
|
-
</dl>
|
313
|
-
<dl class="keyboard-mappings">
|
314
|
-
<dt>y</dt>
|
315
|
-
<dd>Expand URL to its canonical form</dd>
|
252
|
+
<dl class="footer_nav">
|
253
|
+
<dt>Applications</dt>
|
254
|
+
<dd><a href="http://mac.github.com/">GitHub for Mac</a></dd>
|
255
|
+
<dd><a href="http://windows.github.com/">GitHub for Windows</a></dd>
|
256
|
+
<dd><a href="http://eclipse.github.com/">GitHub for Eclipse</a></dd>
|
257
|
+
<dd><a href="http://mobile.github.com/">GitHub mobile apps</a></dd>
|
316
258
|
</dl>
|
317
|
-
</div><!-- /.column.first -->
|
318
259
|
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
<
|
323
|
-
<dd>
|
260
|
+
<dl class="footer_nav">
|
261
|
+
<dt>Services</dt>
|
262
|
+
<dd><a href="http://get.gaug.es/">Gauges: Web analytics</a></dd>
|
263
|
+
<dd><a href="http://speakerdeck.com">Speaker Deck: Presentations</a></dd>
|
264
|
+
<dd><a href="https://gist.github.com">Gist: Code snippets</a></dd>
|
265
|
+
<dd><a href="http://jobs.github.com/">Job board</a></dd>
|
324
266
|
</dl>
|
325
|
-
|
326
|
-
|
327
|
-
<
|
328
|
-
|
329
|
-
|
330
|
-
<
|
331
|
-
<dd>
|
332
|
-
</dl>
|
333
|
-
<dl class="keyboard-mappings">
|
334
|
-
<dt><span class="platform-mac">⌘</span><span class="platform-other">ctrl</span> <em>+</em> enter</dt>
|
335
|
-
<dd>Submit comment</dd>
|
267
|
+
|
268
|
+
<dl class="footer_nav">
|
269
|
+
<dt>Documentation</dt>
|
270
|
+
<dd><a href="http://help.github.com/">GitHub Help</a></dd>
|
271
|
+
<dd><a href="http://developer.github.com/">Developer API</a></dd>
|
272
|
+
<dd><a href="http://github.github.com/github-flavored-markdown/">GitHub Flavored Markdown</a></dd>
|
273
|
+
<dd><a href="http://pages.github.com/">GitHub Pages</a></dd>
|
336
274
|
</dl>
|
337
|
-
|
338
|
-
|
339
|
-
<
|
275
|
+
|
276
|
+
<dl class="footer_nav">
|
277
|
+
<dt>More</dt>
|
278
|
+
<dd><a href="http://training.github.com/">Training</a></dd>
|
279
|
+
<dd><a href="https://github.com/edu">Students & teachers</a></dd>
|
280
|
+
<dd><a href="http://shop.github.com">The Shop</a></dd>
|
281
|
+
<dd><a href="/plans">Plans & pricing</a></dd>
|
282
|
+
<dd><a href="http://octodex.github.com/">The Octodex</a></dd>
|
340
283
|
</dl>
|
341
|
-
</div><!-- /.columns.last -->
|
342
|
-
|
343
|
-
</div><!-- /.columns.equacols -->
|
344
|
-
|
345
|
-
<div class="js-hidden-pane" style='display:none'>
|
346
|
-
<div class="rule"></div>
|
347
|
-
|
348
|
-
<h3>Issues</h3>
|
349
|
-
|
350
|
-
<div class="columns threecols">
|
351
|
-
<div class="column first">
|
352
|
-
<dl class="keyboard-mappings">
|
353
|
-
<dt>j</dt>
|
354
|
-
<dd>Move selection down</dd>
|
355
|
-
</dl>
|
356
|
-
<dl class="keyboard-mappings">
|
357
|
-
<dt>k</dt>
|
358
|
-
<dd>Move selection up</dd>
|
359
|
-
</dl>
|
360
|
-
<dl class="keyboard-mappings">
|
361
|
-
<dt>x</dt>
|
362
|
-
<dd>Toggle selection</dd>
|
363
|
-
</dl>
|
364
|
-
<dl class="keyboard-mappings">
|
365
|
-
<dt>o <em>or</em> enter</dt>
|
366
|
-
<dd>Open issue</dd>
|
367
|
-
</dl>
|
368
|
-
<dl class="keyboard-mappings">
|
369
|
-
<dt><span class="platform-mac">⌘</span><span class="platform-other">ctrl</span> <em>+</em> enter</dt>
|
370
|
-
<dd>Submit comment</dd>
|
371
|
-
</dl>
|
372
|
-
<dl class="keyboard-mappings">
|
373
|
-
<dt><span class="platform-mac">⌘</span><span class="platform-other">ctrl</span> <em>+</em> shift p</dt>
|
374
|
-
<dd>Preview comment</dd>
|
375
|
-
</dl>
|
376
|
-
</div><!-- /.column.first -->
|
377
|
-
<div class="column last">
|
378
|
-
<dl class="keyboard-mappings">
|
379
|
-
<dt>c</dt>
|
380
|
-
<dd>Create issue</dd>
|
381
|
-
</dl>
|
382
|
-
<dl class="keyboard-mappings">
|
383
|
-
<dt>l</dt>
|
384
|
-
<dd>Create label</dd>
|
385
|
-
</dl>
|
386
|
-
<dl class="keyboard-mappings">
|
387
|
-
<dt>i</dt>
|
388
|
-
<dd>Back to inbox</dd>
|
389
|
-
</dl>
|
390
|
-
<dl class="keyboard-mappings">
|
391
|
-
<dt>u</dt>
|
392
|
-
<dd>Back to issues</dd>
|
393
|
-
</dl>
|
394
|
-
<dl class="keyboard-mappings">
|
395
|
-
<dt>/</dt>
|
396
|
-
<dd>Focus issues search</dd>
|
397
|
-
</dl>
|
398
|
-
</div>
|
399
|
-
</div>
|
400
|
-
</div>
|
401
284
|
|
402
|
-
|
403
|
-
<div class="rule"></div>
|
404
|
-
|
405
|
-
<h3>Issues Dashboard</h3>
|
406
|
-
|
407
|
-
<div class="columns threecols">
|
408
|
-
<div class="column first">
|
409
|
-
<dl class="keyboard-mappings">
|
410
|
-
<dt>j</dt>
|
411
|
-
<dd>Move selection down</dd>
|
412
|
-
</dl>
|
413
|
-
<dl class="keyboard-mappings">
|
414
|
-
<dt>k</dt>
|
415
|
-
<dd>Move selection up</dd>
|
416
|
-
</dl>
|
417
|
-
<dl class="keyboard-mappings">
|
418
|
-
<dt>o <em>or</em> enter</dt>
|
419
|
-
<dd>Open issue</dd>
|
420
|
-
</dl>
|
421
|
-
</div><!-- /.column.first -->
|
422
|
-
</div>
|
423
|
-
</div>
|
285
|
+
<hr class="footer-divider">
|
424
286
|
|
425
|
-
<div class="js-hidden-pane" style='display:none'>
|
426
|
-
<div class="rule"></div>
|
427
|
-
|
428
|
-
<h3>Network Graph</h3>
|
429
|
-
<div class="columns equacols">
|
430
|
-
<div class="column first">
|
431
|
-
<dl class="keyboard-mappings">
|
432
|
-
<dt><span class="badmono">←</span> <em>or</em> h</dt>
|
433
|
-
<dd>Scroll left</dd>
|
434
|
-
</dl>
|
435
|
-
<dl class="keyboard-mappings">
|
436
|
-
<dt><span class="badmono">→</span> <em>or</em> l</dt>
|
437
|
-
<dd>Scroll right</dd>
|
438
|
-
</dl>
|
439
|
-
<dl class="keyboard-mappings">
|
440
|
-
<dt><span class="badmono">↑</span> <em>or</em> k</dt>
|
441
|
-
<dd>Scroll up</dd>
|
442
|
-
</dl>
|
443
|
-
<dl class="keyboard-mappings">
|
444
|
-
<dt><span class="badmono">↓</span> <em>or</em> j</dt>
|
445
|
-
<dd>Scroll down</dd>
|
446
|
-
</dl>
|
447
|
-
<dl class="keyboard-mappings">
|
448
|
-
<dt>t</dt>
|
449
|
-
<dd>Toggle visibility of head labels</dd>
|
450
|
-
</dl>
|
451
|
-
</div><!-- /.column.first -->
|
452
|
-
<div class="column last">
|
453
|
-
<dl class="keyboard-mappings">
|
454
|
-
<dt>shift <span class="badmono">←</span> <em>or</em> shift h</dt>
|
455
|
-
<dd>Scroll all the way left</dd>
|
456
|
-
</dl>
|
457
|
-
<dl class="keyboard-mappings">
|
458
|
-
<dt>shift <span class="badmono">→</span> <em>or</em> shift l</dt>
|
459
|
-
<dd>Scroll all the way right</dd>
|
460
|
-
</dl>
|
461
|
-
<dl class="keyboard-mappings">
|
462
|
-
<dt>shift <span class="badmono">↑</span> <em>or</em> shift k</dt>
|
463
|
-
<dd>Scroll all the way up</dd>
|
464
|
-
</dl>
|
465
|
-
<dl class="keyboard-mappings">
|
466
|
-
<dt>shift <span class="badmono">↓</span> <em>or</em> shift j</dt>
|
467
|
-
<dd>Scroll all the way down</dd>
|
468
|
-
</dl>
|
469
|
-
</div><!-- /.column.last -->
|
470
|
-
</div>
|
471
|
-
</div>
|
472
287
|
|
473
|
-
|
474
|
-
<
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
<
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
<dl class="keyboard-mappings">
|
483
|
-
<dt>l</dt>
|
484
|
-
<dd>Jump to line</dd>
|
485
|
-
</dl>
|
486
|
-
<dl class="keyboard-mappings">
|
487
|
-
<dt>w</dt>
|
488
|
-
<dd>Switch branch/tag</dd>
|
489
|
-
</dl>
|
490
|
-
<dl class="keyboard-mappings">
|
491
|
-
<dt>y</dt>
|
492
|
-
<dd>Expand URL to its canonical form</dd>
|
493
|
-
</dl>
|
494
|
-
</div>
|
495
|
-
</div>
|
496
|
-
</div>
|
288
|
+
<p class="right">© 2013 <span title="0.08273s from fe18.rs.github.com">GitHub</span>, Inc. All rights reserved.</p>
|
289
|
+
<a class="left" href="https://github.com/">
|
290
|
+
<span class="mega-icon mega-icon-invertocat"></span>
|
291
|
+
</a>
|
292
|
+
<ul id="legal">
|
293
|
+
<li><a href="https://github.com/site/terms">Terms of Service</a></li>
|
294
|
+
<li><a href="https://github.com/site/privacy">Privacy</a></li>
|
295
|
+
<li><a href="https://github.com/security">Security</a></li>
|
296
|
+
</ul>
|
497
297
|
|
498
|
-
|
499
|
-
<div class="rule"></div>
|
500
|
-
<div class="columns threecols">
|
501
|
-
<div class="column first">
|
502
|
-
<h3>Browsing Commits</h3>
|
503
|
-
<dl class="keyboard-mappings">
|
504
|
-
<dt><span class="platform-mac">⌘</span><span class="platform-other">ctrl</span> <em>+</em> enter</dt>
|
505
|
-
<dd>Submit comment</dd>
|
506
|
-
</dl>
|
507
|
-
<dl class="keyboard-mappings">
|
508
|
-
<dt>escape</dt>
|
509
|
-
<dd>Close form</dd>
|
510
|
-
</dl>
|
511
|
-
<dl class="keyboard-mappings">
|
512
|
-
<dt>p</dt>
|
513
|
-
<dd>Parent commit</dd>
|
514
|
-
</dl>
|
515
|
-
<dl class="keyboard-mappings">
|
516
|
-
<dt>o</dt>
|
517
|
-
<dd>Other parent commit</dd>
|
518
|
-
</dl>
|
519
|
-
</div>
|
520
|
-
</div>
|
521
|
-
</div>
|
298
|
+
</div><!-- /.container -->
|
522
299
|
|
523
|
-
|
524
|
-
<div class="rule"></div>
|
525
|
-
<h3>Notifications</h3>
|
526
|
-
|
527
|
-
<div class="columns threecols">
|
528
|
-
<div class="column first">
|
529
|
-
<dl class="keyboard-mappings">
|
530
|
-
<dt>j</dt>
|
531
|
-
<dd>Move selection down</dd>
|
532
|
-
</dl>
|
533
|
-
<dl class="keyboard-mappings">
|
534
|
-
<dt>k</dt>
|
535
|
-
<dd>Move selection up</dd>
|
536
|
-
</dl>
|
537
|
-
<dl class="keyboard-mappings">
|
538
|
-
<dt>o <em>or</em> enter</dt>
|
539
|
-
<dd>Open notification</dd>
|
540
|
-
</dl>
|
541
|
-
</div><!-- /.column.first -->
|
542
|
-
|
543
|
-
<div class="column second">
|
544
|
-
<dl class="keyboard-mappings">
|
545
|
-
<dt>e <em>or</em> shift i <em>or</em> y</dt>
|
546
|
-
<dd>Mark as read</dd>
|
547
|
-
</dl>
|
548
|
-
<dl class="keyboard-mappings">
|
549
|
-
<dt>shift m</dt>
|
550
|
-
<dd>Mute thread</dd>
|
551
|
-
</dl>
|
552
|
-
</div><!-- /.column.first -->
|
553
|
-
</div>
|
554
|
-
</div>
|
300
|
+
</div><!-- /.#footer -->
|
555
301
|
|
556
|
-
</div>
|
557
302
|
|
558
|
-
<div
|
559
|
-
<
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
<pre>
|
568
|
-
# This is an <h1> tag
|
569
|
-
## This is an <h2> tag
|
570
|
-
###### This is an <h6> tag</pre>
|
571
|
-
<p>Text styles</p>
|
572
|
-
<pre>
|
573
|
-
*This text will be italic*
|
574
|
-
_This will also be italic_
|
575
|
-
**This text will be bold**
|
576
|
-
__This will also be bold__
|
577
|
-
|
578
|
-
*You **can** combine them*
|
579
|
-
</pre>
|
580
|
-
</div>
|
581
|
-
<div class="col">
|
582
|
-
<h3>Lists</h3>
|
583
|
-
<p>Unordered</p>
|
584
|
-
<pre>
|
585
|
-
* Item 1
|
586
|
-
* Item 2
|
587
|
-
* Item 2a
|
588
|
-
* Item 2b</pre>
|
589
|
-
<p>Ordered</p>
|
590
|
-
<pre>
|
591
|
-
1. Item 1
|
592
|
-
2. Item 2
|
593
|
-
3. Item 3
|
594
|
-
* Item 3a
|
595
|
-
* Item 3b</pre>
|
596
|
-
</div>
|
597
|
-
<div class="col">
|
598
|
-
<h3>Miscellaneous</h3>
|
599
|
-
<p>Images</p>
|
600
|
-
<pre>
|
601
|
-

|
602
|
-
Format: 
|
603
|
-
</pre>
|
604
|
-
<p>Links</p>
|
605
|
-
<pre>
|
606
|
-
http://github.com - automatic!
|
607
|
-
[GitHub](http://github.com)</pre>
|
608
|
-
<p>Blockquotes</p>
|
609
|
-
<pre>
|
610
|
-
As Kanye West said:
|
611
|
-
|
612
|
-
> We're living the future so
|
613
|
-
> the present is our past.
|
614
|
-
</pre>
|
303
|
+
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay">
|
304
|
+
<div class="fullscreen-container js-fullscreen-container">
|
305
|
+
<div class="textarea-wrap">
|
306
|
+
<textarea name="fullscreen-contents" id="fullscreen-contents" class="js-fullscreen-contents" placeholder="" data-suggester="fullscreen_suggester"></textarea>
|
307
|
+
<div class="suggester-container">
|
308
|
+
<div class="suggester fullscreen-suggester js-navigation-container" id="fullscreen_suggester"
|
309
|
+
data-url="/jruby/jruby/suggestions/commit">
|
310
|
+
</div>
|
311
|
+
</div>
|
615
312
|
</div>
|
616
313
|
</div>
|
617
|
-
<div class="
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
if(arg) {
|
626
|
-
$.facebox({div:'#foo'})
|
627
|
-
}
|
628
|
-
}
|
629
|
-
```</pre>
|
630
|
-
</div>
|
631
|
-
<div class="col">
|
632
|
-
<p>Or, indent your code 4 spaces</p>
|
633
|
-
<pre>
|
634
|
-
Here is a Python code example
|
635
|
-
without syntax highlighting:
|
636
|
-
|
637
|
-
def foo:
|
638
|
-
if not bar:
|
639
|
-
return true</pre>
|
640
|
-
</div>
|
641
|
-
<div class="col">
|
642
|
-
<p>Inline code for comments</p>
|
643
|
-
<pre>
|
644
|
-
I think you should use an
|
645
|
-
`<addr>` element here instead.</pre>
|
646
|
-
</div>
|
647
|
-
</div>
|
648
|
-
|
314
|
+
<div class="fullscreen-sidebar">
|
315
|
+
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped leftwards" title="Exit Zen Mode">
|
316
|
+
<span class="mega-icon mega-icon-normalscreen"></span>
|
317
|
+
</a>
|
318
|
+
<a href="#" class="theme-switcher js-theme-switcher tooltipped leftwards"
|
319
|
+
title="Switch themes">
|
320
|
+
<span class="mini-icon mini-icon-brightness"></span>
|
321
|
+
</a>
|
649
322
|
</div>
|
650
323
|
</div>
|
651
324
|
|
652
325
|
|
326
|
+
|
653
327
|
<div id="ajax-error-message" class="flash flash-error">
|
654
328
|
<span class="mini-icon mini-icon-exclamation"></span>
|
655
329
|
Something went wrong with that request. Please try again.
|
656
330
|
<a href="#" class="mini-icon mini-icon-remove-close ajax-error-dismiss"></a>
|
657
331
|
</div>
|
658
332
|
|
659
|
-
<div id="logo-popup">
|
660
|
-
<h2>Looking for the GitHub logo?</h2>
|
661
|
-
<ul>
|
662
|
-
<li>
|
663
|
-
<h4>GitHub Logo</h4>
|
664
|
-
<a href="http://github-media-downloads.s3.amazonaws.com/GitHub_Logos.zip"><img alt="Github_logo" src="https://a248.e.akamai.net/assets.github.com/images/modules/about_page/github_logo.png?1334862345" /></a>
|
665
|
-
<a href="http://github-media-downloads.s3.amazonaws.com/GitHub_Logos.zip" class="minibutton download">Download</a>
|
666
|
-
</li>
|
667
|
-
<li>
|
668
|
-
<h4>The Octocat</h4>
|
669
|
-
<a href="http://github-media-downloads.s3.amazonaws.com/Octocats.zip"><img alt="Octocat" src="https://a248.e.akamai.net/assets.github.com/images/modules/about_page/octocat.png?1334862345" /></a>
|
670
|
-
<a href="http://github-media-downloads.s3.amazonaws.com/Octocats.zip" class="minibutton download">Download</a>
|
671
|
-
</li>
|
672
|
-
</ul>
|
673
|
-
</div>
|
674
|
-
|
675
333
|
|
676
334
|
|
677
|
-
<span id='server_response_time' data-time='0.
|
335
|
+
<span id='server_response_time' data-time='0.08426' data-host='fe18'></span>
|
678
336
|
|
679
337
|
</body>
|
680
338
|
</html>
|