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/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.
@@ -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
@@ -24,3 +24,4 @@ require 'jruby/lint/checkers/thread_critical'
24
24
  require 'jruby/lint/checkers/object_space'
25
25
  require 'jruby/lint/checkers/timeout'
26
26
  require 'jruby/lint/checkers/system'
27
+ require 'jruby/lint/checkers/nonatomic'
@@ -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
+
@@ -1,5 +1,5 @@
1
1
  module JRuby
2
2
  module Lint
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
5
5
  end
@@ -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-precomposed" sizes="57x57" href="apple-touch-icon-114.png" />
13
- <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114.png" />
14
- <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-144.png" />
15
- <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144.png" />
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="6Qm2/XLBVrDz/ViJ+Af90zgrg0uh/0ENwOzt0AUeq64=" name="csrf-token" />
25
+ <meta content="wGM78MzZjf2nWL4+igQC+rfoXXPgouU6BMay3lyDqj8=" name="csrf-token" />
25
26
 
26
- <link href="https://a248.e.akamai.net/assets.github.com/assets/github-ce830f15a059580dd0f810cc75bcb0ee809ef6a1.css" media="screen" rel="stylesheet" type="text/css" />
27
- <link href="https://a248.e.akamai.net/assets.github.com/assets/github2-4487b0f7adb97a21e3025cca1477fd2895190e2a.css" media="screen" rel="stylesheet" type="text/css" />
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
- <script src="https://a248.e.akamai.net/assets.github.com/assets/frameworks-28923941200b998a3e7422badab5b9be240f9be4.js" type="text/javascript"></script>
32
- <script src="https://a248.e.akamai.net/assets.github.com/assets/github-36f451a5784385d840e64f10e6b5daa274523286.js" type="text/javascript"></script>
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
- <script src="https://a248.e.akamai.net/assets.github.com/assets/wiki-dec2413e047224cac07760fa1b6a8c87de91f0c5.js" type="text/javascript"></script>
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/images/gravatars/gravatar-user-420.png?1345673561"/>
40
+ <meta property="og:image" content="https://secure.gravatar.com/avatar/1041835545ba2997fad5ca683a91d58d?s=420&amp;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
- <div id="header" class="true clearfix">
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
- </div>
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
- <ul class="pagehead-actions">
98
-
99
-
100
- <li>
101
- <span class="star-button"><a href="/login?return_to=%2Fjruby%2Fjruby" class="minibutton js-toggler-target entice tooltipped leftwards" title="You must be signed in to use this feature" rel="nofollow"><span class="mini-icon mini-icon-star"></span>Star</a><a class="social-count js-social-count" href="/jruby/jruby/stargazers">1,137</a></span>
102
- </li>
103
- <li>
104
- <a href="/login?return_to=%2Fjruby%2Fjruby" class="minibutton js-toggler-target fork-button entice tooltipped leftwards" title="You must be signed in to fork a repository" rel="nofollow"><span class="mini-icon mini-icon-fork"></span>Fork</a><a href="/jruby/jruby/network" class="social-count">269</a>
105
- </li>
106
- </ul>
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="repo_sourcerepo_downloadsrepo_commitsrepo_tagsrepo_branches">Code</a></li>
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'>1</span></a></li>
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'>51</span></a></li>
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="repo_graphsrepo_contributors">Graphs</a></li>
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. This page lists common C extensions and non-C alternatives you can use to replace them.</p>
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/nex3/maruku">Maruku</a> (pure Ruby) or <a href="https://github.com/nate/markdown_j">markdown_j</a> (wrapper around a Java library)</p></li>
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> &amp; <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/nicksieger/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-mysql</code>.</p></li>
179
- <li><p><strong>mysql2</strong> - Use <a href="https://github.com/nicksieger/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-mysql</code>.</p></li>
180
- <li><p><strong>sqlite3</strong> - Use <a href="https://github.com/nicksieger/activerecord-jdbc-adapter">activerecord-jdbc-adapter</a> instead along with <code>jdbc-sqlite3</code>.</p></li>
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>json_pure</code> instead. Unfortunately there is no known equivalent JSON stream parser.</p></li>
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 flyerhzm, <time class="js-relative-date" datetime="2012-08-30T20:16:02-07:00" title="2012-08-30 20:16:02">August 30, 2012</time>
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 &amp; 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>&copy; 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
- <div id="keyboard_shortcuts_pane" class="instapaper_ignore readability-extra" style="display:none">
284
- <h2>Keyboard Shortcuts <small><a href="#" class="js-see-all-keyboard-shortcuts">(see all)</a></small></h2>
285
-
286
- <div class="columns threecols">
287
- <div class="column first">
288
- <h3>Site wide shortcuts</h3>
289
- <dl class="keyboard-mappings">
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 &amp; 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
- <div class="column middle" style='display:none'>
300
- <h3>Commit list</h3>
301
- <dl class="keyboard-mappings">
302
- <dt>j</dt>
303
- <dd>Move selection down</dd>
304
- </dl>
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
- <div class="column last js-hidden-pane" style='display:none'>
320
- <h3>Pull request list</h3>
321
- <dl class="keyboard-mappings">
322
- <dt>j</dt>
323
- <dd>Move selection down</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
- <dl class="keyboard-mappings">
326
- <dt>k</dt>
327
- <dd>Move selection up</dd>
328
- </dl>
329
- <dl class="keyboard-mappings">
330
- <dt>o <em>or</em> enter</dt>
331
- <dd>Open issue</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
- <dl class="keyboard-mappings">
338
- <dt><span class="platform-mac">⌘</span><span class="platform-other">ctrl</span> <em>+</em> shift p</dt>
339
- <dd>Preview comment</dd>
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 &amp; teachers</a></dd>
280
+ <dd><a href="http://shop.github.com">The Shop</a></dd>
281
+ <dd><a href="/plans">Plans &amp; 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
- <div class="js-hidden-pane" style='display:none'>
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
- <div class="js-hidden-pane" style='display:none'>
474
- <div class="rule"></div>
475
- <div class="columns threecols">
476
- <div class="column first js-hidden-pane" style='display:none'>
477
- <h3>Source Code Browsing</h3>
478
- <dl class="keyboard-mappings">
479
- <dt>t</dt>
480
- <dd>Activates the file finder</dd>
481
- </dl>
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">&copy; 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
- <div class="js-hidden-pane" style='display:none'>
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
- <div class="js-hidden-pane" style='display:none'>
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 id="markdown-help" class="instapaper_ignore readability-extra">
559
- <h2>Markdown Cheat Sheet</h2>
560
-
561
- <div class="cheatsheet-content">
562
-
563
- <div class="mod">
564
- <div class="col">
565
- <h3>Format Text</h3>
566
- <p>Headers</p>
567
- <pre>
568
- # This is an &lt;h1&gt; tag
569
- ## This is an &lt;h2&gt; tag
570
- ###### This is an &lt;h6&gt; 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
- ![GitHub Logo](/images/logo.png)
602
- Format: ![Alt Text](url)
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="rule"></div>
618
-
619
- <h3>Code Examples in Markdown</h3>
620
- <div class="col">
621
- <p>Syntax highlighting with <a href="http://github.github.com/github-flavored-markdown/" title="GitHub Flavored Markdown" target="_blank">GFM</a></p>
622
- <pre>
623
- ```javascript
624
- function fancyAlert(arg) {
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
- `&lt;addr&gt;` 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.09792' data-host='fe13'></span>
335
+ <span id='server_response_time' data-time='0.08426' data-host='fe18'></span>
678
336
 
679
337
  </body>
680
338
  </html>