<%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
<%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/.svn/text-base/show.api.rsb.svn-base
--- a/app/views/issues/.svn/text-base/show.api.rsb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/issues/.svn/text-base/show.api.rsb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -26,10 +26,10 @@
render_api_issue_children(@issue, api) if include_in_api_response?('children')
api.array :relations do
- @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
+ @relations.each do |relation|
api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
end
- end if include_in_api_response?('relations')
+ end if include_in_api_response?('relations') && @relations.present?
api.array :changesets do
@issue.changesets.each do |changeset|
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/_relations.rhtml
--- a/app/views/issues/_relations.rhtml Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/issues/_relations.rhtml Tue Feb 08 13:51:46 2011 +0000
@@ -6,9 +6,9 @@
<%=l(:label_related_issues)%>
-<% if @issue.relations.any? %>
+<% if @relations.present? %>
-<% @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation| %>
+<% @relations.each do |relation| %>
<%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
<%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/show.api.rsb
--- a/app/views/issues/show.api.rsb Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/issues/show.api.rsb Tue Feb 08 13:51:46 2011 +0000
@@ -26,10 +26,10 @@
render_api_issue_children(@issue, api) if include_in_api_response?('children')
api.array :relations do
- @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
+ @relations.each do |relation|
api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
end
- end if include_in_api_response?('relations')
+ end if include_in_api_response?('relations') && @relations.present?
api.array :changesets do
@issue.changesets.each do |changeset|
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/journals/.svn/entries
--- a/app/views/journals/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/journals/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/journals
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.579750Z
+2011-02-08T13:45:45.000000Z
fb8a5b1bfdbadbbaaa17ce7fc1dfcf3c
2009-10-11T10:36:11.599175Z
2924
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.579750Z
+2011-02-08T13:45:45.000000Z
269ec86216a5d0340e02940f1b190d51
2010-03-17T04:13:05.342620Z
3596
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.579750Z
+2011-02-08T13:45:45.000000Z
ce552c52f7c423630412d0593cc1ee61
2008-02-02T10:50:31.694950Z
1105
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.579750Z
+2011-02-08T13:45:45.000000Z
ef7f777c9318cee52e909377c4f96e8b
2010-08-23T15:04:36.844654Z
4034
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/layouts/.svn/entries
--- a/app/views/layouts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/layouts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/layouts
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
0bc162aa0af44b46e02548061da67700
2011-01-16T16:36:58.753919Z
4731
@@ -66,7 +66,7 @@
-2010-11-19T13:04:48.184855Z
+2011-02-08T13:45:45.000000Z
490231bbc42932a0f9e1735a94d06260
2010-11-02T19:00:36.834304Z
4362
@@ -100,7 +100,7 @@
-2010-11-19T13:04:48.184855Z
+2011-02-08T13:45:45.000000Z
5073a425d4e7896c725996f9cf35f74b
2010-11-02T19:00:36.834304Z
4362
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.583752Z
+2011-02-08T13:45:45.000000Z
cc6ca08e56314fb510561e8eeb4ede46
2009-12-17T18:21:02.630202Z
3176
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/ldap_auth_sources/.svn/entries
--- a/app/views/ldap_auth_sources/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/ldap_auth_sources/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/ldap_auth_sources
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.583752Z
+2011-02-08T13:45:45.000000Z
7eaca2b2857c3c1ef6fa72633333d56f
2010-05-23T03:16:31.304135Z
3744
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/mailer/.svn/entries
--- a/app/views/mailer/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/mailer/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/mailer
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:49.420968Z
+2011-02-08T13:45:45.000000Z
1729c597befa0c9411266eb9d1c5b577
2010-10-27T16:27:06.240747Z
4296
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.599741Z
+2011-02-08T13:45:45.000000Z
e54fccdf5cf9e146cddf2adc5797d76f
2009-02-20T17:04:47.905923Z
2484
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
55d268cfc5ec4c2375739d401a00e9ca
2007-11-04T10:43:39.403792Z
877
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
157b6123ac6990f3cb83d1a24c441599
2007-11-18T17:46:55.863051Z
915
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
99836d2f584d6975add91d6f4885dfa3
2010-02-18T19:13:38.135448Z
3452
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
0fcec4c9195f18d0d58724feb863a27e
2007-11-04T10:43:39.403792Z
877
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
501bcdc81562733bce55a29655f6fd89
2009-02-21T11:04:50.579477Z
2493
@@ -270,7 +270,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
746db1ca981aa5fc37569de58a3be57b
2010-02-18T19:13:38.135448Z
3452
@@ -304,7 +304,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
55b994ef0e81fdc6d78f280c8716f230
2010-02-18T19:13:38.135448Z
3452
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
76b612bb95df0f232af66dcfa75908a9
2010-02-18T19:13:38.135448Z
3452
@@ -372,7 +372,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
6a0fb1622f40125ab40706fa05705436
2009-02-21T11:04:50.579477Z
2493
@@ -406,7 +406,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
6efcff34ccd9ec0ebd5c501a38bd9e61
2009-07-05T14:14:44.411724Z
2814
@@ -440,7 +440,7 @@
-2010-11-19T13:04:49.420968Z
+2011-02-08T13:45:45.000000Z
37e05984b98664e4b97c26b51196f9ab
2010-10-27T16:27:06.240747Z
4296
@@ -474,7 +474,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
62a282059a34f2aaa4d56b609e94e27c
2007-11-04T10:43:39.403792Z
877
@@ -508,7 +508,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
b95faada3d8a7eac9ddd90de85d377eb
2007-11-04T10:43:39.403792Z
877
@@ -542,7 +542,7 @@
-2010-09-23T14:37:44.599741Z
+2011-02-08T13:45:45.000000Z
b6dee3a7f5ce5253d3d66ea2d0aed032
2009-02-20T17:04:47.905923Z
2484
@@ -576,7 +576,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
382940abff8d469305e2b82eaac09875
2007-11-04T10:43:39.403792Z
877
@@ -610,7 +610,7 @@
-2010-09-23T14:37:44.599741Z
+2011-02-08T13:45:45.000000Z
1f73b58bdc0fd4474073437ce2e219bd
2007-11-04T10:43:39.403792Z
877
@@ -644,7 +644,7 @@
-2010-09-23T14:37:44.599741Z
+2011-02-08T13:45:45.000000Z
871cf6abc13d895f9de91ef4ac36c2bd
2010-02-18T19:13:38.135448Z
3452
@@ -678,7 +678,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
db9ef17343824d59b7a19db7036ee2f1
2010-02-18T19:13:38.135448Z
3452
@@ -712,7 +712,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
0cbce1fe1b288482af3095ce9bc555ed
2007-11-04T10:43:39.403792Z
877
@@ -746,7 +746,7 @@
-2010-09-23T14:37:44.607738Z
+2011-02-08T13:45:45.000000Z
7dffb9cfc22aef3b03d0d771179f26d6
2010-02-18T19:13:38.135448Z
3452
@@ -780,7 +780,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
d4eae87a9e17f49caeb6913659b9c42d
2007-11-04T10:43:39.403792Z
877
@@ -814,7 +814,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
52a0f774acd5b7aeeb3768de943af901
2009-02-21T11:04:50.579477Z
2493
@@ -848,7 +848,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
06d5fbff057e28328f2be88419207f80
2010-02-18T19:13:38.135448Z
3452
@@ -882,7 +882,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
2b46c7d28f33cec521374ccae2fd8451
2007-11-04T10:43:39.403792Z
877
@@ -916,7 +916,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
e7e91d7f18dd1547cfebafdf4822a18f
2010-02-18T19:13:38.135448Z
3452
@@ -950,7 +950,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
9b7ab36ebc57f0c02756d2b076e67b19
2007-11-26T18:47:49.588558Z
932
@@ -984,7 +984,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
44018a44ceaecb5c9be3fed66e759064
2008-07-21T19:13:46.546624Z
1683
@@ -1018,7 +1018,7 @@
-2010-11-19T13:04:49.420968Z
+2011-02-08T13:45:45.000000Z
0cb005c22ad144fdbe29238b0080f28b
2010-10-27T16:27:06.240747Z
4296
@@ -1052,7 +1052,7 @@
-2010-09-23T14:37:44.603754Z
+2011-02-08T13:45:45.000000Z
a53d9ea13c19cbce1edc375a01b5753d
2010-02-18T19:13:38.135448Z
3452
@@ -1086,7 +1086,7 @@
-2010-11-19T13:04:49.420968Z
+2011-02-08T13:45:45.000000Z
f35cf0d09dd393a255db2d428a3d30f0
2010-10-27T16:27:06.240747Z
4296
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/members/.svn/entries
--- a/app/views/members/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/members/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/members
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.611740Z
+2011-02-08T13:45:45.000000Z
9e105ea0b16e73250d47d57f07d71cff
2009-09-12T08:36:46.650954Z
2869
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/messages/.svn/entries
--- a/app/views/messages/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/messages/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/messages
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.615740Z
+2011-02-08T13:45:45.000000Z
c68f1ef8a922f2a408e0349d80db4376
2010-07-25T10:02:12.905073Z
3877
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.611740Z
+2011-02-08T13:45:45.000000Z
4fecf6ec48e549e01ada68dc8d623f38
2010-01-25T17:26:02.255593Z
3339
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.611740Z
+2011-02-08T13:45:45.000000Z
72a4fb6eecd42aceb751370901633f24
2008-03-07T17:49:44.664945Z
1205
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.611740Z
+2011-02-08T13:45:45.000000Z
3512563f842c2e951d7738870f2d4065
2008-03-07T17:49:44.664945Z
1205
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/my/.svn/entries
--- a/app/views/my/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/my/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/my
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:47.012855Z
+2011-02-08T13:45:45.000000Z
746c4ac2d5bc111d91747aa0b0c54a5a
2010-09-28T22:13:06.534232Z
4223
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
afa83dffe27e19383284d8177f1f4687
2010-03-04T19:02:57.949679Z
3542
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
a43c901172c8b1750d24612b24f2db22
2009-04-21T13:43:57.529967Z
2678
@@ -137,7 +137,7 @@
-2010-09-23T14:37:44.619750Z
+2011-02-08T13:45:45.000000Z
91a0469f13d98fd2504ca036e16660f1
2010-06-19T16:50:13.340830Z
3775
@@ -171,7 +171,7 @@
-2010-09-23T14:37:44.619750Z
+2011-02-08T13:45:45.000000Z
efb09bc859f5527d219f0dd3d5c12fe8
2009-02-26T16:15:07.718565Z
2528
@@ -205,7 +205,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
852c99d50bf883063cd77b7042c145d4
2011-01-15T14:04:11.836008Z
4722
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/my/blocks/.svn/entries
--- a/app/views/my/blocks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/my/blocks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/my/blocks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
0b880299704151a6acd66b5632f60426
2010-03-10T05:10:43.201527Z
3557
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
6aa71a8cc8a018c4c564915c10355709
2007-04-20T09:53:44.242780Z
449
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
55339408a7e093de86505f92845ed977
2009-03-17T17:34:49.297132Z
2598
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
bf22b792b1b79c60dc866718c074f370
2009-05-30T23:30:36.923541Z
2777
@@ -168,7 +168,7 @@
-2010-11-19T13:04:47.008792Z
+2011-02-08T13:45:45.000000Z
2ba11e15a7f15f88fe061979d921b59d
2010-10-15T23:37:01.382819Z
4259
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
a21d8649f0daec69caabb118e9b6375c
2008-08-26T11:08:45.487893Z
1766
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.623783Z
+2011-02-08T13:45:45.000000Z
3894ab9b2f76b3622a362843be2162be
2010-01-30T11:23:17.508662Z
3351
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/news/.svn/entries
--- a/app/views/news/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/news/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/news
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:49.428894Z
+2011-02-08T13:45:45.000000Z
2501c1cef884fd4a56abb3a4e736825f
2010-09-27T16:51:12.033537Z
4214
@@ -66,7 +66,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
194919e4bc598629f690752af5340b5b
2010-12-12T17:00:52.100205Z
4505
@@ -100,7 +100,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
969b4f69a93036097550cd14be8023bc
2010-11-20T09:38:54.291843Z
4412
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.627781Z
+2011-02-08T13:45:45.000000Z
e06c154a981d18d975bcba8eb682df30
2007-09-22T17:52:43.686392Z
750
@@ -168,7 +168,7 @@
-2010-11-19T13:04:49.432892Z
+2011-02-08T13:45:45.000000Z
dd2c968c6b42916bff9b9e5de055e007
2010-09-27T16:51:12.033537Z
4214
@@ -202,7 +202,7 @@
-2010-11-19T13:04:49.432892Z
+2011-02-08T13:45:45.000000Z
764ec3719917039d0cac3d375ec819c4
2010-10-22T14:42:38.351679Z
4267
@@ -236,7 +236,7 @@
-2010-11-19T13:04:49.432892Z
+2011-02-08T13:45:45.000000Z
1e7f24dd1dc6a117b245a76174e4c8ae
2010-09-27T16:51:12.033537Z
4214
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/previews/.svn/entries
--- a/app/views/previews/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/previews/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/previews
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.631740Z
+2011-02-08T13:45:45.000000Z
359c6608ef716c8b3b62fd96c241a680
2010-08-18T15:01:35.032314Z
3946
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/projects/.svn/entries
--- a/app/views/projects/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/projects/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/projects
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.643780Z
+2011-02-08T13:45:45.000000Z
26653788620aef89a25b8ad819144e03
2010-03-21T11:17:29.163519Z
3608
@@ -69,7 +69,7 @@
-2011-01-13T14:09:29.000000Z
+2011-02-08T13:45:45.000000Z
89a2baf21090ed983ffe265fa0929b29
2011-01-06T21:02:19.982329Z
4648
@@ -103,7 +103,7 @@
-2011-01-13T14:09:29.000000Z
+2011-02-08T13:45:45.000000Z
4eef8200b378cb9b074da5abac7c5dfa
2010-12-23T13:34:44.668484Z
4572
@@ -137,7 +137,7 @@
-2010-09-23T14:37:44.643780Z
+2011-02-08T13:45:45.000000Z
66d45b68c4615d2b502b2c6d06cf0951
2009-09-12T09:13:13.676884Z
2871
@@ -171,7 +171,7 @@
-2010-11-19T13:04:49.468916Z
+2011-02-08T13:45:45.000000Z
bbcdfa64f2a80d809b80b00c26fd0c8c
2010-11-07T14:15:01.891476Z
4382
@@ -205,7 +205,7 @@
-2011-01-13T14:09:29.000000Z
+2011-02-08T13:45:45.000000Z
b0519f745853f4f4e673c2e30389dc40
2011-01-06T21:02:19.982329Z
4648
@@ -239,7 +239,7 @@
-2010-09-24T12:48:28.959844Z
+2011-02-08T13:45:45.000000Z
e3a6cb86da5f31cae6c8fc0a4e6bad35
2010-09-09T18:57:21.507694Z
4071
@@ -273,7 +273,7 @@
-2010-09-23T14:37:44.643780Z
+2011-02-08T13:45:45.000000Z
0f2ffbd9b87d4ecc80f5c8bcac0cc9e9
2009-10-29T18:44:16.555741Z
2990
@@ -307,7 +307,7 @@
-2010-09-23T14:37:44.639741Z
+2011-02-08T13:45:45.000000Z
f880a7facfac62099e5b3fc4ebe862b3
2010-08-19T22:24:37.242219Z
4009
@@ -341,7 +341,7 @@
-2010-09-24T12:48:28.959844Z
+2011-02-08T13:45:45.000000Z
cb60b85b211b8c78058e4ccc5cdefc82
2010-09-07T15:00:27.481481Z
4069
@@ -375,7 +375,7 @@
-2011-01-13T14:09:29.000000Z
+2011-02-08T13:45:45.000000Z
c49d7ceec0060eb7437c7e3f2b7629ed
2010-12-11T10:19:11.273304Z
4486
@@ -409,7 +409,7 @@
-2010-09-24T12:48:28.959844Z
+2011-02-08T13:45:45.000000Z
308fa6064dd3e4d6d85be448402ba7b2
2010-09-09T18:57:21.507694Z
4071
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/projects/settings/.svn/entries
--- a/app/views/projects/settings/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/projects/settings/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/projects/settings
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.647782Z
+2011-02-08T13:45:45.000000Z
3f93ad7df3a43b70f004499bacc76cdf
2010-05-09T11:19:15.980195Z
3734
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.651752Z
+2011-02-08T13:45:45.000000Z
1fd25ea9af565c8a79ac61c918cbd3fc
2010-01-21T18:21:56.082191Z
3336
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.651752Z
+2011-02-08T13:45:45.000000Z
1ee550d6ee54d0c528eee8bb142c496d
2008-02-12T22:43:37.870107Z
1143
@@ -134,7 +134,7 @@
-2010-09-24T12:48:28.400004Z
+2011-02-08T13:45:45.000000Z
14f07f16cc36c896e6dc4d975c7ef807
2010-09-10T16:00:49.687515Z
4075
@@ -168,7 +168,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
6dc73d6291a5471699054e6fbd33da8e
2011-01-06T20:57:17.003359Z
4647
@@ -202,7 +202,7 @@
-2010-11-19T13:04:49.460909Z
+2011-02-08T13:45:45.000000Z
4f26d985da6ada4c0d724095490050c5
2010-10-29T22:40:02.439890Z
4307
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.647782Z
+2011-02-08T13:45:45.000000Z
1d2eb75d2aa1ff66975f701d6b45c059
2010-05-09T11:19:15.980195Z
3734
@@ -270,7 +270,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
6e7a70ea4a2a2fe46b75b968d19bb68e
2011-01-15T13:20:18.866830Z
4719
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/queries/.svn/entries
--- a/app/views/queries/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/queries/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/queries
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.655737Z
+2011-02-08T13:45:45.000000Z
409f5db0d48427b0a9077eb0804d13f9
2009-11-28T11:59:45.246623Z
3106
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.655737Z
+2011-02-08T13:45:45.000000Z
9d6312b02ab4243f7f899de6e37e260b
2009-11-28T11:34:12.256986Z
3105
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.655737Z
+2011-02-08T13:45:45.000000Z
b2d901380f08af968240e5dc82b90fc4
2007-10-01T11:39:34.113865Z
784
@@ -134,7 +134,7 @@
-2010-11-19T13:04:50.836916Z
+2011-02-08T13:45:45.000000Z
e57491c4634e00f0ef53c44959c58d46
2010-11-07T15:38:51.908839Z
4387
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.655737Z
+2011-02-08T13:45:45.000000Z
214378e8574ddebfc274513b423f51a2
2007-11-05T18:38:42.932265Z
887
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.655737Z
+2011-02-08T13:45:45.000000Z
d42e88aaf70a65db3b609d51857fb711
2009-09-20T14:06:57.257282Z
2895
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/reports/.svn/entries
--- a/app/views/reports/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/reports/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/reports
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.659737Z
+2011-02-08T13:45:45.000000Z
d150c943c49d910431268e3b5b148f5d
2010-06-20T03:37:42.430179Z
3797
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.659737Z
+2011-02-08T13:45:45.000000Z
faf9d3d189ffa44154f1272c333808b5
2010-01-07T21:12:16.849243Z
3283
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.659737Z
+2011-02-08T13:45:45.000000Z
b0028f798f34512aa7c5f8c014ad73f7
2010-01-07T21:12:16.849243Z
3283
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.659737Z
+2011-02-08T13:45:45.000000Z
58b8758e6fc3da959cb412ae64e9237f
2007-03-12T17:59:02.654744Z
333
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/repositories/.svn/all-wcprops
--- a/app/views/repositories/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/repositories/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4698/trunk/app/views/repositories
+/svn/!svn/ver/4733/trunk/app/views/repositories
END
-stats.rhtml
+_navigation.rhtml
K 25
svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/2895/trunk/app/views/repositories/stats.rhtml
+V 65
+/svn/!svn/ver/3086/trunk/app/views/repositories/_navigation.rhtml
END
revision.rhtml
K 25
@@ -15,11 +15,11 @@
V 62
/svn/!svn/ver/4613/trunk/app/views/repositories/revision.rhtml
END
-_navigation.rhtml
+stats.rhtml
K 25
svn:wc:ra_dav:version-url
-V 65
-/svn/!svn/ver/3086/trunk/app/views/repositories/_navigation.rhtml
+V 59
+/svn/!svn/ver/2895/trunk/app/views/repositories/stats.rhtml
END
entry.rhtml
K 25
@@ -33,11 +33,11 @@
V 71
/svn/!svn/ver/4613/trunk/app/views/repositories/_dir_list_content.rhtml
END
-diff.rhtml
+_dir_list.rhtml
K 25
svn:wc:ra_dav:version-url
-V 58
-/svn/!svn/ver/4698/trunk/app/views/repositories/diff.rhtml
+V 63
+/svn/!svn/ver/1032/trunk/app/views/repositories/_dir_list.rhtml
END
changes.rhtml
K 25
@@ -45,11 +45,11 @@
V 61
/svn/!svn/ver/2840/trunk/app/views/repositories/changes.rhtml
END
-_dir_list.rhtml
+diff.rhtml
K 25
svn:wc:ra_dav:version-url
-V 63
-/svn/!svn/ver/1032/trunk/app/views/repositories/_dir_list.rhtml
+V 58
+/svn/!svn/ver/4698/trunk/app/views/repositories/diff.rhtml
END
annotate.rhtml
K 25
@@ -57,39 +57,39 @@
V 62
/svn/!svn/ver/4613/trunk/app/views/repositories/annotate.rhtml
END
+_revisions.rhtml
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/4613/trunk/app/views/repositories/_revisions.rhtml
+END
show.rhtml
K 25
svn:wc:ra_dav:version-url
V 58
/svn/!svn/ver/2849/trunk/app/views/repositories/show.rhtml
END
-_revisions.rhtml
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/4613/trunk/app/views/repositories/_revisions.rhtml
-END
revisions.rhtml
K 25
svn:wc:ra_dav:version-url
V 63
/svn/!svn/ver/2840/trunk/app/views/repositories/revisions.rhtml
END
+_link_to_functions.rhtml
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2849/trunk/app/views/repositories/_link_to_functions.rhtml
+END
committers.rhtml
K 25
svn:wc:ra_dav:version-url
V 64
/svn/!svn/ver/2137/trunk/app/views/repositories/committers.rhtml
END
-_link_to_functions.rhtml
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/2849/trunk/app/views/repositories/_link_to_functions.rhtml
-END
_breadcrumbs.rhtml
K 25
svn:wc:ra_dav:version-url
V 66
-/svn/!svn/ver/3613/trunk/app/views/repositories/_breadcrumbs.rhtml
+/svn/!svn/ver/4733/trunk/app/views/repositories/_breadcrumbs.rhtml
END
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/repositories/.svn/entries
--- a/app/views/repositories/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/repositories/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/repositories
http://redmine.rubyforge.org/svn
-2011-01-11T16:04:07.541291Z
-4698
+2011-01-21T13:22:08.161817Z
+4733
tmaruyama
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
bafc924316c90c31dc1cd9a6daf124ef
2009-09-20T14:06:57.257282Z
2895
@@ -66,7 +66,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
8599ffd3e73ccf24e2c81c6e0a20c906
2011-01-02T09:45:05.291687Z
4613
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
59dbb643c447518053d9cdb1a86cb5ef
2009-11-24T17:55:45.336708Z
3086
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
012e1437dd062433556a6281439b3900
2009-08-15T22:41:40.505056Z
2840
@@ -168,7 +168,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
e22fd8ddf680ee0773ea1da9b5ed9518
2011-01-02T09:45:05.291687Z
4613
@@ -202,7 +202,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
76c0335206cfde112a6416937072848b
2011-01-11T16:04:07.541291Z
4698
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
cde7a86a5ec0cf9915b0540c9acbb820
2009-08-15T22:41:40.505056Z
2840
@@ -270,7 +270,7 @@
-2010-09-23T14:37:44.667779Z
+2011-02-08T13:45:45.000000Z
8c004b6e433ac1a6ca64c97a35512f28
2008-01-02T22:41:53.166620Z
1032
@@ -304,7 +304,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
d3aaac2a6c4b7c77b844324970afff64
2011-01-02T09:45:05.291687Z
4613
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
5608dc13675382cd62688058ca0b77d1
2009-09-01T12:13:17.386587Z
2849
@@ -372,7 +372,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
61a2e63b2e36b7d622d95745cc864583
2011-01-02T09:45:05.291687Z
4613
@@ -406,7 +406,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
f2efac3274e0c46cf32037372907a644
2009-08-15T22:41:40.505056Z
2840
@@ -440,7 +440,7 @@
-2010-09-23T14:37:44.671737Z
+2011-02-08T13:45:45.000000Z
2db96b0dcaab42c8e67b7fc590618fd3
2008-12-15T18:02:25.843227Z
2137
@@ -474,7 +474,7 @@
-2010-09-23T14:37:44.667779Z
+2011-02-08T13:45:45.000000Z
a86ac8a045315f57fa32acb29c08f19f
2009-09-01T12:13:17.386587Z
2849
@@ -508,11 +508,11 @@
-2010-09-23T14:37:44.667779Z
-17818458dc60da031d02ae162930c320
-2010-03-27T12:46:45.030950Z
-3613
-jplang
+2011-02-08T13:49:51.000000Z
+a8822300e64f74b50bbb1e90d1a61dda
+2011-01-21T13:22:08.161817Z
+4733
+tmaruyama
has-props
@@ -534,5 +534,5 @@
-666
+687
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/repositories/.svn/text-base/_breadcrumbs.rhtml.svn-base
--- a/app/views/repositories/.svn/text-base/_breadcrumbs.rhtml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/repositories/.svn/text-base/_breadcrumbs.rhtml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -16,6 +16,6 @@
/ <%= link_to h(filename), :action => 'changes', :id => @project, :path => to_path_param("#{link_path}/#{filename}"), :rev => @rev %>
<% end %>
-<%= "@ #{h revision}" if revision %>
+<%= "@ #{h format_revision(@changeset)}" if @changeset %>
<% html_title(with_leading_slash(path)) -%>
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/repositories/_breadcrumbs.rhtml
--- a/app/views/repositories/_breadcrumbs.rhtml Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/repositories/_breadcrumbs.rhtml Tue Feb 08 13:51:46 2011 +0000
@@ -16,6 +16,6 @@
/ <%= link_to h(filename), :action => 'changes', :id => @project, :path => to_path_param("#{link_path}/#{filename}"), :rev => @rev %>
<% end %>
-<%= "@ #{h revision}" if revision %>
+<%= "@ #{h format_revision(@changeset)}" if @changeset %>
<% html_title(with_leading_slash(path)) -%>
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/roles/.svn/entries
--- a/app/views/roles/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/roles/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/roles
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.675736Z
+2011-02-08T13:45:45.000000Z
cbcd3851055c3f5a5aa20d005b086872
2009-07-05T12:22:02.133266Z
2810
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.675736Z
+2011-02-08T13:45:45.000000Z
82f5657ab6c01b56b039af0cf2312ade
2010-02-15T16:41:16.346582Z
3435
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.675736Z
+2011-02-08T13:45:45.000000Z
652c40985320a23285c8e27439418f22
2008-10-24T15:24:35.832581Z
1943
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.675736Z
+2011-02-08T13:45:45.000000Z
4bcaa15de1de193dd1f98128b71a420b
2009-10-25T13:28:36.522470Z
2979
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.675736Z
+2011-02-08T13:45:45.000000Z
0ff8206c0e77e6356f9d16ccaeff13e2
2009-07-05T12:22:02.133266Z
2810
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/search/.svn/entries
--- a/app/views/search/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/search/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/search
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.679779Z
+2011-02-08T13:45:45.000000Z
0235b1dd9d5f01dbaaab2b59dc006f2e
2009-09-20T14:06:57.257282Z
2895
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/settings/.svn/entries
--- a/app/views/settings/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/settings/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/settings
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:45.000000Z
dad877e4db2f583979314edcb017bb1b
2010-12-15T21:18:06.237327Z
4513
@@ -66,7 +66,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:45.000000Z
7307d5f65399ab2f28eac1162a330678
2010-11-25T20:27:44.648840Z
4426
@@ -100,7 +100,7 @@
-2010-11-19T13:04:48.200851Z
+2011-02-08T13:45:45.000000Z
8005b162966a27cd4e7c30022320b47e
2010-10-29T22:28:24.886659Z
4306
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.683778Z
+2011-02-08T13:45:45.000000Z
1da887b84f272fe4cde6fafaf198529a
2009-12-23T18:35:19.208194Z
3226
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.687777Z
+2011-02-08T13:45:45.000000Z
1836fa87f24f7f62eafaed8d1886ca67
2007-10-13T14:11:06.987513Z
837
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.683778Z
+2011-02-08T13:45:45.000000Z
af00d651b626c36ca365bd748f55ec40
2009-12-19T20:07:09.039389Z
3198
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.687777Z
+2011-02-08T13:45:45.000000Z
a629426fc7edef8be6c4545bce9a5abd
2009-09-12T09:13:13.676884Z
2871
@@ -270,7 +270,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:45.000000Z
da15c28695cd56ff6539df1d45159797
2010-12-05T11:45:09.061840Z
4470
@@ -304,7 +304,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
9f784c1426ed466df89a56d5ae835efe
2011-01-16T15:36:42.998302Z
4730
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.687777Z
+2011-02-08T13:45:45.000000Z
de489dd7dc60d569a855c1f33d941552
2009-12-19T20:07:09.039389Z
3198
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/time_entry_reports/.svn/entries
--- a/app/views/time_entry_reports/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/time_entry_reports/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/time_entry_reports
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:48.181514Z
+2011-02-08T13:45:45.000000Z
d896f5cf56b2a3cd64887f239e584fdc
2010-10-07T15:51:09.349542Z
4239
@@ -66,7 +66,7 @@
-2010-11-19T13:04:48.181514Z
+2011-02-08T13:45:45.000000Z
5fa73daf0a67b2a39fd10320bcd7ab45
2010-10-05T16:07:17.015270Z
4232
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/timelog/.svn/entries
--- a/app/views/timelog/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/timelog/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/timelog
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:48.784870Z
+2011-02-08T13:45:45.000000Z
128d8975cacb0db79fc14a461544db09
2010-10-12T15:55:21.984670Z
4250
@@ -66,7 +66,7 @@
-2010-11-19T13:04:48.784870Z
+2011-02-08T13:45:45.000000Z
404d6b75c96def01a9a6bf86a6f58697
2010-10-07T15:51:09.349542Z
4239
@@ -100,7 +100,7 @@
-2011-01-13T14:09:16.000000Z
+2011-02-08T13:45:45.000000Z
9faa66f4b89685010b3683f26c387512
2010-12-04T17:43:39.823144Z
4466
@@ -134,7 +134,7 @@
-2010-11-19T13:04:48.784870Z
+2011-02-08T13:45:45.000000Z
3bb82a2517a120b7a44add17f3369082
2010-10-11T15:31:42.953914Z
4248
@@ -168,7 +168,7 @@
-2010-11-19T13:04:48.784870Z
+2011-02-08T13:45:45.000000Z
43628f95cde9503c20744c3b9fe9dfcd
2010-10-06T18:23:45.014848Z
4235
@@ -202,7 +202,7 @@
-2011-01-13T14:09:16.000000Z
+2011-02-08T13:45:45.000000Z
5838cace900e781466a5826ba75b9f44
2010-12-04T17:43:39.823144Z
4466
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/trackers/.svn/entries
--- a/app/views/trackers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/trackers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/trackers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.695779Z
+2011-02-08T13:45:45.000000Z
952031a6216d1b67897c30936b8c656c
2010-02-15T16:41:27.289923Z
3437
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.695779Z
+2011-02-08T13:45:45.000000Z
0b8a4f0aead4d21c20c9cc8dd29141e5
2009-12-12T15:23:22.060140Z
3162
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.695779Z
+2011-02-08T13:45:45.000000Z
ac4b0e11130741048a5f7c7405bff3de
2009-12-09T11:03:55.646494Z
3146
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.695779Z
+2011-02-08T13:45:45.000000Z
cf313c286d40c5c44da29ad261b01421
2009-12-09T11:03:55.646494Z
3146
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/users/.svn/entries
--- a/app/views/users/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/users/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/users
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:49.388892Z
+2011-02-08T13:45:45.000000Z
27e27971f72ee72e276157b29606a4f8
2010-10-11T20:34:33.692909Z
4249
@@ -66,7 +66,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
82d8afa73a30d32a1df6dbf0a6ec9ccc
2010-12-12T21:21:57.860671Z
4508
@@ -100,7 +100,7 @@
-2010-11-19T13:04:49.388892Z
+2011-02-08T13:45:45.000000Z
f19cc195f524459954b4b4be5bfdcff5
2010-09-30T18:22:46.611444Z
4230
@@ -134,7 +134,7 @@
-2010-11-19T13:04:49.388892Z
+2011-02-08T13:45:45.000000Z
488647d93840c1ffa5834cc45817c1c3
2010-09-29T16:00:45.891709Z
4229
@@ -168,7 +168,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
e6086313266e733c482de5431e85f7a1
2010-12-12T14:25:23.262992Z
4497
@@ -202,7 +202,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
2232eeac9e0dea5001f5c7dbd9156a79
2010-12-11T13:13:49.013705Z
4489
@@ -236,7 +236,7 @@
-2010-11-19T13:04:49.388892Z
+2011-02-08T13:45:45.000000Z
1914aa4c363a1dab0cdba1e49ccc13ff
2010-11-07T14:15:01.891476Z
4382
@@ -270,7 +270,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
35c46993d584ac75dd129b95ac411a10
2010-12-12T13:39:55.171678Z
4493
@@ -304,7 +304,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
334693af38532eb4e5c8801223e2c718
2011-01-16T15:23:11.666065Z
4729
@@ -338,7 +338,7 @@
-2010-11-19T13:04:49.392852Z
+2011-02-08T13:45:45.000000Z
ebc1d625f2d6809ea491e7303f758e7a
2010-09-28T22:13:06.534232Z
4223
@@ -372,7 +372,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
82f2de0e0ade1e3dc2c39d3415d5580c
2011-01-16T15:23:11.666065Z
4729
@@ -406,7 +406,7 @@
-2011-01-13T14:09:24.000000Z
+2011-02-08T13:45:45.000000Z
5af24df58230f005be3a6814c6f53e33
2010-12-11T10:19:11.273304Z
4486
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/versions/.svn/entries
--- a/app/views/versions/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/versions/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/versions
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-24T12:48:28.303878Z
+2011-02-08T13:45:45.000000Z
a50c2acc01c8d25be8e2c8cd082a2272
2010-09-11T14:00:23.147923Z
4082
@@ -66,7 +66,7 @@
-2010-09-24T12:48:28.303878Z
+2011-02-08T13:45:45.000000Z
d53190d87d1c24abce0fc949f816a706
2010-09-17T15:55:08.377083Z
4097
@@ -100,7 +100,7 @@
-2010-11-19T13:04:49.396842Z
+2011-02-08T13:45:45.000000Z
ae897448ea943e1856633a3683c17a79
2010-10-29T22:40:02.439890Z
4307
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.707788Z
+2011-02-08T13:45:45.000000Z
acf01b501fb1e345fd7abf572233ead9
2009-12-06T10:28:20.099964Z
3123
@@ -168,7 +168,7 @@
-2010-09-24T12:48:28.303878Z
+2011-02-08T13:45:45.000000Z
b5364f2d6f4cb92d1f747cd3dda5098f
2010-09-17T16:11:43.740142Z
4098
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.707788Z
+2011-02-08T13:45:45.000000Z
6e68f24a6d6571388df3018bc915d37a
2009-11-15T15:22:55.021661Z
3064
@@ -236,7 +236,7 @@
-2010-09-24T12:48:28.303878Z
+2011-02-08T13:45:45.000000Z
85ddc3502659176221220bebef002d6c
2010-09-17T15:55:08.377083Z
4097
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/watchers/.svn/entries
--- a/app/views/watchers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/watchers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/watchers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.707788Z
+2011-02-08T13:45:45.000000Z
7ece4fb161c765ac7e63c30883733d99
2010-03-13T17:45:41.194736Z
3579
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/welcome/.svn/entries
--- a/app/views/welcome/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/welcome/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/welcome
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-24T12:48:26.303754Z
+2011-02-08T13:45:45.000000Z
df32441c6802182ffb9a205c97ec8f3b
2010-08-27T14:05:54.014502Z
4047
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.711779Z
+2011-02-08T13:45:45.000000Z
dbe04ed0b787a5470a99a1f286c0685e
2009-01-27T17:27:50.299725Z
2319
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/wiki/.svn/all-wcprops
--- a/app/views/wiki/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/wiki/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 39
-/svn/!svn/ver/4651/trunk/app/views/wiki
+/svn/!svn/ver/4740/trunk/app/views/wiki
END
export_multiple.rhtml
K 25
@@ -31,7 +31,7 @@
K 25
svn:wc:ra_dav:version-url
V 53
-/svn/!svn/ver/4651/trunk/app/views/wiki/history.rhtml
+/svn/!svn/ver/4740/trunk/app/views/wiki/history.rhtml
END
edit.rhtml
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/wiki/.svn/entries
--- a/app/views/wiki/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/wiki/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/wiki
http://redmine.rubyforge.org/svn
-2011-01-06T21:24:32.739169Z
-4651
+2011-01-22T13:21:24.424880Z
+4740
jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.719778Z
+2011-02-08T13:45:45.000000Z
071f00658656d063a029ff9efcfda553
2009-11-11T11:10:03.406528Z
3026
@@ -66,7 +66,7 @@
-2010-11-19T13:04:50.809800Z
+2011-02-08T13:45:45.000000Z
d47125b655bae6af3af29514ca23ec15
2010-10-25T16:16:46.309025Z
4290
@@ -100,7 +100,7 @@
-2010-11-19T13:04:50.809800Z
+2011-02-08T13:45:45.000000Z
1ebc19864533a067dc46a3bc6f3e9b22
2010-10-28T21:25:38.778234Z
4303
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.719778Z
+2011-02-08T13:45:45.000000Z
2ec7fba790578844437bd62bf95a9856
2009-11-11T11:10:03.406528Z
3026
@@ -168,10 +168,10 @@
-2011-01-13T14:09:29.000000Z
-a4820ed36a470c301cd1f3c5d1d32993
-2011-01-06T21:24:32.739169Z
-4651
+2011-02-08T13:49:51.000000Z
+032cfe657db049a60473a31d2d0391a2
+2011-01-22T13:21:24.424880Z
+4740
jplang
has-props
@@ -194,7 +194,7 @@
-1656
+1594
edit.rhtml
file
@@ -202,7 +202,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
cc9828c34998619dbd4b4925bf511be8
2010-10-28T21:25:38.778234Z
4303
@@ -236,7 +236,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
b45d32467f7beb06dbe055ecf7fdb247
2010-11-06T14:30:32.528294Z
4375
@@ -270,7 +270,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
619db9d2a58a28c4b5c4baeaee88cc41
2010-10-27T16:27:06.240747Z
4296
@@ -304,7 +304,7 @@
-2011-01-13T14:09:29.000000Z
+2011-02-08T13:45:45.000000Z
da40592a7819a8786e7e436b2ecff8b1
2010-12-20T22:33:44.015948Z
4551
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.719778Z
+2011-02-08T13:45:45.000000Z
8705c97ebf1405603afbbd8614ee9d2b
2007-11-12T14:36:33.182682Z
897
@@ -372,7 +372,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
36a354ea1a705ec4843972e520ce2bd6
2010-10-27T16:27:06.240747Z
4296
@@ -406,7 +406,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
5f032c821889bfc8bf9e6eeca1023f58
2010-10-27T16:27:06.240747Z
4296
@@ -440,7 +440,7 @@
-2010-11-19T13:04:50.812967Z
+2011-02-08T13:45:45.000000Z
5edb3698546c4aad9913945d39005221
2010-10-28T21:25:38.778234Z
4303
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/wiki/.svn/text-base/history.rhtml.svn-base
--- a/app/views/wiki/.svn/text-base/history.rhtml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/wiki/.svn/text-base/history.rhtml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -3,7 +3,6 @@
<%= l(:label_history) %>
<% form_tag({:action => "diff"}, :method => :get) do %>
- <%= hidden_field_tag('project_id', h(@project.to_param)) %>
# |
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/wiki/history.rhtml
--- a/app/views/wiki/history.rhtml Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/wiki/history.rhtml Tue Feb 08 13:51:46 2011 +0000
@@ -3,7 +3,6 @@
<%= l(:label_history) %>
<% form_tag({:action => "diff"}, :method => :get) do %>
- <%= hidden_field_tag('project_id', h(@project.to_param)) %>
# |
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/wikis/.svn/entries
--- a/app/views/wikis/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/wikis/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/wikis
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.723734Z
+2011-02-08T13:45:45.000000Z
6edeee3130b12027d4d8dbfeca809abb
2007-09-14T11:34:08.234701Z
725
diff -r 07fa8a8b56a8 -r 0579821a129a app/views/workflows/.svn/entries
--- a/app/views/workflows/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/app/views/workflows/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/app/views/workflows
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.727733Z
+2011-02-08T13:45:45.000000Z
d7c2b6481788394f541fe6af5dadd598
2009-12-12T10:06:07.860865Z
3154
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.727733Z
+2011-02-08T13:45:45.000000Z
2457a85600aa051fcf9edf06010e6fcc
2009-12-12T10:06:07.860865Z
3154
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.727733Z
+2011-02-08T13:45:45.000000Z
ee551cfe66cd8df0fbd5bc7bac081200
2010-04-27T17:54:27.767853Z
3694
@@ -134,7 +134,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:45.000000Z
40709e258d1a829cf73046d8e1b5d7f3
2010-11-27T09:54:16.602477Z
4428
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/all-wcprops
--- a/config/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/config/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 31
-/svn/!svn/ver/4729/trunk/config
+/svn/!svn/ver/4799/trunk/config
END
settings.yml
K 25
@@ -9,11 +9,11 @@
V 44
/svn/!svn/ver/4513/trunk/config/settings.yml
END
-email.yml.example
+configuration.yml.example
K 25
svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/3448/trunk/config/email.yml.example
+V 57
+/svn/!svn/ver/4798/trunk/config/configuration.yml.example
END
routes.rb
K 25
@@ -31,7 +31,7 @@
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/3372/trunk/config/environment.rb
+/svn/!svn/ver/4752/trunk/config/environment.rb
END
additional_environment.rb.example
K 25
@@ -43,5 +43,5 @@
K 25
svn:wc:ra_dav:version-url
V 52
-/svn/!svn/ver/3564/trunk/config/database.yml.example
+/svn/!svn/ver/4753/trunk/config/database.yml.example
END
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/dir-prop-base
--- a/config/.svn/dir-prop-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/.svn/dir-prop-base Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,8 @@
K 10
svn:ignore
-V 23
+V 41
database.yml
email.yml
+configuration.yml
END
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/entries
--- a/config/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/config/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/config
http://redmine.rubyforge.org/svn
-2011-01-16T15:23:11.666065Z
-4729
-jplang
+2011-02-06T00:31:15.026336Z
+4799
+jbbarth
has-props
@@ -32,7 +32,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
0f6fe2db3317d8b40af42a6d534da87e
2010-12-15T21:18:06.237327Z
4513
@@ -60,17 +60,17 @@
4246
-email.yml.example
+configuration.yml.example
file
-2010-09-23T14:37:44.731779Z
-a1c44811380e661aff4e67b6b366f2db
-2010-02-18T05:20:52.515080Z
-3448
-edavis10
+2011-02-08T13:49:52.000000Z
+ead0ed1efd92e31194815e50d312920e
+2011-02-05T00:57:41.645336Z
+4798
+tmaruyama
has-props
@@ -92,7 +92,7 @@
-2120
+4015
locales
dir
@@ -103,7 +103,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:45.000000Z
b03599e0dc8d0a6b03c3173864eb57bd
2011-01-16T15:23:11.666065Z
4729
@@ -137,7 +137,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
2969e2a7b5ab1b2a014b5f0c94bac872
2010-12-17T08:34:29.830642Z
4516
@@ -174,10 +174,10 @@
-2010-09-23T14:37:44.731779Z
-197d8958c94ce40f08a4b8f1d2c49f6e
-2010-02-06T10:40:21.867545Z
-3372
+2011-02-08T13:49:52.000000Z
+a18bfc7d8a10fdf178623f6f6663c538
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -200,7 +200,7 @@
-2494
+2548
environments
dir
@@ -211,7 +211,7 @@
-2010-09-23T14:37:44.731779Z
+2011-02-08T13:45:45.000000Z
6b63489cdd262e653712af1aa96cd390
2009-11-08T02:16:42.659918Z
3018
@@ -245,10 +245,10 @@
-2010-09-23T14:37:44.731779Z
-b315245d4b4a47a512931d087b03435f
-2010-03-12T13:48:14.426661Z
-3564
+2011-02-08T13:49:52.000000Z
+f33e1e1bf73ba5d10ef3a6f170da3088
+2011-01-23T10:25:48.265995Z
+4753
jplang
has-props
@@ -271,5 +271,5 @@
-750
+755
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/prop-base/configuration.yml.example.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/.svn/prop-base/configuration.yml.example.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/prop-base/email.yml.example.svn-base
--- a/config/.svn/prop-base/email.yml.example.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/text-base/configuration.yml.example.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/.svn/text-base/configuration.yml.example.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,126 @@
+# = Redmine configuration file
+#
+# Each environment has it's own configuration options. If you are only
+# running in production, only the production block needs to be configured.
+# Environment specific configuration options override the default ones.
+#
+# Note that this file needs to be a valid YAML file.
+#
+# == Outgoing email settings (email_delivery setting)
+#
+# === Common configurations
+#
+# ==== Sendmail command
+#
+# production:
+# email_delivery:
+# delivery_method: :sendmail
+#
+# ==== Simple SMTP server at localhost
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "localhost"
+# port: 25
+#
+# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "example.com"
+# port: 25
+# authentication: :login
+# domain: 'foo.com'
+# user_name: 'myaccount'
+# password: 'password'
+#
+# ==== SMTP server at example.com using PLAIN authentication
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "example.com"
+# port: 25
+# authentication: :plain
+# domain: 'example.com'
+# user_name: 'myaccount'
+# password: 'password'
+#
+# ==== SMTP server at using TLS (GMail)
+#
+# This requires some additional configuration. See the article at:
+# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# tls: true
+# address: "smtp.gmail.com"
+# port: 587
+# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
+# authentication: :plain
+# user_name: "your_email@gmail.com"
+# password: "your_password"
+#
+#
+# === More configuration options
+#
+# See the "Configuration options" at the following website for a list of the
+# full options allowed:
+#
+# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
+
+
+# default configuration options for all environments
+default:
+ # Outgoing emails configuration (see examples above)
+ email_delivery:
+ delivery_method: :smtp
+ smtp_settings:
+ address: smtp.example.net
+ port: 25
+ domain: example.net
+ authentication: :login
+ user_name: "redmine@example.net"
+ password: "redmine"
+
+ # Absolute path to the directory where attachments are stored.
+ # The default is the 'files' directory in your Redmine instance.
+ # Your Redmine instance needs to have write permission on this
+ # directory.
+ # Examples:
+ # attachments_storage_path: /var/redmine/files
+ # attachments_storage_path: D:/redmine/files
+ attachments_storage_path:
+
+ # Configuration of the autologin cookie.
+ # autologin_cookie_name: the name of the cookie (default: autologin)
+ # autologin_cookie_path: the cookie path (default: /)
+ # autologin_cookie_secure: true sets the cookie secure flag (default: false)
+ autologin_cookie_name:
+ autologin_cookie_path:
+ autologin_cookie_secure:
+
+ # Configuration of SCM executable command.
+ # Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
+ # On Windows, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
+ scm_subversion_command: svn # (default: svn)
+ scm_mercurial_command: "\"C:\Program Files\TortoiseHg\hg.exe\"" # (default: hg)
+ scm_git_command: /usr/local/bin/git # (default: git)
+ scm_cvs_command: cvs # (default: cvs)
+ scm_bazaar_command: bzr.exe # (default: bzr)
+ scm_darcs_command: darcs-1.0.9-i386-linux # (default: darcs)
+
+# specific configuration options for production environment
+# that overrides the default ones
+production:
+
+# specific configuration options for development environment
+# that overrides the default ones
+development:
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/text-base/database.yml.example.svn-base
--- a/config/.svn/text-base/database.yml.example.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/.svn/text-base/database.yml.example.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -36,4 +36,4 @@
test_sqlite3:
adapter: sqlite3
- database: db/test.db
+ database: db/test.sqlite3
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/text-base/email.yml.example.svn-base
--- a/config/.svn/text-base/email.yml.example.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-# = Outgoing email settings
-#
-# Each environment has it's own configuration options. If you are only
-# running in production, only the production block needs to be configured.
-#
-# == Common configurations
-#
-# === Sendmail command
-#
-# production:
-# delivery_method: :sendmail
-#
-# === Simple SMTP server at localhost
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "localhost"
-# port: 25
-#
-# === SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "example.com"
-# port: 25
-# authentication: :login
-# domain: 'foo.com'
-# user_name: 'myaccount'
-# password: 'password'
-#
-# === SMTP server at example.com using PLAIN authentication
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "example.com"
-# port: 25
-# authentication: :plain
-# domain: 'example.com'
-# user_name: 'myaccount'
-# password: 'password'
-#
-# === SMTP server at using TLS (GMail)
-#
-# This requires some additional configuration. See the article at:
-# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# tls: true
-# address: "smtp.gmail.com"
-# port: 587
-# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
-# authentication: :plain
-# user_name: "your_email@gmail.com"
-# password: "your_password"
-#
-#
-# == More configuration options
-#
-# See the "Configuration options" at the following website for a list of the
-# full options allowed:
-#
-# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
-
-production:
- delivery_method: :smtp
- smtp_settings:
- address: smtp.example.net
- port: 25
- domain: example.net
- authentication: :login
- user_name: "redmine@example.net"
- password: "redmine"
-
-development:
- delivery_method: :smtp
- smtp_settings:
- address: 127.0.0.1
- port: 25
- domain: example.net
- authentication: :login
- user_name: "redmine@example.net"
- password: "redmine"
diff -r 07fa8a8b56a8 -r 0579821a129a config/.svn/text-base/environment.rb.svn-base
--- a/config/.svn/text-base/environment.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/.svn/text-base/environment.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -46,11 +46,12 @@
# config.active_record.schema_format = :ruby
# Deliveries are disabled by default. Do NOT modify this section.
- # Define your email configuration in email.yml instead.
+ # Define your email configuration in configuration.yml instead.
# It will automatically turn deliveries on
config.action_mailer.perform_deliveries = false
config.gem 'rubytree', :lib => 'tree'
+ config.gem 'coderay', :version => '~>0.9.7'
# Load any local configuration that is kept out of source control
# (e.g. gems, patches).
diff -r 07fa8a8b56a8 -r 0579821a129a config/configuration.yml.example
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/configuration.yml.example Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,126 @@
+# = Redmine configuration file
+#
+# Each environment has it's own configuration options. If you are only
+# running in production, only the production block needs to be configured.
+# Environment specific configuration options override the default ones.
+#
+# Note that this file needs to be a valid YAML file.
+#
+# == Outgoing email settings (email_delivery setting)
+#
+# === Common configurations
+#
+# ==== Sendmail command
+#
+# production:
+# email_delivery:
+# delivery_method: :sendmail
+#
+# ==== Simple SMTP server at localhost
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "localhost"
+# port: 25
+#
+# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "example.com"
+# port: 25
+# authentication: :login
+# domain: 'foo.com'
+# user_name: 'myaccount'
+# password: 'password'
+#
+# ==== SMTP server at example.com using PLAIN authentication
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# address: "example.com"
+# port: 25
+# authentication: :plain
+# domain: 'example.com'
+# user_name: 'myaccount'
+# password: 'password'
+#
+# ==== SMTP server at using TLS (GMail)
+#
+# This requires some additional configuration. See the article at:
+# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
+#
+# production:
+# email_delivery:
+# delivery_method: :smtp
+# smtp_settings:
+# tls: true
+# address: "smtp.gmail.com"
+# port: 587
+# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
+# authentication: :plain
+# user_name: "your_email@gmail.com"
+# password: "your_password"
+#
+#
+# === More configuration options
+#
+# See the "Configuration options" at the following website for a list of the
+# full options allowed:
+#
+# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
+
+
+# default configuration options for all environments
+default:
+ # Outgoing emails configuration (see examples above)
+ email_delivery:
+ delivery_method: :smtp
+ smtp_settings:
+ address: smtp.example.net
+ port: 25
+ domain: example.net
+ authentication: :login
+ user_name: "redmine@example.net"
+ password: "redmine"
+
+ # Absolute path to the directory where attachments are stored.
+ # The default is the 'files' directory in your Redmine instance.
+ # Your Redmine instance needs to have write permission on this
+ # directory.
+ # Examples:
+ # attachments_storage_path: /var/redmine/files
+ # attachments_storage_path: D:/redmine/files
+ attachments_storage_path:
+
+ # Configuration of the autologin cookie.
+ # autologin_cookie_name: the name of the cookie (default: autologin)
+ # autologin_cookie_path: the cookie path (default: /)
+ # autologin_cookie_secure: true sets the cookie secure flag (default: false)
+ autologin_cookie_name:
+ autologin_cookie_path:
+ autologin_cookie_secure:
+
+ # Configuration of SCM executable command.
+ # Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
+ # On Windows, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
+ scm_subversion_command: svn # (default: svn)
+ scm_mercurial_command: "\"C:\Program Files\TortoiseHg\hg.exe\"" # (default: hg)
+ scm_git_command: /usr/local/bin/git # (default: git)
+ scm_cvs_command: cvs # (default: cvs)
+ scm_bazaar_command: bzr.exe # (default: bzr)
+ scm_darcs_command: darcs-1.0.9-i386-linux # (default: darcs)
+
+# specific configuration options for production environment
+# that overrides the default ones
+production:
+
+# specific configuration options for development environment
+# that overrides the default ones
+development:
diff -r 07fa8a8b56a8 -r 0579821a129a config/database.yml.example
--- a/config/database.yml.example Wed Jan 19 15:04:22 2011 +0000
+++ b/config/database.yml.example Tue Feb 08 13:51:46 2011 +0000
@@ -36,4 +36,4 @@
test_sqlite3:
adapter: sqlite3
- database: db/test.db
+ database: db/test.sqlite3
diff -r 07fa8a8b56a8 -r 0579821a129a config/email.yml.example
--- a/config/email.yml.example Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-# = Outgoing email settings
-#
-# Each environment has it's own configuration options. If you are only
-# running in production, only the production block needs to be configured.
-#
-# == Common configurations
-#
-# === Sendmail command
-#
-# production:
-# delivery_method: :sendmail
-#
-# === Simple SMTP server at localhost
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "localhost"
-# port: 25
-#
-# === SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "example.com"
-# port: 25
-# authentication: :login
-# domain: 'foo.com'
-# user_name: 'myaccount'
-# password: 'password'
-#
-# === SMTP server at example.com using PLAIN authentication
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# address: "example.com"
-# port: 25
-# authentication: :plain
-# domain: 'example.com'
-# user_name: 'myaccount'
-# password: 'password'
-#
-# === SMTP server at using TLS (GMail)
-#
-# This requires some additional configuration. See the article at:
-# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
-#
-# production:
-# delivery_method: :smtp
-# smtp_settings:
-# tls: true
-# address: "smtp.gmail.com"
-# port: 587
-# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
-# authentication: :plain
-# user_name: "your_email@gmail.com"
-# password: "your_password"
-#
-#
-# == More configuration options
-#
-# See the "Configuration options" at the following website for a list of the
-# full options allowed:
-#
-# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
-
-production:
- delivery_method: :smtp
- smtp_settings:
- address: smtp.example.net
- port: 25
- domain: example.net
- authentication: :login
- user_name: "redmine@example.net"
- password: "redmine"
-
-development:
- delivery_method: :smtp
- smtp_settings:
- address: 127.0.0.1
- port: 25
- domain: example.net
- authentication: :login
- user_name: "redmine@example.net"
- password: "redmine"
diff -r 07fa8a8b56a8 -r 0579821a129a config/environment.rb
--- a/config/environment.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/config/environment.rb Tue Feb 08 13:51:46 2011 +0000
@@ -46,11 +46,12 @@
# config.active_record.schema_format = :ruby
# Deliveries are disabled by default. Do NOT modify this section.
- # Define your email configuration in email.yml instead.
+ # Define your email configuration in configuration.yml instead.
# It will automatically turn deliveries on
config.action_mailer.perform_deliveries = false
config.gem 'rubytree', :lib => 'tree'
+ config.gem 'coderay', :version => '~>0.9.7'
# Load any local configuration that is kept out of source control
# (e.g. gems, patches).
diff -r 07fa8a8b56a8 -r 0579821a129a config/environments/.svn/entries
--- a/config/environments/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/config/environments/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/config/environments
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:51.212937Z
+2011-02-08T13:45:45.000000Z
08b25fdea5e3e041116340c3c3090b18
2010-11-14T15:14:19.280754Z
4405
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.735734Z
+2011-02-08T13:45:45.000000Z
02eadf22aa59353271c702e4865138b1
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.739734Z
+2011-02-08T13:45:45.000000Z
213279c73e8c922d0a9d43f3c1cc6943
2010-02-08T18:53:07.634937Z
3397
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.735734Z
+2011-02-08T13:45:45.000000Z
d08152d4dda4608f254785b23840140a
2007-09-27T22:30:57.196220Z
772
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.739734Z
+2011-02-08T13:45:45.000000Z
213279c73e8c922d0a9d43f3c1cc6943
2010-02-08T18:53:07.634937Z
3397
@@ -202,7 +202,7 @@
-2010-11-19T13:04:51.212937Z
+2011-02-08T13:45:45.000000Z
17a6fbb168f3951191541f0f5a554454
2010-09-26T16:54:38.112012Z
4182
diff -r 07fa8a8b56a8 -r 0579821a129a config/initializers/.svn/all-wcprops
--- a/config/initializers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/config/initializers/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/4679/trunk/config/initializers
+/svn/!svn/ver/4752/trunk/config/initializers
END
inflections.rb
K 25
@@ -27,12 +27,6 @@
V 67
/svn/!svn/ver/2895/trunk/config/initializers/backtrace_silencers.rb
END
-40-email.rb
-K 25
-svn:wc:ra_dav:version-url
-V 56
-/svn/!svn/ver/1625/trunk/config/initializers/40-email.rb
-END
20-mime_types.rb
K 25
svn:wc:ra_dav:version-url
diff -r 07fa8a8b56a8 -r 0579821a129a config/initializers/.svn/entries
--- a/config/initializers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/config/initializers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/config/initializers
http://redmine.rubyforge.org/svn
-2011-01-10T18:25:12.105765Z
-4679
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.743734Z
+2011-02-08T13:45:45.000000Z
acc71445fc1c65ebe6fdeba695fea714
2009-09-20T14:06:57.257282Z
2895
@@ -66,7 +66,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
45627c8ad9bafcee93e6ce01b92b57d1
2011-01-10T18:25:12.105765Z
4679
@@ -100,7 +100,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
e83154f604f9f3b0307e1b435f9cc95c
2010-12-17T08:34:29.830642Z
4516
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.743734Z
+2011-02-08T13:45:45.000000Z
ca8db2f40b067cb8615263fa5a238517
2009-09-20T14:06:57.257282Z
2895
@@ -162,47 +162,13 @@
404
-40-email.rb
-file
-
-
-
-
-2010-09-23T14:37:44.743734Z
-386c37f359a87852920a3c3f3e4bbc84
-2008-07-04T18:55:45.736676Z
-1625
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-534
-
20-mime_types.rb
file
-2010-09-23T14:37:44.743734Z
+2011-02-08T13:45:45.000000Z
0005ed7b233f71646e0f75b9994cf219
2008-09-10T18:26:13.133776Z
1797
@@ -236,7 +202,7 @@
-2010-09-23T14:37:44.743734Z
+2011-02-08T13:45:45.000000Z
a7948d8e86bcd799c74945fe91b4a8b1
2009-09-20T14:06:57.257282Z
2895
diff -r 07fa8a8b56a8 -r 0579821a129a config/initializers/.svn/prop-base/40-email.rb.svn-base
--- a/config/initializers/.svn/prop-base/40-email.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a config/initializers/.svn/text-base/40-email.rb.svn-base
--- a/config/initializers/.svn/text-base/40-email.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-# Loads action_mailer settings from email.yml
-# and turns deliveries on if configuration file is found
-
-filename = File.join(File.dirname(__FILE__), '..', 'email.yml')
-if File.file?(filename)
- mailconfig = YAML::load_file(filename)
-
- if mailconfig.is_a?(Hash) && mailconfig.has_key?(Rails.env)
- # Enable deliveries
- ActionMailer::Base.perform_deliveries = true
-
- mailconfig[Rails.env].each do |k, v|
- v.symbolize_keys! if v.respond_to?(:symbolize_keys!)
- ActionMailer::Base.send("#{k}=", v)
- end
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a config/initializers/40-email.rb
--- a/config/initializers/40-email.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-# Loads action_mailer settings from email.yml
-# and turns deliveries on if configuration file is found
-
-filename = File.join(File.dirname(__FILE__), '..', 'email.yml')
-if File.file?(filename)
- mailconfig = YAML::load_file(filename)
-
- if mailconfig.is_a?(Hash) && mailconfig.has_key?(Rails.env)
- # Enable deliveries
- ActionMailer::Base.perform_deliveries = true
-
- mailconfig[Rails.env].each do |k, v|
- v.symbolize_keys! if v.respond_to?(:symbolize_keys!)
- ActionMailer::Base.send("#{k}=", v)
- end
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/all-wcprops
--- a/config/locales/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,263 +1,263 @@
K 25
svn:wc:ra_dav:version-url
V 39
-/svn/!svn/ver/4724/trunk/config/locales
+/svn/!svn/ver/4799/trunk/config/locales
END
lt.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/lt.yml
+/svn/!svn/ver/4752/trunk/config/locales/lt.yml
END
sr-YU.yml
K 25
svn:wc:ra_dav:version-url
V 49
-/svn/!svn/ver/4554/trunk/config/locales/sr-YU.yml
+/svn/!svn/ver/4752/trunk/config/locales/sr-YU.yml
END
ro.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/ro.yml
+/svn/!svn/ver/4752/trunk/config/locales/ro.yml
END
lv.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/lv.yml
+/svn/!svn/ver/4752/trunk/config/locales/lv.yml
END
zh.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/zh.yml
+/svn/!svn/ver/4752/trunk/config/locales/zh.yml
END
pt.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/pt.yml
+/svn/!svn/ver/4752/trunk/config/locales/pt.yml
END
ca.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/ca.yml
+/svn/!svn/ver/4752/trunk/config/locales/ca.yml
END
pt-BR.yml
K 25
svn:wc:ra_dav:version-url
V 49
-/svn/!svn/ver/4554/trunk/config/locales/pt-BR.yml
+/svn/!svn/ver/4752/trunk/config/locales/pt-BR.yml
END
tr.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/tr.yml
+/svn/!svn/ver/4752/trunk/config/locales/tr.yml
END
ru.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/ru.yml
+/svn/!svn/ver/4752/trunk/config/locales/ru.yml
END
en-GB.yml
K 25
svn:wc:ra_dav:version-url
V 49
-/svn/!svn/ver/4519/trunk/config/locales/en-GB.yml
+/svn/!svn/ver/4752/trunk/config/locales/en-GB.yml
END
id.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/id.yml
+/svn/!svn/ver/4752/trunk/config/locales/id.yml
END
el.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/el.yml
+/svn/!svn/ver/4752/trunk/config/locales/el.yml
END
en.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4519/trunk/config/locales/en.yml
+/svn/!svn/ver/4752/trunk/config/locales/en.yml
END
gl.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/gl.yml
+/svn/!svn/ver/4752/trunk/config/locales/gl.yml
END
cs.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/cs.yml
+/svn/!svn/ver/4777/trunk/config/locales/cs.yml
+END
+es.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4752/trunk/config/locales/es.yml
END
mk.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/mk.yml
+/svn/!svn/ver/4752/trunk/config/locales/mk.yml
END
-es.yml
+zh-TW.yml
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/4752/trunk/config/locales/zh-TW.yml
+END
+eu.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/es.yml
+/svn/!svn/ver/4752/trunk/config/locales/eu.yml
END
ko.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/ko.yml
-END
-eu.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4554/trunk/config/locales/eu.yml
-END
-zh-TW.yml
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/4593/trunk/config/locales/zh-TW.yml
+/svn/!svn/ver/4752/trunk/config/locales/ko.yml
END
mn.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/mn.yml
+/svn/!svn/ver/4752/trunk/config/locales/mn.yml
END
it.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4657/trunk/config/locales/it.yml
+/svn/!svn/ver/4752/trunk/config/locales/it.yml
END
sk.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/sk.yml
+/svn/!svn/ver/4752/trunk/config/locales/sk.yml
END
sl.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/sl.yml
+/svn/!svn/ver/4752/trunk/config/locales/sl.yml
END
uk.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/uk.yml
+/svn/!svn/ver/4752/trunk/config/locales/uk.yml
+END
+sr.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4752/trunk/config/locales/sr.yml
END
da.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/da.yml
+/svn/!svn/ver/4752/trunk/config/locales/da.yml
END
-sr.yml
+sv.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/sr.yml
+/svn/!svn/ver/4777/trunk/config/locales/sv.yml
+END
+de.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4752/trunk/config/locales/de.yml
END
bg.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4656/trunk/config/locales/bg.yml
-END
-de.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4592/trunk/config/locales/de.yml
-END
-sv.yml
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/4518/trunk/config/locales/sv.yml
+/svn/!svn/ver/4777/trunk/config/locales/bg.yml
END
ja.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4594/trunk/config/locales/ja.yml
+/svn/!svn/ver/4752/trunk/config/locales/ja.yml
END
he.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/he.yml
+/svn/!svn/ver/4752/trunk/config/locales/he.yml
END
fi.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/fi.yml
+/svn/!svn/ver/4752/trunk/config/locales/fi.yml
END
bs.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/bs.yml
+/svn/!svn/ver/4752/trunk/config/locales/bs.yml
END
fr.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4724/trunk/config/locales/fr.yml
+/svn/!svn/ver/4799/trunk/config/locales/fr.yml
END
nl.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4701/trunk/config/locales/nl.yml
+/svn/!svn/ver/4752/trunk/config/locales/nl.yml
END
hr.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/hr.yml
+/svn/!svn/ver/4752/trunk/config/locales/hr.yml
END
pl.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4595/trunk/config/locales/pl.yml
+/svn/!svn/ver/4752/trunk/config/locales/pl.yml
END
th.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/th.yml
+/svn/!svn/ver/4752/trunk/config/locales/th.yml
END
no.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/no.yml
+/svn/!svn/ver/4752/trunk/config/locales/no.yml
END
hu.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/hu.yml
+/svn/!svn/ver/4752/trunk/config/locales/hu.yml
END
vi.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/vi.yml
+/svn/!svn/ver/4752/trunk/config/locales/vi.yml
END
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/entries
--- a/config/locales/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/config/locales
http://redmine.rubyforge.org/svn
-2011-01-15T14:25:11.532146Z
-4724
-jplang
+2011-02-06T00:31:15.026336Z
+4799
+jbbarth
@@ -32,10 +32,10 @@
-2011-01-13T14:09:38.000000Z
-04a33a87317c990f209c9e0b23a94dfb
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+1e812b47384d7d6aa8750e651a89e331
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -58,7 +58,7 @@
-43738
+43746
sr-YU.yml
file
@@ -66,10 +66,10 @@
-2011-01-13T14:09:38.000000Z
-c066a5e1a32e5c7141a461819119ca09
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+db716c4c1e941ae3c3bc180ae85e916a
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -92,7 +92,7 @@
-42004
+42012
ro.yml
file
@@ -100,10 +100,10 @@
-2011-01-13T14:09:38.000000Z
-4127de9dda4a292a21188ddb864bdb22
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+df4dee9e336fec2bce64b46a93ef8a7a
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -126,7 +126,7 @@
-40126
+40134
lv.yml
file
@@ -134,10 +134,10 @@
-2011-01-13T14:09:38.000000Z
-0b93573ed1b6c4d16c566facc9c51ea3
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+09cfeb6fef2159b9fbf3bd4524edccd9
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -160,7 +160,7 @@
-42010
+42018
zh.yml
file
@@ -168,10 +168,10 @@
-2011-01-13T14:09:38.000000Z
-dabc9f1dd8c6fe2a6af4e19d03e9ed65
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+35aefadc95299e046c84e7926f2f1723
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -194,7 +194,7 @@
-38012
+38020
pt.yml
file
@@ -202,10 +202,10 @@
-2011-01-13T14:09:38.000000Z
-4c86c4b56c721fac90f5939dd7f5a4ad
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+de7cca7c956cb960bccd7ee0bd7e642c
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -228,7 +228,7 @@
-41486
+41494
ca.yml
file
@@ -236,10 +236,10 @@
-2011-01-13T14:09:38.000000Z
-ee91e7c266c44fdcaee547bf143ba5fe
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+f941e4e9bed4572927ca14fc9b5db1d4
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -262,7 +262,7 @@
-41935
+41943
pt-BR.yml
file
@@ -270,10 +270,10 @@
-2011-01-13T14:09:38.000000Z
-390265b3732a994f563d7137967e2278
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+7b6ebad52c9d0618e170f88c4eca6fe9
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -296,7 +296,7 @@
-41370
+41378
tr.yml
file
@@ -304,10 +304,10 @@
-2011-01-13T14:09:38.000000Z
-f36ff0ac378a574be6bb66ea4340bdfa
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+062568e14381f3e5c1ff9c46734d1063
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -330,7 +330,7 @@
-40004
+40012
ru.yml
file
@@ -338,10 +338,10 @@
-2011-01-13T14:09:38.000000Z
-b19c21ea18bf2e9d14353dde9f48301b
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+82062fb3f39efa9416604ee0086d6d2b
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -364,7 +364,7 @@
-61833
+61841
en-GB.yml
file
@@ -372,10 +372,10 @@
-2011-01-13T14:09:38.000000Z
-1c06a4a68ae568c890ae0c1b76477f22
-2010-12-17T09:14:54.583423Z
-4519
+2011-02-08T13:49:52.000000Z
+21131080b52818c183c04114fbdd21c0
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -398,7 +398,7 @@
-39390
+39398
id.yml
file
@@ -406,10 +406,10 @@
-2011-01-13T14:09:38.000000Z
-cee65e2ec68fbd913b617131805cb378
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+5aafb5ad42703467a8bf10a77cf3958a
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -432,7 +432,7 @@
-39746
+39754
el.yml
file
@@ -440,10 +440,10 @@
-2011-01-13T14:09:38.000000Z
-762ca0186f8e7567f3038b8ea6f5bb5c
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+2ba957266ab2a72f1e4bdc00fb0ee9ce
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -466,7 +466,7 @@
-54854
+54862
en.yml
file
@@ -474,10 +474,10 @@
-2011-01-13T14:09:38.000000Z
-9bf57c4bbbe21feffb9b80b1dd359dc0
-2010-12-17T09:14:54.583423Z
-4519
+2011-02-08T13:49:52.000000Z
+50978718f7db9428b3b910da54af546a
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -500,7 +500,7 @@
-38492
+38500
gl.yml
file
@@ -508,10 +508,10 @@
-2011-01-13T14:09:38.000000Z
-b3d6b890444008ad69a9b22d6ebbd8ae
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+8fac2d7a543f4e07eb26e778a392ab83
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -534,7 +534,7 @@
-40604
+40612
cs.yml
file
@@ -542,10 +542,10 @@
-2011-01-13T14:09:38.000000Z
-b5d7dae55451b82b6050007739026770
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+a15ce6ead8e1c43eb12d222e7e849d5d
+2011-01-30T06:37:01.341578Z
+4777
jplang
has-props
@@ -568,7 +568,7 @@
-41330
+41339
mk.yml
file
@@ -576,10 +576,10 @@
-2011-01-13T14:09:38.000000Z
-8a4d25a273edbf55ec8118387a78e386
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+337151da51a475b6b324ea679c3a6c99
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -602,7 +602,7 @@
-49123
+49131
es.yml
file
@@ -610,10 +610,10 @@
-2011-01-13T14:09:38.000000Z
-2a2cc7f9b081a6c28f36452f0df75c3c
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+470913ee31919fc90e22b02279afd420
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -636,7 +636,7 @@
-43379
+43387
zh-TW.yml
file
@@ -644,10 +644,10 @@
-2011-01-13T14:09:38.000000Z
-a40f011945cb425a77762a94d6fa4387
-2010-12-30T15:43:02.374736Z
-4593
+2011-02-08T13:49:52.000000Z
+368fbd4de15eedcb2cf543e167873bbd
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -670,7 +670,7 @@
-42317
+42325
eu.yml
file
@@ -678,10 +678,10 @@
-2011-01-13T14:09:38.000000Z
-0272605dbb554b76e81e7d80f1ce376e
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+32206bce9083c739e3f31d8ebb56281c
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -704,7 +704,7 @@
-42073
+42081
ko.yml
file
@@ -712,10 +712,10 @@
-2011-01-13T14:09:38.000000Z
-3e5ad3b8bb49d5d19bbcd4c06d3f6a91
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+95bb162d82a614c7841b2ea67e611e2b
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -738,7 +738,7 @@
-44210
+44218
mn.yml
file
@@ -746,10 +746,10 @@
-2011-01-13T14:09:38.000000Z
-29ec44faa431f0307ebd9701359928ae
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+417e9edec50ef31110f08242550b56a6
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -772,7 +772,7 @@
-53787
+53795
it.yml
file
@@ -780,10 +780,10 @@
-2011-01-13T14:09:38.000000Z
-a0ea06ad26b6d7dfe722fa0560a8894d
-2011-01-08T10:03:34.099825Z
-4657
+2011-02-08T13:49:52.000000Z
+fe7dc689acbe010599427d2d39ac2b44
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -806,7 +806,7 @@
-41145
+41153
sk.yml
file
@@ -814,10 +814,10 @@
-2011-01-13T14:09:38.000000Z
-0730abc697f821268506266b6c751713
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+c25656ed7510655eac11f735078dbbaa
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -840,7 +840,7 @@
-41396
+41404
sl.yml
file
@@ -848,10 +848,10 @@
-2011-01-13T14:09:38.000000Z
-b089982aac098938ed2da68ca38cff41
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+f9e69eb1031ca6a4030cd909ced54a64
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -874,7 +874,7 @@
-39572
+39580
uk.yml
file
@@ -882,10 +882,10 @@
-2011-01-13T14:09:38.000000Z
-aeb872b59227da163151d3e953557196
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+b5de0b39a465690bc9610247e0d9e0eb
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -908,7 +908,7 @@
-47150
+47158
sr.yml
file
@@ -916,10 +916,10 @@
-2011-01-13T14:09:38.000000Z
-313da32a9af9ee91d2fa5d51d27bdc70
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+d8e8a44113f74ae664adee4f222daf97
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -942,7 +942,7 @@
-54264
+54272
da.yml
file
@@ -950,10 +950,10 @@
-2011-01-13T14:09:38.000000Z
-ca814f3069c69727b7a7c8e701386321
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+43a7a9f5e9140fad4fb52765b0fdba1f
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -976,7 +976,7 @@
-39692
+39700
sv.yml
file
@@ -984,10 +984,10 @@
-2011-01-13T14:09:38.000000Z
-3cd749fe11dfb32ca3a7f95ee9f27cb4
-2010-12-17T08:50:13.997413Z
-4518
+2011-02-08T13:49:52.000000Z
+699123d62eee4445faa28aa6d78b2335
+2011-01-30T06:37:01.341578Z
+4777
jplang
has-props
@@ -1010,7 +1010,7 @@
-41841
+41897
de.yml
file
@@ -1018,10 +1018,10 @@
-2011-01-13T14:09:38.000000Z
-09443567159c66c54aaa5b19b3ab6e6a
-2010-12-30T15:38:41.284110Z
-4592
+2011-02-08T13:49:52.000000Z
+b2d420fff7d056c16f09ef0a9779a6c7
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1044,7 +1044,7 @@
-42283
+42291
bg.yml
file
@@ -1052,10 +1052,10 @@
-2011-01-13T14:09:38.000000Z
-3a0f9832952705d7f032bfe03f53b98a
-2011-01-08T10:01:09.575922Z
-4656
+2011-02-08T13:49:52.000000Z
+e298699123f5bd3e5135a566c73503d6
+2011-01-30T06:37:01.341578Z
+4777
jplang
has-props
@@ -1078,7 +1078,7 @@
-54054
+54276
ja.yml
file
@@ -1086,10 +1086,10 @@
-2011-01-13T14:09:38.000000Z
-a5ff4810afb580a1bb2735638fde6bdf
-2010-12-30T15:44:02.412420Z
-4594
+2011-02-08T13:49:52.000000Z
+6b961e32a177d8d7ac8c2f7c88200470
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1112,7 +1112,7 @@
-45900
+45908
he.yml
file
@@ -1120,10 +1120,10 @@
-2011-01-13T14:09:38.000000Z
-ece84cb2ec7974a6de73e50e301822c8
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+192584af3333c7080179fe5c20e434fc
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1146,7 +1146,7 @@
-45142
+45150
fi.yml
file
@@ -1154,10 +1154,10 @@
-2011-01-13T14:09:38.000000Z
-ec72709b8e1f3730f778ecf48f8a477f
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+b445a97eaeefead5aa6370c4a1190a4f
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1180,7 +1180,7 @@
-40650
+40658
bs.yml
file
@@ -1188,10 +1188,10 @@
-2011-01-13T14:09:38.000000Z
-868e34aff97e83b737f1583b26949127
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+010af5a5a5c3eb88d99ae0cea9938404
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1214,7 +1214,7 @@
-40587
+40595
fr.yml
file
@@ -1222,11 +1222,11 @@
-2011-01-19T15:03:32.000000Z
-87a842c407ed2a726eeb7c23b10cadb9
-2011-01-15T14:25:11.532146Z
-4724
-jplang
+2011-02-08T13:49:52.000000Z
+c501db7eeece8640d653e51824f5c7bc
+2011-02-06T00:31:15.026336Z
+4799
+jbbarth
has-props
@@ -1248,7 +1248,7 @@
-42743
+42750
nl.yml
file
@@ -1256,10 +1256,10 @@
-2011-01-13T14:09:38.000000Z
-795dcdb14c3b4755c54be2b52b7b0df3
-2011-01-11T20:35:50.950842Z
-4701
+2011-02-08T13:49:52.000000Z
+9a2c26c869400cc6efb11d75b2d06913
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1282,7 +1282,7 @@
-40142
+40150
hr.yml
file
@@ -1290,10 +1290,10 @@
-2011-01-13T14:09:38.000000Z
-43b90dedeffa52a46acb911eaad02d3f
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+3599330a601c9bf8a264581c2dff951a
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1316,7 +1316,7 @@
-40250
+40258
pl.yml
file
@@ -1324,10 +1324,10 @@
-2011-01-13T14:09:38.000000Z
-f44541d5733c0a3b474b64151f751080
-2010-12-30T15:49:08.314847Z
-4595
+2011-02-08T13:49:52.000000Z
+aca80972219f7cccba37d3f54e1997fe
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1350,7 +1350,7 @@
-42545
+42553
th.yml
file
@@ -1358,10 +1358,10 @@
-2011-01-13T14:09:38.000000Z
-52810a3efa019c1099e06641996a89b5
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+fe82ec83beaf4cc55f24063138e7c041
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1384,7 +1384,7 @@
-53010
+53018
no.yml
file
@@ -1392,10 +1392,10 @@
-2011-01-13T14:09:38.000000Z
-7b92f62c72c56981439726858c94d19e
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+be6384b9cabf8a8b0c510c0f5961a1dd
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1418,7 +1418,7 @@
-38453
+38461
hu.yml
file
@@ -1426,10 +1426,10 @@
-2011-01-13T14:09:38.000000Z
-992bb63025a60c01ea886ef5278e6f17
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+c3c9231930da2b53136ec5ffe77e2cfe
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1452,7 +1452,7 @@
-42977
+42985
vi.yml
file
@@ -1460,10 +1460,10 @@
-2011-01-13T14:09:38.000000Z
-8ec5b444728e6a8f70e5de5b5d43784a
-2010-12-22T20:40:56.075532Z
-4554
+2011-02-08T13:49:52.000000Z
+874e401921a349fe9688ab028461e0b2
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -1486,5 +1486,5 @@
-43545
+43553
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/bg.yml.svn-base
--- a/config/locales/.svn/text-base/bg.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/bg.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -1,11 +1,12 @@
bg:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
- default: "%Y-%m-%d"
+ default: "%d-%m-%Y"
short: "%b %d"
long: "%B %d, %Y"
@@ -65,12 +66,13 @@
other: "почти %{count} години"
number:
+ # Default format for numbers
format:
separator: "."
delimiter: ""
precision: 3
- human:
- format:
+ human:
+ format:
precision: 1
delimiter: ""
storage_units:
@@ -83,7 +85,8 @@
mb: "MB"
gb: "GB"
tb: "TB"
-
+
+
# Used in array.to_sentence.
support:
array:
@@ -94,8 +97,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "1 грешка попречи този %{model} да бъде записан"
+ other: "%{count} грешки попречиха този %{model} да бъде записан"
messages:
inclusion: "не съществува в списъка"
exclusion: "е запазено"
@@ -120,6 +123,7 @@
greater_than_start_date: "трябва да е след началната дата"
not_same_project: "не е от същия проект"
circular_dependency: "Тази релация ще доведе до безкрайна зависимост"
+ cant_link_an_issue_with_a_descendant: "Една задача не може да бъде свързвана към своя подзадача"
actionview_instancetag_blank_option: Изберете
@@ -150,24 +154,61 @@
notice_file_not_found: Несъществуваща или преместена страница.
notice_locking_conflict: Друг потребител променя тези данни в момента.
notice_not_authorized: Нямате право на достъп до тази страница.
+ notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
notice_email_sent: "Изпратен e-mail на %{value}"
notice_email_error: "Грешка при изпращане на e-mail (%{value})"
notice_feeds_access_key_reseted: Вашия ключ за RSS достъп беше променен.
+ notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
+ notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
+ notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
+ notice_no_issue_selected: "Няма избрани задачи."
+ notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
+ notice_default_data_loaded: Примерната информация е заредена успешно.
+ notice_unable_delete_version: Невъзможност за изтриване на версия
+ notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
+ notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
+ notice_gantt_chart_truncated: Мрежовият график е съкратен, понеже броят на обектите, които могат да бъдат показани е твърде голям (%{max})
+ error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
error_scm_not_found: Несъществуващ обект в хранилището.
error_scm_command_failed: "Грешка при опит за комуникация с хранилище: %{value}"
+ error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
+ error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
+ error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
+ error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
+ error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
+ error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
+ error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
+ error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
+ error_can_not_archive_project: Този проект не може да бъде архивиран
+ error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
+ error_workflow_copy_source: Моля изберете source тракер или роля
+ error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
+ error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
+ error_unable_to_connect: Невъзможност за свързване с (%{value})
+ warning_attachments_not_saved: "%{count} файла не бяха записани."
mail_subject_lost_password: "Вашата парола (%{value})"
mail_body_lost_password: 'За да смените паролата си, използвайте следния линк:'
mail_subject_register: "Активация на профил (%{value})"
mail_body_register: 'За да активирате профила си използвайте следния линк:'
+ mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
+ mail_body_account_information: Информацията за профила ви
+ mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
+ mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
+ mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
+ mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
+ mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
+ mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
+ mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
+ mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
gui_validation_error: 1 грешка
gui_validation_error_plural: "%{count} грешки"
field_name: Име
field_description: Описание
- field_summary: Групиран изглед
+ field_summary: Анотация
field_is_required: Задължително
field_firstname: Име
field_lastname: Фамилия
@@ -200,6 +241,7 @@
field_priority: Приоритет
field_fixed_version: Планувана версия
field_user: Потребител
+ field_principal: Principal
field_role: Роля
field_homepage: Начална страница
field_is_public: Публичен
@@ -225,6 +267,7 @@
field_attr_lastname: Атрибут Фамилия (Lastname)
field_attr_mail: Атрибут Email
field_onthefly: Динамично създаване на потребител
+ field_start_date: Начална дата
field_done_ratio: % Прогрес
field_auth_source: Начин на оторизация
field_hide_mail: Скрий e-mail адреса ми
@@ -242,7 +285,24 @@
field_assignable: Възможно е възлагане на задачи за тази роля
field_redirect_existing_links: Пренасочване на съществуващи линкове
field_estimated_hours: Изчислено време
+ field_column_names: Колони
+ field_time_entries: Log time
+ field_time_zone: Часова зона
+ field_searchable: С възможност за търсене
field_default_value: Стойност по подразбиране
+ field_comments_sorting: Сортиране на коментарите
+ field_parent_title: Родителска страница
+ field_editable: Editable
+ field_watcher: Наблюдател
+ field_identity_url: OpenID URL
+ field_content: Съдържание
+ field_group_by: Групиране на резултатите по
+ field_sharing: Sharing
+ field_parent_issue: Родителска задача
+ field_member_of_group: Член на група
+ field_assigned_to_role: Assignee's role
+ field_text: Текстово поле
+ field_visible: Видим
setting_app_title: Заглавие
setting_app_subtitle: Описание
@@ -253,26 +313,132 @@
setting_attachment_max_size: Максимална големина на прикачен файл
setting_issues_export_limit: Максимален брой задачи за експорт
setting_mail_from: E-mail адрес за емисии
+ setting_bcc_recipients: Получатели на скрито копие (bcc)
+ setting_plain_text_mail: само чист текст (без HTML)
setting_host_name: Хост
setting_text_formatting: Форматиране на текста
setting_wiki_compression: Wiki компресиране на историята
setting_feeds_limit: Максимален брой за емисии
+ setting_default_projects_public: Новите проекти са публични по подразбиране
setting_autofetch_changesets: Автоматично обработване на ревизиите
setting_sys_api_enabled: Разрешаване на WS за управление
setting_commit_ref_keywords: Отбелязващи ключови думи
setting_commit_fix_keywords: Приключващи ключови думи
setting_autologin: Автоматичен вход
setting_date_format: Формат на датата
+ setting_time_format: Формат на часа
setting_cross_project_issue_relations: Релации на задачи между проекти
+ setting_issue_list_default_columns: Показвани колони по подразбиране
+ setting_repositories_encodings: Кодови таблици
+ setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
+ setting_emails_header: Emails header
+ setting_emails_footer: Подтекст за e-mail
+ setting_protocol: Протокол
+ setting_per_page_options: Опции за страниране
+ setting_user_format: Потребителски формат
+ setting_activity_days_default: Брой дни показвани на таб Дейност
+ setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
+ setting_enabled_scm: Разрешена SCM
+ setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
+ setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
+ setting_mail_handler_api_key: API ключ
+ setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
+ setting_gravatar_enabled: Използване на портребителски икони от Gravatar
+ setting_gravatar_default: Подразбиращо се изображение от Gravatar
+ setting_diff_max_lines_displayed: Максимален брой показани diff редове
+ setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
+ setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
+ setting_openid: Рарешаване на OpenID вход и регистрация
+ setting_password_min_length: Минимална дължина на парола
+ setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
+ setting_default_projects_modules: Активирани модули по подразбиране за нов проект
+ setting_issue_done_ratio: Изчисление на процента на готови задачи с
+ setting_issue_done_ratio_issue_field: Използване на поле '% Прогрес'
+ setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
+ setting_start_of_week: Първи ден на седмицата
+ setting_rest_api_enabled: Разрешаване на REST web сървис
+ setting_cache_formatted_text: Cache formatted text
+ setting_default_notification_option: Подразбиращ се начин за известяване
+ setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
+ setting_commit_logtime_activity_id: Дейност при отчитане на работното време
+ setting_gantt_items_limit: Максимален брой обекти, които да се показват в мрежов график
+ permission_add_project: Създаване на проект
+ permission_add_subprojects: Създаване на подпроекти
+ permission_edit_project: Редактиране на проект
+ permission_select_project_modules: Избор на проектни модули
+ permission_manage_members: Управление на членовете (на екип)
+ permission_manage_project_activities: Управление на дейностите на проекта
+ permission_manage_versions: Управление на версиите
+ permission_manage_categories: Управление на категориите
+ permission_view_issues: Разглеждане на задачите
+ permission_add_issues: Добавяне на задачи
+ permission_edit_issues: Редактиране на задачи
+ permission_manage_issue_relations: Управление на връзките между задачите
+ permission_add_issue_notes: Добаване на бележки
+ permission_edit_issue_notes: Редактиране на бележки
+ permission_edit_own_issue_notes: Редактиране на собствени бележки
+ permission_move_issues: Преместване на задачи
+ permission_delete_issues: Изтриване на задачи
+ permission_manage_public_queries: Управление на публичните заявки
+ permission_save_queries: Запис на запитвания (queries)
+ permission_view_gantt: Разглеждане на мрежов график
+ permission_view_calendar: Разглеждане на календари
+ permission_view_issue_watchers: Разглеждане на списък с наблюдатели
+ permission_add_issue_watchers: Добавяне на наблюдатели
+ permission_delete_issue_watchers: Изтриване на наблюдатели
+ permission_log_time: Log spent time
+ permission_view_time_entries: Разглеждане на изразходваното време
+ permission_edit_time_entries: Редактиране на time logs
+ permission_edit_own_time_entries: Редактиране на собствените time logs
+ permission_manage_news: Управление на новини
+ permission_comment_news: Коментиране на новини
+ permission_manage_documents: Управление на документи
+ permission_view_documents: Разглеждане на документи
+ permission_manage_files: Управление на файлове
+ permission_view_files: Разглеждане на файлове
+ permission_manage_wiki: Управление на wiki
+ permission_rename_wiki_pages: Преименуване на wiki страници
+ permission_delete_wiki_pages: Изтриване на wiki страници
+ permission_view_wiki_pages: Разглеждане на wiki
+ permission_view_wiki_edits: Разглеждане на wiki история
+ permission_edit_wiki_pages: Редактиране на wiki страници
+ permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове към wiki страници
+ permission_protect_wiki_pages: Заключване на wiki страници
+ permission_manage_repository: Управление на хранилища
+ permission_browse_repository: Разглеждане на хранилища
+ permission_view_changesets: Разглеждане на changesets
+ permission_commit_access: Поверяване
+ permission_manage_boards: Управление на boards
+ permission_view_messages: Разглеждане на съобщения
+ permission_add_messages: Публикуване на съобщения
+ permission_edit_messages: Редактиране на съобщения
+ permission_edit_own_messages: Редактиране на собствени съобщения
+ permission_delete_messages: Изтриване на съобщения
+ permission_delete_own_messages: Изтриване на собствени съобщения
+ permission_export_wiki_pages: Експорт на wiki страници
+ permission_manage_subtasks: Управление на подзадачите
+
+ project_module_issue_tracking: Тракинг
+ project_module_time_tracking: Отделяне на време
+ project_module_news: Новини
+ project_module_documents: Документи
+ project_module_files: Файлове
+ project_module_wiki: Wiki
+ project_module_repository: Хранилище
+ project_module_boards: Форуми
+ project_module_calendar: Календар
+ project_module_gantt: Мрежов график
+
label_user: Потребител
label_user_plural: Потребители
label_user_new: Нов потребител
+ label_user_anonymous: Анонимен
label_project: Проект
label_project_new: Нов проект
label_project_plural: Проекти
label_x_projects:
- zero: 0 проекти
+ zero: 0 проекта
one: 1 проект
other: "%{count} проекта"
label_project_all: Всички проекти
@@ -281,9 +447,13 @@
label_issue_new: Нова задача
label_issue_plural: Задачи
label_issue_view_all: Всички задачи
+ label_issues_by: "Задачи по %{value}"
+ label_issue_added: Добавена задача
+ label_issue_updated: Обновена задача
label_document: Документ
label_document_new: Нов документ
label_document_plural: Документи
+ label_document_added: Добавен документ
label_role: Роля
label_role_plural: Роли
label_role_new: Нова роля
@@ -310,11 +480,13 @@
label_information_plural: Информация
label_please_login: Вход
label_register: Регистрация
+ label_login_with_open_id_option: или вход чрез OpenID
label_password_lost: Забравена парола
label_home: Начало
label_my_page: Лична страница
label_my_account: Профил
label_my_projects: Проекти, в които участвам
+ label_my_page_block: Блокове в личната страница
label_administration: Администрация
label_login: Вход
label_logout: Изход
@@ -324,6 +496,8 @@
label_last_login: Последно свързване
label_registered_on: Регистрация
label_activity: Дейност
+ label_overall_activity: Цялостна дейност
+ label_user_activity: "Активност на %{value}"
label_new: Нов
label_logged_as: Здравейте,
label_environment: Среда
@@ -332,10 +506,13 @@
label_auth_source_new: Нов начин на оторизация
label_auth_source_plural: Начини на оторизация
label_subproject_plural: Подпроекти
+ label_subproject_new: Нов подпроект
+ label_and_its_subprojects: "%{value} и неговите подпроекти"
label_min_max_length: Минимална - максимална дължина
label_list: Списък
label_date: Дата
label_integer: Целочислен
+ label_float: Дробно
label_boolean: Чекбокс
label_string: Текст
label_text: Дълъг текст
@@ -350,6 +527,7 @@
label_attachment_new: Нов файл
label_attachment_delete: Изтриване
label_attachment_plural: Файлове
+ label_file_added: Добавен файл
label_report: Справка
label_report_plural: Справки
label_news: Новини
@@ -357,11 +535,13 @@
label_news_plural: Новини
label_news_latest: Последни новини
label_news_view_all: Виж всички
+ label_news_added: Добавена новина
label_settings: Настройки
label_overview: Общ изглед
label_version: Версия
label_version_new: Нова версия
label_version_plural: Версии
+ label_close_versions: Затваряне на завършените версии
label_confirmation: Одобрение
label_export_to: Експорт към
label_read: Read...
@@ -388,6 +568,7 @@
label_new_statuses_allowed: Позволени състояния
label_all: всички
label_none: никакви
+ label_nobody: никой
label_next: Следващ
label_previous: Предишен
label_used_by: Използва се от
@@ -419,9 +600,19 @@
label_not_equals: не е
label_in_less_than: след по-малко от
label_in_more_than: след повече от
+ label_greater_or_equal: ">="
+ label_less_or_equal: <=
label_in: в следващите
label_today: днес
+ label_all_time: всички
+ label_yesterday: вчера
label_this_week: тази седмица
+ label_last_week: последната седмица
+ label_last_n_days: "последните %{count} дни"
+ label_this_month: текущия месец
+ label_last_month: последния месец
+ label_this_year: текущата година
+ label_date_range: Период
label_less_than_ago: преди по-малко от
label_more_than_ago: преди повече от
label_ago: преди
@@ -429,17 +620,25 @@
label_not_contains: не съдържа
label_day_plural: дни
label_repository: Хранилище
+ label_repository_plural: Хранилища
label_browse: Разглеждане
label_modification: "%{count} промяна"
label_modification_plural: "%{count} промени"
+ label_branch: работен вариант
+ label_tag: Версия
label_revision: Ревизия
label_revision_plural: Ревизии
+ label_revision_id: Ревизия %{value}
+ label_associated_revisions: Асоциирани ревизии
label_added: добавено
label_modified: променено
+ label_copied: копирано
+ label_renamed: преименувано
label_deleted: изтрито
label_latest_revision: Последна ревизия
label_latest_revision_plural: Последни ревизии
label_view_revisions: Виж ревизиите
+ label_view_all_revisions: Разглеждане на всички ревизии
label_max_size: Максимална големина
label_sort_highest: Премести най-горе
label_sort_higher: Премести по-горе
@@ -465,6 +664,7 @@
label_changes_details: Подробни промени
label_issue_tracking: Тракинг
label_spent_time: Отделено време
+ label_overall_spent_time: Общо употребено време
label_f_hour: "%{value} час"
label_f_hour_plural: "%{value} часа"
label_time_tracking: Отделяне на време
@@ -486,6 +686,7 @@
label_relation_delete: Изтриване на релация
label_relates_to: свързана със
label_duplicates: дублира
+ label_duplicated_by: дублирана от
label_blocks: блокира
label_blocked_by: блокирана от
label_precedes: предшества
@@ -501,10 +702,13 @@
label_board: Форум
label_board_new: Нов форум
label_board_plural: Форуми
+ label_board_locked: Заключена
+ label_board_sticky: Sticky
label_topic_plural: Теми
label_message_plural: Съобщения
label_message_last: Последно съобщение
label_message_new: Нова тема
+ label_message_posted: Добавено съобщение
label_reply_plural: Отговори
label_send_information: Изпращане на информацията до потребителя
label_year: Година
@@ -515,12 +719,81 @@
label_language_based: В зависимост от езика
label_sort_by: "Сортиране по %{value}"
label_send_test_email: Изпращане на тестов e-mail
+ label_feeds_access_key: RSS access ключ
+ label_missing_feeds_access_key: Липсващ RSS ключ за достъп
label_feeds_access_key_created_on: "%{value} от създаването на RSS ключа"
label_module_plural: Модули
label_added_time_by: "Публикувана от %{author} преди %{age}"
+ label_updated_time_by: "Обновена от %{author} преди %{age}"
label_updated_time: "Обновена преди %{value}"
label_jump_to_a_project: Проект...
-
+ label_file_plural: Файлове
+ label_changeset_plural: Ревизии
+ label_default_columns: По подразбиране
+ label_no_change_option: (Без промяна)
+ label_bulk_edit_selected_issues: Редактиране на задачи
+ label_theme: Тема
+ label_default: По подразбиране
+ label_search_titles_only: Само в заглавията
+ label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
+ label_user_mail_option_selected: "За всички събития само в избраните проекти..."
+ label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
+ label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
+ label_user_mail_option_only_assigned: Само за неща, назначени на мен
+ label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
+ label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
+ label_registration_activation_by_email: активиране на профила по email
+ label_registration_manual_activation: ръчно активиране
+ label_registration_automatic_activation: автоматично активиране
+ label_display_per_page: "На страница по: %{value}"
+ label_age: Възраст
+ label_change_properties: Промяна на настройки
+ label_general: Основни
+ label_more: Още
+ label_scm: SCM (Система за контрол на версиите)
+ label_plugins: Плъгини
+ label_ldap_authentication: LDAP оторизация
+ label_downloads_abbr: D/L
+ label_optional_description: Незадължително описание
+ label_add_another_file: Добавяне на друг файл
+ label_preferences: Предпочитания
+ label_chronological_order: Хронологичен ред
+ label_reverse_chronological_order: Обратен хронологичен ред
+ label_planning: Планиране
+ label_incoming_emails: Входящи e-mail-и
+ label_generate_key: Генериране на ключ
+ label_issue_watchers: Наблюдатели
+ label_example: Пример
+ label_display: Display
+ label_sort: Сортиране
+ label_ascending: Нарастващ
+ label_descending: Намаляващ
+ label_date_from_to: От %{start} до %{end}
+ label_wiki_content_added: Wiki страница беше добавена
+ label_wiki_content_updated: Wiki страница беше обновена
+ label_group: Група
+ label_group_plural: Групи
+ label_group_new: Нова група
+ label_time_entry_plural: Използвано време
+ label_version_sharing_none: Не споделен
+ label_version_sharing_descendants: С подпроекти
+ label_version_sharing_hierarchy: С проектна йерархия
+ label_version_sharing_tree: С дърво на проектите
+ label_version_sharing_system: С всички проекти
+ label_update_issue_done_ratios: Обновяване на процента на завършените задачи
+ label_copy_source: Източник
+ label_copy_target: Цел
+ label_copy_same_as_target: Също като целта
+ label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
+ label_api_access_key: API ключ за достъп
+ label_missing_api_access_key: Липсващ API ключ
+ label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
+ label_profile: Профил
+ label_subtask_plural: Подзадачи
+ label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
+ label_principal_search: "Търсене на потребител или група:"
+ label_user_search: "Търсене на потребител:"
+
button_login: Вход
button_submit: Прикачване
button_save: Запис
@@ -528,8 +801,10 @@
button_uncheck_all: Изчистване на всички
button_delete: Изтриване
button_create: Създаване
+ button_create_and_continue: Създаване и продължаване
button_test: Тест
button_edit: Редакция
+ button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
button_add: Добавяне
button_change: Промяна
button_apply: Приложи
@@ -540,6 +815,7 @@
button_list: Списък
button_view: Преглед
button_move: Преместване
+ button_move_and_follow: Преместване и продължаване
button_back: Назад
button_cancel: Отказ
button_activate: Активация
@@ -553,26 +829,49 @@
button_unarchive: Разархивиране
button_reset: Генериране наново
button_rename: Преименуване
+ button_change_password: Промяна на парола
+ button_copy: Копиране
+ button_copy_and_follow: Копиране и продължаване
+ button_annotate: Анотация
+ button_update: Обновяване
+ button_configure: Конфигуриране
+ button_quote: Цитат
+ button_duplicate: Дублиране
+ button_show: Показване
status_active: активен
status_registered: регистриран
status_locked: заключен
+ version_status_open: отворена
+ version_status_locked: заключена
+ version_status_closed: затворена
+
+ field_active: Активен
+
text_select_mail_notifications: Изберете събития за изпращане на e-mail.
text_regexp_info: пр. ^[A-Z0-9]+$
text_min_max_length_info: 0 - без ограничения
text_project_destroy_confirmation: Сигурни ли сте, че искате да изтриете проекта и данните в него?
+ text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
text_workflow_edit: Изберете роля и тракер за да редактирате работния процес
text_are_you_sure: Сигурни ли сте?
- text_tip_task_begin_day: задача започваща този ден
- text_tip_task_end_day: задача завършваща този ден
- text_tip_task_begin_end_day: задача започваща и завършваща този ден
+ text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
+ text_journal_changed: "%{label} променен от %{old} на %{new}"
+ text_journal_set_to: "%{label} установен на %{value}"
+ text_journal_deleted: "%{label} изтрит (%{old})"
+ text_journal_added: "Добавено %{label} %{value}"
+ text_tip_issue_begin_day: задача, започваща този ден
+ text_tip_issue_end_day: задача, завършваща този ден
+ text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
text_project_identifier_info: 'Позволени са малки букви (a-z), цифри и тирета. Невъзможна промяна след запис.'
text_caracters_maximum: "До %{count} символа."
+ text_caracters_minimum: "Минимум %{count} символа."
text_length_between: "От %{min} до %{max} символа."
text_tracker_no_workflow: Няма дефиниран работен процес за този тракер
text_unallowed_characters: Непозволени символи
text_comma_separated: Позволено е изброяване (с разделител запетая).
+ text_line_separated: Позволени са много стойности (по едно на ред).
text_issues_ref_in_commit_messages: Отбелязване и приключване на задачи от ревизии
text_issue_added: "Публикувана е нова задача с номер %{id} (от %{author})."
text_issue_updated: "Задача %{id} е обновена (от %{author})."
@@ -580,7 +879,36 @@
text_issue_category_destroy_question: "Има задачи (%{count}) обвързани с тази категория. Какво ще изберете?"
text_issue_category_destroy_assignments: Премахване на връзките с категорията
text_issue_category_reassign_to: Преобвързване с категория
-
+ text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
+ text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
+ text_load_default_configuration: Зареждане на примерна информация
+ text_status_changed_by_changeset: "Приложено с ревизия %{value}."
+ text_time_logged_by_changeset: Приложено в ревизия %{value}.
+ text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
+ text_select_project_modules: 'Изберете активните модули за този проект:'
+ text_default_administrator_account_changed: Сменен фабричния администраторски профил
+ text_file_repository_writable: Възможност за писане в хранилището с файлове
+ text_plugin_assets_writable: Папката на приставките е разрешена за запис
+ text_rmagick_available: Наличен RMagick (по избор)
+ text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
+ text_destroy_time_entries: Изтриване на отделеното време
+ text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
+ text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
+ text_user_wrote: "%{value} написа:"
+ text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
+ text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
+ text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/configuration.yml и рестартирайте Redmine, за да ги разрешите."
+ text_repository_usernames_mapping: "Изберете или променете потребителите в Redmine, съответстващи на потребителите в дневника на хранилището (repository).\nПотребителите с еднакви имена в Redmine и хранилищата се съвместяват автоматично."
+ text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
+ text_custom_field_possible_values_info: 'Една стойност на ред'
+ text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
+ text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
+ text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
+ text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
+ text_own_membership_delete_confirmation: "Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това да не можете да редактирате този проект.\nСигурен ли сте, че искате да продължите?"
+ text_zoom_in: Увеличаване
+ text_zoom_out: Намаляване
+
default_role_manager: Мениджър
default_role_developer: Разработчик
default_role_reporter: Публикуващ
@@ -602,333 +930,9 @@
default_priority_immediate: Веднага
default_activity_design: Дизайн
default_activity_development: Разработка
-
+
enumeration_issue_priorities: Приоритети на задачи
enumeration_doc_categories: Категории документи
enumeration_activities: Дейности (time tracking)
- label_file_plural: Файлове
- label_changeset_plural: Ревизии
- field_column_names: Колони
- label_default_columns: По подразбиране
- setting_issue_list_default_columns: Показвани колони по подразбиране
- setting_repositories_encodings: Кодови таблици
- notice_no_issue_selected: "Няма избрани задачи."
- label_bulk_edit_selected_issues: Редактиране на задачи
- label_no_change_option: (Без промяна)
- notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
- label_theme: Тема
- label_default: По подразбиране
- label_search_titles_only: Само в заглавията
- label_nobody: никой
- button_change_password: Промяна на парола
- text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
- label_user_mail_option_selected: "За всички събития само в избраните проекти..."
- label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
- label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
- setting_emails_footer: Подтекст за e-mail
- label_float: Дробно
- button_copy: Копиране
- mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
- mail_body_account_information: Информацията за профила ви
- setting_protocol: Протокол
- label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
- setting_time_format: Формат на часа
- label_registration_activation_by_email: активиране на профила по email
- mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
- mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
- label_registration_automatic_activation: автоматично активиране
- label_registration_manual_activation: ръчно активиране
- notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
- field_time_zone: Часова зона
- text_caracters_minimum: "Минимум %{count} символа."
- setting_bcc_recipients: Получатели на скрито копие (bcc)
- button_annotate: Анотация
- label_issues_by: "Задачи по %{value}"
- field_searchable: С възможност за търсене
- label_display_per_page: "На страница по: %{value}"
- setting_per_page_options: Опции за страниране
- label_age: Възраст
- notice_default_data_loaded: Примерната информацията е успешно заредена.
- text_load_default_configuration: Зареждане на примерна информация
- text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
- error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
- button_update: Обновяване
- label_change_properties: Промяна на настройки
- label_general: Основни
- label_repository_plural: Хранилища
- label_associated_revisions: Асоциирани ревизии
- setting_user_format: Потребителски формат
- text_status_changed_by_changeset: "Приложено с ревизия %{value}."
- label_more: Още
- text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
- label_scm: SCM (Система за контрол на кода)
- text_select_project_modules: 'Изберете активните модули за този проект:'
- label_issue_added: Добавена задача
- label_issue_updated: Обновена задача
- label_document_added: Добавен документ
- label_message_posted: Добавено съобщение
- label_file_added: Добавен файл
- label_news_added: Добавена новина
- project_module_boards: Форуми
- project_module_issue_tracking: Тракинг
- project_module_wiki: Wiki
- project_module_files: Файлове
- project_module_documents: Документи
- project_module_repository: Хранилище
- project_module_news: Новини
- project_module_time_tracking: Отделяне на време
- text_file_repository_writable: Възможност за писане в хранилището с файлове
- text_default_administrator_account_changed: Сменен фабричния администраторски профил
- text_rmagick_available: Наличен RMagick (по избор)
- button_configure: Конфигуриране
- label_plugins: Плъгини
- label_ldap_authentication: LDAP оторизация
- label_downloads_abbr: D/L
- label_this_month: текущия месец
- label_last_n_days: "последните %{count} дни"
- label_all_time: всички
- label_this_year: текущата година
- label_date_range: Период
- label_last_week: последната седмица
- label_yesterday: вчера
- label_last_month: последния месец
- label_add_another_file: Добавяне на друг файл
- label_optional_description: Незадължително описание
- text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
- error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
- text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
- text_destroy_time_entries: Изтриване на отделеното време
- text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
- setting_activity_days_default: Брой дни показвани на таб Дейност
- label_chronological_order: Хронологичен ред
- field_comments_sorting: Сортиране на коментарите
- label_reverse_chronological_order: Обратен хронологичен ред
- label_preferences: Предпочитания
- setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
- label_overall_activity: Цялостна дейност
- setting_default_projects_public: Новите проекти са публични по подразбиране
- error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
- label_planning: Планиране
- text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
- label_and_its_subprojects: "%{value} и неговите подпроекти"
- mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
- mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
- text_user_wrote: "%{value} написа:"
- label_duplicated_by: дублирана от
- setting_enabled_scm: Разрешена SCM
- text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
- text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
- label_incoming_emails: Входящи e-mail-и
- label_generate_key: Генериране на ключ
- setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
- setting_mail_handler_api_key: API ключ
- text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/email.yml и рестартирайте Redmine, за да ги разрешите."
- field_parent_title: Родителска страница
- label_issue_watchers: Наблюдатели
- setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
- button_quote: Цитат
- setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
- notice_unable_delete_version: Невъзможност за изтриване на версия
- label_renamed: преименувано
- label_copied: копирано
- setting_plain_text_mail: само чист текст (без HTML)
- permission_view_files: Разглеждане на файлове
- permission_edit_issues: Редактиране на задачи
- permission_edit_own_time_entries: Редактиране на собствените time logs
- permission_manage_public_queries: Управление на публичните заявки
- permission_add_issues: Добавяне на задачи
- permission_log_time: Log spent time
- permission_view_changesets: Разглеждане на changesets
- permission_view_time_entries: Разглеждане на изразходваното време
- permission_manage_versions: Управление на версиите
- permission_manage_wiki: Управление на wiki
- permission_manage_categories: Управление на категориите задачи
- permission_protect_wiki_pages: Заключване на wiki страници
- permission_comment_news: Коментиране на новини
- permission_delete_messages: Изтриване на съобщения
- permission_select_project_modules: Избор на проектни модули
- permission_manage_documents: Управление на документи
- permission_edit_wiki_pages: Редактиране на wiki страници
- permission_add_issue_watchers: Добавяне на наблюдатели
- permission_view_gantt: Разглеждане на мрежов график
- permission_move_issues: Преместване на задачи
- permission_manage_issue_relations: Управление на връзките между задачите
- permission_delete_wiki_pages: Изтриване на wiki страници
- permission_manage_boards: Управление на boards
- permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове
- permission_view_wiki_edits: Разглеждане на wiki история
- permission_add_messages: Публикуване на съобщения
- permission_view_messages: Разглеждане на съобщения
- permission_manage_files: Управление на файлове
- permission_edit_issue_notes: Редактиране на бележки
- permission_manage_news: Управление на новини
- permission_view_calendar: Разглеждане на календари
- permission_manage_members: Управление на членовете (на екип)
- permission_edit_messages: Редактиране на съобщения
- permission_delete_issues: Изтриване на задачи
- permission_view_issue_watchers: Разглеждане на списък с наблюдатели
- permission_manage_repository: Управление на хранилища
- permission_commit_access: Поверяване
- permission_browse_repository: Разглеждане на хранилища
- permission_view_documents: Разглеждане на документи
- permission_edit_project: Редактиране на проект
- permission_add_issue_notes: Добаване на бележки
- permission_save_queries: Запис на запитвания (queries)
- permission_view_wiki_pages: Разглеждане на wiki
- permission_rename_wiki_pages: Преименуване на wiki страници
- permission_edit_time_entries: Редактиране на time logs
- permission_edit_own_issue_notes: Редактиране на собствени бележки
- setting_gravatar_enabled: Използване на портребителски икони от Gravatar
- label_example: Пример
- text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
- permission_edit_own_messages: Редактиране на собствени съобщения
- permission_delete_own_messages: Изтриване на собствени съобщения
- label_user_activity: "Активност на %{value}"
- label_updated_time_by: "Обновена от %{author} преди %{age}"
- text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
- setting_diff_max_lines_displayed: Максимален брой показани diff редове
- text_plugin_assets_writable: Папката на приставките е разрешена за запис
- warning_attachments_not_saved: "%{count} файла не бяха записани."
- button_create_and_continue: Създаване и продължаване
- text_custom_field_possible_values_info: 'Една стойност на ред'
- label_display: Display
- field_editable: Editable
- setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
- setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
- field_watcher: Наблюдател
- setting_openid: Рарешаване на OpenID вход и регистрация
- field_identity_url: OpenID URL
- label_login_with_open_id_option: или вход чрез OpenID
- field_content: Съдържание
- label_descending: Намаляващ
- label_sort: Сортиране
- label_ascending: Нарастващ
- label_date_from_to: От %{start} до %{end}
- label_greater_or_equal: ">="
- label_less_or_equal: <=
- text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
- text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
- text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
- text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
- setting_password_min_length: Минимална дължина на парола
- field_group_by: Групиране на резултатите по
- mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
- label_wiki_content_added: Wiki страница беше добавена
- mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
- mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
- label_wiki_content_updated: Wiki страница беше обновена
- mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
- permission_add_project: Създаване на проект
- setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
- label_view_all_revisions: Разглеждане на всички ревизии
- label_tag: Версия
- label_branch: работен вариант
- error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
- error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
- text_journal_changed: "%{label} променен от %{old} на %{new}"
- text_journal_set_to: "%{label} установен на %{value}"
- text_journal_deleted: "%{label} изтрит (%{old})"
- label_group_plural: Групи
- label_group: Група
- label_group_new: Нова група
- label_time_entry_plural: Използвано време
- text_journal_added: "Добавено %{label} %{value}"
- field_active: Активен
enumeration_system_activity: Системна активност
- permission_delete_issue_watchers: Изтриване на наблюдатели
- version_status_closed: затворена
- version_status_locked: заключена
- version_status_open: отворена
- error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
- label_user_anonymous: Анонимен
- button_move_and_follow: Преместване и продължаване
- setting_default_projects_modules: Активирани модули по подразбиране за нов проект
- setting_gravatar_default: Подразбиращо се изображение от Gravatar
- field_sharing: Sharing
- label_version_sharing_hierarchy: С проектна йерархия
- label_version_sharing_system: С всички проекти
- label_version_sharing_descendants: С подпроекти
- label_version_sharing_tree: С дърво на проектите
- label_version_sharing_none: Не споделен
- error_can_not_archive_project: Този проект не може да бъде архивиран
- button_duplicate: Дублиране
- button_copy_and_follow: Копиране и продължаване
- label_copy_source: Източник
- setting_issue_done_ratio: Изчисление на процента на готови задачи с
- setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
- error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
- error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
- setting_issue_done_ratio_issue_field: Използване на поле '% Прогрес'
- label_copy_same_as_target: Също като целта
- label_copy_target: Цел
- notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
- error_workflow_copy_source: Моля изберете source тракер или роля
- label_update_issue_done_ratios: Обновяване на процента на завършените задачи
- setting_start_of_week: Първи ден на седмицата
- permission_view_issues: Разглеждане на задачите
- label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
- label_revision_id: Ревизия %{value}
- label_api_access_key: API ключ за достъп
- label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
- label_feeds_access_key: RSS access ключ
- notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
- setting_rest_api_enabled: Разрешаване на REST web сървис
- label_missing_api_access_key: Липсващ API ключ
- label_missing_feeds_access_key: Липсващ RSS ключ за достъп
- button_show: Показване
- text_line_separated: Позволени са много стойности (по едно на ред).
- setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
- permission_add_subprojects: Създаване на подпроекти
- label_subproject_new: Нов подпроект
- text_own_membership_delete_confirmation: |-
- Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това на да не можете да редатирате този проект.
- Сигурен ли сте, че искате да продължите?
- label_close_versions: Затваряне на завършените версии
- label_board_sticky: Sticky
- label_board_locked: Заключена
- permission_export_wiki_pages: Експорт на wiki страници
- setting_cache_formatted_text: Cache formatted text
- permission_manage_project_activities: Управление на дейностите на проекта
- error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
- label_profile: Профил
- permission_manage_subtasks: Управление на подзадачите
- field_parent_issue: Родителска задача
- label_subtask_plural: Подзадачи
- label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
- error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
- error_unable_to_connect: Невъзможност за свързване с (%{value})
- error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
- error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
- field_principal: Principal
- label_my_page_block: Блокове в личната страница
- notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
- text_zoom_out: Намаляване
- text_zoom_in: Увеличаване
- notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
- label_overall_spent_time: Общо употребено време
- field_time_entries: Log time
- notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
- text_tip_issue_end_day: задача, завършваща този ден
- field_text: Текстово поле
- label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
- field_member_of_group: Член на група
- project_module_gantt: Мрежов график
- text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
- text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
- setting_default_notification_option: Подразбиращ се начин за известяване
- project_module_calendar: Календар
- label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
- text_tip_issue_begin_day: задача, започваща този ден
- label_user_mail_option_only_assigned: Само за неща, назначени на мен
- button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
- field_assigned_to_role: Assignee's role
- field_start_date: Начална дата
- label_principal_search: "Търсене на потребител или група:"
- label_user_search: "Търсене на потребител:"
- field_visible: Видим
- setting_emails_header: Emails header
- setting_commit_logtime_activity_id: Дейност при отчитане на работното време
- text_time_logged_by_changeset: Приложено в ревизия %{value}.
- setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
- notice_gantt_chart_truncated: Мрежовият график е съкратен, понеже броят на обектите, които могат да бъдат показани е твърде голям (%{max})
- setting_gantt_items_limit: Максимален брой обекти, които да се показват в мрежов график
+
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/bs.yml.svn-base
--- a/config/locales/.svn/text-base/bs.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/bs.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -787,7 +787,7 @@
text_user_wrote: "%{value} je napisao/la:"
text_enumeration_destroy_question: "Za %{count} objekata je dodjeljenja ova vrijednost."
text_enumeration_category_reassign_to: 'Ponovo im dodjeli ovu vrijednost:'
- text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/email.yml i restartuj aplikaciju nakon toga."
+ text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/configuration.yml i restartuj aplikaciju nakon toga."
text_repository_usernames_mapping: "Odaberi ili ispravi redmine korisnika mapiranog za svako korisničko ima nađeno u logu repozitorija.\nKorisnici sa istim imenom u redmineu i u repozitoruju se automatski mapiraju."
text_diff_truncated: '... Ovaj prikaz razlike je odsječen pošto premašuje maksimalnu veličinu za prikaz'
text_custom_field_possible_values_info: 'Jedna linija za svaku vrijednost'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/ca.yml.svn-base
--- a/config/locales/.svn/text-base/ca.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/ca.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -880,7 +880,7 @@
text_user_wrote: "%{value} va escriure:"
text_enumeration_destroy_question: "%{count} objectes estan assignats a aquest valor."
text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:"
- text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo."
+ text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/configuration.yml i reinicieu l'aplicació per habilitar-lo."
text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament."
text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar."
text_custom_field_possible_values_info: "Una línia per a cada valor"
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/cs.yml.svn-base
--- a/config/locales/.svn/text-base/cs.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/cs.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -546,7 +546,7 @@
label_relation_delete: Odstranit souvislost
label_relates_to: související s
label_duplicates: duplicity
- label_blocks: bloků
+ label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: předchází
label_follows: následuje
@@ -729,7 +729,7 @@
label_generate_key: Generovat klíč
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
- text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
+ text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/configuration.yml a restartujte aplikaci."
field_parent_title: Rodičovská stránka
label_issue_watchers: Sledování
setting_commit_logs_encoding: Kódování zpráv při commitu
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/da.yml.svn-base
--- a/config/locales/.svn/text-base/da.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/da.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -753,7 +753,7 @@
setting_sequential_project_identifiers: Generér sekventielle projekt-identifikatorer
setting_plain_text_mail: Emails som almindelig tekst (ingen HTML)
field_parent_title: Siden over
- text_email_delivery_not_configured: "Email-afsendelse er ikke indstillet og notifikationer er defor slået fra.\nKonfigurér din SMTP server i config/email.yml og genstart applikationen for at aktivere email-afsendelse."
+ text_email_delivery_not_configured: "Email-afsendelse er ikke indstillet og notifikationer er defor slået fra.\nKonfigurér din SMTP server i config/configuration.yml og genstart applikationen for at aktivere email-afsendelse."
permission_protect_wiki_pages: Beskyt wiki sider
permission_manage_documents: Administrér dokumenter
permission_add_issue_watchers: Tilføj overvågere
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/de.yml.svn-base
--- a/config/locales/.svn/text-base/de.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/de.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -898,7 +898,7 @@
text_user_wrote: "%{value} schrieb:"
text_enumeration_destroy_question: "%{count} Objekt(e) sind diesem Wert zugeordnet."
text_enumeration_category_reassign_to: 'Die Objekte stattdessen diesem Wert zuordnen:'
- text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/email.yml vor und starten Sie die Applikation neu."
+ text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/configuration.yml vor und starten Sie die Applikation neu."
text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Log-Meldungen des Projektarchivs fest.\nBenutzer mit identischen Redmine- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet."
text_diff_truncated: '... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.'
text_custom_field_possible_values_info: 'Eine Zeile pro Wert'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/el.yml.svn-base
--- a/config/locales/.svn/text-base/el.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/el.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -798,7 +798,7 @@
text_user_wrote: "%{value} έγραψε:"
text_enumeration_destroy_question: "%{count} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
text_enumeration_category_reassign_to: 'Επανεκχώρηση τους στην παρούσα αξία:'
- text_email_delivery_not_configured: "Δεν έχουν γίνει ρυθμίσεις παράδοσης email, και οι ειδοποιήσεις είναι απενεργοποιημένες.\nΔηλώστε τον εξυπηρετητή SMTP στο config/email.yml και κάντε επανακκίνηση την εφαρμογή για να τις ρυθμίσεις."
+ text_email_delivery_not_configured: "Δεν έχουν γίνει ρυθμίσεις παράδοσης email, και οι ειδοποιήσεις είναι απενεργοποιημένες.\nΔηλώστε τον εξυπηρετητή SMTP στο config/configuration.yml και κάντε επανακκίνηση την εφαρμογή για να τις ρυθμίσεις."
text_repository_usernames_mapping: "Επιλέξτε ή ενημερώστε τον χρήστη Redmine που αντιστοιχεί σε κάθε όνομα χρήστη στο ιστορικό του αποθετηρίου.\nΧρήστες με το ίδιο όνομα χρήστη ή email στο Redmine και στο αποθετηρίο αντιστοιχίζονται αυτόματα."
text_diff_truncated: '... Αυτό το diff εχεί κοπεί επειδή υπερβαίνει το μέγιστο μέγεθος που μπορεί να προβληθεί.'
text_custom_field_possible_values_info: 'Μία γραμμή για κάθε τιμή'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/en-GB.yml.svn-base
--- a/config/locales/.svn/text-base/en-GB.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/en-GB.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -864,7 +864,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/en.yml.svn-base
--- a/config/locales/.svn/text-base/en.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/en.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -897,7 +897,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/es.yml.svn-base
--- a/config/locales/.svn/text-base/es.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/es.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -795,7 +795,7 @@
text_destroy_time_entries: Borrar las horas
text_destroy_time_entries_question: Existen %{hours} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
- text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios."
+ text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/configuration.yml y reinicie la aplicación para activar los cambios."
text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
text_enumeration_destroy_question: "%{count} objetos con este valor asignado."
text_file_repository_writable: Se puede escribir en el repositorio
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/eu.yml.svn-base
--- a/config/locales/.svn/text-base/eu.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/eu.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -859,7 +859,7 @@
text_user_wrote: "%{value}-(e)k idatzi zuen:"
text_enumeration_destroy_question: "%{count} objetu balio honetara esleituta daude."
text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
- text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
+ text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/configuration.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/fi.yml.svn-base
--- a/config/locales/.svn/text-base/fi.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/fi.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -750,7 +750,7 @@
label_generate_key: Luo avain
setting_mail_handler_api_enabled: Ota käyttöön WS saapuville sähköposteille
setting_mail_handler_api_key: API avain
- text_email_delivery_not_configured: "Sähköpostin jakelu ei ole määritelty ja sähköpostimuistutukset eivät ole käytössä.\nKonfiguroi sähköpostipalvelinasetukset (SMTP) config/email.yml tiedostosta ja uudelleenkäynnistä sovellus jotta asetukset astuvat voimaan."
+ text_email_delivery_not_configured: "Sähköpostin jakelu ei ole määritelty ja sähköpostimuistutukset eivät ole käytössä.\nKonfiguroi sähköpostipalvelinasetukset (SMTP) config/configuration.yml tiedostosta ja uudelleenkäynnistä sovellus jotta asetukset astuvat voimaan."
field_parent_title: Aloitussivu
label_issue_watchers: Tapahtuman seuraajat
button_quote: Vastaa
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/fr.yml.svn-base
--- a/config/locales/.svn/text-base/fr.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/fr.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -166,10 +166,10 @@
notice_successful_create: Création effectuée avec succès.
notice_successful_update: Mise à jour effectuée avec succès.
notice_successful_delete: Suppression effectuée avec succès.
- notice_successful_connection: Connection réussie.
+ notice_successful_connection: Connexion réussie.
notice_file_not_found: "La page à laquelle vous souhaitez accéder n'existe pas ou a été supprimée."
notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
- notice_not_authorized: "Vous n'êtes pas autorisés à accéder à cette page."
+ notice_not_authorized: "Vous n'êtes pas autorisé à accéder à cette page."
notice_not_authorized_archived_project: Le projet auquel vous tentez d'accéder a été archivé.
notice_email_sent: "Un email a été envoyé à %{value}"
notice_email_error: "Erreur lors de l'envoi de l'email (%{value})"
@@ -323,11 +323,11 @@
setting_text_formatting: Formatage du texte
setting_wiki_compression: Compression historique wiki
setting_feeds_limit: Limite du contenu des flux RSS
- setting_default_projects_public: Définir les nouveaux projects comme publics par défaut
+ setting_default_projects_public: Définir les nouveaux projets comme publics par défaut
setting_autofetch_changesets: Récupération auto. des commits
setting_sys_api_enabled: Activer les WS pour la gestion des dépôts
- setting_commit_ref_keywords: Mot-clés de référencement
- setting_commit_fix_keywords: Mot-clés de résolution
+ setting_commit_ref_keywords: Mots-clés de référencement
+ setting_commit_fix_keywords: Mots-clés de résolution
setting_autologin: Autologin
setting_date_format: Format de date
setting_time_format: Format d'heure
@@ -349,7 +349,7 @@
setting_gravatar_enabled: Afficher les Gravatar des utilisateurs
setting_diff_max_lines_displayed: Nombre maximum de lignes de diff affichées
setting_file_max_size_displayed: Taille maximum des fichiers texte affichés en ligne
- setting_repository_log_display_limit: "Nombre maximum de revisions affichées sur l'historique d'un fichier"
+ setting_repository_log_display_limit: "Nombre maximum de révisions affichées sur l'historique d'un fichier"
setting_openid: "Autoriser l'authentification et l'enregistrement OpenID"
setting_password_min_length: Longueur minimum des mots de passe
setting_new_project_user_role_id: Rôle donné à un utilisateur non-administrateur qui crée un projet
@@ -369,7 +369,7 @@
permission_add_subprojects: Créer des sous-projets
permission_edit_project: Modifier le projet
permission_select_project_modules: Choisir les modules
- permission_manage_members: Gérer les members
+ permission_manage_members: Gérer les membres
permission_manage_versions: Gérer les versions
permission_manage_categories: Gérer les catégories de demandes
permission_view_issues: Voir les demandes
@@ -859,7 +859,7 @@
text_issue_added: "La demande %{id} a été soumise par %{author}."
text_issue_updated: "La demande %{id} a été mise à jour par %{author}."
text_wiki_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce wiki et tout son contenu ?
- text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
+ text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégorie. Que voulez-vous faire ?"
text_issue_category_destroy_assignments: N'affecter les demandes à aucune autre catégorie
text_issue_category_reassign_to: Réaffecter les demandes à cette catégorie
text_user_mail_option: "Pour les projets non sélectionnés, vous recevrez seulement des notifications pour ce que vous surveillez ou à quoi vous participez (exemple: demandes dont vous êtes l'auteur ou la personne assignée)."
@@ -880,7 +880,7 @@
text_user_wrote: "%{value} a écrit :"
text_enumeration_destroy_question: "Cette valeur est affectée à %{count} objets."
text_enumeration_category_reassign_to: 'Réaffecter les objets à cette valeur:'
- text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/email.yml et redémarrez l'application pour les activer."
+ text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/configuration.yml et redémarrez l'application pour les activer."
text_repository_usernames_mapping: "Vous pouvez sélectionner ou modifier l'utilisateur Redmine associé à chaque nom d'utilisateur figurant dans l'historique du dépôt.\nLes utilisateurs avec le même identifiant ou la même adresse mail seront automatiquement associés."
text_diff_truncated: '... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.'
text_custom_field_possible_values_info: 'Une ligne par valeur'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/gl.yml.svn-base
--- a/config/locales/.svn/text-base/gl.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/gl.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -772,7 +772,7 @@
text_destroy_time_entries: Borrar as horas
text_destroy_time_entries_question: Existen %{hours} horas asignadas á petición que quere borrar. ¿Que quere facer ?
text_diff_truncated: '... Diferencia truncada por exceder o máximo tamaño visualizable.'
- text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/email.yml e reinicie a aplicación para activar os cambios."
+ text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/configuration.yml e reinicie a aplicación para activar os cambios."
text_enumeration_category_reassign_to: 'Reasignar ó seguinte valor:'
text_enumeration_destroy_question: "%{count} obxectos con este valor asignado."
text_file_repository_writable: Pódese escribir no repositorio
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/he.yml.svn-base
--- a/config/locales/.svn/text-base/he.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/he.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -889,7 +889,7 @@
text_user_wrote: "%{value} כתב:"
text_enumeration_destroy_question: "%{count} אוביקטים מוצבים לערך זה."
text_enumeration_category_reassign_to: 'הצב מחדש לערך הזה:'
- text_email_delivery_not_configured: 'לא נקבעה תצורה לשליחת דואר, וההתראות כבויות.\nקבע את תצורת שרת ה־SMTP בקובץ /etc/redmine/<instance>/email.yml והתחל את האפליקציה מחדש ע"מ לאפשר אותם.'
+ text_email_delivery_not_configured: 'לא נקבעה תצורה לשליחת דואר, וההתראות כבויות.\nקבע את תצורת שרת ה־SMTP בקובץ /etc/redmine/<instance>/configuration.yml והתחל את האפליקציה מחדש ע"מ לאפשר אותם.'
text_repository_usernames_mapping: "בחר או עדכן את משתמש Redmine הממופה לכל שם משתמש ביומן המאגר.\nמשתמשים בעלי שם או כתובת דואר זהה ב־Redmine ובמאגר ממופים באופן אוטומטי."
text_diff_truncated: '... השינויים עוברים את מספר השורות המירבי לתצוגה, ולכן הם קוצצו.'
text_custom_field_possible_values_info: שורה אחת לכל ערך
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/hr.yml.svn-base
--- a/config/locales/.svn/text-base/hr.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/hr.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -854,7 +854,7 @@
text_user_wrote: "%{value} je napisao/la:"
text_enumeration_destroy_question: "%{count} objekata je pridruženo toj vrijednosti."
text_enumeration_category_reassign_to: 'Premjesti ih ovoj vrijednosti:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... Ovaj diff je odrezan zato što prelazi maksimalnu veličinu koja može biti prikazana.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/hu.yml.svn-base
--- a/config/locales/.svn/text-base/hu.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/hu.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -748,7 +748,7 @@
label_generate_key: Kulcs generálása
setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez
setting_mail_handler_api_key: API kulcs
- text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/email.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen."
+ text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/configuration.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen."
field_parent_title: Szülő oldal
label_issue_watchers: Megfigyelők
setting_commit_logs_encoding: Commit üzenetek kódlapja
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/id.yml.svn-base
--- a/config/locales/.svn/text-base/id.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/id.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -833,7 +833,7 @@
text_user_wrote: "%{value} menulis:"
text_enumeration_destroy_question: "%{count} obyek ditugaskan untuk nilai ini."
text_enumeration_category_reassign_to: 'Tugaskan kembali untuk nilai ini:'
- text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/email.yml dan restart kembali aplikasi untuk mengaktifkan."
+ text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/configuration.yml dan restart kembali aplikasi untuk mengaktifkan."
text_repository_usernames_mapping: "Pilih atau perbarui pengguna Redmine yang terpetakan ke setiap nama pengguna yang ditemukan di log repositori.\nPengguna dengan nama pengguna dan repositori atau email yang sama secara otomasit akan dipetakan."
text_diff_truncated: '... Perbedaan terpotong karena melebihi batas maksimum yang bisa ditampilkan.'
text_custom_field_possible_values_info: 'Satu baris untuk setiap nilai'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/it.yml.svn-base
--- a/config/locales/.svn/text-base/it.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/it.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -730,7 +730,7 @@
label_generate_key: Genera una chiave
setting_mail_handler_api_enabled: Abilita WS per le email in arrivo
setting_mail_handler_api_key: Chiave API
- text_email_delivery_not_configured: "La consegna via email non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/email.yml e riavvia l'applicazione per abilitarle."
+ text_email_delivery_not_configured: "La consegna via email non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/configuration.yml e riavvia l'applicazione per abilitarle."
field_parent_title: Pagina principale
label_issue_watchers: Osservatori
setting_commit_logs_encoding: Codifica dei messaggi di commit
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/ja.yml.svn-base
--- a/config/locales/.svn/text-base/ja.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/ja.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -919,7 +919,7 @@
text_user_wrote: "%{value} は書きました:"
text_enumeration_destroy_question: "%{count}個のオブジェクトがこの値に割り当てられています。"
text_enumeration_category_reassign_to: '次の値に割り当て直す:'
- text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/email.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
+ text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/configuration.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
text_repository_usernames_mapping: "リポジトリのログから検出されたユーザー名をどのRedmineユーザーに関連づけるのか選択してください。\nログ上のユーザー名またはメールアドレスがRedmineのユーザーと一致する場合は自動的に関連づけられます。"
text_diff_truncated: '... 差分の行数が表示可能な上限を超えました。超過分は表示しません。'
text_custom_field_possible_values_info: '選択肢の値は1行に1個ずつ記述してください。'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/ko.yml.svn-base
--- a/config/locales/.svn/text-base/ko.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/ko.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -843,7 +843,7 @@
text_user_wrote: "%{value}의 덧글:"
text_enumeration_category_reassign_to: '새로운 값을 설정:'
text_enumeration_destroy_question: "%{count} 개의 일감이 이 값을 사용하고 있습니다."
- text_email_delivery_not_configured: "이메일 전달이 설정되지 않았습니다. 그래서 알림이 비활성화되었습니다.\n SMTP서버를 config/email.yml에서 설정하고 어플리케이션을 다시 시작하십시오. 그러면 동작합니다."
+ text_email_delivery_not_configured: "이메일 전달이 설정되지 않았습니다. 그래서 알림이 비활성화되었습니다.\n SMTP서버를 config/configuration.yml에서 설정하고 어플리케이션을 다시 시작하십시오. 그러면 동작합니다."
text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.'
text_custom_field_possible_values_info: '각 값 당 한 줄'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/lt.yml.svn-base
--- a/config/locales/.svn/text-base/lt.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/lt.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -885,7 +885,7 @@
text_user_wrote: "%{value} parašė:"
text_enumeration_destroy_question: "%{count} objektai priskirti šiai reikšmei."
text_enumeration_category_reassign_to: 'Priskirti juos šiai reikšmei:'
- text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/email.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
+ text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/configuration.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
text_repository_usernames_mapping: "Parinkite ar atnaujinkite Redmine vartotojo vardą kiekvienam saugyklos vardui, kuris paminėtas saugyklos log'e.\nVartotojai, turintys tą patį Redmine ir saugyklos vardą ar el.paštą automatiškai surišti."
text_diff_truncated: "... Šis diff'as nukarpytas, nes jis viršijo maksimalų rodomą eilučių skaičių."
text_custom_field_possible_values_info: 'Po vieną eilutę kiekvienai reikšmei'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/lv.yml.svn-base
--- a/config/locales/.svn/text-base/lv.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/lv.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -854,7 +854,7 @@
text_user_wrote: "%{value} rakstīja:"
text_enumeration_destroy_question: "%{count} objekti ir piešķirti šai vērtībai."
text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
- text_email_delivery_not_configured: "E-pastu nosūtīšana nav konfigurēta, un ziņojumi ir izslēgti.\nKonfigurējiet savu SMTP serveri datnē config/email.yml un pārstartējiet lietotni."
+ text_email_delivery_not_configured: "E-pastu nosūtīšana nav konfigurēta, un ziņojumi ir izslēgti.\nKonfigurējiet savu SMTP serveri datnē config/configuration.yml un pārstartējiet lietotni."
text_repository_usernames_mapping: "Izvēlieties vai atjaunojiet Redmine lietotāju, saistītu ar katru lietotājvārdu, kas atrodams repozitorija žurnālā.\nLietotāji ar to pašu Redmine un repozitorija lietotājvārdu būs saistīti automātiski."
text_diff_truncated: '... Šis diff tika nošķelts, jo tas pārsniedz maksimālo izmēru, ko var parādīt.'
text_custom_field_possible_values_info: 'Katra vērtības savā rindā'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/mk.yml.svn-base
--- a/config/locales/.svn/text-base/mk.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/mk.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -877,7 +877,7 @@
text_user_wrote: "%{value} напиша:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Доставата по е-пошта не е конфигурирана, и известувањата се оневозможени.\nКонфигурирајте го Вашиот SMTP сервер во config/email.yml и рестартирајте ја апликацијата."
+ text_email_delivery_not_configured: "Доставата по е-пошта не е конфигурирана, и известувањата се оневозможени.\nКонфигурирајте го Вашиот SMTP сервер во config/configuration.yml и рестартирајте ја апликацијата."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/mn.yml.svn-base
--- a/config/locales/.svn/text-base/mn.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/mn.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -859,7 +859,7 @@
text_user_wrote: "%{value} бичихдээ:"
text_enumeration_destroy_question: "Энэ утгад %{count} обьект оноогдсон байна."
text_enumeration_category_reassign_to: 'Тэдгээрийг энэ утгад дахин оноо:'
- text_email_delivery_not_configured: "Имэйлийн тохиргоог хараахан тохируулаагүй байна, тиймээс имэйл мэдэгдэл явуулах боломжгүй байна.\nSMTP сервэрээ config/email.yml файл дотор тохируулаад төслийн менежерээ дахиад эхлүүлээрэй."
+ text_email_delivery_not_configured: "Имэйлийн тохиргоог хараахан тохируулаагүй байна, тиймээс имэйл мэдэгдэл явуулах боломжгүй байна.\nSMTP сервэрээ config/configuration.yml файл дотор тохируулаад төслийн менежерээ дахиад эхлүүлээрэй."
text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх хэрэглэгчийн нэрүүдэд харгалзсан Төслийн Менежер системд бүртгэлтэй хэрэглэгчдийг Сонгох юмуу шинэчилнэ үү.\nТөслийн менежер болон репозиторид байгаа ижилхэн нэр юмуу имэйлтэй хэрэглэгчид харилцан харгалзна."
text_diff_truncated: '... Файлын ялгаврын хэмжээ үзүүлэхэд дэндүү урт байгаа учраас төгсгөлөөс нь хасч үзүүлэв.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/nl.yml.svn-base
--- a/config/locales/.svn/text-base/nl.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/nl.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -742,7 +742,7 @@
text_destroy_time_entries: Verwijder gerapporteerde uren
text_destroy_time_entries_question: "%{hours} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
text_diff_truncated: '... Deze diff werd afgekort omdat het de maximale weer te geven karakters overschreed.'
- text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/email.yml en herstart de applicatie om dit te activeren."
+ text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/configuration.yml en herstart de applicatie om dit te activeren."
text_enumeration_category_reassign_to: 'Wijs de volgende waarde toe:'
text_enumeration_destroy_question: "%{count} objecten zijn toegewezen aan deze waarde."
text_file_repository_writable: Bestandsrepository beschrijfbaar
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/no.yml.svn-base
--- a/config/locales/.svn/text-base/no.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/no.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -716,7 +716,7 @@
label_generate_key: Generer en nøkkel
setting_mail_handler_api_enabled: Skru på WS for innkommende e-post
setting_mail_handler_api_key: API-nøkkel
- text_email_delivery_not_configured: "Levering av e-post er ikke satt opp, og varsler er skrudd av.\nStill inn din SMTP-tjener i config/email.yml og start programmet på nytt for å skru det på."
+ text_email_delivery_not_configured: "Levering av e-post er ikke satt opp, og varsler er skrudd av.\nStill inn din SMTP-tjener i config/configuration.yml og start programmet på nytt for å skru det på."
field_parent_title: Foreldreside
label_issue_watchers: Overvåkere
setting_commit_logs_encoding: Tegnkoding for innsendingsmeldinger
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/pl.yml.svn-base
--- a/config/locales/.svn/text-base/pl.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/pl.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -771,7 +771,7 @@
text_default_administrator_account_changed: Zmieniono domyślne hasło administratora
text_destroy_time_entries: Usuń wpisy dziennika
text_destroy_time_entries_question: Przepracowano %{hours} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
- text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml a następnie zrestartuj aplikację i uaktywnij to."
+ text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/configuration.yml a następnie zrestartuj aplikację i uaktywnij to."
text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:'
text_enumeration_destroy_question: "%{count} obiektów jest przypisana do tej wartości."
text_file_repository_writable: Zapisywalne repozytorium plików
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/pt-BR.yml.svn-base
--- a/config/locales/.svn/text-base/pt-BR.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/pt-BR.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -728,7 +728,7 @@
text_user_wrote: "%{value} escreveu:"
text_enumeration_destroy_question: "%{count} objetos estão atribuídos a este valor."
text_enumeration_category_reassign_to: 'Reatribuí-los ao valor:'
- text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/email.yml e reinicie a aplicação para ativá-las."
+ text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/configuration.yml e reinicie a aplicação para ativá-las."
default_role_manager: Gerente
default_role_developer: Desenvolvedor
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/pt.yml.svn-base
--- a/config/locales/.svn/text-base/pt.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/pt.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -715,7 +715,7 @@
text_user_wrote: "%{value} escreveu:"
text_enumeration_destroy_question: "%{count} objectos estão atribuídos a este valor."
text_enumeration_category_reassign_to: 'Re-atribuí-los para este valor:'
- text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/email.yml e reinicie a aplicação para activar estas funcionalidades."
+ text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/configuration.yml e reinicie a aplicação para activar estas funcionalidades."
default_role_manager: Gestor
default_role_developer: Programador
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/ro.yml.svn-base
--- a/config/locales/.svn/text-base/ro.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/ro.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -774,7 +774,7 @@
text_user_wrote: "%{value} a scris:"
text_enumeration_destroy_question: "Această valoare are %{count} obiecte."
text_enumeration_category_reassign_to: 'Atribuie la această valoare:'
- text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/email.yml și reporniți aplicația pentru a le activa."
+ text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/configuration.yml și reporniți aplicația pentru a le activa."
text_repository_usernames_mapping: "Selectați sau modificați contul Redmine echivalent contului din istoricul depozitului.\nUtilizatorii cu un cont (sau e-mail) identic în Redmine și depozit sunt echivalate automat."
text_diff_truncated: '... Comparația a fost trunchiată pentru ca depășește lungimea maximă de text care poate fi afișat.'
text_custom_field_possible_values_info: 'O linie pentru fiecare valoare'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/ru.yml.svn-base
--- a/config/locales/.svn/text-base/ru.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/ru.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -913,7 +913,7 @@
text_destroy_time_entries_question: Вы собираетесь удалить %{hours} часа(ов), прикрепленных за этой задачей.
text_destroy_time_entries: Удалить зарегистрированное время
text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
- text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение."
+ text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/configuration.yml. Для применения изменений перезапустите приложение."
text_enumeration_category_reassign_to: 'Назначить им следующее значение:'
text_enumeration_destroy_question: "%{count} объект(а,ов) связаны с этим значением."
text_file_repository_writable: Хранилище с доступом на запись
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/sk.yml.svn-base
--- a/config/locales/.svn/text-base/sk.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/sk.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -723,7 +723,7 @@
label_generate_key: Vygenerovať kľúč
setting_mail_handler_api_enabled: Zapnúť Webovú Službu (WS) pre príchodzie emaily
setting_mail_handler_api_key: API kľúč
- text_email_delivery_not_configured: "Doručenie emailov nieje nastavené, notifikácie sú vypnuté.\nNastavte váš SMTP server v config/email.yml a reštartnite aplikáciu pre aktiváciu funkcie."
+ text_email_delivery_not_configured: "Doručenie emailov nieje nastavené, notifikácie sú vypnuté.\nNastavte váš SMTP server v config/configuration.yml a reštartnite aplikáciu pre aktiváciu funkcie."
field_parent_title: Nadradená stránka
label_issue_watchers: Pozorovatelia
setting_commit_logs_encoding: Kódovanie prenášaných správ
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/sl.yml.svn-base
--- a/config/locales/.svn/text-base/sl.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/sl.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -761,7 +761,7 @@
text_user_wrote: "%{value} je napisal(a):"
text_enumeration_destroy_question: "%{count} objektov je določenih tej vrednosti."
text_enumeration_category_reassign_to: 'Ponastavi jih na to vrednost:'
- text_email_delivery_not_configured: "E-poštna dostava ni nastavljena in oznanila so onemogočena.\nNastavite vaš SMTP strežnik v config/email.yml in ponovno zaženite aplikacijo da ga omogočite.\n"
+ text_email_delivery_not_configured: "E-poštna dostava ni nastavljena in oznanila so onemogočena.\nNastavite vaš SMTP strežnik v config/configuration.yml in ponovno zaženite aplikacijo da ga omogočite.\n"
text_repository_usernames_mapping: "Izberite ali posodobite Redmine uporabnika dodeljenega vsakemu uporabniškemu imenu najdenemu v zapisniku shrambe.\n Uporabniki z enakim Redmine ali shrambinem uporabniškem imenu ali e-poštnem naslovu so samodejno dodeljeni."
text_diff_truncated: '... Ta sprememba je bila odsekana ker presega največjo velikost ki je lahko prikazana.'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/sr-YU.yml.svn-base
--- a/config/locales/.svn/text-base/sr-YU.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/sr-YU.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -874,7 +874,7 @@
text_user_wrote: "%{value} je napisao:"
text_enumeration_destroy_question: "%{count} objekat(a) je dodeljeno ovoj vrednosti."
text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
- text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
+ text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/configuration.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisničkog imena pronađenog u evidenciji spremišta.\nKorisnici sa istim Redmine imenom i imenom spremišta ili e-adresom su automatski mapirani."
text_diff_truncated: '... Ova razlika je isečena jer je dostignuta maksimalna veličina prikaza.'
text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/sr.yml.svn-base
--- a/config/locales/.svn/text-base/sr.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/sr.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -874,7 +874,7 @@
text_user_wrote: "%{value} је написао:"
text_enumeration_destroy_question: "%{count} објекат(а) је додељено овој вредности."
text_enumeration_category_reassign_to: 'Додели их поново овој вредности:'
- text_email_delivery_not_configured: "Испорука е-порука није конфигурисана и обавештења су онемогућена.\nПодесите ваш SMTP сервер у config/email.yml и покрените поново апликацију за њихово омогућавање."
+ text_email_delivery_not_configured: "Испорука е-порука није конфигурисана и обавештења су онемогућена.\nПодесите ваш SMTP сервер у config/configuration.yml и покрените поново апликацију за њихово омогућавање."
text_repository_usernames_mapping: "Одаберите или ажурирајте Redmine кориснике мапирањем сваког корисничког имена пронађеног у евиденцији спремишта.\nКорисници са истим Redmine именом и именом спремишта или е-адресом су аутоматски мапирани."
text_diff_truncated: '... Ова разлика је исечена јер је достигнута максимална величина приказа.'
text_custom_field_possible_values_info: 'Један ред за сваку вредност'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/sv.yml.svn-base
--- a/config/locales/.svn/text-base/sv.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/sv.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -208,6 +208,7 @@
notice_unable_delete_version: Denna version var inte möjlig att ta bort.
notice_unable_delete_time_entry: Tidloggning kunde inte tas bort.
notice_issue_done_ratios_updated: % klart uppdaterade.
+ notice_gantt_chart_truncated: "Schemat förminskades eftersom det överskrider det maximala antalet aktiviteter som får visas (%{max})"
error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
@@ -217,7 +218,7 @@
error_no_tracker_in_project: 'Ingen ärendetyp är associerad med projektet. Vänligen kontrollera projektinställningarna.'
error_no_default_issue_status: 'Ingen status är definierad som standard för nya ärenden. Vänligen kontrollera din konfiguration (Gå till "Administration -> Ärendestatus").'
error_can_not_delete_custom_field: Kan inte ta bort användardefinerat fält
- error_can_not_delete_tracker: Det finns ärenden av denna typ och den är därför inte möjlig att ta bort.
+ error_can_not_delete_tracker: "Det finns ärenden av denna typ och den är därför inte möjlig att ta bort."
error_can_not_remove_role: "Denna roll används och den är därför inte möjlig att ta bort."
error_can_not_reopen_issue_on_closed_version: 'Ett ärende tilldelat en stängd version kan inte öppnas på nytt'
error_can_not_archive_project: Detta projekt kan inte arkiveras
@@ -225,7 +226,7 @@
error_workflow_copy_source: 'Vänligen välj källans ärendetyp eller roll'
error_workflow_copy_target: 'Vänligen välj ärendetyp(er) och roll(er) för mål'
error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
- error_unable_to_connect: Kan inte ansluta (%{value})
+ error_unable_to_connect: "Kan inte ansluta (%{value})"
warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
@@ -240,9 +241,9 @@
mail_subject_reminder: "%{count} ärende(n) har deadline under de kommande %{days} dagarna"
mail_body_reminder: "%{count} ärende(n) som är tilldelat dig har deadline under de %{days} dagarna:"
mail_subject_wiki_content_added: "'%{id}' wikisida has lagts till"
- mail_body_wiki_content_added: The '%{id}' wikisida has lagts till av %{author}.
+ mail_body_wiki_content_added: "The '%{id}' wikisida has lagts till av %{author}."
mail_subject_wiki_content_updated: "'%{id}' wikisida har uppdaterats"
- mail_body_wiki_content_updated: The '%{id}' wikisida har uppdaterats av %{author}.
+ mail_body_wiki_content_updated: "The '%{id}' wikisida har uppdaterats av %{author}."
gui_validation_error: 1 fel
gui_validation_error_plural: "%{count} fel"
@@ -340,8 +341,8 @@
field_group_by: Gruppera resultat efter
field_sharing: Delning
field_parent_issue: Förälderaktivitet
- field_member_of_group: Tilldelad användares grupp
- field_assigned_to_role: Tilldelad användares roll
+ field_member_of_group: "Tilldelad användares grupp"
+ field_assigned_to_role: "Tilldelad användares roll"
field_text: Textfält
field_visible: Synlig
@@ -380,7 +381,7 @@
setting_activity_days_default: Dagar som visas på projektaktivitet
setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt
setting_enabled_scm: Aktivera SCM
- setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
+ setting_mail_handler_body_delimiters: "Trunkera mail efter en av följande rader"
setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
setting_mail_handler_api_key: API-nyckel
setting_sequential_project_identifiers: Generera projektidentifierare sekventiellt
@@ -400,6 +401,9 @@
setting_rest_api_enabled: Aktivera REST webbtjänst
setting_cache_formatted_text: Cacha formaterad text
setting_default_notification_option: Standard notifieringsalternativ
+ setting_commit_logtime_enabled: Aktivera tidloggning
+ setting_commit_logtime_activity_id: Aktivitet för loggad tid
+ setting_gantt_items_limit: Maximalt antal aktiviteter som visas i gantt-schemat
permission_add_project: Skapa projekt
permission_add_subprojects: Skapa underprojekt
@@ -581,7 +585,7 @@
label_version_plural: Versioner
label_close_versions: Stäng klara versioner
label_confirmation: Bekräftelse
- label_export_to: Exportera till
+ label_export_to: 'Finns även som:'
label_read: Läs...
label_public_projects: Publika projekt
label_open_issues: öppen
@@ -666,7 +670,7 @@
label_tag: Tag
label_revision: Revision
label_revision_plural: Revisioner
- label_revision_id: Revision %{value}
+ label_revision_id: "Revision %{value}"
label_associated_revisions: Associerade revisioner
label_added: tillagd
label_modified: modifierad
@@ -775,10 +779,10 @@
label_search_titles_only: Sök endast i titlar
label_user_mail_option_all: "För alla händelser i mina projekt"
label_user_mail_option_selected: "För alla händelser i markerade projekt..."
- label_user_mail_option_none: Inga händelser
- label_user_mail_option_only_my_events: Endast för saker jag bevakar eller är inblandad i
- label_user_mail_option_only_assigned: Endast för saker jag är tilldelad
- label_user_mail_option_only_owner: Endast för saker jag äger
+ label_user_mail_option_none: "Inga händelser"
+ label_user_mail_option_only_my_events: "Endast för saker jag bevakar eller är inblandad i"
+ label_user_mail_option_only_assigned: "Endast för saker jag är tilldelad"
+ label_user_mail_option_only_owner: "Endast för saker jag äger"
label_user_mail_no_self_notified: "Jag vill inte bli underrättad om ändringar som jag har gjort"
label_registration_activation_by_email: kontoaktivering med mail
label_registration_manual_activation: manuell kontoaktivering
@@ -825,7 +829,7 @@
label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
label_api_access_key: API-nyckel
label_missing_api_access_key: Saknar en API-nyckel
- label_api_access_key_created_on: API-nyckel skapad för %{value} sedan
+ label_api_access_key_created_on: "API-nyckel skapad för %{value} sedan"
label_profile: Profil
label_subtask_plural: Underaktiviteter
label_project_copy_notifications: Skicka mailnotifieringar när projektet kopieras
@@ -921,6 +925,7 @@
text_no_configuration_data: "Roller, ärendetyper, ärendestatus och arbetsflöden har inte konfigurerats ännu.\nDet rekommenderas att läsa in standardkonfigurationen. Du kommer att kunna göra ändringar efter att den blivit inläst."
text_load_default_configuration: Läs in standardkonfiguration
text_status_changed_by_changeset: "Tilldelad i changeset %{value}."
+ text_time_logged_by_changeset: "Tilldelad i changeset %{value}."
text_issues_destroy_confirmation: 'Är du säker på att du vill radera markerade ärende(n) ?'
text_select_project_modules: 'Välj vilka moduler som ska vara aktiva för projektet:'
text_default_administrator_account_changed: Standardadministratörens konto ändrat
@@ -934,14 +939,14 @@
text_user_wrote: "%{value} skrev:"
text_enumeration_destroy_question: "%{count} objekt är tilldelade till detta värde."
text_enumeration_category_reassign_to: 'Återtilldela till detta värde:'
- text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/email.yml och starta om applikationen för att aktivera dem."
+ text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/configuration.yml och starta om applikationen för att aktivera dem."
text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller mailadress i både Redmine och versionsarkivet mappas automatiskt."
text_diff_truncated: '... Denna diff har förminskats eftersom den överskrider den maximala storlek som kan visas.'
text_custom_field_possible_values_info: 'Ett värde per rad'
- text_wiki_page_destroy_question: Denna sida har %{descendants} underliggande sidor. Vad vill du göra?
- text_wiki_page_nullify_children: Behåll undersidor som rotsidor
- text_wiki_page_destroy_children: Ta bort alla underliggande sidor
- text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
+ text_wiki_page_destroy_question: "Denna sida har %{descendants} underliggande sidor. Vad vill du göra?"
+ text_wiki_page_nullify_children: "Behåll undersidor som rotsidor"
+ text_wiki_page_destroy_children: "Ta bort alla underliggande sidor"
+ text_wiki_page_reassign_children: "Flytta undersidor till denna föräldersida"
text_own_membership_delete_confirmation: "Några av, eller alla, dina behörigheter kommer att tas bort och du kanske inte längre kommer kunna göra ändringar i det här projektet.\nVill du verkligen fortsätta?"
text_zoom_out: Zooma ut
text_zoom_in: Zooma in
@@ -972,8 +977,3 @@
enumeration_doc_categories: Dokumentkategorier
enumeration_activities: Aktiviteter (tidsuppföljning)
enumeration_system_activity: Systemaktivitet
- setting_commit_logtime_activity_id: Activity for logged time
- text_time_logged_by_changeset: Applied in changeset %{value}.
- setting_commit_logtime_enabled: Enable time logging
- notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
- setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/th.yml.svn-base
--- a/config/locales/.svn/text-base/th.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/th.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -726,7 +726,7 @@
label_generate_key: Generate a key
setting_mail_handler_api_enabled: Enable WS for incoming emails
setting_mail_handler_api_key: API key
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
field_parent_title: Parent page
label_issue_watchers: Watchers
setting_commit_logs_encoding: Commit messages encoding
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/tr.yml.svn-base
--- a/config/locales/.svn/text-base/tr.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/tr.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -741,7 +741,7 @@
label_generate_key: Generate a key
setting_sequential_project_identifiers: Generate sequential project identifiers
field_parent_title: Parent page
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
label_issue_watchers: Watchers
mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/uk.yml.svn-base
--- a/config/locales/.svn/text-base/uk.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/uk.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -725,7 +725,7 @@
label_generate_key: Generate a key
setting_mail_handler_api_enabled: Enable WS for incoming emails
setting_mail_handler_api_key: API key
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
field_parent_title: Parent page
label_issue_watchers: Watchers
setting_commit_logs_encoding: Commit messages encoding
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/vi.yml.svn-base
--- a/config/locales/.svn/text-base/vi.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/vi.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -760,7 +760,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
default_role_manager: Điều hành
default_role_developer: Phát triển
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/zh-TW.yml.svn-base
--- a/config/locales/.svn/text-base/zh-TW.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/zh-TW.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -979,7 +979,7 @@
text_user_wrote: "%{value} 先前提到:"
text_enumeration_destroy_question: "目前有 %{count} 個物件使用此列舉值。"
text_enumeration_category_reassign_to: '重新設定其列舉值為:'
- text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
+ text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/configuration.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。"
text_diff_truncated: '... 這份差異已被截短以符合顯示行數之最大值'
text_custom_field_possible_values_info: '一列輸入一個值'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/.svn/text-base/zh.yml.svn-base
--- a/config/locales/.svn/text-base/zh.yml.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/.svn/text-base/zh.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -869,7 +869,7 @@
text_user_wrote: "%{value} 写到:"
text_enumeration_category_reassign_to: '将它们关联到新的枚举值:'
text_enumeration_destroy_question: "%{count} 个对象被关联到了这个枚举值。"
- text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
+ text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/configuration.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。"
text_diff_truncated: '... 差别内容超过了可显示的最大行数并已被截断'
text_custom_field_possible_values_info: '每项数值一行'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/bg.yml
--- a/config/locales/bg.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/bg.yml Tue Feb 08 13:51:46 2011 +0000
@@ -1,11 +1,12 @@
bg:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
# Use the strftime parameters for formats.
# When no format has been given, it uses default.
# You can provide other formats here if you like!
- default: "%Y-%m-%d"
+ default: "%d-%m-%Y"
short: "%b %d"
long: "%B %d, %Y"
@@ -65,12 +66,13 @@
other: "почти %{count} години"
number:
+ # Default format for numbers
format:
separator: "."
delimiter: ""
precision: 3
- human:
- format:
+ human:
+ format:
precision: 1
delimiter: ""
storage_units:
@@ -83,7 +85,8 @@
mb: "MB"
gb: "GB"
tb: "TB"
-
+
+
# Used in array.to_sentence.
support:
array:
@@ -94,8 +97,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "1 грешка попречи този %{model} да бъде записан"
+ other: "%{count} грешки попречиха този %{model} да бъде записан"
messages:
inclusion: "не съществува в списъка"
exclusion: "е запазено"
@@ -120,6 +123,7 @@
greater_than_start_date: "трябва да е след началната дата"
not_same_project: "не е от същия проект"
circular_dependency: "Тази релация ще доведе до безкрайна зависимост"
+ cant_link_an_issue_with_a_descendant: "Една задача не може да бъде свързвана към своя подзадача"
actionview_instancetag_blank_option: Изберете
@@ -150,24 +154,61 @@
notice_file_not_found: Несъществуваща или преместена страница.
notice_locking_conflict: Друг потребител променя тези данни в момента.
notice_not_authorized: Нямате право на достъп до тази страница.
+ notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
notice_email_sent: "Изпратен e-mail на %{value}"
notice_email_error: "Грешка при изпращане на e-mail (%{value})"
notice_feeds_access_key_reseted: Вашия ключ за RSS достъп беше променен.
+ notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
+ notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
+ notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
+ notice_no_issue_selected: "Няма избрани задачи."
+ notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
+ notice_default_data_loaded: Примерната информация е заредена успешно.
+ notice_unable_delete_version: Невъзможност за изтриване на версия
+ notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
+ notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
+ notice_gantt_chart_truncated: Мрежовият график е съкратен, понеже броят на обектите, които могат да бъдат показани е твърде голям (%{max})
+ error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
error_scm_not_found: Несъществуващ обект в хранилището.
error_scm_command_failed: "Грешка при опит за комуникация с хранилище: %{value}"
+ error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
+ error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
+ error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
+ error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
+ error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
+ error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
+ error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
+ error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
+ error_can_not_archive_project: Този проект не може да бъде архивиран
+ error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
+ error_workflow_copy_source: Моля изберете source тракер или роля
+ error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
+ error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
+ error_unable_to_connect: Невъзможност за свързване с (%{value})
+ warning_attachments_not_saved: "%{count} файла не бяха записани."
mail_subject_lost_password: "Вашата парола (%{value})"
mail_body_lost_password: 'За да смените паролата си, използвайте следния линк:'
mail_subject_register: "Активация на профил (%{value})"
mail_body_register: 'За да активирате профила си използвайте следния линк:'
+ mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
+ mail_body_account_information: Информацията за профила ви
+ mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
+ mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
+ mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
+ mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
+ mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
+ mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
+ mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
+ mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
gui_validation_error: 1 грешка
gui_validation_error_plural: "%{count} грешки"
field_name: Име
field_description: Описание
- field_summary: Групиран изглед
+ field_summary: Анотация
field_is_required: Задължително
field_firstname: Име
field_lastname: Фамилия
@@ -200,6 +241,7 @@
field_priority: Приоритет
field_fixed_version: Планувана версия
field_user: Потребител
+ field_principal: Principal
field_role: Роля
field_homepage: Начална страница
field_is_public: Публичен
@@ -225,6 +267,7 @@
field_attr_lastname: Атрибут Фамилия (Lastname)
field_attr_mail: Атрибут Email
field_onthefly: Динамично създаване на потребител
+ field_start_date: Начална дата
field_done_ratio: % Прогрес
field_auth_source: Начин на оторизация
field_hide_mail: Скрий e-mail адреса ми
@@ -242,7 +285,24 @@
field_assignable: Възможно е възлагане на задачи за тази роля
field_redirect_existing_links: Пренасочване на съществуващи линкове
field_estimated_hours: Изчислено време
+ field_column_names: Колони
+ field_time_entries: Log time
+ field_time_zone: Часова зона
+ field_searchable: С възможност за търсене
field_default_value: Стойност по подразбиране
+ field_comments_sorting: Сортиране на коментарите
+ field_parent_title: Родителска страница
+ field_editable: Editable
+ field_watcher: Наблюдател
+ field_identity_url: OpenID URL
+ field_content: Съдържание
+ field_group_by: Групиране на резултатите по
+ field_sharing: Sharing
+ field_parent_issue: Родителска задача
+ field_member_of_group: Член на група
+ field_assigned_to_role: Assignee's role
+ field_text: Текстово поле
+ field_visible: Видим
setting_app_title: Заглавие
setting_app_subtitle: Описание
@@ -253,26 +313,132 @@
setting_attachment_max_size: Максимална големина на прикачен файл
setting_issues_export_limit: Максимален брой задачи за експорт
setting_mail_from: E-mail адрес за емисии
+ setting_bcc_recipients: Получатели на скрито копие (bcc)
+ setting_plain_text_mail: само чист текст (без HTML)
setting_host_name: Хост
setting_text_formatting: Форматиране на текста
setting_wiki_compression: Wiki компресиране на историята
setting_feeds_limit: Максимален брой за емисии
+ setting_default_projects_public: Новите проекти са публични по подразбиране
setting_autofetch_changesets: Автоматично обработване на ревизиите
setting_sys_api_enabled: Разрешаване на WS за управление
setting_commit_ref_keywords: Отбелязващи ключови думи
setting_commit_fix_keywords: Приключващи ключови думи
setting_autologin: Автоматичен вход
setting_date_format: Формат на датата
+ setting_time_format: Формат на часа
setting_cross_project_issue_relations: Релации на задачи между проекти
+ setting_issue_list_default_columns: Показвани колони по подразбиране
+ setting_repositories_encodings: Кодови таблици
+ setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
+ setting_emails_header: Emails header
+ setting_emails_footer: Подтекст за e-mail
+ setting_protocol: Протокол
+ setting_per_page_options: Опции за страниране
+ setting_user_format: Потребителски формат
+ setting_activity_days_default: Брой дни показвани на таб Дейност
+ setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
+ setting_enabled_scm: Разрешена SCM
+ setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
+ setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
+ setting_mail_handler_api_key: API ключ
+ setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
+ setting_gravatar_enabled: Използване на портребителски икони от Gravatar
+ setting_gravatar_default: Подразбиращо се изображение от Gravatar
+ setting_diff_max_lines_displayed: Максимален брой показани diff редове
+ setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
+ setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
+ setting_openid: Рарешаване на OpenID вход и регистрация
+ setting_password_min_length: Минимална дължина на парола
+ setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
+ setting_default_projects_modules: Активирани модули по подразбиране за нов проект
+ setting_issue_done_ratio: Изчисление на процента на готови задачи с
+ setting_issue_done_ratio_issue_field: Използване на поле '% Прогрес'
+ setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
+ setting_start_of_week: Първи ден на седмицата
+ setting_rest_api_enabled: Разрешаване на REST web сървис
+ setting_cache_formatted_text: Cache formatted text
+ setting_default_notification_option: Подразбиращ се начин за известяване
+ setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
+ setting_commit_logtime_activity_id: Дейност при отчитане на работното време
+ setting_gantt_items_limit: Максимален брой обекти, които да се показват в мрежов график
+ permission_add_project: Създаване на проект
+ permission_add_subprojects: Създаване на подпроекти
+ permission_edit_project: Редактиране на проект
+ permission_select_project_modules: Избор на проектни модули
+ permission_manage_members: Управление на членовете (на екип)
+ permission_manage_project_activities: Управление на дейностите на проекта
+ permission_manage_versions: Управление на версиите
+ permission_manage_categories: Управление на категориите
+ permission_view_issues: Разглеждане на задачите
+ permission_add_issues: Добавяне на задачи
+ permission_edit_issues: Редактиране на задачи
+ permission_manage_issue_relations: Управление на връзките между задачите
+ permission_add_issue_notes: Добаване на бележки
+ permission_edit_issue_notes: Редактиране на бележки
+ permission_edit_own_issue_notes: Редактиране на собствени бележки
+ permission_move_issues: Преместване на задачи
+ permission_delete_issues: Изтриване на задачи
+ permission_manage_public_queries: Управление на публичните заявки
+ permission_save_queries: Запис на запитвания (queries)
+ permission_view_gantt: Разглеждане на мрежов график
+ permission_view_calendar: Разглеждане на календари
+ permission_view_issue_watchers: Разглеждане на списък с наблюдатели
+ permission_add_issue_watchers: Добавяне на наблюдатели
+ permission_delete_issue_watchers: Изтриване на наблюдатели
+ permission_log_time: Log spent time
+ permission_view_time_entries: Разглеждане на изразходваното време
+ permission_edit_time_entries: Редактиране на time logs
+ permission_edit_own_time_entries: Редактиране на собствените time logs
+ permission_manage_news: Управление на новини
+ permission_comment_news: Коментиране на новини
+ permission_manage_documents: Управление на документи
+ permission_view_documents: Разглеждане на документи
+ permission_manage_files: Управление на файлове
+ permission_view_files: Разглеждане на файлове
+ permission_manage_wiki: Управление на wiki
+ permission_rename_wiki_pages: Преименуване на wiki страници
+ permission_delete_wiki_pages: Изтриване на wiki страници
+ permission_view_wiki_pages: Разглеждане на wiki
+ permission_view_wiki_edits: Разглеждане на wiki история
+ permission_edit_wiki_pages: Редактиране на wiki страници
+ permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове към wiki страници
+ permission_protect_wiki_pages: Заключване на wiki страници
+ permission_manage_repository: Управление на хранилища
+ permission_browse_repository: Разглеждане на хранилища
+ permission_view_changesets: Разглеждане на changesets
+ permission_commit_access: Поверяване
+ permission_manage_boards: Управление на boards
+ permission_view_messages: Разглеждане на съобщения
+ permission_add_messages: Публикуване на съобщения
+ permission_edit_messages: Редактиране на съобщения
+ permission_edit_own_messages: Редактиране на собствени съобщения
+ permission_delete_messages: Изтриване на съобщения
+ permission_delete_own_messages: Изтриване на собствени съобщения
+ permission_export_wiki_pages: Експорт на wiki страници
+ permission_manage_subtasks: Управление на подзадачите
+
+ project_module_issue_tracking: Тракинг
+ project_module_time_tracking: Отделяне на време
+ project_module_news: Новини
+ project_module_documents: Документи
+ project_module_files: Файлове
+ project_module_wiki: Wiki
+ project_module_repository: Хранилище
+ project_module_boards: Форуми
+ project_module_calendar: Календар
+ project_module_gantt: Мрежов график
+
label_user: Потребител
label_user_plural: Потребители
label_user_new: Нов потребител
+ label_user_anonymous: Анонимен
label_project: Проект
label_project_new: Нов проект
label_project_plural: Проекти
label_x_projects:
- zero: 0 проекти
+ zero: 0 проекта
one: 1 проект
other: "%{count} проекта"
label_project_all: Всички проекти
@@ -281,9 +447,13 @@
label_issue_new: Нова задача
label_issue_plural: Задачи
label_issue_view_all: Всички задачи
+ label_issues_by: "Задачи по %{value}"
+ label_issue_added: Добавена задача
+ label_issue_updated: Обновена задача
label_document: Документ
label_document_new: Нов документ
label_document_plural: Документи
+ label_document_added: Добавен документ
label_role: Роля
label_role_plural: Роли
label_role_new: Нова роля
@@ -310,11 +480,13 @@
label_information_plural: Информация
label_please_login: Вход
label_register: Регистрация
+ label_login_with_open_id_option: или вход чрез OpenID
label_password_lost: Забравена парола
label_home: Начало
label_my_page: Лична страница
label_my_account: Профил
label_my_projects: Проекти, в които участвам
+ label_my_page_block: Блокове в личната страница
label_administration: Администрация
label_login: Вход
label_logout: Изход
@@ -324,6 +496,8 @@
label_last_login: Последно свързване
label_registered_on: Регистрация
label_activity: Дейност
+ label_overall_activity: Цялостна дейност
+ label_user_activity: "Активност на %{value}"
label_new: Нов
label_logged_as: Здравейте,
label_environment: Среда
@@ -332,10 +506,13 @@
label_auth_source_new: Нов начин на оторизация
label_auth_source_plural: Начини на оторизация
label_subproject_plural: Подпроекти
+ label_subproject_new: Нов подпроект
+ label_and_its_subprojects: "%{value} и неговите подпроекти"
label_min_max_length: Минимална - максимална дължина
label_list: Списък
label_date: Дата
label_integer: Целочислен
+ label_float: Дробно
label_boolean: Чекбокс
label_string: Текст
label_text: Дълъг текст
@@ -350,6 +527,7 @@
label_attachment_new: Нов файл
label_attachment_delete: Изтриване
label_attachment_plural: Файлове
+ label_file_added: Добавен файл
label_report: Справка
label_report_plural: Справки
label_news: Новини
@@ -357,11 +535,13 @@
label_news_plural: Новини
label_news_latest: Последни новини
label_news_view_all: Виж всички
+ label_news_added: Добавена новина
label_settings: Настройки
label_overview: Общ изглед
label_version: Версия
label_version_new: Нова версия
label_version_plural: Версии
+ label_close_versions: Затваряне на завършените версии
label_confirmation: Одобрение
label_export_to: Експорт към
label_read: Read...
@@ -388,6 +568,7 @@
label_new_statuses_allowed: Позволени състояния
label_all: всички
label_none: никакви
+ label_nobody: никой
label_next: Следващ
label_previous: Предишен
label_used_by: Използва се от
@@ -419,9 +600,19 @@
label_not_equals: не е
label_in_less_than: след по-малко от
label_in_more_than: след повече от
+ label_greater_or_equal: ">="
+ label_less_or_equal: <=
label_in: в следващите
label_today: днес
+ label_all_time: всички
+ label_yesterday: вчера
label_this_week: тази седмица
+ label_last_week: последната седмица
+ label_last_n_days: "последните %{count} дни"
+ label_this_month: текущия месец
+ label_last_month: последния месец
+ label_this_year: текущата година
+ label_date_range: Период
label_less_than_ago: преди по-малко от
label_more_than_ago: преди повече от
label_ago: преди
@@ -429,17 +620,25 @@
label_not_contains: не съдържа
label_day_plural: дни
label_repository: Хранилище
+ label_repository_plural: Хранилища
label_browse: Разглеждане
label_modification: "%{count} промяна"
label_modification_plural: "%{count} промени"
+ label_branch: работен вариант
+ label_tag: Версия
label_revision: Ревизия
label_revision_plural: Ревизии
+ label_revision_id: Ревизия %{value}
+ label_associated_revisions: Асоциирани ревизии
label_added: добавено
label_modified: променено
+ label_copied: копирано
+ label_renamed: преименувано
label_deleted: изтрито
label_latest_revision: Последна ревизия
label_latest_revision_plural: Последни ревизии
label_view_revisions: Виж ревизиите
+ label_view_all_revisions: Разглеждане на всички ревизии
label_max_size: Максимална големина
label_sort_highest: Премести най-горе
label_sort_higher: Премести по-горе
@@ -465,6 +664,7 @@
label_changes_details: Подробни промени
label_issue_tracking: Тракинг
label_spent_time: Отделено време
+ label_overall_spent_time: Общо употребено време
label_f_hour: "%{value} час"
label_f_hour_plural: "%{value} часа"
label_time_tracking: Отделяне на време
@@ -486,6 +686,7 @@
label_relation_delete: Изтриване на релация
label_relates_to: свързана със
label_duplicates: дублира
+ label_duplicated_by: дублирана от
label_blocks: блокира
label_blocked_by: блокирана от
label_precedes: предшества
@@ -501,10 +702,13 @@
label_board: Форум
label_board_new: Нов форум
label_board_plural: Форуми
+ label_board_locked: Заключена
+ label_board_sticky: Sticky
label_topic_plural: Теми
label_message_plural: Съобщения
label_message_last: Последно съобщение
label_message_new: Нова тема
+ label_message_posted: Добавено съобщение
label_reply_plural: Отговори
label_send_information: Изпращане на информацията до потребителя
label_year: Година
@@ -515,12 +719,81 @@
label_language_based: В зависимост от езика
label_sort_by: "Сортиране по %{value}"
label_send_test_email: Изпращане на тестов e-mail
+ label_feeds_access_key: RSS access ключ
+ label_missing_feeds_access_key: Липсващ RSS ключ за достъп
label_feeds_access_key_created_on: "%{value} от създаването на RSS ключа"
label_module_plural: Модули
label_added_time_by: "Публикувана от %{author} преди %{age}"
+ label_updated_time_by: "Обновена от %{author} преди %{age}"
label_updated_time: "Обновена преди %{value}"
label_jump_to_a_project: Проект...
-
+ label_file_plural: Файлове
+ label_changeset_plural: Ревизии
+ label_default_columns: По подразбиране
+ label_no_change_option: (Без промяна)
+ label_bulk_edit_selected_issues: Редактиране на задачи
+ label_theme: Тема
+ label_default: По подразбиране
+ label_search_titles_only: Само в заглавията
+ label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
+ label_user_mail_option_selected: "За всички събития само в избраните проекти..."
+ label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
+ label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
+ label_user_mail_option_only_assigned: Само за неща, назначени на мен
+ label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
+ label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
+ label_registration_activation_by_email: активиране на профила по email
+ label_registration_manual_activation: ръчно активиране
+ label_registration_automatic_activation: автоматично активиране
+ label_display_per_page: "На страница по: %{value}"
+ label_age: Възраст
+ label_change_properties: Промяна на настройки
+ label_general: Основни
+ label_more: Още
+ label_scm: SCM (Система за контрол на версиите)
+ label_plugins: Плъгини
+ label_ldap_authentication: LDAP оторизация
+ label_downloads_abbr: D/L
+ label_optional_description: Незадължително описание
+ label_add_another_file: Добавяне на друг файл
+ label_preferences: Предпочитания
+ label_chronological_order: Хронологичен ред
+ label_reverse_chronological_order: Обратен хронологичен ред
+ label_planning: Планиране
+ label_incoming_emails: Входящи e-mail-и
+ label_generate_key: Генериране на ключ
+ label_issue_watchers: Наблюдатели
+ label_example: Пример
+ label_display: Display
+ label_sort: Сортиране
+ label_ascending: Нарастващ
+ label_descending: Намаляващ
+ label_date_from_to: От %{start} до %{end}
+ label_wiki_content_added: Wiki страница беше добавена
+ label_wiki_content_updated: Wiki страница беше обновена
+ label_group: Група
+ label_group_plural: Групи
+ label_group_new: Нова група
+ label_time_entry_plural: Използвано време
+ label_version_sharing_none: Не споделен
+ label_version_sharing_descendants: С подпроекти
+ label_version_sharing_hierarchy: С проектна йерархия
+ label_version_sharing_tree: С дърво на проектите
+ label_version_sharing_system: С всички проекти
+ label_update_issue_done_ratios: Обновяване на процента на завършените задачи
+ label_copy_source: Източник
+ label_copy_target: Цел
+ label_copy_same_as_target: Също като целта
+ label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
+ label_api_access_key: API ключ за достъп
+ label_missing_api_access_key: Липсващ API ключ
+ label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
+ label_profile: Профил
+ label_subtask_plural: Подзадачи
+ label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
+ label_principal_search: "Търсене на потребител или група:"
+ label_user_search: "Търсене на потребител:"
+
button_login: Вход
button_submit: Прикачване
button_save: Запис
@@ -528,8 +801,10 @@
button_uncheck_all: Изчистване на всички
button_delete: Изтриване
button_create: Създаване
+ button_create_and_continue: Създаване и продължаване
button_test: Тест
button_edit: Редакция
+ button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
button_add: Добавяне
button_change: Промяна
button_apply: Приложи
@@ -540,6 +815,7 @@
button_list: Списък
button_view: Преглед
button_move: Преместване
+ button_move_and_follow: Преместване и продължаване
button_back: Назад
button_cancel: Отказ
button_activate: Активация
@@ -553,26 +829,49 @@
button_unarchive: Разархивиране
button_reset: Генериране наново
button_rename: Преименуване
+ button_change_password: Промяна на парола
+ button_copy: Копиране
+ button_copy_and_follow: Копиране и продължаване
+ button_annotate: Анотация
+ button_update: Обновяване
+ button_configure: Конфигуриране
+ button_quote: Цитат
+ button_duplicate: Дублиране
+ button_show: Показване
status_active: активен
status_registered: регистриран
status_locked: заключен
+ version_status_open: отворена
+ version_status_locked: заключена
+ version_status_closed: затворена
+
+ field_active: Активен
+
text_select_mail_notifications: Изберете събития за изпращане на e-mail.
text_regexp_info: пр. ^[A-Z0-9]+$
text_min_max_length_info: 0 - без ограничения
text_project_destroy_confirmation: Сигурни ли сте, че искате да изтриете проекта и данните в него?
+ text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
text_workflow_edit: Изберете роля и тракер за да редактирате работния процес
text_are_you_sure: Сигурни ли сте?
- text_tip_task_begin_day: задача започваща този ден
- text_tip_task_end_day: задача завършваща този ден
- text_tip_task_begin_end_day: задача започваща и завършваща този ден
+ text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
+ text_journal_changed: "%{label} променен от %{old} на %{new}"
+ text_journal_set_to: "%{label} установен на %{value}"
+ text_journal_deleted: "%{label} изтрит (%{old})"
+ text_journal_added: "Добавено %{label} %{value}"
+ text_tip_issue_begin_day: задача, започваща този ден
+ text_tip_issue_end_day: задача, завършваща този ден
+ text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
text_project_identifier_info: 'Позволени са малки букви (a-z), цифри и тирета. Невъзможна промяна след запис.'
text_caracters_maximum: "До %{count} символа."
+ text_caracters_minimum: "Минимум %{count} символа."
text_length_between: "От %{min} до %{max} символа."
text_tracker_no_workflow: Няма дефиниран работен процес за този тракер
text_unallowed_characters: Непозволени символи
text_comma_separated: Позволено е изброяване (с разделител запетая).
+ text_line_separated: Позволени са много стойности (по едно на ред).
text_issues_ref_in_commit_messages: Отбелязване и приключване на задачи от ревизии
text_issue_added: "Публикувана е нова задача с номер %{id} (от %{author})."
text_issue_updated: "Задача %{id} е обновена (от %{author})."
@@ -580,7 +879,36 @@
text_issue_category_destroy_question: "Има задачи (%{count}) обвързани с тази категория. Какво ще изберете?"
text_issue_category_destroy_assignments: Премахване на връзките с категорията
text_issue_category_reassign_to: Преобвързване с категория
-
+ text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
+ text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
+ text_load_default_configuration: Зареждане на примерна информация
+ text_status_changed_by_changeset: "Приложено с ревизия %{value}."
+ text_time_logged_by_changeset: Приложено в ревизия %{value}.
+ text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
+ text_select_project_modules: 'Изберете активните модули за този проект:'
+ text_default_administrator_account_changed: Сменен фабричния администраторски профил
+ text_file_repository_writable: Възможност за писане в хранилището с файлове
+ text_plugin_assets_writable: Папката на приставките е разрешена за запис
+ text_rmagick_available: Наличен RMagick (по избор)
+ text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
+ text_destroy_time_entries: Изтриване на отделеното време
+ text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
+ text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
+ text_user_wrote: "%{value} написа:"
+ text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
+ text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
+ text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/configuration.yml и рестартирайте Redmine, за да ги разрешите."
+ text_repository_usernames_mapping: "Изберете или променете потребителите в Redmine, съответстващи на потребителите в дневника на хранилището (repository).\nПотребителите с еднакви имена в Redmine и хранилищата се съвместяват автоматично."
+ text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
+ text_custom_field_possible_values_info: 'Една стойност на ред'
+ text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
+ text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
+ text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
+ text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
+ text_own_membership_delete_confirmation: "Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това да не можете да редактирате този проект.\nСигурен ли сте, че искате да продължите?"
+ text_zoom_in: Увеличаване
+ text_zoom_out: Намаляване
+
default_role_manager: Мениджър
default_role_developer: Разработчик
default_role_reporter: Публикуващ
@@ -602,333 +930,9 @@
default_priority_immediate: Веднага
default_activity_design: Дизайн
default_activity_development: Разработка
-
+
enumeration_issue_priorities: Приоритети на задачи
enumeration_doc_categories: Категории документи
enumeration_activities: Дейности (time tracking)
- label_file_plural: Файлове
- label_changeset_plural: Ревизии
- field_column_names: Колони
- label_default_columns: По подразбиране
- setting_issue_list_default_columns: Показвани колони по подразбиране
- setting_repositories_encodings: Кодови таблици
- notice_no_issue_selected: "Няма избрани задачи."
- label_bulk_edit_selected_issues: Редактиране на задачи
- label_no_change_option: (Без промяна)
- notice_failed_to_save_issues: "Неуспешен запис на %{count} задачи от %{total} избрани: %{ids}."
- label_theme: Тема
- label_default: По подразбиране
- label_search_titles_only: Само в заглавията
- label_nobody: никой
- button_change_password: Промяна на парола
- text_user_mail_option: "За неизбраните проекти, ще получавате известия само за наблюдавани дейности или в които участвате (т.е. автор или назначени на мен)."
- label_user_mail_option_selected: "За всички събития само в избраните проекти..."
- label_user_mail_option_all: "За всяко събитие в проектите, в които участвам"
- label_user_mail_option_none: "Само за наблюдавани или в които участвам (автор или назначени на мен)"
- setting_emails_footer: Подтекст за e-mail
- label_float: Дробно
- button_copy: Копиране
- mail_body_account_information_external: "Можете да използвате вашия %{value} профил за вход."
- mail_body_account_information: Информацията за профила ви
- setting_protocol: Протокол
- label_user_mail_no_self_notified: "Не искам известия за извършени от мен промени"
- setting_time_format: Формат на часа
- label_registration_activation_by_email: активиране на профила по email
- mail_subject_account_activation_request: "Заявка за активиране на профил в %{value}"
- mail_body_account_activation_request: "Има новорегистриран потребител (%{value}), очакващ вашето одобрение:"
- label_registration_automatic_activation: автоматично активиране
- label_registration_manual_activation: ръчно активиране
- notice_account_pending: "Профилът Ви е създаден и очаква одобрение от администратор."
- field_time_zone: Часова зона
- text_caracters_minimum: "Минимум %{count} символа."
- setting_bcc_recipients: Получатели на скрито копие (bcc)
- button_annotate: Анотация
- label_issues_by: "Задачи по %{value}"
- field_searchable: С възможност за търсене
- label_display_per_page: "На страница по: %{value}"
- setting_per_page_options: Опции за страниране
- label_age: Възраст
- notice_default_data_loaded: Примерната информацията е успешно заредена.
- text_load_default_configuration: Зареждане на примерна информация
- text_no_configuration_data: "Все още не са конфигурирани Роли, тракери, състояния на задачи и работен процес.\nСтрого се препоръчва зареждането на примерната информация. Веднъж заредена ще имате възможност да я редактирате."
- error_can_t_load_default_data: "Грешка при зареждане на примерната информация: %{value}"
- button_update: Обновяване
- label_change_properties: Промяна на настройки
- label_general: Основни
- label_repository_plural: Хранилища
- label_associated_revisions: Асоциирани ревизии
- setting_user_format: Потребителски формат
- text_status_changed_by_changeset: "Приложено с ревизия %{value}."
- label_more: Още
- text_issues_destroy_confirmation: 'Сигурни ли сте, че искате да изтриете избраните задачи?'
- label_scm: SCM (Система за контрол на кода)
- text_select_project_modules: 'Изберете активните модули за този проект:'
- label_issue_added: Добавена задача
- label_issue_updated: Обновена задача
- label_document_added: Добавен документ
- label_message_posted: Добавено съобщение
- label_file_added: Добавен файл
- label_news_added: Добавена новина
- project_module_boards: Форуми
- project_module_issue_tracking: Тракинг
- project_module_wiki: Wiki
- project_module_files: Файлове
- project_module_documents: Документи
- project_module_repository: Хранилище
- project_module_news: Новини
- project_module_time_tracking: Отделяне на време
- text_file_repository_writable: Възможност за писане в хранилището с файлове
- text_default_administrator_account_changed: Сменен фабричния администраторски профил
- text_rmagick_available: Наличен RMagick (по избор)
- button_configure: Конфигуриране
- label_plugins: Плъгини
- label_ldap_authentication: LDAP оторизация
- label_downloads_abbr: D/L
- label_this_month: текущия месец
- label_last_n_days: "последните %{count} дни"
- label_all_time: всички
- label_this_year: текущата година
- label_date_range: Период
- label_last_week: последната седмица
- label_yesterday: вчера
- label_last_month: последния месец
- label_add_another_file: Добавяне на друг файл
- label_optional_description: Незадължително описание
- text_destroy_time_entries_question: "%{hours} часа са отделени на задачите, които искате да изтриете. Какво избирате?"
- error_issue_not_found_in_project: 'Задачата не е намерена или не принадлежи на този проект'
- text_assign_time_entries_to_project: Прехвърляне на отделеното време към проект
- text_destroy_time_entries: Изтриване на отделеното време
- text_reassign_time_entries: 'Прехвърляне на отделеното време към задача:'
- setting_activity_days_default: Брой дни показвани на таб Дейност
- label_chronological_order: Хронологичен ред
- field_comments_sorting: Сортиране на коментарите
- label_reverse_chronological_order: Обратен хронологичен ред
- label_preferences: Предпочитания
- setting_display_subprojects_issues: Показване на подпроектите в проектите по подразбиране
- label_overall_activity: Цялостна дейност
- setting_default_projects_public: Новите проекти са публични по подразбиране
- error_scm_annotate: "Обектът не съществува или не може да бъде анотиран."
- label_planning: Планиране
- text_subprojects_destroy_warning: "Неговите подпроекти: %{value} също ще бъдат изтрити."
- label_and_its_subprojects: "%{value} и неговите подпроекти"
- mail_body_reminder: "%{count} задачи, назначени на вас са с краен срок в следващите %{days} дни:"
- mail_subject_reminder: "%{count} задачи с краен срок с следващите %{days} дни"
- text_user_wrote: "%{value} написа:"
- label_duplicated_by: дублирана от
- setting_enabled_scm: Разрешена SCM
- text_enumeration_category_reassign_to: 'Пресвържете ги към тази стойност:'
- text_enumeration_destroy_question: "%{count} обекта са свързани с тази стойност."
- label_incoming_emails: Входящи e-mail-и
- label_generate_key: Генериране на ключ
- setting_mail_handler_api_enabled: Разрешаване на WS за входящи e-mail-и
- setting_mail_handler_api_key: API ключ
- text_email_delivery_not_configured: "Изпращането на e-mail-и не е конфигурирано и известията не са разрешени.\nКонфигурирайте вашия SMTP сървър в config/email.yml и рестартирайте Redmine, за да ги разрешите."
- field_parent_title: Родителска страница
- label_issue_watchers: Наблюдатели
- setting_commit_logs_encoding: Кодова таблица на съобщенията при поверяване
- button_quote: Цитат
- setting_sequential_project_identifiers: Генериране на последователни проектни идентификатори
- notice_unable_delete_version: Невъзможност за изтриване на версия
- label_renamed: преименувано
- label_copied: копирано
- setting_plain_text_mail: само чист текст (без HTML)
- permission_view_files: Разглеждане на файлове
- permission_edit_issues: Редактиране на задачи
- permission_edit_own_time_entries: Редактиране на собствените time logs
- permission_manage_public_queries: Управление на публичните заявки
- permission_add_issues: Добавяне на задачи
- permission_log_time: Log spent time
- permission_view_changesets: Разглеждане на changesets
- permission_view_time_entries: Разглеждане на изразходваното време
- permission_manage_versions: Управление на версиите
- permission_manage_wiki: Управление на wiki
- permission_manage_categories: Управление на категориите задачи
- permission_protect_wiki_pages: Заключване на wiki страници
- permission_comment_news: Коментиране на новини
- permission_delete_messages: Изтриване на съобщения
- permission_select_project_modules: Избор на проектни модули
- permission_manage_documents: Управление на документи
- permission_edit_wiki_pages: Редактиране на wiki страници
- permission_add_issue_watchers: Добавяне на наблюдатели
- permission_view_gantt: Разглеждане на мрежов график
- permission_move_issues: Преместване на задачи
- permission_manage_issue_relations: Управление на връзките между задачите
- permission_delete_wiki_pages: Изтриване на wiki страници
- permission_manage_boards: Управление на boards
- permission_delete_wiki_pages_attachments: Изтриване на прикачени файлове
- permission_view_wiki_edits: Разглеждане на wiki история
- permission_add_messages: Публикуване на съобщения
- permission_view_messages: Разглеждане на съобщения
- permission_manage_files: Управление на файлове
- permission_edit_issue_notes: Редактиране на бележки
- permission_manage_news: Управление на новини
- permission_view_calendar: Разглеждане на календари
- permission_manage_members: Управление на членовете (на екип)
- permission_edit_messages: Редактиране на съобщения
- permission_delete_issues: Изтриване на задачи
- permission_view_issue_watchers: Разглеждане на списък с наблюдатели
- permission_manage_repository: Управление на хранилища
- permission_commit_access: Поверяване
- permission_browse_repository: Разглеждане на хранилища
- permission_view_documents: Разглеждане на документи
- permission_edit_project: Редактиране на проект
- permission_add_issue_notes: Добаване на бележки
- permission_save_queries: Запис на запитвания (queries)
- permission_view_wiki_pages: Разглеждане на wiki
- permission_rename_wiki_pages: Преименуване на wiki страници
- permission_edit_time_entries: Редактиране на time logs
- permission_edit_own_issue_notes: Редактиране на собствени бележки
- setting_gravatar_enabled: Използване на портребителски икони от Gravatar
- label_example: Пример
- text_repository_usernames_mapping: "Select ou update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
- permission_edit_own_messages: Редактиране на собствени съобщения
- permission_delete_own_messages: Изтриване на собствени съобщения
- label_user_activity: "Активност на %{value}"
- label_updated_time_by: "Обновена от %{author} преди %{age}"
- text_diff_truncated: '... Този diff не е пълен, понеже е надхвърля максималния размер, който може да бъде показан.'
- setting_diff_max_lines_displayed: Максимален брой показани diff редове
- text_plugin_assets_writable: Папката на приставките е разрешена за запис
- warning_attachments_not_saved: "%{count} файла не бяха записани."
- button_create_and_continue: Създаване и продължаване
- text_custom_field_possible_values_info: 'Една стойност на ред'
- label_display: Display
- field_editable: Editable
- setting_repository_log_display_limit: Максимален брой на показванете ревизии в лог файла
- setting_file_max_size_displayed: Максимален размер на текстовите файлове, показвани inline
- field_watcher: Наблюдател
- setting_openid: Рарешаване на OpenID вход и регистрация
- field_identity_url: OpenID URL
- label_login_with_open_id_option: или вход чрез OpenID
- field_content: Съдържание
- label_descending: Намаляващ
- label_sort: Сортиране
- label_ascending: Нарастващ
- label_date_from_to: От %{start} до %{end}
- label_greater_or_equal: ">="
- label_less_or_equal: <=
- text_wiki_page_destroy_question: Тази страница има %{descendants} страници деца и descendant(s). Какво желаете да правите?
- text_wiki_page_reassign_children: Преназначаване на страниците деца на тази родителска страница
- text_wiki_page_nullify_children: Запазване на тези страници като коренни страници
- text_wiki_page_destroy_children: Изтриване на страниците деца и всички техни descendants
- setting_password_min_length: Минимална дължина на парола
- field_group_by: Групиране на резултатите по
- mail_subject_wiki_content_updated: "Wiki страницата '%{id}' не беше обновена"
- label_wiki_content_added: Wiki страница беше добавена
- mail_subject_wiki_content_added: "Wiki страницата '%{id}' беше добавена"
- mail_body_wiki_content_added: Wiki страницата '%{id}' беше добавена от %{author}.
- label_wiki_content_updated: Wiki страница беше обновена
- mail_body_wiki_content_updated: Wiki страницата '%{id}' беше обновена от %{author}.
- permission_add_project: Създаване на проект
- setting_new_project_user_role_id: Роля, давана на потребител, създаващ проекти, който не е администратор
- label_view_all_revisions: Разглеждане на всички ревизии
- label_tag: Версия
- label_branch: работен вариант
- error_no_tracker_in_project: Няма асоциирани тракери с този проект. Проверете настройките на проекта.
- error_no_default_issue_status: Няма установено подразбиращо се състояние за задачите. Моля проверете вашата конфигурация (Вижте "Администрация -> Състояния на задачи").
- text_journal_changed: "%{label} променен от %{old} на %{new}"
- text_journal_set_to: "%{label} установен на %{value}"
- text_journal_deleted: "%{label} изтрит (%{old})"
- label_group_plural: Групи
- label_group: Група
- label_group_new: Нова група
- label_time_entry_plural: Използвано време
- text_journal_added: "Добавено %{label} %{value}"
- field_active: Активен
enumeration_system_activity: Системна активност
- permission_delete_issue_watchers: Изтриване на наблюдатели
- version_status_closed: затворена
- version_status_locked: заключена
- version_status_open: отворена
- error_can_not_reopen_issue_on_closed_version: Задача, асоциирана със затворена версия не може да бъде отворена отново
- label_user_anonymous: Анонимен
- button_move_and_follow: Преместване и продължаване
- setting_default_projects_modules: Активирани модули по подразбиране за нов проект
- setting_gravatar_default: Подразбиращо се изображение от Gravatar
- field_sharing: Sharing
- label_version_sharing_hierarchy: С проектна йерархия
- label_version_sharing_system: С всички проекти
- label_version_sharing_descendants: С подпроекти
- label_version_sharing_tree: С дърво на проектите
- label_version_sharing_none: Не споделен
- error_can_not_archive_project: Този проект не може да бъде архивиран
- button_duplicate: Дублиране
- button_copy_and_follow: Копиране и продължаване
- label_copy_source: Източник
- setting_issue_done_ratio: Изчисление на процента на готови задачи с
- setting_issue_done_ratio_issue_status: Използване на състоянието на задачите
- error_issue_done_ratios_not_updated: Процентът на завършените задачи не е обновен.
- error_workflow_copy_target: Моля изберете тракер(и) и роля (роли).
- setting_issue_done_ratio_issue_field: Използване на поле '% Прогрес'
- label_copy_same_as_target: Също като целта
- label_copy_target: Цел
- notice_issue_done_ratios_updated: Обновен процент на завършените задачи.
- error_workflow_copy_source: Моля изберете source тракер или роля
- label_update_issue_done_ratios: Обновяване на процента на завършените задачи
- setting_start_of_week: Първи ден на седмицата
- permission_view_issues: Разглеждане на задачите
- label_display_used_statuses_only: Показване само на състоянията, използвани от този тракер
- label_revision_id: Ревизия %{value}
- label_api_access_key: API ключ за достъп
- label_api_access_key_created_on: API ключ за достъп е създаден преди %{value}
- label_feeds_access_key: RSS access ключ
- notice_api_access_key_reseted: Вашият API ключ за достъп беше изчистен.
- setting_rest_api_enabled: Разрешаване на REST web сървис
- label_missing_api_access_key: Липсващ API ключ
- label_missing_feeds_access_key: Липсващ RSS ключ за достъп
- button_show: Показване
- text_line_separated: Позволени са много стойности (по едно на ред).
- setting_mail_handler_body_delimiters: Отрязване на e-mail-ите след един от тези редове
- permission_add_subprojects: Създаване на подпроекти
- label_subproject_new: Нов подпроект
- text_own_membership_delete_confirmation: |-
- Вие сте на път да премахнете някои или всички ваши разрешения и е възможно след това на да не можете да редатирате този проект.
- Сигурен ли сте, че искате да продължите?
- label_close_versions: Затваряне на завършените версии
- label_board_sticky: Sticky
- label_board_locked: Заключена
- permission_export_wiki_pages: Експорт на wiki страници
- setting_cache_formatted_text: Cache formatted text
- permission_manage_project_activities: Управление на дейностите на проекта
- error_unable_delete_issue_status: Невъзможност за изтриване на състояние на задача
- label_profile: Профил
- permission_manage_subtasks: Управление на подзадачите
- field_parent_issue: Родителска задача
- label_subtask_plural: Подзадачи
- label_project_copy_notifications: Изпращане на Send e-mail известия по време на копирането на проекта
- error_can_not_delete_custom_field: Невъзможност за изтриване на потребителско поле
- error_unable_to_connect: Невъзможност за свързване с (%{value})
- error_can_not_remove_role: Тази роля се използва и не може да бъде изтрита.
- error_can_not_delete_tracker: Този тракер съдържа задачи и не може да бъде изтрит.
- field_principal: Principal
- label_my_page_block: Блокове в личната страница
- notice_failed_to_save_members: "Невъзможност за запис на член(ове): %{errors}."
- text_zoom_out: Намаляване
- text_zoom_in: Увеличаване
- notice_unable_delete_time_entry: Невъзможност за изтриване на запис на time log.
- label_overall_spent_time: Общо употребено време
- field_time_entries: Log time
- notice_not_authorized_archived_project: Проектът, който се опитвате да видите е архивиран.
- text_tip_issue_end_day: задача, завършваща този ден
- field_text: Текстово поле
- label_user_mail_option_only_owner: Само за неща, на които аз съм собственик
- field_member_of_group: Член на група
- project_module_gantt: Мрежов график
- text_are_you_sure_with_children: Изтриване на задачата и нейните подзадачи?
- text_tip_issue_begin_end_day: задача, започваща и завършваща този ден
- setting_default_notification_option: Подразбиращ се начин за известяване
- project_module_calendar: Календар
- label_user_mail_option_only_my_events: Само за неща, в които съм включен/а
- text_tip_issue_begin_day: задача, започваща този ден
- label_user_mail_option_only_assigned: Само за неща, назначени на мен
- button_edit_associated_wikipage: "Редактиране на асоциираната Wiki страница: %{page_title}"
- field_assigned_to_role: Assignee's role
- field_start_date: Начална дата
- label_principal_search: "Търсене на потребител или група:"
- label_user_search: "Търсене на потребител:"
- field_visible: Видим
- setting_emails_header: Emails header
- setting_commit_logtime_activity_id: Дейност при отчитане на работното време
- text_time_logged_by_changeset: Приложено в ревизия %{value}.
- setting_commit_logtime_enabled: Разрешаване на отчитането на работното време
- notice_gantt_chart_truncated: Мрежовият график е съкратен, понеже броят на обектите, които могат да бъдат показани е твърде голям (%{max})
- setting_gantt_items_limit: Максимален брой обекти, които да се показват в мрежов график
+
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/bs.yml
--- a/config/locales/bs.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/bs.yml Tue Feb 08 13:51:46 2011 +0000
@@ -787,7 +787,7 @@
text_user_wrote: "%{value} je napisao/la:"
text_enumeration_destroy_question: "Za %{count} objekata je dodjeljenja ova vrijednost."
text_enumeration_category_reassign_to: 'Ponovo im dodjeli ovu vrijednost:'
- text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/email.yml i restartuj aplikaciju nakon toga."
+ text_email_delivery_not_configured: "Email dostava nije konfiguraisana, notifikacija je onemogućena.\nKonfiguriši SMTP server u config/configuration.yml i restartuj aplikaciju nakon toga."
text_repository_usernames_mapping: "Odaberi ili ispravi redmine korisnika mapiranog za svako korisničko ima nađeno u logu repozitorija.\nKorisnici sa istim imenom u redmineu i u repozitoruju se automatski mapiraju."
text_diff_truncated: '... Ovaj prikaz razlike je odsječen pošto premašuje maksimalnu veličinu za prikaz'
text_custom_field_possible_values_info: 'Jedna linija za svaku vrijednost'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/ca.yml
--- a/config/locales/ca.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/ca.yml Tue Feb 08 13:51:46 2011 +0000
@@ -880,7 +880,7 @@
text_user_wrote: "%{value} va escriure:"
text_enumeration_destroy_question: "%{count} objectes estan assignats a aquest valor."
text_enumeration_category_reassign_to: "Torna a assignar-los a aquest valor:"
- text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/email.yml i reinicieu l'aplicació per habilitar-lo."
+ text_email_delivery_not_configured: "El lliurament per correu electrònic no està configurat i les notificacions estan inhabilitades.\nConfigureu el servidor SMTP a config/configuration.yml i reinicieu l'aplicació per habilitar-lo."
text_repository_usernames_mapping: "Seleccioneu l'assignació entre els usuaris del Redmine i cada nom d'usuari trobat al dipòsit.\nEls usuaris amb el mateix nom d'usuari o correu del Redmine i del dipòsit s'assignaran automàticament."
text_diff_truncated: "... Aquestes diferències s'han trucat perquè excedeixen la mida màxima que es pot mostrar."
text_custom_field_possible_values_info: "Una línia per a cada valor"
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/cs.yml
--- a/config/locales/cs.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/cs.yml Tue Feb 08 13:51:46 2011 +0000
@@ -546,7 +546,7 @@
label_relation_delete: Odstranit souvislost
label_relates_to: související s
label_duplicates: duplicity
- label_blocks: bloků
+ label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: předchází
label_follows: následuje
@@ -729,7 +729,7 @@
label_generate_key: Generovat klíč
setting_mail_handler_api_enabled: Povolit WS pro příchozí e-maily
setting_mail_handler_api_key: API klíč
- text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/email.yml a restartujte aplikaci."
+ text_email_delivery_not_configured: "Doručování e-mailů není nastaveno a odesílání notifikací je zakázáno.\nNastavte Váš SMTP server v souboru config/configuration.yml a restartujte aplikaci."
field_parent_title: Rodičovská stránka
label_issue_watchers: Sledování
setting_commit_logs_encoding: Kódování zpráv při commitu
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/da.yml
--- a/config/locales/da.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/da.yml Tue Feb 08 13:51:46 2011 +0000
@@ -753,7 +753,7 @@
setting_sequential_project_identifiers: Generér sekventielle projekt-identifikatorer
setting_plain_text_mail: Emails som almindelig tekst (ingen HTML)
field_parent_title: Siden over
- text_email_delivery_not_configured: "Email-afsendelse er ikke indstillet og notifikationer er defor slået fra.\nKonfigurér din SMTP server i config/email.yml og genstart applikationen for at aktivere email-afsendelse."
+ text_email_delivery_not_configured: "Email-afsendelse er ikke indstillet og notifikationer er defor slået fra.\nKonfigurér din SMTP server i config/configuration.yml og genstart applikationen for at aktivere email-afsendelse."
permission_protect_wiki_pages: Beskyt wiki sider
permission_manage_documents: Administrér dokumenter
permission_add_issue_watchers: Tilføj overvågere
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/de.yml
--- a/config/locales/de.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/de.yml Tue Feb 08 13:51:46 2011 +0000
@@ -898,7 +898,7 @@
text_user_wrote: "%{value} schrieb:"
text_enumeration_destroy_question: "%{count} Objekt(e) sind diesem Wert zugeordnet."
text_enumeration_category_reassign_to: 'Die Objekte stattdessen diesem Wert zuordnen:'
- text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/email.yml vor und starten Sie die Applikation neu."
+ text_email_delivery_not_configured: "Der SMTP-Server ist nicht konfiguriert und Mailbenachrichtigungen sind ausgeschaltet.\nNehmen Sie die Einstellungen für Ihren SMTP-Server in config/configuration.yml vor und starten Sie die Applikation neu."
text_repository_usernames_mapping: "Bitte legen Sie die Zuordnung der Redmine-Benutzer zu den Benutzernamen der Commit-Log-Meldungen des Projektarchivs fest.\nBenutzer mit identischen Redmine- und Projektarchiv-Benutzernamen oder -E-Mail-Adressen werden automatisch zugeordnet."
text_diff_truncated: '... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.'
text_custom_field_possible_values_info: 'Eine Zeile pro Wert'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/el.yml
--- a/config/locales/el.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/el.yml Tue Feb 08 13:51:46 2011 +0000
@@ -798,7 +798,7 @@
text_user_wrote: "%{value} έγραψε:"
text_enumeration_destroy_question: "%{count} αντικείμενα έχουν τεθεί σε αυτή την τιμή."
text_enumeration_category_reassign_to: 'Επανεκχώρηση τους στην παρούσα αξία:'
- text_email_delivery_not_configured: "Δεν έχουν γίνει ρυθμίσεις παράδοσης email, και οι ειδοποιήσεις είναι απενεργοποιημένες.\nΔηλώστε τον εξυπηρετητή SMTP στο config/email.yml και κάντε επανακκίνηση την εφαρμογή για να τις ρυθμίσεις."
+ text_email_delivery_not_configured: "Δεν έχουν γίνει ρυθμίσεις παράδοσης email, και οι ειδοποιήσεις είναι απενεργοποιημένες.\nΔηλώστε τον εξυπηρετητή SMTP στο config/configuration.yml και κάντε επανακκίνηση την εφαρμογή για να τις ρυθμίσεις."
text_repository_usernames_mapping: "Επιλέξτε ή ενημερώστε τον χρήστη Redmine που αντιστοιχεί σε κάθε όνομα χρήστη στο ιστορικό του αποθετηρίου.\nΧρήστες με το ίδιο όνομα χρήστη ή email στο Redmine και στο αποθετηρίο αντιστοιχίζονται αυτόματα."
text_diff_truncated: '... Αυτό το diff εχεί κοπεί επειδή υπερβαίνει το μέγιστο μέγεθος που μπορεί να προβληθεί.'
text_custom_field_possible_values_info: 'Μία γραμμή για κάθε τιμή'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/en-GB.yml
--- a/config/locales/en-GB.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/en-GB.yml Tue Feb 08 13:51:46 2011 +0000
@@ -864,7 +864,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/en.yml
--- a/config/locales/en.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/en.yml Tue Feb 08 13:51:46 2011 +0000
@@ -897,7 +897,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/es.yml
--- a/config/locales/es.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/es.yml Tue Feb 08 13:51:46 2011 +0000
@@ -795,7 +795,7 @@
text_destroy_time_entries: Borrar las horas
text_destroy_time_entries_question: Existen %{hours} horas asignadas a la petición que quiere borrar. ¿Qué quiere hacer?
text_diff_truncated: '... Diferencia truncada por exceder el máximo tamaño visualizable.'
- text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/email.yml y reinicie la aplicación para activar los cambios."
+ text_email_delivery_not_configured: "Las notificaciones están desactivadas porque el servidor de correo no está configurado.\nConfigure el servidor de SMTP en config/configuration.yml y reinicie la aplicación para activar los cambios."
text_enumeration_category_reassign_to: 'Reasignar al siguiente valor:'
text_enumeration_destroy_question: "%{count} objetos con este valor asignado."
text_file_repository_writable: Se puede escribir en el repositorio
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/eu.yml
--- a/config/locales/eu.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/eu.yml Tue Feb 08 13:51:46 2011 +0000
@@ -859,7 +859,7 @@
text_user_wrote: "%{value}-(e)k idatzi zuen:"
text_enumeration_destroy_question: "%{count} objetu balio honetara esleituta daude."
text_enumeration_category_reassign_to: 'Beste balio honetara esleitu:'
- text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/email.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
+ text_email_delivery_not_configured: "Eposta bidalketa ez dago konfiguratuta eta jakinarazpenak ezgaituta daude.\nKonfiguratu zure SMTP zerbitzaria config/configuration.yml-n eta aplikazioa berrabiarazi hauek gaitzeko."
text_repository_usernames_mapping: "Hautatu edo eguneratu Redmineko erabiltzailea biltegiko egunkarietan topatzen diren erabiltzaile izenekin erlazionatzeko.\nRedmine-n eta biltegian erabiltzaile izen edo eposta berdina duten erabiltzaileak automatikoki erlazionatzen dira."
text_diff_truncated: '... Diff hau moztua izan da erakus daitekeen tamaina maximoa gainditu duelako.'
text_custom_field_possible_values_info: 'Lerro bat balio bakoitzeko'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/fi.yml
--- a/config/locales/fi.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/fi.yml Tue Feb 08 13:51:46 2011 +0000
@@ -750,7 +750,7 @@
label_generate_key: Luo avain
setting_mail_handler_api_enabled: Ota käyttöön WS saapuville sähköposteille
setting_mail_handler_api_key: API avain
- text_email_delivery_not_configured: "Sähköpostin jakelu ei ole määritelty ja sähköpostimuistutukset eivät ole käytössä.\nKonfiguroi sähköpostipalvelinasetukset (SMTP) config/email.yml tiedostosta ja uudelleenkäynnistä sovellus jotta asetukset astuvat voimaan."
+ text_email_delivery_not_configured: "Sähköpostin jakelu ei ole määritelty ja sähköpostimuistutukset eivät ole käytössä.\nKonfiguroi sähköpostipalvelinasetukset (SMTP) config/configuration.yml tiedostosta ja uudelleenkäynnistä sovellus jotta asetukset astuvat voimaan."
field_parent_title: Aloitussivu
label_issue_watchers: Tapahtuman seuraajat
button_quote: Vastaa
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/fr.yml
--- a/config/locales/fr.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/fr.yml Tue Feb 08 13:51:46 2011 +0000
@@ -166,10 +166,10 @@
notice_successful_create: Création effectuée avec succès.
notice_successful_update: Mise à jour effectuée avec succès.
notice_successful_delete: Suppression effectuée avec succès.
- notice_successful_connection: Connection réussie.
+ notice_successful_connection: Connexion réussie.
notice_file_not_found: "La page à laquelle vous souhaitez accéder n'existe pas ou a été supprimée."
notice_locking_conflict: Les données ont été mises à jour par un autre utilisateur. Mise à jour impossible.
- notice_not_authorized: "Vous n'êtes pas autorisés à accéder à cette page."
+ notice_not_authorized: "Vous n'êtes pas autorisé à accéder à cette page."
notice_not_authorized_archived_project: Le projet auquel vous tentez d'accéder a été archivé.
notice_email_sent: "Un email a été envoyé à %{value}"
notice_email_error: "Erreur lors de l'envoi de l'email (%{value})"
@@ -323,11 +323,11 @@
setting_text_formatting: Formatage du texte
setting_wiki_compression: Compression historique wiki
setting_feeds_limit: Limite du contenu des flux RSS
- setting_default_projects_public: Définir les nouveaux projects comme publics par défaut
+ setting_default_projects_public: Définir les nouveaux projets comme publics par défaut
setting_autofetch_changesets: Récupération auto. des commits
setting_sys_api_enabled: Activer les WS pour la gestion des dépôts
- setting_commit_ref_keywords: Mot-clés de référencement
- setting_commit_fix_keywords: Mot-clés de résolution
+ setting_commit_ref_keywords: Mots-clés de référencement
+ setting_commit_fix_keywords: Mots-clés de résolution
setting_autologin: Autologin
setting_date_format: Format de date
setting_time_format: Format d'heure
@@ -349,7 +349,7 @@
setting_gravatar_enabled: Afficher les Gravatar des utilisateurs
setting_diff_max_lines_displayed: Nombre maximum de lignes de diff affichées
setting_file_max_size_displayed: Taille maximum des fichiers texte affichés en ligne
- setting_repository_log_display_limit: "Nombre maximum de revisions affichées sur l'historique d'un fichier"
+ setting_repository_log_display_limit: "Nombre maximum de révisions affichées sur l'historique d'un fichier"
setting_openid: "Autoriser l'authentification et l'enregistrement OpenID"
setting_password_min_length: Longueur minimum des mots de passe
setting_new_project_user_role_id: Rôle donné à un utilisateur non-administrateur qui crée un projet
@@ -369,7 +369,7 @@
permission_add_subprojects: Créer des sous-projets
permission_edit_project: Modifier le projet
permission_select_project_modules: Choisir les modules
- permission_manage_members: Gérer les members
+ permission_manage_members: Gérer les membres
permission_manage_versions: Gérer les versions
permission_manage_categories: Gérer les catégories de demandes
permission_view_issues: Voir les demandes
@@ -859,7 +859,7 @@
text_issue_added: "La demande %{id} a été soumise par %{author}."
text_issue_updated: "La demande %{id} a été mise à jour par %{author}."
text_wiki_destroy_confirmation: Etes-vous sûr de vouloir supprimer ce wiki et tout son contenu ?
- text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégories. Que voulez-vous faire ?"
+ text_issue_category_destroy_question: "%{count} demandes sont affectées à cette catégorie. Que voulez-vous faire ?"
text_issue_category_destroy_assignments: N'affecter les demandes à aucune autre catégorie
text_issue_category_reassign_to: Réaffecter les demandes à cette catégorie
text_user_mail_option: "Pour les projets non sélectionnés, vous recevrez seulement des notifications pour ce que vous surveillez ou à quoi vous participez (exemple: demandes dont vous êtes l'auteur ou la personne assignée)."
@@ -880,7 +880,7 @@
text_user_wrote: "%{value} a écrit :"
text_enumeration_destroy_question: "Cette valeur est affectée à %{count} objets."
text_enumeration_category_reassign_to: 'Réaffecter les objets à cette valeur:'
- text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/email.yml et redémarrez l'application pour les activer."
+ text_email_delivery_not_configured: "L'envoi de mail n'est pas configuré, les notifications sont désactivées.\nConfigurez votre serveur SMTP dans config/configuration.yml et redémarrez l'application pour les activer."
text_repository_usernames_mapping: "Vous pouvez sélectionner ou modifier l'utilisateur Redmine associé à chaque nom d'utilisateur figurant dans l'historique du dépôt.\nLes utilisateurs avec le même identifiant ou la même adresse mail seront automatiquement associés."
text_diff_truncated: '... Ce différentiel a été tronqué car il excède la taille maximale pouvant être affichée.'
text_custom_field_possible_values_info: 'Une ligne par valeur'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/gl.yml
--- a/config/locales/gl.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/gl.yml Tue Feb 08 13:51:46 2011 +0000
@@ -772,7 +772,7 @@
text_destroy_time_entries: Borrar as horas
text_destroy_time_entries_question: Existen %{hours} horas asignadas á petición que quere borrar. ¿Que quere facer ?
text_diff_truncated: '... Diferencia truncada por exceder o máximo tamaño visualizable.'
- text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/email.yml e reinicie a aplicación para activar os cambios."
+ text_email_delivery_not_configured: "O envío de correos non está configurado, e as notificacións desactiváronse. \n Configure o servidor de SMTP en config/configuration.yml e reinicie a aplicación para activar os cambios."
text_enumeration_category_reassign_to: 'Reasignar ó seguinte valor:'
text_enumeration_destroy_question: "%{count} obxectos con este valor asignado."
text_file_repository_writable: Pódese escribir no repositorio
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/he.yml
--- a/config/locales/he.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/he.yml Tue Feb 08 13:51:46 2011 +0000
@@ -889,7 +889,7 @@
text_user_wrote: "%{value} כתב:"
text_enumeration_destroy_question: "%{count} אוביקטים מוצבים לערך זה."
text_enumeration_category_reassign_to: 'הצב מחדש לערך הזה:'
- text_email_delivery_not_configured: 'לא נקבעה תצורה לשליחת דואר, וההתראות כבויות.\nקבע את תצורת שרת ה־SMTP בקובץ /etc/redmine/<instance>/email.yml והתחל את האפליקציה מחדש ע"מ לאפשר אותם.'
+ text_email_delivery_not_configured: 'לא נקבעה תצורה לשליחת דואר, וההתראות כבויות.\nקבע את תצורת שרת ה־SMTP בקובץ /etc/redmine/<instance>/configuration.yml והתחל את האפליקציה מחדש ע"מ לאפשר אותם.'
text_repository_usernames_mapping: "בחר או עדכן את משתמש Redmine הממופה לכל שם משתמש ביומן המאגר.\nמשתמשים בעלי שם או כתובת דואר זהה ב־Redmine ובמאגר ממופים באופן אוטומטי."
text_diff_truncated: '... השינויים עוברים את מספר השורות המירבי לתצוגה, ולכן הם קוצצו.'
text_custom_field_possible_values_info: שורה אחת לכל ערך
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/hr.yml
--- a/config/locales/hr.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/hr.yml Tue Feb 08 13:51:46 2011 +0000
@@ -854,7 +854,7 @@
text_user_wrote: "%{value} je napisao/la:"
text_enumeration_destroy_question: "%{count} objekata je pridruženo toj vrijednosti."
text_enumeration_category_reassign_to: 'Premjesti ih ovoj vrijednosti:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... Ovaj diff je odrezan zato što prelazi maksimalnu veličinu koja može biti prikazana.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/hu.yml
--- a/config/locales/hu.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/hu.yml Tue Feb 08 13:51:46 2011 +0000
@@ -748,7 +748,7 @@
label_generate_key: Kulcs generálása
setting_mail_handler_api_enabled: Web Service engedélyezése a beérkezett levelekhez
setting_mail_handler_api_key: API kulcs
- text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/email.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen."
+ text_email_delivery_not_configured: "Az E-mail küldés nincs konfigurálva, és az értesítések ki vannak kapcsolva.\nÁllítsd be az SMTP szervert a config/configuration.yml fájlban és indítsd újra az alkalmazást, hogy érvénybe lépjen."
field_parent_title: Szülő oldal
label_issue_watchers: Megfigyelők
setting_commit_logs_encoding: Commit üzenetek kódlapja
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/id.yml
--- a/config/locales/id.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/id.yml Tue Feb 08 13:51:46 2011 +0000
@@ -833,7 +833,7 @@
text_user_wrote: "%{value} menulis:"
text_enumeration_destroy_question: "%{count} obyek ditugaskan untuk nilai ini."
text_enumeration_category_reassign_to: 'Tugaskan kembali untuk nilai ini:'
- text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/email.yml dan restart kembali aplikasi untuk mengaktifkan."
+ text_email_delivery_not_configured: "Pengiriman email belum dikonfigurasi, notifikasi tidak diaktifkan.\nAnda harus mengkonfigur SMTP server anda pada config/configuration.yml dan restart kembali aplikasi untuk mengaktifkan."
text_repository_usernames_mapping: "Pilih atau perbarui pengguna Redmine yang terpetakan ke setiap nama pengguna yang ditemukan di log repositori.\nPengguna dengan nama pengguna dan repositori atau email yang sama secara otomasit akan dipetakan."
text_diff_truncated: '... Perbedaan terpotong karena melebihi batas maksimum yang bisa ditampilkan.'
text_custom_field_possible_values_info: 'Satu baris untuk setiap nilai'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/it.yml
--- a/config/locales/it.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/it.yml Tue Feb 08 13:51:46 2011 +0000
@@ -730,7 +730,7 @@
label_generate_key: Genera una chiave
setting_mail_handler_api_enabled: Abilita WS per le email in arrivo
setting_mail_handler_api_key: Chiave API
- text_email_delivery_not_configured: "La consegna via email non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/email.yml e riavvia l'applicazione per abilitarle."
+ text_email_delivery_not_configured: "La consegna via email non è configurata e le notifiche sono disabilitate.\nConfigura il tuo server SMTP in config/configuration.yml e riavvia l'applicazione per abilitarle."
field_parent_title: Pagina principale
label_issue_watchers: Osservatori
setting_commit_logs_encoding: Codifica dei messaggi di commit
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/ja.yml
--- a/config/locales/ja.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/ja.yml Tue Feb 08 13:51:46 2011 +0000
@@ -919,7 +919,7 @@
text_user_wrote: "%{value} は書きました:"
text_enumeration_destroy_question: "%{count}個のオブジェクトがこの値に割り当てられています。"
text_enumeration_category_reassign_to: '次の値に割り当て直す:'
- text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/email.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
+ text_email_delivery_not_configured: "メールを送信するために必要な設定が行われていないため、メール通知は利用できません。\nconfig/configuration.ymlでSMTPサーバの設定を行い、アプリケーションを再起動してください。"
text_repository_usernames_mapping: "リポジトリのログから検出されたユーザー名をどのRedmineユーザーに関連づけるのか選択してください。\nログ上のユーザー名またはメールアドレスがRedmineのユーザーと一致する場合は自動的に関連づけられます。"
text_diff_truncated: '... 差分の行数が表示可能な上限を超えました。超過分は表示しません。'
text_custom_field_possible_values_info: '選択肢の値は1行に1個ずつ記述してください。'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/ko.yml
--- a/config/locales/ko.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/ko.yml Tue Feb 08 13:51:46 2011 +0000
@@ -843,7 +843,7 @@
text_user_wrote: "%{value}의 덧글:"
text_enumeration_category_reassign_to: '새로운 값을 설정:'
text_enumeration_destroy_question: "%{count} 개의 일감이 이 값을 사용하고 있습니다."
- text_email_delivery_not_configured: "이메일 전달이 설정되지 않았습니다. 그래서 알림이 비활성화되었습니다.\n SMTP서버를 config/email.yml에서 설정하고 어플리케이션을 다시 시작하십시오. 그러면 동작합니다."
+ text_email_delivery_not_configured: "이메일 전달이 설정되지 않았습니다. 그래서 알림이 비활성화되었습니다.\n SMTP서버를 config/configuration.yml에서 설정하고 어플리케이션을 다시 시작하십시오. 그러면 동작합니다."
text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.'
text_custom_field_possible_values_info: '각 값 당 한 줄'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/lt.yml
--- a/config/locales/lt.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/lt.yml Tue Feb 08 13:51:46 2011 +0000
@@ -885,7 +885,7 @@
text_user_wrote: "%{value} parašė:"
text_enumeration_destroy_question: "%{count} objektai priskirti šiai reikšmei."
text_enumeration_category_reassign_to: 'Priskirti juos šiai reikšmei:'
- text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/email.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
+ text_email_delivery_not_configured: "El.pašto siuntimas nesukonfigūruotas, ir perspėjimai neaktyvus.\nSukonfigūruokite savo SMTP serverį byloje config/configuration.yml ir perleiskite programą norėdami pritaikyti pakeitimus."
text_repository_usernames_mapping: "Parinkite ar atnaujinkite Redmine vartotojo vardą kiekvienam saugyklos vardui, kuris paminėtas saugyklos log'e.\nVartotojai, turintys tą patį Redmine ir saugyklos vardą ar el.paštą automatiškai surišti."
text_diff_truncated: "... Šis diff'as nukarpytas, nes jis viršijo maksimalų rodomą eilučių skaičių."
text_custom_field_possible_values_info: 'Po vieną eilutę kiekvienai reikšmei'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/lv.yml
--- a/config/locales/lv.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/lv.yml Tue Feb 08 13:51:46 2011 +0000
@@ -854,7 +854,7 @@
text_user_wrote: "%{value} rakstīja:"
text_enumeration_destroy_question: "%{count} objekti ir piešķirti šai vērtībai."
text_enumeration_category_reassign_to: 'Piešķirt tos šai vērtībai:'
- text_email_delivery_not_configured: "E-pastu nosūtīšana nav konfigurēta, un ziņojumi ir izslēgti.\nKonfigurējiet savu SMTP serveri datnē config/email.yml un pārstartējiet lietotni."
+ text_email_delivery_not_configured: "E-pastu nosūtīšana nav konfigurēta, un ziņojumi ir izslēgti.\nKonfigurējiet savu SMTP serveri datnē config/configuration.yml un pārstartējiet lietotni."
text_repository_usernames_mapping: "Izvēlieties vai atjaunojiet Redmine lietotāju, saistītu ar katru lietotājvārdu, kas atrodams repozitorija žurnālā.\nLietotāji ar to pašu Redmine un repozitorija lietotājvārdu būs saistīti automātiski."
text_diff_truncated: '... Šis diff tika nošķelts, jo tas pārsniedz maksimālo izmēru, ko var parādīt.'
text_custom_field_possible_values_info: 'Katra vērtības savā rindā'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/mk.yml
--- a/config/locales/mk.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/mk.yml Tue Feb 08 13:51:46 2011 +0000
@@ -877,7 +877,7 @@
text_user_wrote: "%{value} напиша:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Доставата по е-пошта не е конфигурирана, и известувањата се оневозможени.\nКонфигурирајте го Вашиот SMTP сервер во config/email.yml и рестартирајте ја апликацијата."
+ text_email_delivery_not_configured: "Доставата по е-пошта не е конфигурирана, и известувањата се оневозможени.\nКонфигурирајте го Вашиот SMTP сервер во config/configuration.yml и рестартирајте ја апликацијата."
text_repository_usernames_mapping: "Select or update the Redmine user mapped to each username found in the repository log.\nUsers with the same Redmine and repository username or email are automatically mapped."
text_diff_truncated: '... This diff was truncated because it exceeds the maximum size that can be displayed.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/mn.yml
--- a/config/locales/mn.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/mn.yml Tue Feb 08 13:51:46 2011 +0000
@@ -859,7 +859,7 @@
text_user_wrote: "%{value} бичихдээ:"
text_enumeration_destroy_question: "Энэ утгад %{count} обьект оноогдсон байна."
text_enumeration_category_reassign_to: 'Тэдгээрийг энэ утгад дахин оноо:'
- text_email_delivery_not_configured: "Имэйлийн тохиргоог хараахан тохируулаагүй байна, тиймээс имэйл мэдэгдэл явуулах боломжгүй байна.\nSMTP сервэрээ config/email.yml файл дотор тохируулаад төслийн менежерээ дахиад эхлүүлээрэй."
+ text_email_delivery_not_configured: "Имэйлийн тохиргоог хараахан тохируулаагүй байна, тиймээс имэйл мэдэгдэл явуулах боломжгүй байна.\nSMTP сервэрээ config/configuration.yml файл дотор тохируулаад төслийн менежерээ дахиад эхлүүлээрэй."
text_repository_usernames_mapping: "Репозиторийн логд байгаа бүх хэрэглэгчийн нэрүүдэд харгалзсан Төслийн Менежер системд бүртгэлтэй хэрэглэгчдийг Сонгох юмуу шинэчилнэ үү.\nТөслийн менежер болон репозиторид байгаа ижилхэн нэр юмуу имэйлтэй хэрэглэгчид харилцан харгалзна."
text_diff_truncated: '... Файлын ялгаврын хэмжээ үзүүлэхэд дэндүү урт байгаа учраас төгсгөлөөс нь хасч үзүүлэв.'
text_custom_field_possible_values_info: 'One line for each value'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/nl.yml
--- a/config/locales/nl.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/nl.yml Tue Feb 08 13:51:46 2011 +0000
@@ -742,7 +742,7 @@
text_destroy_time_entries: Verwijder gerapporteerde uren
text_destroy_time_entries_question: "%{hours} uren werden gerapporteerd op de issue(s) die u wilde verwijderen. Wat wil u doen?"
text_diff_truncated: '... Deze diff werd afgekort omdat het de maximale weer te geven karakters overschreed.'
- text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/email.yml en herstart de applicatie om dit te activeren."
+ text_email_delivery_not_configured: "E-mailbezorging is niet geconfigureerd. Notificaties zijn uitgeschakeld.\nConfigureer uw SMTP server in config/configuration.yml en herstart de applicatie om dit te activeren."
text_enumeration_category_reassign_to: 'Wijs de volgende waarde toe:'
text_enumeration_destroy_question: "%{count} objecten zijn toegewezen aan deze waarde."
text_file_repository_writable: Bestandsrepository beschrijfbaar
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/no.yml
--- a/config/locales/no.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/no.yml Tue Feb 08 13:51:46 2011 +0000
@@ -716,7 +716,7 @@
label_generate_key: Generer en nøkkel
setting_mail_handler_api_enabled: Skru på WS for innkommende e-post
setting_mail_handler_api_key: API-nøkkel
- text_email_delivery_not_configured: "Levering av e-post er ikke satt opp, og varsler er skrudd av.\nStill inn din SMTP-tjener i config/email.yml og start programmet på nytt for å skru det på."
+ text_email_delivery_not_configured: "Levering av e-post er ikke satt opp, og varsler er skrudd av.\nStill inn din SMTP-tjener i config/configuration.yml og start programmet på nytt for å skru det på."
field_parent_title: Foreldreside
label_issue_watchers: Overvåkere
setting_commit_logs_encoding: Tegnkoding for innsendingsmeldinger
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/pl.yml
--- a/config/locales/pl.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/pl.yml Tue Feb 08 13:51:46 2011 +0000
@@ -771,7 +771,7 @@
text_default_administrator_account_changed: Zmieniono domyślne hasło administratora
text_destroy_time_entries: Usuń wpisy dziennika
text_destroy_time_entries_question: Przepracowano %{hours} godzin przy zagadnieniu, które chcesz usunąć. Co chcesz zrobić?
- text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/email.yml a następnie zrestartuj aplikację i uaktywnij to."
+ text_email_delivery_not_configured: "Dostarczanie poczty elektronicznej nie zostało skonfigurowane, więc powiadamianie jest nieaktywne.\nSkonfiguruj serwer SMTP w config/configuration.yml a następnie zrestartuj aplikację i uaktywnij to."
text_enumeration_category_reassign_to: 'Zmień przypisanie na tą wartość:'
text_enumeration_destroy_question: "%{count} obiektów jest przypisana do tej wartości."
text_file_repository_writable: Zapisywalne repozytorium plików
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/pt-BR.yml
--- a/config/locales/pt-BR.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/pt-BR.yml Tue Feb 08 13:51:46 2011 +0000
@@ -728,7 +728,7 @@
text_user_wrote: "%{value} escreveu:"
text_enumeration_destroy_question: "%{count} objetos estão atribuídos a este valor."
text_enumeration_category_reassign_to: 'Reatribuí-los ao valor:'
- text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/email.yml e reinicie a aplicação para ativá-las."
+ text_email_delivery_not_configured: "O envio de e-mail não está configurado, e as notificações estão inativas.\nConfigure seu servidor SMTP no arquivo config/configuration.yml e reinicie a aplicação para ativá-las."
default_role_manager: Gerente
default_role_developer: Desenvolvedor
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/pt.yml
--- a/config/locales/pt.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/pt.yml Tue Feb 08 13:51:46 2011 +0000
@@ -715,7 +715,7 @@
text_user_wrote: "%{value} escreveu:"
text_enumeration_destroy_question: "%{count} objectos estão atribuídos a este valor."
text_enumeration_category_reassign_to: 'Re-atribuí-los para este valor:'
- text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/email.yml e reinicie a aplicação para activar estas funcionalidades."
+ text_email_delivery_not_configured: "Entrega por e-mail não está configurada, e as notificação estão desactivadas.\nConfigure o seu servidor de SMTP em config/configuration.yml e reinicie a aplicação para activar estas funcionalidades."
default_role_manager: Gestor
default_role_developer: Programador
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/ro.yml
--- a/config/locales/ro.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/ro.yml Tue Feb 08 13:51:46 2011 +0000
@@ -774,7 +774,7 @@
text_user_wrote: "%{value} a scris:"
text_enumeration_destroy_question: "Această valoare are %{count} obiecte."
text_enumeration_category_reassign_to: 'Atribuie la această valoare:'
- text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/email.yml și reporniți aplicația pentru a le activa."
+ text_email_delivery_not_configured: "Trimiterea de emailuri nu este configurată și ca urmare, notificările sunt dezactivate.\nConfigurați serverul SMTP în config/configuration.yml și reporniți aplicația pentru a le activa."
text_repository_usernames_mapping: "Selectați sau modificați contul Redmine echivalent contului din istoricul depozitului.\nUtilizatorii cu un cont (sau e-mail) identic în Redmine și depozit sunt echivalate automat."
text_diff_truncated: '... Comparația a fost trunchiată pentru ca depășește lungimea maximă de text care poate fi afișat.'
text_custom_field_possible_values_info: 'O linie pentru fiecare valoare'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/ru.yml
--- a/config/locales/ru.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/ru.yml Tue Feb 08 13:51:46 2011 +0000
@@ -913,7 +913,7 @@
text_destroy_time_entries_question: Вы собираетесь удалить %{hours} часа(ов), прикрепленных за этой задачей.
text_destroy_time_entries: Удалить зарегистрированное время
text_diff_truncated: '... Этот diff ограничен, так как превышает максимальный отображаемый размер.'
- text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/email.yml. Для применения изменений перезапустите приложение."
+ text_email_delivery_not_configured: "Параметры работы с почтовым сервером не настроены и функция уведомления по email не активна.\nНастроить параметры для Вашего SMTP-сервера Вы можете в файле config/configuration.yml. Для применения изменений перезапустите приложение."
text_enumeration_category_reassign_to: 'Назначить им следующее значение:'
text_enumeration_destroy_question: "%{count} объект(а,ов) связаны с этим значением."
text_file_repository_writable: Хранилище с доступом на запись
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/sk.yml
--- a/config/locales/sk.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/sk.yml Tue Feb 08 13:51:46 2011 +0000
@@ -723,7 +723,7 @@
label_generate_key: Vygenerovať kľúč
setting_mail_handler_api_enabled: Zapnúť Webovú Službu (WS) pre príchodzie emaily
setting_mail_handler_api_key: API kľúč
- text_email_delivery_not_configured: "Doručenie emailov nieje nastavené, notifikácie sú vypnuté.\nNastavte váš SMTP server v config/email.yml a reštartnite aplikáciu pre aktiváciu funkcie."
+ text_email_delivery_not_configured: "Doručenie emailov nieje nastavené, notifikácie sú vypnuté.\nNastavte váš SMTP server v config/configuration.yml a reštartnite aplikáciu pre aktiváciu funkcie."
field_parent_title: Nadradená stránka
label_issue_watchers: Pozorovatelia
setting_commit_logs_encoding: Kódovanie prenášaných správ
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/sl.yml
--- a/config/locales/sl.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/sl.yml Tue Feb 08 13:51:46 2011 +0000
@@ -761,7 +761,7 @@
text_user_wrote: "%{value} je napisal(a):"
text_enumeration_destroy_question: "%{count} objektov je določenih tej vrednosti."
text_enumeration_category_reassign_to: 'Ponastavi jih na to vrednost:'
- text_email_delivery_not_configured: "E-poštna dostava ni nastavljena in oznanila so onemogočena.\nNastavite vaš SMTP strežnik v config/email.yml in ponovno zaženite aplikacijo da ga omogočite.\n"
+ text_email_delivery_not_configured: "E-poštna dostava ni nastavljena in oznanila so onemogočena.\nNastavite vaš SMTP strežnik v config/configuration.yml in ponovno zaženite aplikacijo da ga omogočite.\n"
text_repository_usernames_mapping: "Izberite ali posodobite Redmine uporabnika dodeljenega vsakemu uporabniškemu imenu najdenemu v zapisniku shrambe.\n Uporabniki z enakim Redmine ali shrambinem uporabniškem imenu ali e-poštnem naslovu so samodejno dodeljeni."
text_diff_truncated: '... Ta sprememba je bila odsekana ker presega največjo velikost ki je lahko prikazana.'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/sr-YU.yml
--- a/config/locales/sr-YU.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/sr-YU.yml Tue Feb 08 13:51:46 2011 +0000
@@ -874,7 +874,7 @@
text_user_wrote: "%{value} je napisao:"
text_enumeration_destroy_question: "%{count} objekat(a) je dodeljeno ovoj vrednosti."
text_enumeration_category_reassign_to: 'Dodeli ih ponovo ovoj vrednosti:'
- text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/email.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
+ text_email_delivery_not_configured: "Isporuka e-poruka nije konfigurisana i obaveštenja su onemogućena.\nPodesite vaš SMTP server u config/configuration.yml i pokrenite ponovo aplikaciju za njihovo omogućavanje."
text_repository_usernames_mapping: "Odaberite ili ažurirajte Redmine korisnike mapiranjem svakog korisničkog imena pronađenog u evidenciji spremišta.\nKorisnici sa istim Redmine imenom i imenom spremišta ili e-adresom su automatski mapirani."
text_diff_truncated: '... Ova razlika je isečena jer je dostignuta maksimalna veličina prikaza.'
text_custom_field_possible_values_info: 'Jedan red za svaku vrednost'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/sr.yml
--- a/config/locales/sr.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/sr.yml Tue Feb 08 13:51:46 2011 +0000
@@ -874,7 +874,7 @@
text_user_wrote: "%{value} је написао:"
text_enumeration_destroy_question: "%{count} објекат(а) је додељено овој вредности."
text_enumeration_category_reassign_to: 'Додели их поново овој вредности:'
- text_email_delivery_not_configured: "Испорука е-порука није конфигурисана и обавештења су онемогућена.\nПодесите ваш SMTP сервер у config/email.yml и покрените поново апликацију за њихово омогућавање."
+ text_email_delivery_not_configured: "Испорука е-порука није конфигурисана и обавештења су онемогућена.\nПодесите ваш SMTP сервер у config/configuration.yml и покрените поново апликацију за њихово омогућавање."
text_repository_usernames_mapping: "Одаберите или ажурирајте Redmine кориснике мапирањем сваког корисничког имена пронађеног у евиденцији спремишта.\nКорисници са истим Redmine именом и именом спремишта или е-адресом су аутоматски мапирани."
text_diff_truncated: '... Ова разлика је исечена јер је достигнута максимална величина приказа.'
text_custom_field_possible_values_info: 'Један ред за сваку вредност'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/sv.yml
--- a/config/locales/sv.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/sv.yml Tue Feb 08 13:51:46 2011 +0000
@@ -208,6 +208,7 @@
notice_unable_delete_version: Denna version var inte möjlig att ta bort.
notice_unable_delete_time_entry: Tidloggning kunde inte tas bort.
notice_issue_done_ratios_updated: % klart uppdaterade.
+ notice_gantt_chart_truncated: "Schemat förminskades eftersom det överskrider det maximala antalet aktiviteter som får visas (%{max})"
error_can_t_load_default_data: "Standardkonfiguration gick inte att läsa in: %{value}"
error_scm_not_found: "Inlägg och/eller revision finns inte i detta versionsarkiv."
@@ -217,7 +218,7 @@
error_no_tracker_in_project: 'Ingen ärendetyp är associerad med projektet. Vänligen kontrollera projektinställningarna.'
error_no_default_issue_status: 'Ingen status är definierad som standard för nya ärenden. Vänligen kontrollera din konfiguration (Gå till "Administration -> Ärendestatus").'
error_can_not_delete_custom_field: Kan inte ta bort användardefinerat fält
- error_can_not_delete_tracker: Det finns ärenden av denna typ och den är därför inte möjlig att ta bort.
+ error_can_not_delete_tracker: "Det finns ärenden av denna typ och den är därför inte möjlig att ta bort."
error_can_not_remove_role: "Denna roll används och den är därför inte möjlig att ta bort."
error_can_not_reopen_issue_on_closed_version: 'Ett ärende tilldelat en stängd version kan inte öppnas på nytt'
error_can_not_archive_project: Detta projekt kan inte arkiveras
@@ -225,7 +226,7 @@
error_workflow_copy_source: 'Vänligen välj källans ärendetyp eller roll'
error_workflow_copy_target: 'Vänligen välj ärendetyp(er) och roll(er) för mål'
error_unable_delete_issue_status: 'Ärendestatus kunde inte tas bort'
- error_unable_to_connect: Kan inte ansluta (%{value})
+ error_unable_to_connect: "Kan inte ansluta (%{value})"
warning_attachments_not_saved: "%{count} fil(er) kunde inte sparas."
@@ -240,9 +241,9 @@
mail_subject_reminder: "%{count} ärende(n) har deadline under de kommande %{days} dagarna"
mail_body_reminder: "%{count} ärende(n) som är tilldelat dig har deadline under de %{days} dagarna:"
mail_subject_wiki_content_added: "'%{id}' wikisida has lagts till"
- mail_body_wiki_content_added: The '%{id}' wikisida has lagts till av %{author}.
+ mail_body_wiki_content_added: "The '%{id}' wikisida has lagts till av %{author}."
mail_subject_wiki_content_updated: "'%{id}' wikisida har uppdaterats"
- mail_body_wiki_content_updated: The '%{id}' wikisida har uppdaterats av %{author}.
+ mail_body_wiki_content_updated: "The '%{id}' wikisida har uppdaterats av %{author}."
gui_validation_error: 1 fel
gui_validation_error_plural: "%{count} fel"
@@ -340,8 +341,8 @@
field_group_by: Gruppera resultat efter
field_sharing: Delning
field_parent_issue: Förälderaktivitet
- field_member_of_group: Tilldelad användares grupp
- field_assigned_to_role: Tilldelad användares roll
+ field_member_of_group: "Tilldelad användares grupp"
+ field_assigned_to_role: "Tilldelad användares roll"
field_text: Textfält
field_visible: Synlig
@@ -380,7 +381,7 @@
setting_activity_days_default: Dagar som visas på projektaktivitet
setting_display_subprojects_issues: Visa ärenden från underprojekt i huvudprojekt
setting_enabled_scm: Aktivera SCM
- setting_mail_handler_body_delimiters: Trunkera mail efter en av följande rader
+ setting_mail_handler_body_delimiters: "Trunkera mail efter en av följande rader"
setting_mail_handler_api_enabled: Aktivera WS för inkommande mail
setting_mail_handler_api_key: API-nyckel
setting_sequential_project_identifiers: Generera projektidentifierare sekventiellt
@@ -400,6 +401,9 @@
setting_rest_api_enabled: Aktivera REST webbtjänst
setting_cache_formatted_text: Cacha formaterad text
setting_default_notification_option: Standard notifieringsalternativ
+ setting_commit_logtime_enabled: Aktivera tidloggning
+ setting_commit_logtime_activity_id: Aktivitet för loggad tid
+ setting_gantt_items_limit: Maximalt antal aktiviteter som visas i gantt-schemat
permission_add_project: Skapa projekt
permission_add_subprojects: Skapa underprojekt
@@ -581,7 +585,7 @@
label_version_plural: Versioner
label_close_versions: Stäng klara versioner
label_confirmation: Bekräftelse
- label_export_to: Exportera till
+ label_export_to: 'Finns även som:'
label_read: Läs...
label_public_projects: Publika projekt
label_open_issues: öppen
@@ -666,7 +670,7 @@
label_tag: Tag
label_revision: Revision
label_revision_plural: Revisioner
- label_revision_id: Revision %{value}
+ label_revision_id: "Revision %{value}"
label_associated_revisions: Associerade revisioner
label_added: tillagd
label_modified: modifierad
@@ -775,10 +779,10 @@
label_search_titles_only: Sök endast i titlar
label_user_mail_option_all: "För alla händelser i mina projekt"
label_user_mail_option_selected: "För alla händelser i markerade projekt..."
- label_user_mail_option_none: Inga händelser
- label_user_mail_option_only_my_events: Endast för saker jag bevakar eller är inblandad i
- label_user_mail_option_only_assigned: Endast för saker jag är tilldelad
- label_user_mail_option_only_owner: Endast för saker jag äger
+ label_user_mail_option_none: "Inga händelser"
+ label_user_mail_option_only_my_events: "Endast för saker jag bevakar eller är inblandad i"
+ label_user_mail_option_only_assigned: "Endast för saker jag är tilldelad"
+ label_user_mail_option_only_owner: "Endast för saker jag äger"
label_user_mail_no_self_notified: "Jag vill inte bli underrättad om ändringar som jag har gjort"
label_registration_activation_by_email: kontoaktivering med mail
label_registration_manual_activation: manuell kontoaktivering
@@ -825,7 +829,7 @@
label_display_used_statuses_only: Visa endast status som används av denna ärendetyp
label_api_access_key: API-nyckel
label_missing_api_access_key: Saknar en API-nyckel
- label_api_access_key_created_on: API-nyckel skapad för %{value} sedan
+ label_api_access_key_created_on: "API-nyckel skapad för %{value} sedan"
label_profile: Profil
label_subtask_plural: Underaktiviteter
label_project_copy_notifications: Skicka mailnotifieringar när projektet kopieras
@@ -921,6 +925,7 @@
text_no_configuration_data: "Roller, ärendetyper, ärendestatus och arbetsflöden har inte konfigurerats ännu.\nDet rekommenderas att läsa in standardkonfigurationen. Du kommer att kunna göra ändringar efter att den blivit inläst."
text_load_default_configuration: Läs in standardkonfiguration
text_status_changed_by_changeset: "Tilldelad i changeset %{value}."
+ text_time_logged_by_changeset: "Tilldelad i changeset %{value}."
text_issues_destroy_confirmation: 'Är du säker på att du vill radera markerade ärende(n) ?'
text_select_project_modules: 'Välj vilka moduler som ska vara aktiva för projektet:'
text_default_administrator_account_changed: Standardadministratörens konto ändrat
@@ -934,14 +939,14 @@
text_user_wrote: "%{value} skrev:"
text_enumeration_destroy_question: "%{count} objekt är tilldelade till detta värde."
text_enumeration_category_reassign_to: 'Återtilldela till detta värde:'
- text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/email.yml och starta om applikationen för att aktivera dem."
+ text_email_delivery_not_configured: "Mailfunktionen har inte konfigurerats, och notifieringar via mail kan därför inte skickas.\nKonfigurera din SMTP-server i config/configuration.yml och starta om applikationen för att aktivera dem."
text_repository_usernames_mapping: "Välj eller uppdatera den Redmine-användare som är mappad till varje användarnamn i versionarkivloggen.\nAnvändare med samma användarnamn eller mailadress i både Redmine och versionsarkivet mappas automatiskt."
text_diff_truncated: '... Denna diff har förminskats eftersom den överskrider den maximala storlek som kan visas.'
text_custom_field_possible_values_info: 'Ett värde per rad'
- text_wiki_page_destroy_question: Denna sida har %{descendants} underliggande sidor. Vad vill du göra?
- text_wiki_page_nullify_children: Behåll undersidor som rotsidor
- text_wiki_page_destroy_children: Ta bort alla underliggande sidor
- text_wiki_page_reassign_children: Flytta undersidor till denna föräldersida
+ text_wiki_page_destroy_question: "Denna sida har %{descendants} underliggande sidor. Vad vill du göra?"
+ text_wiki_page_nullify_children: "Behåll undersidor som rotsidor"
+ text_wiki_page_destroy_children: "Ta bort alla underliggande sidor"
+ text_wiki_page_reassign_children: "Flytta undersidor till denna föräldersida"
text_own_membership_delete_confirmation: "Några av, eller alla, dina behörigheter kommer att tas bort och du kanske inte längre kommer kunna göra ändringar i det här projektet.\nVill du verkligen fortsätta?"
text_zoom_out: Zooma ut
text_zoom_in: Zooma in
@@ -972,8 +977,3 @@
enumeration_doc_categories: Dokumentkategorier
enumeration_activities: Aktiviteter (tidsuppföljning)
enumeration_system_activity: Systemaktivitet
- setting_commit_logtime_activity_id: Activity for logged time
- text_time_logged_by_changeset: Applied in changeset %{value}.
- setting_commit_logtime_enabled: Enable time logging
- notice_gantt_chart_truncated: The chart was truncated because it exceeds the maximum number of items that can be displayed (%{max})
- setting_gantt_items_limit: Maximum number of items displayed on the gantt chart
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/th.yml
--- a/config/locales/th.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/th.yml Tue Feb 08 13:51:46 2011 +0000
@@ -726,7 +726,7 @@
label_generate_key: Generate a key
setting_mail_handler_api_enabled: Enable WS for incoming emails
setting_mail_handler_api_key: API key
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
field_parent_title: Parent page
label_issue_watchers: Watchers
setting_commit_logs_encoding: Commit messages encoding
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/tr.yml
--- a/config/locales/tr.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/tr.yml Tue Feb 08 13:51:46 2011 +0000
@@ -741,7 +741,7 @@
label_generate_key: Generate a key
setting_sequential_project_identifiers: Generate sequential project identifiers
field_parent_title: Parent page
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
label_issue_watchers: Watchers
mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/uk.yml
--- a/config/locales/uk.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/uk.yml Tue Feb 08 13:51:46 2011 +0000
@@ -725,7 +725,7 @@
label_generate_key: Generate a key
setting_mail_handler_api_enabled: Enable WS for incoming emails
setting_mail_handler_api_key: API key
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
field_parent_title: Parent page
label_issue_watchers: Watchers
setting_commit_logs_encoding: Commit messages encoding
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/vi.yml
--- a/config/locales/vi.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/vi.yml Tue Feb 08 13:51:46 2011 +0000
@@ -760,7 +760,7 @@
text_user_wrote: "%{value} wrote:"
text_enumeration_destroy_question: "%{count} objects are assigned to this value."
text_enumeration_category_reassign_to: 'Reassign them to this value:'
- text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/email.yml and restart the application to enable them."
+ text_email_delivery_not_configured: "Email delivery is not configured, and notifications are disabled.\nConfigure your SMTP server in config/configuration.yml and restart the application to enable them."
default_role_manager: Điều hành
default_role_developer: Phát triển
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/zh-TW.yml
--- a/config/locales/zh-TW.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/zh-TW.yml Tue Feb 08 13:51:46 2011 +0000
@@ -979,7 +979,7 @@
text_user_wrote: "%{value} 先前提到:"
text_enumeration_destroy_question: "目前有 %{count} 個物件使用此列舉值。"
text_enumeration_category_reassign_to: '重新設定其列舉值為:'
- text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/email.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
+ text_email_delivery_not_configured: "您尚未設定電子郵件傳送方式,因此提醒選項已被停用。\n請在 config/configuration.yml 中設定 SMTP 之後,重新啟動 Redmine,以啟用電子郵件提醒選項。"
text_repository_usernames_mapping: "選擇或更新 Redmine 使用者與版本庫使用者之對應關係。\n版本庫中之使用者帳號或電子郵件信箱,與 Redmine 設定相同者,將自動產生對應關係。"
text_diff_truncated: '... 這份差異已被截短以符合顯示行數之最大值'
text_custom_field_possible_values_info: '一列輸入一個值'
diff -r 07fa8a8b56a8 -r 0579821a129a config/locales/zh.yml
--- a/config/locales/zh.yml Wed Jan 19 15:04:22 2011 +0000
+++ b/config/locales/zh.yml Tue Feb 08 13:51:46 2011 +0000
@@ -869,7 +869,7 @@
text_user_wrote: "%{value} 写到:"
text_enumeration_category_reassign_to: '将它们关联到新的枚举值:'
text_enumeration_destroy_question: "%{count} 个对象被关联到了这个枚举值。"
- text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/email.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
+ text_email_delivery_not_configured: "邮件参数尚未配置,因此邮件通知功能已被禁用。\n请在config/configuration.yml中配置您的SMTP服务器信息并重新启动以使其生效。"
text_repository_usernames_mapping: "选择或更新与版本库中的用户名对应的Redmine用户。\n版本库中与Redmine中的同名用户将被自动对应。"
text_diff_truncated: '... 差别内容超过了可显示的最大行数并已被截断'
text_custom_field_possible_values_info: '每项数值一行'
diff -r 07fa8a8b56a8 -r 0579821a129a db/.svn/all-wcprops
--- a/db/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/db/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 27
-/svn/!svn/ver/4610/trunk/db
+/svn/!svn/ver/4753/trunk/db
END
diff -r 07fa8a8b56a8 -r 0579821a129a db/.svn/dir-prop-base
--- a/db/.svn/dir-prop-base Wed Jan 19 15:04:22 2011 +0000
+++ b/db/.svn/dir-prop-base Tue Feb 08 13:51:46 2011 +0000
@@ -1,8 +1,7 @@
K 10
svn:ignore
-V 26
+V 20
schema.rb
-demo.db
-test.db
+*.sqlite3
END
diff -r 07fa8a8b56a8 -r 0579821a129a db/.svn/entries
--- a/db/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/db/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/db
http://redmine.rubyforge.org/svn
-2011-01-01T23:08:49.766359Z
-4610
-jbbarth
+2011-01-23T10:25:48.265995Z
+4753
+jplang
has-props
diff -r 07fa8a8b56a8 -r 0579821a129a db/migrate/.svn/entries
--- a/db/migrate/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/db/migrate/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/db/migrate
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.884918Z
+2011-02-08T13:45:45.000000Z
21dc29619a0cfd0f3aa12d77cc5cb132
2010-11-07T14:17:35.749175Z
4383
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
e1234fbaef167ddc0013ffe1d3bc67b9
2007-11-04T11:40:17.595469Z
881
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
0b2c38434ec4b25c41f50963a46a3bc6
2007-06-12T20:12:05.590809Z
559
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
dba48c03009eb5bcbd2f686a37c42147
2009-10-17T22:23:29.892475Z
2928
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
b17611805f3b447ec0f0b703ea8b6d10
2008-11-10T18:59:06.897210Z
2006
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
23ebbc94eb59590d0f0b200b4b38289b
2007-08-29T16:52:35.680643Z
674
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
ffabca1301a0ade41918ec9d6618fda0
2008-07-04T17:58:14.743502Z
1623
@@ -270,7 +270,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
e6ff0ff9c004d9688e79b550991ec109
2007-08-29T16:52:35.680643Z
674
@@ -304,7 +304,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
39c994e2469a6dfb97fa50cf595439e8
2007-04-25T15:06:20.062636Z
479
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
828df977f9e16943bc74595c65774c62
2007-03-10T15:09:49.115269Z
323
@@ -372,7 +372,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
eea8e3f0a1fe28e8c686af190259a3d6
2009-09-12T08:36:46.650954Z
2869
@@ -406,7 +406,7 @@
-2010-11-19T13:04:50.884918Z
+2011-02-08T13:45:45.000000Z
be338f41292d95bb7ba3caa125999de0
2010-11-14T12:33:14.198318Z
4402
@@ -440,7 +440,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
06c8b504bcdd08c2f5dcf14a0b927420
2007-11-20T15:40:16.305800Z
919
@@ -474,7 +474,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
283fb200008f4dae98e0b3d46f0b97aa
2009-10-17T22:23:29.892475Z
2928
@@ -508,7 +508,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
da329a16de705c673418c18119f788d8
2007-08-29T16:52:35.680643Z
674
@@ -542,7 +542,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
627e34913535f16f767133cbdc5b57f0
2010-11-20T09:55:06.580420Z
4413
@@ -576,7 +576,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
5bb1427a275abe1f2ec4b6b03a087cd8
2006-12-03T19:55:45.161980Z
62
@@ -610,7 +610,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
f4c10807bb47b69af35e9402966089f1
2007-02-04T09:18:40.598564Z
228
@@ -644,7 +644,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
42937036f9c414f7d9b028f629b1ce20
2007-08-29T16:52:35.680643Z
674
@@ -678,7 +678,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
c5d86ec3cda95998a3fb590c6f492b6b
2009-12-20T19:13:22.787652Z
3206
@@ -712,7 +712,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
b2f88560d10a9676bdb65e18f9a13d65
2009-10-17T22:23:29.892475Z
2928
@@ -746,7 +746,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
a269e98b11a4d0d865c82328d7af5663
2007-03-25T12:12:15.060977Z
377
@@ -780,7 +780,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
69a42a62536b1f435ce1080ceccb4c75
2009-01-17T11:18:04.652409Z
2276
@@ -814,7 +814,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
84bec26b6eaebc64c437c5a3b4784a94
2009-10-17T22:23:29.892475Z
2928
@@ -848,7 +848,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
53ee6af48c18534db0ffdd4fa5c5df7f
2008-09-13T16:31:11.005265Z
1814
@@ -882,7 +882,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
d343c3ba8f04d1cc71f20c9860d5907b
2009-05-30T23:30:36.923541Z
2777
@@ -916,7 +916,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
611baff063a1d909ba581aa98018cae7
2008-03-12T20:28:49.748698Z
1236
@@ -950,7 +950,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
f1b96e04888c0a48bf29dd0556ba8027
2007-08-29T16:52:35.680643Z
674
@@ -984,7 +984,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
72e8d36a80b63657037f175b368f2e2c
2009-10-17T22:23:29.892475Z
2928
@@ -1018,7 +1018,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
891f793e4f2ab50f57b8488c764ceff1
2008-07-04T17:58:14.743502Z
1623
@@ -1052,7 +1052,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
82595f307b6fe5053151a681b737f063
2007-04-25T15:06:20.062636Z
479
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
b175e6c85c5faf4b5d2f092f65338b10
2009-02-11T19:06:55.627694Z
2440
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
c460bb38faa03667fc34a3b131ec40df
2009-06-14T09:19:20.900273Z
2787
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
7aa35de55587b897fea800e8044039a8
2009-12-20T19:13:22.787652Z
3206
@@ -1188,7 +1188,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
e4eff12465b879f063cac04a709438b9
2010-08-22T18:42:00.112555Z
4013
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
0492f13cf6f16f90603fdd82c388bace
2007-05-08T09:26:57.307537Z
518
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
9a69054334fcbc6b72eb8b5ae9957129
2009-12-27T11:57:13.519273Z
3254
@@ -1290,7 +1290,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
b17259dfa6f46844e0f86b110577fbc6
2008-03-09T15:36:47.697904Z
1220
@@ -1324,7 +1324,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
e00a737604d0be6b94c92236e4f378eb
2009-05-10T10:54:31.775505Z
2726
@@ -1358,7 +1358,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
2fb7c5a95c8ed07756c3fbb917c98230
2007-10-22T21:07:13.432482Z
864
@@ -1392,7 +1392,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
1702102b56ee973066c86d659252a366
2007-08-29T16:52:35.680643Z
674
@@ -1426,7 +1426,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
0c630c7ad4fbe9ccbb897363a422efa6
2007-04-17T10:53:20.697217Z
447
@@ -1460,7 +1460,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
6e9fdd6731ba51e864563938c05ed9da
2010-02-21T14:40:00.085842Z
3471
@@ -1494,7 +1494,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
8e58d8ec43e40266d62fd64b4b6a9a09
2007-05-13T17:09:56.765659Z
529
@@ -1528,7 +1528,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
6350cf7f18c7d61d54bf2bfa55e108d3
2009-12-25T17:13:58.090736Z
3240
@@ -1562,7 +1562,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
3216f04b6b84aaa6d29bc0f3e5d8c462
2007-08-29T16:52:35.680643Z
674
@@ -1596,7 +1596,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
fb852fdf1ab4266ab05a36ff105b7ceb
2007-10-22T21:07:13.432482Z
864
@@ -1630,7 +1630,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
9f0c1dd813015fc37cd47062fe15ef91
2008-02-12T21:11:16.312726Z
1140
@@ -1664,7 +1664,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
e08dfbd6aca488a1513bfe7c59e2da90
2009-10-17T22:23:29.892475Z
2928
@@ -1698,7 +1698,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
767d76b65ff41dd9860747d14bb24ee1
2009-12-20T19:13:22.787652Z
3206
@@ -1732,7 +1732,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
93159e216a0265b8f239566bfb91fd8e
2009-10-17T22:23:29.892475Z
2928
@@ -1766,7 +1766,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
5fa98acba6010a7450722133bfb66962
2010-07-24T00:19:32.307471Z
3860
@@ -1800,7 +1800,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
eeff80bd1cee52d49f1eb78fab035adf
2009-10-17T22:23:29.892475Z
2928
@@ -1834,7 +1834,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
09b6720db5ea81c8e22aff9dd89fc0bd
2009-10-17T22:23:29.892475Z
2928
@@ -1868,7 +1868,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
b392b3c84d6d7b8bba99011778f5b54e
2007-11-20T20:29:03.757553Z
920
@@ -1902,7 +1902,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
2ae2d679057fe2db7b7a8bdabc2cbf6d
2009-10-17T22:23:29.892475Z
2928
@@ -1936,7 +1936,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
01a97aa31f8b9917a84790f23e0e90d1
2009-10-21T22:34:34.183882Z
2947
@@ -1970,7 +1970,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
af4786659f25d96a43468cdc4bcfae44
2009-02-11T19:06:50.454280Z
2439
@@ -2004,7 +2004,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
82e35d32f60c71db17de62592693c737
2007-10-20T12:47:05.860183Z
855
@@ -2038,7 +2038,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
3ac5fb29973ffa0ca94ac90387c73b78
2007-08-29T16:52:35.680643Z
674
@@ -2072,7 +2072,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
db7f5c6597e13933c96cb58cbbd1f0bd
2007-10-05T17:44:15.414646Z
803
@@ -2106,7 +2106,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
e61809aaf1ac8a2a290c4574ed598ff0
2007-04-02T06:29:09.277122Z
397
@@ -2140,7 +2140,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
243f136f05a508fff7ca52423f65c959
2010-03-13T17:17:10.453825Z
3578
@@ -2174,7 +2174,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
e5f0fe89be9a00fe1f8b246bde88fca1
2007-10-01T08:44:17.920088Z
782
@@ -2208,7 +2208,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
bb79c723b9d9fdabe49ed18ebb8a6caf
2009-12-11T18:48:34.197724Z
3151
@@ -2242,7 +2242,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
b8b7c422c3d666340afaec3a52c5d6a4
2007-10-22T21:07:13.432482Z
864
@@ -2276,7 +2276,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
d2251c92048ec4169e2c220f1510d803
2010-11-20T09:55:06.580420Z
4413
@@ -2310,7 +2310,7 @@
-2010-09-23T14:37:44.875728Z
+2011-02-08T13:45:45.000000Z
b740a77ff87e6390f7ad86eaf0710040
2008-08-25T16:35:20.899166Z
1764
@@ -2344,7 +2344,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
55350d451c622488f9358f7bbe12d4de
2009-10-10T10:16:00.250819Z
2905
@@ -2378,7 +2378,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
e770aa6387bb4737804d5024e743cd25
2007-08-29T16:52:35.680643Z
674
@@ -2412,7 +2412,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
4cedb1faff3054d9be6250b589882b50
2009-10-17T22:23:29.892475Z
2928
@@ -2446,7 +2446,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
4901b560613f6a0ae3e5df5bcf2dd11c
2007-04-25T16:48:01.299251Z
482
@@ -2480,7 +2480,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
0e1e45e51997617f8672e6d0d5ed8e51
2009-10-17T22:23:29.892475Z
2928
@@ -2514,7 +2514,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
f60a0c1f633a6ff65fb2734173b57fe4
2008-02-29T19:46:58.834023Z
1180
@@ -2548,7 +2548,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
31acec69fd7efa0c26dec61f860b0c85
2007-09-09T17:05:38.846724Z
720
@@ -2582,7 +2582,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
871a600c06a6965f52c63177a82fbe15
2009-10-17T22:23:29.892475Z
2928
@@ -2616,7 +2616,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
320b459ced6ed78d09a3743ad60b3200
2009-01-18T10:54:08.545108Z
2279
@@ -2650,7 +2650,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
cf04e90903f0d068e4503cb465026ef7
2008-05-25T13:37:29.456358Z
1457
@@ -2684,7 +2684,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
5be8fe0eee7c90901f9ba49030412f40
2008-05-04T15:05:38.117137Z
1415
@@ -2718,7 +2718,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
07bf6636d0acf3ec84b38648bbe2c07a
2007-04-21T12:09:07.794422Z
454
@@ -2752,7 +2752,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
be494b64b18017ebe3ccdff9a34abdbd
2007-11-24T12:25:07.449637Z
926
@@ -2786,7 +2786,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
0abbef63f1f391688df012906a94877b
2008-03-09T18:25:37.323226Z
1222
@@ -2820,7 +2820,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
a574e8a4f8f80a464ca2b8bcbd43287f
2007-09-15T14:54:15.583528Z
731
@@ -2854,7 +2854,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
cd7530e8030bf9e675ca5922c2494d83
2007-03-10T15:09:49.115269Z
323
@@ -2888,7 +2888,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:45.000000Z
7a04693ea608e342b463c73c461b2da0
2011-01-01T23:08:49.766359Z
4610
@@ -2922,7 +2922,7 @@
-2010-09-23T14:37:44.931783Z
+2011-02-08T13:45:45.000000Z
d1a11dec6b93af060f84f9b2a1e36421
2010-03-13T14:56:49.379682Z
3573
@@ -2956,7 +2956,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
f1661157bd19c5fd4f7a4244745571bf
2007-08-29T16:52:35.680643Z
674
@@ -2990,7 +2990,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
8381c8e67d31387ec86e821025f5ae8b
2007-03-09T18:03:31.183366Z
319
@@ -3024,7 +3024,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
f8359b001e33e9508d158589c81f7bee
2007-02-03T12:57:33.179243Z
223
@@ -3058,7 +3058,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
63b0f6e295adf5f1d1eee803e4cc6287
2009-01-24T11:48:38.049684Z
2305
@@ -3092,7 +3092,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
668305a363cf6997eb9f2259d00cc26d
2009-03-19T00:01:24.358528Z
2599
@@ -3126,7 +3126,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
c8a6c8715446f22f6a3f4e2040dd873d
2007-11-19T22:28:43.818228Z
917
@@ -3160,7 +3160,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
7f2d97409681d462705d00de37e78476
2008-10-18T10:07:49.851665Z
1938
@@ -3194,7 +3194,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
d885a13afc268875b79c4cbf9524f3e8
2009-02-08T17:24:39.400993Z
2415
@@ -3228,7 +3228,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
aa67262417630fc088eb57df8d2dd9d3
2007-08-16T17:47:41.639068Z
649
@@ -3262,7 +3262,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
528b6095ca0376cecdd966ddd0b345c4
2006-12-16T13:37:32.633739Z
95
@@ -3296,7 +3296,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
2d559ef99ec458f472f5c22c0a8bf5f4
2007-08-29T16:52:35.680643Z
674
@@ -3330,7 +3330,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
dc28d8674409819b866f6d878b33d288
2007-04-24T13:57:27.960164Z
473
@@ -3364,7 +3364,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
a7d8c7f023a76a8dbb0d0950797c08f8
2008-02-12T21:11:16.312726Z
1140
@@ -3398,7 +3398,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
ba997a6179b5ab0f421b149c54725357
2008-01-15T20:40:59.035860Z
1069
@@ -3432,7 +3432,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
e256cf4a148fd48c409ea6983d569e7d
2009-10-17T22:23:29.892475Z
2928
@@ -3466,7 +3466,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
02bfb0be1b161bd757a75f69bfe79bc7
2008-03-09T18:25:37.323226Z
1222
@@ -3500,7 +3500,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
f77d77e81db6f6ac5bb3844255f8ab33
2008-03-12T20:28:49.748698Z
1236
@@ -3534,7 +3534,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
5d4b3c5646cc6c136e706ac5d7e0b377
2009-02-14T19:06:44.812480Z
2466
@@ -3568,7 +3568,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
90bb42121a57db140491ecb2a0763d00
2009-10-17T22:23:29.892475Z
2928
@@ -3602,7 +3602,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
b61285ac64245c1571e536a8c7e05a94
2007-06-12T20:12:05.590809Z
559
@@ -3636,7 +3636,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
e00f8e7739afbb2d07a21decd1422a0a
2008-09-21T20:38:36.877257Z
1896
@@ -3670,7 +3670,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
708c039fe82ad86e9930122cac4757b1
2007-08-31T17:45:32.784580Z
685
@@ -3704,7 +3704,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
4bfd0623186217eee4346313f148ea7a
2009-10-17T22:23:29.892475Z
2928
@@ -3738,7 +3738,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
71d997c1a32c4ba3dd4b31a34885fc7a
2009-12-29T14:53:29.047095Z
3259
@@ -3772,7 +3772,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
e8d897645c7176e7fd23f1578b882b5f
2009-10-17T22:23:29.892475Z
2928
@@ -3806,7 +3806,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
9ddb69b602d6d3ee5da01f8a9e9f78db
2007-08-29T16:52:35.680643Z
674
@@ -3840,7 +3840,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
055f00efdb87ff8934c36d5eb99b741f
2009-09-12T08:36:46.650954Z
2869
@@ -3874,7 +3874,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
27279bf98b3155975ce59a359d0a29aa
2009-05-10T11:18:09.335765Z
2729
@@ -3908,7 +3908,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
3af07746c4eab3a1716744971ac26ffc
2007-06-12T20:12:05.590809Z
559
@@ -3942,7 +3942,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
67d6e1898c150c8df560cb2ce8a2f2d7
2007-08-29T16:52:35.680643Z
674
@@ -3976,7 +3976,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
596f1acbdbc340c39d19f19f7b4cb6c6
2007-08-29T16:52:35.680643Z
674
@@ -4010,7 +4010,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
46effb13ff7d1a62b7b8c93afc7da9c8
2009-01-24T11:31:15.122844Z
2304
@@ -4044,7 +4044,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
e7e163729c56cd9807450574d2beeda8
2007-10-16T19:19:10.481742Z
845
@@ -4078,7 +4078,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
4ed0fffe6158eeda69a021c362f61157
2007-11-24T12:25:07.449637Z
926
@@ -4112,7 +4112,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
22e6afc0519b7befbae2c4a4433c20f5
2009-10-17T22:23:29.892475Z
2928
@@ -4146,7 +4146,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
8251942eb30b7c709ac6e3dc1ab5eedb
2009-10-17T22:23:29.892475Z
2928
@@ -4180,7 +4180,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
886411cb32a18ec492acc798194210af
2009-11-14T12:08:47.175978Z
3039
@@ -4214,7 +4214,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
16792ab92fda3a70516d55a011c01fce
2009-05-10T10:54:31.775505Z
2726
@@ -4248,7 +4248,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
4c220f0316e1b04fa8350f0309698f24
2009-10-17T22:23:29.892475Z
2928
@@ -4282,7 +4282,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
0c0cee6df5f26eb3378c9b22a1162a5a
2009-05-30T23:30:36.923541Z
2777
@@ -4316,7 +4316,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
6a4944f1162c00f2405200fb38773886
2007-06-14T18:26:27.748707Z
564
@@ -4350,7 +4350,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
6e59569f25a79a0a75797fa4ebb60936
2007-08-29T16:52:35.680643Z
674
@@ -4384,7 +4384,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
00a100c0ca092df63e8542fc6d0bc78c
2007-03-18T15:48:05.787958Z
344
@@ -4418,7 +4418,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
ee71a22f869c9dbee6f322ad25f45934
2009-12-06T10:28:20.099964Z
3123
@@ -4452,7 +4452,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
21d40b6390e67409bad1d4525c26accb
2009-10-17T22:23:29.892475Z
2928
@@ -4486,7 +4486,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
1b013e3bbb624874d78eaf3332ccb3d5
2007-03-26T16:41:54.592250Z
383
@@ -4520,7 +4520,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
e658f4ed3c99264bf4c036b87b8cf39f
2007-05-27T17:42:04.537618Z
549
@@ -4554,7 +4554,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
4d0267b0a9d4cb2ec782d10247a4c33f
2009-01-24T11:31:15.122844Z
2304
@@ -4588,7 +4588,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
eef7b68156646d86ea515aed9aa525ed
2009-10-17T22:23:29.892475Z
2928
@@ -4622,7 +4622,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
1567606924d88ae66474e848de86577a
2009-10-21T22:34:28.905707Z
2946
@@ -4656,7 +4656,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
ccfd197b34214a0d74d952aa65dcd5a6
2008-03-09T18:25:37.323226Z
1222
@@ -4690,7 +4690,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
f5ae107f30300b547d535ddc5b1b999c
2009-09-12T08:36:46.650954Z
2869
@@ -4724,7 +4724,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
9cef93921160d49f5d3aa4968ecc4eb1
2007-10-22T21:07:13.432482Z
864
@@ -4758,7 +4758,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
6c70abafef3dc834c722ed7135d6a7df
2009-10-17T22:23:29.892475Z
2928
@@ -4792,7 +4792,7 @@
-2010-11-19T13:04:50.888959Z
+2011-02-08T13:45:45.000000Z
0000368c453072e56da62defbc80441e
2010-11-14T12:33:14.198318Z
4402
@@ -4826,7 +4826,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
cf095d9afbc6429b8d759eb737a0781f
2009-10-21T22:34:34.183882Z
2947
@@ -4860,7 +4860,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
9aa91971db6c6f14ddd1ae768085b0a8
2009-10-17T22:23:29.892475Z
2928
@@ -4894,7 +4894,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
3e5f2220de578b306ce323997c495db6
2006-11-12T18:50:30.642587Z
44
@@ -4928,7 +4928,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
0fb07bc55cf61720437b40e4ae244e05
2006-12-03T20:51:17.306207Z
63
@@ -4962,7 +4962,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
417051f45603460a17909e4a5029c779
2007-08-29T16:52:35.680643Z
674
@@ -4996,7 +4996,7 @@
-2010-09-23T14:37:44.883725Z
+2011-02-08T13:45:45.000000Z
a62243f0bc2f1b1b11a47da172d011a5
2007-04-25T15:06:20.062636Z
479
@@ -5030,7 +5030,7 @@
-2010-09-23T14:37:44.895727Z
+2011-02-08T13:45:45.000000Z
96962340557b9a1f70a215d88b07c2c1
2007-09-14T11:34:08.234701Z
725
@@ -5064,7 +5064,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
8ad3f0193d5e3b8d52293bbf2828c2d2
2009-10-17T22:23:29.892475Z
2928
@@ -5098,7 +5098,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
fd6ccbccc44ceccab8de7c3c48696ecc
2009-10-17T22:23:29.892475Z
2928
@@ -5132,7 +5132,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
1798d606a43c6a29029535c28b49beff
2007-09-04T22:07:44.613701Z
702
@@ -5166,7 +5166,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
d714e81a7a9c29b60e405233765cbd33
2007-08-29T16:52:35.680643Z
674
@@ -5200,7 +5200,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
a27ef00d6ec6b3f4dc63ad004181c10e
2008-01-20T23:38:55.025648Z
1091
@@ -5234,7 +5234,7 @@
-2010-09-23T14:37:44.875728Z
+2011-02-08T13:45:45.000000Z
497529b269185b1833b959c98db3c1d1
2007-08-29T16:52:35.680643Z
674
@@ -5268,7 +5268,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
d39d0037e4f06dfb7db18d9082608832
2009-10-17T22:23:29.892475Z
2928
@@ -5302,7 +5302,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
79d11b147c1061901a888d89c3e5029b
2009-10-17T22:23:29.892475Z
2928
@@ -5336,7 +5336,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
1cbe32e981634898d5b0f80b2c63798b
2007-12-14T18:54:55.323993Z
994
@@ -5370,7 +5370,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
717687210dcbeeebff8337561a427e70
2007-05-05T13:22:27.245135Z
506
@@ -5404,7 +5404,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
05c7ea8c5dc45498164a324f7db2887a
2006-12-10T18:35:48.564790Z
81
@@ -5438,7 +5438,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
ce38342dea044adf8b277f6483f1a742
2009-03-12T18:06:54.054174Z
2572
@@ -5472,7 +5472,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
dbeea4ad5a501200711cb4195856597e
2009-10-17T22:23:29.892475Z
2928
@@ -5506,7 +5506,7 @@
-2010-09-23T14:37:44.911755Z
+2011-02-08T13:45:45.000000Z
4c1203f40e8e7b568ddce15af4f3ad9b
2008-11-10T18:59:06.897210Z
2006
@@ -5540,7 +5540,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
c62ac2ca3e59bb91e5bb4e206abdaed1
2007-04-25T15:06:20.062636Z
479
@@ -5574,7 +5574,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
3bb4b5f081354ea7d943f0b7c6f07284
2007-08-29T16:52:35.680643Z
674
@@ -5608,7 +5608,7 @@
-2010-09-23T14:37:44.915753Z
+2011-02-08T13:45:45.000000Z
3460b737f353524921cfd9ac4199fc44
2009-03-12T19:49:39.983871Z
2580
@@ -5642,7 +5642,7 @@
-2010-09-23T14:37:44.887754Z
+2011-02-08T13:45:45.000000Z
560e67e7b88186a0e21a2f614b6d83c7
2007-08-29T16:52:35.680643Z
674
@@ -5676,7 +5676,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
c22348c101d1a03b2d808cb89b3175a5
2007-06-12T20:12:05.590809Z
559
@@ -5710,7 +5710,7 @@
-2010-09-23T14:37:44.927757Z
+2011-02-08T13:45:45.000000Z
87d90f2ce2101811b7aaf0031a74e0c1
2009-10-25T16:56:46.187627Z
2981
@@ -5744,7 +5744,7 @@
-2010-09-23T14:37:44.891758Z
+2011-02-08T13:45:45.000000Z
84fe06ac7cefc2eebba29ac872241d88
2007-06-29T17:21:37.739022Z
577
@@ -5778,7 +5778,7 @@
-2010-09-23T14:37:44.875728Z
+2011-02-08T13:45:45.000000Z
d7a9aad3796f37d70ac2ab4af9c80656
2007-08-29T16:52:35.680643Z
674
@@ -5812,7 +5812,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
defb118deb2deb23648d50da5cf71047
2006-12-24T13:38:45.881735Z
106
@@ -5846,7 +5846,7 @@
-2010-09-23T14:37:44.919754Z
+2011-02-08T13:45:45.000000Z
89cbe3b06f14ba6d9a5cda47f4239f60
2009-04-26T13:09:14.221938Z
2696
@@ -5880,7 +5880,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
f2e06da76555942fd3017134d618bbac
2007-08-29T16:52:35.680643Z
674
@@ -5914,7 +5914,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
5ff56d564f2da50c289c1dfd90053a4b
2008-03-05T09:16:19.220849Z
1189
@@ -5948,7 +5948,7 @@
-2010-09-23T14:37:44.923753Z
+2011-02-08T13:45:45.000000Z
0ae6a6924263cf5317b539c81b952f03
2009-10-17T22:23:29.892475Z
2928
@@ -5982,7 +5982,7 @@
-2010-09-23T14:37:44.879727Z
+2011-02-08T13:45:45.000000Z
121548a48360a22daa537af42ee8902b
2007-01-21T11:50:22.864544Z
167
@@ -6016,7 +6016,7 @@
-2010-09-23T14:37:44.899726Z
+2011-02-08T13:45:45.000000Z
e50cfa8ef5216f0f7d266dac1e38c9da
2008-07-26T11:46:24.917066Z
1698
diff -r 07fa8a8b56a8 -r 0579821a129a doc/.svn/all-wcprops
--- a/doc/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 28
-/svn/!svn/ver/4670/trunk/doc
+/svn/!svn/ver/4784/trunk/doc
END
UPGRADING
K 25
svn:wc:ra_dav:version-url
V 38
-/svn/!svn/ver/3848/trunk/doc/UPGRADING
+/svn/!svn/ver/4752/trunk/doc/UPGRADING
END
RUNNING_TESTS
K 25
@@ -25,13 +25,13 @@
K 25
svn:wc:ra_dav:version-url
V 36
-/svn/!svn/ver/4567/trunk/doc/INSTALL
+/svn/!svn/ver/4752/trunk/doc/INSTALL
END
CHANGELOG
K 25
svn:wc:ra_dav:version-url
V 38
-/svn/!svn/ver/4670/trunk/doc/CHANGELOG
+/svn/!svn/ver/4784/trunk/doc/CHANGELOG
END
COPYING
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a doc/.svn/entries
--- a/doc/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/doc
http://redmine.rubyforge.org/svn
-2011-01-09T15:57:44.051951Z
-4670
+2011-01-30T14:37:23.564601Z
+4784
jplang
@@ -32,11 +32,11 @@
-2010-09-23T14:37:44.939791Z
-b728be27d68a5bc46292d5e9d2ae5260
-2010-07-18T15:19:04.080578Z
-3848
-edavis10
+2011-02-08T13:49:52.000000Z
+c87e4b9ee82c334658b1c76106dfd469
+2011-01-23T10:22:00.456857Z
+4752
+jplang
has-props
@@ -58,7 +58,7 @@
-1794
+1949
RUNNING_TESTS
file
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.939791Z
+2011-02-08T13:45:46.000000Z
cc987c3ab1bf29e6ebe5313bef953b5b
2010-02-16T16:40:50.914879Z
3438
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.939791Z
+2011-02-08T13:45:46.000000Z
ba2ffee528eae310e20bf761619bc85f
2008-08-11T20:49:52.309238Z
1732
@@ -134,10 +134,10 @@
-2011-01-13T14:09:38.000000Z
-1e44cb9fd6df3d50661a812598996dcb
-2010-12-23T10:03:32.666117Z
-4567
+2011-02-08T13:49:52.000000Z
+daf24adc36bb93a3d0e1c5a7e4b14fc5
+2011-01-23T10:22:00.456857Z
+4752
jplang
has-props
@@ -160,7 +160,7 @@
-2987
+3003
CHANGELOG
file
@@ -168,10 +168,10 @@
-2011-01-13T14:09:38.000000Z
-dd376ebfe28816365c8c71db0212c730
-2011-01-09T15:57:44.051951Z
-4670
+2011-02-08T13:49:52.000000Z
+a6dd03cb1256e4bf125b81d353206416
+2011-01-30T14:37:23.564601Z
+4784
jplang
has-props
@@ -194,7 +194,7 @@
-84248
+85714
COPYING
file
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.935786Z
+2011-02-08T13:45:46.000000Z
751419260aa954499f7abaabaa882bbe
2007-11-04T13:19:42.552822Z
883
@@ -236,7 +236,7 @@
-2010-11-19T14:03:48.248927Z
+2011-02-08T13:45:46.000000Z
cc77650493d11d18eabb058fbdf7ac24
2010-10-22T17:18:11.628381Z
4273
diff -r 07fa8a8b56a8 -r 0579821a129a doc/.svn/text-base/CHANGELOG.svn-base
--- a/doc/.svn/text-base/CHANGELOG.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/.svn/text-base/CHANGELOG.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -4,6 +4,29 @@
Copyright (C) 2006-2011 Jean-Philippe Lang
http://www.redmine.org/
+== 2011-01-30 v1.1.1
+
+* Defect #4899: Redmine fails to list files for darcs repository
+* Defect #7245: Wiki fails to find pages with cyrillic characters using postgresql
+* Defect #7256: redmine/public/.htaccess must be moved for non-fastcgi installs/upgrades
+* Defect #7258: Automatic spent time logging does not work properly with SQLite3
+* Defect #7259: Released 1.1.0 uses "devel" label inside admin information
+* Defect #7265: "Loading..." icon does not disappear after add project member
+* Defect #7266: Test test_due_date_distance_in_words fail due to undefined locale
+* Defect #7274: CSV value separator in dutch locale
+* Defect #7277: Enabling gravatas causes usernames to overlap first name field in user list
+* Defect #7294: "Notifiy for only project I select" is not available anymore in 1.1.0
+* Defect #7307: HTTP 500 error on query for empty revision
+* Defect #7313: Label not translated in french in Settings/Email Notification tab
+* Defect #7329: with long strings may hang server
+* Defect #7337: My page french translation
+* Defect #7348: French Translation of "Connection"
+* Defect #7385: Error when viewing an issue which was related to a deleted subtask
+* Defect #7386: NoMethodError on pdf export
+* Defect #7415: Darcs adapter recognizes new files as modified files above Darcs 2.4
+* Defect #7421: no email sent with 'Notifiy for any event on the selected projects only'
+* Feature #5344: Update to latest CodeRay 0.9.x
+
== 2011-01-09 v1.1.0
* Defect #2038: Italics in wiki headers show-up wrong in the toc
diff -r 07fa8a8b56a8 -r 0579821a129a doc/.svn/text-base/INSTALL.svn-base
--- a/doc/.svn/text-base/INSTALL.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/.svn/text-base/INSTALL.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -80,8 +80,8 @@
== SMTP server Configuration
-Copy config/email.yml.example to config/email.yml and edit this file
-to adjust your SMTP settings.
+Copy config/configuration.yml.example to config/configuration.yml and
+edit this file to adjust your SMTP settings.
Do not forget to restart the application after any change to this file.
Please do not enter your SMTP settings in environment.rb.
diff -r 07fa8a8b56a8 -r 0579821a129a doc/.svn/text-base/UPGRADING.svn-base
--- a/doc/.svn/text-base/UPGRADING.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/.svn/text-base/UPGRADING.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -10,8 +10,10 @@
1. Uncompress the program archive in a new directory
2. Copy your database settings (RAILS_ROOT/config/database.yml)
- and SMTP settings (RAILS_ROOT/config/email.yml) into the new
- config directory
+ and your configuration file (RAILS_ROOT/config/configuration.yml)
+ into the new config directory
+ Note: before Redmine 1.2, SMTP configuration was stored in
+ config/email.yml. It should now be stored in config/configuration.yml.
3. Copy the RAILS_ROOT/files directory content into your new installation
This directory contains all the attached files.
diff -r 07fa8a8b56a8 -r 0579821a129a doc/CHANGELOG
--- a/doc/CHANGELOG Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/CHANGELOG Tue Feb 08 13:51:46 2011 +0000
@@ -4,6 +4,29 @@
Copyright (C) 2006-2011 Jean-Philippe Lang
http://www.redmine.org/
+== 2011-01-30 v1.1.1
+
+* Defect #4899: Redmine fails to list files for darcs repository
+* Defect #7245: Wiki fails to find pages with cyrillic characters using postgresql
+* Defect #7256: redmine/public/.htaccess must be moved for non-fastcgi installs/upgrades
+* Defect #7258: Automatic spent time logging does not work properly with SQLite3
+* Defect #7259: Released 1.1.0 uses "devel" label inside admin information
+* Defect #7265: "Loading..." icon does not disappear after add project member
+* Defect #7266: Test test_due_date_distance_in_words fail due to undefined locale
+* Defect #7274: CSV value separator in dutch locale
+* Defect #7277: Enabling gravatas causes usernames to overlap first name field in user list
+* Defect #7294: "Notifiy for only project I select" is not available anymore in 1.1.0
+* Defect #7307: HTTP 500 error on query for empty revision
+* Defect #7313: Label not translated in french in Settings/Email Notification tab
+* Defect #7329: with long strings may hang server
+* Defect #7337: My page french translation
+* Defect #7348: French Translation of "Connection"
+* Defect #7385: Error when viewing an issue which was related to a deleted subtask
+* Defect #7386: NoMethodError on pdf export
+* Defect #7415: Darcs adapter recognizes new files as modified files above Darcs 2.4
+* Defect #7421: no email sent with 'Notifiy for any event on the selected projects only'
+* Feature #5344: Update to latest CodeRay 0.9.x
+
== 2011-01-09 v1.1.0
* Defect #2038: Italics in wiki headers show-up wrong in the toc
diff -r 07fa8a8b56a8 -r 0579821a129a doc/INSTALL
--- a/doc/INSTALL Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/INSTALL Tue Feb 08 13:51:46 2011 +0000
@@ -80,8 +80,8 @@
== SMTP server Configuration
-Copy config/email.yml.example to config/email.yml and edit this file
-to adjust your SMTP settings.
+Copy config/configuration.yml.example to config/configuration.yml and
+edit this file to adjust your SMTP settings.
Do not forget to restart the application after any change to this file.
Please do not enter your SMTP settings in environment.rb.
diff -r 07fa8a8b56a8 -r 0579821a129a doc/UPGRADING
--- a/doc/UPGRADING Wed Jan 19 15:04:22 2011 +0000
+++ b/doc/UPGRADING Tue Feb 08 13:51:46 2011 +0000
@@ -10,8 +10,10 @@
1. Uncompress the program archive in a new directory
2. Copy your database settings (RAILS_ROOT/config/database.yml)
- and SMTP settings (RAILS_ROOT/config/email.yml) into the new
- config directory
+ and your configuration file (RAILS_ROOT/config/configuration.yml)
+ into the new config directory
+ Note: before Redmine 1.2, SMTP configuration was stored in
+ config/email.yml. It should now be stored in config/configuration.yml.
3. Copy the RAILS_ROOT/files directory content into your new installation
This directory contains all the attached files.
diff -r 07fa8a8b56a8 -r 0579821a129a extra/.svn/entries
--- a/extra/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/mail_handler/.svn/entries
--- a/extra/mail_handler/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/mail_handler/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/mail_handler
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-19T15:03:32.000000Z
+2011-02-08T13:45:46.000000Z
f3a0f406bd2e6d3caacb7e7c22079df0
2011-01-15T14:48:33.715032Z
4725
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/.svn/entries
--- a/extra/sample_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin
http://redmine.rubyforge.org/svn
@@ -44,7 +44,7 @@
-2010-09-23T14:37:44.963747Z
+2011-02-08T13:45:46.000000Z
cb8636f8b6659a091f3e1f018a64a2f5
2009-07-02T18:40:06.298867Z
2798
@@ -78,7 +78,7 @@
-2010-09-23T14:37:44.943755Z
+2011-02-08T13:45:46.000000Z
4d87ae4412bda3ec3b4c9a8bc17fafb6
2009-02-26T16:37:48.671184Z
2530
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/.svn/entries
--- a/extra/sample_plugin/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/controllers/.svn/entries
--- a/extra/sample_plugin/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.943755Z
+2011-02-08T13:45:46.000000Z
9e3b32d475f8b06df8d45b28a2732d76
2009-02-21T11:04:50.579477Z
2493
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/models/.svn/entries
--- a/extra/sample_plugin/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.947762Z
+2011-02-08T13:45:46.000000Z
5161ccc668c61730638ef23bec50232f
2008-07-27T19:18:35.954247Z
1704
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/views/.svn/entries
--- a/extra/sample_plugin/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/views/example/.svn/entries
--- a/extra/sample_plugin/app/views/example/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/views/example/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/example
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.947762Z
+2011-02-08T13:45:46.000000Z
674cc3fb92754e41d7e7d5fb7ed0eda7
2007-09-23T18:50:53.732551Z
753
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.947762Z
+2011-02-08T13:45:46.000000Z
cf9e02439886339b70ee199313902c96
2007-09-23T18:50:53.732551Z
753
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/views/my/.svn/entries
--- a/extra/sample_plugin/app/views/my/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/views/my/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/views/my/blocks/.svn/entries
--- a/extra/sample_plugin/app/views/my/blocks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/views/my/blocks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my/blocks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.951756Z
+2011-02-08T13:45:46.000000Z
e2d729cf488b7b7411cffb259c10559a
2009-02-26T16:36:56.835799Z
2529
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/app/views/settings/.svn/entries
--- a/extra/sample_plugin/app/views/settings/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/app/views/settings/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/settings
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.951756Z
+2011-02-08T13:45:46.000000Z
065925dde040b66230ae06437114c77f
2009-07-02T18:40:06.298867Z
2798
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/assets/.svn/entries
--- a/extra/sample_plugin/assets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/assets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/assets/images/.svn/entries
--- a/extra/sample_plugin/assets/images/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/assets/images/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.955797Z
+2011-02-08T13:45:46.000000Z
81bcc262c08473fa7cb05cc78176652f
2007-09-23T18:50:53.732551Z
753
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/assets/stylesheets/.svn/entries
--- a/extra/sample_plugin/assets/stylesheets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/assets/stylesheets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.955797Z
+2011-02-08T13:45:46.000000Z
ced97da84497db69b30e6e17a55c3fb9
2007-09-23T18:50:53.732551Z
753
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/config/.svn/entries
--- a/extra/sample_plugin/config/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/config/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/config/locales/.svn/entries
--- a/extra/sample_plugin/config/locales/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/config/locales/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.959754Z
+2011-02-08T13:45:46.000000Z
c1dc7060239e61ce13e8840b305000c5
2009-02-08T16:13:02.919112Z
2413
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.959754Z
+2011-02-08T13:45:46.000000Z
989492284a42bf9777e2bd0d39b40254
2009-02-08T16:13:02.919112Z
2413
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/db/.svn/entries
--- a/extra/sample_plugin/db/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/db/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a extra/sample_plugin/db/migrate/.svn/entries
--- a/extra/sample_plugin/db/migrate/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/sample_plugin/db/migrate/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db/migrate
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.963747Z
+2011-02-08T13:45:46.000000Z
2316ab57f3d60b7f04b4bdfdebf6fd8e
2008-07-27T19:10:56.352148Z
1703
diff -r 07fa8a8b56a8 -r 0579821a129a extra/svn/.svn/entries
--- a/extra/svn/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/extra/svn/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/extra/svn
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.864947Z
+2011-02-08T13:45:46.000000Z
a0d169b0fc20459335e531e4f3921ede
2010-10-24T21:00:05.611798Z
4288
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.967747Z
+2011-02-08T13:45:46.000000Z
f41d78e45e03554626edf5e4e6663d80
2007-04-02T19:01:31.084001Z
402
@@ -100,7 +100,7 @@
-2010-11-19T13:04:50.864947Z
+2011-02-08T13:45:46.000000Z
5ed4546a59c9729cbd9b407ad0996b9b
2010-10-29T22:55:50.222644Z
4309
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.963747Z
+2011-02-08T13:45:46.000000Z
96fdfe0a7a4913dbbfc1b871d7abab02
2007-04-01T19:43:59.029417Z
396
diff -r 07fa8a8b56a8 -r 0579821a129a files/.svn/entries
--- a/files/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/files/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/files
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.967747Z
+2011-02-08T13:45:46.000000Z
ae0415159f2c4dba3fc1a559d4c0f9f5
2006-06-28T18:11:03.549769Z
4
diff -r 07fa8a8b56a8 -r 0579821a129a lib/.svn/all-wcprops
--- a/lib/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 28
-/svn/!svn/ver/4688/trunk/lib
+/svn/!svn/ver/4797/trunk/lib
END
faster_csv.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a lib/.svn/entries
--- a/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
@@ -38,7 +38,7 @@
-2010-09-23T14:37:44.983792Z
+2011-02-08T13:45:46.000000Z
1657561b457dadfa5d004a393bdd1a2e
2009-11-04T13:22:26.440808Z
3007
@@ -78,7 +78,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
a25bf842b86584d0d77844d95b6ab907
2010-12-04T17:43:39.823144Z
4466
@@ -112,7 +112,7 @@
-2010-09-23T14:37:45.055767Z
+2011-02-08T13:45:46.000000Z
9d8fb5ede85fd780f018b74b36a83034
2010-06-20T19:03:09.888571Z
3804
@@ -149,7 +149,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
d76edcf3565b73d5e63e37d3e1c72512
2010-12-05T10:09:18.457497Z
4468
@@ -183,7 +183,7 @@
-2010-09-23T14:37:44.983792Z
+2011-02-08T13:45:46.000000Z
55e7cfa4fcb3619e9939d29336ecdf02
2008-03-11T19:33:38.611682Z
1227
@@ -217,7 +217,7 @@
-2010-09-23T14:37:44.983792Z
+2011-02-08T13:45:46.000000Z
1ecc6c4c4ae6aa3e75600673b4b78add
2009-08-15T22:41:40.505056Z
2840
diff -r 07fa8a8b56a8 -r 0579821a129a lib/SVG/.svn/entries
--- a/lib/SVG/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/SVG/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/SVG
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.975748Z
+2011-02-08T13:45:46.000000Z
393a5ca445f6965873eca0259a17f833
2007-03-25T17:11:46.804742Z
380
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
072cf60873854a186c6eba9b74dbe389
2007-03-25T17:11:46.804742Z
380
diff -r 07fa8a8b56a8 -r 0579821a129a lib/SVG/Graph/.svn/entries
--- a/lib/SVG/Graph/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/SVG/Graph/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/SVG/Graph
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
0a49ed37717b08c6bccdc843a03a333d
2009-03-30T19:58:17.407192Z
2642
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
55ff835de5a0fb0fd2d6a236b1c5c436
2009-03-30T19:58:17.407192Z
2642
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
a39e9963eaae7bb913b6d8d2dfe0506f
2009-03-30T19:58:17.407192Z
2642
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
184772c0f1732eadf12b0e8bc9e172f7
2009-03-30T19:58:17.407192Z
2642
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
fad5865539cbd7ba3433fd6d47b9d3f2
2009-11-07T10:40:54.677820Z
3017
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
cc9051d7617dfe6dd6cc47fe83fd6ec4
2009-03-30T19:58:17.407192Z
2642
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
f092a4b0f16876381bc9283058eeb48c
2007-03-25T17:11:46.804742Z
380
@@ -270,7 +270,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
73dbcb4a1cba46b4e46a81881d24ff1a
2009-03-30T19:58:17.407192Z
2642
@@ -304,7 +304,7 @@
-2010-09-23T14:37:44.979747Z
+2011-02-08T13:45:46.000000Z
d8e95d0e507a02a74a5ac3435560d3bd
2007-03-25T17:11:46.804742Z
380
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/.svn/entries
--- a/lib/generators/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin/.svn/entries
--- a/lib/generators/redmine_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.987751Z
+2011-02-08T13:45:46.000000Z
334056a407de9091bb8774ba986c53f9
2009-06-10T03:39:02.884087Z
2785
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.987751Z
+2011-02-08T13:45:46.000000Z
be5d60ef31ac822cd5650ab976dcc543
2009-06-10T03:39:02.884087Z
2785
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin/templates/.svn/entries
--- a/lib/generators/redmine_plugin/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.987751Z
+2011-02-08T13:45:46.000000Z
2d39c559d341be440cb60911ef125dd9
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.987751Z
+2011-02-08T13:45:46.000000Z
d97a21936cfb77543031f7d9a5d5131a
2008-10-25T04:37:31.779636Z
1949
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.991758Z
+2011-02-08T13:45:46.000000Z
d14592489e5b7d34b33d2487f4770b7d
2008-10-25T04:37:31.779636Z
1949
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.991758Z
+2011-02-08T13:45:46.000000Z
ab791ada26df5c9c1a13b771e988a36f
2009-06-10T03:39:02.884087Z
2785
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.991758Z
+2011-02-08T13:45:46.000000Z
39cb16a49db6c72cdd7a63447d5b188f
2010-06-17T19:02:13.409991Z
3771
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin_controller/.svn/entries
--- a/lib/generators/redmine_plugin_controller/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin_controller/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.991758Z
+2011-02-08T13:45:46.000000Z
60c1792566a450d246dd66ff274ae06c
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.991758Z
+2011-02-08T13:45:46.000000Z
23b15404071adb39cb140a6113057f15
2010-02-28T12:15:47.320153Z
3514
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin_controller/templates/.svn/entries
--- a/lib/generators/redmine_plugin_controller/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin_controller/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.995797Z
+2011-02-08T13:45:46.000000Z
0ae9d2e8e624fef815f60164d47b6464
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.995797Z
+2011-02-08T13:45:46.000000Z
e8491aac2379dbba3d3ddadc30f6db07
2008-10-25T09:35:51.426668Z
1951
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.995797Z
+2011-02-08T13:45:46.000000Z
2fdd792e6b6825b4f1802ba4767e0435
2008-10-25T09:35:51.426668Z
1951
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.995797Z
+2011-02-08T13:45:46.000000Z
22e765f47aacc324789509219797d087
2010-06-17T19:02:07.893033Z
3770
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin_model/.svn/entries
--- a/lib/generators/redmine_plugin_model/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin_model/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.999760Z
+2011-02-08T13:45:46.000000Z
ca5ffbd9dfb099b2f38ca21c030ffea0
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.999760Z
+2011-02-08T13:45:46.000000Z
ba0c0092c69cca4c21b1b26027f7472b
2010-02-28T12:15:47.320153Z
3514
diff -r 07fa8a8b56a8 -r 0579821a129a lib/generators/redmine_plugin_model/templates/.svn/entries
--- a/lib/generators/redmine_plugin_model/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/generators/redmine_plugin_model/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.003823Z
+2011-02-08T13:45:46.000000Z
ce0817700ec27f10f7d07f998bff6991
2008-10-25T09:35:51.426668Z
1951
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.003823Z
+2011-02-08T13:45:46.000000Z
a4081d31f6d22e7655b4f6e9fb894a03
2009-10-17T21:08:33.644420Z
2926
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.999760Z
+2011-02-08T13:45:46.000000Z
115e77dae670747c95b5ff22c01d4174
2008-09-05T10:31:06.632668Z
1786
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.003823Z
+2011-02-08T13:45:46.000000Z
3a783571ccc96a2f639329700dda677b
2010-06-17T19:02:07.893033Z
3770
diff -r 07fa8a8b56a8 -r 0579821a129a lib/plugins/.svn/entries
--- a/lib/plugins/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/plugins/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/plugins
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/all-wcprops
--- a/lib/redmine/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 36
-/svn/!svn/ver/4688/trunk/lib/redmine
+/svn/!svn/ver/4797/trunk/lib/redmine
END
i18n.rb
K 25
@@ -13,7 +13,13 @@
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/3330/trunk/lib/redmine/pop3.rb
+/svn/!svn/ver/4737/trunk/lib/redmine/pop3.rb
+END
+platform.rb
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/1753/trunk/lib/redmine/platform.rb
END
safe_attributes.rb
K 25
@@ -21,17 +27,11 @@
V 55
/svn/!svn/ver/4491/trunk/lib/redmine/safe_attributes.rb
END
-platform.rb
+version.rb
K 25
svn:wc:ra_dav:version-url
-V 48
-/svn/!svn/ver/1753/trunk/lib/redmine/platform.rb
-END
-custom_field_format.rb
-K 25
-svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/3675/trunk/lib/redmine/custom_field_format.rb
+V 47
+/svn/!svn/ver/4784/trunk/lib/redmine/version.rb
END
themes.rb
K 25
@@ -39,11 +39,11 @@
V 46
/svn/!svn/ver/4559/trunk/lib/redmine/themes.rb
END
-version.rb
+custom_field_format.rb
K 25
svn:wc:ra_dav:version-url
-V 47
-/svn/!svn/ver/4619/trunk/lib/redmine/version.rb
+V 59
+/svn/!svn/ver/3675/trunk/lib/redmine/custom_field_format.rb
END
imap.rb
K 25
@@ -63,36 +63,36 @@
V 44
/svn/!svn/ver/2776/trunk/lib/redmine/info.rb
END
+access_keys.rb
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/1081/trunk/lib/redmine/access_keys.rb
+END
activity.rb
K 25
svn:wc:ra_dav:version-url
V 48
/svn/!svn/ver/1702/trunk/lib/redmine/activity.rb
END
-access_keys.rb
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/1081/trunk/lib/redmine/access_keys.rb
-END
wiki_formatting.rb
K 25
svn:wc:ra_dav:version-url
V 55
/svn/!svn/ver/3446/trunk/lib/redmine/wiki_formatting.rb
END
+menu_manager.rb
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4406/trunk/lib/redmine/menu_manager.rb
+END
plugin.rb
K 25
svn:wc:ra_dav:version-url
V 46
/svn/!svn/ver/4293/trunk/lib/redmine/plugin.rb
END
-menu_manager.rb
-K 25
-svn:wc:ra_dav:version-url
-V 52
-/svn/!svn/ver/4406/trunk/lib/redmine/menu_manager.rb
-END
utils.rb
K 25
svn:wc:ra_dav:version-url
@@ -117,6 +117,12 @@
V 46
/svn/!svn/ver/3444/trunk/lib/redmine/search.rb
END
+configuration.rb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4752/trunk/lib/redmine/configuration.rb
+END
core_ext.rb
K 25
svn:wc:ra_dav:version-url
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/entries
--- a/lib/redmine/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
@@ -35,10 +35,10 @@
-2010-09-23T14:37:45.031809Z
-7905a0773e7d2f6b468fc5b9e107db4d
-2010-01-17T13:53:13.544777Z
-3330
+2011-02-08T13:49:52.000000Z
+85ff863202dfbf2a6e9447a3bcf7cc06
+2011-01-22T12:09:07.652831Z
+4737
jplang
has-props
@@ -61,7 +61,7 @@
-2173
+2461
themes.rb
file
@@ -69,7 +69,7 @@
-2011-01-13T14:09:39.000000Z
+2011-02-08T13:45:46.000000Z
23fd3a13b8bcd6b3e2547e913d5fae18
2010-12-22T21:41:08.746858Z
4559
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.031809Z
+2011-02-08T13:45:46.000000Z
caeedebd5c05aede1d232510d03ad136
2008-12-31T14:56:30.439880Z
2220
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.031809Z
+2011-02-08T13:45:46.000000Z
ddadcd03b97455adae2451a2140afbf6
2009-05-30T23:00:22.602473Z
2776
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.015759Z
+2011-02-08T13:45:46.000000Z
41c2852d003d94cb23c231f06be62d12
2008-01-20T13:07:19.003764Z
1081
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.047759Z
+2011-02-08T13:45:46.000000Z
d04b071ce8f05b44ca6993c56fea9b1f
2009-01-04T17:09:25.896068Z
2234
@@ -245,7 +245,7 @@
-2010-09-23T14:37:45.015759Z
+2011-02-08T13:45:46.000000Z
e7e4c44515553e36bffa6e8f8960080b
2008-09-25T18:51:03.022592Z
1907
@@ -279,7 +279,7 @@
-2010-09-23T14:37:45.043748Z
+2011-02-08T13:45:46.000000Z
6f968bcc4f81562e9cbddb02ebc62601
2010-02-17T20:05:51.124365Z
3444
@@ -310,13 +310,47 @@
core_ext
dir
+configuration.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+d5040eb318ca88ba187170e4713bbb27
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3309
+
about.rb
file
-2010-09-23T14:37:45.015759Z
+2011-02-08T13:45:46.000000Z
91ed592a8419f1bec48ba880c7a86e29
2009-05-25T19:10:26.065563Z
2766
@@ -350,7 +384,7 @@
-2010-09-23T14:37:45.043748Z
+2011-02-08T13:45:46.000000Z
4a40844a6cd11aa7409bc8f4e9a2c74e
2010-03-28T11:30:48.135356Z
3619
@@ -384,7 +418,7 @@
-2010-11-19T13:04:51.416932Z
+2011-02-08T13:45:46.000000Z
cfdd5556d40422dd9610d2124a2fefac
2010-09-28T21:09:06.467392Z
4222
@@ -418,7 +452,7 @@
-2011-01-13T14:09:39.000000Z
+2011-02-08T13:45:46.000000Z
009b7a9ada5c3e83d6a7a26256c34951
2010-12-17T08:34:29.830642Z
4516
@@ -455,7 +489,7 @@
-2010-09-23T14:37:45.031809Z
+2011-02-08T13:45:46.000000Z
68165c83be56d3204c582958d933ff0a
2008-08-25T11:01:37.715099Z
1753
@@ -489,7 +523,7 @@
-2011-01-13T14:09:39.000000Z
+2011-02-08T13:45:46.000000Z
7f659c02de1ea89806beda1772dc4d36
2010-12-12T13:11:53.259618Z
4491
@@ -523,10 +557,10 @@
-2011-01-13T14:09:39.000000Z
-599c6a070c34c23117d1176bf811988d
-2011-01-02T12:16:40.859443Z
-4619
+2011-02-08T13:49:52.000000Z
+c6c19bce5ff3b4298316ffb112478868
+2011-01-30T14:37:23.564601Z
+4784
jplang
has-props
@@ -557,7 +591,7 @@
-2010-09-23T14:37:45.023772Z
+2011-02-08T13:45:46.000000Z
7fd1fcfb204480b0e9903fd03c53a563
2010-04-16T15:34:05.970144Z
3675
@@ -591,7 +625,7 @@
-2010-09-23T14:37:45.031809Z
+2011-02-08T13:45:46.000000Z
dbfad515b1d5c277d2f8e9d67233185e
2009-12-29T13:28:30.604471Z
3258
@@ -631,7 +665,7 @@
-2010-09-23T14:37:45.015759Z
+2011-02-08T13:45:46.000000Z
88435997a6d77548eab82526df38caf1
2008-07-27T18:38:31.746909Z
1702
@@ -665,7 +699,7 @@
-2010-09-23T14:37:45.047759Z
+2011-02-08T13:45:46.000000Z
648c40cc515e97d063d2c2f218cbbc23
2010-02-17T20:47:50.603139Z
3446
@@ -699,7 +733,7 @@
-2010-11-19T13:04:51.412966Z
+2011-02-08T13:45:46.000000Z
7f3739a749929e1f65efb292620d361b
2010-11-14T16:24:21.989522Z
4406
@@ -733,7 +767,7 @@
-2010-11-19T13:04:51.412966Z
+2011-02-08T13:45:46.000000Z
81bc46012d5a0067e18e08bada197d8c
2010-10-25T23:32:01.793182Z
4293
@@ -767,7 +801,7 @@
-2010-11-19T13:04:51.416932Z
+2011-02-08T13:45:46.000000Z
dfacee092edce74d74e8ea7d7a54aeba
2010-11-14T16:24:21.989522Z
4406
@@ -801,7 +835,7 @@
-2010-09-23T14:37:45.019747Z
+2011-02-08T13:45:46.000000Z
7632bcee464a923f5aa7c9eba29f8081
2008-04-26T11:59:51.889210Z
1361
@@ -838,7 +872,7 @@
-2010-09-23T14:37:45.047759Z
+2011-02-08T13:45:46.000000Z
69c22a4064f90e2ce460a0c9013c7cd0
2009-11-11T13:25:53.648186Z
3028
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/prop-base/configuration.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/prop-base/configuration.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/text-base/configuration.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/text-base/configuration.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,97 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+module Redmine
+ module Configuration
+
+ # Configuration default values
+ @defaults = {
+ 'email_delivery' => nil
+ }
+
+ @config = nil
+
+ class << self
+ # Loads the Redmine configuration file
+ # Valid options:
+ # * :file: the configuration file to load (default: config/configuration.yml)
+ # * :env: the environment to load the configuration for (default: Rails.env)
+ def load(options={})
+ filename = options[:file] || File.join(Rails.root, 'config', 'configuration.yml')
+ env = options[:env] || Rails.env
+
+ @config = @defaults.dup
+
+ load_deprecated_email_configuration(env)
+ if File.file?(filename)
+ @config.merge!(load_from_yaml(filename, env))
+ end
+
+ # Compatibility mode for those who copy email.yml over configuration.yml
+ %w(delivery_method smtp_settings sendmail_settings).each do |key|
+ if value = @config.delete(key)
+ @config['email_delivery'] ||= {}
+ @config['email_delivery'][key] = value
+ end
+ end
+
+ if @config['email_delivery']
+ ActionMailer::Base.perform_deliveries = true
+ @config['email_delivery'].each do |k, v|
+ v.symbolize_keys! if v.respond_to?(:symbolize_keys!)
+ ActionMailer::Base.send("#{k}=", v)
+ end
+ end
+
+ @config
+ end
+
+ # Returns a configuration setting
+ def [](name)
+ load unless @config
+ @config[name]
+ end
+
+ private
+
+ def load_from_yaml(filename, env)
+ yaml = YAML::load_file(filename)
+ conf = {}
+ if yaml.is_a?(Hash)
+ if yaml['default']
+ conf.merge!(yaml['default'])
+ end
+ if yaml[env]
+ conf.merge!(yaml[env])
+ end
+ else
+ $stderr.puts "#{filename} is not a valid Redmine configuration file"
+ exit 1
+ end
+ conf
+ end
+
+ def load_deprecated_email_configuration(env)
+ deprecated_email_conf = File.join(Rails.root, 'config', 'email.yml')
+ if File.file?(deprecated_email_conf)
+ warn "Storing outgoing emails configuration in config/email.yml is deprecated. You should now store it in config/configuration.yml using the email_delivery setting."
+ @config.merge!({'email_delivery' => load_from_yaml(deprecated_email_conf, env)})
+ end
+ end
+ end
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/text-base/pop3.rb.svn-base
--- a/lib/redmine/.svn/text-base/pop3.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/.svn/text-base/pop3.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -27,30 +27,36 @@
delete_unprocessed = (pop_options[:delete_unprocessed].to_s == '1')
pop = Net::POP3.APOP(apop).new(host,port)
- puts "Connecting to #{host}..."
+ logger.debug "Connecting to #{host}..." if logger && logger.debug?
pop.start(pop_options[:username], pop_options[:password]) do |pop_session|
if pop_session.mails.empty?
- puts "No email to process"
+ logger.debug "No email to process" if logger && logger.debug?
else
- puts "#{pop_session.mails.size} email(s) to process..."
+ logger.debug "#{pop_session.mails.size} email(s) to process..." if logger && logger.debug?
pop_session.each_mail do |msg|
message = msg.pop
message_id = (message =~ /^Message-ID: (.*)/ ? $1 : '').strip
if MailHandler.receive(message, options)
msg.delete
- puts "--> Message #{message_id} processed and deleted from the server"
+ logger.debug "--> Message #{message_id} processed and deleted from the server" if logger && logger.debug?
else
if delete_unprocessed
msg.delete
- puts "--> Message #{message_id} NOT processed and deleted from the server"
+ logger.debug "--> Message #{message_id} NOT processed and deleted from the server" if logger && logger.debug?
else
- puts "--> Message #{message_id} NOT processed and left on the server"
+ logger.debug "--> Message #{message_id} NOT processed and left on the server" if logger && logger.debug?
end
end
end
end
end
end
+
+ private
+
+ def logger
+ RAILS_DEFAULT_LOGGER
+ end
end
end
end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/.svn/text-base/version.rb.svn-base
--- a/lib/redmine/.svn/text-base/version.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/.svn/text-base/version.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -4,7 +4,7 @@
module VERSION #:nodoc:
MAJOR = 1
MINOR = 1
- TINY = 0
+ TINY = 1
# Branch values:
# * official release: nil
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/activity/.svn/entries
--- a/lib/redmine/activity/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/activity/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/activity
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.019747Z
+2011-02-08T13:45:46.000000Z
20597949bb74e98a3ffc97bc8a3ead7d
2010-07-06T02:22:03.226147Z
3829
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/configuration.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/configuration.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,97 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+module Redmine
+ module Configuration
+
+ # Configuration default values
+ @defaults = {
+ 'email_delivery' => nil
+ }
+
+ @config = nil
+
+ class << self
+ # Loads the Redmine configuration file
+ # Valid options:
+ # * :file: the configuration file to load (default: config/configuration.yml)
+ # * :env: the environment to load the configuration for (default: Rails.env)
+ def load(options={})
+ filename = options[:file] || File.join(Rails.root, 'config', 'configuration.yml')
+ env = options[:env] || Rails.env
+
+ @config = @defaults.dup
+
+ load_deprecated_email_configuration(env)
+ if File.file?(filename)
+ @config.merge!(load_from_yaml(filename, env))
+ end
+
+ # Compatibility mode for those who copy email.yml over configuration.yml
+ %w(delivery_method smtp_settings sendmail_settings).each do |key|
+ if value = @config.delete(key)
+ @config['email_delivery'] ||= {}
+ @config['email_delivery'][key] = value
+ end
+ end
+
+ if @config['email_delivery']
+ ActionMailer::Base.perform_deliveries = true
+ @config['email_delivery'].each do |k, v|
+ v.symbolize_keys! if v.respond_to?(:symbolize_keys!)
+ ActionMailer::Base.send("#{k}=", v)
+ end
+ end
+
+ @config
+ end
+
+ # Returns a configuration setting
+ def [](name)
+ load unless @config
+ @config[name]
+ end
+
+ private
+
+ def load_from_yaml(filename, env)
+ yaml = YAML::load_file(filename)
+ conf = {}
+ if yaml.is_a?(Hash)
+ if yaml['default']
+ conf.merge!(yaml['default'])
+ end
+ if yaml[env]
+ conf.merge!(yaml[env])
+ end
+ else
+ $stderr.puts "#{filename} is not a valid Redmine configuration file"
+ exit 1
+ end
+ conf
+ end
+
+ def load_deprecated_email_configuration(env)
+ deprecated_email_conf = File.join(Rails.root, 'config', 'email.yml')
+ if File.file?(deprecated_email_conf)
+ warn "Storing outgoing emails configuration in config/email.yml is deprecated. You should now store it in config/configuration.yml using the email_delivery setting."
+ @config.merge!({'email_delivery' => load_from_yaml(deprecated_email_conf, env)})
+ end
+ end
+ end
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/core_ext/.svn/entries
--- a/lib/redmine/core_ext/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/core_ext/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.019747Z
+2011-02-08T13:45:46.000000Z
fcafa1cc4149d3a5de82816c61b7fa02
2009-08-17T16:32:24.020380Z
2844
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/core_ext/string/.svn/entries
--- a/lib/redmine/core_ext/string/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/core_ext/string/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext/string
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.023772Z
+2011-02-08T13:45:46.000000Z
e614ecdb2fac85cd9f8808e7cff7f9de
2009-08-17T16:32:24.020380Z
2844
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.023772Z
+2011-02-08T13:45:46.000000Z
1cc26c5de967944da3a6b07331512637
2009-10-10T15:09:19.510095Z
2912
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/default_data/.svn/entries
--- a/lib/redmine/default_data/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/default_data/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/default_data
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.023772Z
+2011-02-08T13:45:46.000000Z
41958e843a8ba03548eed089e8002549
2010-06-30T01:55:44.694582Z
3820
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/export/.svn/all-wcprops
--- a/lib/redmine/export/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/export/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,11 +1,11 @@
K 25
svn:wc:ra_dav:version-url
V 43
-/svn/!svn/ver/4104/trunk/lib/redmine/export
+/svn/!svn/ver/4736/trunk/lib/redmine/export
END
pdf.rb
K 25
svn:wc:ra_dav:version-url
V 50
-/svn/!svn/ver/4104/trunk/lib/redmine/export/pdf.rb
+/svn/!svn/ver/4736/trunk/lib/redmine/export/pdf.rb
END
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/export/.svn/entries
--- a/lib/redmine/export/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/export/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/export
http://redmine.rubyforge.org/svn
-2010-09-20T02:55:20.180218Z
-4104
-edavis10
+2011-01-22T11:57:02.732751Z
+4736
+jplang
@@ -32,11 +32,11 @@
-2010-09-24T12:48:29.791863Z
-aa6093490555bdd119ba8f1d34cab080
-2010-09-20T02:55:20.180218Z
-4104
-edavis10
+2011-02-08T13:49:52.000000Z
+b8bd24e9575d51f0c49f8245a5d593a2
+2011-01-22T11:57:02.732751Z
+4736
+jplang
has-props
@@ -58,5 +58,5 @@
-10771
+10786
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/export/.svn/text-base/pdf.rb.svn-base
--- a/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -255,7 +255,7 @@
pdf.SetFontStyle('B',9)
pdf.Cell(35,5, l(:field_description) + ":")
pdf.SetFontStyle('',9)
- pdf.MultiCell(155,5, issue.description,"BR")
+ pdf.MultiCell(155,5, issue.description.to_s,"BR")
pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
@@ -271,7 +271,7 @@
pdf.Ln
unless changeset.comments.blank?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, changeset.comments)
+ pdf.MultiCell(190,5, changeset.comments.to_s)
end
pdf.Ln
end
@@ -291,7 +291,7 @@
end
if journal.notes?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, journal.notes)
+ pdf.MultiCell(190,5, journal.notes.to_s)
end
pdf.Ln
end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/export/pdf.rb
--- a/lib/redmine/export/pdf.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/export/pdf.rb Tue Feb 08 13:51:46 2011 +0000
@@ -255,7 +255,7 @@
pdf.SetFontStyle('B',9)
pdf.Cell(35,5, l(:field_description) + ":")
pdf.SetFontStyle('',9)
- pdf.MultiCell(155,5, issue.description,"BR")
+ pdf.MultiCell(155,5, issue.description.to_s,"BR")
pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
@@ -271,7 +271,7 @@
pdf.Ln
unless changeset.comments.blank?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, changeset.comments)
+ pdf.MultiCell(190,5, changeset.comments.to_s)
end
pdf.Ln
end
@@ -291,7 +291,7 @@
end
if journal.notes?
pdf.SetFontStyle('',8)
- pdf.MultiCell(190,5, journal.notes)
+ pdf.MultiCell(190,5, journal.notes.to_s)
end
pdf.Ln
end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/helpers/.svn/all-wcprops
--- a/lib/redmine/helpers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/helpers/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/4584/trunk/lib/redmine/helpers
+/svn/!svn/ver/4782/trunk/lib/redmine/helpers
END
gantt.rb
K 25
svn:wc:ra_dav:version-url
V 53
-/svn/!svn/ver/4584/trunk/lib/redmine/helpers/gantt.rb
+/svn/!svn/ver/4782/trunk/lib/redmine/helpers/gantt.rb
END
calendar.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/helpers/.svn/entries
--- a/lib/redmine/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/helpers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/helpers
http://redmine.rubyforge.org/svn
-2010-12-30T15:04:08.033097Z
-4584
+2011-01-30T09:09:50.276451Z
+4782
jplang
@@ -32,10 +32,10 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:49:52.000000Z
2c61985f04e8f13965fd9880ff9ad5dc
-2010-12-30T15:04:08.033097Z
-4584
+2011-01-30T09:09:50.276451Z
+4782
jplang
has-props
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.027790Z
+2011-02-08T13:45:46.000000Z
0a7d81755cf7c1519d4b4c1d84712139
2009-12-13T04:06:55.726600Z
3166
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/pop3.rb
--- a/lib/redmine/pop3.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/pop3.rb Tue Feb 08 13:51:46 2011 +0000
@@ -27,30 +27,36 @@
delete_unprocessed = (pop_options[:delete_unprocessed].to_s == '1')
pop = Net::POP3.APOP(apop).new(host,port)
- puts "Connecting to #{host}..."
+ logger.debug "Connecting to #{host}..." if logger && logger.debug?
pop.start(pop_options[:username], pop_options[:password]) do |pop_session|
if pop_session.mails.empty?
- puts "No email to process"
+ logger.debug "No email to process" if logger && logger.debug?
else
- puts "#{pop_session.mails.size} email(s) to process..."
+ logger.debug "#{pop_session.mails.size} email(s) to process..." if logger && logger.debug?
pop_session.each_mail do |msg|
message = msg.pop
message_id = (message =~ /^Message-ID: (.*)/ ? $1 : '').strip
if MailHandler.receive(message, options)
msg.delete
- puts "--> Message #{message_id} processed and deleted from the server"
+ logger.debug "--> Message #{message_id} processed and deleted from the server" if logger && logger.debug?
else
if delete_unprocessed
msg.delete
- puts "--> Message #{message_id} NOT processed and deleted from the server"
+ logger.debug "--> Message #{message_id} NOT processed and deleted from the server" if logger && logger.debug?
else
- puts "--> Message #{message_id} NOT processed and left on the server"
+ logger.debug "--> Message #{message_id} NOT processed and left on the server" if logger && logger.debug?
end
end
end
end
end
end
+
+ private
+
+ def logger
+ RAILS_DEFAULT_LOGGER
+ end
end
end
end
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/.svn/all-wcprops
--- a/lib/redmine/scm/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 40
-/svn/!svn/ver/4688/trunk/lib/redmine/scm
+/svn/!svn/ver/4797/trunk/lib/redmine/scm
END
base.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/.svn/entries
--- a/lib/redmine/scm/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.043748Z
+2011-02-08T13:45:46.000000Z
3a053c03d210decd9105a24ff5e1aa8f
2010-02-16T22:41:59.625572Z
3440
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/all-wcprops
--- a/lib/redmine/scm/adapters/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,19 +1,19 @@
K 25
svn:wc:ra_dav:version-url
V 49
-/svn/!svn/ver/4688/trunk/lib/redmine/scm/adapters
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters
END
subversion_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 71
-/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/subversion_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/subversion_adapter.rb
END
bazaar_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 67
-/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/bazaar_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/bazaar_adapter.rb
END
abstract_adapter.rb
K 25
@@ -25,13 +25,13 @@
K 25
svn:wc:ra_dav:version-url
V 64
-/svn/!svn/ver/4624/trunk/lib/redmine/scm/adapters/git_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/git_adapter.rb
END
mercurial_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 70
-/svn/!svn/ver/4688/trunk/lib/redmine/scm/adapters/mercurial_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/mercurial_adapter.rb
END
filesystem_adapter.rb
K 25
@@ -43,11 +43,11 @@
K 25
svn:wc:ra_dav:version-url
V 64
-/svn/!svn/ver/4601/trunk/lib/redmine/scm/adapters/cvs_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/cvs_adapter.rb
END
darcs_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 66
-/svn/!svn/ver/4539/trunk/lib/redmine/scm/adapters/darcs_adapter.rb
+/svn/!svn/ver/4797/trunk/lib/redmine/scm/adapters/darcs_adapter.rb
END
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/entries
--- a/lib/redmine/scm/adapters/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
@@ -32,11 +32,11 @@
-2011-01-13T14:09:38.000000Z
-a388eb02c3afb298abad571f6f059c6b
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-02-08T13:49:52.000000Z
+8435e09135c73a27534e626ffa21139c
+2011-02-04T10:24:10.099771Z
+4797
+tmaruyama
@@ -58,7 +58,7 @@
-10741
+10793
bazaar_adapter.rb
file
@@ -66,11 +66,11 @@
-2011-01-13T14:09:38.000000Z
-a8512f631e43683c18d08d5ff0c8f2a3
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-02-08T13:49:52.000000Z
+215a6667fc0893c697388b6351e170f9
+2011-02-04T10:24:10.099771Z
+4797
+tmaruyama
has-props
@@ -92,7 +92,7 @@
-7352
+7400
mercurial
dir
@@ -103,7 +103,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:46.000000Z
b63a1e9ae95a7fb7c053bc363cf6672b
2011-01-02T09:45:05.291687Z
4613
@@ -137,10 +137,10 @@
-2011-01-13T14:09:38.000000Z
-eb7d9805e215f174c53d2806a94ce1ea
-2011-01-03T10:45:00.658370Z
-4624
+2011-02-08T13:49:52.000000Z
+f4e47a55981d092307fda1755aa76af7
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
has-props
@@ -163,7 +163,7 @@
-10102
+10147
mercurial_adapter.rb
file
@@ -171,10 +171,10 @@
-2011-01-13T14:09:38.000000Z
-c084fab581021c9e215c54af6815d6c9
-2011-01-11T08:41:35.993532Z
-4688
+2011-02-08T13:49:52.000000Z
+65d72801f3587acd03e0c83201f46e1f
+2011-02-04T10:24:10.099771Z
+4797
tmaruyama
has-props
@@ -197,7 +197,7 @@
-8611
+8662
filesystem_adapter.rb
file
@@ -205,7 +205,7 @@
-2010-09-23T14:37:45.039790Z
+2011-02-08T13:45:46.000000Z
5f311f051bcb17a87475757807f8a63e
2008-06-08T15:44:23.440995Z
1510
@@ -239,11 +239,11 @@
-2011-01-13T14:09:38.000000Z
-f7675b9449831276c8816fc5669245a1
-2011-01-01T11:13:33.540439Z
-4601
-jplang
+2011-02-08T13:49:52.000000Z
+0e124e1908ef1c6ae98ae8086562f960
+2011-02-04T10:24:10.099771Z
+4797
+tmaruyama
has-props
@@ -265,7 +265,7 @@
-13521
+13743
darcs_adapter.rb
file
@@ -273,11 +273,11 @@
-2011-01-13T14:09:38.000000Z
-39ef0c99d6e5d7839059713e93624e2c
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-02-08T13:49:52.000000Z
+ac48aa0ac0732d1cc698484e7a40b356
+2011-02-04T10:24:10.099771Z
+4797
+tmaruyama
has-props
@@ -299,5 +299,5 @@
-7575
+8564
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
class BazaarAdapter < AbstractAdapter
# Bazaar executable name
- BZR_BIN = "bzr"
+ BZR_BIN = Redmine::Configuration['scm_bazaar_command'] || "bzr"
# Get info about the repository
def info
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
class CvsAdapter < AbstractAdapter
# CVS executable name
- CVS_BIN = "cvs"
+ CVS_BIN = Redmine::Configuration['scm_cvs_command'] || "cvs"
# Guidelines for the input:
# url -> the project-path, relative to the cvsroot (eg. module name)
@@ -109,7 +109,7 @@
path_with_project="#{url}#{with_leading_slash(path)}"
cmd = "#{CVS_BIN} -d #{shell_quote root_url} rlog"
- cmd << " -d\">#{time_to_cvstime(identifier_from)}\"" if identifier_from
+ cmd << " -d\">#{time_to_cvstime_rlog(identifier_from)}\"" if identifier_from
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
state="entry_start"
@@ -290,6 +290,12 @@
end
return time.strftime("%Y-%m-%d %H:%M:%S")
end
+
+ def time_to_cvstime_rlog(time)
+ return nil if time.nil?
+ t1 = time.clone.localtime
+ return t1.strftime("%Y-%m-%d %H:%M:%S")
+ end
def normalize_cvs_path(path)
normalize_path(path.gsub(/Attic\//,''))
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
module Adapters
class DarcsAdapter < AbstractAdapter
# Darcs executable name
- DARCS_BIN = "darcs"
+ DARCS_BIN = Redmine::Configuration['scm_darcs_command'] || "darcs"
class << self
def client_version
@@ -31,16 +31,14 @@
end
def darcs_binary_version
- cmd = "#{DARCS_BIN} --version"
- version = nil
- shellout(cmd) do |io|
- # Read darcs version in first returned line
- if m = io.gets.match(%r{((\d+\.)+\d+)})
- version = m[0].scan(%r{\d+}).collect(&:to_i)
- end
+ darcsversion = darcs_binary_version_from_command_line
+ if m = darcsversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
end
- return nil if $? && $?.exitstatus != 0
- version
+ end
+
+ def darcs_binary_version_from_command_line
+ shellout("#{DARCS_BIN} --version") { |io| io.read }.to_s
end
end
@@ -64,7 +62,9 @@
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path_prefix = (path.blank? ? '' : "#{path}/")
- path = '.' if path.blank?
+ if path.blank?
+ path = ( self.class.client_version_above?([2, 2, 0]) ? @url : '.' )
+ end
entries = Entries.new
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
@@ -167,9 +167,38 @@
})
})
end
+
+ def get_paths_for_patch(hash)
+ paths = get_paths_for_patch_raw(hash)
+ if self.class.client_version_above?([2, 4])
+ orig_paths = paths
+ paths = []
+ add_paths = []
+ add_paths_name = []
+ mod_paths = []
+ other_paths = []
+ orig_paths.each do |path|
+ if path[:action] == 'A'
+ add_paths << path
+ add_paths_name << path[:path]
+ elsif path[:action] == 'M'
+ mod_paths << path
+ else
+ other_paths << path
+ end
+ end
+ add_paths_name.each do |add_path|
+ mod_paths.delete_if { |m| m[:path] == add_path }
+ end
+ paths.concat add_paths
+ paths.concat mod_paths
+ paths.concat other_paths
+ end
+ paths
+ end
# Retrieve changed paths for a single patch
- def get_paths_for_patch(hash)
+ def get_paths_for_patch_raw(hash)
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
cmd << " --match #{shell_quote("hash #{hash}")} "
paths = []
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -22,7 +22,7 @@
module Adapters
class GitAdapter < AbstractAdapter
# Git executable name
- GIT_BIN = "git"
+ GIT_BIN = Redmine::Configuration['scm_git_command'] || "git"
def info
begin
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -24,7 +24,7 @@
class MercurialAdapter < AbstractAdapter
# Mercurial executable name
- HG_BIN = "hg"
+ HG_BIN = Redmine::Configuration['scm_mercurial_command'] || "hg"
TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
TEMPLATE_NAME = "hg-template"
TEMPLATE_EXTENSION = "tmpl"
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -24,7 +24,7 @@
class SubversionAdapter < AbstractAdapter
# SVN executable name
- SVN_BIN = "svn"
+ SVN_BIN = Redmine::Configuration['scm_subversion_command'] || "svn"
class << self
def client_version
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/bazaar_adapter.rb
--- a/lib/redmine/scm/adapters/bazaar_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/bazaar_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
class BazaarAdapter < AbstractAdapter
# Bazaar executable name
- BZR_BIN = "bzr"
+ BZR_BIN = Redmine::Configuration['scm_bazaar_command'] || "bzr"
# Get info about the repository
def info
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/cvs_adapter.rb
--- a/lib/redmine/scm/adapters/cvs_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/cvs_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
class CvsAdapter < AbstractAdapter
# CVS executable name
- CVS_BIN = "cvs"
+ CVS_BIN = Redmine::Configuration['scm_cvs_command'] || "cvs"
# Guidelines for the input:
# url -> the project-path, relative to the cvsroot (eg. module name)
@@ -109,7 +109,7 @@
path_with_project="#{url}#{with_leading_slash(path)}"
cmd = "#{CVS_BIN} -d #{shell_quote root_url} rlog"
- cmd << " -d\">#{time_to_cvstime(identifier_from)}\"" if identifier_from
+ cmd << " -d\">#{time_to_cvstime_rlog(identifier_from)}\"" if identifier_from
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
state="entry_start"
@@ -290,6 +290,12 @@
end
return time.strftime("%Y-%m-%d %H:%M:%S")
end
+
+ def time_to_cvstime_rlog(time)
+ return nil if time.nil?
+ t1 = time.clone.localtime
+ return t1.strftime("%Y-%m-%d %H:%M:%S")
+ end
def normalize_cvs_path(path)
normalize_path(path.gsub(/Attic\//,''))
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/darcs_adapter.rb
--- a/lib/redmine/scm/adapters/darcs_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/darcs_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -23,7 +23,7 @@
module Adapters
class DarcsAdapter < AbstractAdapter
# Darcs executable name
- DARCS_BIN = "darcs"
+ DARCS_BIN = Redmine::Configuration['scm_darcs_command'] || "darcs"
class << self
def client_version
@@ -31,16 +31,14 @@
end
def darcs_binary_version
- cmd = "#{DARCS_BIN} --version"
- version = nil
- shellout(cmd) do |io|
- # Read darcs version in first returned line
- if m = io.gets.match(%r{((\d+\.)+\d+)})
- version = m[0].scan(%r{\d+}).collect(&:to_i)
- end
+ darcsversion = darcs_binary_version_from_command_line
+ if m = darcsversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
end
- return nil if $? && $?.exitstatus != 0
- version
+ end
+
+ def darcs_binary_version_from_command_line
+ shellout("#{DARCS_BIN} --version") { |io| io.read }.to_s
end
end
@@ -64,7 +62,9 @@
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path_prefix = (path.blank? ? '' : "#{path}/")
- path = '.' if path.blank?
+ if path.blank?
+ path = ( self.class.client_version_above?([2, 2, 0]) ? @url : '.' )
+ end
entries = Entries.new
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
@@ -167,9 +167,38 @@
})
})
end
+
+ def get_paths_for_patch(hash)
+ paths = get_paths_for_patch_raw(hash)
+ if self.class.client_version_above?([2, 4])
+ orig_paths = paths
+ paths = []
+ add_paths = []
+ add_paths_name = []
+ mod_paths = []
+ other_paths = []
+ orig_paths.each do |path|
+ if path[:action] == 'A'
+ add_paths << path
+ add_paths_name << path[:path]
+ elsif path[:action] == 'M'
+ mod_paths << path
+ else
+ other_paths << path
+ end
+ end
+ add_paths_name.each do |add_path|
+ mod_paths.delete_if { |m| m[:path] == add_path }
+ end
+ paths.concat add_paths
+ paths.concat mod_paths
+ paths.concat other_paths
+ end
+ paths
+ end
# Retrieve changed paths for a single patch
- def get_paths_for_patch(hash)
+ def get_paths_for_patch_raw(hash)
cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
cmd << " --match #{shell_quote("hash #{hash}")} "
paths = []
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/git_adapter.rb
--- a/lib/redmine/scm/adapters/git_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/git_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -22,7 +22,7 @@
module Adapters
class GitAdapter < AbstractAdapter
# Git executable name
- GIT_BIN = "git"
+ GIT_BIN = Redmine::Configuration['scm_git_command'] || "git"
def info
begin
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/mercurial/.svn/entries
--- a/lib/redmine/scm/adapters/mercurial/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters/mercurial
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:46.000000Z
961af0eb6ab17203d985cdeac685937e
2011-01-05T15:02:24.961855Z
4633
@@ -66,7 +66,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:46.000000Z
9d5de62ae8cdc141d3f8b970dbba07a0
2011-01-05T15:02:24.961855Z
4633
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/mercurial_adapter.rb
--- a/lib/redmine/scm/adapters/mercurial_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/mercurial_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -24,7 +24,7 @@
class MercurialAdapter < AbstractAdapter
# Mercurial executable name
- HG_BIN = "hg"
+ HG_BIN = Redmine::Configuration['scm_mercurial_command'] || "hg"
TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
TEMPLATE_NAME = "hg-template"
TEMPLATE_EXTENSION = "tmpl"
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/scm/adapters/subversion_adapter.rb
--- a/lib/redmine/scm/adapters/subversion_adapter.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/scm/adapters/subversion_adapter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -24,7 +24,7 @@
class SubversionAdapter < AbstractAdapter
# SVN executable name
- SVN_BIN = "svn"
+ SVN_BIN = Redmine::Configuration['scm_subversion_command'] || "svn"
class << self
def client_version
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/version.rb
--- a/lib/redmine/version.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/version.rb Tue Feb 08 13:51:46 2011 +0000
@@ -4,7 +4,7 @@
module VERSION #:nodoc:
MAJOR = 1
MINOR = 1
- TINY = 0
+ TINY = 1
# Branch values:
# * official release: nil
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/views/.svn/entries
--- a/lib/redmine/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/views
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2011-01-13T14:09:39.000000Z
+2011-02-08T13:45:46.000000Z
e0e38b713c41ea63221dd877c6939983
2010-12-03T11:25:21.858858Z
4452
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.047759Z
+2011-02-08T13:45:46.000000Z
849e9df27c041f540e690c6192939edf
2009-01-29T13:54:44.887081Z
2334
@@ -106,7 +106,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
04feeced33ca55e9fb99099efe2fdcf6
2010-12-03T11:25:21.858858Z
4452
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/views/builders/.svn/entries
--- a/lib/redmine/views/builders/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/views/builders/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/builders
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
8816150c9264dfa6e639af165670cbb1
2010-12-11T13:13:49.013705Z
4489
@@ -66,7 +66,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
f9654f4bc43dbb5c01d5be2d6b045dd7
2010-12-11T13:13:49.013705Z
4489
@@ -100,7 +100,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
4b47e2fa5030d1cdad48f3abb5ab7c44
2010-12-03T11:25:21.858858Z
4452
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/views/my_page/.svn/entries
--- a/lib/redmine/views/my_page/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/views/my_page/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/my_page
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.047759Z
+2011-02-08T13:45:46.000000Z
b06dfe20a85191516f81de5874f37ec6
2009-04-05T13:33:54.194067Z
2659
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/wiki_formatting/.svn/entries
--- a/lib/redmine/wiki_formatting/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/wiki_formatting/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:51.401011Z
+2011-02-08T13:45:46.000000Z
879f8ce24a6bb5e4f5ea3b6f798b7a63
2010-11-06T17:47:27.890964Z
4376
diff -r 07fa8a8b56a8 -r 0579821a129a lib/redmine/wiki_formatting/textile/.svn/entries
--- a/lib/redmine/wiki_formatting/textile/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/redmine/wiki_formatting/textile/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting/textile
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.051779Z
+2011-02-08T13:45:46.000000Z
dec83b1d0d7f682d1ebf1f172fe3c90b
2009-11-11T10:55:19.574870Z
3025
@@ -66,7 +66,7 @@
-2010-11-19T13:04:51.401011Z
+2011-02-08T13:45:46.000000Z
b8052f700ecb0991fabdd3a5b684a412
2010-11-06T17:47:27.890964Z
4376
diff -r 07fa8a8b56a8 -r 0579821a129a lib/tasks/.svn/all-wcprops
--- a/lib/tasks/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/tasks/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 34
-/svn/!svn/ver/4687/trunk/lib/tasks
+/svn/!svn/ver/4765/trunk/lib/tasks
END
deprecated.rake
K 25
@@ -27,18 +27,18 @@
V 48
/svn/!svn/ver/4167/trunk/lib/tasks/reminder.rake
END
+initializers.rake
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4405/trunk/lib/tasks/initializers.rake
+END
metrics.rake
K 25
svn:wc:ra_dav:version-url
V 47
/svn/!svn/ver/2825/trunk/lib/tasks/metrics.rake
END
-initializers.rake
-K 25
-svn:wc:ra_dav:version-url
-V 52
-/svn/!svn/ver/4405/trunk/lib/tasks/initializers.rake
-END
permissions.rake
K 25
svn:wc:ra_dav:version-url
@@ -63,18 +63,18 @@
V 48
/svn/!svn/ver/3167/trunk/lib/tasks/watchers.rake
END
+yardoc.rake
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/3922/trunk/lib/tasks/yardoc.rake
+END
plugins.rake
K 25
svn:wc:ra_dav:version-url
V 47
/svn/!svn/ver/1786/trunk/lib/tasks/plugins.rake
END
-yardoc.rake
-K 25
-svn:wc:ra_dav:version-url
-V 46
-/svn/!svn/ver/3922/trunk/lib/tasks/yardoc.rake
-END
locales.rake
K 25
svn:wc:ra_dav:version-url
@@ -91,7 +91,7 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4599/trunk/lib/tasks/migrate_from_mantis.rake
+/svn/!svn/ver/4765/trunk/lib/tasks/migrate_from_mantis.rake
END
email.rake
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a lib/tasks/.svn/entries
--- a/lib/tasks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/tasks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/lib/tasks
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:11.973101Z
-4687
-tmaruyama
+2011-01-28T19:45:09.952949Z
+4765
+jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
03301be8b264b5cb46d05896861dcc4d
2007-09-02T08:08:10.346505Z
691
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
2ee57ccc06c675e55c38a4153a27c7c3
2010-05-01T09:37:46.451305Z
3721
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
0c57af5536009680bb8c3c3302fc628d
2006-07-29T09:32:58.780216Z
12
@@ -134,7 +134,7 @@
-2010-09-24T12:48:29.799790Z
+2011-02-08T13:45:46.000000Z
07fcf57752978d65a694eb57adcc0851
2010-09-20T23:17:51.402972Z
4167
@@ -168,7 +168,7 @@
-2010-11-19T13:04:51.424933Z
+2011-02-08T13:45:46.000000Z
c25b466de7654465538a91e5f5ab32b9
2010-11-14T15:14:19.280754Z
4405
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
0254f4ee916dee0a2572e63e947f8a1b
2009-07-27T00:55:43.057910Z
2825
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
010fbb563237ff01803aa47736cf863e
2010-08-18T17:23:23.071766Z
3948
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
984c757ee4c8fa78f649f8dd34b715cf
2009-03-15T10:03:56.604709Z
2592
@@ -304,7 +304,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
62ce14359d5062666d86230adc5ba695
2011-01-11T08:41:11.973101Z
4687
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.067787Z
+2011-02-08T13:45:46.000000Z
16eaf27a5959829a12961ff16e233600
2009-12-13T12:39:22.716082Z
3167
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.067787Z
+2011-02-08T13:45:46.000000Z
5c9889bed6f4a4d18dbeb3d904855bb6
2010-08-07T15:11:26.667915Z
3922
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.067787Z
+2011-02-08T13:45:46.000000Z
f27a83cf3f04d7906ac2f3ca40d01a20
2008-09-05T10:31:06.632668Z
1786
@@ -440,7 +440,7 @@
-2010-11-19T13:04:51.424933Z
+2011-02-08T13:45:46.000000Z
8cb19171aae8528b3149b7efa211fc50
2010-10-15T22:41:47.658318Z
4254
@@ -474,7 +474,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
db60f05f7cd325cbdd984f0b6d7b42ea
2010-12-31T15:30:50.544770Z
4599
@@ -508,10 +508,10 @@
-2011-01-13T14:11:09.000000Z
-3155277c35e0978585a77b55a40901fb
-2010-12-31T15:30:50.544770Z
-4599
+2011-02-08T13:49:52.000000Z
+ba7db3c8df92c72d300288ec7276dbad
+2011-01-28T19:45:09.952949Z
+4765
jplang
@@ -534,7 +534,7 @@
-19137
+19166
email.rake
file
@@ -542,7 +542,7 @@
-2010-11-19T13:04:51.424933Z
+2011-02-08T13:45:46.000000Z
7875b7a15307c626a93c284f33757320
2010-10-15T22:50:33.240825Z
4256
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
82e0901f7cbdda05ed63c12a764c3614
2007-09-23T17:19:27.414302Z
752
@@ -610,7 +610,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
93f8964aea856c06fb2eaa62ca2023c2
2011-01-06T18:52:37.169690Z
4643
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.063748Z
+2011-02-08T13:45:46.000000Z
320b77011663b1209247bb809bc43ecb
2008-02-16T16:25:58.204498Z
1155
diff -r 07fa8a8b56a8 -r 0579821a129a lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base
--- a/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -287,7 +287,7 @@
project.versions.each do |version|
v = Version.new :name => encode(version.version),
:description => encode(version.description),
- :effective_date => version.date_order.to_date
+ :effective_date => (version.date_order ? version.date_order.to_date : nil)
v.project = p
v.save
versions_map[version.id] = v.id
diff -r 07fa8a8b56a8 -r 0579821a129a lib/tasks/migrate_from_mantis.rake
--- a/lib/tasks/migrate_from_mantis.rake Wed Jan 19 15:04:22 2011 +0000
+++ b/lib/tasks/migrate_from_mantis.rake Tue Feb 08 13:51:46 2011 +0000
@@ -287,7 +287,7 @@
project.versions.each do |version|
v = Version.new :name => encode(version.version),
:description => encode(version.description),
- :effective_date => version.date_order.to_date
+ :effective_date => (version.date_order ? version.date_order.to_date : nil)
v.project = p
v.save
versions_map[version.id] = v.id
diff -r 07fa8a8b56a8 -r 0579821a129a log/.svn/entries
--- a/log/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/log/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/log
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.067787Z
+2011-02-08T13:45:46.000000Z
ae0415159f2c4dba3fc1a559d4c0f9f5
2006-10-15T09:00:05.847811Z
31
diff -r 07fa8a8b56a8 -r 0579821a129a public/.htaccess
--- a/public/.htaccess Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# General Apache options
-
- AddHandler fastcgi-script .fcgi
-
-
- AddHandler fcgid-script .fcgi
-
-
- AddHandler cgi-script .cgi
-
-Options +FollowSymLinks +ExecCGI
-
-# If you don't want Rails to look in certain directories,
-# use the following rewrite rules so that Apache won't rewrite certain requests
-#
-# Example:
-# RewriteCond %{REQUEST_URI} ^/notrails.*
-# RewriteRule .* - [L]
-
-# Redirect all requests not available on the filesystem to Rails
-# By default the cgi dispatcher is used which is very slow
-#
-# For better performance replace the dispatcher with the fastcgi one
-#
-# Example:
-# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-RewriteEngine On
-
-# If your Rails application is accessed via an Alias directive,
-# then you MUST also set the RewriteBase in this htaccess file.
-#
-# Example:
-# Alias /myrailsapp /path/to/myrailsapp/public
-# RewriteBase /myrailsapp
-
-RewriteRule ^$ index.html [QSA]
-RewriteRule ^([^.]+)$ $1.html [QSA]
-RewriteCond %{REQUEST_FILENAME} !-f
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
-
-
-# In case Rails experiences terminal errors
-# Instead of displaying this message you can supply a file here which will be rendered instead
-#
-# Example:
-# ErrorDocument 500 /500.html
-
-ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/all-wcprops
--- a/public/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/public/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 31
-/svn/!svn/ver/4702/trunk/public
+/svn/!svn/ver/4782/trunk/public
END
dispatch.fcgi.example
K 25
@@ -27,12 +27,6 @@
V 52
/svn/!svn/ver/2017/trunk/public/dispatch.cgi.example
END
-.htaccess
-K 25
-svn:wc:ra_dav:version-url
-V 40
-/svn/!svn/ver/934/trunk/public/.htaccess
-END
dispatch.rb.example
K 25
svn:wc:ra_dav:version-url
@@ -45,3 +39,9 @@
V 43
/svn/!svn/ver/3845/trunk/public/favicon.ico
END
+htaccess.fcgi.example
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4775/trunk/public/htaccess.fcgi.example
+END
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/entries
--- a/public/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public
http://redmine.rubyforge.org/svn
-2011-01-11T20:37:31.480170Z
-4702
+2011-01-30T09:09:50.276451Z
+4782
jplang
has-props
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.075747Z
+2011-02-08T13:45:46.000000Z
aeefa1552a4af651eadd16f4e0bb1323
2008-11-11T13:54:10.112610Z
2017
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.071747Z
+2011-02-08T13:45:46.000000Z
b78e2e9e0cd94c786bb9404516e062c4
2007-04-04T18:20:45.423396Z
419
@@ -112,7 +112,7 @@
-2010-09-23T14:37:45.071747Z
+2011-02-08T13:45:46.000000Z
5acfd3818d5f470c26a1af577d06195e
2007-04-04T18:20:45.423396Z
419
@@ -146,7 +146,7 @@
-2010-09-23T14:37:45.071747Z
+2011-02-08T13:45:46.000000Z
5a5128856eb14ac7b3f94099cb504775
2008-11-11T13:54:10.112610Z
2017
@@ -174,47 +174,13 @@
477
-.htaccess
-file
-
-
-
-
-2010-09-23T14:37:45.067787Z
-67c99c6ef23adb15d9efed92be959b6e
-2007-11-27T17:20:57.329371Z
-934
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1632
-
dispatch.rb.example
file
-2010-09-23T14:37:45.075747Z
+2011-02-08T13:45:46.000000Z
5a5128856eb14ac7b3f94099cb504775
2008-11-11T13:54:10.112610Z
2017
@@ -279,3 +245,37 @@
7886
+htaccess.fcgi.example
+file
+
+
+
+
+2011-02-08T13:49:53.000000Z
+67c99c6ef23adb15d9efed92be959b6e
+2011-01-30T06:31:28.038726Z
+4775
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1632
+
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/prop-base/.htaccess.svn-base
--- a/public/.svn/prop-base/.htaccess.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 9
-eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/prop-base/htaccess.fcgi.example.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/.svn/prop-base/htaccess.fcgi.example.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 9
+eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/text-base/.htaccess.svn-base
--- a/public/.svn/text-base/.htaccess.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# General Apache options
-
- AddHandler fastcgi-script .fcgi
-
-
- AddHandler fcgid-script .fcgi
-
-
- AddHandler cgi-script .cgi
-
-Options +FollowSymLinks +ExecCGI
-
-# If you don't want Rails to look in certain directories,
-# use the following rewrite rules so that Apache won't rewrite certain requests
-#
-# Example:
-# RewriteCond %{REQUEST_URI} ^/notrails.*
-# RewriteRule .* - [L]
-
-# Redirect all requests not available on the filesystem to Rails
-# By default the cgi dispatcher is used which is very slow
-#
-# For better performance replace the dispatcher with the fastcgi one
-#
-# Example:
-# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-RewriteEngine On
-
-# If your Rails application is accessed via an Alias directive,
-# then you MUST also set the RewriteBase in this htaccess file.
-#
-# Example:
-# Alias /myrailsapp /path/to/myrailsapp/public
-# RewriteBase /myrailsapp
-
-RewriteRule ^$ index.html [QSA]
-RewriteRule ^([^.]+)$ $1.html [QSA]
-RewriteCond %{REQUEST_FILENAME} !-f
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
-
-
-# In case Rails experiences terminal errors
-# Instead of displaying this message you can supply a file here which will be rendered instead
-#
-# Example:
-# ErrorDocument 500 /500.html
-
-ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a public/.svn/text-base/htaccess.fcgi.example.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/.svn/text-base/htaccess.fcgi.example.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,55 @@
+# General Apache options
+
+ AddHandler fastcgi-script .fcgi
+
+
+ AddHandler fcgid-script .fcgi
+
+
+ AddHandler cgi-script .cgi
+
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a public/help/.svn/all-wcprops
--- a/public/help/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/public/help/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 36
-/svn/!svn/ver/4308/trunk/public/help
+/svn/!svn/ver/4758/trunk/public/help
END
wiki_syntax_detailed.html
K 25
svn:wc:ra_dav:version-url
V 62
-/svn/!svn/ver/4308/trunk/public/help/wiki_syntax_detailed.html
+/svn/!svn/ver/4758/trunk/public/help/wiki_syntax_detailed.html
END
wiki_syntax.html
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a public/help/.svn/entries
--- a/public/help/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/help/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/help
http://redmine.rubyforge.org/svn
-2010-10-29T22:48:59.506153Z
-4308
-jbbarth
+2011-01-23T16:12:38.944844Z
+4758
+jplang
@@ -32,11 +32,11 @@
-2010-11-19T13:04:51.444942Z
-380699b753ffb01cba5c9504216ff64b
-2010-10-29T22:48:59.506153Z
-4308
-jbbarth
+2011-02-08T13:49:52.000000Z
+4e4c86877abc332b323cde0e35f235fa
+2011-01-23T16:12:38.944844Z
+4758
+jplang
@@ -58,7 +58,7 @@
-11397
+12098
wiki_syntax.html
file
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.075747Z
+2011-02-08T13:45:46.000000Z
f3c9e77ebd5a0c8e580df191a00bc01c
2008-09-13T09:45:07.868598Z
1803
diff -r 07fa8a8b56a8 -r 0579821a129a public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base
--- a/public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -46,7 +46,9 @@
- Link to an issue: #124 (displays
#124, link is striked-through if the issue is closed)
- Link to a changeset: r758 (displays r758)
- - Link to a changeset with a non-numeric hash: commit:c6f4d0fd (displays c6f4d0fd). Added in r1236.
+ - Link to a changeset with a non-numeric hash: commit:c6f4d0fd (displays c6f4d0fd).
+ - Link to a changeset of another project: sandbox:r758 (displays sanbox:r758)
+ - Link to a changeset with a non-numeric hash: sandbox:c6f4d0fd (displays sandbox:c6f4d0fd).
Wiki links:
@@ -74,7 +76,7 @@
document#17 (link to document with id 17)
document:Greetings (link to the document with title "Greetings")
document:"Some document" (double quotes can be used when document title contains spaces)
- document:some_project:"Some document" (link to a document with title "Some document" in other project "some_project")
+ sandbox:document:"Some document" (link to a document with title "Some document" in other project "sandbox")
@@ -84,6 +86,7 @@
version#3 (link to version with id 3)
version:1.0.0 (link to version named "1.0.0")
version:"1.0 beta 2"
+ sandbox:version:1.0.0 (link to version "1.0.0" in the project "sandbox")
@@ -103,7 +106,9 @@
source:some/file#L120 (link to line 120 of the file)
source:some/file@52#L120 (link to line 120 of the file's revision 52)
source:"some file@52#L120" (use double quotes when the URL contains spaces
- export:some/file (force the download of the file)
+ export:some/file (force the download of the file)
+ sandbox:source:some/file (link to the file located at /some/file in the repository of the project "sandbox")
+ sandbox:export:some/file (force the download of the file)
diff -r 07fa8a8b56a8 -r 0579821a129a public/help/wiki_syntax_detailed.html
--- a/public/help/wiki_syntax_detailed.html Wed Jan 19 15:04:22 2011 +0000
+++ b/public/help/wiki_syntax_detailed.html Tue Feb 08 13:51:46 2011 +0000
@@ -46,7 +46,9 @@
- Link to an issue: #124 (displays
#124, link is striked-through if the issue is closed)
- Link to a changeset: r758 (displays r758)
- - Link to a changeset with a non-numeric hash: commit:c6f4d0fd (displays c6f4d0fd). Added in r1236.
+ - Link to a changeset with a non-numeric hash: commit:c6f4d0fd (displays c6f4d0fd).
+ - Link to a changeset of another project: sandbox:r758 (displays sanbox:r758)
+ - Link to a changeset with a non-numeric hash: sandbox:c6f4d0fd (displays sandbox:c6f4d0fd).
Wiki links:
@@ -74,7 +76,7 @@
document#17 (link to document with id 17)
document:Greetings (link to the document with title "Greetings")
document:"Some document" (double quotes can be used when document title contains spaces)
- document:some_project:"Some document" (link to a document with title "Some document" in other project "some_project")
+ sandbox:document:"Some document" (link to a document with title "Some document" in other project "sandbox")
@@ -84,6 +86,7 @@
version#3 (link to version with id 3)
version:1.0.0 (link to version named "1.0.0")
version:"1.0 beta 2"
+ sandbox:version:1.0.0 (link to version "1.0.0" in the project "sandbox")
@@ -103,7 +106,9 @@
source:some/file#L120 (link to line 120 of the file)
source:some/file@52#L120 (link to line 120 of the file's revision 52)
source:"some file@52#L120" (use double quotes when the URL contains spaces
- export:some/file (force the download of the file)
+ export:some/file (force the download of the file)
+ sandbox:source:some/file (link to the file located at /some/file in the repository of the project "sandbox")
+ sandbox:export:some/file (force the download of the file)
diff -r 07fa8a8b56a8 -r 0579821a129a public/htaccess.fcgi.example
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/htaccess.fcgi.example Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,55 @@
+# General Apache options
+
+ AddHandler fastcgi-script .fcgi
+
+
+ AddHandler fcgid-script .fcgi
+
+
+ AddHandler cgi-script .cgi
+
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a public/images/.svn/entries
--- a/public/images/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/images/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
45d9f8f4b7723c5df684fd6785b40700
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
7042481efe0084860d2a7b176086b306
2010-12-18T16:06:20.343240Z
4534
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
2455a62f4801926d7c69099f5134c867
2010-02-13T09:08:12.698526Z
3419
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
bc6f6e0d67aba9e7689e852dad4977f9
2010-02-13T09:08:12.698526Z
3419
@@ -168,7 +168,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
ecc1979ed435769c700725495428359f
2010-09-10T03:09:02.311267Z
4072
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
6730b4ea633194233bec98ee5f7a3977
2010-02-13T09:08:12.698526Z
3419
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
8ae3a2d9ef884ed73a4157cd9c0465b8
2010-02-13T09:08:12.698526Z
3419
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
f1cdd6ad27b9211924dcd8a4c8133f1b
2010-02-13T09:08:12.698526Z
3419
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
ff96c02d8f18116bb3f005f2c8b86e91
2010-02-13T09:08:12.698526Z
3419
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
0a2ceb01cbc3c01186fdcc25ced8eb0d
2010-02-13T09:08:12.698526Z
3419
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
a20844852ce8909ed4a19ccb0f6c6518
2010-02-14T13:13:16.743297Z
3430
@@ -406,7 +406,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
94cfc6b14b69f8eb30909fa1a0d8721d
2010-09-10T03:09:02.311267Z
4072
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
6a0f06b7f2b400d1d7b07180a909fed2
2010-02-13T09:08:12.698526Z
3419
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
91b883d074b727f1a95cd0ce48510a3c
2010-02-13T09:08:12.698526Z
3419
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
acd6a5a422b44466803829ce8a12fd9a
2010-02-13T09:08:12.698526Z
3419
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
63c87d73f46ed17a4ebc2b5a7e6cd6f4
2010-02-13T09:08:12.698526Z
3419
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
45e9710ba200afbac6ba55970bd9d625
2010-02-23T21:10:15.865943Z
3477
@@ -613,7 +613,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
7604387e10f9c0be473a497ee5f516b8
2010-02-13T09:08:12.698526Z
3419
@@ -647,7 +647,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
66da3813f290297bc39d289b859c3818
2010-02-13T09:08:12.698526Z
3419
@@ -681,7 +681,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
0c32351cd2f92465a51d8da771bd92cb
2010-02-13T09:08:12.698526Z
3419
@@ -715,7 +715,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
59894f5d5656b1f6e2af9c22187e6e86
2010-09-10T03:09:02.311267Z
4072
@@ -749,7 +749,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
30a7571b4822a789787f2a8b25ad4808
2010-02-13T09:08:12.698526Z
3419
@@ -783,7 +783,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
80f689a299e7e69fb2512482bca6f5d4
2010-02-13T09:08:12.698526Z
3419
@@ -817,7 +817,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
ce8f2e6769f9abc327609dea0ded14e5
2010-02-13T09:08:12.698526Z
3419
@@ -851,7 +851,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
242909ef391b4ebc83d53b13b4d90991
2010-02-13T09:08:12.698526Z
3419
@@ -885,7 +885,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
cf95da81d3626d67d5f49792341e396a
2010-02-13T09:08:12.698526Z
3419
@@ -919,7 +919,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
62d29dab3c8967d0ca404a25059c3dbd
2010-02-13T09:08:12.698526Z
3419
@@ -953,7 +953,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
eecb8adaaeabcff6c838886809c85f93
2010-02-13T09:08:12.698526Z
3419
@@ -987,7 +987,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
898a97e88d0cfc1dd41a6903d0a7cd72
2010-02-13T09:08:12.698526Z
3419
@@ -1021,7 +1021,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
3713155c5afcfeffaf877126d6b942aa
2010-02-13T09:08:12.698526Z
3419
@@ -1055,7 +1055,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
40c58172e0c52eee4deb5227ec37f0cf
2010-09-10T03:09:02.311267Z
4072
@@ -1089,7 +1089,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
fba036d7348ff28f7ab7dacbc52bc32a
2010-02-13T09:08:12.698526Z
3419
@@ -1123,7 +1123,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
01c137e009015642700b935edb321a89
2010-02-13T09:08:12.698526Z
3419
@@ -1157,7 +1157,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
ef1412a13d9113c5e5e85cfcd8300d9d
2010-02-13T09:08:12.698526Z
3419
@@ -1191,7 +1191,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
b2e4e10fb114db28b9245210a5505c44
2010-02-14T11:52:12.027647Z
3426
@@ -1225,7 +1225,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
e0d9ad958faa1c07b84c78c7b7e5ffae
2010-02-13T09:08:12.698526Z
3419
@@ -1259,7 +1259,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
3eb9e517f1a10430f7ec0ed7d30e05d8
2010-02-13T09:08:12.698526Z
3419
@@ -1293,7 +1293,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
e341b581fbbf8a5d038c8432409ceb5f
2010-02-23T21:10:15.865943Z
3477
@@ -1327,7 +1327,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
981a44ce8d3f71125a300dece0cc0f21
2010-02-13T09:08:12.698526Z
3419
@@ -1361,7 +1361,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
c4e01ea1c0ce5a1cd5154dfd2512fb21
2010-02-13T09:08:12.698526Z
3419
@@ -1395,7 +1395,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
944495c065d05a9161ad7da534703010
2010-02-13T09:08:12.698526Z
3419
@@ -1429,7 +1429,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
985a1dadffeaa303ff1eef4ea53ec0f4
2010-02-13T09:08:12.698526Z
3419
@@ -1463,7 +1463,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
0a35d4eaddb2292fed7062295ee0dcd8
2010-02-13T09:08:12.698526Z
3419
@@ -1497,7 +1497,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
f0c51de3ba403e552c8ab6e8084448a4
2010-02-13T09:08:12.698526Z
3419
@@ -1531,7 +1531,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
fa1be48a747127ee34d4fae020b825d4
2010-02-14T13:13:16.743297Z
3430
@@ -1565,7 +1565,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
06cbf5da7daca348a87a6299a4112d71
2010-02-13T09:08:12.698526Z
3419
@@ -1599,7 +1599,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
8e1056421acf9e61af00f0dcb83fef12
2010-02-13T09:08:12.698526Z
3419
@@ -1633,7 +1633,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
9e64db8f4905a17e3a6f68792cd5e199
2010-02-13T09:08:12.698526Z
3419
@@ -1667,7 +1667,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
3363f60299360fb5539b769d089e145f
2010-02-13T09:08:12.698526Z
3419
@@ -1701,7 +1701,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
03ce3dcc84af110e9da8699a841e5200
2006-12-03T19:55:45.161980Z
62
@@ -1735,7 +1735,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
e019855b07d30f1ce1baf59b9df27125
2010-02-13T09:08:12.698526Z
3419
@@ -1769,7 +1769,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
848b802c0ce8e051f98f086f6e31c8cd
2010-02-13T09:08:12.698526Z
3419
@@ -1803,7 +1803,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
eec8605f3797315b2d8397422df1aed3
2010-02-13T09:08:12.698526Z
3419
@@ -1837,7 +1837,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
40c58172e0c52eee4deb5227ec37f0cf
2010-09-10T03:09:02.311267Z
4072
@@ -1871,7 +1871,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
7b5dcbdd0de4541b39e1302b6277684d
2010-02-13T09:08:12.698526Z
3419
@@ -1905,7 +1905,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
dca02b582c10127fcdc8af47e94d4e4c
2010-02-13T09:08:12.698526Z
3419
@@ -1939,7 +1939,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
42b319d6ad0249fb20833a17d5f373a4
2010-02-13T09:08:12.698526Z
3419
@@ -1973,7 +1973,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
8d8ec49f5773997411ff708a82e40568
2010-02-13T09:08:12.698526Z
3419
@@ -2007,7 +2007,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
59f2dc025632f00403490176e7f42bfc
2010-02-13T09:08:12.698526Z
3419
@@ -2041,7 +2041,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
29feed9e7b5c34854bf9f9f39681e06b
2010-02-13T09:08:12.698526Z
3419
@@ -2075,7 +2075,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
c4c76ce450e3e838afd6aa8f34a8d9a8
2010-02-13T09:08:12.698526Z
3419
@@ -2109,7 +2109,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
97c12039afee2ea9c5a13e74f6fa5c0c
2010-02-13T09:08:12.698526Z
3419
@@ -2143,7 +2143,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
a30b3000c7286879d10ca1fbff06f71d
2010-02-13T09:08:12.698526Z
3419
@@ -2177,7 +2177,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
afef823014efb32adcd9606b69119562
2010-02-13T09:08:12.698526Z
3419
@@ -2211,7 +2211,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
ed9b7ced8e3b6275c14d528dc6909691
2010-02-13T09:08:12.698526Z
3419
@@ -2245,7 +2245,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
812bdb688394ba6e2ed3cb7ceb4b7df0
2010-02-13T09:08:12.698526Z
3419
@@ -2279,7 +2279,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
7e62689a93d0a23cbd1cf2dd754653e2
2010-02-13T09:08:12.698526Z
3419
@@ -2313,7 +2313,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
9856446e5026c8d31704b84e836dc06e
2010-02-13T09:08:12.698526Z
3419
@@ -2347,7 +2347,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
f94f71deb205f49de993ad9521791ada
2010-02-13T09:08:12.698526Z
3419
@@ -2381,7 +2381,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
3ec32bbf3ad9e052833d05c0d41445f0
2010-02-13T09:08:12.698526Z
3419
@@ -2415,7 +2415,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
980dcfdb816ce626e4d2df5c2a308549
2010-02-13T09:08:12.698526Z
3419
@@ -2449,7 +2449,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
3e9542b5042e280bc2fc0ae98c81529f
2010-02-13T09:08:12.698526Z
3419
@@ -2483,7 +2483,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
9a911ac680f354452f13729921e80d21
2010-02-13T09:08:12.698526Z
3419
@@ -2517,7 +2517,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
ea73bd6514b7d5f1d7ea2bd336f9303a
2010-02-13T09:08:12.698526Z
3419
@@ -2551,7 +2551,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
3b0e537dabdfa5385e76ea465c4ea57b
2010-02-13T09:08:12.698526Z
3419
@@ -2585,7 +2585,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
82e11faddb62c05a1ef9701035919c00
2010-02-13T09:08:12.698526Z
3419
@@ -2619,7 +2619,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
cd3890ab38793e53a99227a180616a70
2010-02-13T09:08:12.698526Z
3419
@@ -2653,7 +2653,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
9a73430b658b4e16668b3e3cc7e241b4
2010-02-13T09:08:12.698526Z
3419
@@ -2687,7 +2687,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
558c616ebcfa38b1c7b298184e58eb91
2010-02-13T09:08:12.698526Z
3419
@@ -2721,7 +2721,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
2459e5967a6ddd78589ab52970574f3f
2010-02-13T09:08:12.698526Z
3419
@@ -2755,7 +2755,7 @@
-2010-09-23T14:37:45.131805Z
+2011-02-08T13:45:46.000000Z
60f9166d90d7aeb71d0ec9ee337c3f5e
2010-02-13T09:08:12.698526Z
3419
@@ -2792,7 +2792,7 @@
-2010-09-23T14:37:45.127811Z
+2011-02-08T13:45:46.000000Z
cd5b56dff1c089b4e1e3db29b2b7226e
2010-02-13T09:08:12.698526Z
3419
@@ -2826,7 +2826,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
6172a7483daa35983c4ea5a35bd8c64a
2010-07-20T23:50:15.173990Z
3859
@@ -2860,7 +2860,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
6b08128a1b67ecb4b1ed06c9c505ac63
2010-02-13T09:08:12.698526Z
3419
@@ -2894,7 +2894,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
980dcfdb816ce626e4d2df5c2a308549
2010-02-13T09:08:12.698526Z
3419
@@ -2928,7 +2928,7 @@
-2010-09-23T14:37:45.123788Z
+2011-02-08T13:45:46.000000Z
035a9d73627fc55aeaa7b553ac82ae9e
2010-02-13T09:08:12.698526Z
3419
@@ -2962,7 +2962,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
06b4b4425c7439fd898cd68e97f75d0f
2010-02-13T09:08:12.698526Z
3419
@@ -2996,7 +2996,7 @@
-2010-09-23T14:37:45.163769Z
+2011-02-08T13:45:46.000000Z
d8ae88af42e1b9d1a4f9397041b17cd8
2010-02-13T09:08:12.698526Z
3419
@@ -3030,7 +3030,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
85089bb401af7c5d7325ee317483ac70
2010-02-13T09:08:12.698526Z
3419
@@ -3064,7 +3064,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
11dc95a35460864fc1e81bd95121cbf4
2010-02-13T09:08:12.698526Z
3419
@@ -3098,7 +3098,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
d8720cf3644e6ae0511c1391fb2ecf07
2009-02-11T19:07:07.158826Z
2442
@@ -3132,7 +3132,7 @@
-2010-09-23T14:37:45.155802Z
+2011-02-08T13:45:46.000000Z
8b706274d81243b3d26fdf06dfc9e533
2010-02-13T09:08:12.698526Z
3419
@@ -3166,7 +3166,7 @@
-2010-09-24T12:48:29.823793Z
+2011-02-08T13:45:46.000000Z
f0626259c107cfa1d1e4cb9d9f6edd34
2010-09-10T03:09:02.311267Z
4072
@@ -3200,7 +3200,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
9265bd26d6ba3d780dcd6fe676352d93
2010-02-13T09:08:12.698526Z
3419
@@ -3234,7 +3234,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
e34a59e24637e7bf462f5a742dbe243f
2010-02-13T09:08:12.698526Z
3419
@@ -3268,7 +3268,7 @@
-2010-09-23T14:37:45.159811Z
+2011-02-08T13:45:46.000000Z
11f086774137d85a5cc6590ec3335ead
2010-02-13T09:08:12.698526Z
3419
diff -r 07fa8a8b56a8 -r 0579821a129a public/images/files/.svn/entries
--- a/public/images/files/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/images/files/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/images/files
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.135758Z
+2011-02-08T13:45:46.000000Z
136af9d95025ca62a3091a261266e13f
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
c801cf9aa0103de823e53e83459a1ff9
2010-02-13T09:08:12.698526Z
3419
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
1e51c81cb33d3d6746d440c1babfe0f5
2010-02-13T09:08:12.698526Z
3419
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.135758Z
+2011-02-08T13:45:46.000000Z
db0495227202385c9fce1b73f2d58ff0
2010-02-13T09:08:12.698526Z
3419
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
94db8424e52f54d7372a976574c4598e
2010-02-13T09:08:12.698526Z
3419
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
ad3ed8ec19bb2a3cca8c03e0ea1aa846
2010-02-13T09:08:12.698526Z
3419
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
8e05d64f0b9f45f076b41521a8d6a8d1
2010-02-13T09:08:12.698526Z
3419
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
ea9b5de5353e1cac630021dfed30dba4
2010-02-13T09:08:12.698526Z
3419
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
0790c67308754572014015fa90eef406
2010-02-13T09:08:12.698526Z
3419
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.139758Z
+2011-02-08T13:45:46.000000Z
e11f9ebff53e8088dce2a0028f0d5190
2010-02-13T09:08:12.698526Z
3419
diff -r 07fa8a8b56a8 -r 0579821a129a public/images/jstoolbar/.svn/entries
--- a/public/images/jstoolbar/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/images/jstoolbar/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/images/jstoolbar
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
c77264aa6d145362b791c99d18f53ace
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
c19bfc8d9620c00cdd8ae322426bc07e
2010-02-13T09:08:12.698526Z
3419
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
ef6624df45946b54e3b23db2a0c6b77b
2010-02-13T09:08:12.698526Z
3419
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
cb940b592da5ed0367305cb0514d5684
2010-02-13T09:08:12.698526Z
3419
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
5477ff20be77ab65aa6b75f47778234e
2010-02-13T09:08:12.698526Z
3419
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
04a0e86c9eec7d85d445e7627b5fc8ea
2010-02-13T09:08:12.698526Z
3419
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
f9d7446ceaa5142a5030e9430b3a2bb4
2010-02-13T09:08:12.698526Z
3419
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.147772Z
+2011-02-08T13:45:46.000000Z
123b8289e1bd69a5944cf727a5e39bc9
2010-02-13T09:08:12.698526Z
3419
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
15d8f6c0fbf85718123fb7c7da782713
2010-02-13T09:08:12.698526Z
3419
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
5a29cb56451be0fd714b99d2b2649bf0
2010-02-13T09:08:12.698526Z
3419
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
07234419aecb827f11eef1ebd9b42482
2010-02-13T09:08:12.698526Z
3419
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
5042501ddf948fe938ded69a40ef1024
2010-02-13T09:08:12.698526Z
3419
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
584fb45fd15d894adc19ff3cf626fae9
2010-02-13T09:08:12.698526Z
3419
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.147772Z
+2011-02-08T13:45:46.000000Z
8448f92476ae933bacef7bc30ffd18fd
2010-02-13T09:08:12.698526Z
3419
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.151760Z
+2011-02-08T13:45:46.000000Z
38ee94bc0a44b9420854aceeccd2dd59
2010-02-13T09:08:12.698526Z
3419
diff -r 07fa8a8b56a8 -r 0579821a129a public/javascripts/.svn/entries
--- a/public/javascripts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/javascripts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/javascripts
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.243754Z
+2011-02-08T13:45:46.000000Z
b5684120e496c310977713be34be4868
2009-02-21T11:04:50.579477Z
2493
@@ -69,7 +69,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
d8370dbea2b172789fa1683412c110a5
2010-12-12T16:26:24.102027Z
4504
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.243754Z
+2011-02-08T13:45:46.000000Z
b868f888ccb92a2e7d3b955f0213078c
2009-08-15T22:41:40.505056Z
2840
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.207758Z
+2011-02-08T13:45:46.000000Z
a7d95dc040992701ba78fd5b97af950e
2009-02-21T11:04:50.579477Z
2493
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.243754Z
+2011-02-08T13:45:46.000000Z
d62b158eef2592fbe11ce104e118631c
2009-11-28T11:59:45.246623Z
3106
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.207758Z
+2011-02-08T13:45:46.000000Z
3aa08ad9af21eb305a120e2e1a47d1af
2009-02-21T11:04:50.579477Z
2493
@@ -242,7 +242,7 @@
-2011-01-13T14:11:09.000000Z
+2011-02-08T13:45:46.000000Z
d9adfbc01d7b99bb5de20d5e9fb145a6
2011-01-06T21:02:19.982329Z
4648
@@ -276,7 +276,7 @@
-2010-09-23T14:37:45.207758Z
+2011-02-08T13:45:46.000000Z
136701e951925f3dcb84f9a231f9326e
2009-02-21T11:04:50.579477Z
2493
diff -r 07fa8a8b56a8 -r 0579821a129a public/javascripts/calendar/.svn/entries
--- a/public/javascripts/calendar/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/javascripts/calendar/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.171796Z
+2011-02-08T13:45:46.000000Z
e9be087e31b69f1e6a29ebd09b878486
2009-12-26T17:17:16.012737Z
3252
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.171796Z
+2011-02-08T13:45:46.000000Z
a2dccec0bd70984b17a54239caf0d5e0
2010-06-30T02:54:15.730933Z
3822
diff -r 07fa8a8b56a8 -r 0579821a129a public/javascripts/calendar/lang/.svn/entries
--- a/public/javascripts/calendar/lang/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/javascripts/calendar/lang/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar/lang
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
d89a932075b18af4121f1941175d33d6
2008-03-05T08:54:26.865464Z
1186
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
1f10556f12619006e5cd99bf0e5061cc
2009-03-24T19:16:02.676125Z
2629
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
071917d0ae794b3cb057a0b354cd5105
2007-09-25T16:37:51.755262Z
764
@@ -134,7 +134,7 @@
-2010-09-24T12:48:29.835791Z
+2011-02-08T13:45:46.000000Z
1044fe45dceaa0d72c32aca5c86eea4a
2010-08-29T12:54:04.302020Z
4049
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
5728a3665edb05faed6661f0f77c6eab
2007-04-04T18:20:45.423396Z
419
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
42ef87b559c68d2db63b109f3cb3f3ed
2008-12-24T15:48:59.830167Z
2182
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
3f9bda99497d5c8342d87b4ec6aa44ba
2010-01-25T15:25:46.560119Z
3338
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
4ae334472d40209252da8c69f07eabd5
2008-03-27T19:27:40.125888Z
1300
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
3c66093b97b7d0bb66f04dbc0be4afb3
2008-05-25T12:18:49.439996Z
1452
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
c161d1507fbd65ebddd7ada7c495eb89
2008-11-09T00:29:20.731069Z
1998
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
a85bbd596ff7e03e9434a286edd134fd
2009-02-21T11:04:50.579477Z
2493
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
46811ee79796d2345bea2308475d1ec9
2008-02-15T17:47:19.829750Z
1149
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
c48be791f5e8d236624752ce05cd3ed7
2010-08-19T15:41:09.090282Z
4003
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
7e96487f7e089a48bd61d5e6e8785fe1
2009-03-24T19:20:53.296475Z
2630
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
8555f3d813ca70ecbd2aaecae826549f
2007-11-16T21:24:22.091853Z
907
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
f5a05a0d27c2d22fa8a7bf16be345250
2009-12-23T18:56:03.404741Z
3227
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
c4f74e36f6a3debcf8ec065bc6886f04
2009-01-23T15:37:59.406714Z
2296
@@ -610,7 +610,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
46811ee79796d2345bea2308475d1ec9
2007-04-04T18:20:45.423396Z
419
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
0bfaa3ec0b265f9d5a815d9b9b348c96
2007-09-22T14:12:44.830265Z
748
@@ -678,7 +678,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
0bed4c9c046772a12267b4118bf1504a
2008-06-07T09:03:20.687527Z
1498
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
f8d0daa275cf612206c43d4c9be95d08
2010-01-17T10:33:30.937961Z
3320
@@ -746,7 +746,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
c029bd9c4867bb39e86d1d6efada6d58
2007-05-24T17:29:11.682821Z
539
@@ -780,7 +780,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
307341352eee53b3ccd1fbec2a4b27f7
2010-04-03T10:49:16.109274Z
3626
@@ -814,7 +814,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
c8c19e66c3e1099c3e0ecae6462f68da
2008-04-30T08:47:14.770680Z
1383
@@ -848,7 +848,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
eabf711c28d30bb9474f3f505766f286
2007-09-22T14:56:09.057923Z
749
@@ -882,7 +882,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
d637b0156da2601e000e16f1ac178768
2010-08-19T15:41:09.090282Z
4003
@@ -916,7 +916,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
cbf1a5c6b271835c701031aacaeaa271
2009-01-31T12:02:37.933490Z
2340
@@ -950,7 +950,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
33bc41a153fc6fb2aa53069fb0f647d6
2008-02-15T17:47:19.829750Z
1149
@@ -984,7 +984,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
02222471f3e701ac1223096737fa5705
2008-06-07T09:03:20.687527Z
1498
@@ -1018,7 +1018,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
b260d88c13c01ebf4e7c94b9cb022930
2010-05-14T18:15:41.754813Z
3737
@@ -1052,7 +1052,7 @@
-2010-09-24T12:48:29.835791Z
+2011-02-08T13:45:46.000000Z
2756627844089652700c203ee91ec6f3
2010-09-05T11:33:08.614151Z
4060
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
67f2807b1ee731af4fe16f358a8d9096
2008-10-06T15:00:56.914741Z
1927
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
c684331ae98de9a0e03db4de8f985e44
2008-05-25T12:42:56.738934Z
1453
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
0d732eaa10604b943c7d600a15c8a651
2009-01-20T16:09:07.993954Z
2292
@@ -1188,7 +1188,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
a26f883ac70499ee0409af2c08156a84
2010-08-19T15:41:09.090282Z
4003
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
8cb3dced137544295b39ef836028433e
2008-09-13T17:25:01.876743Z
1817
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:45.191758Z
+2011-02-08T13:45:46.000000Z
df1a74fadb5ce5b1cc53aa70034f578b
2007-05-02T19:36:00.768529Z
502
@@ -1290,7 +1290,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
d508459192a856b332d75de94c8d5c6c
2007-04-04T18:20:45.423396Z
419
@@ -1324,7 +1324,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
66418d047f243e10172798af0fb4d927
2010-06-21T19:54:55.180393Z
3809
@@ -1358,7 +1358,7 @@
-2010-09-23T14:37:45.203758Z
+2011-02-08T13:45:46.000000Z
7dc0f35efebbe8b0d078d2c847b43b7c
2009-01-20T15:45:34.332677Z
2290
@@ -1392,7 +1392,7 @@
-2010-09-23T14:37:45.199778Z
+2011-02-08T13:45:46.000000Z
eb66ba69ac2233b24fe200060ec67ab7
2008-01-10T18:34:14.889747Z
1051
@@ -1426,7 +1426,7 @@
-2010-09-23T14:37:45.195758Z
+2011-02-08T13:45:46.000000Z
0c77d7dafe8031971e69a7a57b3dc93e
2008-05-30T15:34:53.673854Z
1478
diff -r 07fa8a8b56a8 -r 0579821a129a public/javascripts/jstoolbar/.svn/entries
--- a/public/javascripts/jstoolbar/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/javascripts/jstoolbar/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
277ebc7c66d8c8280bbe729e6cb11529
2008-10-27T11:08:29.901011Z
1955
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.211758Z
+2011-02-08T13:45:46.000000Z
2b77f98553b6d5e0d4c405195eebe664
2008-10-27T11:08:29.901011Z
1955
diff -r 07fa8a8b56a8 -r 0579821a129a public/javascripts/jstoolbar/lang/.svn/entries
--- a/public/javascripts/jstoolbar/lang/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar/lang
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-24T12:48:29.827791Z
+2011-02-08T13:45:46.000000Z
318952e82ec967a5474a8b8464b66c63
2010-08-29T12:54:04.302020Z
4049
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
21ca3fea9a77d127edb7d2e95b33b8f8
2008-11-14T15:18:13.107466Z
2033
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
7cbd6179e32e9b8ec12a884c820565ca
2008-12-29T18:27:27.433290Z
2202
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
73ba5f511744c07325bc0eae3dce14e6
2010-01-25T15:25:46.560119Z
3338
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
b1cfe765b72f2d904756bf60307c97b7
2008-06-15T09:49:16.794942Z
1540
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
83762b06ef0b9a9756f858357bf11361
2008-05-30T16:35:36.510811Z
1479
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
b27b3e83de7c68c7752703799c0a4cda
2008-11-08T22:34:41.558925Z
1997
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
06a6efe1fa0092d534f1cc403529670b
2009-02-21T11:04:50.579477Z
2493
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
bf8f49f26dc22319ff3da721c261c593
2010-08-19T15:41:09.090282Z
4003
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
de3d5c4af91e93505e939ccb1ef6b27a
2009-03-24T19:20:53.296475Z
2630
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
9f461eb7e9ab4460155983bd005c3237
2009-09-24T15:03:23.893264Z
2901
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
fd6a3f960f0d6e1ce7e6466d592453fe
2009-12-23T18:56:03.404741Z
3227
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
1114856226e757ddfb08a99ab1cac3eb
2009-01-23T15:37:59.406714Z
2296
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
9b432fe2e801ed76abf312a10c643fb8
2008-05-30T16:35:36.510811Z
1479
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
be45a6e710f3a07e9fab41d795a64030
2008-06-07T09:03:20.687527Z
1498
@@ -610,7 +610,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
f13f0553753c4b53bd96c294ca6ce15e
2010-01-17T10:33:30.937961Z
3320
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
b1bc7a04b7b466073845dd2c81bbbf23
2009-01-20T15:53:09.750096Z
2291
@@ -678,7 +678,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
e7df0709db363c802a6a5a4913520ac5
2010-04-03T10:49:16.109274Z
3626
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
3f844a6495d4eebb122b5c7b21696282
2008-05-30T16:35:36.510811Z
1479
@@ -746,7 +746,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
1d2b7d7c66953806ca428f91a95d2eaa
2008-10-07T17:41:16.515762Z
1928
@@ -780,7 +780,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
c7198fe4acf23cf7df996603e68b492b
2010-08-19T15:41:09.090282Z
4003
@@ -814,7 +814,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
a85f4ab1ed887a855f03c2cc8efb0107
2009-01-31T12:02:37.933490Z
2340
@@ -848,7 +848,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
1fbcdee2a48a3d359fd766880b9b606f
2008-05-30T16:35:36.510811Z
1479
@@ -882,7 +882,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
fa9b7d27a231a3c85c1a4632f2563ac4
2008-06-07T09:03:20.687527Z
1498
@@ -916,7 +916,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
5a44b7a9bd5b7db86d0a7398ee5bc779
2010-05-14T18:15:41.754813Z
3737
@@ -950,7 +950,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
6aacb53ed49e6e14831baf8c38096662
2008-09-15T16:07:30.857601Z
1865
@@ -984,7 +984,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
2479961837e503c00632ff7e6997b10d
2008-10-06T15:00:56.914741Z
1927
@@ -1018,7 +1018,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
4061b38de5e085dac922f77f94bd254a
2009-10-11T09:24:45.635758Z
2921
@@ -1052,7 +1052,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
37aed8a5fce8e7f2030ac37e3d635068
2008-05-30T16:35:36.510811Z
1479
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
fb00cc94dfc8f319dda707b957aae8a6
2010-08-19T15:41:09.090282Z
4003
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
c7333a1fd77fe1f7db31810175f8fe8f
2008-09-13T17:25:01.876743Z
1817
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:45.227756Z
+2011-02-08T13:45:46.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -1188,7 +1188,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
7c5edef659f90a30330909bc13b0d6fb
2008-05-30T16:35:36.510811Z
1479
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
c49e65f5c02ababbaa0c9a9968424950
2010-06-21T19:54:55.180393Z
3809
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:45.239756Z
+2011-02-08T13:45:46.000000Z
7ec48cf15b3d65b2a0994b50b033b4b8
2009-01-23T15:46:22.446544Z
2298
@@ -1290,7 +1290,7 @@
-2010-09-23T14:37:45.235815Z
+2011-02-08T13:45:46.000000Z
06245b4053c38d6bf3ae61d1bf4c7587
2009-09-24T15:03:23.893264Z
2901
@@ -1324,7 +1324,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -1358,7 +1358,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
0377fba91478a1df25844aa70609e204
2008-05-30T16:35:36.510811Z
1479
@@ -1392,7 +1392,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
da8e9ced2ea20fedc7bb3204082fc68a
2009-03-24T19:16:02.676125Z
2629
@@ -1426,7 +1426,7 @@
-2010-09-23T14:37:45.231813Z
+2011-02-08T13:45:46.000000Z
8394af79dae7854d27ccdb8b72c3262c
2008-05-30T16:35:36.510811Z
1479
diff -r 07fa8a8b56a8 -r 0579821a129a public/stylesheets/.svn/all-wcprops
--- a/public/stylesheets/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/public/stylesheets/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 43
-/svn/!svn/ver/4702/trunk/public/stylesheets
+/svn/!svn/ver/4782/trunk/public/stylesheets
END
context_menu.css
K 25
@@ -49,5 +49,5 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4702/trunk/public/stylesheets/application.css
+/svn/!svn/ver/4782/trunk/public/stylesheets/application.css
END
diff -r 07fa8a8b56a8 -r 0579821a129a public/stylesheets/.svn/entries
--- a/public/stylesheets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/stylesheets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/stylesheets
http://redmine.rubyforge.org/svn
-2011-01-11T20:37:31.480170Z
-4702
+2011-01-30T09:09:50.276451Z
+4782
jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.247783Z
+2011-02-08T13:45:46.000000Z
d4e12d14040f9f048ddc696b1c0adf71
2010-05-01T11:54:40.545656Z
3725
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.247783Z
+2011-02-08T13:45:46.000000Z
ee22ead851abb7d0733ccd46315ccdc2
2010-08-19T01:13:50.846630Z
3950
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.247783Z
+2011-02-08T13:45:46.000000Z
c8ca83463f3cde626ce2e2c3dca08cb2
2010-08-22T19:12:21.015911Z
4014
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.251810Z
+2011-02-08T13:45:46.000000Z
d4a1902945bf7a0faa18be73960030c9
2008-09-17T17:18:05.938945Z
1872
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.251810Z
+2011-02-08T13:45:46.000000Z
cb7655798f97e931ea4992a9dd1afc4f
2010-08-22T19:12:21.015911Z
4014
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.247783Z
+2011-02-08T13:45:46.000000Z
62cab819ebe98bd9fb95415ac7b52e12
2007-12-28T21:58:33.550772Z
1024
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.251810Z
+2011-02-08T13:45:46.000000Z
360ffe5ea0cba43a286c7e42756b463f
2010-03-28T11:30:48.135356Z
3619
@@ -272,8 +272,8 @@
b268a66dce14ef4250f269776b4ddcde
-2011-01-11T20:37:31.480170Z
-4702
+2011-01-30T09:09:50.276451Z
+4782
jplang
has-props
diff -r 07fa8a8b56a8 -r 0579821a129a public/stylesheets/.svn/tmp/application.css.tmp
--- a/public/stylesheets/.svn/tmp/application.css.tmp Wed Jan 19 15:04:22 2011 +0000
+++ b/public/stylesheets/.svn/tmp/application.css.tmp Tue Feb 08 13:51:46 2011 +0000
@@ -1,3 +1,4 @@
+html {overflow-y:scroll;}
body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
@@ -113,7 +114,7 @@
tr.project td.name a { white-space:nowrap; }
-tr.project.idnt td.name a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
+tr.project.idnt td.name span {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
tr.project.idnt-1 td.name {padding-left: 0.5em;}
tr.project.idnt-2 td.name {padding-left: 2em;}
tr.project.idnt-3 td.name {padding-left: 3.5em;}
@@ -178,6 +179,8 @@
tr.user.locked, tr.user.registered { color: #aaa; }
tr.user.locked a, tr.user.registered a { color: #aaa; }
+tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
+
tr.time-entry { text-align: center; white-space: nowrap; }
tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
@@ -419,6 +422,7 @@
.tabular.settings textarea { width: 99%; }
fieldset.settings label { display: block; }
+.parent { padding-left: 20px; }
.required {color: #bb0000;}
.summary {font-style: italic;}
@@ -662,6 +666,7 @@
}
#parent_issue_candidates ul li {width: 500px;}
+#related_issue_candidates ul li {width: 500px;}
/***** Diff *****/
.diff_out { background: #fcc; }
@@ -714,9 +719,10 @@
div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
-div.wiki ul.toc li { list-style-type:none;}
-div.wiki ul.toc li.heading2 { margin-left: 6px; }
-div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
+div.wiki ul.toc ul { margin: 0; padding: 0; }
+div.wiki ul.toc li { list-style-type:none; margin: 0;}
+div.wiki ul.toc li li { margin-left: 1.5em; }
+div.wiki ul.toc li li li { font-size: 0.8em; }
div.wiki ul.toc a {
font-size: 0.9em;
@@ -776,6 +782,8 @@
overflow: hidden;
}
+.gantt_subjects { font-size: 0.8em; }
+
.task {
position: absolute;
height:8px;
@@ -788,24 +796,26 @@
}
.task.label {width:100%;}
+.task.label.project, .task.label.version { font-weight: bold; }
.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
.task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; }
.task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
-.task_todo.parent { background: #888; border: 1px solid #888; height: 6px;}
+.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
.task_late.parent, .task_done.parent { height: 3px;}
-.task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;}
-.task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;}
+.task.parent.marker.starting { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
+.task.parent.marker.ending { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
-.milestone { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; }
-.milestone_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.milestone_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.milestone_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
-.project-line { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; }
-.project_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
-.project_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
-.project_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.version.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.version.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.marker { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.project.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.project.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.project.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.project.marker { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
@@ -831,7 +841,6 @@
.icon-folder { background-image: url(../images/folder.png); }
.open .icon-folder { background-image: url(../images/folder_open.png); }
.icon-package { background-image: url(../images/package.png); }
-.icon-home { background-image: url(../images/home.png); }
.icon-user { background-image: url(../images/user.png); }
.icon-projects { background-image: url(../images/projects.png); }
.icon-help { background-image: url(../images/help.png); }
@@ -853,6 +862,8 @@
.icon-summary { background-image: url(../images/lightning.png); }
.icon-server-authentication { background-image: url(../images/server_key.png); }
.icon-issue { background-image: url(../images/ticket.png); }
+.icon-zoom-in { background-image: url(../images/zoom_in.png); }
+.icon-zoom-out { background-image: url(../images/zoom_out.png); }
.icon-file { background-image: url(../images/files/default.png); }
.icon-file.text-plain { background-image: url(../images/files/text.png); }
@@ -902,8 +913,8 @@
}
td.username img.gravatar {
- float: left;
- margin: 0 1em 0 0;
+ margin: 0 0.5em 0 0;
+ vertical-align: top;
}
#activity dt img.gravatar {
diff -r 07fa8a8b56a8 -r 0579821a129a public/stylesheets/.svn/tmp/tempfile.tmp
--- a/public/stylesheets/.svn/tmp/tempfile.tmp Wed Jan 19 15:04:22 2011 +0000
+++ b/public/stylesheets/.svn/tmp/tempfile.tmp Tue Feb 08 13:51:46 2011 +0000
@@ -1,3 +1,4 @@
+html {overflow-y:scroll;}
body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
@@ -113,7 +114,7 @@
tr.project td.name a { white-space:nowrap; }
-tr.project.idnt td.name a {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
+tr.project.idnt td.name span {background: url(../images/bullet_arrow_right.png) no-repeat 0 50%; padding-left: 16px;}
tr.project.idnt-1 td.name {padding-left: 0.5em;}
tr.project.idnt-2 td.name {padding-left: 2em;}
tr.project.idnt-3 td.name {padding-left: 3.5em;}
@@ -178,6 +179,8 @@
tr.user.locked, tr.user.registered { color: #aaa; }
tr.user.locked a, tr.user.registered a { color: #aaa; }
+tr.wiki-page-version td.updated_on, tr.wiki-page-version td.author {text-align:center;}
+
tr.time-entry { text-align: center; white-space: nowrap; }
tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
@@ -419,6 +422,7 @@
.tabular.settings textarea { width: 99%; }
fieldset.settings label { display: block; }
+.parent { padding-left: 20px; }
.required {color: #bb0000;}
.summary {font-style: italic;}
@@ -662,6 +666,7 @@
}
#parent_issue_candidates ul li {width: 500px;}
+#related_issue_candidates ul li {width: 500px;}
/***** Diff *****/
.diff_out { background: #fcc; }
@@ -714,9 +719,10 @@
div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
-div.wiki ul.toc li { list-style-type:none;}
-div.wiki ul.toc li.heading2 { margin-left: 6px; }
-div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
+div.wiki ul.toc ul { margin: 0; padding: 0; }
+div.wiki ul.toc li { list-style-type:none; margin: 0;}
+div.wiki ul.toc li li { margin-left: 1.5em; }
+div.wiki ul.toc li li li { font-size: 0.8em; }
div.wiki ul.toc a {
font-size: 0.9em;
@@ -776,6 +782,8 @@
overflow: hidden;
}
+.gantt_subjects { font-size: 0.8em; }
+
.task {
position: absolute;
height:8px;
@@ -787,16 +795,30 @@
white-space:nowrap;
}
+.task.label {width:100%;}
+.task.label.project, .task.label.version { font-weight: bold; }
+
.task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
-.task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
+.task_done { background:#00c600 url(../images/task_done.png); border: 1px solid #00c600; }
.task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
-.task_todo.parent { background: #888; border: 1px solid #888; height: 6px;}
+.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
.task_late.parent, .task_done.parent { height: 3px;}
-.task_todo.parent .left { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -5px; left: 0px; top: -1px;}
-.task_todo.parent .right { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-right: -5px; right: 0px; top: -1px;}
+.task.parent.marker.starting { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
+.task.parent.marker.ending { position: absolute; background: url(../images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
-.milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
+.version.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.version.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.version.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.marker { background-image:url(../images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.project.task_late { background:#f66 url(../images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.project.task_done { background:#00c600 url(../images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.project.task_todo { background:#fff url(../images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.project.marker { background-image:url(../images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
+.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
/***** Icons *****/
.icon {
@@ -819,7 +841,6 @@
.icon-folder { background-image: url(../images/folder.png); }
.open .icon-folder { background-image: url(../images/folder_open.png); }
.icon-package { background-image: url(../images/package.png); }
-.icon-home { background-image: url(../images/home.png); }
.icon-user { background-image: url(../images/user.png); }
.icon-projects { background-image: url(../images/projects.png); }
.icon-help { background-image: url(../images/help.png); }
@@ -840,6 +861,9 @@
.icon-comment { background-image: url(../images/comment.png); }
.icon-summary { background-image: url(../images/lightning.png); }
.icon-server-authentication { background-image: url(../images/server_key.png); }
+.icon-issue { background-image: url(../images/ticket.png); }
+.icon-zoom-in { background-image: url(../images/zoom_in.png); }
+.icon-zoom-out { background-image: url(../images/zoom_out.png); }
.icon-file { background-image: url(../images/files/default.png); }
.icon-file.text-plain { background-image: url(../images/files/text.png); }
@@ -889,8 +913,8 @@
}
td.username img.gravatar {
- float: left;
- margin: 0 1em 0 0;
+ margin: 0 0.5em 0 0;
+ vertical-align: top;
}
#activity dt img.gravatar {
@@ -898,6 +922,12 @@
margin: 0 1em 1em 0;
}
+/* Used on 12px Gravatar img tags without the icon background */
+.icon-gravatar {
+ float: left;
+ margin-right: 4px;
+}
+
#activity dt,
.journal {
clear: left;
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/.svn/entries
--- a/public/themes/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-09-23T14:37:45.251810Z
+2011-02-08T13:45:46.000000Z
5b7a0352b95a67871b90c5a90a226123
2007-10-10T17:17:37.630066Z
818
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/alternate/.svn/entries
--- a/public/themes/alternate/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/alternate/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes/alternate
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/alternate/stylesheets/.svn/entries
--- a/public/themes/alternate/stylesheets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/alternate/stylesheets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes/alternate/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.255767Z
+2011-02-08T13:45:46.000000Z
8a47fb469dca292ea631422810927fe3
2009-11-15T21:15:31.339604Z
3069
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/classic/.svn/entries
--- a/public/themes/classic/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/classic/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes/classic
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/classic/images/.svn/entries
--- a/public/themes/classic/images/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/classic/images/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes/classic/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.255767Z
+2011-02-08T13:45:46.000000Z
a137eb4441860564ce1655357af26de8
2009-12-18T14:10:26.630799Z
3183
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.255767Z
+2011-02-08T13:45:46.000000Z
99bea32e1990e011e870f6c562e87a6a
2009-12-18T14:10:26.630799Z
3183
diff -r 07fa8a8b56a8 -r 0579821a129a public/themes/classic/stylesheets/.svn/entries
--- a/public/themes/classic/stylesheets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/public/themes/classic/stylesheets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/public/themes/classic/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.259756Z
+2011-02-08T13:45:46.000000Z
1bfaedd3f6b62419367da41a7a9310b2
2009-12-18T14:10:26.630799Z
3183
diff -r 07fa8a8b56a8 -r 0579821a129a script/.svn/entries
--- a/script/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/script/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/script
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
623b2f8265970f73bdb3489872d00eb6
2010-11-02T00:20:21.419252Z
4359
@@ -69,7 +69,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
2ac529bf7a654b9b91b2fea2275aa44e
2010-11-02T00:20:21.419252Z
4359
@@ -103,7 +103,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
ff97a702418dbc85fec089b97506281f
2010-11-02T00:20:21.419252Z
4359
@@ -137,7 +137,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
1fd5fa2d4aeee5b4111a40f62ae85446
2010-11-02T00:20:21.419252Z
4359
@@ -171,7 +171,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
95866cb3b894816b540afd282b952618
2010-11-02T00:20:21.419252Z
4359
@@ -205,7 +205,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
0cccc4eabf129ebd7b571d3eceda8893
2010-11-02T00:20:21.419252Z
4359
@@ -239,7 +239,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
b0aeca2e257a2226502c570e671e1b76
2010-11-02T00:20:21.419252Z
4359
@@ -273,7 +273,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
fb51df9bca94c25a928f40468354700f
2010-11-02T00:20:21.419252Z
4359
@@ -310,7 +310,7 @@
-2010-11-19T13:04:51.017028Z
+2011-02-08T13:45:46.000000Z
db0dd437d39c21fe52e1fc05a0680163
2010-11-02T00:20:21.419252Z
4359
diff -r 07fa8a8b56a8 -r 0579821a129a script/performance/.svn/entries
--- a/script/performance/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/script/performance/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/script/performance
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.988983Z
+2011-02-08T13:45:46.000000Z
33063b7a3d4dbef12ac8bcb55a5e6e3e
2010-11-02T00:20:21.419252Z
4359
@@ -66,7 +66,7 @@
-2010-11-19T13:04:50.988983Z
+2011-02-08T13:45:46.000000Z
9d3b872769337c49e648b9fe47e4e280
2010-11-02T00:20:21.419252Z
4359
@@ -100,7 +100,7 @@
-2010-11-19T13:04:50.988983Z
+2011-02-08T13:45:46.000000Z
b6500710f6029724e44cbd25f80eaaf1
2010-11-02T00:20:21.419252Z
4359
diff -r 07fa8a8b56a8 -r 0579821a129a script/process/.svn/entries
--- a/script/process/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/script/process/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/script/process
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:51.012938Z
+2011-02-08T13:45:46.000000Z
47bf41d8d2c97d220d9f70916e94c651
2010-11-02T00:20:21.419252Z
4359
@@ -66,7 +66,7 @@
-2010-11-19T13:04:51.012938Z
+2011-02-08T13:45:46.000000Z
9137857ebdaf61d57a3496f7e61fede3
2010-11-02T00:20:21.419252Z
4359
@@ -100,7 +100,7 @@
-2010-11-19T13:04:51.012938Z
+2011-02-08T13:45:46.000000Z
99af2666610d48d13e2eeceacf487d16
2010-11-02T00:20:21.419252Z
4359
@@ -134,7 +134,7 @@
-2010-11-19T13:04:51.012938Z
+2011-02-08T13:45:46.000000Z
64b5316e88e7555bf827ad04edbce4a6
2010-11-02T00:20:21.419252Z
4359
diff -r 07fa8a8b56a8 -r 0579821a129a test/.svn/all-wcprops
--- a/test/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 29
-/svn/!svn/ver/4730/trunk/test
+/svn/!svn/ver/4802/trunk/test
END
object_daddy_helpers.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a test/.svn/entries
--- a/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test
http://redmine.rubyforge.org/svn
-2011-01-16T15:36:42.998302Z
-4730
-jplang
+2011-02-07T10:26:15.436891Z
+4802
+tmaruyama
@@ -35,7 +35,7 @@
-2010-09-24T12:48:25.883734Z
+2011-02-08T13:45:46.000000Z
bec9d26a7ae75350529040e7bca36bfa
2010-09-10T19:44:45.405792Z
4078
@@ -72,7 +72,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
07898564890be4ff9e6c039fa6aa9d41
2011-01-01T12:24:18.924489Z
4603
@@ -118,7 +118,7 @@
-2010-09-23T14:37:45.427769Z
+2011-02-08T13:45:46.000000Z
29604d905b321f5bf19b86f7b9797394
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a test/exemplars/.svn/entries
--- a/test/exemplars/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/exemplars/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/exemplars
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
26c766235d2f79490fa33a7ec9c154ae
2010-01-27T18:29:03.119133Z
3340
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.295820Z
+2011-02-08T13:45:46.000000Z
62261c71ec828fa443bd44e055602e3d
2010-01-27T18:29:03.119133Z
3340
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
0da51e5e074d641e056e5011545571b8
2010-01-27T18:29:03.119133Z
3340
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
5b8b8763d7419d535d1d14d7bfb4f343
2010-01-27T18:29:03.119133Z
3340
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
13a55da47c4b6a61a3dbfd73eea41049
2010-08-19T22:24:42.251508Z
4010
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
26c91af771947fc671b87a08282608b3
2010-04-13T05:57:27.803435Z
3670
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
acf3ae00213d45112f6e13ecce212af1
2010-01-28T19:05:21.831741Z
3342
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
662be883bd5a43d964b868caaf34b276
2010-01-27T18:29:03.119133Z
3340
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.295820Z
+2011-02-08T13:45:46.000000Z
2dc494eb57aee9ee3c3ca5324f61e707
2010-01-27T18:29:03.119133Z
3340
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
06cec6b1adf323a00a75e5c008f73c57
2010-01-27T18:29:03.119133Z
3340
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.295820Z
+2011-02-08T13:45:46.000000Z
e51316252a08488be9aa2878c00c4959
2010-01-27T18:29:03.119133Z
3340
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
e5f24c612cf3bcc7b17aeeafeae0697d
2009-10-20T00:36:51.144135Z
2937
@@ -440,7 +440,7 @@
-2010-11-19T13:04:41.365641Z
+2011-02-08T13:45:46.000000Z
9be3a10325013fa24b00903db30d1ca3
2010-11-14T16:24:21.989522Z
4406
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
24d00671cf3c2137d957ee6dac273517
2010-01-28T19:05:21.831741Z
3342
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
1f7deb35b057dce8eb5dbc41d9a29019
2010-01-28T19:05:21.831741Z
3342
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
575c5f91f698576ec8f6cc88bbcd31d8
2010-01-27T18:29:03.119133Z
3340
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
fd5cfe62b2a92441a7cdb5035c4c4897
2009-10-18T22:25:00.956502Z
2930
@@ -610,7 +610,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
faf4bf5a3a3662c361ce668c20c293a4
2010-01-27T18:29:03.119133Z
3340
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
91f000c1e57fb0edc16bf90ea8efc6fa
2010-01-28T19:05:21.831741Z
3342
@@ -678,7 +678,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
3b871be1550b1a964324a18f868dabae
2009-12-06T10:28:20.099964Z
3123
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
dfe8cbec2ef3bcffe6b9352e3a3d807c
2009-10-18T22:25:00.956502Z
2930
@@ -746,7 +746,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
a9ebd14814e0885fc096d0702745f30d
2010-01-27T18:29:03.119133Z
3340
@@ -780,7 +780,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
92ac53d6b3a2e00ae1a9e0e4bc5d548b
2010-02-08T18:53:12.750770Z
3398
@@ -814,7 +814,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
d1bdf1810c216ecde56d0750f78bea10
2010-01-27T18:29:03.119133Z
3340
@@ -848,7 +848,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
d17dfd87c9c081965089712a4ce42a6d
2009-10-18T22:25:00.956502Z
2930
@@ -882,7 +882,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
94aed9cd40bd95ab8d8c2f51bfc097cf
2009-10-18T22:25:00.956502Z
2930
@@ -916,7 +916,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
908d8689f3ff469978b8af8bb55084b4
2010-01-27T18:29:03.119133Z
3340
@@ -950,7 +950,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
74f5207a054732dd9be1b3184340ca77
2009-10-18T22:25:00.956502Z
2930
@@ -984,7 +984,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
c01820cc719616bb5a0895cfddb40798
2010-01-27T18:29:03.119133Z
3340
@@ -1018,7 +1018,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
9c97ca570fa9b00ab1ecebd226f52f66
2009-10-18T22:25:00.956502Z
2930
@@ -1052,7 +1052,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
27218d998d6798365d0cc47ae8d8bb87
2010-01-28T19:05:21.831741Z
3342
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:45.295820Z
+2011-02-08T13:45:46.000000Z
0b05f7ce166d5bb3695d2fad7e56fc7f
2010-01-27T18:29:03.119133Z
3340
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
2a6254ddbc381a97b49b17936c25ef78
2010-01-28T19:05:21.831741Z
3342
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:45.287807Z
+2011-02-08T13:45:46.000000Z
d60529466c1df6db1edcdac71fa1a9d7
2010-04-13T05:57:27.803435Z
3670
@@ -1188,7 +1188,7 @@
-2010-11-19T13:04:41.365641Z
+2011-02-08T13:45:46.000000Z
44278bb3b28eed2566aab063777becf7
2010-09-28T18:22:10.512346Z
4218
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
0a69ac358346b15717ccb6b0cddba4be
2010-01-27T18:29:03.119133Z
3340
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:45.291809Z
+2011-02-08T13:45:46.000000Z
19471f6afbec20925ddd6824c1290526
2010-01-27T18:29:03.119133Z
3340
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/.svn/all-wcprops
--- a/test/fixtures/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 38
-/svn/!svn/ver/4681/trunk/test/fixtures
+/svn/!svn/ver/4752/trunk/test/fixtures
END
journal_details.yml
K 25
@@ -105,17 +105,23 @@
V 50
/svn/!svn/ver/2895/trunk/test/fixtures/changes.yml
END
+enumerations.yml
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/3573/trunk/test/fixtures/enumerations.yml
+END
custom_fields_projects.yml
K 25
svn:wc:ra_dav:version-url
V 65
/svn/!svn/ver/3278/trunk/test/fixtures/custom_fields_projects.yml
END
-enumerations.yml
+issues.yml
K 25
svn:wc:ra_dav:version-url
-V 55
-/svn/!svn/ver/3573/trunk/test/fixtures/enumerations.yml
+V 49
+/svn/!svn/ver/4482/trunk/test/fixtures/issues.yml
END
member_roles.yml
K 25
@@ -123,29 +129,29 @@
V 55
/svn/!svn/ver/3250/trunk/test/fixtures/member_roles.yml
END
-issues.yml
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/4482/trunk/test/fixtures/issues.yml
-END
queries.yml
K 25
svn:wc:ra_dav:version-url
V 50
/svn/!svn/ver/3071/trunk/test/fixtures/queries.yml
END
+wiki_contents.yml
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/4681/trunk/test/fixtures/wiki_contents.yml
+END
watchers.yml
K 25
svn:wc:ra_dav:version-url
V 51
/svn/!svn/ver/2456/trunk/test/fixtures/watchers.yml
END
-wiki_contents.yml
+wiki_pages.yml
K 25
svn:wc:ra_dav:version-url
-V 56
-/svn/!svn/ver/4681/trunk/test/fixtures/wiki_contents.yml
+V 53
+/svn/!svn/ver/4680/trunk/test/fixtures/wiki_pages.yml
END
enabled_modules.yml
K 25
@@ -153,11 +159,11 @@
V 58
/svn/!svn/ver/4505/trunk/test/fixtures/enabled_modules.yml
END
-wiki_pages.yml
+comments.yml
K 25
svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/4680/trunk/test/fixtures/wiki_pages.yml
+V 51
+/svn/!svn/ver/2895/trunk/test/fixtures/comments.yml
END
wiki_content_versions.yml
K 25
@@ -165,30 +171,24 @@
V 64
/svn/!svn/ver/2895/trunk/test/fixtures/wiki_content_versions.yml
END
-comments.yml
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/2895/trunk/test/fixtures/comments.yml
-END
members.yml
K 25
svn:wc:ra_dav:version-url
V 50
/svn/!svn/ver/3250/trunk/test/fixtures/members.yml
END
+journals.yml
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/3123/trunk/test/fixtures/journals.yml
+END
workflows.yml
K 25
svn:wc:ra_dav:version-url
V 52
/svn/!svn/ver/2895/trunk/test/fixtures/workflows.yml
END
-journals.yml
-K 25
-svn:wc:ra_dav:version-url
-V 51
-/svn/!svn/ver/3123/trunk/test/fixtures/journals.yml
-END
custom_fields.yml
K 25
svn:wc:ra_dav:version-url
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/.svn/entries
--- a/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures
http://redmine.rubyforge.org/svn
-2011-01-10T19:45:20.108166Z
-4681
+2011-01-23T10:22:00.456857Z
+4752
jplang
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
7f7308fa24fe8015418b4bf81a265389
2009-12-06T10:28:20.099964Z
3123
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
940bc0bea76bc76ba8ef1b224d744eee
2009-09-20T14:06:57.257282Z
2895
@@ -106,7 +106,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
d3a777560e5a963bc848b30547a65d4b
2010-12-05T11:45:09.061840Z
4470
@@ -140,7 +140,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
15f318dd68723b4c4dab1e1ca66dd044
2011-01-06T20:36:31.826591Z
4645
@@ -177,7 +177,7 @@
-2010-09-23T14:37:45.355763Z
+2011-02-08T13:45:46.000000Z
a519d5e75a6d1ac1516064c882aa773c
2009-09-20T14:06:57.257282Z
2895
@@ -211,7 +211,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
b7264b0f4d285dc38ba7139feaabafe2
2008-12-29T12:40:56.716698Z
2196
@@ -245,7 +245,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
e9853df4a04648bcb9389127748b24c4
2009-09-20T14:06:57.257282Z
2895
@@ -279,7 +279,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
5259028ece10055ea04cb1baddadd334
2009-10-21T22:34:52.412718Z
2950
@@ -313,7 +313,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
342c09046e9942f00cced7e066066202
2010-12-11T10:47:00.859736Z
4488
@@ -347,7 +347,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
b72e570a19a6a6297fd0e78a0c15d9a6
2009-09-20T14:06:57.257282Z
2895
@@ -381,7 +381,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
e6b2256ffe56fa2baa64e474f5c920d6
2009-09-20T14:06:57.257282Z
2895
@@ -415,7 +415,7 @@
-2010-09-23T14:37:45.319762Z
+2011-02-08T13:45:46.000000Z
7e42308ab41cac587386d54899cfcef5
2009-09-20T14:06:57.257282Z
2895
@@ -449,7 +449,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
ad513155b260eb8a8739d4d13c2823a8
2009-12-19T13:32:21.556847Z
3194
@@ -483,7 +483,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
1cdfea6614ecba6cddecb3d4524c38ba
2009-12-26T16:14:55.591181Z
3250
@@ -517,7 +517,7 @@
-2010-09-23T14:37:45.319762Z
+2011-02-08T13:45:46.000000Z
159394b420966c9e2f5ab0e31cb93b41
2009-11-27T20:32:28.228739Z
3099
@@ -554,7 +554,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
e5a26332fd48dac7e33a963622f49994
2009-09-20T14:06:57.257282Z
2895
@@ -582,13 +582,16 @@
293
+configuration
+dir
+
changes.yml
file
-2010-09-23T14:37:45.315821Z
+2011-02-08T13:45:46.000000Z
909e55408711ba1774e1c071b162962f
2009-09-20T14:06:57.257282Z
2895
@@ -622,7 +625,7 @@
-2010-09-23T14:37:45.319762Z
+2011-02-08T13:45:46.000000Z
c6789a99aba9f28cf1d31a36b36224c8
2010-01-03T11:18:09.741250Z
3278
@@ -656,7 +659,7 @@
-2010-09-23T14:37:45.323763Z
+2011-02-08T13:45:46.000000Z
bafbddc194242dbdcac1f2bfc550c27b
2010-03-13T14:56:49.379682Z
3573
@@ -693,7 +696,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
86387d627355e1debc04c364c29efe81
2009-12-26T16:14:55.591181Z
3250
@@ -727,7 +730,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
a8c37ca171bb5f39ffbc6cd3ffcf0c52
2010-12-10T11:06:21.419457Z
4482
@@ -761,7 +764,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
b5bafc332d23c9efcc2ef648a9a393b9
2009-11-16T18:07:30.910440Z
3071
@@ -795,7 +798,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
9dbcd982c4227d919ea750ce4fde79a7
2009-02-12T17:35:57.542817Z
2456
@@ -829,7 +832,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
595d0f0964e3c3f8ce7edb4b07941ffa
2011-01-10T19:45:20.108166Z
4681
@@ -863,7 +866,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
8d80a417fe13f7041cdec04f3206169e
2011-01-10T18:32:04.408692Z
4680
@@ -897,7 +900,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
c1fe3d9f5bbcbf5cf73c684b744d0c7a
2010-12-12T17:00:52.100205Z
4505
@@ -931,7 +934,7 @@
-2010-09-23T14:37:45.315821Z
+2011-02-08T13:45:46.000000Z
0cb04e10717d1de94f328dd92f2e9f8c
2009-09-20T14:06:57.257282Z
2895
@@ -965,7 +968,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
fcf009196cf46bc9d64e947e8275e51f
2009-09-20T14:06:57.257282Z
2895
@@ -1002,7 +1005,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
a12098ae3dcc7df2fffdc5aabc036445
2009-12-26T16:14:55.591181Z
3250
@@ -1039,7 +1042,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
0f791723030addfd84aeb8e8478b4373
2009-12-06T10:28:20.099964Z
3123
@@ -1073,7 +1076,7 @@
-2010-09-23T14:37:45.355763Z
+2011-02-08T13:45:46.000000Z
be9ed58ec8ae1a4d2e1608c712c480be
2009-09-20T14:06:57.257282Z
2895
@@ -1107,7 +1110,7 @@
-2010-09-23T14:37:45.319762Z
+2011-02-08T13:45:46.000000Z
28c83450d87eb6a49fe3d920f05e16b7
2010-01-14T20:00:17.463579Z
3313
@@ -1141,7 +1144,7 @@
-2010-11-19T13:04:46.864726Z
+2011-02-08T13:45:46.000000Z
f590d477ec468a76d8d31d5ed99de0e6
2010-09-28T18:22:00.231301Z
4216
@@ -1175,7 +1178,7 @@
-2010-09-23T14:37:45.315821Z
+2011-02-08T13:45:46.000000Z
f299e9e4f8b4310d276f3cc0bd4573a2
2010-02-26T08:42:40.283735Z
3490
@@ -1209,7 +1212,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
f41152c0bbe67b30733fb44c847c0c28
2009-12-13T12:39:22.716082Z
3167
@@ -1243,7 +1246,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
14b2db45f35ee3e6f8c2a8a05b94c82b
2009-11-07T08:44:56.035544Z
3013
@@ -1277,7 +1280,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
0670d0dee081a5f922aa2d3ff7af9764
2009-12-06T10:28:20.099964Z
3123
@@ -1311,7 +1314,7 @@
-2010-09-23T14:37:45.315821Z
+2011-02-08T13:45:46.000000Z
c3c2ab815b9af7fb01ccafc5fc881f87
2009-10-25T11:23:46.266302Z
2976
@@ -1345,7 +1348,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
c91798950ab5d71a04f10a60ad9e5259
2011-01-01T13:40:36.520874Z
4604
@@ -1379,7 +1382,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
3106fd060b768ea17e35b5ea975e0aca
2010-12-12T17:00:52.100205Z
4505
@@ -1413,7 +1416,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
644bd85c22127195b9f31217cce0595e
2009-09-20T14:06:57.257282Z
2895
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4752/trunk/test/fixtures/configuration
+END
+no_default.yml
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/4752/trunk/test/fixtures/configuration/no_default.yml
+END
+overrides.yml
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/4752/trunk/test/fixtures/configuration/overrides.yml
+END
+default.yml
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/4752/trunk/test/fixtures/configuration/default.yml
+END
+empty.yml
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/4752/trunk/test/fixtures/configuration/empty.yml
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,164 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/test/fixtures/configuration
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+no_default.yml
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+3c3b944decf7592dd335fc1d536985e7
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64
+
+overrides.yml
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+0b2286bdf8e49e063fb511553d63d73b
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+83
+
+default.yml
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+8f9245a8cde919ad5693021c5eb8e67e
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64
+
+empty.yml
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+f807b10f3b740dafc7ebfd848048a587
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+43
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/prop-base/default.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/prop-base/default.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/prop-base/empty.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/prop-base/empty.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/prop-base/no_default.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/prop-base/no_default.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/prop-base/overrides.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/prop-base/overrides.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/text-base/default.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/text-base/default.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,8 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/text-base/empty.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/text-base/empty.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,7 @@
+default:
+
+production:
+
+development:
+
+test:
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/text-base/no_default.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/text-base/no_default.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,8 @@
+default:
+
+production:
+
+development:
+
+test:
+ somesetting: foo
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/.svn/text-base/overrides.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/text-base/overrides.yml.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,9 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
+ somesetting: bar
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/default.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/default.yml Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,8 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/empty.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/empty.yml Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,7 @@
+default:
+
+production:
+
+development:
+
+test:
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/no_default.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/no_default.yml Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,8 @@
+default:
+
+production:
+
+development:
+
+test:
+ somesetting: foo
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/configuration/overrides.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/overrides.yml Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,9 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
+ somesetting: bar
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/diffs/.svn/entries
--- a/test/fixtures/diffs/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/diffs/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/diffs
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.319762Z
+2011-02-08T13:45:46.000000Z
64527b211202fbff696792d538e2b14e
2008-12-07T15:21:40.165860Z
2112
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/encoding/.svn/entries
--- a/test/fixtures/encoding/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/encoding/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/encoding
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.323763Z
+2011-02-08T13:45:46.000000Z
eee83cf374737071543358b83f85f75b
2010-02-20T11:24:41.988635Z
3466
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/files/.svn/entries
--- a/test/fixtures/files/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/files/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/files
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:48:14.000000Z
8ab69915b7f66c8199e6d137073d9ffe
2011-01-01T13:40:36.520874Z
4604
@@ -66,7 +66,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:48:45.000000Z
69b7e1bc8546406b1ddc3719d879254c
2011-01-01T13:40:36.520874Z
4604
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.323763Z
+2011-02-08T13:45:46.000000Z
8b4167c6b87869174dd17db0694ef2e1
2008-06-09T18:40:59.518583Z
1520
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.323763Z
+2011-02-08T13:45:46.000000Z
c72c8a9a0de99c39f9e6d712c13b7624
2008-06-09T18:40:59.518583Z
1520
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.323763Z
+2011-02-08T13:45:46.000000Z
1478adae0d4eb06d35897518540e25d6
2008-12-02T17:57:13.240321Z
2085
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/ldap/.svn/entries
--- a/test/fixtures/ldap/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/ldap/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/ldap
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
acbef41cb6cf252c83489cc3344e2604
2010-02-26T08:31:36.418866Z
3489
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.327799Z
+2011-02-08T13:45:46.000000Z
f1b10e6d96dd658e563d4ba74d52e87b
2010-02-26T08:31:36.418866Z
3489
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/mail_handler/.svn/entries
--- a/test/fixtures/mail_handler/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/mail_handler/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/mail_handler
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:46.204713Z
+2011-02-08T13:45:46.000000Z
ef4c0db9f76d81792292785d2ae9cb6a
2010-11-02T19:00:31.177706Z
4361
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
5e24af78a4534798611158a3d81efb34
2008-12-14T17:10:16.292262Z
2136
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
09130a1100cb410ed07fdff5564b2993
2009-01-21T18:22:30.765588Z
2294
@@ -134,7 +134,7 @@
-2010-11-19T13:04:46.204713Z
+2011-02-08T13:45:46.000000Z
8ac895d880e6f19fc21333c4003babaf
2010-11-12T12:29:35.878777Z
4395
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
4fbec91f5454b84077ae1290fba0bc8e
2009-08-13T16:57:36.259313Z
2838
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
ed7adca07ce64c4d15f3e638a222e38d
2010-06-20T16:22:36.211973Z
3801
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
0c3b0545575d405416f585f8d5910bcb
2009-11-08T13:51:53.384956Z
3022
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
40927905de0187dc52a9adb3e4a2c252
2008-11-30T16:00:45.142894Z
2077
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
d276c2037b0bf277b66f921379695c35
2008-07-06T16:26:25.352975Z
1643
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.335799Z
+2011-02-08T13:45:46.000000Z
1fc46fd2b0b8dcdaf67dfde24d0e8b89
2010-01-17T11:00:54.196987Z
3322
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
4d85674ea94930e7f1c8e288f03a57b8
2008-06-22T10:45:03.753412Z
1568
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
9dbf54ce4376f62447ef0696fe9b3a79
2010-06-19T19:24:17.380627Z
3783
@@ -440,7 +440,7 @@
-2010-11-19T13:04:46.204713Z
+2011-02-08T13:45:46.000000Z
605f28e31469b6897f33cf34bbc1ad0a
2010-11-14T13:48:01.671461Z
4404
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
0979c01baf02b924bd8a6db3980c59c9
2009-06-14T14:48:34.287541Z
2789
@@ -508,7 +508,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f1b76e664d73fd54d9e346c2329d94a9
2010-12-29T17:36:01.998670Z
4575
@@ -542,7 +542,7 @@
-2010-11-19T13:04:46.204713Z
+2011-02-08T13:45:46.000000Z
af7f3e5f9caddc2cad5fba0ba9d73882
2010-11-12T11:34:53.754717Z
4394
@@ -576,7 +576,7 @@
-2010-11-19T13:04:46.204713Z
+2011-02-08T13:45:46.000000Z
977375e727ce2d63ce878f877d692c62
2010-11-02T19:00:31.177706Z
4361
@@ -610,7 +610,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
4bd4decc00f83404fdd1a835809e4552
2009-01-19T18:29:07.726757Z
2288
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
4ef77e6337f95c7a8362c4a51c09d0af
2008-12-30T14:57:33.008940Z
2211
@@ -678,7 +678,7 @@
-2010-09-23T14:37:45.339796Z
+2011-02-08T13:45:46.000000Z
c174d0c5bbb339ef9361c45aab58b2bb
2009-01-19T19:03:53.393843Z
2289
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.343799Z
+2011-02-08T13:45:46.000000Z
7bc2d83ee5c078a264dd66ec75f35c77
2009-03-06T18:25:19.434505Z
2553
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/mailer/.svn/entries
--- a/test/fixtures/mailer/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/mailer/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/mailer
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a test/fixtures/repositories/.svn/entries
--- a/test/fixtures/repositories/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/fixtures/repositories/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/fixtures/repositories
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
0553391b55404e8ff509358b388f085b
2008-03-12T20:28:49.748698Z
1236
@@ -66,7 +66,7 @@
-2011-01-13T14:09:10.000000Z
+2011-02-08T13:45:46.000000Z
2436fc3d3aefeb07b291d5660396ca8d
2011-01-10T17:43:01.353336Z
4676
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
bd13c11517bf083e83846aeccff745f1
2010-06-20T16:08:26.745839Z
3800
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.347765Z
+2011-02-08T13:45:46.000000Z
fa70d4aeca5639d750d94281ad664957
2007-12-03T19:19:36.156779Z
951
@@ -168,7 +168,7 @@
-2010-11-19T13:04:46.860726Z
+2011-02-08T13:45:46.000000Z
300e21b10239e2fa28df3111924b8328
2010-10-29T23:21:57.240368Z
4310
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
9fbee7c5669de84f0767597eb41af9f7
2008-06-08T15:40:24.603157Z
1508
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.351765Z
+2011-02-08T13:45:46.000000Z
0c4730bd5eb192e094531f218b7a3119
2007-12-13T18:52:09.073829Z
987
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/all-wcprops
--- a/test/functional/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 40
-/svn/!svn/ver/4729/trunk/test/functional
+/svn/!svn/ver/4789/trunk/test/functional
END
issues_controller_test.rb
K 25
@@ -93,11 +93,11 @@
V 69
/svn/!svn/ver/4509/trunk/test/functional/calendars_controller_test.rb
END
-time_entry_reports_controller_test.rb
+journals_controller_test.rb
K 25
svn:wc:ra_dav:version-url
-V 78
-/svn/!svn/ver/4509/trunk/test/functional/time_entry_reports_controller_test.rb
+V 68
+/svn/!svn/ver/4535/trunk/test/functional/journals_controller_test.rb
END
workflows_controller_test.rb
K 25
@@ -105,11 +105,11 @@
V 69
/svn/!svn/ver/4509/trunk/test/functional/workflows_controller_test.rb
END
-journals_controller_test.rb
+time_entry_reports_controller_test.rb
K 25
svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/4535/trunk/test/functional/journals_controller_test.rb
+V 78
+/svn/!svn/ver/4509/trunk/test/functional/time_entry_reports_controller_test.rb
END
project_enumerations_controller_test.rb
K 25
@@ -123,23 +123,23 @@
V 66
/svn/!svn/ver/4509/trunk/test/functional/gantts_controller_test.rb
END
+users_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/4729/trunk/test/functional/users_controller_test.rb
+END
issue_moves_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 71
/svn/!svn/ver/4509/trunk/test/functional/issue_moves_controller_test.rb
END
-users_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 65
-/svn/!svn/ver/4729/trunk/test/functional/users_controller_test.rb
-END
repositories_cvs_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 76
-/svn/!svn/ver/4577/trunk/test/functional/repositories_cvs_controller_test.rb
+/svn/!svn/ver/4789/trunk/test/functional/repositories_cvs_controller_test.rb
END
application_controller_test.rb
K 25
@@ -153,17 +153,23 @@
V 70
/svn/!svn/ver/4509/trunk/test/functional/activities_controller_test.rb
END
+search_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/4509/trunk/test/functional/search_controller_test.rb
+END
ldap_auth_sources_controller.rb
K 25
svn:wc:ra_dav:version-url
V 72
/svn/!svn/ver/3744/trunk/test/functional/ldap_auth_sources_controller.rb
END
-search_controller_test.rb
+messages_controller_test.rb
K 25
svn:wc:ra_dav:version-url
-V 66
-/svn/!svn/ver/4509/trunk/test/functional/search_controller_test.rb
+V 68
+/svn/!svn/ver/4509/trunk/test/functional/messages_controller_test.rb
END
repositories_bazaar_controller_test.rb
K 25
@@ -171,12 +177,6 @@
V 79
/svn/!svn/ver/4509/trunk/test/functional/repositories_bazaar_controller_test.rb
END
-messages_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/4509/trunk/test/functional/messages_controller_test.rb
-END
attachments_controller_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -229,7 +229,7 @@
K 25
svn:wc:ra_dav:version-url
V 76
-/svn/!svn/ver/4713/trunk/test/functional/repositories_git_controller_test.rb
+/svn/!svn/ver/4734/trunk/test/functional/repositories_git_controller_test.rb
END
members_controller_test.rb
K 25
@@ -241,7 +241,7 @@
K 25
svn:wc:ra_dav:version-url
V 82
-/svn/!svn/ver/4718/trunk/test/functional/repositories_mercurial_controller_test.rb
+/svn/!svn/ver/4734/trunk/test/functional/repositories_mercurial_controller_test.rb
END
issue_categories_controller_test.rb
K 25
@@ -313,13 +313,13 @@
K 25
svn:wc:ra_dav:version-url
V 83
-/svn/!svn/ver/4710/trunk/test/functional/repositories_subversion_controller_test.rb
+/svn/!svn/ver/4734/trunk/test/functional/repositories_subversion_controller_test.rb
END
issue_relations_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 75
-/svn/!svn/ver/4509/trunk/test/functional/issue_relations_controller_test.rb
+/svn/!svn/ver/4764/trunk/test/functional/issue_relations_controller_test.rb
END
versions_controller_test.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/entries
--- a/test/functional/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/functional
http://redmine.rubyforge.org/svn
-2011-01-16T15:23:11.666065Z
-4729
-jplang
+2011-02-02T04:00:59.430633Z
+4789
+tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
1831ada3aea1c4ecb568cb55a718eec9
2010-12-18T13:40:50.641112Z
4530
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
b42af2a4997da321fbe322b3d4ef47da
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
60c22807824b3989da92a03d4be0a1e6
2010-12-12T23:24:34.194336Z
4509
@@ -134,7 +134,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f7c1328f2c586830c64233c2db054f0a
2010-12-12T23:24:34.194336Z
4509
@@ -168,7 +168,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
e6efbfdb394b5a3d4c8f5430c202a5b0
2010-12-12T23:24:34.194336Z
4509
@@ -202,7 +202,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
145c16cdb388cc98a1223c6f6dd6fb17
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +236,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
69809abf0a26741f5ca07db44aa223c0
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
cc837387e8b85884334a89e8bf935118
2010-12-12T23:24:34.194336Z
4509
@@ -304,7 +304,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
b68039337f934e7e49f4a06cda5e2b12
2010-12-12T23:24:34.194336Z
4509
@@ -338,7 +338,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
0798c1198c6db7754d04c79144c449c0
2010-12-12T23:24:34.194336Z
4509
@@ -372,7 +372,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
744fc8a1d2a4cdf6e8aa3ad0caa0fe4a
2010-12-12T23:24:34.194336Z
4509
@@ -406,7 +406,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
bf75948e1edceb4241e67a84731477f6
2010-12-12T23:24:34.194336Z
4509
@@ -440,7 +440,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
d3363951aa9a6c2a59c32d83d2483226
2011-01-09T21:01:40.583303Z
4673
@@ -474,7 +474,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f6ad0bbad8d30d8ea41eb0b7ecaf32b6
2010-12-12T23:24:34.194336Z
4509
@@ -508,7 +508,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
a7eb2ff041caaed4c7c09ad8f9fe3719
2010-12-12T23:24:34.194336Z
4509
@@ -542,7 +542,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
e21197e1c3590e65b300103bf8e16efe
2010-12-12T23:24:34.194336Z
4509
@@ -576,7 +576,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
04e54620db6899c02b7e7a9e2645d0a6
2010-12-18T17:11:41.680297Z
4535
@@ -610,7 +610,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
e99e1deab48be8515101e664af4d55da
2010-12-12T23:24:34.194336Z
4509
@@ -644,7 +644,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
11b0d808c1b8f003db130d54022dbab0
2010-12-31T15:45:35.200558Z
4600
@@ -678,7 +678,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
b1aac6fc8fdaa84c3e3652849721bfa5
2010-12-12T23:24:34.194336Z
4509
@@ -712,7 +712,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
067fe08ee66949066dd0db8fa2741f5e
2011-01-16T15:23:11.666065Z
4729
@@ -746,7 +746,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
539d0852190ec556b2284bfe678e8523
2010-12-12T23:24:34.194336Z
4509
@@ -780,11 +780,11 @@
-2011-01-13T14:09:08.000000Z
-1d8cb0fdead69e39081ca4d0f7c68e51
-2010-12-29T17:46:47.689075Z
-4577
-jplang
+2011-02-08T13:49:51.000000Z
+26f60b5f3d2e68d920232c353f12b65a
+2011-02-02T04:00:59.430633Z
+4789
+tmaruyama
has-props
@@ -806,7 +806,7 @@
-6662
+7278
application_controller_test.rb
file
@@ -814,7 +814,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
278a104110d269c64def6c487219db07
2010-12-23T13:33:01.454946Z
4571
@@ -848,7 +848,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
10667cf5e4dc66eea96b196643c93a42
2010-12-12T23:24:34.194336Z
4509
@@ -882,7 +882,7 @@
-2010-09-23T14:37:45.387766Z
+2011-02-08T13:45:46.000000Z
d6759c42ae866d7210c7006911e82a42
2010-05-23T03:16:31.304135Z
3744
@@ -916,7 +916,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ce03a18446664d9bc073791097735811
2010-12-12T23:24:34.194336Z
4509
@@ -950,7 +950,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
c7a720bd5851fd9afe177432179cd921
2010-12-12T23:24:34.194336Z
4509
@@ -984,7 +984,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
887437d272f8b8eba93dbf8bd5645868
2010-12-12T23:24:34.194336Z
4509
@@ -1018,7 +1018,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
00941bda584b7f5b7b636e48635d83dd
2011-01-01T13:40:36.520874Z
4604
@@ -1052,7 +1052,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
893a5cfefe3652680d241de9a657652c
2010-12-12T23:24:34.194336Z
4509
@@ -1086,7 +1086,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
39db66894beef1baa1696d6aee75f45d
2010-12-12T23:24:34.194336Z
4509
@@ -1120,7 +1120,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
c8fa245738b58d9f87afc40fc1b71f94
2010-12-12T23:24:34.194336Z
4509
@@ -1154,7 +1154,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
d50a042e5cc7e5d43cbb9be02b82aaf6
2010-12-12T23:24:34.194336Z
4509
@@ -1188,7 +1188,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
3ed28603b2a3697d060e06d90dd7b118
2010-12-12T23:24:34.194336Z
4509
@@ -1222,7 +1222,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f5552cd43c853f04daaadb5d6c7bf159
2010-12-12T23:24:34.194336Z
4509
@@ -1256,7 +1256,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
dbbc4feeecbff202aa7569d4a17beaa1
2011-01-06T20:57:17.003359Z
4647
@@ -1290,7 +1290,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
7cdb2ab302fb93f982b33fb6460d48c3
2010-12-12T23:24:34.194336Z
4509
@@ -1324,10 +1324,10 @@
-2011-01-19T15:03:31.000000Z
-77f633299c1c1b0a463c44e8cb0df415
-2011-01-14T23:10:13.682113Z
-4713
+2011-02-08T13:49:51.000000Z
+0852f4a59ed3301126f2b2a95fee40ef
+2011-01-21T13:22:28.782688Z
+4734
tmaruyama
has-props
@@ -1350,7 +1350,7 @@
-7824
+8148
repositories_mercurial_controller_test.rb
file
@@ -1358,10 +1358,10 @@
-2011-01-19T15:03:31.000000Z
-a1c9433bf435d82001d81ebe611a3647
-2011-01-15T10:15:41.926218Z
-4718
+2011-02-08T13:49:51.000000Z
+1d9186fe92df47aa23044dfd4c3918fe
+2011-01-21T13:22:28.782688Z
+4734
tmaruyama
has-props
@@ -1384,7 +1384,7 @@
-7534
+7928
issue_categories_controller_test.rb
file
@@ -1392,7 +1392,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
eff59ff8c4c616a1773223454b960363
2010-12-12T23:24:34.194336Z
4509
@@ -1426,7 +1426,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
d91b8b56b5bd1fd602e96842dfabab72
2010-12-12T23:24:34.194336Z
4509
@@ -1460,7 +1460,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
df6f548bb7fbdaeb235c5e8d3c1be576
2010-12-12T23:24:34.194336Z
4509
@@ -1494,7 +1494,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f3101a3b1343baa274ce471911aa0e96
2010-12-12T23:24:34.194336Z
4509
@@ -1528,7 +1528,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
00f79a248e4bf77814823526e38ee630
2010-12-14T18:29:24.891563Z
4511
@@ -1562,7 +1562,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
8c664ac03cac7930264318af932f46e0
2010-12-12T23:24:34.194336Z
4509
@@ -1596,7 +1596,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
190cbeea6f926cc615d6d2918a50e909
2010-12-12T23:24:34.194336Z
4509
@@ -1630,7 +1630,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ac4fd4943d72406872230aa7bad0213c
2010-12-12T23:24:34.194336Z
4509
@@ -1664,7 +1664,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
33e64585bc7591ba6089135bbadb817e
2010-12-12T23:24:34.194336Z
4509
@@ -1698,7 +1698,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
017010de8f7353d064e6b866e9dbb0c3
2010-12-12T23:24:34.194336Z
4509
@@ -1732,7 +1732,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
c262b8203846b82045458a273da221fc
2010-12-12T23:24:34.194336Z
4509
@@ -1766,11 +1766,11 @@
-2011-01-19T15:03:31.000000Z
-9ffab3723a0facfd46dabe5efe813d30
-2011-01-14T20:22:36.080461Z
-4710
-jplang
+2011-02-08T13:49:51.000000Z
+02daab0293ddc35afa4322963b564ce4
+2011-01-21T13:22:28.782688Z
+4734
+tmaruyama
has-props
@@ -1792,7 +1792,7 @@
-9276
+9525
issue_relations_controller_test.rb
file
@@ -1800,11 +1800,11 @@
-2011-01-13T14:09:08.000000Z
-71066c7d539a973325b545d1d8183fe5
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-02-08T13:49:51.000000Z
+ac7b05267cda86408af77321975d9099
+2011-01-27T21:38:47.430923Z
+4764
+jplang
has-props
@@ -1826,7 +1826,7 @@
-2165
+2998
versions_controller_test.rb
file
@@ -1834,7 +1834,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
2e73f89630c087f8170f62f3f79079c0
2010-12-12T23:24:34.194336Z
4509
@@ -1868,7 +1868,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
4194cdc2f733e6e1a38bedb7a6af05c8
2010-12-12T23:24:34.194336Z
4509
@@ -1902,7 +1902,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
770100e7a7049e202c8a1ea476659a30
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -33,6 +33,19 @@
end
end
+ def test_new_xhr
+ assert_difference 'IssueRelation.count' do
+ @request.session[:user_id] = 3
+ xhr :post, :new,
+ :issue_id => 3,
+ :relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''}
+ assert_select_rjs 'relations' do
+ assert_select 'table', 1
+ assert_select 'tr', 2 # relations
+ end
+ end
+ end
+
def test_new_should_accept_id_with_hash
assert_difference 'IssueRelation.count' do
@request.session[:user_id] = 3
@@ -68,4 +81,20 @@
post :destroy, :id => '2', :issue_id => '3'
end
end
+
+ def test_destroy_xhr
+ IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r|
+ r.issue_from_id = 3
+ r.issue_to_id = 1
+ end
+
+ assert_difference 'IssueRelation.count', -1 do
+ @request.session[:user_id] = 3
+ xhr :post, :destroy, :id => '2', :issue_id => '3'
+ assert_select_rjs 'relations' do
+ assert_select 'table', 1
+ assert_select 'tr', 1 # relation left
+ end
+ end
+ end
end
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -29,7 +29,8 @@
REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module
MODULE_NAME = 'test'
-
+ PRJ_ID = 3
+
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@@ -37,14 +38,18 @@
Setting.default_language = 'en'
User.current = nil
- @project = Project.find(1)
- @project.repository = Repository::Cvs.create(:root_url => REPOSITORY_PATH,
- :url => MODULE_NAME)
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Cvs.create(:project => Project.find(PRJ_ID),
+ :root_url => REPOSITORY_PATH,
+ :url => MODULE_NAME)
+ assert @repository
end
if File.directory?(REPOSITORY_PATH)
def test_show
- get :show, :id => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -52,7 +57,9 @@
end
def test_browse_root
- get :show, :id => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -66,7 +73,9 @@
end
def test_browse_directory
- get :show, :id => 1, :path => ['images']
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['images']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -78,8 +87,9 @@
end
def test_browse_at_given_revision
- Project.find(1).repository.fetch_changesets
- get :show, :id => 1, :path => ['images'], :rev => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -87,7 +97,9 @@
end
def test_entry
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
assert_response :success
assert_template 'entry'
assert_no_tag :tag => 'td', :attributes => { :class => /line-code/},
@@ -96,8 +108,9 @@
def test_entry_at_given_revision
# changesets must be loaded
- Project.find(1).repository.fetch_changesets
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb'], :rev => 2
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb'], :rev => 2
assert_response :success
assert_template 'entry'
# this line was removed in r3
@@ -106,18 +119,24 @@
end
def test_entry_not_found
- get :entry, :id => 1, :path => ['sources', 'zzz.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'zzz.c']
assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
:content => /The entry or revision was not found in the repository/
end
def test_entry_download
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb'], :format => 'raw'
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb'], :format => 'raw'
assert_response :success
end
def test_directory_entry
- get :entry, :id => 1, :path => ['sources']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entry)
@@ -125,8 +144,9 @@
end
def test_diff
- Project.find(1).repository.fetch_changesets
- get :diff, :id => 1, :rev => 3, :type => 'inline'
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 3, :type => 'inline'
assert_response :success
assert_template 'diff'
assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_out' },
@@ -136,8 +156,9 @@
end
def test_annotate
- Project.find(1).repository.fetch_changesets
- get :annotate, :id => 1, :path => ['sources', 'watchers_controller.rb']
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
assert_response :success
assert_template 'annotate'
# 1.1 line
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -170,6 +170,15 @@
:sibling => { :tag => 'td', :content => /watcher =/ }
end
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => 3, :rev => 'deff7', :path => ['sources', 'watchers_controller.rb']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ deff712f/
+ end
+
def test_annotate_binary_file
get :annotate, :id => 3, :path => ['images', 'edit.png']
assert_response 500
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -196,6 +196,17 @@
:sibling => { :tag => 'td', :content => /watcher =/ }
end
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ [2, '400bb8672109', '400', 400].each do |r1|
+ get :annotate, :id => 3, :rev => r1, :path => ['sources', 'watchers_controller.rb']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ 2:400bb8672109/
+ end
+ end
+
def test_empty_revision
@repository.fetch_changesets
@repository.reload
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -228,6 +228,13 @@
assert_response :success
assert_template 'annotate'
end
+
+ def test_annotate_at_given_revision
+ get :annotate, :id => 1, :rev => 8, :path => ['subversion_test', 'helloworld.c']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ 8/
+ end
else
puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/issue_relations_controller_test.rb
--- a/test/functional/issue_relations_controller_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/issue_relations_controller_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -33,6 +33,19 @@
end
end
+ def test_new_xhr
+ assert_difference 'IssueRelation.count' do
+ @request.session[:user_id] = 3
+ xhr :post, :new,
+ :issue_id => 3,
+ :relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''}
+ assert_select_rjs 'relations' do
+ assert_select 'table', 1
+ assert_select 'tr', 2 # relations
+ end
+ end
+ end
+
def test_new_should_accept_id_with_hash
assert_difference 'IssueRelation.count' do
@request.session[:user_id] = 3
@@ -68,4 +81,20 @@
post :destroy, :id => '2', :issue_id => '3'
end
end
+
+ def test_destroy_xhr
+ IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r|
+ r.issue_from_id = 3
+ r.issue_to_id = 1
+ end
+
+ assert_difference 'IssueRelation.count', -1 do
+ @request.session[:user_id] = 3
+ xhr :post, :destroy, :id => '2', :issue_id => '3'
+ assert_select_rjs 'relations' do
+ assert_select 'table', 1
+ assert_select 'tr', 1 # relation left
+ end
+ end
+ end
end
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/repositories_cvs_controller_test.rb
--- a/test/functional/repositories_cvs_controller_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/repositories_cvs_controller_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -29,7 +29,8 @@
REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module
MODULE_NAME = 'test'
-
+ PRJ_ID = 3
+
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@@ -37,14 +38,18 @@
Setting.default_language = 'en'
User.current = nil
- @project = Project.find(1)
- @project.repository = Repository::Cvs.create(:root_url => REPOSITORY_PATH,
- :url => MODULE_NAME)
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Cvs.create(:project => Project.find(PRJ_ID),
+ :root_url => REPOSITORY_PATH,
+ :url => MODULE_NAME)
+ assert @repository
end
if File.directory?(REPOSITORY_PATH)
def test_show
- get :show, :id => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -52,7 +57,9 @@
end
def test_browse_root
- get :show, :id => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -66,7 +73,9 @@
end
def test_browse_directory
- get :show, :id => 1, :path => ['images']
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['images']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -78,8 +87,9 @@
end
def test_browse_at_given_revision
- Project.find(1).repository.fetch_changesets
- get :show, :id => 1, :path => ['images'], :rev => 1
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -87,7 +97,9 @@
end
def test_entry
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
assert_response :success
assert_template 'entry'
assert_no_tag :tag => 'td', :attributes => { :class => /line-code/},
@@ -96,8 +108,9 @@
def test_entry_at_given_revision
# changesets must be loaded
- Project.find(1).repository.fetch_changesets
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb'], :rev => 2
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb'], :rev => 2
assert_response :success
assert_template 'entry'
# this line was removed in r3
@@ -106,18 +119,24 @@
end
def test_entry_not_found
- get :entry, :id => 1, :path => ['sources', 'zzz.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'zzz.c']
assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
:content => /The entry or revision was not found in the repository/
end
def test_entry_download
- get :entry, :id => 1, :path => ['sources', 'watchers_controller.rb'], :format => 'raw'
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb'], :format => 'raw'
assert_response :success
end
def test_directory_entry
- get :entry, :id => 1, :path => ['sources']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['sources']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entry)
@@ -125,8 +144,9 @@
end
def test_diff
- Project.find(1).repository.fetch_changesets
- get :diff, :id => 1, :rev => 3, :type => 'inline'
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 3, :type => 'inline'
assert_response :success
assert_template 'diff'
assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_out' },
@@ -136,8 +156,9 @@
end
def test_annotate
- Project.find(1).repository.fetch_changesets
- get :annotate, :id => 1, :path => ['sources', 'watchers_controller.rb']
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
assert_response :success
assert_template 'annotate'
# 1.1 line
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/repositories_git_controller_test.rb
--- a/test/functional/repositories_git_controller_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/repositories_git_controller_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -170,6 +170,15 @@
:sibling => { :tag => 'td', :content => /watcher =/ }
end
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => 3, :rev => 'deff7', :path => ['sources', 'watchers_controller.rb']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ deff712f/
+ end
+
def test_annotate_binary_file
get :annotate, :id => 3, :path => ['images', 'edit.png']
assert_response 500
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/repositories_mercurial_controller_test.rb
--- a/test/functional/repositories_mercurial_controller_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/repositories_mercurial_controller_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -196,6 +196,17 @@
:sibling => { :tag => 'td', :content => /watcher =/ }
end
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ [2, '400bb8672109', '400', 400].each do |r1|
+ get :annotate, :id => 3, :rev => r1, :path => ['sources', 'watchers_controller.rb']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ 2:400bb8672109/
+ end
+ end
+
def test_empty_revision
@repository.fetch_changesets
@repository.reload
diff -r 07fa8a8b56a8 -r 0579821a129a test/functional/repositories_subversion_controller_test.rb
--- a/test/functional/repositories_subversion_controller_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/functional/repositories_subversion_controller_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -228,6 +228,13 @@
assert_response :success
assert_template 'annotate'
end
+
+ def test_annotate_at_given_revision
+ get :annotate, :id => 1, :rev => 8, :path => ['subversion_test', 'helloworld.c']
+ assert_response :success
+ assert_template 'annotate'
+ assert_tag :tag => 'h2', :content => /@ 8/
+ end
else
puts "Subversion test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end
diff -r 07fa8a8b56a8 -r 0579821a129a test/integration/.svn/entries
--- a/test/integration/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/integration/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/integration
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
b828e87474858f965d2048f5f15f8e4b
2010-12-12T23:24:34.194336Z
4509
@@ -69,7 +69,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
7e4b62197ce8e1dfe456477ae9ee384f
2011-01-16T15:23:11.666065Z
4729
@@ -106,7 +106,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
fbd4d2a8c15f4ec209250f3395903604
2010-12-12T23:24:34.194336Z
4509
@@ -140,7 +140,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
4b83660bc635b651f2e1d2d8ee50b84b
2010-12-12T23:24:34.194336Z
4509
@@ -174,7 +174,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
09fa9e6798468c9b7fda21b438e16c5e
2010-12-12T23:24:34.194336Z
4509
@@ -208,7 +208,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
5cdf08841a7442b774036772bb1fc1a7
2010-12-12T23:24:34.194336Z
4509
@@ -242,7 +242,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ff949103a3bdac892a3372cfb71047f0
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/integration/api_test/.svn/entries
--- a/test/integration/api_test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/integration/api_test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/integration/api_test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
7d38bb393dfe949c081c7e9ee2ea0caa
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
5cca5d3e833a26e12978491298f55859
2011-01-16T15:23:11.666065Z
4729
@@ -100,7 +100,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
1704d0f93701094c0ebf95183e078b5f
2010-12-12T23:24:34.194336Z
4509
@@ -134,7 +134,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
92abe10e190b64c60afc90866336aa7c
2010-12-12T23:24:34.194336Z
4509
@@ -168,7 +168,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
31d08ba85b57fcdb41e06c1f367de87e
2011-01-06T20:36:31.826591Z
4645
@@ -202,7 +202,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
a4c38f734c93d99d52de27d41a380756
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +236,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
445e18c4a9d648b99d948eac4e750480
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
bee85bcaab5d8fb5f90a64ad4ac32e3c
2010-12-12T23:24:34.194336Z
4509
@@ -304,7 +304,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
24e8e5b1544016befedeea49b8fb5cb5
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/integration/lib/.svn/entries
--- a/test/integration/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/integration/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/integration/lib
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a test/integration/lib/redmine/.svn/entries
--- a/test/integration/lib/redmine/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/integration/lib/redmine/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/integration/lib/redmine
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
302d4ea0c07530cc9d48b971849df66d
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
782f5d377a79dea8a580dcd902121b37
2010-12-23T09:42:33.439630Z
4560
diff -r 07fa8a8b56a8 -r 0579821a129a test/mocks/.svn/entries
--- a/test/mocks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/mocks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/mocks
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-09-23T14:37:45.439778Z
+2011-02-08T13:45:46.000000Z
c73745cf74166bf38552d6469b74b190
2009-09-20T14:06:57.257282Z
2895
diff -r 07fa8a8b56a8 -r 0579821a129a test/mocks/development/.svn/entries
--- a/test/mocks/development/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/mocks/development/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/mocks/development
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a test/mocks/test/.svn/entries
--- a/test/mocks/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/mocks/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/mocks/test
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/.svn/all-wcprops
--- a/test/unit/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 34
-/svn/!svn/ver/4730/trunk/test/unit
+/svn/!svn/ver/4802/trunk/test/unit
END
document_test.rb
K 25
@@ -87,18 +87,18 @@
V 60
/svn/!svn/ver/4613/trunk/test/unit/repository_bazaar_test.rb
END
+changeset_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4613/trunk/test/unit/changeset_test.rb
+END
role_test.rb
K 25
svn:wc:ra_dav:version-url
V 47
/svn/!svn/ver/4509/trunk/test/unit/role_test.rb
END
-changeset_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 52
-/svn/!svn/ver/4613/trunk/test/unit/changeset_test.rb
-END
comment_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -139,7 +139,19 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4730/trunk/test/unit/user_test.rb
+/svn/!svn/ver/4761/trunk/test/unit/user_test.rb
+END
+time_entry_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4709/trunk/test/unit/time_entry_test.rb
+END
+repository_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4726/trunk/test/unit/repository_test.rb
END
mail_handler_test.rb
K 25
@@ -147,17 +159,17 @@
V 55
/svn/!svn/ver/4576/trunk/test/unit/mail_handler_test.rb
END
-repository_test.rb
+journal_observer_test.rb
K 25
svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/4726/trunk/test/unit/repository_test.rb
+V 59
+/svn/!svn/ver/4509/trunk/test/unit/journal_observer_test.rb
END
-time_entry_test.rb
+auth_source_ldap_test.rb
K 25
svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/4709/trunk/test/unit/time_entry_test.rb
+V 59
+/svn/!svn/ver/4509/trunk/test/unit/auth_source_ldap_test.rb
END
principal_test.rb
K 25
@@ -165,17 +177,11 @@
V 52
/svn/!svn/ver/4509/trunk/test/unit/principal_test.rb
END
-auth_source_ldap_test.rb
+repository_filesystem_test.rb
K 25
svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/4509/trunk/test/unit/auth_source_ldap_test.rb
-END
-journal_observer_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/4509/trunk/test/unit/journal_observer_test.rb
+V 64
+/svn/!svn/ver/4509/trunk/test/unit/repository_filesystem_test.rb
END
project_nested_set_test.rb
K 25
@@ -183,12 +189,6 @@
V 61
/svn/!svn/ver/4650/trunk/test/unit/project_nested_set_test.rb
END
-repository_filesystem_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/4509/trunk/test/unit/repository_filesystem_test.rb
-END
wiki_redirect_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -223,7 +223,7 @@
K 25
svn:wc:ra_dav:version-url
V 57
-/svn/!svn/ver/4509/trunk/test/unit/repository_cvs_test.rb
+/svn/!svn/ver/4802/trunk/test/unit/repository_cvs_test.rb
END
repository_darcs_test.rb
K 25
@@ -271,7 +271,7 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4509/trunk/test/unit/issue_nested_set_test.rb
+/svn/!svn/ver/4735/trunk/test/unit/issue_nested_set_test.rb
END
query_test.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/.svn/entries
--- a/test/unit/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit
http://redmine.rubyforge.org/svn
-2011-01-16T15:36:42.998302Z
-4730
-jplang
+2011-02-07T10:26:15.436891Z
+4802
+tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
31100b89782bb9004a5f162375b5192b
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
e89c6342d99d8e32ca9c9d3399641b96
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
f95988379d5f7fa7f341954a886c6a3e
2011-01-13T12:04:30.962313Z
4703
@@ -134,7 +134,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
37d81db20cb50110ac1f7fa44e5ecb40
2011-01-13T12:04:51.838288Z
4704
@@ -168,7 +168,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
c121bfc1afd3428c1c63ffc8e4c9441e
2011-01-15T14:03:39.071238Z
4721
@@ -202,7 +202,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
9aa8e8e5f5ef4c0c74c9fcdaba7ada60
2010-12-31T11:16:03.020751Z
4597
@@ -236,7 +236,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
01227adbe16fcf333a7e99f9a7bcc0f6
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
afdfda5a2d9285920afb8815085ad0ee
2010-12-12T23:24:34.194336Z
4509
@@ -304,7 +304,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
a8c280ae08bee271010554106ded8aa0
2011-01-15T14:12:18.630628Z
4723
@@ -338,7 +338,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
46bccc51b3aa0bd4b3826318f662f587
2010-12-12T23:24:34.194336Z
4509
@@ -372,7 +372,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
41183297c9b098b67d368c45289eb47f
2010-12-12T23:24:34.194336Z
4509
@@ -406,7 +406,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
32e8c8fd522283c8008b2dac1de383dd
2010-12-12T23:24:34.194336Z
4509
@@ -440,7 +440,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
fb0636f5bb4d94047ed14879e88f7df7
2011-01-13T12:04:30.962313Z
4703
@@ -474,7 +474,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
b0c66b65fc51cdbf6f9885dddbfe5a23
2011-01-02T09:45:05.291687Z
4613
@@ -511,7 +511,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
54e0d5b5ac94a5a9a0649b2af1b030e4
2010-12-12T23:24:34.194336Z
4509
@@ -545,7 +545,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
c3cb358e85c7a5ddde50a50e8e8395d9
2011-01-02T09:45:05.291687Z
4613
@@ -579,7 +579,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
d279aa9cdae195412ec42a41d76bc999
2010-12-12T23:24:34.194336Z
4509
@@ -613,7 +613,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
fe66a05a1301e78c21ab94a101fda6af
2011-01-10T18:32:04.408692Z
4680
@@ -650,7 +650,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
fadeda4795465dbbbf5873729ddba30a
2010-12-12T23:24:34.194336Z
4509
@@ -684,7 +684,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
93378a65c9f444ca160b6681b7435610
2010-12-12T23:24:34.194336Z
4509
@@ -718,7 +718,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
621cee22436f207cb82915edfe609d42
2010-12-12T23:24:34.194336Z
4509
@@ -752,7 +752,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f1290324d506f8535d74ccf3f878c24f
2010-12-12T23:24:34.194336Z
4509
@@ -786,10 +786,10 @@
-2011-01-19T15:03:31.000000Z
-6dc51cd302ef5c8dc8f571846733a835
-2011-01-16T15:36:42.998302Z
-4730
+2011-02-08T13:49:51.000000Z
+9b6aa6783e2b9f44ad37d027deeaf9d3
+2011-01-24T17:28:59.767504Z
+4761
jplang
has-props
@@ -812,7 +812,7 @@
-24597
+25384
time_entry_test.rb
file
@@ -820,7 +820,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
ab1c1db4414427c710071842f98a5685
2011-01-14T18:45:28.811697Z
4709
@@ -854,7 +854,7 @@
-2011-01-19T15:03:31.000000Z
+2011-02-08T13:45:46.000000Z
759b702e56d17ca338fcead30d8cfcbe
2011-01-16T14:27:02.047144Z
4726
@@ -888,7 +888,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ccd63941c3776cd520a713f27ed01d08
2010-12-29T17:38:57.772516Z
4576
@@ -922,7 +922,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
4de167441793151c86bc376e671cc3c1
2010-12-12T23:24:34.194336Z
4509
@@ -956,7 +956,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
69e70ceb20c56bbb25155e8120146aa3
2010-12-12T23:24:34.194336Z
4509
@@ -990,7 +990,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
0a054ecc047ebca7e0cb9fe8aadf51eb
2010-12-12T23:24:34.194336Z
4509
@@ -1024,7 +1024,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
8d990ac10b1aeee25c74ee1f5cdc9d18
2010-12-12T23:24:34.194336Z
4509
@@ -1058,7 +1058,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
47282cfa59c0817a7936d60b0ac3e16c
2011-01-06T21:17:08.355137Z
4650
@@ -1092,7 +1092,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
6b620c2638af1111d237a35ecba5107d
2010-12-12T23:24:34.194336Z
4509
@@ -1126,7 +1126,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f4be42a1985df0fc471331477246eea7
2010-12-12T23:24:34.194336Z
4509
@@ -1160,7 +1160,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
fb1799532feba53a1df0355271636ce7
2010-12-12T23:24:34.194336Z
4509
@@ -1194,7 +1194,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
e8fef8d0f3de527136fabe2c2195be9e
2010-12-31T15:24:42.140175Z
4598
@@ -1228,7 +1228,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
23d11bc7cfedc1a4d419928eb81d5c64
2010-12-12T23:24:34.194336Z
4509
@@ -1262,11 +1262,11 @@
-2011-01-13T14:09:08.000000Z
-c57bd5b650a9fa0627831717134ceeb2
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-02-08T13:49:51.000000Z
+fdd38bbac4028c6fcb8b5902b7b509b2
+2011-02-07T10:26:15.436891Z
+4802
+tmaruyama
has-props
@@ -1288,7 +1288,7 @@
-2542
+3840
repository_darcs_test.rb
file
@@ -1296,7 +1296,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ae2d97f344e9c59bb09648e9e333db84
2011-01-01T22:01:28.805978Z
4608
@@ -1330,7 +1330,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
f2227b773374d5366d6ee7e26f7f977e
2010-12-12T23:24:34.194336Z
4509
@@ -1364,7 +1364,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
50cc3fd88223d69f74e1b11991989bbc
2010-12-12T23:24:34.194336Z
4509
@@ -1398,7 +1398,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
3665052c1291d40753ee1ab4c61cd237
2010-12-12T23:24:34.194336Z
4509
@@ -1432,7 +1432,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
5f0c8e09595f6c8f6a95def9d4ff3833
2010-12-12T23:24:34.194336Z
4509
@@ -1466,7 +1466,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
870052407719f2a360e8e95f0498130f
2010-12-12T23:24:34.194336Z
4509
@@ -1500,7 +1500,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
2b51ebfe6e4e23011d9b29f08028d832
2010-12-12T23:24:34.194336Z
4509
@@ -1534,11 +1534,11 @@
-2011-01-13T14:09:08.000000Z
-bdd4058358d08008a7597d544590d561
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-02-08T13:49:51.000000Z
+a9a2a1d3497b65464c17a71858f15278
+2011-01-22T11:46:15.415880Z
+4735
+jplang
has-props
@@ -1560,7 +1560,7 @@
-13662
+14804
query_test.rb
file
@@ -1568,7 +1568,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
25fe3c9e8b257bd7f2ce5b8a28f8f508
2010-12-21T21:46:54.984442Z
4553
@@ -1602,7 +1602,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
7c10ed0c6e700b4bfe67499ced7f9129
2010-12-12T23:24:34.194336Z
4509
@@ -1636,7 +1636,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
d50e8af60d440f2f3c60a31031b79830
2011-01-02T11:38:35.152085Z
4615
@@ -1670,7 +1670,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
e012f89814e1a9ddec5e1fd550c6b5e1
2010-12-12T23:24:34.194336Z
4509
@@ -1704,7 +1704,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
ef906b6b6bdeaa8d627ff66390dd31ab
2010-12-12T23:24:34.194336Z
4509
@@ -1738,7 +1738,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
2f98e8acd7868617728cd08702411096
2010-12-12T23:24:34.194336Z
4509
@@ -1772,7 +1772,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
759e3cea9ff889147937b83bcc137e4b
2010-12-12T23:24:34.194336Z
4509
@@ -1806,7 +1806,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
eab02ac34d43f18f1bc929dd62d6ee9a
2010-12-12T23:24:34.194336Z
4509
@@ -1840,7 +1840,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
59b08ad686160723b5b83df2cb5f8ee1
2010-12-12T23:24:34.194336Z
4509
@@ -1874,7 +1874,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
8a4fd1977e88faed5d7ebca9ac40d037
2010-12-12T23:24:34.194336Z
4509
@@ -1908,7 +1908,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
8f6032e2276c7077ad1716c67634c17e
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base
--- a/test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -202,7 +202,19 @@
issue2 = create_issue!
issue3 = create_issue!(:parent_issue_id => issue2.id)
issue4 = create_issue!(:parent_issue_id => issue1.id)
- issue2.reload.destroy
+
+ issue3.init_journal(User.find(2))
+ issue3.subject = 'child with journal'
+ issue3.save!
+
+ assert_difference 'Issue.count', -2 do
+ assert_difference 'Journal.count', -1 do
+ assert_difference 'JournalDetail.count', -1 do
+ Issue.find(issue2.id).destroy
+ end
+ end
+ end
+
issue1.reload
issue4.reload
assert !Issue.exists?(issue2.id)
@@ -211,6 +223,26 @@
assert_equal [issue1.id, 2, 3], [issue4.root_id, issue4.lft, issue4.rgt]
end
+ def test_destroy_child_issue_with_children
+ root = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'root')
+ child = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'child', :parent_issue_id => root.id)
+ leaf = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'leaf', :parent_issue_id => child.id)
+ leaf.init_journal(User.find(2))
+ leaf.subject = 'leaf with journal'
+ leaf.save!
+
+ assert_difference 'Issue.count', -2 do
+ assert_difference 'Journal.count', -1 do
+ assert_difference 'JournalDetail.count', -1 do
+ Issue.find(child.id).destroy
+ end
+ end
+ end
+
+ root = Issue.find(root.id)
+ assert root.leaf?, "Root issue is not a leaf (lft: #{root.lft}, rgt: #{root.rgt})"
+ end
+
def test_parent_priority_should_be_the_highest_child_priority
parent = create_issue!(:priority => IssuePriority.find_by_name('Normal'))
# Create children
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/.svn/text-base/repository_cvs_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -27,7 +27,7 @@
MODULE_NAME = 'test'
def setup
- @project = Project.find(1)
+ @project = Project.find(3)
assert @repository = Repository::Cvs.create(:project => @project,
:root_url => REPOSITORY_PATH,
:url => MODULE_NAME)
@@ -35,26 +35,54 @@
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
+ assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
@repository.reload
assert_equal 5, @repository.changesets.count
assert_equal 14, @repository.changes.count
assert_not_nil @repository.changesets.find_by_comments('Two files changed')
+
+ r2 = @repository.changesets.find_by_revision('2')
+ assert_equal 'v1-20071213-162510', r2.scmid
end
def test_fetch_changesets_incremental
+ assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
- # Remove the 3 latest changesets
- @repository.changesets.find(:all, :order => 'committed_on DESC', :limit => 3).each(&:destroy)
+ # Remove changesets with revision > 3
+ @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 3}
@repository.reload
- assert_equal 2, @repository.changesets.count
-
+ assert_equal 3, @repository.changesets.count
+ assert_equal %w|3 2 1|, @repository.changesets.collect(&:revision)
+
+ rev3_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal '3', rev3_commit.revision
+ # 2007-12-14 01:27:22 +0900
+ rev3_committed_on = Time.gm(2007, 12, 13, 16, 27, 22)
+ assert_equal 'HEAD-20071213-162722', rev3_commit.scmid
+ assert_equal rev3_committed_on, rev3_commit.committed_on
+ latest_rev = @repository.latest_changeset
+ assert_equal rev3_committed_on, latest_rev.committed_on
+
@repository.fetch_changesets
+ @repository.reload
assert_equal 5, @repository.changesets.count
+
+ assert_equal %w|5 4 3 2 1|, @repository.changesets.collect(&:revision)
+ rev5_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal 'HEAD-20071213-163001', rev5_commit.scmid
+ # 2007-12-14 01:30:01 +0900
+ rev5_committed_on = Time.gm(2007, 12, 13, 16, 30, 1)
+ assert_equal rev5_committed_on, rev5_commit.committed_on
end
def test_deleted_files_should_not_be_listed
+ assert_equal 0, @repository.changesets.count
+ @repository.fetch_changesets
+ @repository.reload
+ assert_equal 5, @repository.changesets.count
+
entries = @repository.entries('sources')
assert entries.detect {|e| e.name == 'watchers_controller.rb'}
assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/.svn/text-base/user_test.rb.svn-base
--- a/test/unit/.svn/text-base/user_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/.svn/text-base/user_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -672,6 +672,7 @@
should "be false for a user with :only_my_events and isn't an author, creator, or assignee" do
@user = User.generate_with_protected!(:mail_notification => 'only_my_events')
+ Member.create!(:user => @user, :project => @project, :role_ids => [1])
assert ! @user.notify_about?(@issue)
end
@@ -704,6 +705,22 @@
@assignee.update_attribute(:mail_notification, 'only_owner')
assert ! @assignee.notify_about?(@issue)
end
+
+ should "be true for a user with :selected and is the author" do
+ @author.update_attribute(:mail_notification, 'selected')
+ assert @author.notify_about?(@issue)
+ end
+
+ should "be true for a user with :selected and is the assignee" do
+ @assignee.update_attribute(:mail_notification, 'selected')
+ assert @assignee.notify_about?(@issue)
+ end
+
+ should "be false for a user with :selected and is not the author or assignee" do
+ @user = User.generate_with_protected!(:mail_notification => 'selected')
+ Member.create!(:user => @user, :project => @project, :role_ids => [1])
+ assert ! @user.notify_about?(@issue)
+ end
end
context "other events" do
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/helpers/.svn/all-wcprops
--- a/test/unit/helpers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/helpers/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 42
-/svn/!svn/ver/4696/trunk/test/unit/helpers
+/svn/!svn/ver/4760/trunk/test/unit/helpers
END
custom_fields_helper_test.rb
K 25
@@ -25,7 +25,7 @@
K 25
svn:wc:ra_dav:version-url
V 69
-/svn/!svn/ver/4696/trunk/test/unit/helpers/application_helper_test.rb
+/svn/!svn/ver/4760/trunk/test/unit/helpers/application_helper_test.rb
END
search_helper_test.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/helpers/.svn/entries
--- a/test/unit/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/helpers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/helpers
http://redmine.rubyforge.org/svn
-2011-01-11T16:03:24.486964Z
-4696
-tmaruyama
+2011-01-23T17:02:10.030897Z
+4760
+jplang
@@ -32,7 +32,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
0091346b4a944910faf5733e2ed88a76
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
ac087c4ae8e6354c77ef7189351ce220
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.483825Z
+2011-02-08T13:45:46.000000Z
2c72db60f744a7dec4600df692c40766
2010-08-11T14:42:10.119704Z
3936
@@ -134,11 +134,11 @@
-2011-01-13T14:08:13.000000Z
-29c11d5b78186bda781c09791622a62f
-2011-01-11T16:03:24.486964Z
-4696
-tmaruyama
+2011-02-08T13:49:51.000000Z
+8dd8aaf2b5473e5db20fd4fd273a3680
+2011-01-23T17:02:10.030897Z
+4760
+jplang
has-props
@@ -160,7 +160,7 @@
-33335
+34973
search_helper_test.rb
file
@@ -168,7 +168,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
9eb29557d249537fed237c15e1b1b65b
2010-12-12T23:24:34.194336Z
4509
@@ -202,7 +202,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
fd65c7c018eb59b2d8697ebeb6b7ba71
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +236,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
93f6f6ca679f5c32988254776b6d09ae
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
b26d2e82551d9f01c0394400ffd85136
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base
--- a/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -200,7 +200,7 @@
'export:/some/file' => link_to('export:/some/file', source_url.merge(:format => 'raw'), :class => 'source download'),
# message
'message#4' => link_to('Post 2', message_url, :class => 'message'),
- 'message#5' => link_to('RE: post 2', message_url.merge(:anchor => 'message-5'), :class => 'message'),
+ 'message#5' => link_to('RE: post 2', message_url.merge(:anchor => 'message-5', :r => 5), :class => 'message'),
# project
'project#3' => link_to('eCookbook Subproject 1', project_url, :class => 'project'),
'project:subproject1' => link_to('eCookbook Subproject 1', project_url, :class => 'project'),
@@ -224,6 +224,35 @@
@project = Project.find(1)
to_test.each { |text, result| assert_equal "#{result} ", textilizable(text), "#{text} failed" }
end
+
+ def test_cross_project_redmine_links
+ source_link = link_to('ecookbook:source:/some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']},
+ :class => 'source')
+
+ changeset_link = link_to('ecookbook:r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2},
+ :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3')
+
+ to_test = {
+ # documents
+ 'document:"Test document"' => 'document:"Test document"',
+ 'ecookbook:document:"Test document"' => 'Test document',
+ 'invalid:document:"Test document"' => 'invalid:document:"Test document"',
+ # versions
+ 'version:"1.0"' => 'version:"1.0"',
+ 'ecookbook:version:"1.0"' => '1.0',
+ 'invalid:version:"1.0"' => 'invalid:version:"1.0"',
+ # changeset
+ 'r2' => 'r2',
+ 'ecookbook:r2' => changeset_link,
+ 'invalid:r2' => 'invalid:r2',
+ # source
+ 'source:/some/file' => 'source:/some/file',
+ 'ecookbook:source:/some/file' => source_link,
+ 'invalid:source:/some/file' => 'invalid:source:/some/file',
+ }
+ @project = Project.find(3)
+ to_test.each { |text, result| assert_equal "#{result} ", textilizable(text), "#{text} failed" }
+ end
def test_redmine_links_git_commit
changeset_link = link_to('abcd',
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/helpers/application_helper_test.rb
--- a/test/unit/helpers/application_helper_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/helpers/application_helper_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -200,7 +200,7 @@
'export:/some/file' => link_to('export:/some/file', source_url.merge(:format => 'raw'), :class => 'source download'),
# message
'message#4' => link_to('Post 2', message_url, :class => 'message'),
- 'message#5' => link_to('RE: post 2', message_url.merge(:anchor => 'message-5'), :class => 'message'),
+ 'message#5' => link_to('RE: post 2', message_url.merge(:anchor => 'message-5', :r => 5), :class => 'message'),
# project
'project#3' => link_to('eCookbook Subproject 1', project_url, :class => 'project'),
'project:subproject1' => link_to('eCookbook Subproject 1', project_url, :class => 'project'),
@@ -224,6 +224,35 @@
@project = Project.find(1)
to_test.each { |text, result| assert_equal "#{result} ", textilizable(text), "#{text} failed" }
end
+
+ def test_cross_project_redmine_links
+ source_link = link_to('ecookbook:source:/some/file', {:controller => 'repositories', :action => 'entry', :id => 'ecookbook', :path => ['some', 'file']},
+ :class => 'source')
+
+ changeset_link = link_to('ecookbook:r2', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :rev => 2},
+ :class => 'changeset', :title => 'This commit fixes #1, #2 and references #1 & #3')
+
+ to_test = {
+ # documents
+ 'document:"Test document"' => 'document:"Test document"',
+ 'ecookbook:document:"Test document"' => 'Test document',
+ 'invalid:document:"Test document"' => 'invalid:document:"Test document"',
+ # versions
+ 'version:"1.0"' => 'version:"1.0"',
+ 'ecookbook:version:"1.0"' => '1.0',
+ 'invalid:version:"1.0"' => 'invalid:version:"1.0"',
+ # changeset
+ 'r2' => 'r2',
+ 'ecookbook:r2' => changeset_link,
+ 'invalid:r2' => 'invalid:r2',
+ # source
+ 'source:/some/file' => 'source:/some/file',
+ 'ecookbook:source:/some/file' => source_link,
+ 'invalid:source:/some/file' => 'invalid:source:/some/file',
+ }
+ @project = Project.find(3)
+ to_test.each { |text, result| assert_equal "#{result} ", textilizable(text), "#{text} failed" }
+ end
def test_redmine_links_git_commit
changeset_link = link_to('abcd',
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/issue_nested_set_test.rb
--- a/test/unit/issue_nested_set_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/issue_nested_set_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -202,7 +202,19 @@
issue2 = create_issue!
issue3 = create_issue!(:parent_issue_id => issue2.id)
issue4 = create_issue!(:parent_issue_id => issue1.id)
- issue2.reload.destroy
+
+ issue3.init_journal(User.find(2))
+ issue3.subject = 'child with journal'
+ issue3.save!
+
+ assert_difference 'Issue.count', -2 do
+ assert_difference 'Journal.count', -1 do
+ assert_difference 'JournalDetail.count', -1 do
+ Issue.find(issue2.id).destroy
+ end
+ end
+ end
+
issue1.reload
issue4.reload
assert !Issue.exists?(issue2.id)
@@ -211,6 +223,26 @@
assert_equal [issue1.id, 2, 3], [issue4.root_id, issue4.lft, issue4.rgt]
end
+ def test_destroy_child_issue_with_children
+ root = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'root')
+ child = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'child', :parent_issue_id => root.id)
+ leaf = Issue.create!(:project_id => 1, :author_id => 2, :tracker_id => 1, :subject => 'leaf', :parent_issue_id => child.id)
+ leaf.init_journal(User.find(2))
+ leaf.subject = 'leaf with journal'
+ leaf.save!
+
+ assert_difference 'Issue.count', -2 do
+ assert_difference 'Journal.count', -1 do
+ assert_difference 'JournalDetail.count', -1 do
+ Issue.find(child.id).destroy
+ end
+ end
+ end
+
+ root = Issue.find(root.id)
+ assert root.leaf?, "Root issue is not a leaf (lft: #{root.lft}, rgt: #{root.rgt})"
+ end
+
def test_parent_priority_should_be_the_highest_child_priority
parent = create_issue!(:priority => IssuePriority.find_by_name('Normal'))
# Create children
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/.svn/all-wcprops
--- a/test/unit/lib/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 38
-/svn/!svn/ver/4705/trunk/test/unit/lib
+/svn/!svn/ver/4794/trunk/test/unit/lib
END
redmine_test.rb
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/.svn/entries
--- a/test/unit/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-02T13:13:44.942059Z
+4794
tmaruyama
@@ -35,7 +35,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
eec42202798f1936d0e12c27f43f9add
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/.svn/all-wcprops
--- a/test/unit/lib/redmine/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine
+/svn/!svn/ver/4794/trunk/test/unit/lib/redmine
END
menu_manager_test.rb
K 25
@@ -51,6 +51,12 @@
V 61
/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/themes_test.rb
END
+configuration_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4752/trunk/test/unit/lib/redmine/configuration_test.rb
+END
mime_type_test.rb
K 25
svn:wc:ra_dav:version-url
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/.svn/entries
--- a/test/unit/lib/redmine/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-02T13:13:44.942059Z
+4794
tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
9aeca8ed785b33fdf901312133798b8b
2011-01-10T18:25:12.105765Z
4679
@@ -69,7 +69,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
761d6ebcd277ba4a1d0a2216a7fe8925
2010-12-12T23:24:34.194336Z
4509
@@ -103,7 +103,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
2e952466cca65bea9ea095ad2ec01811
2010-12-12T23:24:34.194336Z
4509
@@ -137,7 +137,7 @@
-2011-01-13T14:08:14.000000Z
+2011-02-08T13:45:46.000000Z
161e4b78a0d1cdfd67d5bd54f6480726
2010-12-12T23:24:34.194336Z
4509
@@ -180,7 +180,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
22afe4f1981d3d856beef3275f95f243
2010-12-12T23:24:34.194336Z
4509
@@ -214,7 +214,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
d2f2e4457ed4eda1b5efb8a41a3de255
2010-12-12T23:24:34.194336Z
4509
@@ -248,7 +248,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
1a6043d0994b5fb4a09f3962ab5542ce
2010-12-12T23:24:34.194336Z
4509
@@ -282,7 +282,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
6b610cfc1e3e51f457eea06a6e6fb9a0
2010-12-12T23:24:34.194336Z
4509
@@ -319,7 +319,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
6682bde90d30369ef1d27b806391134f
2010-12-12T23:24:34.194336Z
4509
@@ -347,13 +347,47 @@
1801
+configuration_test.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+49a50b72de5c622520734a4c53725140
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1629
+
unified_diff_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
247766b1dcc53d063207850027e6f78d
2010-12-12T23:24:34.194336Z
4509
@@ -387,7 +421,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
562f9308fbaa71c0ef605a5cfe24d3a5
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/.svn/prop-base/configuration_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/prop-base/configuration_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/.svn/text-base/configuration_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/configuration_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,52 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::ConfigurationTest < ActiveSupport::TestCase
+ def setup
+ @conf = Redmine::Configuration
+ end
+
+ def test_empty
+ assert_kind_of Hash, load_conf('empty.yml', 'test')
+ end
+
+ def test_default
+ assert_kind_of Hash, load_conf('default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ end
+
+ def test_no_default
+ assert_kind_of Hash, load_conf('no_default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ end
+
+ def test_overrides
+ assert_kind_of Hash, load_conf('overrides.yml', 'test')
+ assert_equal 'bar', @conf['somesetting']
+ end
+
+ private
+
+ def load_conf(file, env)
+ @conf.load(
+ :file => File.join(Rails.root, 'test', 'fixtures', 'configuration', file),
+ :env => env
+ )
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/configuration_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/configuration_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,52 @@
+# Redmine - project management software
+# Copyright (C) 2006-2011 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.expand_path('../../../../test_helper', __FILE__)
+
+class Redmine::ConfigurationTest < ActiveSupport::TestCase
+ def setup
+ @conf = Redmine::Configuration
+ end
+
+ def test_empty
+ assert_kind_of Hash, load_conf('empty.yml', 'test')
+ end
+
+ def test_default
+ assert_kind_of Hash, load_conf('default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ end
+
+ def test_no_default
+ assert_kind_of Hash, load_conf('no_default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ end
+
+ def test_overrides
+ assert_kind_of Hash, load_conf('overrides.yml', 'test')
+ assert_equal 'bar', @conf['somesetting']
+ end
+
+ private
+
+ def load_conf(file, env)
+ @conf.load(
+ :file => File.join(Rails.root, 'test', 'fixtures', 'configuration', file),
+ :env => env
+ )
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/helpers/.svn/entries
--- a/test/unit/lib/redmine/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/helpers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/helpers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
1d6b4373836fef676ab3a28235c140b8
2010-12-29T20:29:42.467534Z
4582
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/menu_manager/.svn/entries
--- a/test/unit/lib/redmine/menu_manager/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/menu_manager
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:07.000000Z
+2011-02-08T13:45:46.000000Z
fdf6a6902bb3de694d7a4fabbdfe2798
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:07.000000Z
+2011-02-08T13:45:46.000000Z
fdde38850555e88b18c742d7d15be035
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2011-01-13T14:09:07.000000Z
+2011-02-08T13:45:46.000000Z
18c96ac64de73c38eb9d766226b34ca7
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/.svn/all-wcprops
--- a/test/unit/lib/redmine/scm/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 50
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm
+/svn/!svn/ver/4794/trunk/test/unit/lib/redmine/scm
END
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/.svn/entries
--- a/test/unit/lib/redmine/scm/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-02T13:13:44.942059Z
+4794
tmaruyama
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/.svn/all-wcprops
--- a/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm/adapters
+/svn/!svn/ver/4794/trunk/test/unit/lib/redmine/scm/adapters
END
subversion_adapter_test.rb
K 25
@@ -19,7 +19,7 @@
K 25
svn:wc:ra_dav:version-url
V 85
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
+/svn/!svn/ver/4792/trunk/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
END
filesystem_adapter_test.rb
K 25
@@ -27,3 +27,15 @@
V 86
/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb
END
+cvs_adapter_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4794/trunk/test/unit/lib/redmine/scm/adapters/cvs_adapter_test.rb
+END
+darcs_adapter_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4748/trunk/test/unit/lib/redmine/scm/adapters/darcs_adapter_test.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/.svn/entries
--- a/test/unit/lib/redmine/scm/adapters/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/scm/adapters
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-02T13:13:44.942059Z
+4794
tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
765ef194c70144742d0b8bfcb99f6627
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
2e3d6f99dd454ee396770a707ea169db
2010-12-12T23:24:45.195624Z
4510
@@ -100,10 +100,10 @@
-2011-01-13T14:08:13.000000Z
-7af2ec05aa23ebf083f7aa58bca43f95
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-08T13:49:51.000000Z
+64cc2244eb07beb0857fe8888b957ad3
+2011-02-02T10:01:22.051980Z
+4792
tmaruyama
has-props
@@ -126,7 +126,7 @@
-6096
+6500
filesystem_adapter_test.rb
file
@@ -134,7 +134,7 @@
-2011-01-13T14:08:13.000000Z
+2011-02-08T13:45:46.000000Z
61cf9f9a3628f6766845641d99adaa83
2010-12-12T23:24:34.194336Z
4509
@@ -162,3 +162,71 @@
1449
+cvs_adapter_test.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+0407a64851e16387512e427ffb0e167c
+2011-02-02T13:13:44.942059Z
+4794
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1164
+
+darcs_adapter_test.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+3a836e9a54b113ed5fe6490ce88ebebe
+2011-01-23T04:17:03.473127Z
+4748
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1649
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,42 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class CvsAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
+ MODULE_NAME = 'test'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
+ end
+
+ def test_revisions_all
+ cnt = 0
+ @adapter.revisions('', nil, nil, :with_paths => true) do |revision|
+ cnt += 1
+ end
+ assert_equal 14, cnt
+ end
+
+ def test_revisions_from_rev3
+ rev3_committed_on = Time.gm(2007, 12, 13, 16, 27, 22)
+ cnt = 0
+ @adapter.revisions('', rev3_committed_on, nil, :with_paths => true) do |revision|
+ cnt += 1
+ end
+ assert_equal 2, cnt
+ end
+ else
+ puts "Cvs test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class CvsMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,53 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class DarcsAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::DarcsAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_darcsversion
+ to_test = { "1.0.9 (release)\n" => [1,0,9] ,
+ "2.2.0 (release)\n" => [2,2,0] }
+ to_test.each do |s, v|
+ test_darcsversion_for(s, v)
+ end
+ end
+
+ def test_revisions
+ id1 = '20080308225258-98289-761f654d669045eabee90b91b53a21ce5593cadf.gz'
+ revs = @adapter.revisions('', nil, nil, {:with_path => true})
+ assert_equal 6, revs.size
+ assert_equal id1, revs[5].scmid
+ paths = revs[5].paths
+ assert_equal 5, paths.size
+ assert_equal 'A', paths[0][:action]
+ assert_equal '/README', paths[0][:path]
+ assert_equal 'A', paths[1][:action]
+ assert_equal '/images', paths[1][:path]
+ end
+
+ private
+
+ def test_darcsversion_for(darcsversion, version)
+ @adapter.class.expects(:darcs_binary_version_from_command_line).returns(darcsversion)
+ assert_equal version, @adapter.class.darcs_binary_version
+ end
+
+ else
+ puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class DarcsMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -69,6 +69,17 @@
end
end
+ def test_diff_made_by_revision
+ if @adapter.class.client_version_above?([1, 2])
+ [16, '16', '4cddb4e45f52'].each do |r1|
+ diff1 = @adapter.diff(nil, r1)
+ assert_equal 5, diff1.size
+ buf = diff1[4].gsub(/\r\n|\r|\n/, "")
+ assert_equal '+0885933ad4f68d77c2649cd11f8311276e7ef7ce tag-init-revision', buf
+ end
+ end
+ end
+
def test_cat
[2, '400bb8672109', '400', 400].each do |r|
buf = @adapter.cat('sources/welcome_controller.rb', r)
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/cvs_adapter_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/scm/adapters/cvs_adapter_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,42 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class CvsAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
+ MODULE_NAME = 'test'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
+ end
+
+ def test_revisions_all
+ cnt = 0
+ @adapter.revisions('', nil, nil, :with_paths => true) do |revision|
+ cnt += 1
+ end
+ assert_equal 14, cnt
+ end
+
+ def test_revisions_from_rev3
+ rev3_committed_on = Time.gm(2007, 12, 13, 16, 27, 22)
+ cnt = 0
+ @adapter.revisions('', rev3_committed_on, nil, :with_paths => true) do |revision|
+ cnt += 1
+ end
+ assert_equal 2, cnt
+ end
+ else
+ puts "Cvs test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class CvsMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/darcs_adapter_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/scm/adapters/darcs_adapter_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,53 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class DarcsAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::DarcsAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_darcsversion
+ to_test = { "1.0.9 (release)\n" => [1,0,9] ,
+ "2.2.0 (release)\n" => [2,2,0] }
+ to_test.each do |s, v|
+ test_darcsversion_for(s, v)
+ end
+ end
+
+ def test_revisions
+ id1 = '20080308225258-98289-761f654d669045eabee90b91b53a21ce5593cadf.gz'
+ revs = @adapter.revisions('', nil, nil, {:with_path => true})
+ assert_equal 6, revs.size
+ assert_equal id1, revs[5].scmid
+ paths = revs[5].paths
+ assert_equal 5, paths.size
+ assert_equal 'A', paths[0][:action]
+ assert_equal '/README', paths[0][:path]
+ assert_equal 'A', paths[1][:action]
+ assert_equal '/images', paths[1][:path]
+ end
+
+ private
+
+ def test_darcsversion_for(darcsversion, version)
+ @adapter.class.expects(:darcs_binary_version_from_command_line).returns(darcsversion)
+ assert_equal version, @adapter.class.darcs_binary_version
+ end
+
+ else
+ puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class DarcsMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
--- a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -69,6 +69,17 @@
end
end
+ def test_diff_made_by_revision
+ if @adapter.class.client_version_above?([1, 2])
+ [16, '16', '4cddb4e45f52'].each do |r1|
+ diff1 = @adapter.diff(nil, r1)
+ assert_equal 5, diff1.size
+ buf = diff1[4].gsub(/\r\n|\r|\n/, "")
+ assert_equal '+0885933ad4f68d77c2649cd11f8311276e7ef7ce tag-init-revision', buf
+ end
+ end
+ end
+
def test_cat
[2, '400bb8672109', '400', 400].each do |r|
buf = @adapter.cat('sources/welcome_controller.rb', r)
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/views/.svn/entries
--- a/test/unit/lib/redmine/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/views/builders/.svn/entries
--- a/test/unit/lib/redmine/views/builders/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/views/builders
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
0eb241e5c91856b3340cf4d848c39119
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-02-08T13:45:46.000000Z
aed14e6bc3e5bb08380fe6954d273a6c
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/lib/redmine/wiki_formatting/.svn/entries
--- a/test/unit/lib/redmine/wiki_formatting/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/wiki_formatting
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:07.000000Z
+2011-02-08T13:45:46.000000Z
5acd95498f8f2e52e8ad2b70961a21ad
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:07.000000Z
+2011-02-08T13:45:46.000000Z
41000dcb1febd4ce59305bb36a369cf0
2010-12-12T23:24:34.194336Z
4509
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/repository_cvs_test.rb
--- a/test/unit/repository_cvs_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/repository_cvs_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -27,7 +27,7 @@
MODULE_NAME = 'test'
def setup
- @project = Project.find(1)
+ @project = Project.find(3)
assert @repository = Repository::Cvs.create(:project => @project,
:root_url => REPOSITORY_PATH,
:url => MODULE_NAME)
@@ -35,26 +35,54 @@
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
+ assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
@repository.reload
assert_equal 5, @repository.changesets.count
assert_equal 14, @repository.changes.count
assert_not_nil @repository.changesets.find_by_comments('Two files changed')
+
+ r2 = @repository.changesets.find_by_revision('2')
+ assert_equal 'v1-20071213-162510', r2.scmid
end
def test_fetch_changesets_incremental
+ assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
- # Remove the 3 latest changesets
- @repository.changesets.find(:all, :order => 'committed_on DESC', :limit => 3).each(&:destroy)
+ # Remove changesets with revision > 3
+ @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 3}
@repository.reload
- assert_equal 2, @repository.changesets.count
-
+ assert_equal 3, @repository.changesets.count
+ assert_equal %w|3 2 1|, @repository.changesets.collect(&:revision)
+
+ rev3_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal '3', rev3_commit.revision
+ # 2007-12-14 01:27:22 +0900
+ rev3_committed_on = Time.gm(2007, 12, 13, 16, 27, 22)
+ assert_equal 'HEAD-20071213-162722', rev3_commit.scmid
+ assert_equal rev3_committed_on, rev3_commit.committed_on
+ latest_rev = @repository.latest_changeset
+ assert_equal rev3_committed_on, latest_rev.committed_on
+
@repository.fetch_changesets
+ @repository.reload
assert_equal 5, @repository.changesets.count
+
+ assert_equal %w|5 4 3 2 1|, @repository.changesets.collect(&:revision)
+ rev5_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal 'HEAD-20071213-163001', rev5_commit.scmid
+ # 2007-12-14 01:30:01 +0900
+ rev5_committed_on = Time.gm(2007, 12, 13, 16, 30, 1)
+ assert_equal rev5_committed_on, rev5_commit.committed_on
end
def test_deleted_files_should_not_be_listed
+ assert_equal 0, @repository.changesets.count
+ @repository.fetch_changesets
+ @repository.reload
+ assert_equal 5, @repository.changesets.count
+
entries = @repository.entries('sources')
assert entries.detect {|e| e.name == 'watchers_controller.rb'}
assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
diff -r 07fa8a8b56a8 -r 0579821a129a test/unit/user_test.rb
--- a/test/unit/user_test.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/test/unit/user_test.rb Tue Feb 08 13:51:46 2011 +0000
@@ -672,6 +672,7 @@
should "be false for a user with :only_my_events and isn't an author, creator, or assignee" do
@user = User.generate_with_protected!(:mail_notification => 'only_my_events')
+ Member.create!(:user => @user, :project => @project, :role_ids => [1])
assert ! @user.notify_about?(@issue)
end
@@ -704,6 +705,22 @@
@assignee.update_attribute(:mail_notification, 'only_owner')
assert ! @assignee.notify_about?(@issue)
end
+
+ should "be true for a user with :selected and is the author" do
+ @author.update_attribute(:mail_notification, 'selected')
+ assert @author.notify_about?(@issue)
+ end
+
+ should "be true for a user with :selected and is the assignee" do
+ @assignee.update_attribute(:mail_notification, 'selected')
+ assert @assignee.notify_about?(@issue)
+ end
+
+ should "be false for a user with :selected and is not the author or assignee" do
+ @user = User.generate_with_protected!(:mail_notification => 'selected')
+ Member.create!(:user => @user, :project => @project, :role_ids => [1])
+ assert ! @user.notify_about?(@issue)
+ end
end
context "other events" do
diff -r 07fa8a8b56a8 -r 0579821a129a tmp/.svn/entries
--- a/tmp/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/tmp/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/tmp
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a tmp/cache/.svn/entries
--- a/tmp/cache/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/tmp/cache/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/tmp/cache
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a tmp/sessions/.svn/entries
--- a/tmp/sessions/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/tmp/sessions/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/tmp/sessions
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a tmp/sockets/.svn/entries
--- a/tmp/sockets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/tmp/sockets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/tmp/sockets
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a tmp/test/.svn/entries
--- a/tmp/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/tmp/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/tmp/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.515807Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-06-08T02:07:30.275769Z
2784
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/.svn/all-wcprops
--- a/vendor/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 31
-/svn/!svn/ver/4602/trunk/vendor
+/svn/!svn/ver/4739/trunk/vendor
END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/.svn/entries
--- a/vendor/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor
http://redmine.rubyforge.org/svn
-2011-01-01T11:45:12.617336Z
-4602
+2011-01-22T13:18:01.557255Z
+4739
jplang
has-props
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/.svn/all-wcprops
--- a/vendor/gems/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 36
-/svn/!svn/ver/3090/trunk/vendor/gems
+/svn/!svn/ver/4739/trunk/vendor/gems
END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/.svn/entries
--- a/vendor/gems/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/gems
http://redmine.rubyforge.org/svn
-2009-11-25T05:36:44.792571Z
-3090
-edavis10
+2011-01-22T13:18:01.557255Z
+4739
+jplang
@@ -26,6 +26,9 @@
e93f8b46-1217-0410-a6f0-8f06a7374b81
+coderay-0.9.7
+dir
+
rubytree-0.5.2
dir
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.specification
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.specification Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,155 @@
+--- !ruby/object:Gem::Specification
+name: coderay
+version: !ruby/object:Gem::Version
+ hash: 53
+ prerelease: false
+ segments:
+ - 0
+ - 9
+ - 7
+ version: 0.9.7
+platform: ruby
+authors:
+- murphy
+autorequire:
+bindir: bin
+cert_chain: []
+
+date: 2011-01-15 00:00:00 +01:00
+default_executable:
+dependencies: []
+
+description: |
+ Fast and easy syntax highlighting for selected languages, written in Ruby.
+ Comes with RedCloth integration and LOC counter.
+
+email: murphy@rubychan.de
+executables:
+- coderay
+- coderay_stylesheet
+extensions: []
+
+extra_rdoc_files:
+- lib/README
+- FOLDERS
+files:
+- ./lib/coderay/duo.rb
+- ./lib/coderay/encoder.rb
+- ./lib/coderay/encoders/_map.rb
+- ./lib/coderay/encoders/comment_filter.rb
+- ./lib/coderay/encoders/count.rb
+- ./lib/coderay/encoders/debug.rb
+- ./lib/coderay/encoders/div.rb
+- ./lib/coderay/encoders/filter.rb
+- ./lib/coderay/encoders/html/css.rb
+- ./lib/coderay/encoders/html/numerization.rb
+- ./lib/coderay/encoders/html/output.rb
+- ./lib/coderay/encoders/html.rb
+- ./lib/coderay/encoders/json.rb
+- ./lib/coderay/encoders/lines_of_code.rb
+- ./lib/coderay/encoders/null.rb
+- ./lib/coderay/encoders/page.rb
+- ./lib/coderay/encoders/span.rb
+- ./lib/coderay/encoders/statistic.rb
+- ./lib/coderay/encoders/term.rb
+- ./lib/coderay/encoders/text.rb
+- ./lib/coderay/encoders/token_class_filter.rb
+- ./lib/coderay/encoders/xml.rb
+- ./lib/coderay/encoders/yaml.rb
+- ./lib/coderay/for_redcloth.rb
+- ./lib/coderay/helpers/file_type.rb
+- ./lib/coderay/helpers/gzip_simple.rb
+- ./lib/coderay/helpers/plugin.rb
+- ./lib/coderay/helpers/word_list.rb
+- ./lib/coderay/scanner.rb
+- ./lib/coderay/scanners/_map.rb
+- ./lib/coderay/scanners/c.rb
+- ./lib/coderay/scanners/cpp.rb
+- ./lib/coderay/scanners/css.rb
+- ./lib/coderay/scanners/debug.rb
+- ./lib/coderay/scanners/delphi.rb
+- ./lib/coderay/scanners/diff.rb
+- ./lib/coderay/scanners/groovy.rb
+- ./lib/coderay/scanners/html.rb
+- ./lib/coderay/scanners/java/builtin_types.rb
+- ./lib/coderay/scanners/java.rb
+- ./lib/coderay/scanners/java_script-0.9.6.rb
+- ./lib/coderay/scanners/java_script.rb
+- ./lib/coderay/scanners/json.rb
+- ./lib/coderay/scanners/nitro_xhtml.rb
+- ./lib/coderay/scanners/php.rb
+- ./lib/coderay/scanners/plaintext.rb
+- ./lib/coderay/scanners/python.rb
+- ./lib/coderay/scanners/rhtml.rb
+- ./lib/coderay/scanners/ruby/patterns.rb
+- ./lib/coderay/scanners/ruby.rb
+- ./lib/coderay/scanners/scheme.rb
+- ./lib/coderay/scanners/sql.rb
+- ./lib/coderay/scanners/xml.rb
+- ./lib/coderay/scanners/yaml.rb
+- ./lib/coderay/style.rb
+- ./lib/coderay/styles/_map.rb
+- ./lib/coderay/styles/cycnus.rb
+- ./lib/coderay/styles/murphy.rb
+- ./lib/coderay/token_classes.rb
+- ./lib/coderay/tokens.rb
+- ./lib/coderay.rb
+- ./Rakefile
+- ./test/functional/basic.rb
+- ./test/functional/basic.rbc
+- ./test/functional/for_redcloth.rb
+- ./test/functional/for_redcloth.rbc
+- ./test/functional/load_plugin_scanner.rb
+- ./test/functional/load_plugin_scanner.rbc
+- ./test/functional/suite.rb
+- ./test/functional/suite.rbc
+- ./test/functional/vhdl.rb
+- ./test/functional/vhdl.rbc
+- ./test/functional/word_list.rb
+- ./test/functional/word_list.rbc
+- ./lib/README
+- ./LICENSE
+- lib/README
+- FOLDERS
+- bin/coderay
+- bin/coderay_stylesheet
+has_rdoc: true
+homepage: http://coderay.rubychan.de
+licenses: []
+
+post_install_message:
+rdoc_options:
+- -SNw2
+- -mlib/README
+- -t CodeRay Documentation
+require_paths:
+- lib
+required_ruby_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 51
+ segments:
+ - 1
+ - 8
+ - 2
+ version: 1.8.2
+required_rubygems_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+requirements: []
+
+rubyforge_project: coderay
+rubygems_version: 1.3.7
+signing_key:
+specification_version: 3
+summary: Fast syntax highlighting for selected languages.
+test_files:
+- ./test/functional/suite.rb
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7
+END
+LICENSE
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/LICENSE
+END
+Rakefile
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/Rakefile
+END
+.specification
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/.specification
+END
+FOLDERS
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/FOLDERS
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,173 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+test
+dir
+
+LICENSE
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+071d975e884a936b40eab0b865ea4da1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+26534
+
+Rakefile
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+18ea6850e44c2180fe121b906b0ce27a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+771
+
+lib
+dir
+
+bin
+dir
+
+.specification
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+a3bbd9c0481e784e38ef28afc8aa3242
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4138
+
+FOLDERS
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+f11c3e40d9b35de767926748e7278f47
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1133
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/text-base/.specification.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/text-base/.specification.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,155 @@
+--- !ruby/object:Gem::Specification
+name: coderay
+version: !ruby/object:Gem::Version
+ hash: 53
+ prerelease: false
+ segments:
+ - 0
+ - 9
+ - 7
+ version: 0.9.7
+platform: ruby
+authors:
+- murphy
+autorequire:
+bindir: bin
+cert_chain: []
+
+date: 2011-01-15 00:00:00 +01:00
+default_executable:
+dependencies: []
+
+description: |
+ Fast and easy syntax highlighting for selected languages, written in Ruby.
+ Comes with RedCloth integration and LOC counter.
+
+email: murphy@rubychan.de
+executables:
+- coderay
+- coderay_stylesheet
+extensions: []
+
+extra_rdoc_files:
+- lib/README
+- FOLDERS
+files:
+- ./lib/coderay/duo.rb
+- ./lib/coderay/encoder.rb
+- ./lib/coderay/encoders/_map.rb
+- ./lib/coderay/encoders/comment_filter.rb
+- ./lib/coderay/encoders/count.rb
+- ./lib/coderay/encoders/debug.rb
+- ./lib/coderay/encoders/div.rb
+- ./lib/coderay/encoders/filter.rb
+- ./lib/coderay/encoders/html/css.rb
+- ./lib/coderay/encoders/html/numerization.rb
+- ./lib/coderay/encoders/html/output.rb
+- ./lib/coderay/encoders/html.rb
+- ./lib/coderay/encoders/json.rb
+- ./lib/coderay/encoders/lines_of_code.rb
+- ./lib/coderay/encoders/null.rb
+- ./lib/coderay/encoders/page.rb
+- ./lib/coderay/encoders/span.rb
+- ./lib/coderay/encoders/statistic.rb
+- ./lib/coderay/encoders/term.rb
+- ./lib/coderay/encoders/text.rb
+- ./lib/coderay/encoders/token_class_filter.rb
+- ./lib/coderay/encoders/xml.rb
+- ./lib/coderay/encoders/yaml.rb
+- ./lib/coderay/for_redcloth.rb
+- ./lib/coderay/helpers/file_type.rb
+- ./lib/coderay/helpers/gzip_simple.rb
+- ./lib/coderay/helpers/plugin.rb
+- ./lib/coderay/helpers/word_list.rb
+- ./lib/coderay/scanner.rb
+- ./lib/coderay/scanners/_map.rb
+- ./lib/coderay/scanners/c.rb
+- ./lib/coderay/scanners/cpp.rb
+- ./lib/coderay/scanners/css.rb
+- ./lib/coderay/scanners/debug.rb
+- ./lib/coderay/scanners/delphi.rb
+- ./lib/coderay/scanners/diff.rb
+- ./lib/coderay/scanners/groovy.rb
+- ./lib/coderay/scanners/html.rb
+- ./lib/coderay/scanners/java/builtin_types.rb
+- ./lib/coderay/scanners/java.rb
+- ./lib/coderay/scanners/java_script-0.9.6.rb
+- ./lib/coderay/scanners/java_script.rb
+- ./lib/coderay/scanners/json.rb
+- ./lib/coderay/scanners/nitro_xhtml.rb
+- ./lib/coderay/scanners/php.rb
+- ./lib/coderay/scanners/plaintext.rb
+- ./lib/coderay/scanners/python.rb
+- ./lib/coderay/scanners/rhtml.rb
+- ./lib/coderay/scanners/ruby/patterns.rb
+- ./lib/coderay/scanners/ruby.rb
+- ./lib/coderay/scanners/scheme.rb
+- ./lib/coderay/scanners/sql.rb
+- ./lib/coderay/scanners/xml.rb
+- ./lib/coderay/scanners/yaml.rb
+- ./lib/coderay/style.rb
+- ./lib/coderay/styles/_map.rb
+- ./lib/coderay/styles/cycnus.rb
+- ./lib/coderay/styles/murphy.rb
+- ./lib/coderay/token_classes.rb
+- ./lib/coderay/tokens.rb
+- ./lib/coderay.rb
+- ./Rakefile
+- ./test/functional/basic.rb
+- ./test/functional/basic.rbc
+- ./test/functional/for_redcloth.rb
+- ./test/functional/for_redcloth.rbc
+- ./test/functional/load_plugin_scanner.rb
+- ./test/functional/load_plugin_scanner.rbc
+- ./test/functional/suite.rb
+- ./test/functional/suite.rbc
+- ./test/functional/vhdl.rb
+- ./test/functional/vhdl.rbc
+- ./test/functional/word_list.rb
+- ./test/functional/word_list.rbc
+- ./lib/README
+- ./LICENSE
+- lib/README
+- FOLDERS
+- bin/coderay
+- bin/coderay_stylesheet
+has_rdoc: true
+homepage: http://coderay.rubychan.de
+licenses: []
+
+post_install_message:
+rdoc_options:
+- -SNw2
+- -mlib/README
+- -t CodeRay Documentation
+require_paths:
+- lib
+required_ruby_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 51
+ segments:
+ - 1
+ - 8
+ - 2
+ version: 1.8.2
+required_rubygems_version: !ruby/object:Gem::Requirement
+ none: false
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ hash: 3
+ segments:
+ - 0
+ version: "0"
+requirements: []
+
+rubyforge_project: coderay
+rubygems_version: 1.3.7
+signing_key:
+specification_version: 3
+summary: Fast syntax highlighting for selected languages.
+test_files:
+- ./test/functional/suite.rb
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/text-base/FOLDERS.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/text-base/FOLDERS.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,53 @@
+= CodeRay - Trunk folder structure
+
+== bench - Benchmarking system
+
+All benchmarking stuff goes here.
+
+Test inputs are stored in files named example. .
+Test outputs go to bench/test. .
+
+Run bench/bench.rb to get a usage description.
+
+Run rake bench to perform an example benchmark.
+
+
+== bin - Scripts
+
+Executional files for CodeRay.
+
+
+== demo - Demos and functional tests
+
+Demonstrational scripts to show of CodeRay's features.
+
+Run them as functional tests with rake test:demos .
+
+
+== etc - Lots of stuff
+
+Some addidtional files for CodeRay, mainly graphics and Vim scripts.
+
+
+== gem_server - Gem output folder
+
+For rake gem .
+
+
+== lib - CodeRay library code
+
+This is the base directory for the CodeRay library.
+
+
+== rake_helpers - Rake helper libraries
+
+Some files to enhance Rake, including the Autumnal Rdoc template and some scripts.
+
+
+== test - Tests
+
+Tests for the scanners.
+
+Each language has its own subfolder and sub-suite.
+
+Run with rake test .
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/text-base/LICENSE.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/text-base/LICENSE.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/.svn/text-base/Rakefile.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/.svn/text-base/Rakefile.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,35 @@
+require 'rake/rdoctask'
+
+ROOT = '.'
+LIB_ROOT = File.join ROOT, 'lib'
+EXTRA_RDOC_FILES = %w(lib/README FOLDERS)
+
+task :default => :test
+
+if File.directory? 'rake_tasks'
+
+ # load rake tasks from subfolder
+ for task_file in Dir['rake_tasks/*.rake'].sort
+ load task_file
+ end
+
+else
+
+ # fallback tasks when rake_tasks folder is not present
+ desc 'Run CodeRay tests (basic)'
+ task :test do
+ ruby './test/functional/suite.rb'
+ ruby './test/functional/for_redcloth.rb'
+ end
+
+ desc 'Generate documentation for CodeRay'
+ Rake::RDocTask.new :doc do |rd|
+ rd.title = 'CodeRay Documentation'
+ rd.main = 'lib/README'
+ rd.rdoc_files.add Dir['lib']
+ rd.rdoc_files.add 'lib/README'
+ rd.rdoc_files.add 'FOLDERS'
+ rd.rdoc_dir = 'doc'
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/FOLDERS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/FOLDERS Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,53 @@
+= CodeRay - Trunk folder structure
+
+== bench - Benchmarking system
+
+All benchmarking stuff goes here.
+
+Test inputs are stored in files named example. .
+Test outputs go to bench/test. .
+
+Run bench/bench.rb to get a usage description.
+
+Run rake bench to perform an example benchmark.
+
+
+== bin - Scripts
+
+Executional files for CodeRay.
+
+
+== demo - Demos and functional tests
+
+Demonstrational scripts to show of CodeRay's features.
+
+Run them as functional tests with rake test:demos .
+
+
+== etc - Lots of stuff
+
+Some addidtional files for CodeRay, mainly graphics and Vim scripts.
+
+
+== gem_server - Gem output folder
+
+For rake gem .
+
+
+== lib - CodeRay library code
+
+This is the base directory for the CodeRay library.
+
+
+== rake_helpers - Rake helper libraries
+
+Some files to enhance Rake, including the Autumnal Rdoc template and some scripts.
+
+
+== test - Tests
+
+Tests for the scanners.
+
+Each language has its own subfolder and sub-suite.
+
+Run with rake test .
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/LICENSE Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ , 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/Rakefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/Rakefile Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,35 @@
+require 'rake/rdoctask'
+
+ROOT = '.'
+LIB_ROOT = File.join ROOT, 'lib'
+EXTRA_RDOC_FILES = %w(lib/README FOLDERS)
+
+task :default => :test
+
+if File.directory? 'rake_tasks'
+
+ # load rake tasks from subfolder
+ for task_file in Dir['rake_tasks/*.rake'].sort
+ load task_file
+ end
+
+else
+
+ # fallback tasks when rake_tasks folder is not present
+ desc 'Run CodeRay tests (basic)'
+ task :test do
+ ruby './test/functional/suite.rb'
+ ruby './test/functional/for_redcloth.rb'
+ end
+
+ desc 'Generate documentation for CodeRay'
+ Rake::RDocTask.new :doc do |rd|
+ rd.title = 'CodeRay Documentation'
+ rd.main = 'lib/README'
+ rd.rdoc_files.add Dir['lib']
+ rd.rdoc_files.add 'lib/README'
+ rd.rdoc_files.add 'FOLDERS'
+ rd.rdoc_dir = 'doc'
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/bin
+END
+coderay_stylesheet
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/bin/coderay_stylesheet
+END
+coderay
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/bin/coderay
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,96 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/bin
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+coderay_stylesheet
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+b20628204e37bb6fd444b1f1992d2c1a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+93
+
+coderay
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+db4ee9313184e2922a606b55ff92f4f7
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1975
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,86 @@
+#!/usr/bin/env ruby
+# CodeRay Executable
+#
+# Version: 0.2
+# Author: murphy
+
+require 'coderay'
+
+if ARGV.empty?
+ $stderr.puts <<-USAGE
+CodeRay #{CodeRay::VERSION} (http://coderay.rubychan.de)
+
+Usage:
+ coderay file [-]
+ coderay - [-] [< file] [> output]
+
+Defaults:
+ lang: based on file extension
+ format: ANSI colorized output for terminal, HTML page for files
+
+Examples:
+ coderay foo.rb # colorized output to terminal, based on file extension
+ coderay foo.rb -loc # print LOC count, based on file extension and format
+ coderay foo.rb > foo.html # HTML page output to file, based on extension
+ coderay -ruby < foo.rb # colorized output to terminal, based on lang
+ coderay -ruby -loc < foo.rb # print LOC count, based on lang
+ coderay -ruby -page foo.rb # HTML page output to terminal, based on lang and format
+ coderay -ruby -page foo.rb > foo.html # HTML page output to file, based on lang and format
+ USAGE
+end
+
+first, second = ARGV
+
+def read
+ file = ARGV.grep(/^(?!-)/).last
+ if file
+ if File.exist?(file)
+ File.read file
+ else
+ $stderr.puts "No such file: #{file}"
+ end
+ else
+ $stdin.read
+ end
+end
+
+if first
+ if first[/-(\w+)/] == first
+ lang = $1
+ input = read
+ tokens = :scan
+ else
+ file = first
+ unless File.exist? file
+ $stderr.puts "No such file: #{file}"
+ exit 2
+ end
+ tokens = CodeRay.scan_file file
+ end
+else
+ $stderr.puts 'No lang/file given.'
+ exit 1
+end
+
+if second
+ if second[/-(\w+)/] == second
+ format = $1.to_sym
+ else
+ raise 'invalid format (must be -xxx)'
+ end
+else
+ if $stdout.tty?
+ format = :term
+ else
+ $stderr.puts 'No format given; setting to default (HTML Page).'
+ format = :page
+ end
+end
+
+if tokens == :scan
+ output = CodeRay::Duo[lang => format].highlight input
+else
+ output = tokens.encode format
+end
+out = $stdout
+out.puts output
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay_stylesheet.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/.svn/text-base/coderay_stylesheet.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+require 'coderay'
+
+puts CodeRay::Encoders[:html]::CSS.new.stylesheet
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/coderay
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/coderay Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,86 @@
+#!/usr/bin/env ruby
+# CodeRay Executable
+#
+# Version: 0.2
+# Author: murphy
+
+require 'coderay'
+
+if ARGV.empty?
+ $stderr.puts <<-USAGE
+CodeRay #{CodeRay::VERSION} (http://coderay.rubychan.de)
+
+Usage:
+ coderay file [-]
+ coderay - [-] [< file] [> output]
+
+Defaults:
+ lang: based on file extension
+ format: ANSI colorized output for terminal, HTML page for files
+
+Examples:
+ coderay foo.rb # colorized output to terminal, based on file extension
+ coderay foo.rb -loc # print LOC count, based on file extension and format
+ coderay foo.rb > foo.html # HTML page output to file, based on extension
+ coderay -ruby < foo.rb # colorized output to terminal, based on lang
+ coderay -ruby -loc < foo.rb # print LOC count, based on lang
+ coderay -ruby -page foo.rb # HTML page output to terminal, based on lang and format
+ coderay -ruby -page foo.rb > foo.html # HTML page output to file, based on lang and format
+ USAGE
+end
+
+first, second = ARGV
+
+def read
+ file = ARGV.grep(/^(?!-)/).last
+ if file
+ if File.exist?(file)
+ File.read file
+ else
+ $stderr.puts "No such file: #{file}"
+ end
+ else
+ $stdin.read
+ end
+end
+
+if first
+ if first[/-(\w+)/] == first
+ lang = $1
+ input = read
+ tokens = :scan
+ else
+ file = first
+ unless File.exist? file
+ $stderr.puts "No such file: #{file}"
+ exit 2
+ end
+ tokens = CodeRay.scan_file file
+ end
+else
+ $stderr.puts 'No lang/file given.'
+ exit 1
+end
+
+if second
+ if second[/-(\w+)/] == second
+ format = $1.to_sym
+ else
+ raise 'invalid format (must be -xxx)'
+ end
+else
+ if $stdout.tty?
+ format = :term
+ else
+ $stderr.puts 'No format given; setting to default (HTML Page).'
+ format = :page
+ end
+end
+
+if tokens == :scan
+ output = CodeRay::Duo[lang => format].highlight input
+else
+ output = tokens.encode format
+end
+out = $stdout
+out.puts output
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/bin/coderay_stylesheet
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/bin/coderay_stylesheet Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+require 'coderay'
+
+puts CodeRay::Encoders[:html]::CSS.new.stylesheet
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib
+END
+coderay.rb
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay.rb
+END
+README
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/README
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,99 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+coderay
+dir
+
+coderay.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+30374cf2e229cc996eaba18502af97c5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10050
+
+README
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+046bf12ae0bcbb0b55fc3c4c993680d2
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5065
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/.svn/text-base/README.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/.svn/text-base/README.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,134 @@
+= CodeRay
+
+[- Tired of blue'n'gray? Try the original version of this documentation on
+coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
+
+== About
+CodeRay is a Ruby library for syntax highlighting.
+
+Syntax highlighting means: You put your code in, and you get it back colored;
+Keywords, strings, floats, comments - all in different colors.
+And with line numbers.
+
+*Syntax* *Highlighting*...
+* makes code easier to read and maintain
+* lets you detect syntax errors faster
+* helps you to understand the syntax of a language
+* looks nice
+* is what everybody should have on their website
+* solves all your problems and makes the girls run after you
+
+Version: 0.9.7
+Author:: murphy (Kornelius Kalnbach)
+Contact:: murphy rubychan de
+Website:: coderay.rubychan.de[http://coderay.rubychan.de]
+License:: GNU LGPL; see LICENSE file in the main directory.
+
+== Installation
+
+You need RubyGems[http://rubyforge.org/frs/?group_id=126].
+
+ % gem install coderay
+
+
+=== Dependencies
+
+CodeRay needs Ruby 1.8.6 or later. It also runs with Ruby 1.9.1+ and JRuby 1.1+.
+
+
+== Example Usage
+(Forgive me, but this is not highlighted.)
+
+ require 'coderay'
+
+ tokens = CodeRay.scan "puts 'Hello, world!'", :ruby
+ page = tokens.html :line_numbers => :inline, :wrap => :page
+ puts page
+
+
+== Documentation
+
+See CodeRay.
+
+Please report errors in this documentation to .
+
+
+== Credits
+
+=== Special Thanks to
+
+* licenser (Heinz N. Gies) for ending my QBasic career, inventing the Coder
+ project and the input/output plugin system.
+ CodeRay would not exist without him.
+* bovi (Daniel Bovensiepen) for helping me out on various occasions.
+
+=== Thanks to
+
+* Caleb Clausen for writing RubyLexer (see
+ http://rubyforge.org/projects/rubylexer) and lots of very interesting mail
+ traffic
+* birkenfeld (Georg Brandl) and mitsuhiku (Arnim Ronacher) for PyKleur, now pygments.
+ You guys rock!
+* Jamis Buck for writing Syntax (see http://rubyforge.org/projects/syntax)
+ I got some useful ideas from it.
+* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
+ coding CodeRay, but also gave me a wonderful target to reach for the Ruby
+ scanner.
+* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
+* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
+* Dethix from ruby-mine.de
+* zickzackw
+* Dookie (who is no longer with us...) and Leonidas from http://www.python-forum.de
+* Andreas Schwarz for finding out that CaseIgnoringWordList was not case
+ ignoring! Such things really make you write tests.
+* closure for the first version of the Scheme scanner.
+* Stefan Walk for the first version of the JavaScript and PHP scanners.
+* Josh Goebel for another version of the JavaScript scanner, a SQL and a Diff scanner.
+* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
+* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
+* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
+* Andreas Neuhaus for pointing out a markup bug in coderay/for_redcloth.
+* 0xf30fc7 for the FileType patch concerning Delphi file extensions.
+* The folks at redmine.org - thank you for using and fixing CodeRay!
+* Keith Pitt for his SQL scanners
+* Rob Aldred for the terminal encoder
+* Trans for pointing out $DEBUG dependencies
+* Flameeyes for finding that Term::ANSIColor was obsolete
+* Etienne Massip for reporting a serious bug in JavaScript scanner
+* matz and all Ruby gods and gurus
+* The inventors of: the computer, the internet, the true color display, HTML &
+ CSS, VIM, Ruby, pizza, microwaves, guitars, scouting, programming, anime,
+ manga, coke and green ice tea.
+
+Where would we be without all those people?
+
+=== Created using
+
+* Ruby[http://ruby-lang.org/]
+* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
+ Triella, born Rico (my new MacBook); as well as
+ Seras and Hikari (my PCs)
+* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
+ VIM[http://vim.org] and TextMate[http://macromates.com]
+* Subversion[http://subversion.tigris.org/]
+* Redmine[http://redmine.org/]
+* Firefox[http://www.mozilla.org/products/firefox/],
+ Firebug[http://getfirebug.com/], Safari[http://www.apple.com/safari/], and
+ Thunderbird[http://www.mozilla.org/products/thunderbird/]
+* RubyGems[http://docs.rubygems.org/] and Rake[http://rake.rubyforge.org/]
+* TortoiseSVN[http://tortoisesvn.tigris.org/] using Apache via
+ XAMPP[http://www.apachefriends.org/en/xampp.html]
+* RDoc (though I'm quite unsatisfied with it)
+* Microsoft Windows (yes, I confess!) and MacOS X
+* GNUWin32, MinGW and some other tools to make the shell under windows a bit
+ less useless
+* Term::ANSIColor[http://term-ansicolor.rubyforge.org/]
+* PLEAC[http://pleac.sourceforge.net/] code examples
+
+=== Free
+
+* As you can see, CodeRay was created under heavy use of *free* software.
+* So CodeRay is also *free*.
+* If you use CodeRay to create software, think about making this software
+ *free*, too.
+* Thanks :)
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/.svn/text-base/coderay.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/.svn/text-base/coderay.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,322 @@
+# = CodeRay Library
+#
+# CodeRay is a Ruby library for syntax highlighting.
+#
+# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
+# fast and efficient.
+#
+# See README.
+#
+# It consists mainly of
+# * the main engine: CodeRay (Scanners::Scanner, Tokens/TokenStream, Encoders::Encoder), PluginHost
+# * the scanners in CodeRay::Scanners
+# * the encoders in CodeRay::Encoders
+#
+# Here's a fancy graphic to light up this gray docu:
+#
+# http://cycnus.de/raindark/coderay/scheme.png
+#
+# == Documentation
+#
+# See CodeRay, Encoders, Scanners, Tokens.
+#
+# == Usage
+#
+# Remember you need RubyGems to use CodeRay, unless you have it in your load path. Run Ruby with
+# -rubygems option if required.
+#
+# === Highlight Ruby code in a string as html
+#
+# require 'coderay'
+# print CodeRay.scan('puts "Hello, world!"', :ruby).html
+#
+# # prints something like this:
+# puts "Hello, world!"
+#
+#
+# === Highlight C code from a file in a html div
+#
+# require 'coderay'
+# print CodeRay.scan(File.read('ruby.h'), :c).div
+# print CodeRay.scan_file('ruby.h').html.div
+#
+# You can include this div in your page. The used CSS styles can be printed with
+#
+# % coderay_stylesheet
+#
+# === Highlight without typing too much
+#
+# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
+#
+# % ruby -rubygems /path/to/coderay/coderay.rb > example.html
+#
+# and look at the file it created in your browser.
+#
+# = CodeRay Module
+#
+# The CodeRay module provides convenience methods for the engine.
+#
+# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
+# simply lower-case symbols, like :python or :html.
+# * All methods take an optional hash as last parameter, +options+, that is send to
+# the Encoder / Scanner.
+# * Input and language are always sorted in this order: +code+, +lang+.
+# (This is in alphabetical order, if you need a mnemonic ;)
+#
+# You should be able to highlight everything you want just using these methods;
+# so there is no need to dive into CodeRay's deep class hierarchy.
+#
+# The examples in the demo directory demonstrate common cases using this interface.
+#
+# = Basic Access Ways
+#
+# Read this to get a general view what CodeRay provides.
+#
+# == Scanning
+#
+# Scanning means analysing an input string, splitting it up into Tokens.
+# Each Token knows about what type it is: string, comment, class name, etc.
+#
+# Each +lang+ (language) has its own Scanner; for example, :ruby code is
+# handled by CodeRay::Scanners::Ruby.
+#
+# CodeRay.scan:: Scan a string in a given language into Tokens.
+# This is the most common method to use.
+# CodeRay.scan_file:: Scan a file and guess the language using FileType.
+#
+# The Tokens object you get from these methods can encode itself; see Tokens.
+#
+# == Encoding
+#
+# Encoding means compiling Tokens into an output. This can be colored HTML or
+# LaTeX, a textual statistic or just the number of non-whitespace tokens.
+#
+# Each Encoder provides output in a specific +format+, so you select Encoders via
+# formats like :html or :statistic.
+#
+# CodeRay.encode:: Scan and encode a string in a given language.
+# CodeRay.encode_tokens:: Encode the given tokens.
+# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
+#
+# == Streaming
+#
+# Streaming saves RAM by running Scanner and Encoder in some sort of
+# pipe mode; see TokenStream.
+#
+# CodeRay.scan_stream:: Scan in stream mode.
+#
+# == All-in-One Encoding
+#
+# CodeRay.encode:: Highlight a string with a given input and output format.
+#
+# == Instanciating
+#
+# You can use an Encoder instance to highlight multiple inputs. This way, the setup
+# for this Encoder must only be done once.
+#
+# CodeRay.encoder:: Create an Encoder instance with format and options.
+# CodeRay.scanner:: Create an Scanner instance for lang, with '' as default code.
+#
+# To make use of CodeRay.scanner, use CodeRay::Scanner::code=.
+#
+# The scanning methods provide more flexibility; we recommend to use these.
+#
+# == Reusing Scanners and Encoders
+#
+# If you want to re-use scanners and encoders (because that is faster), see
+# CodeRay::Duo for the most convenient (and recommended) interface.
+module CodeRay
+
+ $CODERAY_DEBUG ||= false
+
+ # Version: Major.Minor.Teeny[.Revision]
+ # Major: 0 for pre-stable, 1 for stable
+ # Minor: feature milestone
+ # Teeny: development state, 0 for pre-release
+ # Revision: Subversion Revision number (generated on rake gem:make)
+ VERSION = '0.9.7'
+
+ require 'coderay/tokens'
+ require 'coderay/token_classes'
+ require 'coderay/scanner'
+ require 'coderay/encoder'
+ require 'coderay/duo'
+ require 'coderay/style'
+
+
+ class << self
+
+ # Scans the given +code+ (a String) with the Scanner for +lang+.
+ #
+ # This is a simple way to use CodeRay. Example:
+ # require 'coderay'
+ # page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
+ #
+ # See also demo/demo_simple.
+ def scan code, lang, options = {}, &block
+ scanner = Scanners[lang].new code, options, &block
+ scanner.tokenize
+ end
+
+ # Scans +filename+ (a path to a code file) with the Scanner for +lang+.
+ #
+ # If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
+ # determine it. If it cannot find out what type it is, it uses
+ # CodeRay::Scanners::Plaintext.
+ #
+ # Calls CodeRay.scan.
+ #
+ # Example:
+ # require 'coderay'
+ # page = CodeRay.scan_file('some_c_code.c').html
+ def scan_file filename, lang = :auto, options = {}, &block
+ file = IO.read filename
+ if lang == :auto
+ require 'coderay/helpers/file_type'
+ lang = FileType.fetch filename, :plaintext, true
+ end
+ scan file, lang, options = {}, &block
+ end
+
+ # Scan the +code+ (a string) with the scanner for +lang+.
+ #
+ # Calls scan.
+ #
+ # See CodeRay.scan.
+ def scan_stream code, lang, options = {}, &block
+ options[:stream] = true
+ scan code, lang, options, &block
+ end
+
+ # Encode a string in Streaming mode.
+ #
+ # This starts scanning +code+ with the the Scanner for +lang+
+ # while encodes the output with the Encoder for +format+.
+ # +options+ will be passed to the Encoder.
+ #
+ # See CodeRay::Encoder.encode_stream
+ def encode_stream code, lang, format, options = {}
+ encoder(format, options).encode_stream code, lang, options
+ end
+
+ # Encode a string.
+ #
+ # This scans +code+ with the the Scanner for +lang+ and then
+ # encodes it with the Encoder for +format+.
+ # +options+ will be passed to the Encoder.
+ #
+ # See CodeRay::Encoder.encode
+ def encode code, lang, format, options = {}
+ encoder(format, options).encode code, lang, options
+ end
+
+ # Highlight a string into a HTML .
+ #
+ # CSS styles use classes, so you have to include a stylesheet
+ # in your output.
+ #
+ # See encode.
+ def highlight code, lang, options = { :css => :class }, format = :div
+ encode code, lang, format, options
+ end
+
+ # Encode pre-scanned Tokens.
+ # Use this together with CodeRay.scan:
+ #
+ # require 'coderay'
+ #
+ # # Highlight a short Ruby code example in a HTML span
+ # tokens = CodeRay.scan '1 + 2', :ruby
+ # puts CodeRay.encode_tokens(tokens, :span)
+ #
+ def encode_tokens tokens, format, options = {}
+ encoder(format, options).encode_tokens tokens, options
+ end
+
+ # Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
+ #
+ # See CodeRay.scan_file.
+ # Notice that the second argument is the output +format+, not the input language.
+ #
+ # Example:
+ # require 'coderay'
+ # page = CodeRay.encode_file 'some_c_code.c', :html
+ def encode_file filename, format, options = {}
+ tokens = scan_file filename, :auto, get_scanner_options(options)
+ encode_tokens tokens, format, options
+ end
+
+ # Highlight a file into a HTML .
+ #
+ # CSS styles use classes, so you have to include a stylesheet
+ # in your output.
+ #
+ # See encode.
+ def highlight_file filename, options = { :css => :class }, format = :div
+ encode_file filename, format, options
+ end
+
+ # Finds the Encoder class for +format+ and creates an instance, passing
+ # +options+ to it.
+ #
+ # Example:
+ # require 'coderay'
+ #
+ # stats = CodeRay.encoder(:statistic)
+ # stats.encode("puts 17 + 4\n", :ruby)
+ #
+ # puts '%d out of %d tokens have the kind :integer.' % [
+ # stats.type_stats[:integer].count,
+ # stats.real_token_count
+ # ]
+ # #-> 2 out of 4 tokens have the kind :integer.
+ def encoder format, options = {}
+ Encoders[format].new options
+ end
+
+ # Finds the Scanner class for +lang+ and creates an instance, passing
+ # +options+ to it.
+ #
+ # See Scanner.new.
+ def scanner lang, options = {}
+ Scanners[lang].new '', options
+ end
+
+ # Extract the options for the scanner from the +options+ hash.
+ #
+ # Returns an empty Hash if :scanner_options is not set.
+ #
+ # This is used if a method like CodeRay.encode has to provide options
+ # for Encoder _and_ scanner.
+ def get_scanner_options options
+ options.fetch :scanner_options, {}
+ end
+
+ end
+
+ # This Exception is raised when you try to stream with something that is not
+ # capable of streaming.
+ class NotStreamableError < Exception
+ def initialize obj
+ @obj = obj
+ end
+
+ def to_s
+ '%s is not Streamable!' % @obj.class
+ end
+ end
+
+ # A dummy module that is included by subclasses of CodeRay::Scanner an CodeRay::Encoder
+ # to show that they are able to handle streams.
+ module Streamable
+ end
+
+end
+
+# Run a test script.
+if $0 == __FILE__
+ $stderr.print 'Press key to print demo.'; gets
+ # Just use this file as an example of Ruby code.
+ code = File.read(__FILE__)[/module CodeRay.*/m]
+ print CodeRay.scan(code, :ruby).html
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/README Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,134 @@
+= CodeRay
+
+[- Tired of blue'n'gray? Try the original version of this documentation on
+coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
+
+== About
+CodeRay is a Ruby library for syntax highlighting.
+
+Syntax highlighting means: You put your code in, and you get it back colored;
+Keywords, strings, floats, comments - all in different colors.
+And with line numbers.
+
+*Syntax* *Highlighting*...
+* makes code easier to read and maintain
+* lets you detect syntax errors faster
+* helps you to understand the syntax of a language
+* looks nice
+* is what everybody should have on their website
+* solves all your problems and makes the girls run after you
+
+Version: 0.9.7
+Author:: murphy (Kornelius Kalnbach)
+Contact:: murphy rubychan de
+Website:: coderay.rubychan.de[http://coderay.rubychan.de]
+License:: GNU LGPL; see LICENSE file in the main directory.
+
+== Installation
+
+You need RubyGems[http://rubyforge.org/frs/?group_id=126].
+
+ % gem install coderay
+
+
+=== Dependencies
+
+CodeRay needs Ruby 1.8.6 or later. It also runs with Ruby 1.9.1+ and JRuby 1.1+.
+
+
+== Example Usage
+(Forgive me, but this is not highlighted.)
+
+ require 'coderay'
+
+ tokens = CodeRay.scan "puts 'Hello, world!'", :ruby
+ page = tokens.html :line_numbers => :inline, :wrap => :page
+ puts page
+
+
+== Documentation
+
+See CodeRay.
+
+Please report errors in this documentation to .
+
+
+== Credits
+
+=== Special Thanks to
+
+* licenser (Heinz N. Gies) for ending my QBasic career, inventing the Coder
+ project and the input/output plugin system.
+ CodeRay would not exist without him.
+* bovi (Daniel Bovensiepen) for helping me out on various occasions.
+
+=== Thanks to
+
+* Caleb Clausen for writing RubyLexer (see
+ http://rubyforge.org/projects/rubylexer) and lots of very interesting mail
+ traffic
+* birkenfeld (Georg Brandl) and mitsuhiku (Arnim Ronacher) for PyKleur, now pygments.
+ You guys rock!
+* Jamis Buck for writing Syntax (see http://rubyforge.org/projects/syntax)
+ I got some useful ideas from it.
+* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
+ coding CodeRay, but also gave me a wonderful target to reach for the Ruby
+ scanner.
+* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
+* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
+* Dethix from ruby-mine.de
+* zickzackw
+* Dookie (who is no longer with us...) and Leonidas from http://www.python-forum.de
+* Andreas Schwarz for finding out that CaseIgnoringWordList was not case
+ ignoring! Such things really make you write tests.
+* closure for the first version of the Scheme scanner.
+* Stefan Walk for the first version of the JavaScript and PHP scanners.
+* Josh Goebel for another version of the JavaScript scanner, a SQL and a Diff scanner.
+* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
+* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
+* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
+* Andreas Neuhaus for pointing out a markup bug in coderay/for_redcloth.
+* 0xf30fc7 for the FileType patch concerning Delphi file extensions.
+* The folks at redmine.org - thank you for using and fixing CodeRay!
+* Keith Pitt for his SQL scanners
+* Rob Aldred for the terminal encoder
+* Trans for pointing out $DEBUG dependencies
+* Flameeyes for finding that Term::ANSIColor was obsolete
+* Etienne Massip for reporting a serious bug in JavaScript scanner
+* matz and all Ruby gods and gurus
+* The inventors of: the computer, the internet, the true color display, HTML &
+ CSS, VIM, Ruby, pizza, microwaves, guitars, scouting, programming, anime,
+ manga, coke and green ice tea.
+
+Where would we be without all those people?
+
+=== Created using
+
+* Ruby[http://ruby-lang.org/]
+* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
+ Triella, born Rico (my new MacBook); as well as
+ Seras and Hikari (my PCs)
+* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
+ VIM[http://vim.org] and TextMate[http://macromates.com]
+* Subversion[http://subversion.tigris.org/]
+* Redmine[http://redmine.org/]
+* Firefox[http://www.mozilla.org/products/firefox/],
+ Firebug[http://getfirebug.com/], Safari[http://www.apple.com/safari/], and
+ Thunderbird[http://www.mozilla.org/products/thunderbird/]
+* RubyGems[http://docs.rubygems.org/] and Rake[http://rake.rubyforge.org/]
+* TortoiseSVN[http://tortoisesvn.tigris.org/] using Apache via
+ XAMPP[http://www.apachefriends.org/en/xampp.html]
+* RDoc (though I'm quite unsatisfied with it)
+* Microsoft Windows (yes, I confess!) and MacOS X
+* GNUWin32, MinGW and some other tools to make the shell under windows a bit
+ less useless
+* Term::ANSIColor[http://term-ansicolor.rubyforge.org/]
+* PLEAC[http://pleac.sourceforge.net/] code examples
+
+=== Free
+
+* As you can see, CodeRay was created under heavy use of *free* software.
+* So CodeRay is also *free*.
+* If you use CodeRay to create software, think about making this software
+ *free*, too.
+* Thanks :)
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,322 @@
+# = CodeRay Library
+#
+# CodeRay is a Ruby library for syntax highlighting.
+#
+# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
+# fast and efficient.
+#
+# See README.
+#
+# It consists mainly of
+# * the main engine: CodeRay (Scanners::Scanner, Tokens/TokenStream, Encoders::Encoder), PluginHost
+# * the scanners in CodeRay::Scanners
+# * the encoders in CodeRay::Encoders
+#
+# Here's a fancy graphic to light up this gray docu:
+#
+# http://cycnus.de/raindark/coderay/scheme.png
+#
+# == Documentation
+#
+# See CodeRay, Encoders, Scanners, Tokens.
+#
+# == Usage
+#
+# Remember you need RubyGems to use CodeRay, unless you have it in your load path. Run Ruby with
+# -rubygems option if required.
+#
+# === Highlight Ruby code in a string as html
+#
+# require 'coderay'
+# print CodeRay.scan('puts "Hello, world!"', :ruby).html
+#
+# # prints something like this:
+# puts "Hello, world!"
+#
+#
+# === Highlight C code from a file in a html div
+#
+# require 'coderay'
+# print CodeRay.scan(File.read('ruby.h'), :c).div
+# print CodeRay.scan_file('ruby.h').html.div
+#
+# You can include this div in your page. The used CSS styles can be printed with
+#
+# % coderay_stylesheet
+#
+# === Highlight without typing too much
+#
+# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
+#
+# % ruby -rubygems /path/to/coderay/coderay.rb > example.html
+#
+# and look at the file it created in your browser.
+#
+# = CodeRay Module
+#
+# The CodeRay module provides convenience methods for the engine.
+#
+# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
+# simply lower-case symbols, like :python or :html.
+# * All methods take an optional hash as last parameter, +options+, that is send to
+# the Encoder / Scanner.
+# * Input and language are always sorted in this order: +code+, +lang+.
+# (This is in alphabetical order, if you need a mnemonic ;)
+#
+# You should be able to highlight everything you want just using these methods;
+# so there is no need to dive into CodeRay's deep class hierarchy.
+#
+# The examples in the demo directory demonstrate common cases using this interface.
+#
+# = Basic Access Ways
+#
+# Read this to get a general view what CodeRay provides.
+#
+# == Scanning
+#
+# Scanning means analysing an input string, splitting it up into Tokens.
+# Each Token knows about what type it is: string, comment, class name, etc.
+#
+# Each +lang+ (language) has its own Scanner; for example, :ruby code is
+# handled by CodeRay::Scanners::Ruby.
+#
+# CodeRay.scan:: Scan a string in a given language into Tokens.
+# This is the most common method to use.
+# CodeRay.scan_file:: Scan a file and guess the language using FileType.
+#
+# The Tokens object you get from these methods can encode itself; see Tokens.
+#
+# == Encoding
+#
+# Encoding means compiling Tokens into an output. This can be colored HTML or
+# LaTeX, a textual statistic or just the number of non-whitespace tokens.
+#
+# Each Encoder provides output in a specific +format+, so you select Encoders via
+# formats like :html or :statistic.
+#
+# CodeRay.encode:: Scan and encode a string in a given language.
+# CodeRay.encode_tokens:: Encode the given tokens.
+# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
+#
+# == Streaming
+#
+# Streaming saves RAM by running Scanner and Encoder in some sort of
+# pipe mode; see TokenStream.
+#
+# CodeRay.scan_stream:: Scan in stream mode.
+#
+# == All-in-One Encoding
+#
+# CodeRay.encode:: Highlight a string with a given input and output format.
+#
+# == Instanciating
+#
+# You can use an Encoder instance to highlight multiple inputs. This way, the setup
+# for this Encoder must only be done once.
+#
+# CodeRay.encoder:: Create an Encoder instance with format and options.
+# CodeRay.scanner:: Create an Scanner instance for lang, with '' as default code.
+#
+# To make use of CodeRay.scanner, use CodeRay::Scanner::code=.
+#
+# The scanning methods provide more flexibility; we recommend to use these.
+#
+# == Reusing Scanners and Encoders
+#
+# If you want to re-use scanners and encoders (because that is faster), see
+# CodeRay::Duo for the most convenient (and recommended) interface.
+module CodeRay
+
+ $CODERAY_DEBUG ||= false
+
+ # Version: Major.Minor.Teeny[.Revision]
+ # Major: 0 for pre-stable, 1 for stable
+ # Minor: feature milestone
+ # Teeny: development state, 0 for pre-release
+ # Revision: Subversion Revision number (generated on rake gem:make)
+ VERSION = '0.9.7'
+
+ require 'coderay/tokens'
+ require 'coderay/token_classes'
+ require 'coderay/scanner'
+ require 'coderay/encoder'
+ require 'coderay/duo'
+ require 'coderay/style'
+
+
+ class << self
+
+ # Scans the given +code+ (a String) with the Scanner for +lang+.
+ #
+ # This is a simple way to use CodeRay. Example:
+ # require 'coderay'
+ # page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
+ #
+ # See also demo/demo_simple.
+ def scan code, lang, options = {}, &block
+ scanner = Scanners[lang].new code, options, &block
+ scanner.tokenize
+ end
+
+ # Scans +filename+ (a path to a code file) with the Scanner for +lang+.
+ #
+ # If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
+ # determine it. If it cannot find out what type it is, it uses
+ # CodeRay::Scanners::Plaintext.
+ #
+ # Calls CodeRay.scan.
+ #
+ # Example:
+ # require 'coderay'
+ # page = CodeRay.scan_file('some_c_code.c').html
+ def scan_file filename, lang = :auto, options = {}, &block
+ file = IO.read filename
+ if lang == :auto
+ require 'coderay/helpers/file_type'
+ lang = FileType.fetch filename, :plaintext, true
+ end
+ scan file, lang, options = {}, &block
+ end
+
+ # Scan the +code+ (a string) with the scanner for +lang+.
+ #
+ # Calls scan.
+ #
+ # See CodeRay.scan.
+ def scan_stream code, lang, options = {}, &block
+ options[:stream] = true
+ scan code, lang, options, &block
+ end
+
+ # Encode a string in Streaming mode.
+ #
+ # This starts scanning +code+ with the the Scanner for +lang+
+ # while encodes the output with the Encoder for +format+.
+ # +options+ will be passed to the Encoder.
+ #
+ # See CodeRay::Encoder.encode_stream
+ def encode_stream code, lang, format, options = {}
+ encoder(format, options).encode_stream code, lang, options
+ end
+
+ # Encode a string.
+ #
+ # This scans +code+ with the the Scanner for +lang+ and then
+ # encodes it with the Encoder for +format+.
+ # +options+ will be passed to the Encoder.
+ #
+ # See CodeRay::Encoder.encode
+ def encode code, lang, format, options = {}
+ encoder(format, options).encode code, lang, options
+ end
+
+ # Highlight a string into a HTML .
+ #
+ # CSS styles use classes, so you have to include a stylesheet
+ # in your output.
+ #
+ # See encode.
+ def highlight code, lang, options = { :css => :class }, format = :div
+ encode code, lang, format, options
+ end
+
+ # Encode pre-scanned Tokens.
+ # Use this together with CodeRay.scan:
+ #
+ # require 'coderay'
+ #
+ # # Highlight a short Ruby code example in a HTML span
+ # tokens = CodeRay.scan '1 + 2', :ruby
+ # puts CodeRay.encode_tokens(tokens, :span)
+ #
+ def encode_tokens tokens, format, options = {}
+ encoder(format, options).encode_tokens tokens, options
+ end
+
+ # Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
+ #
+ # See CodeRay.scan_file.
+ # Notice that the second argument is the output +format+, not the input language.
+ #
+ # Example:
+ # require 'coderay'
+ # page = CodeRay.encode_file 'some_c_code.c', :html
+ def encode_file filename, format, options = {}
+ tokens = scan_file filename, :auto, get_scanner_options(options)
+ encode_tokens tokens, format, options
+ end
+
+ # Highlight a file into a HTML .
+ #
+ # CSS styles use classes, so you have to include a stylesheet
+ # in your output.
+ #
+ # See encode.
+ def highlight_file filename, options = { :css => :class }, format = :div
+ encode_file filename, format, options
+ end
+
+ # Finds the Encoder class for +format+ and creates an instance, passing
+ # +options+ to it.
+ #
+ # Example:
+ # require 'coderay'
+ #
+ # stats = CodeRay.encoder(:statistic)
+ # stats.encode("puts 17 + 4\n", :ruby)
+ #
+ # puts '%d out of %d tokens have the kind :integer.' % [
+ # stats.type_stats[:integer].count,
+ # stats.real_token_count
+ # ]
+ # #-> 2 out of 4 tokens have the kind :integer.
+ def encoder format, options = {}
+ Encoders[format].new options
+ end
+
+ # Finds the Scanner class for +lang+ and creates an instance, passing
+ # +options+ to it.
+ #
+ # See Scanner.new.
+ def scanner lang, options = {}
+ Scanners[lang].new '', options
+ end
+
+ # Extract the options for the scanner from the +options+ hash.
+ #
+ # Returns an empty Hash if :scanner_options is not set.
+ #
+ # This is used if a method like CodeRay.encode has to provide options
+ # for Encoder _and_ scanner.
+ def get_scanner_options options
+ options.fetch :scanner_options, {}
+ end
+
+ end
+
+ # This Exception is raised when you try to stream with something that is not
+ # capable of streaming.
+ class NotStreamableError < Exception
+ def initialize obj
+ @obj = obj
+ end
+
+ def to_s
+ '%s is not Streamable!' % @obj.class
+ end
+ end
+
+ # A dummy module that is included by subclasses of CodeRay::Scanner an CodeRay::Encoder
+ # to show that they are able to handle streams.
+ module Streamable
+ end
+
+end
+
+# Run a test script.
+if $0 == __FILE__
+ $stderr.print 'Press key to print demo.'; gets
+ # Just use this file as an example of Ruby code.
+ code = File.read(__FILE__)[/module CodeRay.*/m]
+ print CodeRay.scan(code, :ruby).html
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,47 @@
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay
+END
+token_classes.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/token_classes.rb
+END
+encoder.rb
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoder.rb
+END
+style.rb
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/style.rb
+END
+tokens.rb
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/tokens.rb
+END
+duo.rb
+K 25
+svn:wc:ra_dav:version-url
+V 69
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/duo.rb
+END
+scanner.rb
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanner.rb
+END
+for_redcloth.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/for_redcloth.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,278 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+token_classes.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+4f17211f3874899049db6111ef282a3b
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2287
+
+encoder.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+f0ead48eaa86c8b4d6a5587e9b5450ca
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6565
+
+encoders
+dir
+
+helpers
+dir
+
+style.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+409fa492a5470a8bed5ae969f270decf
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+293
+
+styles
+dir
+
+tokens.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+d45c9094dd69e538d44b7099955b9fda
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10325
+
+duo.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+b33e5b83e354c09655f46d37ae662f64
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2549
+
+scanner.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+ec67701318cc8701d0554802f07ee6e1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8165
+
+scanners
+dir
+
+for_redcloth.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+d216c2f1c7a84a23ce3feff0b1358d60
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3001
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/duo.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/duo.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,85 @@
+module CodeRay
+
+ # = Duo
+ #
+ # A Duo is a convenient way to use CodeRay. You just create a Duo,
+ # giving it a lang (language of the input code) and a format (desired
+ # output format), and call Duo#highlight with the code.
+ #
+ # Duo makes it easy to re-use both scanner and encoder for a repetitive
+ # task. It also provides a very easy interface syntax:
+ #
+ # require 'coderay'
+ # CodeRay::Duo[:python, :div].highlight 'import this'
+ #
+ # Until you want to do uncommon things with CodeRay, I recommend to use
+ # this method, since it takes care of everything.
+ class Duo
+
+ attr_accessor :lang, :format, :options
+
+ # Create a new Duo, holding a lang and a format to highlight code.
+ #
+ # simple:
+ # CodeRay::Duo[:ruby, :page].highlight 'bla 42'
+ #
+ # streaming:
+ # CodeRay::Duo[:ruby, :page].highlight 'bar 23', :stream => true
+ #
+ # with options:
+ # CodeRay::Duo[:ruby, :html, :hint => :debug].highlight '????::??'
+ #
+ # alternative syntax without options:
+ # CodeRay::Duo[:ruby => :statistic].encode 'class << self; end'
+ #
+ # alternative syntax with options:
+ # CodeRay::Duo[{ :ruby => :statistic }, :do => :something].encode 'abc'
+ #
+ # The options are forwarded to scanner and encoder
+ # (see CodeRay.get_scanner_options).
+ def initialize lang = nil, format = nil, options = {}
+ if format == nil and lang.is_a? Hash and lang.size == 1
+ @lang = lang.keys.first
+ @format = lang[@lang]
+ else
+ @lang = lang
+ @format = format
+ end
+ @options = options
+ end
+
+ class << self
+ # To allow calls like Duo[:ruby, :html].highlight.
+ alias [] new
+ end
+
+ # The scanner of the duo. Only created once.
+ def scanner
+ @scanner ||= CodeRay.scanner @lang, CodeRay.get_scanner_options(@options)
+ end
+
+ # The encoder of the duo. Only created once.
+ def encoder
+ @encoder ||= CodeRay.encoder @format, @options
+ end
+
+ # Tokenize and highlight the code using +scanner+ and +encoder+.
+ #
+ # If the :stream option is set, the Duo will go into streaming mode,
+ # saving memory for the cost of time.
+ def encode code, options = { :stream => false }
+ stream = options.delete :stream
+ options = @options.merge options
+ if stream
+ encoder.encode_stream(code, @lang, options)
+ else
+ scanner.code = code
+ encoder.encode_tokens(scanner.tokenize, options)
+ end
+ end
+ alias highlight encode
+
+ end
+
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/encoder.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/encoder.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,213 @@
+module CodeRay
+
+ # This module holds the Encoder class and its subclasses.
+ # For example, the HTML encoder is named CodeRay::Encoders::HTML
+ # can be found in coderay/encoders/html.
+ #
+ # Encoders also provides methods and constants for the register
+ # mechanism and the [] method that returns the Encoder class
+ # belonging to the given format.
+ module Encoders
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'encoders'
+
+ # = Encoder
+ #
+ # The Encoder base class. Together with Scanner and
+ # Tokens, it forms the highlighting triad.
+ #
+ # Encoder instances take a Tokens object and do something with it.
+ #
+ # The most common Encoder is surely the HTML encoder
+ # (CodeRay::Encoders::HTML). It highlights the code in a colorful
+ # html page.
+ # If you want the highlighted code in a div or a span instead,
+ # use its subclasses Div and Span.
+ class Encoder
+ extend Plugin
+ plugin_host Encoders
+
+ attr_reader :token_stream
+
+ class << self
+
+ # Returns if the Encoder can be used in streaming mode.
+ def streamable?
+ is_a? Streamable
+ end
+
+ # If FILE_EXTENSION isn't defined, this method returns the
+ # downcase class name instead.
+ def const_missing sym
+ if sym == :FILE_EXTENSION
+ plugin_id
+ else
+ super
+ end
+ end
+
+ end
+
+ # Subclasses are to store their default options in this constant.
+ DEFAULT_OPTIONS = { :stream => false }
+
+ # The options you gave the Encoder at creating.
+ attr_accessor :options
+
+ # Creates a new Encoder.
+ # +options+ is saved and used for all encode operations, as long
+ # as you don't overwrite it there by passing additional options.
+ #
+ # Encoder objects provide three encode methods:
+ # - encode simply takes a +code+ string and a +lang+
+ # - encode_tokens expects a +tokens+ object instead
+ # - encode_stream is like encode, but uses streaming mode.
+ #
+ # Each method has an optional +options+ parameter. These are
+ # added to the options you passed at creation.
+ def initialize options = {}
+ @options = self.class::DEFAULT_OPTIONS.merge options
+ raise "I am only the basic Encoder class. I can't encode "\
+ "anything. :( Use my subclasses." if self.class == Encoder
+ end
+
+ # Encode a Tokens object.
+ def encode_tokens tokens, options = {}
+ options = @options.merge options
+ setup options
+ compile tokens, options
+ finish options
+ end
+
+ # Encode the given +code+ after tokenizing it using the Scanner
+ # for +lang+.
+ def encode code, lang, options = {}
+ options = @options.merge options
+ scanner_options = CodeRay.get_scanner_options(options)
+ tokens = CodeRay.scan code, lang, scanner_options
+ encode_tokens tokens, options
+ end
+
+ # You can use highlight instead of encode, if that seems
+ # more clear to you.
+ alias highlight encode
+
+ # Encode the given +code+ using the Scanner for +lang+ in
+ # streaming mode.
+ def encode_stream code, lang, options = {}
+ raise NotStreamableError, self unless kind_of? Streamable
+ options = @options.merge options
+ setup options
+ scanner_options = CodeRay.get_scanner_options options
+ @token_stream =
+ CodeRay.scan_stream code, lang, scanner_options, &self
+ finish options
+ end
+
+ # Behave like a proc. The token method is converted to a proc.
+ def to_proc
+ method(:token).to_proc
+ end
+
+ # Return the default file extension for outputs of this encoder.
+ def file_extension
+ self.class::FILE_EXTENSION
+ end
+
+ protected
+
+ # Called with merged options before encoding starts.
+ # Sets @out to an empty string.
+ #
+ # See the HTML Encoder for an example of option caching.
+ def setup options
+ @out = ''
+ end
+
+ # Called with +content+ and +kind+ of the currently scanned token.
+ # For simple scanners, it's enougth to implement this method.
+ #
+ # By default, it calls text_token or block_token, depending on
+ # whether +content+ is a String.
+ def token content, kind
+ encoded_token =
+ if content.is_a? ::String
+ text_token content, kind
+ elsif content.is_a? ::Symbol
+ block_token content, kind
+ else
+ raise 'Unknown token content type: %p' % [content]
+ end
+ append_encoded_token_to_output encoded_token
+ end
+
+ def append_encoded_token_to_output encoded_token
+ @out << encoded_token if encoded_token && defined?(@out) && @out
+ end
+
+ # Called for each text token ([text, kind]), where text is a String.
+ def text_token text, kind
+ end
+
+ # Called for each block (non-text) token ([action, kind]),
+ # where +action+ is a Symbol.
+ #
+ # Calls open_token, close_token, begin_line, and end_line according to
+ # the value of +action+.
+ def block_token action, kind
+ case action
+ when :open
+ open_token kind
+ when :close
+ close_token kind
+ when :begin_line
+ begin_line kind
+ when :end_line
+ end_line kind
+ else
+ raise 'unknown block action: %p' % action
+ end
+ end
+
+ # Called for each block token at the start of the block ([:open, kind]).
+ def open_token kind
+ end
+
+ # Called for each block token end of the block ([:close, kind]).
+ def close_token kind
+ end
+
+ # Called for each line token block at the start of the line ([:begin_line, kind]).
+ def begin_line kind
+ end
+
+ # Called for each line token block at the end of the line ([:end_line, kind]).
+ def end_line kind
+ end
+
+ # Called with merged options after encoding starts.
+ # The return value is the result of encoding, typically @out.
+ def finish options
+ @out
+ end
+
+ # Do the encoding.
+ #
+ # The already created +tokens+ object must be used; it can be a
+ # TokenStream or a Tokens object.
+ if RUBY_VERSION >= '1.9'
+ def compile tokens, options
+ for text, kind in tokens
+ token text, kind
+ end
+ end
+ else
+ def compile tokens, options
+ tokens.each(&self)
+ end
+ end
+
+ end
+
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/for_redcloth.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/for_redcloth.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,95 @@
+module CodeRay
+
+ # A little hack to enable CodeRay highlighting in RedCloth.
+ #
+ # Usage:
+ # require 'coderay'
+ # require 'coderay/for_redcloth'
+ # RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ #
+ # Make sure you have RedCloth 4.0.3 activated, for example by calling
+ # require 'rubygems'
+ # before RedCloth is loaded and before calling CodeRay.for_redcloth.
+ module ForRedCloth
+
+ def self.install
+ gem 'RedCloth', '>= 4.0.3' if defined? gem
+ require 'redcloth'
+ unless RedCloth::VERSION.to_s >= '4.0.3'
+ if defined? gem
+ raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later. ' +
+ "You have #{RedCloth::VERSION}. Please gem install RedCloth."
+ else
+ $".delete 'redcloth.rb' # sorry, but it works
+ require 'rubygems'
+ return install # retry
+ end
+ end
+ unless RedCloth::VERSION.to_s >= '4.2.2'
+ warn 'CodeRay.for_redcloth works best with RedCloth version 4.2.2 or later.'
+ end
+ RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
+ RedCloth::Formatters::HTML.module_eval do
+ def unescape(html)
+ replacements = {
+ '&' => '&',
+ '"' => '"',
+ '>' => '>',
+ '<' => '<',
+ }
+ html.gsub(/&(?:amp|quot|[gl]t);/) { |entity| replacements[entity] }
+ end
+ undef code, bc_open, bc_close, escape_pre
+ def code(opts) # :nodoc:
+ opts[:block] = true
+ if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
+ # simulating pre-4.2 behavior
+ if opts[:text].sub!(/\A\[(\w+)\]/, '')
+ if CodeRay::Scanners[$1].plugin_id == 'plaintext'
+ opts[:text] = $& + opts[:text]
+ else
+ opts[:lang] = $1
+ end
+ end
+ end
+ if opts[:lang] && !filter_coderay
+ require 'coderay'
+ @in_bc ||= nil
+ format = @in_bc ? :div : :span
+ opts[:text] = unescape(opts[:text]) unless @in_bc
+ highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
+ highlighted_code.sub!(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
+ highlighted_code
+ else
+ " #{opts[:text]} "
+ end
+ end
+ def bc_open(opts) # :nodoc:
+ opts[:block] = true
+ @in_bc = opts
+ opts[:lang] ? '' : " "
+ end
+ def bc_close(opts) # :nodoc:
+ opts = @in_bc
+ @in_bc = nil
+ opts[:lang] ? '' : " \n"
+ end
+ def escape_pre(text)
+ if @in_bc ||= nil
+ text
+ else
+ html_esc(text, :html_escape_preformatted)
+ end
+ end
+ end
+ end
+
+ module TextileDoc # :nodoc:
+ attr_accessor :filter_coderay
+ end
+
+ end
+
+end
+
+CodeRay::ForRedCloth.install
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/scanner.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/scanner.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,298 @@
+module CodeRay
+
+ require 'coderay/helpers/plugin'
+
+ # = Scanners
+ #
+ # This module holds the Scanner class and its subclasses.
+ # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
+ # can be found in coderay/scanners/ruby.
+ #
+ # Scanner also provides methods and constants for the register
+ # mechanism and the [] method that returns the Scanner class
+ # belonging to the given lang.
+ #
+ # See PluginHost.
+ module Scanners
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'scanners'
+
+ require 'strscan'
+
+ # = Scanner
+ #
+ # The base class for all Scanners.
+ #
+ # It is a subclass of Ruby's great +StringScanner+, which
+ # makes it easy to access the scanning methods inside.
+ #
+ # It is also +Enumerable+, so you can use it like an Array of
+ # Tokens:
+ #
+ # require 'coderay'
+ #
+ # c_scanner = CodeRay::Scanners[:c].new "if (*p == '{') nest++;"
+ #
+ # for text, kind in c_scanner
+ # puts text if kind == :operator
+ # end
+ #
+ # # prints: (*==)++;
+ #
+ # OK, this is a very simple example :)
+ # You can also use +map+, +any?+, +find+ and even +sort_by+,
+ # if you want.
+ class Scanner < StringScanner
+
+ extend Plugin
+ plugin_host Scanners
+
+ # Raised if a Scanner fails while scanning
+ ScanError = Class.new(Exception)
+
+ require 'coderay/helpers/word_list'
+
+ # The default options for all scanner classes.
+ #
+ # Define @default_options for subclasses.
+ DEFAULT_OPTIONS = { :stream => false }
+
+ KINDS_NOT_LOC = [:comment, :doctype]
+
+ class << self
+
+ # Returns if the Scanner can be used in streaming mode.
+ def streamable?
+ is_a? Streamable
+ end
+
+ def normify code
+ code = code.to_s
+ if code.respond_to?(:encoding) && (code.encoding.name != 'UTF-8' || !code.valid_encoding?)
+ code = code.dup
+ original_encoding = code.encoding
+ code.force_encoding 'Windows-1252'
+ unless code.valid_encoding?
+ code.force_encoding original_encoding
+ if code.encoding.name == 'UTF-8'
+ code.encode! 'UTF-16BE', :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ code.encode! 'UTF-8', :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+ code.to_unix
+ end
+
+ def file_extension extension = nil
+ if extension
+ @file_extension = extension.to_s
+ else
+ @file_extension ||= plugin_id.to_s
+ end
+ end
+
+ end
+
+=begin
+## Excluded for speed reasons; protected seems to make methods slow.
+
+ # Save the StringScanner methods from being called.
+ # This would not be useful for highlighting.
+ strscan_public_methods =
+ StringScanner.instance_methods -
+ StringScanner.ancestors[1].instance_methods
+ protected(*strscan_public_methods)
+=end
+
+ # Create a new Scanner.
+ #
+ # * +code+ is the input String and is handled by the superclass
+ # StringScanner.
+ # * +options+ is a Hash with Symbols as keys.
+ # It is merged with the default options of the class (you can
+ # overwrite default options here.)
+ # * +block+ is the callback for streamed highlighting.
+ #
+ # If you set :stream to +true+ in the options, the Scanner uses a
+ # TokenStream with the +block+ as callback to handle the tokens.
+ #
+ # Else, a Tokens object is used.
+ def initialize code='', options = {}, &block
+ raise "I am only the basic Scanner class. I can't scan "\
+ "anything. :( Use my subclasses." if self.class == Scanner
+
+ @options = self.class::DEFAULT_OPTIONS.merge options
+
+ super Scanner.normify(code)
+
+ @tokens = options[:tokens]
+ if @options[:stream]
+ warn "warning in CodeRay::Scanner.new: :stream is set, "\
+ "but no block was given" unless block_given?
+ raise NotStreamableError, self unless kind_of? Streamable
+ @tokens ||= TokenStream.new(&block)
+ else
+ warn "warning in CodeRay::Scanner.new: Block given, "\
+ "but :stream is #{@options[:stream]}" if block_given?
+ @tokens ||= Tokens.new
+ end
+ @tokens.scanner = self
+
+ setup
+ end
+
+ def reset
+ super
+ reset_instance
+ end
+
+ def string= code
+ code = Scanner.normify(code)
+ if defined?(RUBY_DESCRIPTION) && RUBY_DESCRIPTION['rubinius 1.0.1']
+ reset_state
+ @string = code
+ else
+ super code
+ end
+ reset_instance
+ end
+
+ # More mnemonic accessor name for the input string.
+ alias code string
+ alias code= string=
+
+ # Returns the Plugin ID for this scanner.
+ def lang
+ self.class.plugin_id
+ end
+
+ # Scans the code and returns all tokens in a Tokens object.
+ def tokenize new_string=nil, options = {}
+ options = @options.merge(options)
+ self.string = new_string if new_string
+ @cached_tokens =
+ if @options[:stream] # :stream must have been set already
+ reset unless new_string
+ scan_tokens @tokens, options
+ @tokens
+ else
+ scan_tokens @tokens, options
+ end
+ end
+
+ def tokens
+ @cached_tokens ||= tokenize
+ end
+
+ # Whether the scanner is in streaming mode.
+ def streaming?
+ !!@options[:stream]
+ end
+
+ # Traverses the tokens.
+ def each &block
+ raise ArgumentError,
+ 'Cannot traverse TokenStream.' if @options[:stream]
+ tokens.each(&block)
+ end
+ include Enumerable
+
+ # The current line position of the scanner.
+ #
+ # Beware, this is implemented inefficiently. It should be used
+ # for debugging only.
+ def line
+ string[0..pos].count("\n") + 1
+ end
+
+ def column pos = self.pos
+ return 0 if pos <= 0
+ string = string()
+ if string.respond_to?(:bytesize) && (defined?(@bin_string) || string.bytesize != string.size)
+ @bin_string ||= string.dup.force_encoding('binary')
+ string = @bin_string
+ end
+ pos - (string.rindex(?\n, pos) || 0)
+ end
+
+ def marshal_dump
+ @options
+ end
+
+ def marshal_load options
+ @options = options
+ end
+
+ protected
+
+ # Can be implemented by subclasses to do some initialization
+ # that has to be done once per instance.
+ #
+ # Use reset for initialization that has to be done once per
+ # scan.
+ def setup
+ end
+
+ # This is the central method, and commonly the only one a
+ # subclass implements.
+ #
+ # Subclasses must implement this method; it must return +tokens+
+ # and must only use Tokens#<< for storing scanned tokens!
+ def scan_tokens tokens, options
+ raise NotImplementedError,
+ "#{self.class}#scan_tokens not implemented."
+ end
+
+ def reset_instance
+ @tokens.clear unless @options[:keep_tokens]
+ @cached_tokens = nil
+ @bin_string = nil if defined? @bin_string
+ end
+
+ # Scanner error with additional status information
+ def raise_inspect msg, tokens, state = 'No state given!', ambit = 30
+ raise ScanError, <<-EOE % [
+
+
+***ERROR in %s: %s (after %d tokens)
+
+tokens:
+%s
+
+current line: %d column: %d pos: %d
+matched: %p state: %p
+bol? = %p, eos? = %p
+
+surrounding code:
+%p ~~ %p
+
+
+***ERROR***
+
+ EOE
+ File.basename(caller[0]),
+ msg,
+ tokens.size,
+ tokens.last(10).map { |t| t.inspect }.join("\n"),
+ line, column, pos,
+ matched, state, bol?, eos?,
+ string[pos - ambit, ambit],
+ string[pos, ambit],
+ ]
+ end
+
+ end
+
+ end
+end
+
+class String
+ # I love this hack. It seems to silence all dos/unix/mac newline problems.
+ def to_unix
+ if index ?\r
+ gsub(/\r\n?/, "\n")
+ else
+ self
+ end
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/style.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/style.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,20 @@
+module CodeRay
+
+ # This module holds the Style class and its subclasses.
+ #
+ # See Plugin.
+ module Styles
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'styles'
+
+ class Style
+ extend Plugin
+ plugin_host Styles
+
+ DEFAULT_OPTIONS = { }
+
+ end
+
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/token_classes.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/token_classes.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,86 @@
+module CodeRay
+ class Tokens
+ ClassOfKind = Hash.new do |h, k|
+ h[k] = k.to_s
+ end
+ ClassOfKind.update with = {
+ :annotation => 'at',
+ :attribute_name => 'an',
+ :attribute_name_fat => 'af',
+ :attribute_value => 'av',
+ :attribute_value_fat => 'aw',
+ :bin => 'bi',
+ :char => 'ch',
+ :class => 'cl',
+ :class_variable => 'cv',
+ :color => 'cr',
+ :comment => 'c',
+ :complex => 'cm',
+ :constant => 'co',
+ :content => 'k',
+ :decorator => 'de',
+ :definition => 'df',
+ :delimiter => 'dl',
+ :directive => 'di',
+ :doc => 'do',
+ :doctype => 'dt',
+ :doc_string => 'ds',
+ :entity => 'en',
+ :error => 'er',
+ :escape => 'e',
+ :exception => 'ex',
+ :float => 'fl',
+ :function => 'fu',
+ :global_variable => 'gv',
+ :hex => 'hx',
+ :imaginary => 'cm',
+ :important => 'im',
+ :include => 'ic',
+ :inline => 'il',
+ :inline_delimiter => 'idl',
+ :instance_variable => 'iv',
+ :integer => 'i',
+ :interpreted => 'in',
+ :keyword => 'kw',
+ :key => 'ke',
+ :label => 'la',
+ :local_variable => 'lv',
+ :modifier => 'mod',
+ :oct => 'oc',
+ :operator_fat => 'of',
+ :pre_constant => 'pc',
+ :pre_type => 'pt',
+ :predefined => 'pd',
+ :preprocessor => 'pp',
+ :pseudo_class => 'ps',
+ :regexp => 'rx',
+ :reserved => 'r',
+ :shell => 'sh',
+ :string => 's',
+ :symbol => 'sy',
+ :tag => 'ta',
+ :tag_fat => 'tf',
+ :tag_special => 'ts',
+ :type => 'ty',
+ :variable => 'v',
+ :value => 'vl',
+ :xml_text => 'xt',
+
+ :insert => 'ins',
+ :delete => 'del',
+ :change => 'chg',
+ :head => 'head',
+
+ :ident => :NO_HIGHLIGHT, # 'id'
+ #:operator => 'op',
+ :operator => :NO_HIGHLIGHT, # 'op'
+ :space => :NO_HIGHLIGHT, # 'sp'
+ :plain => :NO_HIGHLIGHT,
+ }
+ ClassOfKind[:method] = ClassOfKind[:function]
+ ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
+ ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
+ ClassOfKind[:escape] = ClassOfKind[:delimiter]
+ #ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
+ end
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/tokens.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/.svn/text-base/tokens.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,390 @@
+module CodeRay
+
+ # = Tokens
+ #
+ # The Tokens class represents a list of tokens returnd from
+ # a Scanner.
+ #
+ # A token is not a special object, just a two-element Array
+ # consisting of
+ # * the _token_ _text_ (the original source of the token in a String) or
+ # a _token_ _action_ (:open, :close, :begin_line, :end_line)
+ # * the _token_ _kind_ (a Symbol representing the type of the token)
+ #
+ # A token looks like this:
+ #
+ # ['# It looks like this', :comment]
+ # ['3.1415926', :float]
+ # ['$^', :error]
+ #
+ # Some scanners also yield sub-tokens, represented by special
+ # token actions, namely :open and :close.
+ #
+ # The Ruby scanner, for example, splits "a string" into:
+ #
+ # [
+ # [:open, :string],
+ # ['"', :delimiter],
+ # ['a string', :content],
+ # ['"', :delimiter],
+ # [:close, :string]
+ # ]
+ #
+ # Tokens is the interface between Scanners and Encoders:
+ # The input is split and saved into a Tokens object. The Encoder
+ # then builds the output from this object.
+ #
+ # Thus, the syntax below becomes clear:
+ #
+ # CodeRay.scan('price = 2.59', :ruby).html
+ # # the Tokens object is here -------^
+ #
+ # See how small it is? ;)
+ #
+ # Tokens gives you the power to handle pre-scanned code very easily:
+ # You can convert it to a webpage, a YAML file, or dump it into a gzip'ed string
+ # that you put in your DB.
+ #
+ # It also allows you to generate tokens directly (without using a scanner),
+ # to load them from a file, and still use any Encoder that CodeRay provides.
+ #
+ # Tokens' subclass TokenStream allows streaming to save memory.
+ class Tokens < Array
+
+ # The Scanner instance that created the tokens.
+ attr_accessor :scanner
+
+ # Whether the object is a TokenStream.
+ #
+ # Returns false.
+ def stream?
+ false
+ end
+
+ # Iterates over all tokens.
+ #
+ # If a filter is given, only tokens of that kind are yielded.
+ def each kind_filter = nil, &block
+ unless kind_filter
+ super(&block)
+ else
+ super() do |text, kind|
+ next unless kind == kind_filter
+ yield text, kind
+ end
+ end
+ end
+
+ # Iterates over all text tokens.
+ # Range tokens like [:open, :string] are left out.
+ #
+ # Example:
+ # tokens.each_text_token { |text, kind| text.replace html_escape(text) }
+ def each_text_token
+ each do |text, kind|
+ next unless text.is_a? ::String
+ yield text, kind
+ end
+ end
+
+ # Encode the tokens using encoder.
+ #
+ # encoder can be
+ # * a symbol like :html oder :statistic
+ # * an Encoder class
+ # * an Encoder object
+ #
+ # options are passed to the encoder.
+ def encode encoder, options = {}
+ unless encoder.is_a? Encoders::Encoder
+ unless encoder.is_a? Class
+ encoder_class = Encoders[encoder]
+ end
+ encoder = encoder_class.new options
+ end
+ encoder.encode_tokens self, options
+ end
+
+
+ # Turn into a string using Encoders::Text.
+ #
+ # +options+ are passed to the encoder if given.
+ def to_s options = {}
+ encode :text, options
+ end
+
+ # Redirects unknown methods to encoder calls.
+ #
+ # For example, if you call +tokens.html+, the HTML encoder
+ # is used to highlight the tokens.
+ def method_missing meth, options = {}
+ Encoders[meth].new(options).encode_tokens self
+ end
+
+ # Returns the tokens compressed by joining consecutive
+ # tokens of the same kind.
+ #
+ # This can not be undone, but should yield the same output
+ # in most Encoders. It basically makes the output smaller.
+ #
+ # Combined with dump, it saves space for the cost of time.
+ #
+ # If the scanner is written carefully, this is not required -
+ # for example, consecutive //-comment lines could already be
+ # joined in one comment token by the Scanner.
+ def optimize
+ last_kind = last_text = nil
+ new = self.class.new
+ for text, kind in self
+ if text.is_a? String
+ if kind == last_kind
+ last_text << text
+ else
+ new << [last_text, last_kind] if last_kind
+ last_text = text
+ last_kind = kind
+ end
+ else
+ new << [last_text, last_kind] if last_kind
+ last_kind = last_text = nil
+ new << [text, kind]
+ end
+ end
+ new << [last_text, last_kind] if last_kind
+ new
+ end
+
+ # Compact the object itself; see optimize.
+ def optimize!
+ replace optimize
+ end
+
+ # Ensure that all :open tokens have a correspondent :close one.
+ #
+ # TODO: Test this!
+ def fix
+ tokens = self.class.new
+ # Check token nesting using a stack of kinds.
+ opened = []
+ for type, kind in self
+ case type
+ when :open
+ opened.push [:close, kind]
+ when :begin_line
+ opened.push [:end_line, kind]
+ when :close, :end_line
+ expected = opened.pop
+ if [type, kind] != expected
+ # Unexpected :close; decide what to do based on the kind:
+ # - token was never opened: delete the :close (just skip it)
+ next unless opened.rindex expected
+ # - token was opened earlier: also close tokens in between
+ tokens << token until (token = opened.pop) == expected
+ end
+ end
+ tokens << [type, kind]
+ end
+ # Close remaining opened tokens
+ tokens << token while token = opened.pop
+ tokens
+ end
+
+ def fix!
+ replace fix
+ end
+
+ # TODO: Scanner#split_into_lines
+ #
+ # Makes sure that:
+ # - newlines are single tokens
+ # (which means all other token are single-line)
+ # - there are no open tokens at the end the line
+ #
+ # This makes it simple for encoders that work line-oriented,
+ # like HTML with list-style numeration.
+ def split_into_lines
+ raise NotImplementedError
+ end
+
+ def split_into_lines!
+ replace split_into_lines
+ end
+
+ # Dumps the object into a String that can be saved
+ # in files or databases.
+ #
+ # The dump is created with Marshal.dump;
+ # In addition, it is gzipped using GZip.gzip.
+ #
+ # The returned String object includes Undumping
+ # so it has an #undump method. See Tokens.load.
+ #
+ # You can configure the level of compression,
+ # but the default value 7 should be what you want
+ # in most cases as it is a good compromise between
+ # speed and compression rate.
+ #
+ # See GZip module.
+ def dump gzip_level = 7
+ require 'coderay/helpers/gzip_simple'
+ dump = Marshal.dump self
+ dump = dump.gzip gzip_level
+ dump.extend Undumping
+ end
+
+ # The total size of the tokens.
+ # Should be equal to the input size before
+ # scanning.
+ def text_size
+ size = 0
+ each_text_token do |t, k|
+ size + t.size
+ end
+ size
+ end
+
+ # Return all text tokens joined into a single string.
+ def text
+ map { |t, k| t if t.is_a? ::String }.join
+ end
+
+ # Include this module to give an object an #undump
+ # method.
+ #
+ # The string returned by Tokens.dump includes Undumping.
+ module Undumping
+ # Calls Tokens.load with itself.
+ def undump
+ Tokens.load self
+ end
+ end
+
+ # Undump the object using Marshal.load, then
+ # unzip it using GZip.gunzip.
+ #
+ # The result is commonly a Tokens object, but
+ # this is not guaranteed.
+ def Tokens.load dump
+ require 'coderay/helpers/gzip_simple'
+ dump = dump.gunzip
+ @dump = Marshal.load dump
+ end
+
+ end
+
+
+ # = TokenStream
+ #
+ # The TokenStream class is a fake Array without elements.
+ #
+ # It redirects the method << to a block given at creation.
+ #
+ # This allows scanners and Encoders to use streaming (no
+ # tokens are saved, the input is highlighted the same time it
+ # is scanned) with the same code.
+ #
+ # See CodeRay.encode_stream and CodeRay.scan_stream
+ class TokenStream < Tokens
+
+ # Whether the object is a TokenStream.
+ #
+ # Returns true.
+ def stream?
+ true
+ end
+
+ # The Array is empty, but size counts the tokens given by <<.
+ attr_reader :size
+
+ # Creates a new TokenStream that calls +block+ whenever
+ # its << method is called.
+ #
+ # Example:
+ #
+ # require 'coderay'
+ #
+ # token_stream = CodeRay::TokenStream.new do |text, kind|
+ # puts 'kind: %s, text size: %d.' % [kind, text.size]
+ # end
+ #
+ # token_stream << ['/\d+/', :regexp]
+ # #-> kind: rexpexp, text size: 5.
+ #
+ def initialize &block
+ raise ArgumentError, 'Block expected for streaming.' unless block
+ @callback = block
+ @size = 0
+ end
+
+ # Calls +block+ with +token+ and increments size.
+ #
+ # Returns self.
+ def << token
+ @callback.call(*token)
+ @size += 1
+ self
+ end
+
+ # This method is not implemented due to speed reasons. Use Tokens.
+ def text_size
+ raise NotImplementedError,
+ 'This method is not implemented due to speed reasons.'
+ end
+
+ # A TokenStream cannot be dumped. Use Tokens.
+ def dump
+ raise NotImplementedError, 'A TokenStream cannot be dumped.'
+ end
+
+ # A TokenStream cannot be optimized. Use Tokens.
+ def optimize
+ raise NotImplementedError, 'A TokenStream cannot be optimized.'
+ end
+
+ end
+
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class TokensTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Tokens < Array
+ tokens = nil
+ assert_nothing_raised do
+ tokens = CodeRay::Tokens.new
+ end
+ assert_kind_of Array, tokens
+ end
+
+ def test_adding_tokens
+ tokens = CodeRay::Tokens.new
+ assert_nothing_raised do
+ tokens << ['string', :type]
+ tokens << ['()', :operator]
+ end
+ assert_equal tokens.size, 2
+ end
+
+ def test_dump_undump
+ tokens = CodeRay::Tokens.new
+ assert_nothing_raised do
+ tokens << ['string', :type]
+ tokens << ['()', :operator]
+ end
+ tokens2 = nil
+ assert_nothing_raised do
+ tokens2 = tokens.dump.undump
+ end
+ assert_equal tokens, tokens2
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/duo.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/duo.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,85 @@
+module CodeRay
+
+ # = Duo
+ #
+ # A Duo is a convenient way to use CodeRay. You just create a Duo,
+ # giving it a lang (language of the input code) and a format (desired
+ # output format), and call Duo#highlight with the code.
+ #
+ # Duo makes it easy to re-use both scanner and encoder for a repetitive
+ # task. It also provides a very easy interface syntax:
+ #
+ # require 'coderay'
+ # CodeRay::Duo[:python, :div].highlight 'import this'
+ #
+ # Until you want to do uncommon things with CodeRay, I recommend to use
+ # this method, since it takes care of everything.
+ class Duo
+
+ attr_accessor :lang, :format, :options
+
+ # Create a new Duo, holding a lang and a format to highlight code.
+ #
+ # simple:
+ # CodeRay::Duo[:ruby, :page].highlight 'bla 42'
+ #
+ # streaming:
+ # CodeRay::Duo[:ruby, :page].highlight 'bar 23', :stream => true
+ #
+ # with options:
+ # CodeRay::Duo[:ruby, :html, :hint => :debug].highlight '????::??'
+ #
+ # alternative syntax without options:
+ # CodeRay::Duo[:ruby => :statistic].encode 'class << self; end'
+ #
+ # alternative syntax with options:
+ # CodeRay::Duo[{ :ruby => :statistic }, :do => :something].encode 'abc'
+ #
+ # The options are forwarded to scanner and encoder
+ # (see CodeRay.get_scanner_options).
+ def initialize lang = nil, format = nil, options = {}
+ if format == nil and lang.is_a? Hash and lang.size == 1
+ @lang = lang.keys.first
+ @format = lang[@lang]
+ else
+ @lang = lang
+ @format = format
+ end
+ @options = options
+ end
+
+ class << self
+ # To allow calls like Duo[:ruby, :html].highlight.
+ alias [] new
+ end
+
+ # The scanner of the duo. Only created once.
+ def scanner
+ @scanner ||= CodeRay.scanner @lang, CodeRay.get_scanner_options(@options)
+ end
+
+ # The encoder of the duo. Only created once.
+ def encoder
+ @encoder ||= CodeRay.encoder @format, @options
+ end
+
+ # Tokenize and highlight the code using +scanner+ and +encoder+.
+ #
+ # If the :stream option is set, the Duo will go into streaming mode,
+ # saving memory for the cost of time.
+ def encode code, options = { :stream => false }
+ stream = options.delete :stream
+ options = @options.merge options
+ if stream
+ encoder.encode_stream(code, @lang, options)
+ else
+ scanner.code = code
+ encoder.encode_tokens(scanner.tokenize, options)
+ end
+ end
+ alias highlight encode
+
+ end
+
+end
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoder.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoder.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,213 @@
+module CodeRay
+
+ # This module holds the Encoder class and its subclasses.
+ # For example, the HTML encoder is named CodeRay::Encoders::HTML
+ # can be found in coderay/encoders/html.
+ #
+ # Encoders also provides methods and constants for the register
+ # mechanism and the [] method that returns the Encoder class
+ # belonging to the given format.
+ module Encoders
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'encoders'
+
+ # = Encoder
+ #
+ # The Encoder base class. Together with Scanner and
+ # Tokens, it forms the highlighting triad.
+ #
+ # Encoder instances take a Tokens object and do something with it.
+ #
+ # The most common Encoder is surely the HTML encoder
+ # (CodeRay::Encoders::HTML). It highlights the code in a colorful
+ # html page.
+ # If you want the highlighted code in a div or a span instead,
+ # use its subclasses Div and Span.
+ class Encoder
+ extend Plugin
+ plugin_host Encoders
+
+ attr_reader :token_stream
+
+ class << self
+
+ # Returns if the Encoder can be used in streaming mode.
+ def streamable?
+ is_a? Streamable
+ end
+
+ # If FILE_EXTENSION isn't defined, this method returns the
+ # downcase class name instead.
+ def const_missing sym
+ if sym == :FILE_EXTENSION
+ plugin_id
+ else
+ super
+ end
+ end
+
+ end
+
+ # Subclasses are to store their default options in this constant.
+ DEFAULT_OPTIONS = { :stream => false }
+
+ # The options you gave the Encoder at creating.
+ attr_accessor :options
+
+ # Creates a new Encoder.
+ # +options+ is saved and used for all encode operations, as long
+ # as you don't overwrite it there by passing additional options.
+ #
+ # Encoder objects provide three encode methods:
+ # - encode simply takes a +code+ string and a +lang+
+ # - encode_tokens expects a +tokens+ object instead
+ # - encode_stream is like encode, but uses streaming mode.
+ #
+ # Each method has an optional +options+ parameter. These are
+ # added to the options you passed at creation.
+ def initialize options = {}
+ @options = self.class::DEFAULT_OPTIONS.merge options
+ raise "I am only the basic Encoder class. I can't encode "\
+ "anything. :( Use my subclasses." if self.class == Encoder
+ end
+
+ # Encode a Tokens object.
+ def encode_tokens tokens, options = {}
+ options = @options.merge options
+ setup options
+ compile tokens, options
+ finish options
+ end
+
+ # Encode the given +code+ after tokenizing it using the Scanner
+ # for +lang+.
+ def encode code, lang, options = {}
+ options = @options.merge options
+ scanner_options = CodeRay.get_scanner_options(options)
+ tokens = CodeRay.scan code, lang, scanner_options
+ encode_tokens tokens, options
+ end
+
+ # You can use highlight instead of encode, if that seems
+ # more clear to you.
+ alias highlight encode
+
+ # Encode the given +code+ using the Scanner for +lang+ in
+ # streaming mode.
+ def encode_stream code, lang, options = {}
+ raise NotStreamableError, self unless kind_of? Streamable
+ options = @options.merge options
+ setup options
+ scanner_options = CodeRay.get_scanner_options options
+ @token_stream =
+ CodeRay.scan_stream code, lang, scanner_options, &self
+ finish options
+ end
+
+ # Behave like a proc. The token method is converted to a proc.
+ def to_proc
+ method(:token).to_proc
+ end
+
+ # Return the default file extension for outputs of this encoder.
+ def file_extension
+ self.class::FILE_EXTENSION
+ end
+
+ protected
+
+ # Called with merged options before encoding starts.
+ # Sets @out to an empty string.
+ #
+ # See the HTML Encoder for an example of option caching.
+ def setup options
+ @out = ''
+ end
+
+ # Called with +content+ and +kind+ of the currently scanned token.
+ # For simple scanners, it's enougth to implement this method.
+ #
+ # By default, it calls text_token or block_token, depending on
+ # whether +content+ is a String.
+ def token content, kind
+ encoded_token =
+ if content.is_a? ::String
+ text_token content, kind
+ elsif content.is_a? ::Symbol
+ block_token content, kind
+ else
+ raise 'Unknown token content type: %p' % [content]
+ end
+ append_encoded_token_to_output encoded_token
+ end
+
+ def append_encoded_token_to_output encoded_token
+ @out << encoded_token if encoded_token && defined?(@out) && @out
+ end
+
+ # Called for each text token ([text, kind]), where text is a String.
+ def text_token text, kind
+ end
+
+ # Called for each block (non-text) token ([action, kind]),
+ # where +action+ is a Symbol.
+ #
+ # Calls open_token, close_token, begin_line, and end_line according to
+ # the value of +action+.
+ def block_token action, kind
+ case action
+ when :open
+ open_token kind
+ when :close
+ close_token kind
+ when :begin_line
+ begin_line kind
+ when :end_line
+ end_line kind
+ else
+ raise 'unknown block action: %p' % action
+ end
+ end
+
+ # Called for each block token at the start of the block ([:open, kind]).
+ def open_token kind
+ end
+
+ # Called for each block token end of the block ([:close, kind]).
+ def close_token kind
+ end
+
+ # Called for each line token block at the start of the line ([:begin_line, kind]).
+ def begin_line kind
+ end
+
+ # Called for each line token block at the end of the line ([:end_line, kind]).
+ def end_line kind
+ end
+
+ # Called with merged options after encoding starts.
+ # The return value is the result of encoding, typically @out.
+ def finish options
+ @out
+ end
+
+ # Do the encoding.
+ #
+ # The already created +tokens+ object must be used; it can be a
+ # TokenStream or a Tokens object.
+ if RUBY_VERSION >= '1.9'
+ def compile tokens, options
+ for text, kind in tokens
+ token text, kind
+ end
+ end
+ else
+ def compile tokens, options
+ tokens.each(&self)
+ end
+ end
+
+ end
+
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,113 @@
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders
+END
+div.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/div.rb
+END
+text.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/text.rb
+END
+filter.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/filter.rb
+END
+debug.rb
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/debug.rb
+END
+lines_of_code.rb
+K 25
+svn:wc:ra_dav:version-url
+V 88
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/lines_of_code.rb
+END
+count.rb
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/count.rb
+END
+xml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/xml.rb
+END
+span.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/span.rb
+END
+yaml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/yaml.rb
+END
+html.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html.rb
+END
+term.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/term.rb
+END
+statistic.rb
+K 25
+svn:wc:ra_dav:version-url
+V 84
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/statistic.rb
+END
+comment_filter.rb
+K 25
+svn:wc:ra_dav:version-url
+V 89
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/comment_filter.rb
+END
+json.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/json.rb
+END
+token_class_filter.rb
+K 25
+svn:wc:ra_dav:version-url
+V 93
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/token_class_filter.rb
+END
+null.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/null.rb
+END
+page.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/page.rb
+END
+_map.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/_map.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,643 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+div.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+f0c5be15265facadc46889fbbc2613f1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+232
+
+text.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+2914ed90921556a01a79f3fb6d549b09
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+400
+
+filter.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+08591bbd1f20dc7dce67030a294d1636
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1595
+
+debug.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+9e878089035fe9ad88c808bd1a15cf7a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+835
+
+lines_of_code.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+966e154458fb6c665b6d62aa90d07e18
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2395
+
+count.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+c262d84ddbdf37e99ff6bcf6dd6a66c2
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+230
+
+xml.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+ada7effba81bbc28f41efeaef69dcc51
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1367
+
+span.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+e4228be45ad0f818a0e125caee838d56
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+236
+
+yaml.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+04c428b240ef44de896ad15827cf51df
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+264
+
+html
+dir
+
+html.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+e672d4f425422c57f935f24df3df9a0d
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7995
+
+term.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+422a51cd181de3cc0a55aba7f9915c18
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4324
+
+statistic.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+49017735ef679f73dd65795e30d8e5c7
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1800
+
+comment_filter.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+32f2d1a9db6f58636d3946a43b5a60f0
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+808
+
+json.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+86a2dcae2ef0a971f70386c3b794469f
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1570
+
+null.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+9c9dcf3ba3f2effa5ebd4cd37417db36
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+320
+
+token_class_filter.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+e59791dbcdce328f09240e7e5c8b3d0e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2546
+
+page.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+26da5aef43dc8731fbd63dcffea259bf
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+262
+
+_map.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+964d7ee16d213ab2e41418257f1eb8aa
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+167
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/_map.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/_map.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,12 @@
+module CodeRay
+module Encoders
+
+ map \
+ :loc => :lines_of_code,
+ :plain => :text,
+ :stats => :statistic,
+ :terminal => :term,
+ :tex => :latex
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/comment_filter.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/comment_filter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,43 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ load :token_class_filter
+
+ class CommentFilter < TokenClassFilter
+
+ register_for :comment_filter
+
+ DEFAULT_OPTIONS = superclass::DEFAULT_OPTIONS.merge \
+ :exclude => [:comment]
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class CommentFilterTest < Test::Unit::TestCase
+
+ def test_filtering_comments
+ tokens = CodeRay.scan <<-RUBY, :ruby
+#!/usr/bin/env ruby
+# a minimal Ruby program
+puts "Hello world!"
+ RUBY
+ assert_equal <<-RUBY_FILTERED, tokens.comment_filter.text
+#!/usr/bin/env ruby
+
+puts "Hello world!"
+ RUBY_FILTERED
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/count.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/count.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,21 @@
+module CodeRay
+module Encoders
+
+ class Count < Encoder
+
+ include Streamable
+ register_for :count
+
+ protected
+
+ def setup options
+ @out = 0
+ end
+
+ def token text, kind
+ @out += 1
+ end
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/debug.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/debug.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,49 @@
+module CodeRay
+module Encoders
+
+ # = Debug Encoder
+ #
+ # Fast encoder producing simple debug output.
+ #
+ # It is readable and diff-able and is used for testing.
+ #
+ # You cannot fully restore the tokens information from the
+ # output, because consecutive :space tokens are merged.
+ # Use Tokens#dump for caching purposes.
+ class Debug < Encoder
+
+ include Streamable
+ register_for :debug
+
+ FILE_EXTENSION = 'raydebug'
+
+ protected
+ def text_token text, kind
+ if kind == :space
+ text
+ else
+ text = text.gsub(/[)\\]/, '\\\\\0') # escape ) and \
+ "#{kind}(#{text})"
+ end
+ end
+
+ def open_token kind
+ "#{kind}<"
+ end
+
+ def close_token kind
+ ">"
+ end
+
+ def begin_line kind
+ "#{kind}["
+ end
+
+ def end_line kind
+ "]"
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/div.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/div.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,19 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Div < HTML
+
+ FILE_EXTENSION = 'div.html'
+
+ register_for :div
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :style,
+ :wrap => :div
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/filter.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/filter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,75 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ class Filter < Encoder
+
+ register_for :filter
+
+ protected
+ def setup options
+ @out = Tokens.new
+ end
+
+ def text_token text, kind
+ [text, kind] if include_text_token? text, kind
+ end
+
+ def include_text_token? text, kind
+ true
+ end
+
+ def block_token action, kind
+ [action, kind] if include_block_token? action, kind
+ end
+
+ def include_block_token? action, kind
+ true
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class FilterTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :filter
+ end
+ assert_kind_of CodeRay::Encoders::Encoder, filter
+ end
+
+ def test_filtering_text_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [i.to_s, :index]
+ end
+ assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
+ assert_equal tokens, tokens.filter
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [:open, :index]
+ tokens << [i.to_s, :content]
+ tokens << [:close, :index]
+ end
+ assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
+ assert_equal tokens, tokens.filter
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/html.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/html.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,309 @@
+require 'set'
+
+module CodeRay
+module Encoders
+
+ # = HTML Encoder
+ #
+ # This is CodeRay's most important highlighter:
+ # It provides save, fast XHTML generation and CSS support.
+ #
+ # == Usage
+ #
+ # require 'coderay'
+ # puts CodeRay.scan('Some /code/', :ruby).html #-> a HTML page
+ # puts CodeRay.scan('Some /code/', :ruby).html(:wrap => :span)
+ # #-> Some /code/
+ # puts CodeRay.scan('Some /code/', :ruby).span #-> the same
+ #
+ # puts CodeRay.scan('Some code', :ruby).html(
+ # :wrap => nil,
+ # :line_numbers => :inline,
+ # :css => :style
+ # )
+ # #-> 1 Some code
+ #
+ # == Options
+ #
+ # === :tab_width
+ # Convert \t characters to +n+ spaces (a number.)
+ # Default: 8
+ #
+ # === :css
+ # How to include the styles; can be :class or :style.
+ #
+ # Default: :class
+ #
+ # === :wrap
+ # Wrap in :page, :div, :span or nil.
+ #
+ # You can also use Encoders::Div and Encoders::Span.
+ #
+ # Default: nil
+ #
+ # === :title
+ #
+ # The title of the HTML page (works only when :wrap is set to :page.)
+ #
+ # Default: 'CodeRay output'
+ #
+ # === :line_numbers
+ # Include line numbers in :table, :inline, :list or nil (no line numbers)
+ #
+ # Default: nil
+ #
+ # === :line_number_start
+ # Where to start with line number counting.
+ #
+ # Default: 1
+ #
+ # === :bold_every
+ # Make every +n+-th number appear bold.
+ #
+ # Default: 10
+ #
+ # === :highlight_lines
+ #
+ # Highlights certain line numbers.
+ # Can be any Enumerable, typically just an Array or Range, of numbers.
+ #
+ # Bolding is deactivated when :highlight_lines is set. It only makes sense
+ # in combination with :line_numbers.
+ #
+ # Default: nil
+ #
+ # === :hint
+ # Include some information into the output using the title attribute.
+ # Can be :info (show token type on mouse-over), :info_long (with full path)
+ # or :debug (via inspect).
+ #
+ # Default: false
+ class HTML < Encoder
+
+ include Streamable
+ register_for :html
+
+ FILE_EXTENSION = 'html'
+
+ DEFAULT_OPTIONS = {
+ :tab_width => 8,
+
+ :css => :class,
+
+ :style => :cycnus,
+ :wrap => nil,
+ :title => 'CodeRay output',
+
+ :line_numbers => nil,
+ :line_number_start => 1,
+ :bold_every => 10,
+ :highlight_lines => nil,
+
+ :hint => false,
+ }
+
+ helper :output, :css
+
+ attr_reader :css
+
+ protected
+
+ HTML_ESCAPE = { #:nodoc:
+ '&' => '&',
+ '"' => '"',
+ '>' => '>',
+ '<' => '<',
+ }
+
+ # This was to prevent illegal HTML.
+ # Strange chars should still be avoided in codes.
+ evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
+ evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
+ #ansi_chars = Array(0x7f..0xff)
+ #ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '%d;' % i }
+ # \x9 (\t) and \xA (\n) not included
+ #HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
+ HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
+
+ TOKEN_KIND_TO_INFO = Hash.new { |h, kind|
+ h[kind] =
+ case kind
+ when :pre_constant
+ 'Predefined constant'
+ else
+ kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
+ end
+ }
+
+ TRANSPARENT_TOKEN_KINDS = [
+ :delimiter, :modifier, :content, :escape, :inline_delimiter,
+ ].to_set
+
+ # Generate a hint about the given +classes+ in a +hint+ style.
+ #
+ # +hint+ may be :info, :info_long or :debug.
+ def self.token_path_to_hint hint, classes
+ title =
+ case hint
+ when :info
+ TOKEN_KIND_TO_INFO[classes.first]
+ when :info_long
+ classes.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
+ when :debug
+ classes.inspect
+ end
+ title ? " title=\"#{title}\"" : ''
+ end
+
+ def setup options
+ super
+
+ @HTML_ESCAPE = HTML_ESCAPE.dup
+ @HTML_ESCAPE["\t"] = ' ' * options[:tab_width]
+
+ @opened = [nil]
+ @css = CSS.new options[:style]
+
+ hint = options[:hint]
+ if hint and not [:debug, :info, :info_long].include? hint
+ raise ArgumentError, "Unknown value %p for :hint; \
+ expected :info, :debug, false, or nil." % hint
+ end
+
+ case options[:css]
+
+ when :class
+ @css_style = Hash.new do |h, k|
+ c = CodeRay::Tokens::ClassOfKind[k.first]
+ if c == :NO_HIGHLIGHT and not hint
+ h[k.dup] = false
+ else
+ title = if hint
+ HTML.token_path_to_hint(hint, k[1..-1] << k.first)
+ else
+ ''
+ end
+ if c == :NO_HIGHLIGHT
+ h[k.dup] = ' ' % [title]
+ else
+ h[k.dup] = '' % [title, c]
+ end
+ end
+ end
+
+ when :style
+ @css_style = Hash.new do |h, k|
+ if k.is_a? ::Array
+ styles = k.dup
+ else
+ styles = [k]
+ end
+ type = styles.first
+ classes = styles.map { |c| Tokens::ClassOfKind[c] }
+ if classes.first == :NO_HIGHLIGHT and not hint
+ h[k] = false
+ else
+ styles.shift if TRANSPARENT_TOKEN_KINDS.include? styles.first
+ title = HTML.token_path_to_hint hint, styles
+ style = @css[*classes]
+ h[k] =
+ if style
+ '' % [title, style]
+ else
+ false
+ end
+ end
+ end
+
+ else
+ raise ArgumentError, "Unknown value %p for :css." % options[:css]
+
+ end
+ end
+
+ def finish options
+ not_needed = @opened.shift
+ @out << '' * @opened.size
+ unless @opened.empty?
+ warn '%d tokens still open: %p' % [@opened.size, @opened]
+ end
+
+ @out.extend Output
+ @out.css = @css
+ @out.numerize! options[:line_numbers], options
+ @out.wrap! options[:wrap]
+ @out.apply_title! options[:title]
+
+ super
+ end
+
+ def token text, type = :plain
+ case text
+
+ when nil
+ # raise 'Token with nil as text was given: %p' % [[text, type]]
+
+ when String
+ if text =~ /#{HTML_ESCAPE_PATTERN}/o
+ text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] }
+ end
+ @opened[0] = type
+ if text != "\n" && style = @css_style[@opened]
+ @out << style << text << ''
+ else
+ @out << text
+ end
+
+
+ # token groups, eg. strings
+ when :open
+ @opened[0] = type
+ @out << (@css_style[@opened] || '')
+ @opened << type
+ when :close
+ if @opened.empty?
+ # nothing to close
+ else
+ if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
+ raise 'Malformed token stream: Trying to close a token (%p) \
+ that is not open. Open are: %p.' % [type, @opened[1..-1]]
+ end
+ @out << ''
+ @opened.pop
+ end
+
+ # whole lines to be highlighted, eg. a deleted line in a diff
+ when :begin_line
+ @opened[0] = type
+ if style = @css_style[@opened]
+ if style['class="']
+ @out << style.sub('class="', 'class="line ')
+ else
+ @out << style.sub('>', ' class="line">')
+ end
+ else
+ @out << ''
+ end
+ @opened << type
+ when :end_line
+ if @opened.empty?
+ # nothing to close
+ else
+ if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
+ raise 'Malformed token stream: Trying to close a line (%p) \
+ that is not open. Open are: %p.' % [type, @opened[1..-1]]
+ end
+ @out << ''
+ @opened.pop
+ end
+
+ else
+ raise 'unknown token kind: %p' % [text]
+
+ end
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/json.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/json.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,69 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ # = JSON Encoder
+ class JSON < Encoder
+
+ register_for :json
+ FILE_EXTENSION = 'json'
+
+ protected
+ def setup options
+ begin
+ require 'json'
+ rescue LoadError
+ require 'rubygems'
+ require 'json'
+ end
+ @out = []
+ end
+
+ def text_token text, kind
+ { :type => 'text', :text => text, :kind => kind }
+ end
+
+ def block_token action, kind
+ { :type => 'block', :action => action, :kind => kind }
+ end
+
+ def finish options
+ @out.to_json
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+$:.delete '.'
+require 'rubygems' if RUBY_VERSION < '1.9'
+
+class JSONEncoderTest < Test::Unit::TestCase
+
+ def test_json_output
+ tokens = CodeRay.scan <<-RUBY, :ruby
+puts "Hello world!"
+ RUBY
+ require 'json'
+ assert_equal [
+ {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
+ {"type"=>"text", "text"=>" ", "kind"=>"space"},
+ {"type"=>"block", "action"=>"open", "kind"=>"string"},
+ {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
+ {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
+ {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
+ {"type"=>"block", "action"=>"close", "kind"=>"string"},
+ {"type"=>"text", "text"=>"\n", "kind"=>"space"}
+ ], JSON.load(tokens.json)
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/lines_of_code.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/lines_of_code.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,90 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ # Counts the LoC (Lines of Code). Returns an Integer >= 0.
+ #
+ # Alias: :loc
+ #
+ # Everything that is not comment, markup, doctype/shebang, or an empty line,
+ # is considered to be code.
+ #
+ # For example,
+ # * HTML files not containing JavaScript have 0 LoC
+ # * in a Java class without comments, LoC is the number of non-empty lines
+ #
+ # A Scanner class should define the token kinds that are not code in the
+ # KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].
+ class LinesOfCode < Encoder
+
+ register_for :lines_of_code
+
+ NON_EMPTY_LINE = /^\s*\S.*$/
+
+ def compile tokens, options
+ if scanner = tokens.scanner
+ kinds_not_loc = scanner.class::KINDS_NOT_LOC
+ else
+ warn ArgumentError, 'Tokens have no scanner.' if $VERBOSE
+ kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
+ end
+ code = tokens.token_class_filter :exclude => kinds_not_loc
+ @loc = code.text.scan(NON_EMPTY_LINE).size
+ end
+
+ def finish options
+ @loc
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class LinesOfCodeTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::LinesOfCode < CodeRay::Encoders::Encoder
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :loc
+ end
+ assert_kind_of CodeRay::Encoders::LinesOfCode, filter
+ assert_nothing_raised do
+ filter = CodeRay.encoder :lines_of_code
+ end
+ assert_kind_of CodeRay::Encoders::LinesOfCode, filter
+ end
+
+ def test_lines_of_code
+ tokens = CodeRay.scan <<-RUBY, :ruby
+#!/usr/bin/env ruby
+
+# a minimal Ruby program
+puts "Hello world!"
+ RUBY
+ assert_equal 1, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
+ assert_equal 1, tokens.lines_of_code
+ assert_equal 1, tokens.loc
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ tokens << ["Hello\n", :world]
+ tokens << ["Hello\n", :space]
+ tokens << ["Hello\n", :comment]
+ assert_equal 2, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
+ assert_equal 2, tokens.lines_of_code
+ assert_equal 2, tokens.loc
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/null.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/null.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,26 @@
+module CodeRay
+module Encoders
+
+ # = Null Encoder
+ #
+ # Does nothing and returns an empty string.
+ class Null < Encoder
+
+ include Streamable
+ register_for :null
+
+ # Defined for faster processing
+ def to_proc
+ proc {}
+ end
+
+ protected
+
+ def token(*)
+ # do nothing
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/page.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/page.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,20 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Page < HTML
+
+ FILE_EXTENSION = 'html'
+
+ register_for :page
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :class,
+ :wrap => :page,
+ :line_numbers => :table
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/span.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/span.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,19 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Span < HTML
+
+ FILE_EXTENSION = 'span.html'
+
+ register_for :span
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :style,
+ :wrap => :span
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/statistic.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/statistic.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,77 @@
+module CodeRay
+module Encoders
+
+ # Makes a statistic for the given tokens.
+ class Statistic < Encoder
+
+ include Streamable
+ register_for :stats, :statistic
+
+ attr_reader :type_stats, :real_token_count
+
+ protected
+
+ TypeStats = Struct.new :count, :size
+
+ def setup options
+ @type_stats = Hash.new { |h, k| h[k] = TypeStats.new 0, 0 }
+ @real_token_count = 0
+ end
+
+ def generate tokens, options
+ @tokens = tokens
+ super
+ end
+
+ def text_token text, kind
+ @real_token_count += 1 unless kind == :space
+ @type_stats[kind].count += 1
+ @type_stats[kind].size += text.size
+ @type_stats['TOTAL'].size += text.size
+ @type_stats['TOTAL'].count += 1
+ end
+
+ # TODO Hierarchy handling
+ def block_token action, kind
+ @type_stats['TOTAL'].count += 1
+ @type_stats['open/close'].count += 1
+ end
+
+ STATS = <<-STATS
+
+Code Statistics
+
+Tokens %8d
+ Non-Whitespace %8d
+Bytes Total %8d
+
+Token Types (%d):
+ type count ratio size (average)
+-------------------------------------------------------------
+%s
+ STATS
+# space 12007 33.81 % 1.7
+ TOKEN_TYPES_ROW = <<-TKR
+ %-20s %8d %6.2f %% %5.1f
+ TKR
+
+ def finish options
+ all = @type_stats['TOTAL']
+ all_count, all_size = all.count, all.size
+ @type_stats.each do |type, stat|
+ stat.size /= stat.count.to_f
+ end
+ types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
+ TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
+ end.join
+ STATS % [
+ all_count, @real_token_count, all_size,
+ @type_stats.delete_if { |k, v| k.is_a? String }.size,
+ types_stats
+ ]
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/term.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/term.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,158 @@
+# encoders/term.rb
+# By Rob Aldred (http://robaldred.co.uk)
+# Based on idea by Nathan Weizenbaum (http://nex-3.com)
+# MIT License (http://www.opensource.org/licenses/mit-license.php)
+#
+# A CodeRay encoder that outputs code highlighted for a color terminal.
+# Check out http://robaldred.co.uk
+
+module CodeRay
+ module Encoders
+ class Term < Encoder
+ register_for :term
+
+ TOKEN_COLORS = {
+ :annotation => '35',
+ :attribute_name => '33',
+ :attribute_name_fat => '33',
+ :attribute_value => '31',
+ :attribute_value_fat => '31',
+ :bin => '1;35',
+ :char => {:self => '36', :delimiter => '34'},
+ :class => '1;35',
+ :class_variable => '36',
+ :color => '32',
+ :comment => '37',
+ :complex => '34',
+ :constant => ['34', '4'],
+ :decoration => '35',
+ :definition => '1;32',
+ :directive => ['32', '4'],
+ :doc => '46',
+ :doctype => '1;30',
+ :doc_string => ['31', '4'],
+ :entity => '33',
+ :error => ['1;33', '41'],
+ :exception => '1;31',
+ :float => '1;35',
+ :function => '1;34',
+ :global_variable => '42',
+ :hex => '1;36',
+ :important => '1;31',
+ :include => '33',
+ :integer => '1;34',
+ :interpreted => '1;35',
+ :key => '35',
+ :label => '1;4',
+ :local_variable => '33',
+ :oct => '1;35',
+ :operator_name => '1;29',
+ :pre_constant => '1;36',
+ :pre_type => '1;30',
+ :predefined => ['4', '1;34'],
+ :preprocessor => '36',
+ :pseudo_class => '34',
+ :regexp => {
+ :content => '31',
+ :delimiter => '1;29',
+ :modifier => '35',
+ :function => '1;29'
+ },
+ :reserved => '1;31',
+ :shell => {
+ :self => '42',
+ :content => '1;29',
+ :delimiter => '37',
+ },
+ :string => {
+ :self => '32',
+ :modifier => '1;32',
+ :escape => '1;36',
+ :delimiter => '1;32',
+ },
+ :symbol => '1;32',
+ :tag => '34',
+ :tag_fat => '1;34',
+ :tag_special => ['34', '4'],
+ :type => '1;34',
+ :value => '36',
+ :variable => '34',
+ :insert => '42',
+ :delete => '41',
+ :change => '44',
+ :head => '45',
+ }
+ TOKEN_COLORS[:keyword] = TOKEN_COLORS[:reserved]
+ TOKEN_COLORS[:method] = TOKEN_COLORS[:function]
+ TOKEN_COLORS[:imaginary] = TOKEN_COLORS[:complex]
+ TOKEN_COLORS[:open] = TOKEN_COLORS[:close] = TOKEN_COLORS[:nesting_delimiter] = TOKEN_COLORS[:escape] = TOKEN_COLORS[:delimiter]
+
+ protected
+
+ def setup(options)
+ @out = ''
+ @opened = [nil]
+ @subcolors = nil
+ end
+
+ def finish(options)
+ super
+ end
+
+ def token text, type = :plain
+ case text
+
+ when nil
+ # raise 'Token with nil as text was given: %p' % [[text, type]]
+
+ when String
+
+ if color = (@subcolors || TOKEN_COLORS)[type]
+ color = color[:self] || return if Hash === color
+
+ @out << col(color) + text.gsub("\n", col(0) + "\n" + col(color)) + col(0)
+ @out << col(@subcolors[:self]) if @subcolors && @subcolors[:self]
+ else
+ @out << text
+ end
+
+ # token groups, eg. strings
+ when :open
+ @opened[0] = type
+ if color = TOKEN_COLORS[type]
+ if Hash === color
+ @subcolors = color
+ @out << col(color[:self]) if color[:self]
+ else
+ @subcolors = {}
+ @out << col(color)
+ end
+ end
+ @opened << type
+ when :close
+ if @opened.empty?
+ # nothing to close
+ else
+ @out << col(0) if (@subcolors || {})[:self]
+ @subcolors = nil
+ @opened.pop
+ end
+
+ # whole lines to be highlighted, eg. a added/modified/deleted lines in a diff
+ when :begin_line
+
+ when :end_line
+
+ else
+ raise 'unknown token kind: %p' % [text]
+ end
+ end
+
+ private
+
+ def col(color)
+ Array(color).map { |c| "\e[#{c}m" }.join
+ end
+ end
+ end
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/text.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/text.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,32 @@
+module CodeRay
+module Encoders
+
+ class Text < Encoder
+
+ include Streamable
+ register_for :text
+
+ FILE_EXTENSION = 'txt'
+
+ DEFAULT_OPTIONS = {
+ :separator => ''
+ }
+
+ protected
+ def setup options
+ super
+ @sep = options[:separator]
+ end
+
+ def text_token text, kind
+ text + @sep
+ end
+
+ def finish options
+ super.chomp @sep
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/token_class_filter.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/token_class_filter.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,84 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ load :filter
+
+ class TokenClassFilter < Filter
+
+ include Streamable
+ register_for :token_class_filter
+
+ DEFAULT_OPTIONS = {
+ :exclude => [],
+ :include => :all
+ }
+
+ protected
+ def setup options
+ super
+ @exclude = options[:exclude]
+ @exclude = Array(@exclude) unless @exclude == :all
+ @include = options[:include]
+ @include = Array(@include) unless @include == :all
+ end
+
+ def include_text_token? text, kind
+ (@include == :all || @include.include?(kind)) &&
+ !(@exclude == :all || @exclude.include?(kind))
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class TokenClassFilterTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Encoder
+ assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Filter
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :token_class_filter
+ end
+ assert_instance_of CodeRay::Encoders::TokenClassFilter, filter
+ end
+
+ def test_filtering_text_tokens
+ tokens = CodeRay::Tokens.new
+ for i in 1..10
+ tokens << [i.to_s, :index]
+ tokens << [' ', :space] if i < 10
+ end
+ assert_equal 10, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :space).size
+ assert_equal 10, tokens.token_class_filter(:exclude => :space).size
+ assert_equal 9, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :space).size
+ assert_equal 9, tokens.token_class_filter(:include => :space).size
+ assert_equal 0, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :all).size
+ assert_equal 0, tokens.token_class_filter(:exclude => :all).size
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [:open, :index]
+ tokens << [i.to_s, :content]
+ tokens << [:close, :index]
+ end
+ assert_equal 20, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :blubb).size
+ assert_equal 20, tokens.token_class_filter(:include => :blubb).size
+ assert_equal 30, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :index).size
+ assert_equal 30, tokens.token_class_filter(:exclude => :index).size
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/xml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/xml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,71 @@
+module CodeRay
+module Encoders
+
+ # = XML Encoder
+ #
+ # Uses REXML. Very slow.
+ class XML < Encoder
+
+ include Streamable
+ register_for :xml
+
+ FILE_EXTENSION = 'xml'
+
+ require 'rexml/document'
+
+ DEFAULT_OPTIONS = {
+ :tab_width => 8,
+ :pretty => -1,
+ :transitive => false,
+ }
+
+ protected
+
+ def setup options
+ @doc = REXML::Document.new
+ @doc << REXML::XMLDecl.new
+ @tab_width = options[:tab_width]
+ @root = @node = @doc.add_element('coderay-tokens')
+ end
+
+ def finish options
+ @out = ''
+ @doc.write @out, options[:pretty], options[:transitive], true
+ @out
+ end
+
+ def text_token text, kind
+ if kind == :space
+ token = @node
+ else
+ token = @node.add_element kind.to_s
+ end
+ text.scan(/(\x20+)|(\t+)|(\n)|[^\x20\t\n]+/) do |space, tab, nl|
+ case
+ when space
+ token << REXML::Text.new(space, true)
+ when tab
+ token << REXML::Text.new(tab, true)
+ when nl
+ token << REXML::Text.new(nl, true)
+ else
+ token << REXML::Text.new($&)
+ end
+ end
+ end
+
+ def open_token kind
+ @node = @node.add_element kind.to_s
+ end
+
+ def close_token kind
+ if @node == @root
+ raise 'no token to close!'
+ end
+ @node = @node.parent
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/yaml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/.svn/text-base/yaml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,22 @@
+module CodeRay
+module Encoders
+
+ # = YAML Encoder
+ #
+ # Slow.
+ class YAML < Encoder
+
+ register_for :yaml
+
+ FILE_EXTENSION = 'yaml'
+
+ protected
+ def compile tokens, options
+ require 'yaml'
+ @out = tokens.to_a.to_yaml
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/_map.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/_map.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,12 @@
+module CodeRay
+module Encoders
+
+ map \
+ :loc => :lines_of_code,
+ :plain => :text,
+ :stats => :statistic,
+ :terminal => :term,
+ :tex => :latex
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/comment_filter.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/comment_filter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,43 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ load :token_class_filter
+
+ class CommentFilter < TokenClassFilter
+
+ register_for :comment_filter
+
+ DEFAULT_OPTIONS = superclass::DEFAULT_OPTIONS.merge \
+ :exclude => [:comment]
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class CommentFilterTest < Test::Unit::TestCase
+
+ def test_filtering_comments
+ tokens = CodeRay.scan <<-RUBY, :ruby
+#!/usr/bin/env ruby
+# a minimal Ruby program
+puts "Hello world!"
+ RUBY
+ assert_equal <<-RUBY_FILTERED, tokens.comment_filter.text
+#!/usr/bin/env ruby
+
+puts "Hello world!"
+ RUBY_FILTERED
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/count.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/count.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,21 @@
+module CodeRay
+module Encoders
+
+ class Count < Encoder
+
+ include Streamable
+ register_for :count
+
+ protected
+
+ def setup options
+ @out = 0
+ end
+
+ def token text, kind
+ @out += 1
+ end
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/debug.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/debug.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,49 @@
+module CodeRay
+module Encoders
+
+ # = Debug Encoder
+ #
+ # Fast encoder producing simple debug output.
+ #
+ # It is readable and diff-able and is used for testing.
+ #
+ # You cannot fully restore the tokens information from the
+ # output, because consecutive :space tokens are merged.
+ # Use Tokens#dump for caching purposes.
+ class Debug < Encoder
+
+ include Streamable
+ register_for :debug
+
+ FILE_EXTENSION = 'raydebug'
+
+ protected
+ def text_token text, kind
+ if kind == :space
+ text
+ else
+ text = text.gsub(/[)\\]/, '\\\\\0') # escape ) and \
+ "#{kind}(#{text})"
+ end
+ end
+
+ def open_token kind
+ "#{kind}<"
+ end
+
+ def close_token kind
+ ">"
+ end
+
+ def begin_line kind
+ "#{kind}["
+ end
+
+ def end_line kind
+ "]"
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/div.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/div.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,19 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Div < HTML
+
+ FILE_EXTENSION = 'div.html'
+
+ register_for :div
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :style,
+ :wrap => :div
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/filter.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/filter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,75 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ class Filter < Encoder
+
+ register_for :filter
+
+ protected
+ def setup options
+ @out = Tokens.new
+ end
+
+ def text_token text, kind
+ [text, kind] if include_text_token? text, kind
+ end
+
+ def include_text_token? text, kind
+ true
+ end
+
+ def block_token action, kind
+ [action, kind] if include_block_token? action, kind
+ end
+
+ def include_block_token? action, kind
+ true
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class FilterTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :filter
+ end
+ assert_kind_of CodeRay::Encoders::Encoder, filter
+ end
+
+ def test_filtering_text_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [i.to_s, :index]
+ end
+ assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
+ assert_equal tokens, tokens.filter
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [:open, :index]
+ tokens << [i.to_s, :content]
+ tokens << [:close, :index]
+ end
+ assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
+ assert_equal tokens, tokens.filter
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,309 @@
+require 'set'
+
+module CodeRay
+module Encoders
+
+ # = HTML Encoder
+ #
+ # This is CodeRay's most important highlighter:
+ # It provides save, fast XHTML generation and CSS support.
+ #
+ # == Usage
+ #
+ # require 'coderay'
+ # puts CodeRay.scan('Some /code/', :ruby).html #-> a HTML page
+ # puts CodeRay.scan('Some /code/', :ruby).html(:wrap => :span)
+ # #-> Some /code/
+ # puts CodeRay.scan('Some /code/', :ruby).span #-> the same
+ #
+ # puts CodeRay.scan('Some code', :ruby).html(
+ # :wrap => nil,
+ # :line_numbers => :inline,
+ # :css => :style
+ # )
+ # #-> 1 Some code
+ #
+ # == Options
+ #
+ # === :tab_width
+ # Convert \t characters to +n+ spaces (a number.)
+ # Default: 8
+ #
+ # === :css
+ # How to include the styles; can be :class or :style.
+ #
+ # Default: :class
+ #
+ # === :wrap
+ # Wrap in :page, :div, :span or nil.
+ #
+ # You can also use Encoders::Div and Encoders::Span.
+ #
+ # Default: nil
+ #
+ # === :title
+ #
+ # The title of the HTML page (works only when :wrap is set to :page.)
+ #
+ # Default: 'CodeRay output'
+ #
+ # === :line_numbers
+ # Include line numbers in :table, :inline, :list or nil (no line numbers)
+ #
+ # Default: nil
+ #
+ # === :line_number_start
+ # Where to start with line number counting.
+ #
+ # Default: 1
+ #
+ # === :bold_every
+ # Make every +n+-th number appear bold.
+ #
+ # Default: 10
+ #
+ # === :highlight_lines
+ #
+ # Highlights certain line numbers.
+ # Can be any Enumerable, typically just an Array or Range, of numbers.
+ #
+ # Bolding is deactivated when :highlight_lines is set. It only makes sense
+ # in combination with :line_numbers.
+ #
+ # Default: nil
+ #
+ # === :hint
+ # Include some information into the output using the title attribute.
+ # Can be :info (show token type on mouse-over), :info_long (with full path)
+ # or :debug (via inspect).
+ #
+ # Default: false
+ class HTML < Encoder
+
+ include Streamable
+ register_for :html
+
+ FILE_EXTENSION = 'html'
+
+ DEFAULT_OPTIONS = {
+ :tab_width => 8,
+
+ :css => :class,
+
+ :style => :cycnus,
+ :wrap => nil,
+ :title => 'CodeRay output',
+
+ :line_numbers => nil,
+ :line_number_start => 1,
+ :bold_every => 10,
+ :highlight_lines => nil,
+
+ :hint => false,
+ }
+
+ helper :output, :css
+
+ attr_reader :css
+
+ protected
+
+ HTML_ESCAPE = { #:nodoc:
+ '&' => '&',
+ '"' => '"',
+ '>' => '>',
+ '<' => '<',
+ }
+
+ # This was to prevent illegal HTML.
+ # Strange chars should still be avoided in codes.
+ evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
+ evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
+ #ansi_chars = Array(0x7f..0xff)
+ #ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '%d;' % i }
+ # \x9 (\t) and \xA (\n) not included
+ #HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
+ HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
+
+ TOKEN_KIND_TO_INFO = Hash.new { |h, kind|
+ h[kind] =
+ case kind
+ when :pre_constant
+ 'Predefined constant'
+ else
+ kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
+ end
+ }
+
+ TRANSPARENT_TOKEN_KINDS = [
+ :delimiter, :modifier, :content, :escape, :inline_delimiter,
+ ].to_set
+
+ # Generate a hint about the given +classes+ in a +hint+ style.
+ #
+ # +hint+ may be :info, :info_long or :debug.
+ def self.token_path_to_hint hint, classes
+ title =
+ case hint
+ when :info
+ TOKEN_KIND_TO_INFO[classes.first]
+ when :info_long
+ classes.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
+ when :debug
+ classes.inspect
+ end
+ title ? " title=\"#{title}\"" : ''
+ end
+
+ def setup options
+ super
+
+ @HTML_ESCAPE = HTML_ESCAPE.dup
+ @HTML_ESCAPE["\t"] = ' ' * options[:tab_width]
+
+ @opened = [nil]
+ @css = CSS.new options[:style]
+
+ hint = options[:hint]
+ if hint and not [:debug, :info, :info_long].include? hint
+ raise ArgumentError, "Unknown value %p for :hint; \
+ expected :info, :debug, false, or nil." % hint
+ end
+
+ case options[:css]
+
+ when :class
+ @css_style = Hash.new do |h, k|
+ c = CodeRay::Tokens::ClassOfKind[k.first]
+ if c == :NO_HIGHLIGHT and not hint
+ h[k.dup] = false
+ else
+ title = if hint
+ HTML.token_path_to_hint(hint, k[1..-1] << k.first)
+ else
+ ''
+ end
+ if c == :NO_HIGHLIGHT
+ h[k.dup] = '' % [title]
+ else
+ h[k.dup] = '' % [title, c]
+ end
+ end
+ end
+
+ when :style
+ @css_style = Hash.new do |h, k|
+ if k.is_a? ::Array
+ styles = k.dup
+ else
+ styles = [k]
+ end
+ type = styles.first
+ classes = styles.map { |c| Tokens::ClassOfKind[c] }
+ if classes.first == :NO_HIGHLIGHT and not hint
+ h[k] = false
+ else
+ styles.shift if TRANSPARENT_TOKEN_KINDS.include? styles.first
+ title = HTML.token_path_to_hint hint, styles
+ style = @css[*classes]
+ h[k] =
+ if style
+ '' % [title, style]
+ else
+ false
+ end
+ end
+ end
+
+ else
+ raise ArgumentError, "Unknown value %p for :css." % options[:css]
+
+ end
+ end
+
+ def finish options
+ not_needed = @opened.shift
+ @out << '' * @opened.size
+ unless @opened.empty?
+ warn '%d tokens still open: %p' % [@opened.size, @opened]
+ end
+
+ @out.extend Output
+ @out.css = @css
+ @out.numerize! options[:line_numbers], options
+ @out.wrap! options[:wrap]
+ @out.apply_title! options[:title]
+
+ super
+ end
+
+ def token text, type = :plain
+ case text
+
+ when nil
+ # raise 'Token with nil as text was given: %p' % [[text, type]]
+
+ when String
+ if text =~ /#{HTML_ESCAPE_PATTERN}/o
+ text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] }
+ end
+ @opened[0] = type
+ if text != "\n" && style = @css_style[@opened]
+ @out << style << text << ''
+ else
+ @out << text
+ end
+
+
+ # token groups, eg. strings
+ when :open
+ @opened[0] = type
+ @out << (@css_style[@opened] || '')
+ @opened << type
+ when :close
+ if @opened.empty?
+ # nothing to close
+ else
+ if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
+ raise 'Malformed token stream: Trying to close a token (%p) \
+ that is not open. Open are: %p.' % [type, @opened[1..-1]]
+ end
+ @out << ''
+ @opened.pop
+ end
+
+ # whole lines to be highlighted, eg. a deleted line in a diff
+ when :begin_line
+ @opened[0] = type
+ if style = @css_style[@opened]
+ if style['class="']
+ @out << style.sub('class="', 'class="line ')
+ else
+ @out << style.sub('>', ' class="line">')
+ end
+ else
+ @out << ''
+ end
+ @opened << type
+ when :end_line
+ if @opened.empty?
+ # nothing to close
+ else
+ if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
+ raise 'Malformed token stream: Trying to close a line (%p) \
+ that is not open. Open are: %p.' % [type, @opened[1..-1]]
+ end
+ @out << ''
+ @opened.pop
+ end
+
+ else
+ raise 'unknown token kind: %p' % [text]
+
+ end
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html
+END
+output.rb
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/output.rb
+END
+numerization.rb
+K 25
+svn:wc:ra_dav:version-url
+V 92
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/numerization.rb
+END
+css.rb
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/css.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,130 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+output.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+8d0cea50dc9e6743bd10a8e0c6f1db17
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5271
+
+numerization.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+a5e204ed674c970d0aea6d1d9dbfd18e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4219
+
+css.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+aa931c09ed5f16abfed3b7c99f0f684d
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1626
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/css.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/css.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,70 @@
+module CodeRay
+module Encoders
+
+ class HTML
+ class CSS
+
+ attr :stylesheet
+
+ def CSS.load_stylesheet style = nil
+ CodeRay::Styles[style]
+ end
+
+ def initialize style = :default
+ @classes = Hash.new
+ style = CSS.load_stylesheet style
+ @stylesheet = [
+ style::CSS_MAIN_STYLES,
+ style::TOKEN_COLORS.gsub(/^(?!$)/, '.CodeRay ')
+ ].join("\n")
+ parse style::TOKEN_COLORS
+ end
+
+ def [] *styles
+ cl = @classes[styles.first]
+ return '' unless cl
+ style = ''
+ 1.upto(styles.size) do |offset|
+ break if style = cl[styles[offset .. -1]]
+ end
+ # warn 'Style not found: %p' % [styles] if style.empty?
+ return style
+ end
+
+ private
+
+ CSS_CLASS_PATTERN = /
+ ( # $1 = selectors
+ (?:
+ (?: \s* \. [-\w]+ )+
+ \s* ,?
+ )+
+ )
+ \s* \{ \s*
+ ( [^\}]+ )? # $2 = style
+ \s* \} \s*
+ |
+ ( . ) # $3 = error
+ /mx
+ def parse stylesheet
+ stylesheet.scan CSS_CLASS_PATTERN do |selectors, style, error|
+ raise "CSS parse error: '#{error.inspect}' not recognized" if error
+ for selector in selectors.split(',')
+ classes = selector.scan(/[-\w]+/)
+ cl = classes.pop
+ @classes[cl] ||= Hash.new
+ @classes[cl][classes] = style.to_s.strip.delete(' ').chomp(';')
+ end
+ end
+ end
+
+ end
+ end
+
+end
+end
+
+if $0 == __FILE__
+ require 'pp'
+ pp CodeRay::Encoders::HTML::CSS.new
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/numerization.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/numerization.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,133 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ module Output
+
+ def numerize *args
+ clone.numerize!(*args)
+ end
+
+=begin NUMERIZABLE_WRAPPINGS = {
+ :table => [:div, :page, nil],
+ :inline => :all,
+ :list => [:div, :page, nil]
+ }
+ NUMERIZABLE_WRAPPINGS.default = :all
+=end
+ def numerize! mode = :table, options = {}
+ return self unless mode
+
+ options = DEFAULT_OPTIONS.merge options
+
+ start = options[:line_number_start]
+ unless start.is_a? Integer
+ raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start
+ end
+
+ #allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode]
+ #unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap]
+ # raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]]
+ #end
+
+ bold_every = options[:bold_every]
+ highlight_lines = options[:highlight_lines]
+ bolding =
+ if bold_every == false && highlight_lines == nil
+ proc { |line| line.to_s }
+ elsif highlight_lines.is_a? Enumerable
+ highlight_lines = highlight_lines.to_set
+ proc do |line|
+ if highlight_lines.include? line
+ "#{line}" # highlighted line numbers in bold
+ else
+ line.to_s
+ end
+ end
+ elsif bold_every.is_a? Integer
+ raise ArgumentError, ":bolding can't be 0." if bold_every == 0
+ proc do |line|
+ if line % bold_every == 0
+ "#{line}" # every bold_every-th number in bold
+ else
+ line.to_s
+ end
+ end
+ else
+ raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
+ end
+
+ case mode
+ when :inline
+ max_width = (start + line_count).to_s.size
+ line_number = start
+ gsub!(/^/) do
+ line_number_text = bolding.call line_number
+ indent = ' ' * (max_width - line_number.to_s.size) # TODO: Optimize (10^x)
+ res = "#{indent}#{line_number_text} "
+ line_number += 1
+ res
+ end
+
+ when :table
+ # This is really ugly.
+ # Because even monospace fonts seem to have different heights when bold,
+ # I make the newline bold, both in the code and the line numbers.
+ # FIXME Still not working perfect for Mr. Internet Exploder
+ line_numbers = (start ... start + line_count).to_a.map(&bolding).join("\n")
+ line_numbers << "\n" # also for Mr. MS Internet Exploder :-/
+ line_numbers.gsub!(/\n/) { "\n" }
+
+ line_numbers_table_tpl = TABLE.apply('LINE_NUMBERS', line_numbers)
+ gsub!("\n", ' ')
+ gsub!("\n", "\n")
+ wrap_in! line_numbers_table_tpl
+ @wrapped_in = :div
+
+ when :list
+ opened_tags = []
+ gsub!(/^.*$\n?/) do |line|
+ line.chomp!
+
+ open = opened_tags.join
+ line.scan(%r!<(/)?span[^>]*>?!) do |close,|
+ if close
+ opened_tags.pop
+ else
+ opened_tags << $&
+ end
+ end
+ close = '' * opened_tags.size
+
+ "#{open}#{line}#{close}\n"
+ end
+ chomp!("\n")
+ wrap_in! LIST
+ @wrapped_in = :div
+
+ else
+ raise ArgumentError, 'Unknown value %p for mode: expected one of %p' %
+ [mode, [:table, :list, :inline]]
+ end
+
+ self
+ end
+
+ def line_count
+ line_count = count("\n")
+ position_of_last_newline = rindex(?\n)
+ if position_of_last_newline
+ after_last_newline = self[position_of_last_newline + 1 .. -1]
+ ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
+ line_count += 1 if not ends_with_newline
+ end
+ line_count
+ end
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/output.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/.svn/text-base/output.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,206 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ # This module is included in the output String from thew HTML Encoder.
+ #
+ # It provides methods like wrap, div, page etc.
+ #
+ # Remember to use #clone instead of #dup to keep the modules the object was
+ # extended with.
+ #
+ # TODO: more doc.
+ module Output
+
+ require 'coderay/encoders/html/numerization.rb'
+
+ attr_accessor :css
+
+ class << self
+
+ # This makes Output look like a class.
+ #
+ # Example:
+ #
+ # a = Output.new 'Code'
+ # a.wrap! :page
+ def new string, css = CSS.new, element = nil
+ output = string.clone.extend self
+ output.wrapped_in = element
+ output.css = css
+ output
+ end
+
+ # Raises an exception if an object that doesn't respond to to_str is extended by Output,
+ # to prevent users from misuse. Use Module#remove_method to disable.
+ def extended o
+ warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
+ end
+
+ def make_stylesheet css, in_tag = false
+ sheet = css.stylesheet
+ sheet = <<-CSS if in_tag
+
+ CSS
+ sheet
+ end
+
+ def page_template_for_css css
+ sheet = make_stylesheet css
+ PAGE.apply 'CSS', sheet
+ end
+
+ # Define a new wrapper. This is meta programming.
+ def wrapper *wrappers
+ wrappers.each do |wrapper|
+ define_method wrapper do |*args|
+ wrap wrapper, *args
+ end
+ define_method "#{wrapper}!".to_sym do |*args|
+ wrap! wrapper, *args
+ end
+ end
+ end
+
+ end
+
+ wrapper :div, :span, :page
+
+ def wrapped_in? element
+ wrapped_in == element
+ end
+
+ def wrapped_in
+ @wrapped_in ||= nil
+ end
+ attr_writer :wrapped_in
+
+ def wrap_in template
+ clone.wrap_in! template
+ end
+
+ def wrap_in! template
+ Template.wrap! self, template, 'CONTENT'
+ self
+ end
+
+ def apply_title! title
+ self.sub!(/()(<\/title>)/) { $1 + title + $2 }
+ self
+ end
+
+ def wrap! element, *args
+ return self if not element or element == wrapped_in
+ case element
+ when :div
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! DIV
+ when :span
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! SPAN
+ when :page
+ wrap! :div if wrapped_in? nil
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
+ wrap_in! Output.page_template_for_css(@css)
+ if args.first.is_a?(Hash) && title = args.first[:title]
+ apply_title! title
+ end
+ self
+ when nil
+ return self
+ else
+ raise "Unknown value %p for :wrap" % element
+ end
+ @wrapped_in = element
+ self
+ end
+
+ def wrap *args
+ clone.wrap!(*args)
+ end
+
+ def stylesheet in_tag = false
+ Output.make_stylesheet @css, in_tag
+ end
+
+ class Template < String
+
+ def self.wrap! str, template, target
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if template =~ target
+ str[0,0] = $`
+ str << $'
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ def apply target, replacement
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if self =~ target
+ Template.new($` + replacement + $')
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ module Simple
+ def ` str #` <-- for stupid editors
+ Template.new str
+ end
+ end
+ end
+
+ extend Template::Simple
+
+#-- don't include the templates in docu
+
+ SPAN = `<%CONTENT%>`
+
+ DIV = <<-`DIV`
+
+ DIV
+
+ TABLE = <<-`TABLE`
+
+ <%LINE_NUMBERS%> |
+ <%CONTENT%> |
+
+ TABLE
+ # title="double click to expand"
+
+ LIST = <<-`LIST`
+
+<%CONTENT%>
+
+ LIST
+
+ PAGE = <<-`PAGE`
+
+
+
+
+
+
+
+
+
+<%CONTENT%>
+
+
+ PAGE
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/css.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/css.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,70 @@
+module CodeRay
+module Encoders
+
+ class HTML
+ class CSS
+
+ attr :stylesheet
+
+ def CSS.load_stylesheet style = nil
+ CodeRay::Styles[style]
+ end
+
+ def initialize style = :default
+ @classes = Hash.new
+ style = CSS.load_stylesheet style
+ @stylesheet = [
+ style::CSS_MAIN_STYLES,
+ style::TOKEN_COLORS.gsub(/^(?!$)/, '.CodeRay ')
+ ].join("\n")
+ parse style::TOKEN_COLORS
+ end
+
+ def [] *styles
+ cl = @classes[styles.first]
+ return '' unless cl
+ style = ''
+ 1.upto(styles.size) do |offset|
+ break if style = cl[styles[offset .. -1]]
+ end
+ # warn 'Style not found: %p' % [styles] if style.empty?
+ return style
+ end
+
+ private
+
+ CSS_CLASS_PATTERN = /
+ ( # $1 = selectors
+ (?:
+ (?: \s* \. [-\w]+ )+
+ \s* ,?
+ )+
+ )
+ \s* \{ \s*
+ ( [^\}]+ )? # $2 = style
+ \s* \} \s*
+ |
+ ( . ) # $3 = error
+ /mx
+ def parse stylesheet
+ stylesheet.scan CSS_CLASS_PATTERN do |selectors, style, error|
+ raise "CSS parse error: '#{error.inspect}' not recognized" if error
+ for selector in selectors.split(',')
+ classes = selector.scan(/[-\w]+/)
+ cl = classes.pop
+ @classes[cl] ||= Hash.new
+ @classes[cl][classes] = style.to_s.strip.delete(' ').chomp(';')
+ end
+ end
+ end
+
+ end
+ end
+
+end
+end
+
+if $0 == __FILE__
+ require 'pp'
+ pp CodeRay::Encoders::HTML::CSS.new
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/numerization.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/numerization.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,133 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ module Output
+
+ def numerize *args
+ clone.numerize!(*args)
+ end
+
+=begin NUMERIZABLE_WRAPPINGS = {
+ :table => [:div, :page, nil],
+ :inline => :all,
+ :list => [:div, :page, nil]
+ }
+ NUMERIZABLE_WRAPPINGS.default = :all
+=end
+ def numerize! mode = :table, options = {}
+ return self unless mode
+
+ options = DEFAULT_OPTIONS.merge options
+
+ start = options[:line_number_start]
+ unless start.is_a? Integer
+ raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start
+ end
+
+ #allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode]
+ #unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap]
+ # raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]]
+ #end
+
+ bold_every = options[:bold_every]
+ highlight_lines = options[:highlight_lines]
+ bolding =
+ if bold_every == false && highlight_lines == nil
+ proc { |line| line.to_s }
+ elsif highlight_lines.is_a? Enumerable
+ highlight_lines = highlight_lines.to_set
+ proc do |line|
+ if highlight_lines.include? line
+ "#{line}" # highlighted line numbers in bold
+ else
+ line.to_s
+ end
+ end
+ elsif bold_every.is_a? Integer
+ raise ArgumentError, ":bolding can't be 0." if bold_every == 0
+ proc do |line|
+ if line % bold_every == 0
+ "#{line}" # every bold_every-th number in bold
+ else
+ line.to_s
+ end
+ end
+ else
+ raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
+ end
+
+ case mode
+ when :inline
+ max_width = (start + line_count).to_s.size
+ line_number = start
+ gsub!(/^/) do
+ line_number_text = bolding.call line_number
+ indent = ' ' * (max_width - line_number.to_s.size) # TODO: Optimize (10^x)
+ res = "#{indent}#{line_number_text} "
+ line_number += 1
+ res
+ end
+
+ when :table
+ # This is really ugly.
+ # Because even monospace fonts seem to have different heights when bold,
+ # I make the newline bold, both in the code and the line numbers.
+ # FIXME Still not working perfect for Mr. Internet Exploder
+ line_numbers = (start ... start + line_count).to_a.map(&bolding).join("\n")
+ line_numbers << "\n" # also for Mr. MS Internet Exploder :-/
+ line_numbers.gsub!(/\n/) { "\n" }
+
+ line_numbers_table_tpl = TABLE.apply('LINE_NUMBERS', line_numbers)
+ gsub!("\n", ' ')
+ gsub!("\n", "\n")
+ wrap_in! line_numbers_table_tpl
+ @wrapped_in = :div
+
+ when :list
+ opened_tags = []
+ gsub!(/^.*$\n?/) do |line|
+ line.chomp!
+
+ open = opened_tags.join
+ line.scan(%r!<(/)?span[^>]*>?!) do |close,|
+ if close
+ opened_tags.pop
+ else
+ opened_tags << $&
+ end
+ end
+ close = '' * opened_tags.size
+
+ "#{open}#{line}#{close}\n"
+ end
+ chomp!("\n")
+ wrap_in! LIST
+ @wrapped_in = :div
+
+ else
+ raise ArgumentError, 'Unknown value %p for mode: expected one of %p' %
+ [mode, [:table, :list, :inline]]
+ end
+
+ self
+ end
+
+ def line_count
+ line_count = count("\n")
+ position_of_last_newline = rindex(?\n)
+ if position_of_last_newline
+ after_last_newline = self[position_of_last_newline + 1 .. -1]
+ ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
+ line_count += 1 if not ends_with_newline
+ end
+ line_count
+ end
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/output.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/html/output.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,206 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ # This module is included in the output String from thew HTML Encoder.
+ #
+ # It provides methods like wrap, div, page etc.
+ #
+ # Remember to use #clone instead of #dup to keep the modules the object was
+ # extended with.
+ #
+ # TODO: more doc.
+ module Output
+
+ require 'coderay/encoders/html/numerization.rb'
+
+ attr_accessor :css
+
+ class << self
+
+ # This makes Output look like a class.
+ #
+ # Example:
+ #
+ # a = Output.new 'Code'
+ # a.wrap! :page
+ def new string, css = CSS.new, element = nil
+ output = string.clone.extend self
+ output.wrapped_in = element
+ output.css = css
+ output
+ end
+
+ # Raises an exception if an object that doesn't respond to to_str is extended by Output,
+ # to prevent users from misuse. Use Module#remove_method to disable.
+ def extended o
+ warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
+ end
+
+ def make_stylesheet css, in_tag = false
+ sheet = css.stylesheet
+ sheet = <<-CSS if in_tag
+
+ CSS
+ sheet
+ end
+
+ def page_template_for_css css
+ sheet = make_stylesheet css
+ PAGE.apply 'CSS', sheet
+ end
+
+ # Define a new wrapper. This is meta programming.
+ def wrapper *wrappers
+ wrappers.each do |wrapper|
+ define_method wrapper do |*args|
+ wrap wrapper, *args
+ end
+ define_method "#{wrapper}!".to_sym do |*args|
+ wrap! wrapper, *args
+ end
+ end
+ end
+
+ end
+
+ wrapper :div, :span, :page
+
+ def wrapped_in? element
+ wrapped_in == element
+ end
+
+ def wrapped_in
+ @wrapped_in ||= nil
+ end
+ attr_writer :wrapped_in
+
+ def wrap_in template
+ clone.wrap_in! template
+ end
+
+ def wrap_in! template
+ Template.wrap! self, template, 'CONTENT'
+ self
+ end
+
+ def apply_title! title
+ self.sub!(/()(<\/title>)/) { $1 + title + $2 }
+ self
+ end
+
+ def wrap! element, *args
+ return self if not element or element == wrapped_in
+ case element
+ when :div
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! DIV
+ when :span
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! SPAN
+ when :page
+ wrap! :div if wrapped_in? nil
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
+ wrap_in! Output.page_template_for_css(@css)
+ if args.first.is_a?(Hash) && title = args.first[:title]
+ apply_title! title
+ end
+ self
+ when nil
+ return self
+ else
+ raise "Unknown value %p for :wrap" % element
+ end
+ @wrapped_in = element
+ self
+ end
+
+ def wrap *args
+ clone.wrap!(*args)
+ end
+
+ def stylesheet in_tag = false
+ Output.make_stylesheet @css, in_tag
+ end
+
+ class Template < String
+
+ def self.wrap! str, template, target
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if template =~ target
+ str[0,0] = $`
+ str << $'
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ def apply target, replacement
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if self =~ target
+ Template.new($` + replacement + $')
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ module Simple
+ def ` str #` <-- for stupid editors
+ Template.new str
+ end
+ end
+ end
+
+ extend Template::Simple
+
+#-- don't include the templates in docu
+
+ SPAN = `<%CONTENT%>`
+
+ DIV = <<-`DIV`
+
+ DIV
+
+ TABLE = <<-`TABLE`
+
+ <%LINE_NUMBERS%> |
+ <%CONTENT%> |
+
+ TABLE
+ # title="double click to expand"
+
+ LIST = <<-`LIST`
+
+<%CONTENT%>
+
+ LIST
+
+ PAGE = <<-`PAGE`
+
+
+
+
+
+
+
+
+
+<%CONTENT%>
+
+
+ PAGE
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/json.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/json.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,69 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ # = JSON Encoder
+ class JSON < Encoder
+
+ register_for :json
+ FILE_EXTENSION = 'json'
+
+ protected
+ def setup options
+ begin
+ require 'json'
+ rescue LoadError
+ require 'rubygems'
+ require 'json'
+ end
+ @out = []
+ end
+
+ def text_token text, kind
+ { :type => 'text', :text => text, :kind => kind }
+ end
+
+ def block_token action, kind
+ { :type => 'block', :action => action, :kind => kind }
+ end
+
+ def finish options
+ @out.to_json
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+$:.delete '.'
+require 'rubygems' if RUBY_VERSION < '1.9'
+
+class JSONEncoderTest < Test::Unit::TestCase
+
+ def test_json_output
+ tokens = CodeRay.scan <<-RUBY, :ruby
+puts "Hello world!"
+ RUBY
+ require 'json'
+ assert_equal [
+ {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
+ {"type"=>"text", "text"=>" ", "kind"=>"space"},
+ {"type"=>"block", "action"=>"open", "kind"=>"string"},
+ {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
+ {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
+ {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
+ {"type"=>"block", "action"=>"close", "kind"=>"string"},
+ {"type"=>"text", "text"=>"\n", "kind"=>"space"}
+ ], JSON.load(tokens.json)
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/lines_of_code.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/lines_of_code.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,90 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ # Counts the LoC (Lines of Code). Returns an Integer >= 0.
+ #
+ # Alias: :loc
+ #
+ # Everything that is not comment, markup, doctype/shebang, or an empty line,
+ # is considered to be code.
+ #
+ # For example,
+ # * HTML files not containing JavaScript have 0 LoC
+ # * in a Java class without comments, LoC is the number of non-empty lines
+ #
+ # A Scanner class should define the token kinds that are not code in the
+ # KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].
+ class LinesOfCode < Encoder
+
+ register_for :lines_of_code
+
+ NON_EMPTY_LINE = /^\s*\S.*$/
+
+ def compile tokens, options
+ if scanner = tokens.scanner
+ kinds_not_loc = scanner.class::KINDS_NOT_LOC
+ else
+ warn ArgumentError, 'Tokens have no scanner.' if $VERBOSE
+ kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
+ end
+ code = tokens.token_class_filter :exclude => kinds_not_loc
+ @loc = code.text.scan(NON_EMPTY_LINE).size
+ end
+
+ def finish options
+ @loc
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class LinesOfCodeTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::LinesOfCode < CodeRay::Encoders::Encoder
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :loc
+ end
+ assert_kind_of CodeRay::Encoders::LinesOfCode, filter
+ assert_nothing_raised do
+ filter = CodeRay.encoder :lines_of_code
+ end
+ assert_kind_of CodeRay::Encoders::LinesOfCode, filter
+ end
+
+ def test_lines_of_code
+ tokens = CodeRay.scan <<-RUBY, :ruby
+#!/usr/bin/env ruby
+
+# a minimal Ruby program
+puts "Hello world!"
+ RUBY
+ assert_equal 1, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
+ assert_equal 1, tokens.lines_of_code
+ assert_equal 1, tokens.loc
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ tokens << ["Hello\n", :world]
+ tokens << ["Hello\n", :space]
+ tokens << ["Hello\n", :comment]
+ assert_equal 2, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
+ assert_equal 2, tokens.lines_of_code
+ assert_equal 2, tokens.loc
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/null.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/null.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,26 @@
+module CodeRay
+module Encoders
+
+ # = Null Encoder
+ #
+ # Does nothing and returns an empty string.
+ class Null < Encoder
+
+ include Streamable
+ register_for :null
+
+ # Defined for faster processing
+ def to_proc
+ proc {}
+ end
+
+ protected
+
+ def token(*)
+ # do nothing
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/page.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/page.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,20 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Page < HTML
+
+ FILE_EXTENSION = 'html'
+
+ register_for :page
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :class,
+ :wrap => :page,
+ :line_numbers => :table
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/span.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/span.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,19 @@
+module CodeRay
+module Encoders
+
+ load :html
+
+ class Span < HTML
+
+ FILE_EXTENSION = 'span.html'
+
+ register_for :span
+
+ DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
+ :css => :style,
+ :wrap => :span
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/statistic.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/statistic.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,77 @@
+module CodeRay
+module Encoders
+
+ # Makes a statistic for the given tokens.
+ class Statistic < Encoder
+
+ include Streamable
+ register_for :stats, :statistic
+
+ attr_reader :type_stats, :real_token_count
+
+ protected
+
+ TypeStats = Struct.new :count, :size
+
+ def setup options
+ @type_stats = Hash.new { |h, k| h[k] = TypeStats.new 0, 0 }
+ @real_token_count = 0
+ end
+
+ def generate tokens, options
+ @tokens = tokens
+ super
+ end
+
+ def text_token text, kind
+ @real_token_count += 1 unless kind == :space
+ @type_stats[kind].count += 1
+ @type_stats[kind].size += text.size
+ @type_stats['TOTAL'].size += text.size
+ @type_stats['TOTAL'].count += 1
+ end
+
+ # TODO Hierarchy handling
+ def block_token action, kind
+ @type_stats['TOTAL'].count += 1
+ @type_stats['open/close'].count += 1
+ end
+
+ STATS = <<-STATS
+
+Code Statistics
+
+Tokens %8d
+ Non-Whitespace %8d
+Bytes Total %8d
+
+Token Types (%d):
+ type count ratio size (average)
+-------------------------------------------------------------
+%s
+ STATS
+# space 12007 33.81 % 1.7
+ TOKEN_TYPES_ROW = <<-TKR
+ %-20s %8d %6.2f %% %5.1f
+ TKR
+
+ def finish options
+ all = @type_stats['TOTAL']
+ all_count, all_size = all.count, all.size
+ @type_stats.each do |type, stat|
+ stat.size /= stat.count.to_f
+ end
+ types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
+ TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
+ end.join
+ STATS % [
+ all_count, @real_token_count, all_size,
+ @type_stats.delete_if { |k, v| k.is_a? String }.size,
+ types_stats
+ ]
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/term.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/term.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,158 @@
+# encoders/term.rb
+# By Rob Aldred (http://robaldred.co.uk)
+# Based on idea by Nathan Weizenbaum (http://nex-3.com)
+# MIT License (http://www.opensource.org/licenses/mit-license.php)
+#
+# A CodeRay encoder that outputs code highlighted for a color terminal.
+# Check out http://robaldred.co.uk
+
+module CodeRay
+ module Encoders
+ class Term < Encoder
+ register_for :term
+
+ TOKEN_COLORS = {
+ :annotation => '35',
+ :attribute_name => '33',
+ :attribute_name_fat => '33',
+ :attribute_value => '31',
+ :attribute_value_fat => '31',
+ :bin => '1;35',
+ :char => {:self => '36', :delimiter => '34'},
+ :class => '1;35',
+ :class_variable => '36',
+ :color => '32',
+ :comment => '37',
+ :complex => '34',
+ :constant => ['34', '4'],
+ :decoration => '35',
+ :definition => '1;32',
+ :directive => ['32', '4'],
+ :doc => '46',
+ :doctype => '1;30',
+ :doc_string => ['31', '4'],
+ :entity => '33',
+ :error => ['1;33', '41'],
+ :exception => '1;31',
+ :float => '1;35',
+ :function => '1;34',
+ :global_variable => '42',
+ :hex => '1;36',
+ :important => '1;31',
+ :include => '33',
+ :integer => '1;34',
+ :interpreted => '1;35',
+ :key => '35',
+ :label => '1;4',
+ :local_variable => '33',
+ :oct => '1;35',
+ :operator_name => '1;29',
+ :pre_constant => '1;36',
+ :pre_type => '1;30',
+ :predefined => ['4', '1;34'],
+ :preprocessor => '36',
+ :pseudo_class => '34',
+ :regexp => {
+ :content => '31',
+ :delimiter => '1;29',
+ :modifier => '35',
+ :function => '1;29'
+ },
+ :reserved => '1;31',
+ :shell => {
+ :self => '42',
+ :content => '1;29',
+ :delimiter => '37',
+ },
+ :string => {
+ :self => '32',
+ :modifier => '1;32',
+ :escape => '1;36',
+ :delimiter => '1;32',
+ },
+ :symbol => '1;32',
+ :tag => '34',
+ :tag_fat => '1;34',
+ :tag_special => ['34', '4'],
+ :type => '1;34',
+ :value => '36',
+ :variable => '34',
+ :insert => '42',
+ :delete => '41',
+ :change => '44',
+ :head => '45',
+ }
+ TOKEN_COLORS[:keyword] = TOKEN_COLORS[:reserved]
+ TOKEN_COLORS[:method] = TOKEN_COLORS[:function]
+ TOKEN_COLORS[:imaginary] = TOKEN_COLORS[:complex]
+ TOKEN_COLORS[:open] = TOKEN_COLORS[:close] = TOKEN_COLORS[:nesting_delimiter] = TOKEN_COLORS[:escape] = TOKEN_COLORS[:delimiter]
+
+ protected
+
+ def setup(options)
+ @out = ''
+ @opened = [nil]
+ @subcolors = nil
+ end
+
+ def finish(options)
+ super
+ end
+
+ def token text, type = :plain
+ case text
+
+ when nil
+ # raise 'Token with nil as text was given: %p' % [[text, type]]
+
+ when String
+
+ if color = (@subcolors || TOKEN_COLORS)[type]
+ color = color[:self] || return if Hash === color
+
+ @out << col(color) + text.gsub("\n", col(0) + "\n" + col(color)) + col(0)
+ @out << col(@subcolors[:self]) if @subcolors && @subcolors[:self]
+ else
+ @out << text
+ end
+
+ # token groups, eg. strings
+ when :open
+ @opened[0] = type
+ if color = TOKEN_COLORS[type]
+ if Hash === color
+ @subcolors = color
+ @out << col(color[:self]) if color[:self]
+ else
+ @subcolors = {}
+ @out << col(color)
+ end
+ end
+ @opened << type
+ when :close
+ if @opened.empty?
+ # nothing to close
+ else
+ @out << col(0) if (@subcolors || {})[:self]
+ @subcolors = nil
+ @opened.pop
+ end
+
+ # whole lines to be highlighted, eg. a added/modified/deleted lines in a diff
+ when :begin_line
+
+ when :end_line
+
+ else
+ raise 'unknown token kind: %p' % [text]
+ end
+ end
+
+ private
+
+ def col(color)
+ Array(color).map { |c| "\e[#{c}m" }.join
+ end
+ end
+ end
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/text.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/text.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,32 @@
+module CodeRay
+module Encoders
+
+ class Text < Encoder
+
+ include Streamable
+ register_for :text
+
+ FILE_EXTENSION = 'txt'
+
+ DEFAULT_OPTIONS = {
+ :separator => ''
+ }
+
+ protected
+ def setup options
+ super
+ @sep = options[:separator]
+ end
+
+ def text_token text, kind
+ text + @sep
+ end
+
+ def finish options
+ super.chomp @sep
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/token_class_filter.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/token_class_filter.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,84 @@
+($:.unshift '../..'; require 'coderay') unless defined? CodeRay
+module CodeRay
+module Encoders
+
+ load :filter
+
+ class TokenClassFilter < Filter
+
+ include Streamable
+ register_for :token_class_filter
+
+ DEFAULT_OPTIONS = {
+ :exclude => [],
+ :include => :all
+ }
+
+ protected
+ def setup options
+ super
+ @exclude = options[:exclude]
+ @exclude = Array(@exclude) unless @exclude == :all
+ @include = options[:include]
+ @include = Array(@include) unless @include == :all
+ end
+
+ def include_text_token? text, kind
+ (@include == :all || @include.include?(kind)) &&
+ !(@exclude == :all || @exclude.include?(kind))
+ end
+
+ end
+
+end
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class TokenClassFilterTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Encoder
+ assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Filter
+ filter = nil
+ assert_nothing_raised do
+ filter = CodeRay.encoder :token_class_filter
+ end
+ assert_instance_of CodeRay::Encoders::TokenClassFilter, filter
+ end
+
+ def test_filtering_text_tokens
+ tokens = CodeRay::Tokens.new
+ for i in 1..10
+ tokens << [i.to_s, :index]
+ tokens << [' ', :space] if i < 10
+ end
+ assert_equal 10, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :space).size
+ assert_equal 10, tokens.token_class_filter(:exclude => :space).size
+ assert_equal 9, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :space).size
+ assert_equal 9, tokens.token_class_filter(:include => :space).size
+ assert_equal 0, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :all).size
+ assert_equal 0, tokens.token_class_filter(:exclude => :all).size
+ end
+
+ def test_filtering_block_tokens
+ tokens = CodeRay::Tokens.new
+ 10.times do |i|
+ tokens << [:open, :index]
+ tokens << [i.to_s, :content]
+ tokens << [:close, :index]
+ end
+ assert_equal 20, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :blubb).size
+ assert_equal 20, tokens.token_class_filter(:include => :blubb).size
+ assert_equal 30, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :index).size
+ assert_equal 30, tokens.token_class_filter(:exclude => :index).size
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/xml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/xml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,71 @@
+module CodeRay
+module Encoders
+
+ # = XML Encoder
+ #
+ # Uses REXML. Very slow.
+ class XML < Encoder
+
+ include Streamable
+ register_for :xml
+
+ FILE_EXTENSION = 'xml'
+
+ require 'rexml/document'
+
+ DEFAULT_OPTIONS = {
+ :tab_width => 8,
+ :pretty => -1,
+ :transitive => false,
+ }
+
+ protected
+
+ def setup options
+ @doc = REXML::Document.new
+ @doc << REXML::XMLDecl.new
+ @tab_width = options[:tab_width]
+ @root = @node = @doc.add_element('coderay-tokens')
+ end
+
+ def finish options
+ @out = ''
+ @doc.write @out, options[:pretty], options[:transitive], true
+ @out
+ end
+
+ def text_token text, kind
+ if kind == :space
+ token = @node
+ else
+ token = @node.add_element kind.to_s
+ end
+ text.scan(/(\x20+)|(\t+)|(\n)|[^\x20\t\n]+/) do |space, tab, nl|
+ case
+ when space
+ token << REXML::Text.new(space, true)
+ when tab
+ token << REXML::Text.new(tab, true)
+ when nl
+ token << REXML::Text.new(nl, true)
+ else
+ token << REXML::Text.new($&)
+ end
+ end
+ end
+
+ def open_token kind
+ @node = @node.add_element kind.to_s
+ end
+
+ def close_token kind
+ if @node == @root
+ raise 'no token to close!'
+ end
+ @node = @node.parent
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/encoders/yaml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/encoders/yaml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,22 @@
+module CodeRay
+module Encoders
+
+ # = YAML Encoder
+ #
+ # Slow.
+ class YAML < Encoder
+
+ register_for :yaml
+
+ FILE_EXTENSION = 'yaml'
+
+ protected
+ def compile tokens, options
+ require 'yaml'
+ @out = tokens.to_a.to_yaml
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/for_redcloth.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/for_redcloth.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,95 @@
+module CodeRay
+
+ # A little hack to enable CodeRay highlighting in RedCloth.
+ #
+ # Usage:
+ # require 'coderay'
+ # require 'coderay/for_redcloth'
+ # RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ #
+ # Make sure you have RedCloth 4.0.3 activated, for example by calling
+ # require 'rubygems'
+ # before RedCloth is loaded and before calling CodeRay.for_redcloth.
+ module ForRedCloth
+
+ def self.install
+ gem 'RedCloth', '>= 4.0.3' if defined? gem
+ require 'redcloth'
+ unless RedCloth::VERSION.to_s >= '4.0.3'
+ if defined? gem
+ raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later. ' +
+ "You have #{RedCloth::VERSION}. Please gem install RedCloth."
+ else
+ $".delete 'redcloth.rb' # sorry, but it works
+ require 'rubygems'
+ return install # retry
+ end
+ end
+ unless RedCloth::VERSION.to_s >= '4.2.2'
+ warn 'CodeRay.for_redcloth works best with RedCloth version 4.2.2 or later.'
+ end
+ RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
+ RedCloth::Formatters::HTML.module_eval do
+ def unescape(html)
+ replacements = {
+ '&' => '&',
+ '"' => '"',
+ '>' => '>',
+ '<' => '<',
+ }
+ html.gsub(/&(?:amp|quot|[gl]t);/) { |entity| replacements[entity] }
+ end
+ undef code, bc_open, bc_close, escape_pre
+ def code(opts) # :nodoc:
+ opts[:block] = true
+ if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
+ # simulating pre-4.2 behavior
+ if opts[:text].sub!(/\A\[(\w+)\]/, '')
+ if CodeRay::Scanners[$1].plugin_id == 'plaintext'
+ opts[:text] = $& + opts[:text]
+ else
+ opts[:lang] = $1
+ end
+ end
+ end
+ if opts[:lang] && !filter_coderay
+ require 'coderay'
+ @in_bc ||= nil
+ format = @in_bc ? :div : :span
+ opts[:text] = unescape(opts[:text]) unless @in_bc
+ highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
+ highlighted_code.sub!(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
+ highlighted_code
+ else
+ "#{opts[:text]} "
+ end
+ end
+ def bc_open(opts) # :nodoc:
+ opts[:block] = true
+ @in_bc = opts
+ opts[:lang] ? '' : ""
+ end
+ def bc_close(opts) # :nodoc:
+ opts = @in_bc
+ @in_bc = nil
+ opts[:lang] ? '' : " \n"
+ end
+ def escape_pre(text)
+ if @in_bc ||= nil
+ text
+ else
+ html_esc(text, :html_escape_preformatted)
+ end
+ end
+ end
+ end
+
+ module TextileDoc # :nodoc:
+ attr_accessor :filter_coderay
+ end
+
+ end
+
+end
+
+CodeRay::ForRedCloth.install
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers
+END
+plugin.rb
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers/plugin.rb
+END
+file_type.rb
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers/file_type.rb
+END
+gzip_simple.rb
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers/gzip_simple.rb
+END
+word_list.rb
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers/word_list.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,164 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/helpers
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+plugin.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+a8ef4aea22392cc4012ee679fc1d15ba
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7926
+
+file_type.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+107e3d46dc60830e87b1a4ce4d467ce8
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6494
+
+gzip_simple.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+ffacc98651f60a6fe698427bbc3c3c86
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2701
+
+word_list.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+86d05af27cbe342789f28ed543956aa5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3229
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/file_type.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/file_type.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,255 @@
+#!/usr/bin/env ruby
+module CodeRay
+
+# = FileType
+#
+# A simple filetype recognizer.
+#
+# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
+#
+# License:: LGPL / ask the author
+# Version:: 0.1 (2005-09-01)
+#
+# == Documentation
+#
+# # determine the type of the given
+# lang = FileType[ARGV.first]
+#
+# # return :plaintext if the file type is unknown
+# lang = FileType.fetch ARGV.first, :plaintext
+#
+# # try the shebang line, too
+# lang = FileType.fetch ARGV.first, :plaintext, true
+module FileType
+
+ UnknownFileType = Class.new Exception
+
+ class << self
+
+ # Try to determine the file type of the file.
+ #
+ # +filename+ is a relative or absolute path to a file.
+ #
+ # The file itself is only accessed when +read_shebang+ is set to true.
+ # That means you can get filetypes from files that don't exist.
+ def [] filename, read_shebang = false
+ name = File.basename filename
+ ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
+ ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
+
+ type =
+ TypeFromExt[ext] ||
+ TypeFromExt[ext.downcase] ||
+ (TypeFromExt[ext2] if ext2) ||
+ (TypeFromExt[ext2.downcase] if ext2) ||
+ TypeFromName[name] ||
+ TypeFromName[name.downcase]
+ type ||= shebang(filename) if read_shebang
+
+ type
+ end
+
+ def shebang filename
+ begin
+ File.open filename, 'r' do |f|
+ if first_line = f.gets
+ if type = first_line[TypeFromShebang]
+ type.to_sym
+ end
+ end
+ end
+ rescue IOError
+ nil
+ end
+ end
+
+ # This works like Hash#fetch.
+ #
+ # If the filetype cannot be found, the +default+ value
+ # is returned.
+ def fetch filename, default = nil, read_shebang = false
+ if default and block_given?
+ warn 'block supersedes default value argument'
+ end
+
+ unless type = self[filename, read_shebang]
+ return yield if block_given?
+ return default if default
+ raise UnknownFileType, 'Could not determine type of %p.' % filename
+ end
+ type
+ end
+
+ end
+
+ TypeFromExt = {
+ 'c' => :c,
+ 'css' => :css,
+ 'diff' => :diff,
+ 'dpr' => :delphi,
+ 'groovy' => :groovy,
+ 'gvy' => :groovy,
+ 'h' => :c,
+ 'htm' => :html,
+ 'html' => :html,
+ 'html.erb' => :rhtml,
+ 'java' => :java,
+ 'js' => :java_script,
+ 'json' => :json,
+ 'mab' => :ruby,
+ 'pas' => :delphi,
+ 'patch' => :diff,
+ 'php' => :php,
+ 'php3' => :php,
+ 'php4' => :php,
+ 'php5' => :php,
+ 'py' => :python,
+ 'py3' => :python,
+ 'pyw' => :python,
+ 'rake' => :ruby,
+ 'raydebug' => :debug,
+ 'rb' => :ruby,
+ 'rbw' => :ruby,
+ 'rhtml' => :rhtml,
+ 'rxml' => :ruby,
+ 'sch' => :scheme,
+ 'sql' => :sql,
+ 'ss' => :scheme,
+ 'xhtml' => :xhtml,
+ 'xml' => :xml,
+ 'yaml' => :yaml,
+ 'yml' => :yaml,
+ }
+ for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
+ TypeFromExt[cpp_alias] = :cpp
+ end
+
+ TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
+
+ TypeFromName = {
+ 'Rakefile' => :ruby,
+ 'Rantfile' => :ruby,
+ }
+
+end
+
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class FileTypeTests < Test::Unit::TestCase
+
+ include CodeRay
+
+ def test_fetch
+ assert_raise FileType::UnknownFileType do
+ FileType.fetch ''
+ end
+
+ assert_throws :not_found do
+ FileType.fetch '.' do
+ throw :not_found
+ end
+ end
+
+ assert_equal :default, FileType.fetch('c', :default)
+
+ stderr, fake_stderr = $stderr, Object.new
+ $err = ''
+ def fake_stderr.write x
+ $err << x
+ end
+ $stderr = fake_stderr
+ FileType.fetch('c', :default) { }
+ assert_equal "block supersedes default value argument\n", $err
+ $stderr = stderr
+ end
+
+ def test_ruby
+ assert_equal :ruby, FileType['test.rb']
+ assert_equal :ruby, FileType['test.java.rb']
+ assert_equal :java, FileType['test.rb.java']
+ assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
+ assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
+ assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
+ assert_equal :ruby, FileType['./lib/tasks\repository.rake']
+ assert_not_equal :ruby, FileType['test_rb']
+ assert_not_equal :ruby, FileType['Makefile']
+ assert_not_equal :ruby, FileType['set.rb/set']
+ assert_not_equal :ruby, FileType['~/projects/blabla/rb']
+ end
+
+ def test_c
+ assert_equal :c, FileType['test.c']
+ assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
+ assert_not_equal :c, FileType['test_c']
+ assert_not_equal :c, FileType['Makefile']
+ assert_not_equal :c, FileType['set.h/set']
+ assert_not_equal :c, FileType['~/projects/blabla/c']
+ end
+
+ def test_cpp
+ assert_equal :cpp, FileType['test.c++']
+ assert_equal :cpp, FileType['test.cxx']
+ assert_equal :cpp, FileType['test.hh']
+ assert_equal :cpp, FileType['test.hpp']
+ assert_equal :cpp, FileType['test.cu']
+ assert_equal :cpp, FileType['test.C']
+ assert_not_equal :cpp, FileType['test.c']
+ assert_not_equal :cpp, FileType['test.h']
+ end
+
+ def test_html
+ assert_equal :html, FileType['test.htm']
+ assert_equal :xhtml, FileType['test.xhtml']
+ assert_equal :xhtml, FileType['test.html.xhtml']
+ assert_equal :rhtml, FileType['_form.rhtml']
+ assert_equal :rhtml, FileType['_form.html.erb']
+ end
+
+ def test_yaml
+ assert_equal :yaml, FileType['test.yml']
+ assert_equal :yaml, FileType['test.yaml']
+ assert_equal :yaml, FileType['my.html.yaml']
+ assert_not_equal :yaml, FileType['YAML']
+ end
+
+ def test_pathname
+ require 'pathname'
+ pn = Pathname.new 'test.rb'
+ assert_equal :ruby, FileType[pn]
+ dir = Pathname.new '/etc/var/blubb'
+ assert_equal :ruby, FileType[dir + pn]
+ assert_equal :cpp, FileType[dir + 'test.cpp']
+ end
+
+ def test_no_shebang
+ dir = './test'
+ if File.directory? dir
+ Dir.chdir dir do
+ assert_equal :c, FileType['test.c']
+ end
+ end
+ end
+
+ def test_shebang_empty_file
+ require 'tmpdir'
+ tmpfile = File.join(Dir.tmpdir, 'bla')
+ File.open(tmpfile, 'w') { } # touch
+ assert_equal nil, FileType[tmpfile]
+ end
+
+ def test_shebang
+ require 'tmpdir'
+ tmpfile = File.join(Dir.tmpdir, 'bla')
+ File.open(tmpfile, 'w') { |f| f.puts '#!/usr/bin/env ruby' }
+ assert_equal :ruby, FileType[tmpfile, true]
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/gzip_simple.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/gzip_simple.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,123 @@
+# =GZip Simple
+#
+# A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
+#
+# Author: murphy (mail to murphy rubychan de)
+#
+# Version: 0.2 (2005.may.28)
+#
+# ==Documentation
+#
+# See +GZip+ module and the +String+ extensions.
+#
+module GZip
+
+ require 'zlib'
+
+ # The default zipping level. 7 zips good and fast.
+ DEFAULT_GZIP_LEVEL = 7
+
+ # Unzips the given string +s+.
+ #
+ # Example:
+ # require 'gzip_simple'
+ # print GZip.gunzip(File.read('adresses.gz'))
+ def GZip.gunzip s
+ Zlib::Inflate.inflate s
+ end
+
+ # Zips the given string +s+.
+ #
+ # Example:
+ # require 'gzip_simple'
+ # File.open('adresses.gz', 'w') do |file
+ # file.write GZip.gzip('Mum: 0123 456 789', 9)
+ # end
+ #
+ # If you provide a +level+, you can control how strong
+ # the string is compressed:
+ # - 0: no compression, only convert to gzip format
+ # - 1: compress fast
+ # - 7: compress more, but still fast (default)
+ # - 8: compress more, slower
+ # - 9: compress best, very slow
+ def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
+ Zlib::Deflate.new(level).deflate s, Zlib::FINISH
+ end
+end
+
+
+# String extensions to use the GZip module.
+#
+# The methods gzip and gunzip provide an even more simple
+# interface to the ZLib:
+#
+# # create a big string
+# x = 'a' * 1000
+#
+# # zip it
+# x_gz = x.gzip
+#
+# # test the result
+# puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
+# #-> Zipped 1000 bytes to 19 bytes.
+#
+# # unzipping works
+# p x_gz.gunzip == x #-> true
+class String
+ # Returns the string, unzipped.
+ # See GZip.gunzip
+ def gunzip
+ GZip.gunzip self
+ end
+ # Replaces the string with its unzipped value.
+ # See GZip.gunzip
+ def gunzip!
+ replace gunzip
+ end
+
+ # Returns the string, zipped.
+ # +level+ is the gzip compression level, see GZip.gzip.
+ def gzip level = GZip::DEFAULT_GZIP_LEVEL
+ GZip.gzip self, level
+ end
+ # Replaces the string with its zipped value.
+ # See GZip.gzip.
+ def gzip!(*args)
+ replace gzip(*args)
+ end
+end
+
+if $0 == __FILE__
+ eval DATA.read, nil, $0, __LINE__+4
+end
+
+__END__
+#CODE
+
+# Testing / Benchmark
+x = 'a' * 1000
+x_gz = x.gzip
+puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
+p x_gz.gunzip == x #-> true
+
+require 'benchmark'
+
+INFO = 'packed to %0.3f%%' # :nodoc:
+
+x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
+Benchmark.bm(10) do |bm|
+ for level in 0..9
+ bm.report "zip #{level}" do
+ $x = x.gzip level
+ end
+ puts INFO % [100.0 * $x.size / x.size]
+ end
+ bm.report 'zip' do
+ $x = x.gzip
+ end
+ puts INFO % [100.0 * $x.size / x.size]
+ bm.report 'unzip' do
+ $x.gunzip
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/plugin.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/plugin.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,349 @@
+module CodeRay
+
+# = PluginHost
+#
+# A simple subclass plugin system.
+#
+# Example:
+# class Generators < PluginHost
+# plugin_path 'app/generators'
+# end
+#
+# class Generator
+# extend Plugin
+# PLUGIN_HOST = Generators
+# end
+#
+# class FancyGenerator < Generator
+# register_for :fancy
+# end
+#
+# Generators[:fancy] #-> FancyGenerator
+# # or
+# CodeRay.require_plugin 'Generators/fancy'
+module PluginHost
+
+ # Raised if Encoders::[] fails because:
+ # * a file could not be found
+ # * the requested Encoder is not registered
+ PluginNotFound = Class.new Exception
+ HostNotFound = Class.new Exception
+
+ PLUGIN_HOSTS = []
+ PLUGIN_HOSTS_BY_ID = {} # dummy hash
+
+ # Loads all plugins using list and load.
+ def load_all
+ for plugin in list
+ load plugin
+ end
+ end
+
+ # Returns the Plugin for +id+.
+ #
+ # Example:
+ # yaml_plugin = MyPluginHost[:yaml]
+ def [] id, *args, &blk
+ plugin = validate_id(id)
+ begin
+ plugin = plugin_hash.[] plugin, *args, &blk
+ end while plugin.is_a? Symbol
+ plugin
+ end
+
+ # Alias for +[]+.
+ alias load []
+
+ def require_helper plugin_id, helper_name
+ path = path_to File.join(plugin_id, helper_name)
+ require path
+ end
+
+ class << self
+
+ # Adds the module/class to the PLUGIN_HOSTS list.
+ def extended mod
+ PLUGIN_HOSTS << mod
+ end
+
+ # Warns you that you should not #include this module.
+ def included mod
+ warn "#{name} should not be included. Use extend."
+ end
+
+ # Find the PluginHost for host_id.
+ def host_by_id host_id
+ unless PLUGIN_HOSTS_BY_ID.default_proc
+ ph = Hash.new do |h, a_host_id|
+ for host in PLUGIN_HOSTS
+ h[host.host_id] = host
+ end
+ h.fetch a_host_id, nil
+ end
+ PLUGIN_HOSTS_BY_ID.replace ph
+ end
+ PLUGIN_HOSTS_BY_ID[host_id]
+ end
+
+ end
+
+ # The path where the plugins can be found.
+ def plugin_path *args
+ unless args.empty?
+ @plugin_path = File.expand_path File.join(*args)
+ load_map
+ end
+ @plugin_path
+ end
+
+ # The host's ID.
+ #
+ # If PLUGIN_HOST_ID is not set, it is simply the class name.
+ def host_id
+ if self.const_defined? :PLUGIN_HOST_ID
+ self::PLUGIN_HOST_ID
+ else
+ name
+ end
+ end
+
+ # Map a plugin_id to another.
+ #
+ # Usage: Put this in a file plugin_path/_map.rb.
+ #
+ # class MyColorHost < PluginHost
+ # map :navy => :dark_blue,
+ # :maroon => :brown,
+ # :luna => :moon
+ # end
+ def map hash
+ for from, to in hash
+ from = validate_id from
+ to = validate_id to
+ plugin_hash[from] = to unless plugin_hash.has_key? from
+ end
+ end
+
+ # Define the default plugin to use when no plugin is found
+ # for a given id.
+ #
+ # See also map.
+ #
+ # class MyColorHost < PluginHost
+ # map :navy => :dark_blue
+ # default :gray
+ # end
+ def default id = nil
+ if id
+ id = validate_id id
+ plugin_hash[nil] = id
+ else
+ plugin_hash[nil]
+ end
+ end
+
+ # Every plugin must register itself for one or more
+ # +ids+ by calling register_for, which calls this method.
+ #
+ # See Plugin#register_for.
+ def register plugin, *ids
+ for id in ids
+ unless id.is_a? Symbol
+ raise ArgumentError,
+ "id must be a Symbol, but it was a #{id.class}"
+ end
+ plugin_hash[validate_id(id)] = plugin
+ end
+ end
+
+ # A Hash of plugion_id => Plugin pairs.
+ def plugin_hash
+ @plugin_hash ||= create_plugin_hash
+ end
+
+ # Returns an array of all .rb files in the plugin path.
+ #
+ # The extension .rb is not included.
+ def list
+ Dir[path_to('*')].select do |file|
+ File.basename(file)[/^(?!_)\w+\.rb$/]
+ end.map do |file|
+ File.basename file, '.rb'
+ end
+ end
+
+ # Makes a map of all loaded plugins.
+ def inspect
+ map = plugin_hash.dup
+ map.each do |id, plugin|
+ map[id] = plugin.to_s[/(?>\w+)$/]
+ end
+ "#{name}[#{host_id}]#{map.inspect}"
+ end
+
+protected
+ # Created a new plugin list and stores it to @plugin_hash.
+ def create_plugin_hash
+ @plugin_hash =
+ Hash.new do |h, plugin_id|
+ id = validate_id(plugin_id)
+ path = path_to id
+ begin
+ require path
+ rescue LoadError => boom
+ if h.has_key? nil # default plugin
+ h[id] = h[nil]
+ else
+ raise PluginNotFound, 'Could not load plugin %p: %s' % [id, boom]
+ end
+ else
+ # Plugin should have registered by now
+ unless h.has_key? id
+ raise PluginNotFound,
+ "No #{self.name} plugin for #{id.inspect} found in #{path}."
+ end
+ end
+ h[id]
+ end
+ end
+
+ # Loads the map file (see map).
+ #
+ # This is done automatically when plugin_path is called.
+ def load_map
+ mapfile = path_to '_map'
+ if File.exist? mapfile
+ require mapfile
+ elsif $VERBOSE
+ warn 'no _map.rb found for %s' % name
+ end
+ end
+
+ # Returns the Plugin for +id+.
+ # Use it like Hash#fetch.
+ #
+ # Example:
+ # yaml_plugin = MyPluginHost[:yaml, :default]
+ def fetch id, *args, &blk
+ plugin_hash.fetch validate_id(id), *args, &blk
+ end
+
+ # Returns the expected path to the plugin file for the given id.
+ def path_to plugin_id
+ File.join plugin_path, "#{plugin_id}.rb"
+ end
+
+ # Converts +id+ to a Symbol if it is a String,
+ # or returns +id+ if it already is a Symbol.
+ #
+ # Raises +ArgumentError+ for all other objects, or if the
+ # given String includes non-alphanumeric characters (\W).
+ def validate_id id
+ if id.is_a? Symbol or id.nil?
+ id
+ elsif id.is_a? String
+ if id[/\w+/] == id
+ id.downcase.to_sym
+ else
+ raise ArgumentError, "Invalid id: '#{id}' given."
+ end
+ else
+ raise ArgumentError,
+ "String or Symbol expected, but #{id.class} given."
+ end
+ end
+
+end
+
+
+# = Plugin
+#
+# Plugins have to include this module.
+#
+# IMPORTANT: use extend for this module.
+#
+# Example: see PluginHost.
+module Plugin
+
+ def included mod
+ warn "#{name} should not be included. Use extend."
+ end
+
+ # Register this class for the given langs.
+ # Example:
+ # class MyPlugin < PluginHost::BaseClass
+ # register_for :my_id
+ # ...
+ # end
+ #
+ # See PluginHost.register.
+ def register_for *ids
+ plugin_host.register self, *ids
+ end
+
+ # Returns the title of the plugin, or sets it to the
+ # optional argument +title+.
+ def title title = nil
+ if title
+ @title = title.to_s
+ else
+ @title ||= name[/([^:]+)$/, 1]
+ end
+ end
+
+ # The host for this Plugin class.
+ def plugin_host host = nil
+ if host and not host.is_a? PluginHost
+ raise ArgumentError,
+ "PluginHost expected, but #{host.class} given."
+ end
+ self.const_set :PLUGIN_HOST, host if host
+ self::PLUGIN_HOST
+ end
+
+ # Require some helper files.
+ #
+ # Example:
+ #
+ # class MyPlugin < PluginHost::BaseClass
+ # register_for :my_id
+ # helper :my_helper
+ #
+ # The above example loads the file myplugin/my_helper.rb relative to the
+ # file in which MyPlugin was defined.
+ #
+ # You can also load a helper from a different plugin:
+ #
+ # helper 'other_plugin/helper_name'
+ def helper *helpers
+ for helper in helpers
+ if helper.is_a?(String) && helper[/\//]
+ self::PLUGIN_HOST.require_helper $`, $'
+ else
+ self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
+ end
+ end
+ end
+
+ # Returns the pulgin id used by the engine.
+ def plugin_id
+ name[/\w+$/].downcase
+ end
+
+end
+
+# Convenience method for plugin loading.
+# The syntax used is:
+#
+# CodeRay.require_plugin '/'
+#
+# Returns the loaded plugin.
+def self.require_plugin path
+ host_id, plugin_id = path.split '/', 2
+ host = PluginHost.host_by_id(host_id)
+ raise PluginHost::HostNotFound,
+ "No host for #{host_id.inspect} found." unless host
+ host.load plugin_id
+end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/word_list.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/.svn/text-base/word_list.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,138 @@
+module CodeRay
+
+# = WordList
+#
+# A Hash subclass designed for mapping word lists to token types.
+#
+# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
+#
+# License:: LGPL / ask the author
+# Version:: 1.1 (2006-Oct-19)
+#
+# A WordList is a Hash with some additional features.
+# It is intended to be used for keyword recognition.
+#
+# WordList is highly optimized to be used in Scanners,
+# typically to decide whether a given ident is a special token.
+#
+# For case insensitive words use CaseIgnoringWordList.
+#
+# Example:
+#
+# # define word arrays
+# RESERVED_WORDS = %w[
+# asm break case continue default do else
+# ...
+# ]
+#
+# PREDEFINED_TYPES = %w[
+# int long short char void
+# ...
+# ]
+#
+# PREDEFINED_CONSTANTS = %w[
+# EOF NULL ...
+# ]
+#
+# # make a WordList
+# IDENT_KIND = WordList.new(:ident).
+# add(RESERVED_WORDS, :reserved).
+# add(PREDEFINED_TYPES, :pre_type).
+# add(PREDEFINED_CONSTANTS, :pre_constant)
+#
+# ...
+#
+# def scan_tokens tokens, options
+# ...
+#
+# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
+# # use it
+# kind = IDENT_KIND[match]
+# ...
+class WordList < Hash
+
+ # Creates a new WordList with +default+ as default value.
+ #
+ # You can activate +caching+ to store the results for every [] request.
+ #
+ # With caching, methods like +include?+ or +delete+ may no longer behave
+ # as you expect. Therefore, it is recommended to use the [] method only.
+ def initialize default = false, caching = false, &block
+ if block
+ raise ArgumentError, 'Can\'t combine block with caching.' if caching
+ super(&block)
+ else
+ if caching
+ super() do |h, k|
+ h[k] = h.fetch k, default
+ end
+ else
+ super default
+ end
+ end
+ end
+
+ # Add words to the list and associate them with +kind+.
+ #
+ # Returns +self+, so you can concat add calls.
+ def add words, kind = true
+ words.each do |word|
+ self[word] = kind
+ end
+ self
+ end
+
+end
+
+
+# A CaseIgnoringWordList is like a WordList, only that
+# keys are compared case-insensitively.
+#
+# Ignoring the text case is realized by sending the +downcase+ message to
+# all keys.
+#
+# Caching usually makes a CaseIgnoringWordList faster, but it has to be
+# activated explicitely.
+class CaseIgnoringWordList < WordList
+
+ # Creates a new case-insensitive WordList with +default+ as default value.
+ #
+ # You can activate caching to store the results for every [] request.
+ # This speeds up subsequent lookups for the same word, but also
+ # uses memory.
+ def initialize default = false, caching = false
+ if caching
+ super(default, false) do |h, k|
+ h[k] = h.fetch k.downcase, default
+ end
+ else
+ super(default, false)
+ extend Uncached
+ end
+ end
+
+ module Uncached # :nodoc:
+ def [] key
+ super(key.downcase)
+ end
+ end
+
+ # Add +words+ to the list and associate them with +kind+.
+ def add words, kind = true
+ words.each do |word|
+ self[word.downcase] = kind
+ end
+ self
+ end
+
+end
+
+end
+
+__END__
+# check memory consumption
+END {
+ ObjectSpace.each_object(CodeRay::CaseIgnoringWordList) do |wl|
+ p wl.inject(0) { |memo, key, value| memo + key.size + 24 }
+ end
+}
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/file_type.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/file_type.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,255 @@
+#!/usr/bin/env ruby
+module CodeRay
+
+# = FileType
+#
+# A simple filetype recognizer.
+#
+# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
+#
+# License:: LGPL / ask the author
+# Version:: 0.1 (2005-09-01)
+#
+# == Documentation
+#
+# # determine the type of the given
+# lang = FileType[ARGV.first]
+#
+# # return :plaintext if the file type is unknown
+# lang = FileType.fetch ARGV.first, :plaintext
+#
+# # try the shebang line, too
+# lang = FileType.fetch ARGV.first, :plaintext, true
+module FileType
+
+ UnknownFileType = Class.new Exception
+
+ class << self
+
+ # Try to determine the file type of the file.
+ #
+ # +filename+ is a relative or absolute path to a file.
+ #
+ # The file itself is only accessed when +read_shebang+ is set to true.
+ # That means you can get filetypes from files that don't exist.
+ def [] filename, read_shebang = false
+ name = File.basename filename
+ ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
+ ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
+
+ type =
+ TypeFromExt[ext] ||
+ TypeFromExt[ext.downcase] ||
+ (TypeFromExt[ext2] if ext2) ||
+ (TypeFromExt[ext2.downcase] if ext2) ||
+ TypeFromName[name] ||
+ TypeFromName[name.downcase]
+ type ||= shebang(filename) if read_shebang
+
+ type
+ end
+
+ def shebang filename
+ begin
+ File.open filename, 'r' do |f|
+ if first_line = f.gets
+ if type = first_line[TypeFromShebang]
+ type.to_sym
+ end
+ end
+ end
+ rescue IOError
+ nil
+ end
+ end
+
+ # This works like Hash#fetch.
+ #
+ # If the filetype cannot be found, the +default+ value
+ # is returned.
+ def fetch filename, default = nil, read_shebang = false
+ if default and block_given?
+ warn 'block supersedes default value argument'
+ end
+
+ unless type = self[filename, read_shebang]
+ return yield if block_given?
+ return default if default
+ raise UnknownFileType, 'Could not determine type of %p.' % filename
+ end
+ type
+ end
+
+ end
+
+ TypeFromExt = {
+ 'c' => :c,
+ 'css' => :css,
+ 'diff' => :diff,
+ 'dpr' => :delphi,
+ 'groovy' => :groovy,
+ 'gvy' => :groovy,
+ 'h' => :c,
+ 'htm' => :html,
+ 'html' => :html,
+ 'html.erb' => :rhtml,
+ 'java' => :java,
+ 'js' => :java_script,
+ 'json' => :json,
+ 'mab' => :ruby,
+ 'pas' => :delphi,
+ 'patch' => :diff,
+ 'php' => :php,
+ 'php3' => :php,
+ 'php4' => :php,
+ 'php5' => :php,
+ 'py' => :python,
+ 'py3' => :python,
+ 'pyw' => :python,
+ 'rake' => :ruby,
+ 'raydebug' => :debug,
+ 'rb' => :ruby,
+ 'rbw' => :ruby,
+ 'rhtml' => :rhtml,
+ 'rxml' => :ruby,
+ 'sch' => :scheme,
+ 'sql' => :sql,
+ 'ss' => :scheme,
+ 'xhtml' => :xhtml,
+ 'xml' => :xml,
+ 'yaml' => :yaml,
+ 'yml' => :yaml,
+ }
+ for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
+ TypeFromExt[cpp_alias] = :cpp
+ end
+
+ TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
+
+ TypeFromName = {
+ 'Rakefile' => :ruby,
+ 'Rantfile' => :ruby,
+ }
+
+end
+
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class FileTypeTests < Test::Unit::TestCase
+
+ include CodeRay
+
+ def test_fetch
+ assert_raise FileType::UnknownFileType do
+ FileType.fetch ''
+ end
+
+ assert_throws :not_found do
+ FileType.fetch '.' do
+ throw :not_found
+ end
+ end
+
+ assert_equal :default, FileType.fetch('c', :default)
+
+ stderr, fake_stderr = $stderr, Object.new
+ $err = ''
+ def fake_stderr.write x
+ $err << x
+ end
+ $stderr = fake_stderr
+ FileType.fetch('c', :default) { }
+ assert_equal "block supersedes default value argument\n", $err
+ $stderr = stderr
+ end
+
+ def test_ruby
+ assert_equal :ruby, FileType['test.rb']
+ assert_equal :ruby, FileType['test.java.rb']
+ assert_equal :java, FileType['test.rb.java']
+ assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
+ assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
+ assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
+ assert_equal :ruby, FileType['./lib/tasks\repository.rake']
+ assert_not_equal :ruby, FileType['test_rb']
+ assert_not_equal :ruby, FileType['Makefile']
+ assert_not_equal :ruby, FileType['set.rb/set']
+ assert_not_equal :ruby, FileType['~/projects/blabla/rb']
+ end
+
+ def test_c
+ assert_equal :c, FileType['test.c']
+ assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
+ assert_not_equal :c, FileType['test_c']
+ assert_not_equal :c, FileType['Makefile']
+ assert_not_equal :c, FileType['set.h/set']
+ assert_not_equal :c, FileType['~/projects/blabla/c']
+ end
+
+ def test_cpp
+ assert_equal :cpp, FileType['test.c++']
+ assert_equal :cpp, FileType['test.cxx']
+ assert_equal :cpp, FileType['test.hh']
+ assert_equal :cpp, FileType['test.hpp']
+ assert_equal :cpp, FileType['test.cu']
+ assert_equal :cpp, FileType['test.C']
+ assert_not_equal :cpp, FileType['test.c']
+ assert_not_equal :cpp, FileType['test.h']
+ end
+
+ def test_html
+ assert_equal :html, FileType['test.htm']
+ assert_equal :xhtml, FileType['test.xhtml']
+ assert_equal :xhtml, FileType['test.html.xhtml']
+ assert_equal :rhtml, FileType['_form.rhtml']
+ assert_equal :rhtml, FileType['_form.html.erb']
+ end
+
+ def test_yaml
+ assert_equal :yaml, FileType['test.yml']
+ assert_equal :yaml, FileType['test.yaml']
+ assert_equal :yaml, FileType['my.html.yaml']
+ assert_not_equal :yaml, FileType['YAML']
+ end
+
+ def test_pathname
+ require 'pathname'
+ pn = Pathname.new 'test.rb'
+ assert_equal :ruby, FileType[pn]
+ dir = Pathname.new '/etc/var/blubb'
+ assert_equal :ruby, FileType[dir + pn]
+ assert_equal :cpp, FileType[dir + 'test.cpp']
+ end
+
+ def test_no_shebang
+ dir = './test'
+ if File.directory? dir
+ Dir.chdir dir do
+ assert_equal :c, FileType['test.c']
+ end
+ end
+ end
+
+ def test_shebang_empty_file
+ require 'tmpdir'
+ tmpfile = File.join(Dir.tmpdir, 'bla')
+ File.open(tmpfile, 'w') { } # touch
+ assert_equal nil, FileType[tmpfile]
+ end
+
+ def test_shebang
+ require 'tmpdir'
+ tmpfile = File.join(Dir.tmpdir, 'bla')
+ File.open(tmpfile, 'w') { |f| f.puts '#!/usr/bin/env ruby' }
+ assert_equal :ruby, FileType[tmpfile, true]
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/gzip_simple.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/gzip_simple.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,123 @@
+# =GZip Simple
+#
+# A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
+#
+# Author: murphy (mail to murphy rubychan de)
+#
+# Version: 0.2 (2005.may.28)
+#
+# ==Documentation
+#
+# See +GZip+ module and the +String+ extensions.
+#
+module GZip
+
+ require 'zlib'
+
+ # The default zipping level. 7 zips good and fast.
+ DEFAULT_GZIP_LEVEL = 7
+
+ # Unzips the given string +s+.
+ #
+ # Example:
+ # require 'gzip_simple'
+ # print GZip.gunzip(File.read('adresses.gz'))
+ def GZip.gunzip s
+ Zlib::Inflate.inflate s
+ end
+
+ # Zips the given string +s+.
+ #
+ # Example:
+ # require 'gzip_simple'
+ # File.open('adresses.gz', 'w') do |file
+ # file.write GZip.gzip('Mum: 0123 456 789', 9)
+ # end
+ #
+ # If you provide a +level+, you can control how strong
+ # the string is compressed:
+ # - 0: no compression, only convert to gzip format
+ # - 1: compress fast
+ # - 7: compress more, but still fast (default)
+ # - 8: compress more, slower
+ # - 9: compress best, very slow
+ def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
+ Zlib::Deflate.new(level).deflate s, Zlib::FINISH
+ end
+end
+
+
+# String extensions to use the GZip module.
+#
+# The methods gzip and gunzip provide an even more simple
+# interface to the ZLib:
+#
+# # create a big string
+# x = 'a' * 1000
+#
+# # zip it
+# x_gz = x.gzip
+#
+# # test the result
+# puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
+# #-> Zipped 1000 bytes to 19 bytes.
+#
+# # unzipping works
+# p x_gz.gunzip == x #-> true
+class String
+ # Returns the string, unzipped.
+ # See GZip.gunzip
+ def gunzip
+ GZip.gunzip self
+ end
+ # Replaces the string with its unzipped value.
+ # See GZip.gunzip
+ def gunzip!
+ replace gunzip
+ end
+
+ # Returns the string, zipped.
+ # +level+ is the gzip compression level, see GZip.gzip.
+ def gzip level = GZip::DEFAULT_GZIP_LEVEL
+ GZip.gzip self, level
+ end
+ # Replaces the string with its zipped value.
+ # See GZip.gzip.
+ def gzip!(*args)
+ replace gzip(*args)
+ end
+end
+
+if $0 == __FILE__
+ eval DATA.read, nil, $0, __LINE__+4
+end
+
+__END__
+#CODE
+
+# Testing / Benchmark
+x = 'a' * 1000
+x_gz = x.gzip
+puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
+p x_gz.gunzip == x #-> true
+
+require 'benchmark'
+
+INFO = 'packed to %0.3f%%' # :nodoc:
+
+x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
+Benchmark.bm(10) do |bm|
+ for level in 0..9
+ bm.report "zip #{level}" do
+ $x = x.gzip level
+ end
+ puts INFO % [100.0 * $x.size / x.size]
+ end
+ bm.report 'zip' do
+ $x = x.gzip
+ end
+ puts INFO % [100.0 * $x.size / x.size]
+ bm.report 'unzip' do
+ $x.gunzip
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/plugin.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/plugin.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,349 @@
+module CodeRay
+
+# = PluginHost
+#
+# A simple subclass plugin system.
+#
+# Example:
+# class Generators < PluginHost
+# plugin_path 'app/generators'
+# end
+#
+# class Generator
+# extend Plugin
+# PLUGIN_HOST = Generators
+# end
+#
+# class FancyGenerator < Generator
+# register_for :fancy
+# end
+#
+# Generators[:fancy] #-> FancyGenerator
+# # or
+# CodeRay.require_plugin 'Generators/fancy'
+module PluginHost
+
+ # Raised if Encoders::[] fails because:
+ # * a file could not be found
+ # * the requested Encoder is not registered
+ PluginNotFound = Class.new Exception
+ HostNotFound = Class.new Exception
+
+ PLUGIN_HOSTS = []
+ PLUGIN_HOSTS_BY_ID = {} # dummy hash
+
+ # Loads all plugins using list and load.
+ def load_all
+ for plugin in list
+ load plugin
+ end
+ end
+
+ # Returns the Plugin for +id+.
+ #
+ # Example:
+ # yaml_plugin = MyPluginHost[:yaml]
+ def [] id, *args, &blk
+ plugin = validate_id(id)
+ begin
+ plugin = plugin_hash.[] plugin, *args, &blk
+ end while plugin.is_a? Symbol
+ plugin
+ end
+
+ # Alias for +[]+.
+ alias load []
+
+ def require_helper plugin_id, helper_name
+ path = path_to File.join(plugin_id, helper_name)
+ require path
+ end
+
+ class << self
+
+ # Adds the module/class to the PLUGIN_HOSTS list.
+ def extended mod
+ PLUGIN_HOSTS << mod
+ end
+
+ # Warns you that you should not #include this module.
+ def included mod
+ warn "#{name} should not be included. Use extend."
+ end
+
+ # Find the PluginHost for host_id.
+ def host_by_id host_id
+ unless PLUGIN_HOSTS_BY_ID.default_proc
+ ph = Hash.new do |h, a_host_id|
+ for host in PLUGIN_HOSTS
+ h[host.host_id] = host
+ end
+ h.fetch a_host_id, nil
+ end
+ PLUGIN_HOSTS_BY_ID.replace ph
+ end
+ PLUGIN_HOSTS_BY_ID[host_id]
+ end
+
+ end
+
+ # The path where the plugins can be found.
+ def plugin_path *args
+ unless args.empty?
+ @plugin_path = File.expand_path File.join(*args)
+ load_map
+ end
+ @plugin_path
+ end
+
+ # The host's ID.
+ #
+ # If PLUGIN_HOST_ID is not set, it is simply the class name.
+ def host_id
+ if self.const_defined? :PLUGIN_HOST_ID
+ self::PLUGIN_HOST_ID
+ else
+ name
+ end
+ end
+
+ # Map a plugin_id to another.
+ #
+ # Usage: Put this in a file plugin_path/_map.rb.
+ #
+ # class MyColorHost < PluginHost
+ # map :navy => :dark_blue,
+ # :maroon => :brown,
+ # :luna => :moon
+ # end
+ def map hash
+ for from, to in hash
+ from = validate_id from
+ to = validate_id to
+ plugin_hash[from] = to unless plugin_hash.has_key? from
+ end
+ end
+
+ # Define the default plugin to use when no plugin is found
+ # for a given id.
+ #
+ # See also map.
+ #
+ # class MyColorHost < PluginHost
+ # map :navy => :dark_blue
+ # default :gray
+ # end
+ def default id = nil
+ if id
+ id = validate_id id
+ plugin_hash[nil] = id
+ else
+ plugin_hash[nil]
+ end
+ end
+
+ # Every plugin must register itself for one or more
+ # +ids+ by calling register_for, which calls this method.
+ #
+ # See Plugin#register_for.
+ def register plugin, *ids
+ for id in ids
+ unless id.is_a? Symbol
+ raise ArgumentError,
+ "id must be a Symbol, but it was a #{id.class}"
+ end
+ plugin_hash[validate_id(id)] = plugin
+ end
+ end
+
+ # A Hash of plugion_id => Plugin pairs.
+ def plugin_hash
+ @plugin_hash ||= create_plugin_hash
+ end
+
+ # Returns an array of all .rb files in the plugin path.
+ #
+ # The extension .rb is not included.
+ def list
+ Dir[path_to('*')].select do |file|
+ File.basename(file)[/^(?!_)\w+\.rb$/]
+ end.map do |file|
+ File.basename file, '.rb'
+ end
+ end
+
+ # Makes a map of all loaded plugins.
+ def inspect
+ map = plugin_hash.dup
+ map.each do |id, plugin|
+ map[id] = plugin.to_s[/(?>\w+)$/]
+ end
+ "#{name}[#{host_id}]#{map.inspect}"
+ end
+
+protected
+ # Created a new plugin list and stores it to @plugin_hash.
+ def create_plugin_hash
+ @plugin_hash =
+ Hash.new do |h, plugin_id|
+ id = validate_id(plugin_id)
+ path = path_to id
+ begin
+ require path
+ rescue LoadError => boom
+ if h.has_key? nil # default plugin
+ h[id] = h[nil]
+ else
+ raise PluginNotFound, 'Could not load plugin %p: %s' % [id, boom]
+ end
+ else
+ # Plugin should have registered by now
+ unless h.has_key? id
+ raise PluginNotFound,
+ "No #{self.name} plugin for #{id.inspect} found in #{path}."
+ end
+ end
+ h[id]
+ end
+ end
+
+ # Loads the map file (see map).
+ #
+ # This is done automatically when plugin_path is called.
+ def load_map
+ mapfile = path_to '_map'
+ if File.exist? mapfile
+ require mapfile
+ elsif $VERBOSE
+ warn 'no _map.rb found for %s' % name
+ end
+ end
+
+ # Returns the Plugin for +id+.
+ # Use it like Hash#fetch.
+ #
+ # Example:
+ # yaml_plugin = MyPluginHost[:yaml, :default]
+ def fetch id, *args, &blk
+ plugin_hash.fetch validate_id(id), *args, &blk
+ end
+
+ # Returns the expected path to the plugin file for the given id.
+ def path_to plugin_id
+ File.join plugin_path, "#{plugin_id}.rb"
+ end
+
+ # Converts +id+ to a Symbol if it is a String,
+ # or returns +id+ if it already is a Symbol.
+ #
+ # Raises +ArgumentError+ for all other objects, or if the
+ # given String includes non-alphanumeric characters (\W).
+ def validate_id id
+ if id.is_a? Symbol or id.nil?
+ id
+ elsif id.is_a? String
+ if id[/\w+/] == id
+ id.downcase.to_sym
+ else
+ raise ArgumentError, "Invalid id: '#{id}' given."
+ end
+ else
+ raise ArgumentError,
+ "String or Symbol expected, but #{id.class} given."
+ end
+ end
+
+end
+
+
+# = Plugin
+#
+# Plugins have to include this module.
+#
+# IMPORTANT: use extend for this module.
+#
+# Example: see PluginHost.
+module Plugin
+
+ def included mod
+ warn "#{name} should not be included. Use extend."
+ end
+
+ # Register this class for the given langs.
+ # Example:
+ # class MyPlugin < PluginHost::BaseClass
+ # register_for :my_id
+ # ...
+ # end
+ #
+ # See PluginHost.register.
+ def register_for *ids
+ plugin_host.register self, *ids
+ end
+
+ # Returns the title of the plugin, or sets it to the
+ # optional argument +title+.
+ def title title = nil
+ if title
+ @title = title.to_s
+ else
+ @title ||= name[/([^:]+)$/, 1]
+ end
+ end
+
+ # The host for this Plugin class.
+ def plugin_host host = nil
+ if host and not host.is_a? PluginHost
+ raise ArgumentError,
+ "PluginHost expected, but #{host.class} given."
+ end
+ self.const_set :PLUGIN_HOST, host if host
+ self::PLUGIN_HOST
+ end
+
+ # Require some helper files.
+ #
+ # Example:
+ #
+ # class MyPlugin < PluginHost::BaseClass
+ # register_for :my_id
+ # helper :my_helper
+ #
+ # The above example loads the file myplugin/my_helper.rb relative to the
+ # file in which MyPlugin was defined.
+ #
+ # You can also load a helper from a different plugin:
+ #
+ # helper 'other_plugin/helper_name'
+ def helper *helpers
+ for helper in helpers
+ if helper.is_a?(String) && helper[/\//]
+ self::PLUGIN_HOST.require_helper $`, $'
+ else
+ self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
+ end
+ end
+ end
+
+ # Returns the pulgin id used by the engine.
+ def plugin_id
+ name[/\w+$/].downcase
+ end
+
+end
+
+# Convenience method for plugin loading.
+# The syntax used is:
+#
+# CodeRay.require_plugin '/'
+#
+# Returns the loaded plugin.
+def self.require_plugin path
+ host_id, plugin_id = path.split '/', 2
+ host = PluginHost.host_by_id(host_id)
+ raise PluginHost::HostNotFound,
+ "No host for #{host_id.inspect} found." unless host
+ host.load plugin_id
+end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/helpers/word_list.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/helpers/word_list.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,138 @@
+module CodeRay
+
+# = WordList
+#
+# A Hash subclass designed for mapping word lists to token types.
+#
+# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
+#
+# License:: LGPL / ask the author
+# Version:: 1.1 (2006-Oct-19)
+#
+# A WordList is a Hash with some additional features.
+# It is intended to be used for keyword recognition.
+#
+# WordList is highly optimized to be used in Scanners,
+# typically to decide whether a given ident is a special token.
+#
+# For case insensitive words use CaseIgnoringWordList.
+#
+# Example:
+#
+# # define word arrays
+# RESERVED_WORDS = %w[
+# asm break case continue default do else
+# ...
+# ]
+#
+# PREDEFINED_TYPES = %w[
+# int long short char void
+# ...
+# ]
+#
+# PREDEFINED_CONSTANTS = %w[
+# EOF NULL ...
+# ]
+#
+# # make a WordList
+# IDENT_KIND = WordList.new(:ident).
+# add(RESERVED_WORDS, :reserved).
+# add(PREDEFINED_TYPES, :pre_type).
+# add(PREDEFINED_CONSTANTS, :pre_constant)
+#
+# ...
+#
+# def scan_tokens tokens, options
+# ...
+#
+# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
+# # use it
+# kind = IDENT_KIND[match]
+# ...
+class WordList < Hash
+
+ # Creates a new WordList with +default+ as default value.
+ #
+ # You can activate +caching+ to store the results for every [] request.
+ #
+ # With caching, methods like +include?+ or +delete+ may no longer behave
+ # as you expect. Therefore, it is recommended to use the [] method only.
+ def initialize default = false, caching = false, &block
+ if block
+ raise ArgumentError, 'Can\'t combine block with caching.' if caching
+ super(&block)
+ else
+ if caching
+ super() do |h, k|
+ h[k] = h.fetch k, default
+ end
+ else
+ super default
+ end
+ end
+ end
+
+ # Add words to the list and associate them with +kind+.
+ #
+ # Returns +self+, so you can concat add calls.
+ def add words, kind = true
+ words.each do |word|
+ self[word] = kind
+ end
+ self
+ end
+
+end
+
+
+# A CaseIgnoringWordList is like a WordList, only that
+# keys are compared case-insensitively.
+#
+# Ignoring the text case is realized by sending the +downcase+ message to
+# all keys.
+#
+# Caching usually makes a CaseIgnoringWordList faster, but it has to be
+# activated explicitely.
+class CaseIgnoringWordList < WordList
+
+ # Creates a new case-insensitive WordList with +default+ as default value.
+ #
+ # You can activate caching to store the results for every [] request.
+ # This speeds up subsequent lookups for the same word, but also
+ # uses memory.
+ def initialize default = false, caching = false
+ if caching
+ super(default, false) do |h, k|
+ h[k] = h.fetch k.downcase, default
+ end
+ else
+ super(default, false)
+ extend Uncached
+ end
+ end
+
+ module Uncached # :nodoc:
+ def [] key
+ super(key.downcase)
+ end
+ end
+
+ # Add +words+ to the list and associate them with +kind+.
+ def add words, kind = true
+ words.each do |word|
+ self[word.downcase] = kind
+ end
+ self
+ end
+
+end
+
+end
+
+__END__
+# check memory consumption
+END {
+ ObjectSpace.each_object(CodeRay::CaseIgnoringWordList) do |wl|
+ p wl.inject(0) { |memo, key, value| memo + key.size + 24 }
+ end
+}
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanner.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanner.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,298 @@
+module CodeRay
+
+ require 'coderay/helpers/plugin'
+
+ # = Scanners
+ #
+ # This module holds the Scanner class and its subclasses.
+ # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
+ # can be found in coderay/scanners/ruby.
+ #
+ # Scanner also provides methods and constants for the register
+ # mechanism and the [] method that returns the Scanner class
+ # belonging to the given lang.
+ #
+ # See PluginHost.
+ module Scanners
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'scanners'
+
+ require 'strscan'
+
+ # = Scanner
+ #
+ # The base class for all Scanners.
+ #
+ # It is a subclass of Ruby's great +StringScanner+, which
+ # makes it easy to access the scanning methods inside.
+ #
+ # It is also +Enumerable+, so you can use it like an Array of
+ # Tokens:
+ #
+ # require 'coderay'
+ #
+ # c_scanner = CodeRay::Scanners[:c].new "if (*p == '{') nest++;"
+ #
+ # for text, kind in c_scanner
+ # puts text if kind == :operator
+ # end
+ #
+ # # prints: (*==)++;
+ #
+ # OK, this is a very simple example :)
+ # You can also use +map+, +any?+, +find+ and even +sort_by+,
+ # if you want.
+ class Scanner < StringScanner
+
+ extend Plugin
+ plugin_host Scanners
+
+ # Raised if a Scanner fails while scanning
+ ScanError = Class.new(Exception)
+
+ require 'coderay/helpers/word_list'
+
+ # The default options for all scanner classes.
+ #
+ # Define @default_options for subclasses.
+ DEFAULT_OPTIONS = { :stream => false }
+
+ KINDS_NOT_LOC = [:comment, :doctype]
+
+ class << self
+
+ # Returns if the Scanner can be used in streaming mode.
+ def streamable?
+ is_a? Streamable
+ end
+
+ def normify code
+ code = code.to_s
+ if code.respond_to?(:encoding) && (code.encoding.name != 'UTF-8' || !code.valid_encoding?)
+ code = code.dup
+ original_encoding = code.encoding
+ code.force_encoding 'Windows-1252'
+ unless code.valid_encoding?
+ code.force_encoding original_encoding
+ if code.encoding.name == 'UTF-8'
+ code.encode! 'UTF-16BE', :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ code.encode! 'UTF-8', :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+ code.to_unix
+ end
+
+ def file_extension extension = nil
+ if extension
+ @file_extension = extension.to_s
+ else
+ @file_extension ||= plugin_id.to_s
+ end
+ end
+
+ end
+
+=begin
+## Excluded for speed reasons; protected seems to make methods slow.
+
+ # Save the StringScanner methods from being called.
+ # This would not be useful for highlighting.
+ strscan_public_methods =
+ StringScanner.instance_methods -
+ StringScanner.ancestors[1].instance_methods
+ protected(*strscan_public_methods)
+=end
+
+ # Create a new Scanner.
+ #
+ # * +code+ is the input String and is handled by the superclass
+ # StringScanner.
+ # * +options+ is a Hash with Symbols as keys.
+ # It is merged with the default options of the class (you can
+ # overwrite default options here.)
+ # * +block+ is the callback for streamed highlighting.
+ #
+ # If you set :stream to +true+ in the options, the Scanner uses a
+ # TokenStream with the +block+ as callback to handle the tokens.
+ #
+ # Else, a Tokens object is used.
+ def initialize code='', options = {}, &block
+ raise "I am only the basic Scanner class. I can't scan "\
+ "anything. :( Use my subclasses." if self.class == Scanner
+
+ @options = self.class::DEFAULT_OPTIONS.merge options
+
+ super Scanner.normify(code)
+
+ @tokens = options[:tokens]
+ if @options[:stream]
+ warn "warning in CodeRay::Scanner.new: :stream is set, "\
+ "but no block was given" unless block_given?
+ raise NotStreamableError, self unless kind_of? Streamable
+ @tokens ||= TokenStream.new(&block)
+ else
+ warn "warning in CodeRay::Scanner.new: Block given, "\
+ "but :stream is #{@options[:stream]}" if block_given?
+ @tokens ||= Tokens.new
+ end
+ @tokens.scanner = self
+
+ setup
+ end
+
+ def reset
+ super
+ reset_instance
+ end
+
+ def string= code
+ code = Scanner.normify(code)
+ if defined?(RUBY_DESCRIPTION) && RUBY_DESCRIPTION['rubinius 1.0.1']
+ reset_state
+ @string = code
+ else
+ super code
+ end
+ reset_instance
+ end
+
+ # More mnemonic accessor name for the input string.
+ alias code string
+ alias code= string=
+
+ # Returns the Plugin ID for this scanner.
+ def lang
+ self.class.plugin_id
+ end
+
+ # Scans the code and returns all tokens in a Tokens object.
+ def tokenize new_string=nil, options = {}
+ options = @options.merge(options)
+ self.string = new_string if new_string
+ @cached_tokens =
+ if @options[:stream] # :stream must have been set already
+ reset unless new_string
+ scan_tokens @tokens, options
+ @tokens
+ else
+ scan_tokens @tokens, options
+ end
+ end
+
+ def tokens
+ @cached_tokens ||= tokenize
+ end
+
+ # Whether the scanner is in streaming mode.
+ def streaming?
+ !!@options[:stream]
+ end
+
+ # Traverses the tokens.
+ def each &block
+ raise ArgumentError,
+ 'Cannot traverse TokenStream.' if @options[:stream]
+ tokens.each(&block)
+ end
+ include Enumerable
+
+ # The current line position of the scanner.
+ #
+ # Beware, this is implemented inefficiently. It should be used
+ # for debugging only.
+ def line
+ string[0..pos].count("\n") + 1
+ end
+
+ def column pos = self.pos
+ return 0 if pos <= 0
+ string = string()
+ if string.respond_to?(:bytesize) && (defined?(@bin_string) || string.bytesize != string.size)
+ @bin_string ||= string.dup.force_encoding('binary')
+ string = @bin_string
+ end
+ pos - (string.rindex(?\n, pos) || 0)
+ end
+
+ def marshal_dump
+ @options
+ end
+
+ def marshal_load options
+ @options = options
+ end
+
+ protected
+
+ # Can be implemented by subclasses to do some initialization
+ # that has to be done once per instance.
+ #
+ # Use reset for initialization that has to be done once per
+ # scan.
+ def setup
+ end
+
+ # This is the central method, and commonly the only one a
+ # subclass implements.
+ #
+ # Subclasses must implement this method; it must return +tokens+
+ # and must only use Tokens#<< for storing scanned tokens!
+ def scan_tokens tokens, options
+ raise NotImplementedError,
+ "#{self.class}#scan_tokens not implemented."
+ end
+
+ def reset_instance
+ @tokens.clear unless @options[:keep_tokens]
+ @cached_tokens = nil
+ @bin_string = nil if defined? @bin_string
+ end
+
+ # Scanner error with additional status information
+ def raise_inspect msg, tokens, state = 'No state given!', ambit = 30
+ raise ScanError, <<-EOE % [
+
+
+***ERROR in %s: %s (after %d tokens)
+
+tokens:
+%s
+
+current line: %d column: %d pos: %d
+matched: %p state: %p
+bol? = %p, eos? = %p
+
+surrounding code:
+%p ~~ %p
+
+
+***ERROR***
+
+ EOE
+ File.basename(caller[0]),
+ msg,
+ tokens.size,
+ tokens.last(10).map { |t| t.inspect }.join("\n"),
+ line, column, pos,
+ matched, state, bol?, eos?,
+ string[pos - ambit, ambit],
+ string[pos, ambit],
+ ]
+ end
+
+ end
+
+ end
+end
+
+class String
+ # I love this hack. It seems to silence all dos/unix/mac newline problems.
+ def to_unix
+ if index ?\r
+ gsub(/\r\n?/, "\n")
+ else
+ self
+ end
+ end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,143 @@
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners
+END
+java_script-0.9.6.rb
+K 25
+svn:wc:ra_dav:version-url
+V 92
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script-0.9.6.rb
+END
+java.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java.rb
+END
+python.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/python.rb
+END
+ruby.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby.rb
+END
+cpp.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/cpp.rb
+END
+c.rb
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/c.rb
+END
+groovy.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/groovy.rb
+END
+debug.rb
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/debug.rb
+END
+rhtml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/rhtml.rb
+END
+php.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/php.rb
+END
+css.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/css.rb
+END
+sql.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/sql.rb
+END
+xml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/xml.rb
+END
+yaml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/yaml.rb
+END
+scheme.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/scheme.rb
+END
+html.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/html.rb
+END
+java_script.rb
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script.rb
+END
+delphi.rb
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/delphi.rb
+END
+nitro_xhtml.rb
+K 25
+svn:wc:ra_dav:version-url
+V 86
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/nitro_xhtml.rb
+END
+diff.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/diff.rb
+END
+plaintext.rb
+K 25
+svn:wc:ra_dav:version-url
+V 84
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/plaintext.rb
+END
+json.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/json.rb
+END
+_map.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/_map.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,816 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+java_script-0.9.6.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+a10b4406847a27622a61c041420dab5a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6723
+
+java
+dir
+
+ruby
+dir
+
+java.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+35c0803e396fa14a42c6b8645ca7d557
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5041
+
+python.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+939e009d9b197cb6437646be82c02982
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9190
+
+ruby.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+cb032992b032fd9cbc93500496d0b038
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+15309
+
+cpp.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+afc4a4b0842e5efdafe98f6c5a10810e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6286
+
+c.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+299db2bdce8368d0bc6d90f5839c87ee
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5408
+
+groovy.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+7fc1acca7ff04fa00160349b3a1b543e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8521
+
+debug.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+94bdd6c948cb9c3d21ef94a5cec19e05
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1281
+
+rhtml.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+ff2e0cad09ef6ba12b2da44e90a25367
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1629
+
+php.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+2de3bd0694a6b52343618c14654c5366
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+23747
+
+css.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+d3c931a5468c723bd8458b4a73d44943
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5493
+
+sql.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+917467cab834f202a455ec0e8be68508
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4726
+
+xml.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+798309ac45aa9d4ccc159242f3a6f150
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+211
+
+yaml.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+f62eab25adbef42e92cad3f5463f91ac
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4261
+
+html.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+1f93d8c4375c7e7b740c42210e0c6edb
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4248
+
+scheme.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+f6c296bbb33704ec2a03725b01e06719
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4939
+
+java_script.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+31360b9ad9e408df15eb2abf84d17c8a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6733
+
+delphi.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+182116a4525447d4faed874dfb790277
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4504
+
+nitro_xhtml.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+f7d82e60f68fe6c9d46b63e63f6ec9f6
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2858
+
+diff.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+c5932e739b44b0e92f093dfb70cf9de4
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3204
+
+plaintext.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+ae16e40b3db78a5d8c793165085f5db9
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+316
+
+json.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+c34c4d83c7c8cb15bc7209bd36da654e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2793
+
+_map.rb
+file
+
+
+
+
+2011-02-08T13:49:52.000000Z
+b3eadcc78242cf25ba0ab3205d6a2b61
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+413
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/_map.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/_map.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,23 @@
+module CodeRay
+module Scanners
+
+ map \
+ :h => :c,
+ :cplusplus => :cpp,
+ :'c++' => :cpp,
+ :ecma => :java_script,
+ :ecmascript => :java_script,
+ :ecma_script => :java_script,
+ :irb => :ruby,
+ :javascript => :java_script,
+ :js => :java_script,
+ :nitro => :nitro_xhtml,
+ :pascal => :delphi,
+ :plain => :plaintext,
+ :xhtml => :html,
+ :yml => :yaml
+
+ default :plain
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/c.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/c.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,203 @@
+module CodeRay
+module Scanners
+
+ class C < Scanner
+
+ include Streamable
+
+ register_for :c
+ file_extension 'c'
+
+ RESERVED_WORDS = [
+ 'asm', 'break', 'case', 'continue', 'default', 'do',
+ 'else', 'enum', 'for', 'goto', 'if', 'return',
+ 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while',
+ 'restrict', # added in C99
+ ]
+
+ PREDEFINED_TYPES = [
+ 'int', 'long', 'short', 'char',
+ 'signed', 'unsigned', 'float', 'double',
+ 'bool', 'complex', # added in C99
+ ]
+
+ PREDEFINED_CONSTANTS = [
+ 'EOF', 'NULL',
+ 'true', 'false', # added in C99
+ ]
+ DIRECTIVES = [
+ 'auto', 'extern', 'register', 'static', 'void',
+ 'const', 'volatile', # added in C89
+ 'inline', # added in C99
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(DIRECTIVES, :directive).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ label_expected = true
+ case_expected = false
+ label_expected_before_preproc_line = nil
+ in_preproc_line = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ if in_preproc_line && match != "\\\n" && match.index(?\n)
+ in_preproc_line = false
+ label_expected = label_expected_before_preproc_line
+ end
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif match = scan(/ \# \s* if \s* 0 /x)
+ match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
+ kind = :comment
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
+ label_expected = match =~ /[;\{\}]/
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match]
+ if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
+ kind = :label
+ match << matched
+ else
+ label_expected = false
+ if kind == :reserved
+ case match
+ when 'case', 'default'
+ case_expected = true
+ end
+ end
+ end
+
+ elsif scan(/\$/)
+ kind = :ident
+
+ elsif match = scan(/L?"/)
+ tokens << [:open, :string]
+ if match[0] == ?L
+ tokens << ['L', :modifier]
+ match = '"'
+ end
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/#[ \t]*(\w*)/)
+ kind = :preprocessor
+ in_preproc_line = true
+ label_expected_before_preproc_line = label_expected
+ state = :include_expected if self[1] == 'include'
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ label_expected = false
+ kind = :char
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
+ label_expected = false
+ kind = :oct
+
+ elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ label_expected = false
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\\n"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ label_expected = false
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ label_expected = false
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ when :include_expected
+ if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
+ kind = :include
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+ state = :initial if match.index ?\n
+
+ else
+ state = :initial
+ next
+
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/cpp.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/cpp.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,228 @@
+module CodeRay
+module Scanners
+
+ class CPlusPlus < Scanner
+
+ include Streamable
+
+ register_for :cpp
+ file_extension 'cpp'
+ title 'C++'
+
+ # http://www.cppreference.com/wiki/keywords/start
+ RESERVED_WORDS = [
+ 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break',
+ 'case', 'catch', 'class', 'compl', 'const_cast',
+ 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else',
+ 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new',
+ 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return',
+ 'sizeof', 'static_cast', 'struct', 'switch', 'template',
+ 'throw', 'try', 'typedef', 'typeid', 'typename', 'union',
+ 'while', 'xor', 'xor_eq'
+ ]
+
+ PREDEFINED_TYPES = [
+ 'bool', 'char', 'double', 'float', 'int', 'long',
+ 'short', 'signed', 'unsigned', 'wchar_t', 'string'
+ ]
+ PREDEFINED_CONSTANTS = [
+ 'false', 'true',
+ 'EOF', 'NULL',
+ ]
+ PREDEFINED_VARIABLES = [
+ 'this'
+ ]
+ DIRECTIVES = [
+ 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator',
+ 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void',
+ 'volatile'
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_VARIABLES, :local_variable).
+ add(DIRECTIVES, :directive).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ label_expected = true
+ case_expected = false
+ label_expected_before_preproc_line = nil
+ in_preproc_line = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ if in_preproc_line && match != "\\\n" && match.index(?\n)
+ in_preproc_line = false
+ label_expected = label_expected_before_preproc_line
+ end
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif match = scan(/ \# \s* if \s* 0 /x)
+ match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
+ kind = :comment
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
+ label_expected = match =~ /[;\{\}]/
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match]
+ if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
+ kind = :label
+ match << matched
+ else
+ label_expected = false
+ if kind == :reserved
+ case match
+ when 'class'
+ state = :class_name_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ end
+ end
+
+ elsif scan(/\$/)
+ kind = :ident
+
+ elsif match = scan(/L?"/)
+ tokens << [:open, :string]
+ if match[0] == ?L
+ tokens << ['L', :modifier]
+ match = '"'
+ end
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/#[ \t]*(\w*)/)
+ kind = :preprocessor
+ in_preproc_line = true
+ label_expected_before_preproc_line = label_expected
+ state = :include_expected if self[1] == 'include'
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ label_expected = false
+ kind = :char
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
+ label_expected = false
+ kind = :oct
+
+ elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ label_expected = false
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ label_expected = false
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ label_expected = false
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ when :include_expected
+ if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
+ kind = :include
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+ state = :initial if match.index ?\n
+
+ else
+ state = :initial
+ next
+
+ end
+
+ when :class_name_expected
+ if scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = :class
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+
+ else
+ getch
+ kind = :error
+ state = :initial
+
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/css.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/css.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,209 @@
+module CodeRay
+module Scanners
+
+ class CSS < Scanner
+
+ register_for :css
+
+ KINDS_NOT_LOC = [
+ :comment,
+ :class, :pseudo_class, :type,
+ :constant, :directive,
+ :key, :value, :operator, :color, :float,
+ :error, :important,
+ ]
+
+ module RE
+ Hex = /[0-9a-fA-F]/
+ Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too
+ Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/
+ NMChar = /[-_a-zA-Z0-9]|#{Escape}/
+ NMStart = /[_a-zA-Z]|#{Escape}/
+ NL = /\r\n|\r|\n|\f/
+ String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # FIXME: buggy regexp
+ String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # FIXME: buggy regexp
+ String = /#{String1}|#{String2}/
+
+ HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/
+ Color = /#{HexColor}/
+
+ Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/
+ Name = /#{NMChar}+/
+ Ident = /-?#{NMStart}#{NMChar}*/
+ AtKeyword = /@#{Ident}/
+ Percentage = /#{Num}%/
+
+ reldimensions = %w[em ex px]
+ absdimensions = %w[in cm mm pt pc]
+ Unit = Regexp.union(*(reldimensions + absdimensions))
+
+ Dimension = /#{Num}#{Unit}/
+
+ Comment = %r! /\* (?: .*? \*/ | .* ) !mx
+ Function = /(?:url|alpha)\((?:[^)\n\r\f]|\\\))*\)?/
+
+ Id = /##{Name}/
+ Class = /\.#{Name}/
+ PseudoClass = /:#{Name}/
+ AttributeSelector = /\[[^\]]*\]?/
+
+ end
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ states = [:initial]
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/)
+ kind = :space
+
+ elsif case states.last
+ when :initial, :media
+ if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
+ kind = :type
+ elsif scan RE::Class
+ kind = :class
+ elsif scan RE::Id
+ kind = :constant
+ elsif scan RE::PseudoClass
+ kind = :pseudo_class
+ elsif match = scan(RE::AttributeSelector)
+ # TODO: Improve highlighting inside of attribute selectors.
+ tokens << [:open, :string]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content] if match.size > 2
+ tokens << [match[-1,1], :delimiter] if match[-1] == ?]
+ tokens << [:close, :string]
+ next
+ elsif match = scan(/@media/)
+ kind = :directive
+ states.push :media_before_name
+ end
+
+ when :block
+ if scan(/(?>#{RE::Ident})(?!\()/ox)
+ if value_expected
+ kind = :value
+ else
+ kind = :key
+ end
+ end
+
+ when :media_before_name
+ if scan RE::Ident
+ kind = :type
+ states[-1] = :media_after_name
+ end
+
+ when :media_after_name
+ if scan(/\{/)
+ kind = :operator
+ states[-1] = :media
+ end
+
+ when :comment
+ if scan(/(?:[^*\s]|\*(?!\/))+/)
+ kind = :comment
+ elsif scan(/\*\//)
+ kind = :comment
+ states.pop
+ elsif scan(/\s+/)
+ kind = :space
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ elsif scan(/\/\*/)
+ kind = :comment
+ states.push :comment
+
+ elsif scan(/\{/)
+ value_expected = false
+ kind = :operator
+ states.push :block
+
+ elsif scan(/\}/)
+ value_expected = false
+ if states.last == :block || states.last == :media
+ kind = :operator
+ states.pop
+ else
+ kind = :error
+ end
+
+ elsif match = scan(/#{RE::String}/o)
+ tokens << [:open, :string]
+ tokens << [match[0, 1], :delimiter]
+ tokens << [match[1..-2], :content] if match.size > 2
+ tokens << [match[-1, 1], :delimiter] if match.size >= 2
+ tokens << [:close, :string]
+ next
+
+ elsif match = scan(/#{RE::Function}/o)
+ tokens << [:open, :string]
+ start = match[/^\w+\(/]
+ tokens << [start, :delimiter]
+ if match[-1] == ?)
+ tokens << [match[start.size..-2], :content]
+ tokens << [')', :delimiter]
+ else
+ tokens << [match[start.size..-1], :content]
+ end
+ tokens << [:close, :string]
+ next
+
+ elsif scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox)
+ kind = :float
+
+ elsif scan(/#{RE::Color}/o)
+ kind = :color
+
+ elsif scan(/! *important/)
+ kind = :important
+
+ elsif scan(/rgb\([^()\n]*\)?/)
+ kind = :color
+
+ elsif scan(/#{RE::AtKeyword}/o)
+ kind = :directive
+
+ elsif match = scan(/ [+>:;,.=()\/] /x)
+ if match == ':'
+ value_expected = true
+ elsif match == ';'
+ value_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/debug.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/debug.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,62 @@
+module CodeRay
+module Scanners
+
+ # = Debug Scanner
+ class Debug < Scanner
+
+ include Streamable
+ register_for :debug
+ file_extension 'raydebug'
+ title 'CodeRay Token Dump'
+
+ protected
+ def scan_tokens tokens, options
+
+ opened_tokens = []
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/)
+ tokens << [matched, :space]
+ next
+
+ elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x)
+ kind = self[1].to_sym
+ match = self[2].gsub(/\\(.)/, '\1')
+
+ elsif scan(/ (\w+) < /x)
+ kind = self[1].to_sym
+ opened_tokens << kind
+ match = :open
+
+ elsif !opened_tokens.empty? && scan(/ > /x)
+ kind = opened_tokens.pop || :error
+ match = :close
+
+ else
+ kind = :error
+ getch
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/delphi.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/delphi.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,150 @@
+module CodeRay
+module Scanners
+
+ class Delphi < Scanner
+
+ register_for :delphi
+ file_extension 'pas'
+
+ RESERVED_WORDS = [
+ 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class',
+ 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do',
+ 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization',
+ 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in',
+ 'inherited', 'initialization', 'inline', 'interface', 'is', 'label',
+ 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed',
+ 'procedure', 'program', 'property', 'raise', 'record', 'repeat',
+ 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar',
+ 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with',
+ 'xor', 'on'
+ ]
+
+ DIRECTIVES = [
+ 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl',
+ 'contains', 'deprecated', 'dispid', 'dynamic', 'export',
+ 'external', 'far', 'forward', 'implements', 'local',
+ 'near', 'nodefault', 'on', 'overload', 'override',
+ 'package', 'pascal', 'platform', 'private', 'protected', 'public',
+ 'published', 'read', 'readonly', 'register', 'reintroduce',
+ 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs',
+ 'virtual', 'write', 'writeonly'
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(DIRECTIVES, :directive)
+
+ NAME_FOLLOWS = CaseIgnoringWordList.new(false).
+ add(%w(procedure function .))
+
+ private
+ def scan_tokens tokens, options
+
+ state = :initial
+ last_token = ''
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :initial
+
+ if scan(/ \s+ /x)
+ tokens << [matched, :space]
+ next
+
+ elsif scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx)
+ tokens << [matched, :preprocessor]
+ next
+
+ elsif scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx)
+ tokens << [matched, :comment]
+ next
+
+ elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x)
+ kind = :operator
+
+ elsif match = scan(/\./)
+ kind = :operator
+ if last_token == 'end'
+ tokens << [match, kind]
+ next
+ end
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match]
+
+ elsif match = scan(/ ' ( [^\n']|'' ) (?:'|$) /x)
+ tokens << [:open, :char]
+ tokens << ["'", :delimiter]
+ tokens << [self[1], :content]
+ tokens << ["'", :delimiter]
+ tokens << [:close, :char]
+ next
+
+ elsif match = scan(/ ' /x)
+ tokens << [:open, :string]
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x)
+ kind = :char
+
+ elsif scan(/ \$ [0-9A-Fa-f]+ /x)
+ kind = :hex
+
+ elsif scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x)
+ kind = :integer
+
+ elsif scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x)
+ kind = :float
+
+ else
+ kind = :error
+ getch
+
+ end
+
+ elsif state == :string
+ if scan(/[^\n']+/)
+ kind = :content
+ elsif scan(/''/)
+ kind = :char
+ elsif scan(/'/)
+ tokens << ["'", :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif scan(/\n/)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise "else case \' reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise 'else-case reached', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/diff.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/diff.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,110 @@
+module CodeRay
+module Scanners
+
+ class Diff < Scanner
+
+ register_for :diff
+ title 'diff output'
+
+ def scan_tokens tokens, options
+
+ line_kind = nil
+ state = :initial
+
+ until eos?
+ kind = match = nil
+
+ if match = scan(/\n/)
+ if line_kind
+ tokens << [:end_line, line_kind]
+ line_kind = nil
+ end
+ tokens << [match, :space]
+ next
+ end
+
+ case state
+
+ when :initial
+ if match = scan(/--- |\+\+\+ |=+|_+/)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/Index: |Property changes on: /)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/Added: /)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ state = :added
+ elsif match = scan(/\\ /)
+ tokens << [:begin_line, line_kind = :change]
+ tokens << [match, :change]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/@@(?>[^@\n]*)@@/)
+ if check(/\n|$/)
+ tokens << [:begin_line, line_kind = :change]
+ else
+ tokens << [:open, :change]
+ end
+ tokens << [match[0,2], :change]
+ tokens << [match[2...-2], :plain]
+ tokens << [match[-2,2], :change]
+ tokens << [:close, :change] unless line_kind
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/\+/)
+ tokens << [:begin_line, line_kind = :insert]
+ tokens << [match, :insert]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/-/)
+ tokens << [:begin_line, line_kind = :delete]
+ tokens << [match, :delete]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif scan(/ .*/)
+ kind = :comment
+ elsif scan(/.+/)
+ tokens << [:begin_line, line_kind = :comment]
+ kind = :plain
+ else
+ raise_inspect 'else case rached'
+ end
+
+ when :added
+ if match = scan(/ \+/)
+ tokens << [:begin_line, line_kind = :insert]
+ tokens << [match, :insert]
+ next unless match = scan(/.+/)
+ kind = :plain
+ else
+ state = :initial
+ next
+ end
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+ end
+
+ tokens << [:end_line, line_kind] if line_kind
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/groovy.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/groovy.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,264 @@
+module CodeRay
+module Scanners
+
+ load :java
+
+ class Groovy < Java
+
+ include Streamable
+ register_for :groovy
+
+ # TODO: Check this!
+ GROOVY_KEYWORDS = %w[
+ as assert def in
+ ]
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case instanceof new return throw typeof while as assert in
+ ]
+ GROOVY_MAGIC_VARIABLES = %w[ it ]
+
+ IDENT_KIND = Java::IDENT_KIND.dup.
+ add(GROOVY_KEYWORDS, :keyword).
+ add(GROOVY_MAGIC_VARIABLES, :local_variable)
+
+ ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
+ REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
+
+ # TODO: interpretation inside ', ", /
+ STRING_CONTENT_PATTERN = {
+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
+ '"' => /[^\\$"\n]+/,
+ "'''" => /(?>[^\\']+|'(?!''))+/,
+ '"""' => /(?>[^\\$"]+|"(?!""))+/,
+ '/' => /[^\\$\/\n]+/,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ inline_block_stack = []
+ inline_block_paren_depth = nil
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token = after_def = false
+ value_expected = true
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ if match.index ?\n
+ import_clause = after_def = false
+ value_expected = true unless value_expected
+ end
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ after_def = false
+ kind = :comment
+
+ elsif bol? && scan(/ \#!.* /x)
+ kind = :doctype
+
+ elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
+ after_def = value_expected = false
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ if last_token == '.'
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ elsif after_def && check(/\s*[({]/)
+ kind = :method
+ after_def = false
+ elsif kind == :ident && last_token != '?' && check(/:/)
+ kind = :key
+ else
+ class_name_follows = true if match == 'class' || (import_clause && match == 'as')
+ import_clause = match == 'import'
+ after_def = true if match == 'def'
+ end
+
+ elsif scan(/;/)
+ import_clause = after_def = false
+ value_expected = true
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = after_def = false
+ value_expected = true
+ kind = :operator
+ if !inline_block_stack.empty?
+ inline_block_paren_depth += 1
+ end
+
+ # TODO: ~'...', ~"..." and ~/.../ style regexps
+ elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
+ && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
+ value_expected = true
+ value_expected = :regexp if match == '~'
+ after_def = false
+ kind = :operator
+
+ elsif match = scan(/ [)\]}] /x)
+ value_expected = after_def = false
+ if !inline_block_stack.empty? && match == '}'
+ inline_block_paren_depth -= 1
+ if inline_block_paren_depth == 0 # closing brace of inline block reached
+ tokens << [match, :inline_delimiter]
+ tokens << [:close, :inline]
+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
+ next
+ end
+ end
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ after_def = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lLgG]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/'''|"""/)
+ after_def = value_expected = false
+ state = :multiline_string
+ tokens << [:open, :string]
+ string_delimiter = match
+ kind = :delimiter
+
+ # TODO: record.'name'
+ elsif match = scan(/["']/)
+ after_def = value_expected = false
+ state = match == '/' ? :regexp : :string
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\//))
+ after_def = value_expected = false
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ after_def = value_expected = false
+ kind = :annotation
+
+ elsif scan(/\//)
+ after_def = false
+ value_expected = true
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :multiline_string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+
+ elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ # TODO: regexp modifiers? s, m, x, i?
+ modifiers = scan(/[ix]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ state = :string if state == :multiline_string
+ tokens << [:close, state]
+ string_delimiter = nil
+ after_def = value_expected = false
+ state = :initial
+ next
+
+ elsif (state == :string || state == :multiline_string) &&
+ (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+
+ elsif match = scan(/ \$ #{IDENT} /mox)
+ tokens << [:open, :inline]
+ tokens << ['$', :inline_delimiter]
+ match = match[1..-1]
+ tokens << [match, IDENT_KIND[match]]
+ tokens << [:close, :inline]
+ next
+ elsif match = scan(/ \$ \{ /x)
+ tokens << [:open, :inline]
+ tokens << ['${', :inline_delimiter]
+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
+ inline_block_paren_depth = 1
+ state = :initial
+ next
+
+ elsif scan(/ \$ /mx)
+ kind = :content
+
+ elsif scan(/ \\. /mx)
+ kind = :content
+
+ elsif scan(/ \\ | \n /x)
+ tokens << [:close, state]
+ kind = :error
+ after_def = value_expected = false
+ state = :initial
+
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match unless [:space, :comment, :doctype].include? kind
+
+ tokens << [match, kind]
+
+ end
+
+ if [:multiline_string, :string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/html.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/html.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,182 @@
+module CodeRay
+module Scanners
+
+ # HTML Scanner
+ class HTML < Scanner
+
+ include Streamable
+ register_for :html
+
+ KINDS_NOT_LOC = [
+ :comment, :doctype, :preprocessor,
+ :tag, :attribute_name, :operator,
+ :attribute_value, :delimiter, :content,
+ :plain, :entity, :error
+ ]
+
+ ATTR_NAME = /[\w.:-]+/
+ ATTR_VALUE_UNQUOTED = ATTR_NAME
+ TAG_END = /\/?>/
+ HEX = /[0-9a-fA-F]/
+ ENTITY = /
+ &
+ (?:
+ \w+
+ |
+ \#
+ (?:
+ \d+
+ |
+ x#{HEX}+
+ )
+ )
+ ;
+ /ox
+
+ PLAIN_STRING_CONTENT = {
+ "'" => /[^&'>\n]+/,
+ '"' => /[^&">\n]+/,
+ }
+
+ def reset
+ super
+ @state = :initial
+ end
+
+ private
+ def setup
+ @state = :initial
+ @plain_string_content = nil
+ end
+
+ def scan_tokens tokens, options
+
+ state = @state
+ plain_string_content = @plain_string_content
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/m)
+ kind = :space
+
+ else
+
+ case state
+
+ when :initial
+ if scan(//m)
+ kind = :comment
+ elsif scan(//m)
+ kind = :doctype
+ elsif scan(/<\?xml.*?\?>/m)
+ kind = :preprocessor
+ elsif scan(/<\?.*?\?>|<%.*?%>/m)
+ kind = :comment
+ elsif scan(/<\/[-\w.:]*>/m)
+ kind = :tag
+ elsif match = scan(/<[-\w.:]+>?/m)
+ kind = :tag
+ state = :attribute unless match[-1] == ?>
+ elsif scan(/[^<>&]+/)
+ kind = :plain
+ elsif scan(/#{ENTITY}/ox)
+ kind = :entity
+ elsif scan(/[<>&]/)
+ kind = :error
+ else
+ raise_inspect '[BUG] else-case reached with state %p' % [state], tokens
+ end
+
+ when :attribute
+ if scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ elsif scan(/#{ATTR_NAME}/o)
+ kind = :attribute_name
+ state = :attribute_equal
+ else
+ kind = :error
+ getch
+ end
+
+ when :attribute_equal
+ if scan(/=/)
+ kind = :operator
+ state = :attribute_value
+ elsif scan(/#{ATTR_NAME}/o)
+ kind = :attribute_name
+ elsif scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ elsif scan(/./)
+ kind = :error
+ state = :attribute
+ end
+
+ when :attribute_value
+ if scan(/#{ATTR_VALUE_UNQUOTED}/o)
+ kind = :attribute_value
+ state = :attribute
+ elsif match = scan(/["']/)
+ tokens << [:open, :string]
+ state = :attribute_value_string
+ plain_string_content = PLAIN_STRING_CONTENT[match]
+ kind = :delimiter
+ elsif scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ else
+ kind = :error
+ getch
+ end
+
+ when :attribute_value_string
+ if scan(plain_string_content)
+ kind = :content
+ elsif scan(/['"]/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :attribute
+ next
+ elsif scan(/#{ENTITY}/ox)
+ kind = :entity
+ elsif scan(/&/)
+ kind = :content
+ elsif scan(/[\n>]/)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ end
+
+ else
+ raise_inspect 'Unknown state: %p' % [state], tokens
+
+ end
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+ end
+
+ if options[:keep_state]
+ @state = state
+ @plain_string_content = plain_string_content
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,176 @@
+module CodeRay
+module Scanners
+
+ class Java < Scanner
+
+ include Streamable
+ register_for :java
+ helper :builtin_types
+
+ # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
+ KEYWORDS = %w[
+ assert break case catch continue default do else
+ finally for if instanceof import new package
+ return switch throw try typeof while
+ debugger export
+ ]
+ RESERVED = %w[ const goto ]
+ CONSTANTS = %w[ false null true ]
+ MAGIC_VARIABLES = %w[ this super ]
+ TYPES = %w[
+ boolean byte char class double enum float int interface long
+ short void
+ ] << '[]' # because int[] should be highlighted as a type
+ DIRECTIVES = %w[
+ abstract extends final implements native private protected public
+ static strictfp synchronized throws transient volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(KEYWORDS, :keyword).
+ add(RESERVED, :reserved).
+ add(CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(TYPES, :type).
+ add(BuiltinTypes::List, :pre_type).
+ add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception).
+ add(DIRECTIVES, :directive)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ IDENT = /[a-zA-Z_][A-Za-z_0-9]*/
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token_dot = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ next
+
+ elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ tokens << [match, :comment]
+ next
+
+ elsif import_clause && scan(/ #{IDENT} (?: \. #{IDENT} )* /ox)
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ if last_token_dot
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ else
+ import_clause = true if match == 'import'
+ class_name_follows = true if match == 'class' || match == 'interface'
+ end
+
+ elsif scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<=? | >>>?=? /x)
+ kind = :operator
+
+ elsif scan(/;/)
+ import_clause = false
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = false
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lL]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/["']/)
+ tokens << [:open, :string]
+ state = :string
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ kind = :annotation
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ tokens << [:close, state]
+ string_delimiter = nil
+ state = :initial
+ next
+ elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token_dot = match == '.'
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java_script-0.9.6.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java_script-0.9.6.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,224 @@
+module CodeRay
+module Scanners
+
+ class JavaScript < Scanner
+
+ include Streamable
+
+ register_for :java_script
+ file_extension 'js'
+
+ # The actual JavaScript keywords.
+ KEYWORDS = %w[
+ break case catch continue default delete do else
+ finally for function if in instanceof new
+ return switch throw try typeof var void while with
+ ]
+ PREDEFINED_CONSTANTS = %w[
+ false null true undefined
+ ]
+
+ MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
+
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case delete in instanceof new return throw typeof with
+ ]
+
+ # Reserved for future use.
+ RESERVED_WORDS = %w[
+ abstract boolean byte char class debugger double enum export extends
+ final float goto implements import int interface long native package
+ private protected public short static super synchronized throws transient
+ volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(KEYWORDS, :keyword)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ REGEXP_ESCAPE = / [bBdDsSwW] /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ KEY_CHECK_PATTERN = {
+ "'" => / [^\\']* (?: \\.? [^\\']* )* '? \s* : /x,
+ '"' => / [^\\"]* (?: \\.? [^\\"]* )* "? \s* : /x,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ value_expected = true
+ key_expected = false
+ function_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ value_expected = true if !value_expected && match.index(?\n)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ kind = :comment
+
+ elsif check(/\.?\d/)
+ key_expected = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+ elsif scan(/\d+/)
+ kind = :integer
+ end
+
+ elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
+ # FIXME: scan over nested tags
+ xml_scanner.tokenize match
+ value_expected = false
+ next
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
+ value_expected = true
+ last_operator = match[-1]
+ key_expected = (last_operator == ?{) || (last_operator == ?,)
+ function_expected = false
+ kind = :operator
+
+ elsif scan(/ [)\]}]+ /x)
+ function_expected = key_expected = value_expected = false
+ kind = :operator
+
+ elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ # TODO: labels
+ if kind == :ident
+ if match.index(?$) # $ allowed inside an identifier
+ kind = :predefined
+ elsif function_expected
+ kind = :function
+ elsif check(/\s*[=:]\s*function\b/)
+ kind = :function
+ elsif key_expected && check(/\s*:/)
+ kind = :key
+ end
+ end
+ function_expected = (kind == :keyword) && (match == 'function')
+ key_expected = false
+
+ elsif match = scan(/["']/)
+ if key_expected && check(KEY_CHECK_PATTERN[match])
+ state = :key
+ else
+ state = :string
+ end
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\/(?=\S)/))
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ \/ /x)
+ value_expected = true
+ key_expected = false
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :key
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ modifiers = scan(/[gim]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ tokens << [:close, state]
+ string_delimiter = nil
+ key_expected = value_expected = false
+ state = :initial
+ next
+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ key_expected = value_expected = false
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ protected
+
+ def reset_instance
+ super
+ @xml_scanner.reset if defined? @xml_scanner
+ end
+
+ def xml_scanner
+ @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java_script.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/java_script.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,224 @@
+module CodeRay
+module Scanners
+
+ class JavaScript < Scanner
+
+ include Streamable
+
+ register_for :java_script
+ file_extension 'js'
+
+ # The actual JavaScript keywords.
+ KEYWORDS = %w[
+ break case catch continue default delete do else
+ finally for function if in instanceof new
+ return switch throw try typeof var void while with
+ ]
+ PREDEFINED_CONSTANTS = %w[
+ false null true undefined
+ ]
+
+ MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
+
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case delete in instanceof new return throw typeof with
+ ]
+
+ # Reserved for future use.
+ RESERVED_WORDS = %w[
+ abstract boolean byte char class debugger double enum export extends
+ final float goto implements import int interface long native package
+ private protected public short static super synchronized throws transient
+ volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(KEYWORDS, :keyword)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ REGEXP_ESCAPE = / [bBdDsSwW] /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ KEY_CHECK_PATTERN = {
+ "'" => / (?> [^\\']* (?: \\. [^\\']* )* ) ' \s* : /mx,
+ '"' => / (?> [^\\"]* (?: \\. [^\\"]* )* ) " \s* : /mx,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ value_expected = true
+ key_expected = false
+ function_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ value_expected = true if !value_expected && match.index(?\n)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ kind = :comment
+
+ elsif check(/\.?\d/)
+ key_expected = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+ elsif scan(/\d+/)
+ kind = :integer
+ end
+
+ elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
+ # FIXME: scan over nested tags
+ xml_scanner.tokenize match
+ value_expected = false
+ next
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
+ value_expected = true
+ last_operator = match[-1]
+ key_expected = (last_operator == ?{) || (last_operator == ?,)
+ function_expected = false
+ kind = :operator
+
+ elsif scan(/ [)\]}]+ /x)
+ function_expected = key_expected = value_expected = false
+ kind = :operator
+
+ elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ # TODO: labels
+ if kind == :ident
+ if match.index(?$) # $ allowed inside an identifier
+ kind = :predefined
+ elsif function_expected
+ kind = :function
+ elsif check(/\s*[=:]\s*function\b/)
+ kind = :function
+ elsif key_expected && check(/\s*:/)
+ kind = :key
+ end
+ end
+ function_expected = (kind == :keyword) && (match == 'function')
+ key_expected = false
+
+ elsif match = scan(/["']/)
+ if key_expected && check(KEY_CHECK_PATTERN[match])
+ state = :key
+ else
+ state = :string
+ end
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\/(?=\S)/))
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ \/ /x)
+ value_expected = true
+ key_expected = false
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :key
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ modifiers = scan(/[gim]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ tokens << [:close, state]
+ string_delimiter = nil
+ key_expected = value_expected = false
+ state = :initial
+ next
+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ key_expected = value_expected = false
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ protected
+
+ def reset_instance
+ super
+ @xml_scanner.reset if defined? @xml_scanner
+ end
+
+ def xml_scanner
+ @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/json.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/json.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,108 @@
+module CodeRay
+module Scanners
+
+ class JSON < Scanner
+
+ include Streamable
+
+ register_for :json
+ file_extension 'json'
+
+ KINDS_NOT_LOC = [
+ :float, :char, :content, :delimiter,
+ :error, :integer, :operator, :value,
+ ]
+
+ ESCAPE = / [bfnrt\\"\/] /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ stack = []
+ key_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ next
+ elsif match = scan(/ [:,\[{\]}] /x)
+ kind = :operator
+ case match
+ when '{' then stack << :object; key_expected = true
+ when '[' then stack << :array
+ when ':' then key_expected = false
+ when ',' then key_expected = true if stack.last == :object
+ when '}', ']' then stack.pop # no error recovery, but works for valid JSON
+ end
+ elsif match = scan(/ true | false | null /x)
+ kind = :value
+ elsif match = scan(/-?(?:0|[1-9]\d*)/)
+ kind = :integer
+ if scan(/\.\d+(?:[eE][-+]?\d+)?|[eE][-+]?\d+/)
+ match << matched
+ kind = :float
+ end
+ elsif match = scan(/"/)
+ state = key_expected ? :key : :string
+ tokens << [:open, state]
+ kind = :delimiter
+ else
+ getch
+ kind = :error
+ end
+
+ when :string, :key
+ if scan(/[^\\"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, state]
+ state = :initial
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :key].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/nitro_xhtml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/nitro_xhtml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,136 @@
+module CodeRay
+module Scanners
+
+ load :html
+ load :ruby
+
+ # Nitro XHTML Scanner
+ class NitroXHTML < Scanner
+
+ include Streamable
+ register_for :nitro_xhtml
+ file_extension :xhtml
+ title 'Nitro XHTML'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ NITRO_RUBY_BLOCK = /
+ <\?r
+ (?>
+ [^\?]*
+ (?> \?(?!>) [^\?]* )*
+ )
+ (?: \?> )?
+ |
+
+ (?>
+ [^<]*
+ (?> <(?!\/ruby>) [^<]* )*
+ )
+ (?: <\/ruby> )?
+ |
+ <%
+ (?>
+ [^%]*
+ (?> %(?!>) [^%]* )*
+ )
+ (?: %> )?
+ /mx
+
+ NITRO_VALUE_BLOCK = /
+ \#
+ (?:
+ \{
+ [^{}]*
+ (?>
+ \{ [^}]* \}
+ (?> [^{}]* )
+ )*
+ \}?
+ | \| [^|]* \|?
+ | \( [^)]* \)?
+ | \[ [^\]]* \]?
+ | \\ [^\\]* \\?
+ )
+ /x
+
+ NITRO_ENTITY = /
+ % (?: \#\d+ | \w+ ) ;
+ /
+
+ START_OF_RUBY = /
+ (?=[<\#%])
+ < (?: \?r | % | ruby> )
+ | \# [{(|]
+ | % (?: \#\d+ | \w+ ) ;
+ /x
+
+ CLOSING_PAREN = Hash.new do |h, p|
+ h[p] = p
+ end.update( {
+ '(' => ')',
+ '[' => ']',
+ '{' => '}',
+ } )
+
+ private
+
+ def setup
+ @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ def scan_tokens tokens, options
+
+ until eos?
+
+ if (match = scan_until(/(?=#{START_OF_RUBY})/o) || scan_until(/\z/)) and not match.empty?
+ @html_scanner.tokenize match
+
+ elsif match = scan(/#{NITRO_VALUE_BLOCK}/o)
+ start_tag = match[0,2]
+ delimiter = CLOSING_PAREN[start_tag[1,1]]
+ end_tag = match[-1,1] == delimiter ? delimiter : ''
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -1 - end_tag.size]
+ @ruby_scanner.tokenize code
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ elsif match = scan(/#{NITRO_RUBY_BLOCK}/o)
+ start_tag = '' ? '?>' : ''
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -(end_tag.size)-1]
+ @ruby_scanner.tokenize code
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ elsif entity = scan(/#{NITRO_ENTITY}/o)
+ tokens << [entity, :entity]
+
+ elsif scan(/%/)
+ tokens << [matched, :error]
+
+ else
+ raise_inspect 'else-case reached!', tokens
+
+ end
+
+ end
+
+ tokens
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/php.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/php.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,533 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # Original by Stefan Walk.
+ class PHP < Scanner
+
+ register_for :php
+ file_extension 'php'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ def setup
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ module Words
+
+ # according to http://www.php.net/manual/en/reserved.keywords.php
+ KEYWORDS = %w[
+ abstract and array as break case catch class clone const continue declare default do else elseif
+ enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
+ goto if implements interface instanceof namespace new or private protected public static switch
+ throw try use var while xor
+ cfunction old_function
+ ]
+
+ TYPES = %w[ int integer float double bool boolean string array object resource ]
+
+ LANGUAGE_CONSTRUCTS = %w[
+ die echo empty exit eval include include_once isset list
+ require require_once return print unset
+ ]
+
+ CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
+
+ # according to http://php.net/quickref.php on 2009-04-21;
+ # all functions with _ excluded (module functions) and selected additional functions
+ BUILTIN_FUNCTIONS = %w[
+ abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
+ atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
+ bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
+ calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
+ compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
+ decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
+ ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
+ fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
+ fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
+ fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
+ getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
+ getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
+ gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
+ gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
+ gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
+ implode include intval ip2long iptcembed iptcparse isset
+ jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
+ juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
+ log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
+ natsort next ngettext nl2br nthmac octdec opendir openlog
+ ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
+ prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
+ readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
+ serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
+ snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
+ strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
+ strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
+ strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
+ textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
+ unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
+ array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
+ array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
+ array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
+ array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
+ array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
+ array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
+ array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
+ array_walk_recursive
+ assert_options base_convert base64_decode base64_encode
+ chunk_split class_exists class_implements class_parents
+ count_chars debug_backtrace debug_print_backtrace debug_zval_dump
+ error_get_last error_log error_reporting extension_loaded
+ file_exists file_get_contents file_put_contents load_file
+ func_get_arg func_get_args func_num_args function_exists
+ get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
+ get_current_user get_declared_classes get_declared_interfaces get_defined_constants
+ get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
+ get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
+ get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
+ gc_collect_cycles gc_disable gc_enable gc_enabled
+ halt_compiler headers_list headers_sent highlight_file highlight_string
+ html_entity_decode htmlspecialchars_decode
+ in_array include_once inclued_get_data
+ is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
+ is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
+ is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
+ is_writable is_writeable
+ locale_get_default locale_set_default
+ number_format override_function parse_str parse_url
+ php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
+ php_strip_whitespace php_uname
+ preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
+ preg_replace_callback preg_split print_r
+ require_once register_shutdown_function register_tick_function
+ set_error_handler set_exception_handler set_file_buffer set_include_path
+ set_magic_quotes_runtime set_time_limit shell_exec
+ str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
+ strip_tags substr_compare substr_count substr_replace
+ time_nanosleep time_sleep_until
+ token_get_all token_name trigger_error
+ unregister_tick_function use_soap_error_handler user_error
+ utf8_decode utf8_encode var_dump var_export
+ version_compare
+ zend_logo_guid zend_thread_id zend_version
+ create_function call_user_func_array
+ posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
+ posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
+ posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
+ posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
+ posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
+ posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
+ posix_setuid posix_strerror posix_times posix_ttyname posix_uname
+ pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
+ pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
+ pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
+ pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
+ ]
+ # TODO: more built-in PHP functions?
+
+ EXCEPTIONS = %w[
+ E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
+ E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
+ ]
+
+ CONSTANTS = %w[
+ null true false self parent
+ __LINE__ __DIR__ __FILE__ __LINE__
+ __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
+ PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
+ PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
+ PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
+ PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
+ PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
+ __COMPILER_HALT_OFFSET__
+ EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
+ EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
+ COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
+ CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
+ M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
+ CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
+ HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
+ INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
+ CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
+ STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
+ LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
+ ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
+ ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
+ MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
+ ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
+ POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
+ N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
+ YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
+ LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
+ LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
+ LOG_NDELAY LOG_NOWAIT LOG_PERROR
+ ]
+
+ PREDEFINED = %w[
+ $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
+ $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
+ $argc $argv
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(KEYWORDS, :reserved).
+ add(TYPES, :pre_type).
+ add(LANGUAGE_CONSTRUCTS, :reserved).
+ add(BUILTIN_FUNCTIONS, :predefined).
+ add(CLASSES, :pre_constant).
+ add(EXCEPTIONS, :exception).
+ add(CONSTANTS, :pre_constant)
+
+ VARIABLE_KIND = WordList.new(:local_variable).
+ add(PREDEFINED, :predefined)
+ end
+
+ module RE
+
+ PHP_START = /
+ |
+ \?>
+ !xi
+
+ HTML_INDICATOR = / ]/i
+
+ IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
+ VARIABLE = /\$#{IDENTIFIER}/
+
+ OPERATOR = /
+ \.(?!\d)=? | # dot that is not decimal point, string concatenation
+ && | \|\| | # logic
+ :: | -> | => | # scope, member, dictionary
+ \\(?!\n) | # namespace
+ \+\+ | -- | # increment, decrement
+ [,;?:()\[\]{}] | # simple delimiters
+ [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
+ [~$] | # whatever
+ =& | # reference assignment
+ [=!]=?=? | <> | # comparison and assignment
+ <<=? | >>=? | [<>]=? # comparison and shift
+ /x
+
+ end
+
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::ASCII_8BIT
+ self.string = string.encode Encoding::ASCII_8BIT,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+
+ if check(RE::PHP_START) || # starts with
+ (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
+ exist?(RE::HTML_INDICATOR) ||
+ check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
+ # is HTML with embedded PHP, so start with HTML
+ states = [:initial]
+ else
+ # is just PHP, so start with PHP surrounded by HTML
+ states = [:initial, :php]
+ end
+
+ label_expected = true
+ case_expected = false
+
+ heredoc_delimiter = nil
+ delimiter = nil
+ modifier = nil
+
+ until eos?
+
+ match = nil
+ kind = nil
+
+ case states.last
+
+ when :initial # HTML
+ if scan RE::PHP_START
+ kind = :inline_delimiter
+ label_expected = true
+ states << :php
+ else
+ match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
+ @html_scanner.tokenize match unless match.empty?
+ next
+ end
+
+ when :php
+ if match = scan(/\s+/)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
+ kind = :comment
+
+ elsif match = scan(RE::IDENTIFIER)
+ kind = Words::IDENT_KIND[match]
+ if kind == :ident && label_expected && check(/:(?!:)/)
+ kind = :label
+ label_expected = true
+ else
+ label_expected = false
+ if kind == :ident && match =~ /^[A-Z]/
+ kind = :constant
+ elsif kind == :reserved
+ case match
+ when 'class'
+ states << :class_expected
+ when 'function'
+ states << :function_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ elsif match == 'b' && check(/['"]/) # binary string literal
+ modifier = match
+ next
+ end
+ end
+
+ elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
+ label_expected = false
+ kind = :float
+
+ elsif scan(/0x[0-9a-fA-F]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/\d+/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/'/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ kind = :delimiter
+ states.push :sqstring
+
+ elsif match = scan(/["`]/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ delimiter = match
+ kind = :delimiter
+ states.push :dqstring
+
+ elsif match = scan(RE::VARIABLE)
+ label_expected = false
+ kind = Words::VARIABLE_KIND[match]
+
+ elsif scan(/\{/)
+ kind = :operator
+ label_expected = true
+ states.push :php
+
+ elsif scan(/\}/)
+ if states.size == 1
+ kind = :error
+ else
+ states.pop
+ if states.last.is_a?(::Array)
+ delimiter = states.last[1]
+ states[-1] = states.last[0]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :inline]
+ next
+ else
+ kind = :operator
+ label_expected = true
+ end
+ end
+
+ elsif scan(/@/)
+ label_expected = false
+ kind = :exception
+
+ elsif scan RE::PHP_END
+ kind = :inline_delimiter
+ states = [:initial]
+
+ elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
+ tokens << [:open, :string]
+ warn 'heredoc in heredoc?' if heredoc_delimiter
+ heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
+ kind = :delimiter
+ states.push self[3] ? :sqstring : :dqstring
+ heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
+
+ elsif match = scan(/#{RE::OPERATOR}/o)
+ label_expected = match == ';'
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :sqstring
+ if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
+ kind = :content
+ elsif !heredoc_delimiter && scan(/'/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ end
+
+ when :dqstring
+ if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
+ kind = :content
+ elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
+ kind = :char
+ elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ elsif match = scan(/#{RE::VARIABLE}/o)
+ kind = :local_variable
+ if check(/\[#{RE::IDENTIFIER}\]/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/\[/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [scan(/\]/), :operator]
+ tokens << [:close, :inline]
+ next
+ elsif check(/\[/)
+ match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
+ kind = :error
+ elsif check(/->#{RE::IDENTIFIER}/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/->/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [:close, :inline]
+ next
+ elsif check(/->/)
+ match << scan(/->/)
+ kind = :error
+ end
+ elsif match = scan(/\{/)
+ if check(/\$/)
+ kind = :delimiter
+ states[-1] = [states.last, delimiter]
+ delimiter = nil
+ states.push :php
+ tokens << [:open, :inline]
+ else
+ kind = :string
+ end
+ elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
+ kind = :local_variable
+ elsif scan(/\$/)
+ kind = :content
+ end
+
+ when :class_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :class
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ when :function_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif scan(/&/)
+ kind = :operator
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :function
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state!', tokens, states
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, states
+ end
+ raise_inspect 'Empty token', tokens, states unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/plaintext.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/plaintext.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,21 @@
+module CodeRay
+module Scanners
+
+ class Plaintext < Scanner
+
+ register_for :plaintext, :plain
+ title 'Plain text'
+
+ include Streamable
+
+ KINDS_NOT_LOC = [:plain]
+
+ def scan_tokens tokens, options
+ text = (scan_until(/\z/) || '')
+ tokens << [text, :plain]
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/python.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/python.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,285 @@
+module CodeRay
+module Scanners
+
+ # Bases on pygments' PythonLexer, see
+ # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py.
+ class Python < Scanner
+
+ include Streamable
+
+ register_for :python
+ file_extension 'py'
+
+ KEYWORDS = [
+ 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
+ 'del', 'elif', 'else', 'except', 'finally', 'for',
+ 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not',
+ 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield',
+ 'nonlocal', # new in Python 3
+ ]
+
+ OLD_KEYWORDS = [
+ 'exec', 'print', # gone in Python 3
+ ]
+
+ PREDEFINED_METHODS_AND_TYPES = %w[
+ __import__ abs all any apply basestring bin bool buffer
+ bytearray bytes callable chr classmethod cmp coerce compile
+ complex delattr dict dir divmod enumerate eval execfile exit
+ file filter float frozenset getattr globals hasattr hash hex id
+ input int intern isinstance issubclass iter len list locals
+ long map max min next object oct open ord pow property range
+ raw_input reduce reload repr reversed round set setattr slice
+ sorted staticmethod str sum super tuple type unichr unicode
+ vars xrange zip
+ ]
+
+ PREDEFINED_EXCEPTIONS = %w[
+ ArithmeticError AssertionError AttributeError
+ BaseException DeprecationWarning EOFError EnvironmentError
+ Exception FloatingPointError FutureWarning GeneratorExit IOError
+ ImportError ImportWarning IndentationError IndexError KeyError
+ KeyboardInterrupt LookupError MemoryError NameError
+ NotImplemented NotImplementedError OSError OverflowError
+ OverflowWarning PendingDeprecationWarning ReferenceError
+ RuntimeError RuntimeWarning StandardError StopIteration
+ SyntaxError SyntaxWarning SystemError SystemExit TabError
+ TypeError UnboundLocalError UnicodeDecodeError
+ UnicodeEncodeError UnicodeError UnicodeTranslateError
+ UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
+ ]
+
+ PREDEFINED_VARIABLES_AND_CONSTANTS = [
+ 'False', 'True', 'None', # "keywords" since Python 3
+ 'self', 'Ellipsis', 'NotImplemented',
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(KEYWORDS, :keyword).
+ add(OLD_KEYWORDS, :old_keyword).
+ add(PREDEFINED_METHODS_AND_TYPES, :predefined).
+ add(PREDEFINED_VARIABLES_AND_CONSTANTS, :pre_constant).
+ add(PREDEFINED_EXCEPTIONS, :exception)
+
+ NAME = / [^\W\d] \w* /x
+ ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x
+
+ OPERATOR = /
+ \.\.\. | # ellipsis
+ \.(?!\d) | # dot but not decimal point
+ [,;:()\[\]{}] | # simple delimiters
+ \/\/=? | \*\*=? | # special math
+ [-+*\/%&|^]=? | # ordinary math and binary logic
+ [~`] | # binary complement and inspection
+ <<=? | >>=? | [<>=]=? | != # comparison and assignment
+ /x
+
+ STRING_DELIMITER_REGEXP = Hash.new do |h, delimiter|
+ h[delimiter] = Regexp.union delimiter
+ end
+
+ STRING_CONTENT_REGEXP = Hash.new do |h, delimiter|
+ h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x
+ end
+
+ DEF_NEW_STATE = WordList.new(:initial).
+ add(%w(def), :def_expected).
+ add(%w(import from), :include_expected).
+ add(%w(class), :class_expected)
+
+ DESCRIPTOR = /
+ #{NAME}
+ (?: \. #{NAME} )*
+ | \*
+ /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ string_raw = false
+ import_clause = class_name_follows = last_token_dot = false
+ unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
+ from_import_state = []
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :string
+ if scan(STRING_DELIMITER_REGEXP[string_delimiter])
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif string_delimiter.size == 3 && scan(/\n/)
+ kind = :content
+ elsif scan(STRING_CONTENT_REGEXP[string_delimiter])
+ kind = :content
+ elsif !string_raw && scan(/ \\ #{ESCAPE} /ox)
+ kind = :char
+ elsif scan(/ \\ #{UNICODE_ESCAPE} /ox)
+ kind = :char
+ elsif scan(/ \\ . /x)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens, state
+ end
+
+ elsif match = scan(/ [ \t]+ | \\\n /x)
+ tokens << [match, :space]
+ next
+
+ elsif match = scan(/\n/)
+ tokens << [match, :space]
+ state = :initial if state == :include_expected
+ next
+
+ elsif match = scan(/ \# [^\n]* /mx)
+ tokens << [match, :comment]
+ next
+
+ elsif state == :initial
+
+ if scan(/#{OPERATOR}/o)
+ kind = :operator
+
+ elsif match = scan(/(u?r?|b)?("""|"|'''|')/i)
+ tokens << [:open, :string]
+ string_delimiter = self[2]
+ string_raw = false
+ modifiers = self[1]
+ unless modifiers.empty?
+ string_raw = !!modifiers.index(?r)
+ tokens << [modifiers, :modifier]
+ match = string_delimiter
+ end
+ state = :string
+ kind = :delimiter
+
+ # TODO: backticks
+
+ elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = IDENT_KIND[match]
+ # TODO: keyword arguments
+ kind = :ident if last_token_dot
+ if kind == :old_keyword
+ kind = check(/\(/) ? :ident : :keyword
+ elsif kind == :predefined && check(/ *=/)
+ kind = :ident
+ elsif kind == :keyword
+ state = DEF_NEW_STATE[match]
+ from_import_state << match.to_sym if state == :include_expected
+ end
+
+ elsif scan(/@[a-zA-Z0-9_.]+[lL]?/)
+ kind = :decorator
+
+ elsif scan(/0[xX][0-9A-Fa-f]+[lL]?/)
+ kind = :hex
+
+ elsif scan(/0[bB][01]+[lL]?/)
+ kind = :bin
+
+ elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
+ kind = :float
+ if scan(/[jJ]/)
+ match << matched
+ kind = :imaginary
+ end
+
+ elsif scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/)
+ kind = :oct
+
+ elsif match = scan(/\d+([lL])?/)
+ kind = :integer
+ if self[1] == nil && scan(/[jJ]/)
+ match << matched
+ kind = :imaginary
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :class_expected
+ state = :initial
+ if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = :class
+ else
+ next
+ end
+
+ elsif state == :include_expected
+ if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o)
+ kind = :include
+ if match == 'as'
+ kind = :keyword
+ from_import_state << :as
+ elsif from_import_state.first == :from && match == 'import'
+ kind = :keyword
+ from_import_state << :import
+ elsif from_import_state.last == :as
+ # kind = match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method
+ kind = :ident
+ from_import_state.pop
+ elsif IDENT_KIND[match] == :keyword
+ unscan
+ match = nil
+ state = :initial
+ next
+ end
+ elsif match = scan(/,/)
+ from_import_state.pop if from_import_state.last == :as
+ kind = :operator
+ else
+ from_import_state = []
+ state = :initial
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens, state
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ last_token_dot = match == '.'
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/rhtml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/rhtml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,78 @@
+module CodeRay
+module Scanners
+
+ load :html
+ load :ruby
+
+ # RHTML Scanner
+ class RHTML < Scanner
+
+ include Streamable
+ register_for :rhtml
+ title 'HTML ERB Template'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ ERB_RUBY_BLOCK = /
+ <%(?!%)[=-]?
+ (?>
+ [^\-%]* # normal*
+ (?> # special
+ (?: %(?!>) | -(?!%>) )
+ [^\-%]* # normal*
+ )*
+ )
+ (?: -?%> )?
+ /x
+
+ START_OF_ERB = /
+ <%(?!%)
+ /x
+
+ private
+
+ def setup
+ @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ def scan_tokens tokens, options
+
+ until eos?
+
+ if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_until(/\z/)) and not match.empty?
+ @html_scanner.tokenize match
+
+ elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
+ start_tag = match[/\A<%[-=#]?/]
+ end_tag = match[/-?%?>?\z/]
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -1 - end_tag.size]
+ if start_tag == '<%#'
+ tokens << [code, :comment]
+ else
+ @ruby_scanner.tokenize code
+ end
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ else
+ raise_inspect 'else-case reached!', tokens
+ end
+
+ end
+
+ tokens
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/ruby.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/ruby.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,444 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ # This scanner is really complex, since Ruby _is_ a complex language!
+ #
+ # It tries to highlight 100% of all common code,
+ # and 90% of strange codes.
+ #
+ # It is optimized for HTML highlighting, and is not very useful for
+ # parsing or pretty printing.
+ #
+ # For now, I think it's better than the scanners in VIM or Syntax, or
+ # any highlighter I was able to find, except Caleb's RubyLexer.
+ #
+ # I hope it's also better than the rdoc/irb lexer.
+ class Ruby < Scanner
+
+ include Streamable
+
+ register_for :ruby
+ file_extension 'rb'
+
+ helper :patterns
+
+ if not defined? EncodingError
+ EncodingError = Class.new Exception
+ end
+
+ private
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::UTF_8
+ self.string = string.encode Encoding::UTF_8,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ unicode = false
+ else
+ unicode = exist?(/[^\x00-\x7f]/)
+ end
+
+ last_token_dot = false
+ value_expected = true
+ heredocs = nil
+ last_state = nil
+ state = :initial
+ depth = nil
+ inline_block_stack = []
+
+
+ patterns = Patterns # avoid constant lookup
+
+ until eos?
+ match = nil
+ kind = nil
+
+ if state.instance_of? patterns::StringState
+# {{{
+ match = scan_until(state.pattern) || scan_until(/\z/)
+ tokens << [match, :content] unless match.empty?
+ break if eos?
+
+ if state.heredoc and self[1] # end of heredoc
+ match = getch.to_s
+ match << scan_until(/$/) unless eos?
+ tokens << [match, :delimiter]
+ tokens << [:close, state.type]
+ state = state.next_state
+ next
+ end
+
+ case match = getch
+
+ when state.delim
+ if state.paren
+ state.paren_depth -= 1
+ if state.paren_depth > 0
+ tokens << [match, :nesting_delimiter]
+ next
+ end
+ end
+ tokens << [match, :delimiter]
+ if state.type == :regexp and not eos?
+ modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
+ tokens << [modifiers, :modifier] unless modifiers.empty?
+ end
+ tokens << [:close, state.type]
+ value_expected = false
+ state = state.next_state
+
+ when '\\'
+ if state.interpreted
+ if esc = scan(/ #{patterns::ESCAPE} /ox)
+ tokens << [match + esc, :char]
+ else
+ tokens << [match, :error]
+ end
+ else
+ case m = getch
+ when state.delim, '\\'
+ tokens << [match + m, :char]
+ when nil
+ tokens << [match, :error]
+ else
+ tokens << [match + m, :content]
+ end
+ end
+
+ when '#'
+ case peek(1)
+ when '{'
+ inline_block_stack << [state, depth, heredocs]
+ value_expected = true
+ state = :initial
+ depth = 1
+ tokens << [:open, :inline]
+ tokens << [match + getch, :inline_delimiter]
+ when '$', '@'
+ tokens << [match, :escape]
+ last_state = state # scan one token as normal code, then return here
+ state = :initial
+ else
+ raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
+ end
+
+ when state.paren
+ state.paren_depth += 1
+ tokens << [match, :nesting_delimiter]
+
+ when /#{patterns::REGEXP_SYMBOLS}/ox
+ tokens << [match, :function]
+
+ else
+ raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
+
+ end
+ next
+# }}}
+ else
+# {{{
+ if match = scan(/[ \t\f]+/)
+ kind = :space
+ match << scan(/\s*/) unless eos? || heredocs
+ value_expected = true if match.index(?\n)
+ tokens << [match, kind]
+ next
+
+ elsif match = scan(/\\?\n/)
+ kind = :space
+ if match == "\n"
+ value_expected = true
+ state = :initial if state == :undef_comma_expected
+ end
+ if heredocs
+ unscan # heredoc scanning needs \n at start
+ state = heredocs.shift
+ tokens << [:open, state.type]
+ heredocs = nil if heredocs.empty?
+ next
+ else
+ match << scan(/\s*/) unless eos?
+ end
+ tokens << [match, kind]
+ next
+
+ elsif bol? && match = scan(/\#!.*/)
+ tokens << [match, :doctype]
+ next
+
+ elsif match = scan(/\#.*/) or
+ ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
+ kind = :comment
+ tokens << [match, kind]
+ next
+
+ elsif state == :initial
+
+ # IDENTS #
+ if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
+ /#{patterns::METHOD_NAME}/o)
+ if last_token_dot
+ kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
+ else
+ if value_expected != :expect_colon && scan(/:(?= )/)
+ tokens << [match, :key]
+ match = ':'
+ kind = :operator
+ else
+ kind = patterns::IDENT_KIND[match]
+ if kind == :ident
+ if match[/\A[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
+ kind = :constant
+ end
+ elsif kind == :reserved
+ state = patterns::DEF_NEW_STATE[match]
+ value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
+ end
+ end
+ end
+ value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
+
+ elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
+ kind = :ident
+ value_expected = :set if check(unicode ? /#{patterns::VALUE_FOLLOWS}/uo :
+ /#{patterns::VALUE_FOLLOWS}/o)
+
+ # OPERATORS #
+ elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
+ if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
+ value_expected = :set
+ end
+ last_token_dot = :set if self[1]
+ kind = :operator
+ unless inline_block_stack.empty?
+ case match
+ when '{'
+ depth += 1
+ when '}'
+ depth -= 1
+ if depth == 0 # closing brace of inline block reached
+ state, depth, heredocs = inline_block_stack.pop
+ heredocs = nil if heredocs && heredocs.empty?
+ tokens << [match, :inline_delimiter]
+ kind = :inline
+ match = :close
+ end
+ end
+ end
+
+ elsif match = scan(/ ['"] /mx)
+ tokens << [:open, :string]
+ kind = :delimiter
+ state = patterns::StringState.new :string, match == '"', match # important for streaming
+
+ elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo :
+ /#{patterns::INSTANCE_VARIABLE}/o)
+ kind = :instance_variable
+
+ elsif value_expected and match = scan(/\//)
+ tokens << [:open, :regexp]
+ kind = :delimiter
+ interpreted = true
+ state = patterns::StringState.new :regexp, interpreted, match
+
+ # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
+ elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
+ kind = self[1] ? :float : :integer
+
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ else
+ kind = :symbol
+ end
+
+ elsif match = scan(/ -[>=]? | [+!~^]=? | [*|&]{1,2}=? | >>? /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::HEREDOC_OPEN}/uo :
+ /#{patterns::HEREDOC_OPEN}/o)
+ indented = self[1] == '-'
+ quote = self[3]
+ delim = self[quote ? 4 : 2]
+ kind = patterns::QUOTE_TO_TYPE[quote]
+ tokens << [:open, kind]
+ tokens << [match, :delimiter]
+ match = :close
+ heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
+ heredocs ||= [] # create heredocs if empty
+ heredocs << heredoc
+
+ elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
+ kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
+ raise_inspect 'Unknown fancy string: %%%p' % k, tokens
+ end
+ tokens << [:open, kind]
+ state = patterns::StringState.new kind, interpreted, self[2]
+ kind = :delimiter
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::CHARACTER}/uo :
+ /#{patterns::CHARACTER}/o)
+ kind = :integer
+
+ elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif match = scan(/`/)
+ if last_token_dot
+ kind = :operator
+ else
+ tokens << [:open, :shell]
+ kind = :delimiter
+ state = patterns::StringState.new :shell, true, match
+ end
+
+ elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo :
+ /#{patterns::GLOBAL_VARIABLE}/o)
+ kind = :global_variable
+
+ elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo :
+ /#{patterns::CLASS_VARIABLE}/o)
+ kind = :class_variable
+
+ else
+ if !unicode && !string.respond_to?(:encoding)
+ # check for unicode
+ debug, $DEBUG = $DEBUG, false
+ begin
+ if check(/./mu).size > 1
+ # seems like we should try again with unicode
+ unicode = true
+ end
+ rescue
+ # bad unicode char; use getch
+ ensure
+ $DEBUG = debug
+ end
+ next if unicode
+ end
+ kind = :error
+ match = scan(unicode ? /./mu : /./m)
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if scan(/self\./)
+ tokens << ['self', :pre_constant]
+ tokens << ['.', :operator]
+ end
+ if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
+ /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :module_expected
+ if match = scan(/<)
+ kind = :operator
+ else
+ state = :initial
+ if match = scan(unicode ? /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/uo :
+ /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/o)
+ kind = :class
+ else
+ next
+ end
+ end
+
+ elsif state == :undef_expected
+ state = :undef_comma_expected
+ if match = scan(unicode ? /#{patterns::METHOD_NAME_EX}/uo :
+ /#{patterns::METHOD_NAME_EX}/o)
+ kind = :method
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ state.next_state = :undef_comma_expected
+ else
+ kind = :symbol
+ end
+ else
+ state = :initial
+ next
+ end
+
+ elsif state == :alias_expected
+ match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
+ /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
+
+ if match
+ tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
+ tokens << [self[2], :space]
+ tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
+ end
+ state = :initial
+ next
+
+ elsif state == :undef_comma_expected
+ if match = scan(/,/)
+ kind = :operator
+ state = :undef_expected
+ else
+ state = :initial
+ next
+ end
+
+ end
+# }}}
+
+ unless kind == :error
+ if value_expected = value_expected == :set
+ value_expected = :expect_colon if match == '?' || match == 'when'
+ end
+ last_token_dot = last_token_dot == :set
+ end
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ if last_state
+ state = last_state
+ last_state = nil
+ end
+ end
+ end
+
+ inline_block_stack << [state] if state.is_a? patterns::StringState
+ until inline_block_stack.empty?
+ this_block = inline_block_stack.pop
+ tokens << [:close, :inline] if this_block.size > 1
+ state = this_block.first
+ tokens << [:close, state.type]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
+
+# vim:fdm=marker
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/scheme.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/scheme.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,145 @@
+module CodeRay
+ module Scanners
+
+ # Scheme scanner for CodeRay (by closure).
+ # Thanks to murphy for putting CodeRay into public.
+ class Scheme < Scanner
+
+ # TODO: function defs
+ # TODO: built-in functions
+
+ register_for :scheme
+ file_extension 'scm'
+
+ CORE_FORMS = %w[
+ lambda let let* letrec syntax-case define-syntax let-syntax
+ letrec-syntax begin define quote if or and cond case do delay
+ quasiquote set! cons force call-with-current-continuation call/cc
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(CORE_FORMS, :reserved)
+
+ #IDENTIFIER_INITIAL = /[a-z!@\$%&\*\/\:<=>\?~_\^]/i
+ #IDENTIFIER_SUBSEQUENT = /#{IDENTIFIER_INITIAL}|\d|\.|\+|-/
+ #IDENTIFIER = /#{IDENTIFIER_INITIAL}#{IDENTIFIER_SUBSEQUENT}*|\+|-|\.{3}/
+ IDENTIFIER = /[a-zA-Z!@$%&*\/:<=>?~_^][\w!@$%&*\/:<=>?~^.+\-]*|[+-]|\.\.\./
+ DIGIT = /\d/
+ DIGIT10 = DIGIT
+ DIGIT16 = /[0-9a-f]/i
+ DIGIT8 = /[0-7]/
+ DIGIT2 = /[01]/
+ RADIX16 = /\#x/i
+ RADIX8 = /\#o/i
+ RADIX2 = /\#b/i
+ RADIX10 = /\#d/i
+ EXACTNESS = /#i|#e/i
+ SIGN = /[\+-]?/
+ EXP_MARK = /[esfdl]/i
+ EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/
+ SUFFIX = /#{EXP}?/
+ PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
+ PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
+ PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
+ PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
+ UINT10 = /#{DIGIT10}+#*/
+ UINT16 = /#{DIGIT16}+#*/
+ UINT8 = /#{DIGIT8}+#*/
+ UINT2 = /#{DIGIT2}+#*/
+ DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
+ UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
+ UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/
+ UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/
+ UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/
+ REAL10 = /#{SIGN}#{UREAL10}/
+ REAL16 = /#{SIGN}#{UREAL16}/
+ REAL8 = /#{SIGN}#{UREAL8}/
+ REAL2 = /#{SIGN}#{UREAL2}/
+ IMAG10 = /i|#{UREAL10}i/
+ IMAG16 = /i|#{UREAL16}i/
+ IMAG8 = /i|#{UREAL8}i/
+ IMAG2 = /i|#{UREAL2}i/
+ COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
+ COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
+ COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
+ COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
+ NUM10 = /#{PREFIX10}?#{COMPLEX10}/
+ NUM16 = /#{PREFIX16}#{COMPLEX16}/
+ NUM8 = /#{PREFIX8}#{COMPLEX8}/
+ NUM2 = /#{PREFIX2}#{COMPLEX2}/
+ NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
+
+ private
+ def scan_tokens tokens,options
+
+ state = :initial
+ ident_kind = IDENT_KIND
+
+ until eos?
+ kind = match = nil
+
+ case state
+ when :initial
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+ elsif scan(/['\(\[\)\]]|#\(/)
+ kind = :operator_fat
+ elsif scan(/;.*/)
+ kind = :comment
+ elsif scan(/#\\(?:newline|space|.?)/)
+ kind = :char
+ elsif scan(/#[ft]/)
+ kind = :pre_constant
+ elsif scan(/#{IDENTIFIER}/o)
+ kind = ident_kind[matched]
+ elsif scan(/\./)
+ kind = :operator
+ elsif scan(/"/)
+ tokens << [:open, :string]
+ state = :string
+ tokens << ['"', :delimiter]
+ next
+ elsif scan(/#{NUM}/o) and not matched.empty?
+ kind = :integer
+ elsif getch
+ kind = :error
+ end
+
+ when :string
+ if scan(/[^"\\]+/) or scan(/\\.?/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1),
+ tokens, state
+ end
+
+ else
+ raise "else case reached"
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end # until eos
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+
+ end #scan_tokens
+ end #class
+ end #module scanners
+end #module coderay
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/sql.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/sql.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,162 @@
+module CodeRay module Scanners
+
+ # by Josh Goebel
+ class SQL < Scanner
+
+ register_for :sql
+
+ RESERVED_WORDS = %w(
+ create database table index trigger drop primary key set select
+ insert update delete replace into
+ on from values before and or if exists case when
+ then else as group order by avg where
+ join inner outer union engine not
+ like end using collate show columns begin
+ )
+
+ PREDEFINED_TYPES = %w(
+ char varchar enum binary text tinytext mediumtext
+ longtext blob tinyblob mediumblob longblob timestamp
+ date time datetime year double decimal float int
+ integer tinyint mediumint bigint smallint unsigned bit
+ bool boolean hex bin oct
+ )
+
+ PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
+
+ DIRECTIVES = %w( auto_increment unique default charset )
+
+ PREDEFINED_CONSTANTS = %w( null true false )
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(PREDEFINED_FUNCTIONS, :predefined).
+ add(DIRECTIVES, :directive)
+
+ ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ STRING_PREFIXES = /[xnb]|_\w+/i
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_type = nil
+ string_content = ''
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :initial
+
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+
+ elsif scan(/(?:--\s?|#).*/)
+ kind = :comment
+
+ elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
+ kind = :operator
+
+ elsif scan(/(#{STRING_PREFIXES})?([`"'])/o)
+ prefix = self[1]
+ string_type = self[2]
+ tokens << [:open, :string]
+ tokens << [prefix, :modifier] if prefix
+ match = string_type
+ state = :string
+ kind = :delimiter
+
+ elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = match[0] == ?@ ? :variable : IDENT_KIND[match.downcase]
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+
+ elsif scan(/0[0-7]+(?![89.eEfF])/)
+ kind = :oct
+
+ elsif scan(/(?>\d+)(?![.eEfF])/)
+ kind = :integer
+
+ elsif scan(/\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ elsif state == :string
+ if match = scan(/[^\\"'`]+/)
+ string_content << match
+ next
+ elsif match = scan(/["'`]/)
+ if string_type == match
+ if peek(1) == string_type # doubling means escape
+ string_content << string_type << getch
+ next
+ end
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ string_type = nil
+ next
+ else
+ string_content << match
+ end
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ kind = :char
+ elsif match = scan(/ \\ . /mox)
+ string_content << match
+ next
+ elsif scan(/ \\ | $ /x)
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ kind = :error
+ state = :initial
+ else
+ raise "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise 'else-case reached', tokens
+
+ end
+
+ match ||= matched
+ unless kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+ tokens
+
+ end
+
+ end
+
+end end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/xml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/xml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,17 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # XML Scanner
+ #
+ # Currently this is the same scanner as Scanners::HTML.
+ class XML < HTML
+
+ register_for :xml
+ file_extension 'xml'
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/yaml.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/.svn/text-base/yaml.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,140 @@
+module CodeRay
+module Scanners
+
+ # YAML Scanner
+ #
+ # Based on the YAML scanner from Syntax by Jamis Buck.
+ class YAML < Scanner
+
+ register_for :yaml
+ file_extension 'yml'
+
+ KINDS_NOT_LOC = :all
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ state = :initial
+ key_indent = indent = 0
+
+ until eos?
+
+ kind = nil
+ match = nil
+ key_indent = nil if bol?
+
+ if match = scan(/ +[\t ]*/)
+ kind = :space
+
+ elsif match = scan(/\n+/)
+ kind = :space
+ state = :initial if match.index(?\n)
+
+ elsif match = scan(/#.*/)
+ kind = :comment
+
+ elsif bol? and case
+ when match = scan(/---|\.\.\./)
+ tokens << [:open, :head]
+ tokens << [match, :head]
+ tokens << [:close, :head]
+ next
+ when match = scan(/%.*/)
+ tokens << [match, :doctype]
+ next
+ end
+
+ elsif state == :value and case
+ when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
+ tokens << [:open, :string]
+ tokens << [matched, :delimiter]
+ tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
+ tokens << [matched, :delimiter] if scan(/"/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/[|>][-+]?/)
+ tokens << [:open, :string]
+ tokens << [match, :delimiter]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
+ tokens << [match, :string]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ next
+ end
+
+ elsif case
+ when match = scan(/[-:](?= |$)/)
+ state = :value if state == :colon && (match == ':' || match == '-')
+ state = :value if state == :initial && match == '-'
+ kind = :operator
+ when match = scan(/[,{}\[\]]/)
+ kind = :operator
+ when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
+ kind = :key
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
+ tokens << [:open, :key]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content]
+ tokens << [match[-1,1], :delimiter]
+ tokens << [:close, :key]
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ next
+ when scan(/(![\w\/]+)(:([\w:]+))?/)
+ tokens << [self[1], :type]
+ if self[2]
+ tokens << [':', :operator]
+ tokens << [self[3], :class]
+ end
+ next
+ when scan(/&\S+/)
+ kind = :variable
+ when scan(/\*\w+/)
+ kind = :global_variable
+ when scan(/<)
+ kind = :class_variable
+ when scan(/\d\d:\d\d:\d\d/)
+ kind = :oct
+ when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
+ kind = :oct
+ when scan(/:\w+/)
+ kind = :symbol
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
+ kind = :error
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
+ kind = :error
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/_map.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/_map.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,23 @@
+module CodeRay
+module Scanners
+
+ map \
+ :h => :c,
+ :cplusplus => :cpp,
+ :'c++' => :cpp,
+ :ecma => :java_script,
+ :ecmascript => :java_script,
+ :ecma_script => :java_script,
+ :irb => :ruby,
+ :javascript => :java_script,
+ :js => :java_script,
+ :nitro => :nitro_xhtml,
+ :pascal => :delphi,
+ :plain => :plaintext,
+ :xhtml => :html,
+ :yml => :yaml
+
+ default :plain
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/c.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/c.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,203 @@
+module CodeRay
+module Scanners
+
+ class C < Scanner
+
+ include Streamable
+
+ register_for :c
+ file_extension 'c'
+
+ RESERVED_WORDS = [
+ 'asm', 'break', 'case', 'continue', 'default', 'do',
+ 'else', 'enum', 'for', 'goto', 'if', 'return',
+ 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while',
+ 'restrict', # added in C99
+ ]
+
+ PREDEFINED_TYPES = [
+ 'int', 'long', 'short', 'char',
+ 'signed', 'unsigned', 'float', 'double',
+ 'bool', 'complex', # added in C99
+ ]
+
+ PREDEFINED_CONSTANTS = [
+ 'EOF', 'NULL',
+ 'true', 'false', # added in C99
+ ]
+ DIRECTIVES = [
+ 'auto', 'extern', 'register', 'static', 'void',
+ 'const', 'volatile', # added in C89
+ 'inline', # added in C99
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(DIRECTIVES, :directive).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ label_expected = true
+ case_expected = false
+ label_expected_before_preproc_line = nil
+ in_preproc_line = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ if in_preproc_line && match != "\\\n" && match.index(?\n)
+ in_preproc_line = false
+ label_expected = label_expected_before_preproc_line
+ end
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif match = scan(/ \# \s* if \s* 0 /x)
+ match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
+ kind = :comment
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
+ label_expected = match =~ /[;\{\}]/
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match]
+ if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
+ kind = :label
+ match << matched
+ else
+ label_expected = false
+ if kind == :reserved
+ case match
+ when 'case', 'default'
+ case_expected = true
+ end
+ end
+ end
+
+ elsif scan(/\$/)
+ kind = :ident
+
+ elsif match = scan(/L?"/)
+ tokens << [:open, :string]
+ if match[0] == ?L
+ tokens << ['L', :modifier]
+ match = '"'
+ end
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/#[ \t]*(\w*)/)
+ kind = :preprocessor
+ in_preproc_line = true
+ label_expected_before_preproc_line = label_expected
+ state = :include_expected if self[1] == 'include'
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ label_expected = false
+ kind = :char
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
+ label_expected = false
+ kind = :oct
+
+ elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ label_expected = false
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\\n"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ label_expected = false
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ label_expected = false
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ when :include_expected
+ if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
+ kind = :include
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+ state = :initial if match.index ?\n
+
+ else
+ state = :initial
+ next
+
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/cpp.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/cpp.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,228 @@
+module CodeRay
+module Scanners
+
+ class CPlusPlus < Scanner
+
+ include Streamable
+
+ register_for :cpp
+ file_extension 'cpp'
+ title 'C++'
+
+ # http://www.cppreference.com/wiki/keywords/start
+ RESERVED_WORDS = [
+ 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break',
+ 'case', 'catch', 'class', 'compl', 'const_cast',
+ 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else',
+ 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new',
+ 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return',
+ 'sizeof', 'static_cast', 'struct', 'switch', 'template',
+ 'throw', 'try', 'typedef', 'typeid', 'typename', 'union',
+ 'while', 'xor', 'xor_eq'
+ ]
+
+ PREDEFINED_TYPES = [
+ 'bool', 'char', 'double', 'float', 'int', 'long',
+ 'short', 'signed', 'unsigned', 'wchar_t', 'string'
+ ]
+ PREDEFINED_CONSTANTS = [
+ 'false', 'true',
+ 'EOF', 'NULL',
+ ]
+ PREDEFINED_VARIABLES = [
+ 'this'
+ ]
+ DIRECTIVES = [
+ 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator',
+ 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void',
+ 'volatile'
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_VARIABLES, :local_variable).
+ add(DIRECTIVES, :directive).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ label_expected = true
+ case_expected = false
+ label_expected_before_preproc_line = nil
+ in_preproc_line = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ if in_preproc_line && match != "\\\n" && match.index(?\n)
+ in_preproc_line = false
+ label_expected = label_expected_before_preproc_line
+ end
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif match = scan(/ \# \s* if \s* 0 /x)
+ match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
+ kind = :comment
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
+ label_expected = match =~ /[;\{\}]/
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match]
+ if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
+ kind = :label
+ match << matched
+ else
+ label_expected = false
+ if kind == :reserved
+ case match
+ when 'class'
+ state = :class_name_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ end
+ end
+
+ elsif scan(/\$/)
+ kind = :ident
+
+ elsif match = scan(/L?"/)
+ tokens << [:open, :string]
+ if match[0] == ?L
+ tokens << ['L', :modifier]
+ match = '"'
+ end
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/#[ \t]*(\w*)/)
+ kind = :preprocessor
+ in_preproc_line = true
+ label_expected_before_preproc_line = label_expected
+ state = :include_expected if self[1] == 'include'
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ label_expected = false
+ kind = :char
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
+ label_expected = false
+ kind = :oct
+
+ elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ label_expected = false
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ label_expected = false
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ label_expected = false
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ when :include_expected
+ if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
+ kind = :include
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+ state = :initial if match.index ?\n
+
+ else
+ state = :initial
+ next
+
+ end
+
+ when :class_name_expected
+ if scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = :class
+ state = :initial
+
+ elsif match = scan(/\s+/)
+ kind = :space
+
+ else
+ getch
+ kind = :error
+ state = :initial
+
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/css.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/css.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,209 @@
+module CodeRay
+module Scanners
+
+ class CSS < Scanner
+
+ register_for :css
+
+ KINDS_NOT_LOC = [
+ :comment,
+ :class, :pseudo_class, :type,
+ :constant, :directive,
+ :key, :value, :operator, :color, :float,
+ :error, :important,
+ ]
+
+ module RE
+ Hex = /[0-9a-fA-F]/
+ Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too
+ Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/
+ NMChar = /[-_a-zA-Z0-9]|#{Escape}/
+ NMStart = /[_a-zA-Z]|#{Escape}/
+ NL = /\r\n|\r|\n|\f/
+ String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # FIXME: buggy regexp
+ String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # FIXME: buggy regexp
+ String = /#{String1}|#{String2}/
+
+ HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/
+ Color = /#{HexColor}/
+
+ Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/
+ Name = /#{NMChar}+/
+ Ident = /-?#{NMStart}#{NMChar}*/
+ AtKeyword = /@#{Ident}/
+ Percentage = /#{Num}%/
+
+ reldimensions = %w[em ex px]
+ absdimensions = %w[in cm mm pt pc]
+ Unit = Regexp.union(*(reldimensions + absdimensions))
+
+ Dimension = /#{Num}#{Unit}/
+
+ Comment = %r! /\* (?: .*? \*/ | .* ) !mx
+ Function = /(?:url|alpha)\((?:[^)\n\r\f]|\\\))*\)?/
+
+ Id = /##{Name}/
+ Class = /\.#{Name}/
+ PseudoClass = /:#{Name}/
+ AttributeSelector = /\[[^\]]*\]?/
+
+ end
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ states = [:initial]
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/)
+ kind = :space
+
+ elsif case states.last
+ when :initial, :media
+ if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
+ kind = :type
+ elsif scan RE::Class
+ kind = :class
+ elsif scan RE::Id
+ kind = :constant
+ elsif scan RE::PseudoClass
+ kind = :pseudo_class
+ elsif match = scan(RE::AttributeSelector)
+ # TODO: Improve highlighting inside of attribute selectors.
+ tokens << [:open, :string]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content] if match.size > 2
+ tokens << [match[-1,1], :delimiter] if match[-1] == ?]
+ tokens << [:close, :string]
+ next
+ elsif match = scan(/@media/)
+ kind = :directive
+ states.push :media_before_name
+ end
+
+ when :block
+ if scan(/(?>#{RE::Ident})(?!\()/ox)
+ if value_expected
+ kind = :value
+ else
+ kind = :key
+ end
+ end
+
+ when :media_before_name
+ if scan RE::Ident
+ kind = :type
+ states[-1] = :media_after_name
+ end
+
+ when :media_after_name
+ if scan(/\{/)
+ kind = :operator
+ states[-1] = :media
+ end
+
+ when :comment
+ if scan(/(?:[^*\s]|\*(?!\/))+/)
+ kind = :comment
+ elsif scan(/\*\//)
+ kind = :comment
+ states.pop
+ elsif scan(/\s+/)
+ kind = :space
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ elsif scan(/\/\*/)
+ kind = :comment
+ states.push :comment
+
+ elsif scan(/\{/)
+ value_expected = false
+ kind = :operator
+ states.push :block
+
+ elsif scan(/\}/)
+ value_expected = false
+ if states.last == :block || states.last == :media
+ kind = :operator
+ states.pop
+ else
+ kind = :error
+ end
+
+ elsif match = scan(/#{RE::String}/o)
+ tokens << [:open, :string]
+ tokens << [match[0, 1], :delimiter]
+ tokens << [match[1..-2], :content] if match.size > 2
+ tokens << [match[-1, 1], :delimiter] if match.size >= 2
+ tokens << [:close, :string]
+ next
+
+ elsif match = scan(/#{RE::Function}/o)
+ tokens << [:open, :string]
+ start = match[/^\w+\(/]
+ tokens << [start, :delimiter]
+ if match[-1] == ?)
+ tokens << [match[start.size..-2], :content]
+ tokens << [')', :delimiter]
+ else
+ tokens << [match[start.size..-1], :content]
+ end
+ tokens << [:close, :string]
+ next
+
+ elsif scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox)
+ kind = :float
+
+ elsif scan(/#{RE::Color}/o)
+ kind = :color
+
+ elsif scan(/! *important/)
+ kind = :important
+
+ elsif scan(/rgb\([^()\n]*\)?/)
+ kind = :color
+
+ elsif scan(/#{RE::AtKeyword}/o)
+ kind = :directive
+
+ elsif match = scan(/ [+>:;,.=()\/] /x)
+ if match == ':'
+ value_expected = true
+ elsif match == ';'
+ value_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/debug.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/debug.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,62 @@
+module CodeRay
+module Scanners
+
+ # = Debug Scanner
+ class Debug < Scanner
+
+ include Streamable
+ register_for :debug
+ file_extension 'raydebug'
+ title 'CodeRay Token Dump'
+
+ protected
+ def scan_tokens tokens, options
+
+ opened_tokens = []
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/)
+ tokens << [matched, :space]
+ next
+
+ elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x)
+ kind = self[1].to_sym
+ match = self[2].gsub(/\\(.)/, '\1')
+
+ elsif scan(/ (\w+) < /x)
+ kind = self[1].to_sym
+ opened_tokens << kind
+ match = :open
+
+ elsif !opened_tokens.empty? && scan(/ > /x)
+ kind = opened_tokens.pop || :error
+ match = :close
+
+ else
+ kind = :error
+ getch
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/delphi.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/delphi.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,150 @@
+module CodeRay
+module Scanners
+
+ class Delphi < Scanner
+
+ register_for :delphi
+ file_extension 'pas'
+
+ RESERVED_WORDS = [
+ 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class',
+ 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do',
+ 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization',
+ 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in',
+ 'inherited', 'initialization', 'inline', 'interface', 'is', 'label',
+ 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed',
+ 'procedure', 'program', 'property', 'raise', 'record', 'repeat',
+ 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar',
+ 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with',
+ 'xor', 'on'
+ ]
+
+ DIRECTIVES = [
+ 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl',
+ 'contains', 'deprecated', 'dispid', 'dynamic', 'export',
+ 'external', 'far', 'forward', 'implements', 'local',
+ 'near', 'nodefault', 'on', 'overload', 'override',
+ 'package', 'pascal', 'platform', 'private', 'protected', 'public',
+ 'published', 'read', 'readonly', 'register', 'reintroduce',
+ 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs',
+ 'virtual', 'write', 'writeonly'
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(DIRECTIVES, :directive)
+
+ NAME_FOLLOWS = CaseIgnoringWordList.new(false).
+ add(%w(procedure function .))
+
+ private
+ def scan_tokens tokens, options
+
+ state = :initial
+ last_token = ''
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :initial
+
+ if scan(/ \s+ /x)
+ tokens << [matched, :space]
+ next
+
+ elsif scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx)
+ tokens << [matched, :preprocessor]
+ next
+
+ elsif scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx)
+ tokens << [matched, :comment]
+ next
+
+ elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x)
+ kind = :operator
+
+ elsif match = scan(/\./)
+ kind = :operator
+ if last_token == 'end'
+ tokens << [match, kind]
+ next
+ end
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match]
+
+ elsif match = scan(/ ' ( [^\n']|'' ) (?:'|$) /x)
+ tokens << [:open, :char]
+ tokens << ["'", :delimiter]
+ tokens << [self[1], :content]
+ tokens << ["'", :delimiter]
+ tokens << [:close, :char]
+ next
+
+ elsif match = scan(/ ' /x)
+ tokens << [:open, :string]
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x)
+ kind = :char
+
+ elsif scan(/ \$ [0-9A-Fa-f]+ /x)
+ kind = :hex
+
+ elsif scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x)
+ kind = :integer
+
+ elsif scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x)
+ kind = :float
+
+ else
+ kind = :error
+ getch
+
+ end
+
+ elsif state == :string
+ if scan(/[^\n']+/)
+ kind = :content
+ elsif scan(/''/)
+ kind = :char
+ elsif scan(/'/)
+ tokens << ["'", :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif scan(/\n/)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise "else case \' reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise 'else-case reached', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/diff.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/diff.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,110 @@
+module CodeRay
+module Scanners
+
+ class Diff < Scanner
+
+ register_for :diff
+ title 'diff output'
+
+ def scan_tokens tokens, options
+
+ line_kind = nil
+ state = :initial
+
+ until eos?
+ kind = match = nil
+
+ if match = scan(/\n/)
+ if line_kind
+ tokens << [:end_line, line_kind]
+ line_kind = nil
+ end
+ tokens << [match, :space]
+ next
+ end
+
+ case state
+
+ when :initial
+ if match = scan(/--- |\+\+\+ |=+|_+/)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/Index: |Property changes on: /)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/Added: /)
+ tokens << [:begin_line, line_kind = :head]
+ tokens << [match, :head]
+ next unless match = scan(/.+/)
+ kind = :plain
+ state = :added
+ elsif match = scan(/\\ /)
+ tokens << [:begin_line, line_kind = :change]
+ tokens << [match, :change]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/@@(?>[^@\n]*)@@/)
+ if check(/\n|$/)
+ tokens << [:begin_line, line_kind = :change]
+ else
+ tokens << [:open, :change]
+ end
+ tokens << [match[0,2], :change]
+ tokens << [match[2...-2], :plain]
+ tokens << [match[-2,2], :change]
+ tokens << [:close, :change] unless line_kind
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/\+/)
+ tokens << [:begin_line, line_kind = :insert]
+ tokens << [match, :insert]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif match = scan(/-/)
+ tokens << [:begin_line, line_kind = :delete]
+ tokens << [match, :delete]
+ next unless match = scan(/.+/)
+ kind = :plain
+ elsif scan(/ .*/)
+ kind = :comment
+ elsif scan(/.+/)
+ tokens << [:begin_line, line_kind = :comment]
+ kind = :plain
+ else
+ raise_inspect 'else case rached'
+ end
+
+ when :added
+ if match = scan(/ \+/)
+ tokens << [:begin_line, line_kind = :insert]
+ tokens << [match, :insert]
+ next unless match = scan(/.+/)
+ kind = :plain
+ else
+ state = :initial
+ next
+ end
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+ end
+
+ tokens << [:end_line, line_kind] if line_kind
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/groovy.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/groovy.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,264 @@
+module CodeRay
+module Scanners
+
+ load :java
+
+ class Groovy < Java
+
+ include Streamable
+ register_for :groovy
+
+ # TODO: Check this!
+ GROOVY_KEYWORDS = %w[
+ as assert def in
+ ]
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case instanceof new return throw typeof while as assert in
+ ]
+ GROOVY_MAGIC_VARIABLES = %w[ it ]
+
+ IDENT_KIND = Java::IDENT_KIND.dup.
+ add(GROOVY_KEYWORDS, :keyword).
+ add(GROOVY_MAGIC_VARIABLES, :local_variable)
+
+ ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
+ REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
+
+ # TODO: interpretation inside ', ", /
+ STRING_CONTENT_PATTERN = {
+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
+ '"' => /[^\\$"\n]+/,
+ "'''" => /(?>[^\\']+|'(?!''))+/,
+ '"""' => /(?>[^\\$"]+|"(?!""))+/,
+ '/' => /[^\\$\/\n]+/,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ inline_block_stack = []
+ inline_block_paren_depth = nil
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token = after_def = false
+ value_expected = true
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ if match.index ?\n
+ import_clause = after_def = false
+ value_expected = true unless value_expected
+ end
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ after_def = false
+ kind = :comment
+
+ elsif bol? && scan(/ \#!.* /x)
+ kind = :doctype
+
+ elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
+ after_def = value_expected = false
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ if last_token == '.'
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ elsif after_def && check(/\s*[({]/)
+ kind = :method
+ after_def = false
+ elsif kind == :ident && last_token != '?' && check(/:/)
+ kind = :key
+ else
+ class_name_follows = true if match == 'class' || (import_clause && match == 'as')
+ import_clause = match == 'import'
+ after_def = true if match == 'def'
+ end
+
+ elsif scan(/;/)
+ import_clause = after_def = false
+ value_expected = true
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = after_def = false
+ value_expected = true
+ kind = :operator
+ if !inline_block_stack.empty?
+ inline_block_paren_depth += 1
+ end
+
+ # TODO: ~'...', ~"..." and ~/.../ style regexps
+ elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
+ && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
+ value_expected = true
+ value_expected = :regexp if match == '~'
+ after_def = false
+ kind = :operator
+
+ elsif match = scan(/ [)\]}] /x)
+ value_expected = after_def = false
+ if !inline_block_stack.empty? && match == '}'
+ inline_block_paren_depth -= 1
+ if inline_block_paren_depth == 0 # closing brace of inline block reached
+ tokens << [match, :inline_delimiter]
+ tokens << [:close, :inline]
+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
+ next
+ end
+ end
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ after_def = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lLgG]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/'''|"""/)
+ after_def = value_expected = false
+ state = :multiline_string
+ tokens << [:open, :string]
+ string_delimiter = match
+ kind = :delimiter
+
+ # TODO: record.'name'
+ elsif match = scan(/["']/)
+ after_def = value_expected = false
+ state = match == '/' ? :regexp : :string
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\//))
+ after_def = value_expected = false
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ after_def = value_expected = false
+ kind = :annotation
+
+ elsif scan(/\//)
+ after_def = false
+ value_expected = true
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :multiline_string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+
+ elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ # TODO: regexp modifiers? s, m, x, i?
+ modifiers = scan(/[ix]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ state = :string if state == :multiline_string
+ tokens << [:close, state]
+ string_delimiter = nil
+ after_def = value_expected = false
+ state = :initial
+ next
+
+ elsif (state == :string || state == :multiline_string) &&
+ (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+
+ elsif match = scan(/ \$ #{IDENT} /mox)
+ tokens << [:open, :inline]
+ tokens << ['$', :inline_delimiter]
+ match = match[1..-1]
+ tokens << [match, IDENT_KIND[match]]
+ tokens << [:close, :inline]
+ next
+ elsif match = scan(/ \$ \{ /x)
+ tokens << [:open, :inline]
+ tokens << ['${', :inline_delimiter]
+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
+ inline_block_paren_depth = 1
+ state = :initial
+ next
+
+ elsif scan(/ \$ /mx)
+ kind = :content
+
+ elsif scan(/ \\. /mx)
+ kind = :content
+
+ elsif scan(/ \\ | \n /x)
+ tokens << [:close, state]
+ kind = :error
+ after_def = value_expected = false
+ state = :initial
+
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match unless [:space, :comment, :doctype].include? kind
+
+ tokens << [match, kind]
+
+ end
+
+ if [:multiline_string, :string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/html.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/html.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,182 @@
+module CodeRay
+module Scanners
+
+ # HTML Scanner
+ class HTML < Scanner
+
+ include Streamable
+ register_for :html
+
+ KINDS_NOT_LOC = [
+ :comment, :doctype, :preprocessor,
+ :tag, :attribute_name, :operator,
+ :attribute_value, :delimiter, :content,
+ :plain, :entity, :error
+ ]
+
+ ATTR_NAME = /[\w.:-]+/
+ ATTR_VALUE_UNQUOTED = ATTR_NAME
+ TAG_END = /\/?>/
+ HEX = /[0-9a-fA-F]/
+ ENTITY = /
+ &
+ (?:
+ \w+
+ |
+ \#
+ (?:
+ \d+
+ |
+ x#{HEX}+
+ )
+ )
+ ;
+ /ox
+
+ PLAIN_STRING_CONTENT = {
+ "'" => /[^&'>\n]+/,
+ '"' => /[^&">\n]+/,
+ }
+
+ def reset
+ super
+ @state = :initial
+ end
+
+ private
+ def setup
+ @state = :initial
+ @plain_string_content = nil
+ end
+
+ def scan_tokens tokens, options
+
+ state = @state
+ plain_string_content = @plain_string_content
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if scan(/\s+/m)
+ kind = :space
+
+ else
+
+ case state
+
+ when :initial
+ if scan(//m)
+ kind = :comment
+ elsif scan(//m)
+ kind = :doctype
+ elsif scan(/<\?xml.*?\?>/m)
+ kind = :preprocessor
+ elsif scan(/<\?.*?\?>|<%.*?%>/m)
+ kind = :comment
+ elsif scan(/<\/[-\w.:]*>/m)
+ kind = :tag
+ elsif match = scan(/<[-\w.:]+>?/m)
+ kind = :tag
+ state = :attribute unless match[-1] == ?>
+ elsif scan(/[^<>&]+/)
+ kind = :plain
+ elsif scan(/#{ENTITY}/ox)
+ kind = :entity
+ elsif scan(/[<>&]/)
+ kind = :error
+ else
+ raise_inspect '[BUG] else-case reached with state %p' % [state], tokens
+ end
+
+ when :attribute
+ if scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ elsif scan(/#{ATTR_NAME}/o)
+ kind = :attribute_name
+ state = :attribute_equal
+ else
+ kind = :error
+ getch
+ end
+
+ when :attribute_equal
+ if scan(/=/)
+ kind = :operator
+ state = :attribute_value
+ elsif scan(/#{ATTR_NAME}/o)
+ kind = :attribute_name
+ elsif scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ elsif scan(/./)
+ kind = :error
+ state = :attribute
+ end
+
+ when :attribute_value
+ if scan(/#{ATTR_VALUE_UNQUOTED}/o)
+ kind = :attribute_value
+ state = :attribute
+ elsif match = scan(/["']/)
+ tokens << [:open, :string]
+ state = :attribute_value_string
+ plain_string_content = PLAIN_STRING_CONTENT[match]
+ kind = :delimiter
+ elsif scan(/#{TAG_END}/o)
+ kind = :tag
+ state = :initial
+ else
+ kind = :error
+ getch
+ end
+
+ when :attribute_value_string
+ if scan(plain_string_content)
+ kind = :content
+ elsif scan(/['"]/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :attribute
+ next
+ elsif scan(/#{ENTITY}/ox)
+ kind = :entity
+ elsif scan(/&/)
+ kind = :content
+ elsif scan(/[\n>]/)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ end
+
+ else
+ raise_inspect 'Unknown state: %p' % [state], tokens
+
+ end
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+ end
+
+ if options[:keep_state]
+ @state = state
+ @plain_string_content = plain_string_content
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,176 @@
+module CodeRay
+module Scanners
+
+ class Java < Scanner
+
+ include Streamable
+ register_for :java
+ helper :builtin_types
+
+ # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
+ KEYWORDS = %w[
+ assert break case catch continue default do else
+ finally for if instanceof import new package
+ return switch throw try typeof while
+ debugger export
+ ]
+ RESERVED = %w[ const goto ]
+ CONSTANTS = %w[ false null true ]
+ MAGIC_VARIABLES = %w[ this super ]
+ TYPES = %w[
+ boolean byte char class double enum float int interface long
+ short void
+ ] << '[]' # because int[] should be highlighted as a type
+ DIRECTIVES = %w[
+ abstract extends final implements native private protected public
+ static strictfp synchronized throws transient volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(KEYWORDS, :keyword).
+ add(RESERVED, :reserved).
+ add(CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(TYPES, :type).
+ add(BuiltinTypes::List, :pre_type).
+ add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception).
+ add(DIRECTIVES, :directive)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ IDENT = /[a-zA-Z_][A-Za-z_0-9]*/
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token_dot = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ next
+
+ elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ tokens << [match, :comment]
+ next
+
+ elsif import_clause && scan(/ #{IDENT} (?: \. #{IDENT} )* /ox)
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ if last_token_dot
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ else
+ import_clause = true if match == 'import'
+ class_name_follows = true if match == 'class' || match == 'interface'
+ end
+
+ elsif scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<=? | >>>?=? /x)
+ kind = :operator
+
+ elsif scan(/;/)
+ import_clause = false
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = false
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lL]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/["']/)
+ tokens << [:open, :string]
+ state = :string
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ kind = :annotation
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ tokens << [:close, state]
+ string_delimiter = nil
+ state = :initial
+ next
+ elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token_dot = match == '.'
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java
+END
+builtin_types.rb
+K 25
+svn:wc:ra_dav:version-url
+V 93
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/builtin_types.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,62 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+builtin_types.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+2522414597cbbef27fad175c20c8a556
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+41768
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/text-base/builtin_types.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/.svn/text-base/builtin_types.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,419 @@
+module CodeRay
+module Scanners
+
+ module Java::BuiltinTypes # :nodoc:
+
+ List = %w[
+ AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection
+ AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel
+ AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences
+ AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector
+ AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit
+ AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible
+ AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext
+ AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText
+ AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject
+ AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection
+ AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange
+ AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException
+ AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent
+ ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc
+ ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub
+ ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent
+ ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener
+ Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi
+ AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite
+ AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement
+ Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet
+ AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array
+ ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType
+ AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray
+ AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference
+ AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute
+ AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator
+ AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException
+ AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip
+ AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem
+ AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback
+ AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy
+ AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException
+ BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException
+ BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute
+ BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI
+ BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup
+ BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI
+ BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory
+ BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel
+ BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI
+ BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI
+ BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI
+ BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI
+ BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI
+ BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException
+ BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport
+ BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener
+ BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider
+ BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener
+ BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport
+ BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding
+ BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory
+ BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator
+ BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp
+ BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException
+ BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte
+ ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet
+ CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler
+ CancelablePrintJob CancellationException CancelledKeyException CannotProceedException
+ CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor
+ CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException
+ CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException
+ CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult
+ CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator
+ CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore
+ CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener
+ Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter
+ CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider
+ Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice
+ ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class
+ ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError
+ ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard
+ ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException
+ ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner
+ CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection
+ CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI
+ ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource
+ ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator
+ CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel
+ ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation
+ ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData
+ CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl
+ CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap
+ ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback
+ ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener
+ ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container
+ ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler
+ ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory
+ Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported
+ CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32
+ CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector
+ CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer
+ DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort
+ DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl
+ DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource
+ DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat
+ DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing
+ DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel
+ DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel
+ DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter
+ DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer
+ DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme
+ DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument
+ DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor
+ DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed
+ DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec
+ DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable
+ DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec
+ DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream
+ Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory
+ DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document
+ DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener
+ DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer
+ DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter
+ DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener
+ DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter
+ DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey
+ DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey
+ DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m
+ ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey
+ ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder
+ EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum
+ EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error
+ ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener
+ EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception
+ ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor
+ ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException
+ ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse
+ Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field
+ FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel
+ FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream
+ FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap
+ FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter
+ Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter
+ Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener
+ FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter
+ FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics
+ FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException
+ Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future
+ FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean
+ GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError
+ GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics
+ Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter
+ GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream
+ GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet
+ HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet
+ HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter
+ HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument
+ HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection
+ HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon
+ IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage
+ IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl
+ IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener
+ IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener
+ IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException
+ IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException
+ IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException
+ IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException
+ IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException
+ IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities
+ ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl
+ ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi
+ ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder
+ ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi
+ ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel
+ IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address
+ InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited
+ InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext
+ InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext
+ InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests
+ InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource
+ InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException
+ Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError
+ InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener
+ InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException
+ InterruptedNamingException InterruptibleChannel IntrospectionException Introspector
+ InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException
+ InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException
+ InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException
+ InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException
+ InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException
+ InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException
+ InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException
+ InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException
+ InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler
+ InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator
+ IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection
+ JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog
+ JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu
+ JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification
+ JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory
+ JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException
+ JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted
+ JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets
+ JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName
+ JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet
+ JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable
+ JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator
+ JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField
+ JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal
+ KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException
+ KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory
+ KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager
+ KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep
+ KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI
+ LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy
+ LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName
+ LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer
+ LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException
+ LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException
+ LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator
+ ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView
+ LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext
+ LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp
+ LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException
+ MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission
+ ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException
+ MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo
+ MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo
+ MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer
+ MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory
+ MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter
+ MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName
+ MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler
+ MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType
+ MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener
+ MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager
+ MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI
+ MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon
+ MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane
+ MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI
+ MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton
+ MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI
+ MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method
+ MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat
+ MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException
+ MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException
+ Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo
+ ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo
+ ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification
+ MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter
+ MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent
+ MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI
+ MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI
+ MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI
+ MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster
+ MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI
+ MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI
+ MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet
+ MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair
+ NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration
+ NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException
+ NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError
+ NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException
+ NoninvertibleTransformException NonReadableChannelException NonWritableChannelException
+ NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException
+ NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException
+ NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException
+ NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster
+ NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport
+ NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException
+ NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException
+ NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper
+ OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput
+ ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream
+ ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID
+ Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport
+ OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport
+ OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo
+ OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException
+ OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError
+ OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException
+ OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes
+ PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor
+ Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor
+ ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException
+ ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch
+ PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported
+ Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe
+ PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel
+ PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker
+ PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy
+ PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent
+ PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate
+ PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences
+ PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException
+ PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob
+ PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo
+ PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason
+ PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter
+ PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent
+ PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService
+ PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet
+ PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader
+ PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException
+ PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor
+ ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener
+ PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor
+ PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle
+ PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector
+ PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval
+ QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp
+ RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException
+ ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape
+ ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue
+ ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable
+ RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException
+ RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification
+ RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport
+ RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall
+ RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub
+ RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage
+ RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName
+ RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result
+ ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader
+ RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub
+ RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl
+ RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub
+ RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList
+ RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer
+ RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener
+ RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec
+ RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey
+ RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit
+ RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException
+ RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory
+ SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource
+ SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture
+ ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable
+ Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI
+ SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec
+ SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException
+ SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider
+ Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob
+ SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef
+ SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef
+ ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException
+ ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set
+ SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer
+ ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi
+ SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter
+ SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax
+ SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException
+ SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory
+ SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException
+ SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet
+ SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource
+ Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel
+ SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput
+ SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException
+ SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException
+ SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession
+ SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack
+ StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit
+ StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService
+ StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer
+ StringBufferInputStream StringBuilder StringCharacterIterator StringContent
+ StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr
+ StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate
+ StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet
+ Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings
+ SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException
+ SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants
+ SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory
+ SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor
+ TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener
+ TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData
+ TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates
+ TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo
+ TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint
+ Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor
+ Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer
+ TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone
+ TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track
+ TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable
+ TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException
+ TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency
+ TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel
+ TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener
+ TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory
+ TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults
+ UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener
+ UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError
+ UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException
+ UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException
+ UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException
+ UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission
+ UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent
+ UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException
+ UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError
+ UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException
+ UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL
+ URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory
+ UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler
+ ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener
+ VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI
+ VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet
+ WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener
+ WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage
+ WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector
+ X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension
+ X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants
+ XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath
+ XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory
+ XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver
+ XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView
+ ]
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/builtin_types.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java/builtin_types.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,419 @@
+module CodeRay
+module Scanners
+
+ module Java::BuiltinTypes # :nodoc:
+
+ List = %w[
+ AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection
+ AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel
+ AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences
+ AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector
+ AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit
+ AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible
+ AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext
+ AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText
+ AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject
+ AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection
+ AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange
+ AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException
+ AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent
+ ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc
+ ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub
+ ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent
+ ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener
+ Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi
+ AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite
+ AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement
+ Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet
+ AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array
+ ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType
+ AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray
+ AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference
+ AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute
+ AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator
+ AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException
+ AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip
+ AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem
+ AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback
+ AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy
+ AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException
+ BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException
+ BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute
+ BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI
+ BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup
+ BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI
+ BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory
+ BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel
+ BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI
+ BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI
+ BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI
+ BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI
+ BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI
+ BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException
+ BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport
+ BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener
+ BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider
+ BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener
+ BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport
+ BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding
+ BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory
+ BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator
+ BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp
+ BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException
+ BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte
+ ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet
+ CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler
+ CancelablePrintJob CancellationException CancelledKeyException CannotProceedException
+ CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor
+ CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException
+ CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException
+ CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult
+ CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator
+ CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore
+ CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener
+ Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter
+ CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider
+ Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice
+ ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class
+ ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError
+ ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard
+ ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException
+ ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner
+ CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection
+ CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI
+ ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource
+ ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator
+ CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel
+ ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation
+ ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData
+ CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl
+ CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap
+ ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback
+ ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener
+ ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container
+ ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler
+ ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory
+ Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported
+ CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32
+ CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector
+ CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer
+ DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort
+ DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl
+ DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource
+ DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat
+ DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing
+ DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel
+ DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel
+ DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter
+ DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer
+ DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme
+ DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument
+ DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor
+ DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed
+ DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec
+ DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable
+ DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec
+ DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream
+ Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory
+ DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document
+ DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener
+ DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer
+ DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter
+ DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener
+ DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter
+ DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey
+ DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey
+ DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m
+ ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey
+ ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder
+ EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum
+ EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error
+ ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener
+ EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception
+ ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor
+ ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException
+ ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse
+ Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field
+ FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel
+ FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream
+ FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap
+ FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter
+ Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter
+ Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener
+ FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter
+ FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics
+ FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException
+ Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future
+ FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean
+ GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError
+ GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics
+ Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter
+ GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream
+ GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet
+ HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet
+ HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter
+ HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument
+ HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection
+ HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon
+ IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage
+ IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl
+ IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener
+ IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener
+ IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException
+ IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException
+ IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException
+ IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException
+ IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException
+ IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities
+ ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl
+ ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi
+ ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder
+ ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi
+ ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel
+ IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address
+ InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited
+ InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext
+ InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext
+ InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests
+ InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource
+ InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException
+ Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError
+ InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener
+ InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException
+ InterruptedNamingException InterruptibleChannel IntrospectionException Introspector
+ InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException
+ InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException
+ InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException
+ InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException
+ InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException
+ InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException
+ InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException
+ InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException
+ InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler
+ InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator
+ IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection
+ JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog
+ JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu
+ JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification
+ JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory
+ JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException
+ JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted
+ JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets
+ JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName
+ JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet
+ JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable
+ JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator
+ JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField
+ JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal
+ KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException
+ KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory
+ KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager
+ KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep
+ KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI
+ LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy
+ LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName
+ LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer
+ LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException
+ LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException
+ LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator
+ ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView
+ LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext
+ LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp
+ LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException
+ MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission
+ ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException
+ MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo
+ MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo
+ MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer
+ MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory
+ MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter
+ MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName
+ MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler
+ MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType
+ MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener
+ MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager
+ MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI
+ MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon
+ MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane
+ MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI
+ MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton
+ MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI
+ MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method
+ MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat
+ MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException
+ MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException
+ Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo
+ ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo
+ ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification
+ MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter
+ MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent
+ MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI
+ MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI
+ MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI
+ MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster
+ MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI
+ MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI
+ MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet
+ MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair
+ NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration
+ NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException
+ NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError
+ NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException
+ NoninvertibleTransformException NonReadableChannelException NonWritableChannelException
+ NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException
+ NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException
+ NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException
+ NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster
+ NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport
+ NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException
+ NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException
+ NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper
+ OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput
+ ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream
+ ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID
+ Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport
+ OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport
+ OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo
+ OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException
+ OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError
+ OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException
+ OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes
+ PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor
+ Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor
+ ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException
+ ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch
+ PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported
+ Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe
+ PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel
+ PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker
+ PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy
+ PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent
+ PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate
+ PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences
+ PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException
+ PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob
+ PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo
+ PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason
+ PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter
+ PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent
+ PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService
+ PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet
+ PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader
+ PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException
+ PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor
+ ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener
+ PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor
+ PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle
+ PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector
+ PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval
+ QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp
+ RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException
+ ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape
+ ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue
+ ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable
+ RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException
+ RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification
+ RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport
+ RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall
+ RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub
+ RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage
+ RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName
+ RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result
+ ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader
+ RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub
+ RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl
+ RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub
+ RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList
+ RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer
+ RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener
+ RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec
+ RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey
+ RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit
+ RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException
+ RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory
+ SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource
+ SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture
+ ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable
+ Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI
+ SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec
+ SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException
+ SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider
+ Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob
+ SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef
+ SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef
+ ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException
+ ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set
+ SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer
+ ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi
+ SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter
+ SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax
+ SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException
+ SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory
+ SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException
+ SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet
+ SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource
+ Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel
+ SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput
+ SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException
+ SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException
+ SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession
+ SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack
+ StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit
+ StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService
+ StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer
+ StringBufferInputStream StringBuilder StringCharacterIterator StringContent
+ StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr
+ StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate
+ StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet
+ Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings
+ SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException
+ SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants
+ SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory
+ SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor
+ TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener
+ TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData
+ TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates
+ TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo
+ TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint
+ Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor
+ Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer
+ TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone
+ TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track
+ TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable
+ TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException
+ TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency
+ TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel
+ TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener
+ TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory
+ TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults
+ UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener
+ UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError
+ UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException
+ UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException
+ UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException
+ UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission
+ UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent
+ UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException
+ UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError
+ UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException
+ UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL
+ URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory
+ UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler
+ ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener
+ VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI
+ VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet
+ WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener
+ WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage
+ WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector
+ X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension
+ X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants
+ XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath
+ XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory
+ XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver
+ XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView
+ ]
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script-0.9.6.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script-0.9.6.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,224 @@
+module CodeRay
+module Scanners
+
+ class JavaScript < Scanner
+
+ include Streamable
+
+ register_for :java_script
+ file_extension 'js'
+
+ # The actual JavaScript keywords.
+ KEYWORDS = %w[
+ break case catch continue default delete do else
+ finally for function if in instanceof new
+ return switch throw try typeof var void while with
+ ]
+ PREDEFINED_CONSTANTS = %w[
+ false null true undefined
+ ]
+
+ MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
+
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case delete in instanceof new return throw typeof with
+ ]
+
+ # Reserved for future use.
+ RESERVED_WORDS = %w[
+ abstract boolean byte char class debugger double enum export extends
+ final float goto implements import int interface long native package
+ private protected public short static super synchronized throws transient
+ volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(KEYWORDS, :keyword)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ REGEXP_ESCAPE = / [bBdDsSwW] /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ KEY_CHECK_PATTERN = {
+ "'" => / [^\\']* (?: \\.? [^\\']* )* '? \s* : /x,
+ '"' => / [^\\"]* (?: \\.? [^\\"]* )* "? \s* : /x,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ value_expected = true
+ key_expected = false
+ function_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ value_expected = true if !value_expected && match.index(?\n)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ kind = :comment
+
+ elsif check(/\.?\d/)
+ key_expected = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+ elsif scan(/\d+/)
+ kind = :integer
+ end
+
+ elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
+ # FIXME: scan over nested tags
+ xml_scanner.tokenize match
+ value_expected = false
+ next
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
+ value_expected = true
+ last_operator = match[-1]
+ key_expected = (last_operator == ?{) || (last_operator == ?,)
+ function_expected = false
+ kind = :operator
+
+ elsif scan(/ [)\]}]+ /x)
+ function_expected = key_expected = value_expected = false
+ kind = :operator
+
+ elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ # TODO: labels
+ if kind == :ident
+ if match.index(?$) # $ allowed inside an identifier
+ kind = :predefined
+ elsif function_expected
+ kind = :function
+ elsif check(/\s*[=:]\s*function\b/)
+ kind = :function
+ elsif key_expected && check(/\s*:/)
+ kind = :key
+ end
+ end
+ function_expected = (kind == :keyword) && (match == 'function')
+ key_expected = false
+
+ elsif match = scan(/["']/)
+ if key_expected && check(KEY_CHECK_PATTERN[match])
+ state = :key
+ else
+ state = :string
+ end
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\/(?=\S)/))
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ \/ /x)
+ value_expected = true
+ key_expected = false
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :key
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ modifiers = scan(/[gim]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ tokens << [:close, state]
+ string_delimiter = nil
+ key_expected = value_expected = false
+ state = :initial
+ next
+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ key_expected = value_expected = false
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ protected
+
+ def reset_instance
+ super
+ @xml_scanner.reset if defined? @xml_scanner
+ end
+
+ def xml_scanner
+ @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/java_script.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,224 @@
+module CodeRay
+module Scanners
+
+ class JavaScript < Scanner
+
+ include Streamable
+
+ register_for :java_script
+ file_extension 'js'
+
+ # The actual JavaScript keywords.
+ KEYWORDS = %w[
+ break case catch continue default delete do else
+ finally for function if in instanceof new
+ return switch throw try typeof var void while with
+ ]
+ PREDEFINED_CONSTANTS = %w[
+ false null true undefined
+ ]
+
+ MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
+
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case delete in instanceof new return throw typeof with
+ ]
+
+ # Reserved for future use.
+ RESERVED_WORDS = %w[
+ abstract boolean byte char class debugger double enum export extends
+ final float goto implements import int interface long native package
+ private protected public short static super synchronized throws transient
+ volatile
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(MAGIC_VARIABLES, :local_variable).
+ add(KEYWORDS, :keyword)
+
+ ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+ REGEXP_ESCAPE = / [bBdDsSwW] /x
+ STRING_CONTENT_PATTERN = {
+ "'" => /[^\\']+/,
+ '"' => /[^\\"]+/,
+ '/' => /[^\\\/]+/,
+ }
+ KEY_CHECK_PATTERN = {
+ "'" => / (?> [^\\']* (?: \\. [^\\']* )* ) ' \s* : /mx,
+ '"' => / (?> [^\\"]* (?: \\. [^\\"]* )* ) " \s* : /mx,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ value_expected = true
+ key_expected = false
+ function_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ value_expected = true if !value_expected && match.index(?\n)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ kind = :comment
+
+ elsif check(/\.?\d/)
+ key_expected = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+ elsif scan(/\d+/)
+ kind = :integer
+ end
+
+ elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
+ # FIXME: scan over nested tags
+ xml_scanner.tokenize match
+ value_expected = false
+ next
+
+ elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
+ value_expected = true
+ last_operator = match[-1]
+ key_expected = (last_operator == ?{) || (last_operator == ?,)
+ function_expected = false
+ kind = :operator
+
+ elsif scan(/ [)\]}]+ /x)
+ function_expected = key_expected = value_expected = false
+ kind = :operator
+
+ elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ # TODO: labels
+ if kind == :ident
+ if match.index(?$) # $ allowed inside an identifier
+ kind = :predefined
+ elsif function_expected
+ kind = :function
+ elsif check(/\s*[=:]\s*function\b/)
+ kind = :function
+ elsif key_expected && check(/\s*:/)
+ kind = :key
+ end
+ end
+ function_expected = (kind == :keyword) && (match == 'function')
+ key_expected = false
+
+ elsif match = scan(/["']/)
+ if key_expected && check(KEY_CHECK_PATTERN[match])
+ state = :key
+ else
+ state = :string
+ end
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\/(?=\S)/))
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ \/ /x)
+ value_expected = true
+ key_expected = false
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :key
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+ elsif match = scan(/["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ modifiers = scan(/[gim]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ tokens << [:close, state]
+ string_delimiter = nil
+ key_expected = value_expected = false
+ state = :initial
+ next
+ elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ key_expected = value_expected = false
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ protected
+
+ def reset_instance
+ super
+ @xml_scanner.reset if defined? @xml_scanner
+ end
+
+ def xml_scanner
+ @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => false
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/json.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/json.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,108 @@
+module CodeRay
+module Scanners
+
+ class JSON < Scanner
+
+ include Streamable
+
+ register_for :json
+ file_extension 'json'
+
+ KINDS_NOT_LOC = [
+ :float, :char, :content, :delimiter,
+ :error, :integer, :operator, :value,
+ ]
+
+ ESCAPE = / [bfnrt\\"\/] /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ stack = []
+ key_expected = false
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ next
+ elsif match = scan(/ [:,\[{\]}] /x)
+ kind = :operator
+ case match
+ when '{' then stack << :object; key_expected = true
+ when '[' then stack << :array
+ when ':' then key_expected = false
+ when ',' then key_expected = true if stack.last == :object
+ when '}', ']' then stack.pop # no error recovery, but works for valid JSON
+ end
+ elsif match = scan(/ true | false | null /x)
+ kind = :value
+ elsif match = scan(/-?(?:0|[1-9]\d*)/)
+ kind = :integer
+ if scan(/\.\d+(?:[eE][-+]?\d+)?|[eE][-+]?\d+/)
+ match << matched
+ kind = :float
+ end
+ elsif match = scan(/"/)
+ state = key_expected ? :key : :string
+ tokens << [:open, state]
+ kind = :delimiter
+ else
+ getch
+ kind = :error
+ end
+
+ when :string, :key
+ if scan(/[^\\"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, state]
+ state = :initial
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, state]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if [:string, :key].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/nitro_xhtml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/nitro_xhtml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,136 @@
+module CodeRay
+module Scanners
+
+ load :html
+ load :ruby
+
+ # Nitro XHTML Scanner
+ class NitroXHTML < Scanner
+
+ include Streamable
+ register_for :nitro_xhtml
+ file_extension :xhtml
+ title 'Nitro XHTML'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ NITRO_RUBY_BLOCK = /
+ <\?r
+ (?>
+ [^\?]*
+ (?> \?(?!>) [^\?]* )*
+ )
+ (?: \?> )?
+ |
+
+ (?>
+ [^<]*
+ (?> <(?!\/ruby>) [^<]* )*
+ )
+ (?: <\/ruby> )?
+ |
+ <%
+ (?>
+ [^%]*
+ (?> %(?!>) [^%]* )*
+ )
+ (?: %> )?
+ /mx
+
+ NITRO_VALUE_BLOCK = /
+ \#
+ (?:
+ \{
+ [^{}]*
+ (?>
+ \{ [^}]* \}
+ (?> [^{}]* )
+ )*
+ \}?
+ | \| [^|]* \|?
+ | \( [^)]* \)?
+ | \[ [^\]]* \]?
+ | \\ [^\\]* \\?
+ )
+ /x
+
+ NITRO_ENTITY = /
+ % (?: \#\d+ | \w+ ) ;
+ /
+
+ START_OF_RUBY = /
+ (?=[<\#%])
+ < (?: \?r | % | ruby> )
+ | \# [{(|]
+ | % (?: \#\d+ | \w+ ) ;
+ /x
+
+ CLOSING_PAREN = Hash.new do |h, p|
+ h[p] = p
+ end.update( {
+ '(' => ')',
+ '[' => ']',
+ '{' => '}',
+ } )
+
+ private
+
+ def setup
+ @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ def scan_tokens tokens, options
+
+ until eos?
+
+ if (match = scan_until(/(?=#{START_OF_RUBY})/o) || scan_until(/\z/)) and not match.empty?
+ @html_scanner.tokenize match
+
+ elsif match = scan(/#{NITRO_VALUE_BLOCK}/o)
+ start_tag = match[0,2]
+ delimiter = CLOSING_PAREN[start_tag[1,1]]
+ end_tag = match[-1,1] == delimiter ? delimiter : ''
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -1 - end_tag.size]
+ @ruby_scanner.tokenize code
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ elsif match = scan(/#{NITRO_RUBY_BLOCK}/o)
+ start_tag = '' ? '?>' : ''
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -(end_tag.size)-1]
+ @ruby_scanner.tokenize code
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ elsif entity = scan(/#{NITRO_ENTITY}/o)
+ tokens << [entity, :entity]
+
+ elsif scan(/%/)
+ tokens << [matched, :error]
+
+ else
+ raise_inspect 'else-case reached!', tokens
+
+ end
+
+ end
+
+ tokens
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/php.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/php.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,533 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # Original by Stefan Walk.
+ class PHP < Scanner
+
+ register_for :php
+ file_extension 'php'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ def setup
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ module Words
+
+ # according to http://www.php.net/manual/en/reserved.keywords.php
+ KEYWORDS = %w[
+ abstract and array as break case catch class clone const continue declare default do else elseif
+ enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
+ goto if implements interface instanceof namespace new or private protected public static switch
+ throw try use var while xor
+ cfunction old_function
+ ]
+
+ TYPES = %w[ int integer float double bool boolean string array object resource ]
+
+ LANGUAGE_CONSTRUCTS = %w[
+ die echo empty exit eval include include_once isset list
+ require require_once return print unset
+ ]
+
+ CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
+
+ # according to http://php.net/quickref.php on 2009-04-21;
+ # all functions with _ excluded (module functions) and selected additional functions
+ BUILTIN_FUNCTIONS = %w[
+ abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
+ atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
+ bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
+ calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
+ compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
+ decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
+ ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
+ fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
+ fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
+ fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
+ getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
+ getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
+ gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
+ gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
+ gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
+ implode include intval ip2long iptcembed iptcparse isset
+ jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
+ juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
+ log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
+ natsort next ngettext nl2br nthmac octdec opendir openlog
+ ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
+ prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
+ readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
+ serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
+ snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
+ strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
+ strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
+ strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
+ textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
+ unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
+ array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
+ array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
+ array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
+ array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
+ array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
+ array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
+ array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
+ array_walk_recursive
+ assert_options base_convert base64_decode base64_encode
+ chunk_split class_exists class_implements class_parents
+ count_chars debug_backtrace debug_print_backtrace debug_zval_dump
+ error_get_last error_log error_reporting extension_loaded
+ file_exists file_get_contents file_put_contents load_file
+ func_get_arg func_get_args func_num_args function_exists
+ get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
+ get_current_user get_declared_classes get_declared_interfaces get_defined_constants
+ get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
+ get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
+ get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
+ gc_collect_cycles gc_disable gc_enable gc_enabled
+ halt_compiler headers_list headers_sent highlight_file highlight_string
+ html_entity_decode htmlspecialchars_decode
+ in_array include_once inclued_get_data
+ is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
+ is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
+ is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
+ is_writable is_writeable
+ locale_get_default locale_set_default
+ number_format override_function parse_str parse_url
+ php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
+ php_strip_whitespace php_uname
+ preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
+ preg_replace_callback preg_split print_r
+ require_once register_shutdown_function register_tick_function
+ set_error_handler set_exception_handler set_file_buffer set_include_path
+ set_magic_quotes_runtime set_time_limit shell_exec
+ str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
+ strip_tags substr_compare substr_count substr_replace
+ time_nanosleep time_sleep_until
+ token_get_all token_name trigger_error
+ unregister_tick_function use_soap_error_handler user_error
+ utf8_decode utf8_encode var_dump var_export
+ version_compare
+ zend_logo_guid zend_thread_id zend_version
+ create_function call_user_func_array
+ posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
+ posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
+ posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
+ posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
+ posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
+ posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
+ posix_setuid posix_strerror posix_times posix_ttyname posix_uname
+ pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
+ pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
+ pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
+ pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
+ ]
+ # TODO: more built-in PHP functions?
+
+ EXCEPTIONS = %w[
+ E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
+ E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
+ ]
+
+ CONSTANTS = %w[
+ null true false self parent
+ __LINE__ __DIR__ __FILE__ __LINE__
+ __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
+ PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
+ PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
+ PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
+ PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
+ PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
+ __COMPILER_HALT_OFFSET__
+ EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
+ EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
+ COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
+ CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
+ M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
+ CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
+ HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
+ INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
+ CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
+ STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
+ LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
+ ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
+ ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
+ MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
+ ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
+ POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
+ N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
+ YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
+ LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
+ LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
+ LOG_NDELAY LOG_NOWAIT LOG_PERROR
+ ]
+
+ PREDEFINED = %w[
+ $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
+ $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
+ $argc $argv
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(KEYWORDS, :reserved).
+ add(TYPES, :pre_type).
+ add(LANGUAGE_CONSTRUCTS, :reserved).
+ add(BUILTIN_FUNCTIONS, :predefined).
+ add(CLASSES, :pre_constant).
+ add(EXCEPTIONS, :exception).
+ add(CONSTANTS, :pre_constant)
+
+ VARIABLE_KIND = WordList.new(:local_variable).
+ add(PREDEFINED, :predefined)
+ end
+
+ module RE
+
+ PHP_START = /
+ |
+ \?>
+ !xi
+
+ HTML_INDICATOR = / ]/i
+
+ IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
+ VARIABLE = /\$#{IDENTIFIER}/
+
+ OPERATOR = /
+ \.(?!\d)=? | # dot that is not decimal point, string concatenation
+ && | \|\| | # logic
+ :: | -> | => | # scope, member, dictionary
+ \\(?!\n) | # namespace
+ \+\+ | -- | # increment, decrement
+ [,;?:()\[\]{}] | # simple delimiters
+ [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
+ [~$] | # whatever
+ =& | # reference assignment
+ [=!]=?=? | <> | # comparison and assignment
+ <<=? | >>=? | [<>]=? # comparison and shift
+ /x
+
+ end
+
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::ASCII_8BIT
+ self.string = string.encode Encoding::ASCII_8BIT,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+
+ if check(RE::PHP_START) || # starts with
+ (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
+ exist?(RE::HTML_INDICATOR) ||
+ check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
+ # is HTML with embedded PHP, so start with HTML
+ states = [:initial]
+ else
+ # is just PHP, so start with PHP surrounded by HTML
+ states = [:initial, :php]
+ end
+
+ label_expected = true
+ case_expected = false
+
+ heredoc_delimiter = nil
+ delimiter = nil
+ modifier = nil
+
+ until eos?
+
+ match = nil
+ kind = nil
+
+ case states.last
+
+ when :initial # HTML
+ if scan RE::PHP_START
+ kind = :inline_delimiter
+ label_expected = true
+ states << :php
+ else
+ match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
+ @html_scanner.tokenize match unless match.empty?
+ next
+ end
+
+ when :php
+ if match = scan(/\s+/)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
+ kind = :comment
+
+ elsif match = scan(RE::IDENTIFIER)
+ kind = Words::IDENT_KIND[match]
+ if kind == :ident && label_expected && check(/:(?!:)/)
+ kind = :label
+ label_expected = true
+ else
+ label_expected = false
+ if kind == :ident && match =~ /^[A-Z]/
+ kind = :constant
+ elsif kind == :reserved
+ case match
+ when 'class'
+ states << :class_expected
+ when 'function'
+ states << :function_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ elsif match == 'b' && check(/['"]/) # binary string literal
+ modifier = match
+ next
+ end
+ end
+
+ elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
+ label_expected = false
+ kind = :float
+
+ elsif scan(/0x[0-9a-fA-F]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/\d+/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/'/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ kind = :delimiter
+ states.push :sqstring
+
+ elsif match = scan(/["`]/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ delimiter = match
+ kind = :delimiter
+ states.push :dqstring
+
+ elsif match = scan(RE::VARIABLE)
+ label_expected = false
+ kind = Words::VARIABLE_KIND[match]
+
+ elsif scan(/\{/)
+ kind = :operator
+ label_expected = true
+ states.push :php
+
+ elsif scan(/\}/)
+ if states.size == 1
+ kind = :error
+ else
+ states.pop
+ if states.last.is_a?(::Array)
+ delimiter = states.last[1]
+ states[-1] = states.last[0]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :inline]
+ next
+ else
+ kind = :operator
+ label_expected = true
+ end
+ end
+
+ elsif scan(/@/)
+ label_expected = false
+ kind = :exception
+
+ elsif scan RE::PHP_END
+ kind = :inline_delimiter
+ states = [:initial]
+
+ elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
+ tokens << [:open, :string]
+ warn 'heredoc in heredoc?' if heredoc_delimiter
+ heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
+ kind = :delimiter
+ states.push self[3] ? :sqstring : :dqstring
+ heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
+
+ elsif match = scan(/#{RE::OPERATOR}/o)
+ label_expected = match == ';'
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :sqstring
+ if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
+ kind = :content
+ elsif !heredoc_delimiter && scan(/'/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ end
+
+ when :dqstring
+ if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
+ kind = :content
+ elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
+ kind = :char
+ elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ elsif match = scan(/#{RE::VARIABLE}/o)
+ kind = :local_variable
+ if check(/\[#{RE::IDENTIFIER}\]/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/\[/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [scan(/\]/), :operator]
+ tokens << [:close, :inline]
+ next
+ elsif check(/\[/)
+ match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
+ kind = :error
+ elsif check(/->#{RE::IDENTIFIER}/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/->/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [:close, :inline]
+ next
+ elsif check(/->/)
+ match << scan(/->/)
+ kind = :error
+ end
+ elsif match = scan(/\{/)
+ if check(/\$/)
+ kind = :delimiter
+ states[-1] = [states.last, delimiter]
+ delimiter = nil
+ states.push :php
+ tokens << [:open, :inline]
+ else
+ kind = :string
+ end
+ elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
+ kind = :local_variable
+ elsif scan(/\$/)
+ kind = :content
+ end
+
+ when :class_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :class
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ when :function_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif scan(/&/)
+ kind = :operator
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :function
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state!', tokens, states
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, states
+ end
+ raise_inspect 'Empty token', tokens, states unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/plaintext.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/plaintext.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,21 @@
+module CodeRay
+module Scanners
+
+ class Plaintext < Scanner
+
+ register_for :plaintext, :plain
+ title 'Plain text'
+
+ include Streamable
+
+ KINDS_NOT_LOC = [:plain]
+
+ def scan_tokens tokens, options
+ text = (scan_until(/\z/) || '')
+ tokens << [text, :plain]
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/python.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/python.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,285 @@
+module CodeRay
+module Scanners
+
+ # Bases on pygments' PythonLexer, see
+ # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py.
+ class Python < Scanner
+
+ include Streamable
+
+ register_for :python
+ file_extension 'py'
+
+ KEYWORDS = [
+ 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
+ 'del', 'elif', 'else', 'except', 'finally', 'for',
+ 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not',
+ 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield',
+ 'nonlocal', # new in Python 3
+ ]
+
+ OLD_KEYWORDS = [
+ 'exec', 'print', # gone in Python 3
+ ]
+
+ PREDEFINED_METHODS_AND_TYPES = %w[
+ __import__ abs all any apply basestring bin bool buffer
+ bytearray bytes callable chr classmethod cmp coerce compile
+ complex delattr dict dir divmod enumerate eval execfile exit
+ file filter float frozenset getattr globals hasattr hash hex id
+ input int intern isinstance issubclass iter len list locals
+ long map max min next object oct open ord pow property range
+ raw_input reduce reload repr reversed round set setattr slice
+ sorted staticmethod str sum super tuple type unichr unicode
+ vars xrange zip
+ ]
+
+ PREDEFINED_EXCEPTIONS = %w[
+ ArithmeticError AssertionError AttributeError
+ BaseException DeprecationWarning EOFError EnvironmentError
+ Exception FloatingPointError FutureWarning GeneratorExit IOError
+ ImportError ImportWarning IndentationError IndexError KeyError
+ KeyboardInterrupt LookupError MemoryError NameError
+ NotImplemented NotImplementedError OSError OverflowError
+ OverflowWarning PendingDeprecationWarning ReferenceError
+ RuntimeError RuntimeWarning StandardError StopIteration
+ SyntaxError SyntaxWarning SystemError SystemExit TabError
+ TypeError UnboundLocalError UnicodeDecodeError
+ UnicodeEncodeError UnicodeError UnicodeTranslateError
+ UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
+ ]
+
+ PREDEFINED_VARIABLES_AND_CONSTANTS = [
+ 'False', 'True', 'None', # "keywords" since Python 3
+ 'self', 'Ellipsis', 'NotImplemented',
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(KEYWORDS, :keyword).
+ add(OLD_KEYWORDS, :old_keyword).
+ add(PREDEFINED_METHODS_AND_TYPES, :predefined).
+ add(PREDEFINED_VARIABLES_AND_CONSTANTS, :pre_constant).
+ add(PREDEFINED_EXCEPTIONS, :exception)
+
+ NAME = / [^\W\d] \w* /x
+ ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x
+
+ OPERATOR = /
+ \.\.\. | # ellipsis
+ \.(?!\d) | # dot but not decimal point
+ [,;:()\[\]{}] | # simple delimiters
+ \/\/=? | \*\*=? | # special math
+ [-+*\/%&|^]=? | # ordinary math and binary logic
+ [~`] | # binary complement and inspection
+ <<=? | >>=? | [<>=]=? | != # comparison and assignment
+ /x
+
+ STRING_DELIMITER_REGEXP = Hash.new do |h, delimiter|
+ h[delimiter] = Regexp.union delimiter
+ end
+
+ STRING_CONTENT_REGEXP = Hash.new do |h, delimiter|
+ h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x
+ end
+
+ DEF_NEW_STATE = WordList.new(:initial).
+ add(%w(def), :def_expected).
+ add(%w(import from), :include_expected).
+ add(%w(class), :class_expected)
+
+ DESCRIPTOR = /
+ #{NAME}
+ (?: \. #{NAME} )*
+ | \*
+ /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_delimiter = nil
+ string_raw = false
+ import_clause = class_name_follows = last_token_dot = false
+ unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
+ from_import_state = []
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :string
+ if scan(STRING_DELIMITER_REGEXP[string_delimiter])
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif string_delimiter.size == 3 && scan(/\n/)
+ kind = :content
+ elsif scan(STRING_CONTENT_REGEXP[string_delimiter])
+ kind = :content
+ elsif !string_raw && scan(/ \\ #{ESCAPE} /ox)
+ kind = :char
+ elsif scan(/ \\ #{UNICODE_ESCAPE} /ox)
+ kind = :char
+ elsif scan(/ \\ . /x)
+ kind = :content
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens, state
+ end
+
+ elsif match = scan(/ [ \t]+ | \\\n /x)
+ tokens << [match, :space]
+ next
+
+ elsif match = scan(/\n/)
+ tokens << [match, :space]
+ state = :initial if state == :include_expected
+ next
+
+ elsif match = scan(/ \# [^\n]* /mx)
+ tokens << [match, :comment]
+ next
+
+ elsif state == :initial
+
+ if scan(/#{OPERATOR}/o)
+ kind = :operator
+
+ elsif match = scan(/(u?r?|b)?("""|"|'''|')/i)
+ tokens << [:open, :string]
+ string_delimiter = self[2]
+ string_raw = false
+ modifiers = self[1]
+ unless modifiers.empty?
+ string_raw = !!modifiers.index(?r)
+ tokens << [modifiers, :modifier]
+ match = string_delimiter
+ end
+ state = :string
+ kind = :delimiter
+
+ # TODO: backticks
+
+ elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = IDENT_KIND[match]
+ # TODO: keyword arguments
+ kind = :ident if last_token_dot
+ if kind == :old_keyword
+ kind = check(/\(/) ? :ident : :keyword
+ elsif kind == :predefined && check(/ *=/)
+ kind = :ident
+ elsif kind == :keyword
+ state = DEF_NEW_STATE[match]
+ from_import_state << match.to_sym if state == :include_expected
+ end
+
+ elsif scan(/@[a-zA-Z0-9_.]+[lL]?/)
+ kind = :decorator
+
+ elsif scan(/0[xX][0-9A-Fa-f]+[lL]?/)
+ kind = :hex
+
+ elsif scan(/0[bB][01]+[lL]?/)
+ kind = :bin
+
+ elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
+ kind = :float
+ if scan(/[jJ]/)
+ match << matched
+ kind = :imaginary
+ end
+
+ elsif scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/)
+ kind = :oct
+
+ elsif match = scan(/\d+([lL])?/)
+ kind = :integer
+ if self[1] == nil && scan(/[jJ]/)
+ match << matched
+ kind = :imaginary
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :class_expected
+ state = :initial
+ if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
+ kind = :class
+ else
+ next
+ end
+
+ elsif state == :include_expected
+ if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o)
+ kind = :include
+ if match == 'as'
+ kind = :keyword
+ from_import_state << :as
+ elsif from_import_state.first == :from && match == 'import'
+ kind = :keyword
+ from_import_state << :import
+ elsif from_import_state.last == :as
+ # kind = match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method
+ kind = :ident
+ from_import_state.pop
+ elsif IDENT_KIND[match] == :keyword
+ unscan
+ match = nil
+ state = :initial
+ next
+ end
+ elsif match = scan(/,/)
+ from_import_state.pop if from_import_state.last == :as
+ kind = :operator
+ else
+ from_import_state = []
+ state = :initial
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens, state
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ last_token_dot = match == '.'
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/rhtml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/rhtml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,78 @@
+module CodeRay
+module Scanners
+
+ load :html
+ load :ruby
+
+ # RHTML Scanner
+ class RHTML < Scanner
+
+ include Streamable
+ register_for :rhtml
+ title 'HTML ERB Template'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ ERB_RUBY_BLOCK = /
+ <%(?!%)[=-]?
+ (?>
+ [^\-%]* # normal*
+ (?> # special
+ (?: %(?!>) | -(?!%>) )
+ [^\-%]* # normal*
+ )*
+ )
+ (?: -?%> )?
+ /x
+
+ START_OF_ERB = /
+ <%(?!%)
+ /x
+
+ private
+
+ def setup
+ @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ def scan_tokens tokens, options
+
+ until eos?
+
+ if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_until(/\z/)) and not match.empty?
+ @html_scanner.tokenize match
+
+ elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
+ start_tag = match[/\A<%[-=#]?/]
+ end_tag = match[/-?%?>?\z/]
+ tokens << [:open, :inline]
+ tokens << [start_tag, :inline_delimiter]
+ code = match[start_tag.size .. -1 - end_tag.size]
+ if start_tag == '<%#'
+ tokens << [code, :comment]
+ else
+ @ruby_scanner.tokenize code
+ end
+ tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
+ tokens << [:close, :inline]
+
+ else
+ raise_inspect 'else-case reached!', tokens
+ end
+
+ end
+
+ tokens
+
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,444 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ # This scanner is really complex, since Ruby _is_ a complex language!
+ #
+ # It tries to highlight 100% of all common code,
+ # and 90% of strange codes.
+ #
+ # It is optimized for HTML highlighting, and is not very useful for
+ # parsing or pretty printing.
+ #
+ # For now, I think it's better than the scanners in VIM or Syntax, or
+ # any highlighter I was able to find, except Caleb's RubyLexer.
+ #
+ # I hope it's also better than the rdoc/irb lexer.
+ class Ruby < Scanner
+
+ include Streamable
+
+ register_for :ruby
+ file_extension 'rb'
+
+ helper :patterns
+
+ if not defined? EncodingError
+ EncodingError = Class.new Exception
+ end
+
+ private
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::UTF_8
+ self.string = string.encode Encoding::UTF_8,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ unicode = false
+ else
+ unicode = exist?(/[^\x00-\x7f]/)
+ end
+
+ last_token_dot = false
+ value_expected = true
+ heredocs = nil
+ last_state = nil
+ state = :initial
+ depth = nil
+ inline_block_stack = []
+
+
+ patterns = Patterns # avoid constant lookup
+
+ until eos?
+ match = nil
+ kind = nil
+
+ if state.instance_of? patterns::StringState
+# {{{
+ match = scan_until(state.pattern) || scan_until(/\z/)
+ tokens << [match, :content] unless match.empty?
+ break if eos?
+
+ if state.heredoc and self[1] # end of heredoc
+ match = getch.to_s
+ match << scan_until(/$/) unless eos?
+ tokens << [match, :delimiter]
+ tokens << [:close, state.type]
+ state = state.next_state
+ next
+ end
+
+ case match = getch
+
+ when state.delim
+ if state.paren
+ state.paren_depth -= 1
+ if state.paren_depth > 0
+ tokens << [match, :nesting_delimiter]
+ next
+ end
+ end
+ tokens << [match, :delimiter]
+ if state.type == :regexp and not eos?
+ modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
+ tokens << [modifiers, :modifier] unless modifiers.empty?
+ end
+ tokens << [:close, state.type]
+ value_expected = false
+ state = state.next_state
+
+ when '\\'
+ if state.interpreted
+ if esc = scan(/ #{patterns::ESCAPE} /ox)
+ tokens << [match + esc, :char]
+ else
+ tokens << [match, :error]
+ end
+ else
+ case m = getch
+ when state.delim, '\\'
+ tokens << [match + m, :char]
+ when nil
+ tokens << [match, :error]
+ else
+ tokens << [match + m, :content]
+ end
+ end
+
+ when '#'
+ case peek(1)
+ when '{'
+ inline_block_stack << [state, depth, heredocs]
+ value_expected = true
+ state = :initial
+ depth = 1
+ tokens << [:open, :inline]
+ tokens << [match + getch, :inline_delimiter]
+ when '$', '@'
+ tokens << [match, :escape]
+ last_state = state # scan one token as normal code, then return here
+ state = :initial
+ else
+ raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
+ end
+
+ when state.paren
+ state.paren_depth += 1
+ tokens << [match, :nesting_delimiter]
+
+ when /#{patterns::REGEXP_SYMBOLS}/ox
+ tokens << [match, :function]
+
+ else
+ raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
+
+ end
+ next
+# }}}
+ else
+# {{{
+ if match = scan(/[ \t\f]+/)
+ kind = :space
+ match << scan(/\s*/) unless eos? || heredocs
+ value_expected = true if match.index(?\n)
+ tokens << [match, kind]
+ next
+
+ elsif match = scan(/\\?\n/)
+ kind = :space
+ if match == "\n"
+ value_expected = true
+ state = :initial if state == :undef_comma_expected
+ end
+ if heredocs
+ unscan # heredoc scanning needs \n at start
+ state = heredocs.shift
+ tokens << [:open, state.type]
+ heredocs = nil if heredocs.empty?
+ next
+ else
+ match << scan(/\s*/) unless eos?
+ end
+ tokens << [match, kind]
+ next
+
+ elsif bol? && match = scan(/\#!.*/)
+ tokens << [match, :doctype]
+ next
+
+ elsif match = scan(/\#.*/) or
+ ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
+ kind = :comment
+ tokens << [match, kind]
+ next
+
+ elsif state == :initial
+
+ # IDENTS #
+ if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
+ /#{patterns::METHOD_NAME}/o)
+ if last_token_dot
+ kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
+ else
+ if value_expected != :expect_colon && scan(/:(?= )/)
+ tokens << [match, :key]
+ match = ':'
+ kind = :operator
+ else
+ kind = patterns::IDENT_KIND[match]
+ if kind == :ident
+ if match[/\A[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
+ kind = :constant
+ end
+ elsif kind == :reserved
+ state = patterns::DEF_NEW_STATE[match]
+ value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
+ end
+ end
+ end
+ value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
+
+ elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
+ kind = :ident
+ value_expected = :set if check(unicode ? /#{patterns::VALUE_FOLLOWS}/uo :
+ /#{patterns::VALUE_FOLLOWS}/o)
+
+ # OPERATORS #
+ elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
+ if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
+ value_expected = :set
+ end
+ last_token_dot = :set if self[1]
+ kind = :operator
+ unless inline_block_stack.empty?
+ case match
+ when '{'
+ depth += 1
+ when '}'
+ depth -= 1
+ if depth == 0 # closing brace of inline block reached
+ state, depth, heredocs = inline_block_stack.pop
+ heredocs = nil if heredocs && heredocs.empty?
+ tokens << [match, :inline_delimiter]
+ kind = :inline
+ match = :close
+ end
+ end
+ end
+
+ elsif match = scan(/ ['"] /mx)
+ tokens << [:open, :string]
+ kind = :delimiter
+ state = patterns::StringState.new :string, match == '"', match # important for streaming
+
+ elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo :
+ /#{patterns::INSTANCE_VARIABLE}/o)
+ kind = :instance_variable
+
+ elsif value_expected and match = scan(/\//)
+ tokens << [:open, :regexp]
+ kind = :delimiter
+ interpreted = true
+ state = patterns::StringState.new :regexp, interpreted, match
+
+ # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
+ elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
+ kind = self[1] ? :float : :integer
+
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ else
+ kind = :symbol
+ end
+
+ elsif match = scan(/ -[>=]? | [+!~^]=? | [*|&]{1,2}=? | >>? /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::HEREDOC_OPEN}/uo :
+ /#{patterns::HEREDOC_OPEN}/o)
+ indented = self[1] == '-'
+ quote = self[3]
+ delim = self[quote ? 4 : 2]
+ kind = patterns::QUOTE_TO_TYPE[quote]
+ tokens << [:open, kind]
+ tokens << [match, :delimiter]
+ match = :close
+ heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
+ heredocs ||= [] # create heredocs if empty
+ heredocs << heredoc
+
+ elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
+ kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
+ raise_inspect 'Unknown fancy string: %%%p' % k, tokens
+ end
+ tokens << [:open, kind]
+ state = patterns::StringState.new kind, interpreted, self[2]
+ kind = :delimiter
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::CHARACTER}/uo :
+ /#{patterns::CHARACTER}/o)
+ kind = :integer
+
+ elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif match = scan(/`/)
+ if last_token_dot
+ kind = :operator
+ else
+ tokens << [:open, :shell]
+ kind = :delimiter
+ state = patterns::StringState.new :shell, true, match
+ end
+
+ elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo :
+ /#{patterns::GLOBAL_VARIABLE}/o)
+ kind = :global_variable
+
+ elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo :
+ /#{patterns::CLASS_VARIABLE}/o)
+ kind = :class_variable
+
+ else
+ if !unicode && !string.respond_to?(:encoding)
+ # check for unicode
+ debug, $DEBUG = $DEBUG, false
+ begin
+ if check(/./mu).size > 1
+ # seems like we should try again with unicode
+ unicode = true
+ end
+ rescue
+ # bad unicode char; use getch
+ ensure
+ $DEBUG = debug
+ end
+ next if unicode
+ end
+ kind = :error
+ match = scan(unicode ? /./mu : /./m)
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if scan(/self\./)
+ tokens << ['self', :pre_constant]
+ tokens << ['.', :operator]
+ end
+ if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
+ /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :module_expected
+ if match = scan(/<)
+ kind = :operator
+ else
+ state = :initial
+ if match = scan(unicode ? /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/uo :
+ /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/o)
+ kind = :class
+ else
+ next
+ end
+ end
+
+ elsif state == :undef_expected
+ state = :undef_comma_expected
+ if match = scan(unicode ? /#{patterns::METHOD_NAME_EX}/uo :
+ /#{patterns::METHOD_NAME_EX}/o)
+ kind = :method
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ state.next_state = :undef_comma_expected
+ else
+ kind = :symbol
+ end
+ else
+ state = :initial
+ next
+ end
+
+ elsif state == :alias_expected
+ match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
+ /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
+
+ if match
+ tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
+ tokens << [self[2], :space]
+ tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
+ end
+ state = :initial
+ next
+
+ elsif state == :undef_comma_expected
+ if match = scan(/,/)
+ kind = :operator
+ state = :undef_expected
+ else
+ state = :initial
+ next
+ end
+
+ end
+# }}}
+
+ unless kind == :error
+ if value_expected = value_expected == :set
+ value_expected = :expect_colon if match == '?' || match == 'when'
+ end
+ last_token_dot = last_token_dot == :set
+ end
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ if last_state
+ state = last_state
+ last_state = nil
+ end
+ end
+ end
+
+ inline_block_stack << [state] if state.is_a? patterns::StringState
+ until inline_block_stack.empty?
+ this_block = inline_block_stack.pop
+ tokens << [:close, :inline] if this_block.size > 1
+ state = this_block.first
+ tokens << [:close, state.type]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
+
+# vim:fdm=marker
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby
+END
+patterns.rb
+K 25
+svn:wc:ra_dav:version-url
+V 88
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/patterns.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,62 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+patterns.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+e9ee13edf8cacf235b977434e09649dc
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7416
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/text-base/patterns.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/.svn/text-base/patterns.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,252 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ module Ruby::Patterns # :nodoc:
+
+ RESERVED_WORDS = %w[
+ and def end in or unless begin
+ defined? ensure module redo super until
+ BEGIN break do next rescue then
+ when END case else for retry
+ while alias class elsif if not return
+ undef yield
+ ]
+
+ DEF_KEYWORDS = %w[ def ]
+ UNDEF_KEYWORDS = %w[ undef ]
+ ALIAS_KEYWORDS = %w[ alias ]
+ MODULE_KEYWORDS = %w[ class module ]
+ DEF_NEW_STATE = WordList.new(:initial).
+ add(DEF_KEYWORDS, :def_expected).
+ add(UNDEF_KEYWORDS, :undef_expected).
+ add(ALIAS_KEYWORDS, :alias_expected).
+ add(MODULE_KEYWORDS, :module_expected)
+
+ PREDEFINED_CONSTANTS = %w[
+ nil true false self
+ DATA ARGV ARGF
+ __FILE__ __LINE__ __ENCODING__
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ if /\w/u === '∑'
+ # MRI 1.8.6, 1.8.7
+ IDENT = /[^\W\d]\w*/
+ else
+ if //.respond_to? :encoding
+ # MRI 1.9.1, 1.9.2
+ IDENT = Regexp.new '[\p{L}\p{M}\p{Pc}\p{Sm}&&[^\x00-\x40\x5b-\x5e\x60\x7b-\x7f]][\p{L}\p{M}\p{N}\p{Pc}\p{Sm}&&[^\x00-\x2f\x3a-\x40\x5b-\x5e\x60\x7b-\x7f]]*'
+ else
+ # JRuby, Rubinius
+ IDENT = /[^\x00-\x40\x5b-\x5e\x60\x7b-\x7f][^\x00-\x2f\x3a-\x40\x5b-\x5e\x60\x7b-\x7f]*/
+ end
+ end
+
+ METHOD_NAME = / #{IDENT} [?!]? /ox
+ METHOD_NAME_OPERATOR = /
+ \*\*? # multiplication and power
+ | [-+~]@? # plus, minus, tilde with and without at sign
+ | [\/%&|^`] # division, modulo or format strings, and, or, xor, system
+ | \[\]=? # array getter and setter
+ | << | >> # append or shift left, shift right
+ | <=?>? | >=? # comparison, rocket operator
+ | ===? | =~ # simple equality, case equality, match
+ | ![~=@]? # negation with and without at sign, not-equal and not-match
+ /ox
+ METHOD_NAME_EX = / #{IDENT} (?:[?!]|=(?!>))? | #{METHOD_NAME_OPERATOR} /ox
+ INSTANCE_VARIABLE = / @ #{IDENT} /ox
+ CLASS_VARIABLE = / @@ #{IDENT} /ox
+ OBJECT_VARIABLE = / @@? #{IDENT} /ox
+ GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox
+ PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox
+ VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox
+
+ QUOTE_TO_TYPE = {
+ '`' => :shell,
+ '/'=> :regexp,
+ }
+ QUOTE_TO_TYPE.default = :string
+
+ REGEXP_MODIFIERS = /[mixounse]*/
+ REGEXP_SYMBOLS = /[|?*+(){}\[\].^$]/
+
+ DECIMAL = /\d+(?:_\d+)*/
+ OCTAL = /0_?[0-7]+(?:_[0-7]+)*/
+ HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/
+ BINARY = /0b[01]+(?:_[01]+)*/
+
+ EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
+ FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
+ FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
+ NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
+
+ SYMBOL = /
+ :
+ (?:
+ #{METHOD_NAME_EX}
+ | #{PREFIX_VARIABLE}
+ | ['"]
+ )
+ /ox
+ METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
+
+ SIMPLE_ESCAPE = /
+ [abefnrstv]
+ | [0-7]{1,3}
+ | x[0-9A-Fa-f]{1,2}
+ | .?
+ /mx
+
+ CONTROL_META_ESCAPE = /
+ (?: M-|C-|c )
+ (?: \\ (?: M-|C-|c ) )*
+ (?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
+ /mox
+
+ ESCAPE = /
+ #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
+ /mox
+
+ CHARACTER = /
+ \?
+ (?:
+ [^\s\\]
+ | \\ #{ESCAPE}
+ )
+ /mox
+
+ # NOTE: This is not completely correct, but
+ # nobody needs heredoc delimiters ending with \n.
+ # Also, delimiters starting with numbers are allowed.
+ # but they are more often than not a false positive.
+ HEREDOC_OPEN = /
+ << (-)? # $1 = float
+ (?:
+ ( #{IDENT} ) # $2 = delim
+ |
+ ( ["'`\/] ) # $3 = quote, type
+ ( [^\n]*? ) \3 # $4 = delim
+ )
+ /mx
+
+ RUBYDOC = /
+ =begin (?!\S)
+ .*?
+ (?: \Z | ^=end (?!\S) [^\n]* )
+ /mx
+
+ DATA = /
+ __END__$
+ .*?
+ (?: \Z | (?=^\#CODE) )
+ /mx
+
+ # Checks for a valid value to follow. This enables
+ # value_expected in method calls without parentheses.
+ VALUE_FOLLOWS = /
+ (?>[ \t\f\v]+)
+ (?:
+ [%\/][^\s=]
+ | <<-?\S
+ | [-+] \d
+ | #{CHARACTER}
+ )
+ /x
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[
+ and end in or unless begin
+ defined? ensure redo super until
+ break do next rescue then
+ when case else for retry
+ while elsif if not return
+ yield
+ ])
+
+ RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo
+
+ RDOC_DATA_START = / ^=begin (?!\S) | ^__END__$ /x
+
+ FANCY_START_CORRECT = / % ( [qQwWxsr] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /mx
+
+ FancyStringType = {
+ 'q' => [:string, false],
+ 'Q' => [:string, true],
+ 'r' => [:regexp, true],
+ 's' => [:symbol, false],
+ 'x' => [:shell, true]
+ }
+ FancyStringType['w'] = FancyStringType['q']
+ FancyStringType['W'] = FancyStringType[''] = FancyStringType['Q']
+
+ class StringState < Struct.new :type, :interpreted, :delim, :heredoc,
+ :paren, :paren_depth, :pattern, :next_state
+
+ CLOSING_PAREN = Hash[ *%w[
+ ( )
+ [ ]
+ < >
+ { }
+ ] ]
+
+ CLOSING_PAREN.each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with <<
+ OPENING_PAREN = CLOSING_PAREN.invert
+
+ STRING_PATTERN = Hash.new do |h, k|
+ delim, interpreted = *k
+ delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
+ if closing_paren = CLOSING_PAREN[delim]
+ delim_pattern = delim_pattern[0..-1] if defined? JRUBY_VERSION # JRuby fix
+ delim_pattern << Regexp.escape(closing_paren)
+ end
+ delim_pattern << '\\\\' unless delim == '\\'
+
+ special_escapes =
+ case interpreted
+ when :regexp_symbols
+ '| ' + REGEXP_SYMBOLS.source
+ when :words
+ '| \s'
+ end
+
+ h[k] =
+ if interpreted and not delim == '#'
+ / (?= [#{delim_pattern}] | \# [{$@] #{special_escapes} ) /mx
+ else
+ / (?= [#{delim_pattern}] #{special_escapes} ) /mx
+ end
+ end
+
+ HEREDOC_PATTERN = Hash.new do |h, k|
+ delim, interpreted, indented = *k
+ delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
+ delim_pattern = / \n #{ '(?>[\ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x
+ h[k] =
+ if interpreted
+ / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc
+ else
+ / (?= #{delim_pattern}() | \\ ) /mx
+ end
+ end
+
+ def initialize kind, interpreted, delim, heredoc = false
+ if heredoc
+ pattern = HEREDOC_PATTERN[ [delim, interpreted, heredoc == :indented] ]
+ delim = nil
+ else
+ pattern = STRING_PATTERN[ [delim, interpreted] ]
+ if paren = CLOSING_PAREN[delim]
+ delim, paren = paren, delim
+ paren_depth = 1
+ end
+ end
+ super kind, interpreted, delim, heredoc, paren, paren_depth, pattern, :initial
+ end
+ end unless defined? StringState
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/patterns.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/ruby/patterns.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,252 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ module Ruby::Patterns # :nodoc:
+
+ RESERVED_WORDS = %w[
+ and def end in or unless begin
+ defined? ensure module redo super until
+ BEGIN break do next rescue then
+ when END case else for retry
+ while alias class elsif if not return
+ undef yield
+ ]
+
+ DEF_KEYWORDS = %w[ def ]
+ UNDEF_KEYWORDS = %w[ undef ]
+ ALIAS_KEYWORDS = %w[ alias ]
+ MODULE_KEYWORDS = %w[ class module ]
+ DEF_NEW_STATE = WordList.new(:initial).
+ add(DEF_KEYWORDS, :def_expected).
+ add(UNDEF_KEYWORDS, :undef_expected).
+ add(ALIAS_KEYWORDS, :alias_expected).
+ add(MODULE_KEYWORDS, :module_expected)
+
+ PREDEFINED_CONSTANTS = %w[
+ nil true false self
+ DATA ARGV ARGF
+ __FILE__ __LINE__ __ENCODING__
+ ]
+
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ if /\w/u === '∑'
+ # MRI 1.8.6, 1.8.7
+ IDENT = /[^\W\d]\w*/
+ else
+ if //.respond_to? :encoding
+ # MRI 1.9.1, 1.9.2
+ IDENT = Regexp.new '[\p{L}\p{M}\p{Pc}\p{Sm}&&[^\x00-\x40\x5b-\x5e\x60\x7b-\x7f]][\p{L}\p{M}\p{N}\p{Pc}\p{Sm}&&[^\x00-\x2f\x3a-\x40\x5b-\x5e\x60\x7b-\x7f]]*'
+ else
+ # JRuby, Rubinius
+ IDENT = /[^\x00-\x40\x5b-\x5e\x60\x7b-\x7f][^\x00-\x2f\x3a-\x40\x5b-\x5e\x60\x7b-\x7f]*/
+ end
+ end
+
+ METHOD_NAME = / #{IDENT} [?!]? /ox
+ METHOD_NAME_OPERATOR = /
+ \*\*? # multiplication and power
+ | [-+~]@? # plus, minus, tilde with and without at sign
+ | [\/%&|^`] # division, modulo or format strings, and, or, xor, system
+ | \[\]=? # array getter and setter
+ | << | >> # append or shift left, shift right
+ | <=?>? | >=? # comparison, rocket operator
+ | ===? | =~ # simple equality, case equality, match
+ | ![~=@]? # negation with and without at sign, not-equal and not-match
+ /ox
+ METHOD_NAME_EX = / #{IDENT} (?:[?!]|=(?!>))? | #{METHOD_NAME_OPERATOR} /ox
+ INSTANCE_VARIABLE = / @ #{IDENT} /ox
+ CLASS_VARIABLE = / @@ #{IDENT} /ox
+ OBJECT_VARIABLE = / @@? #{IDENT} /ox
+ GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox
+ PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox
+ VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox
+
+ QUOTE_TO_TYPE = {
+ '`' => :shell,
+ '/'=> :regexp,
+ }
+ QUOTE_TO_TYPE.default = :string
+
+ REGEXP_MODIFIERS = /[mixounse]*/
+ REGEXP_SYMBOLS = /[|?*+(){}\[\].^$]/
+
+ DECIMAL = /\d+(?:_\d+)*/
+ OCTAL = /0_?[0-7]+(?:_[0-7]+)*/
+ HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/
+ BINARY = /0b[01]+(?:_[01]+)*/
+
+ EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
+ FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
+ FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
+ NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
+
+ SYMBOL = /
+ :
+ (?:
+ #{METHOD_NAME_EX}
+ | #{PREFIX_VARIABLE}
+ | ['"]
+ )
+ /ox
+ METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
+
+ SIMPLE_ESCAPE = /
+ [abefnrstv]
+ | [0-7]{1,3}
+ | x[0-9A-Fa-f]{1,2}
+ | .?
+ /mx
+
+ CONTROL_META_ESCAPE = /
+ (?: M-|C-|c )
+ (?: \\ (?: M-|C-|c ) )*
+ (?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
+ /mox
+
+ ESCAPE = /
+ #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
+ /mox
+
+ CHARACTER = /
+ \?
+ (?:
+ [^\s\\]
+ | \\ #{ESCAPE}
+ )
+ /mox
+
+ # NOTE: This is not completely correct, but
+ # nobody needs heredoc delimiters ending with \n.
+ # Also, delimiters starting with numbers are allowed.
+ # but they are more often than not a false positive.
+ HEREDOC_OPEN = /
+ << (-)? # $1 = float
+ (?:
+ ( #{IDENT} ) # $2 = delim
+ |
+ ( ["'`\/] ) # $3 = quote, type
+ ( [^\n]*? ) \3 # $4 = delim
+ )
+ /mx
+
+ RUBYDOC = /
+ =begin (?!\S)
+ .*?
+ (?: \Z | ^=end (?!\S) [^\n]* )
+ /mx
+
+ DATA = /
+ __END__$
+ .*?
+ (?: \Z | (?=^\#CODE) )
+ /mx
+
+ # Checks for a valid value to follow. This enables
+ # value_expected in method calls without parentheses.
+ VALUE_FOLLOWS = /
+ (?>[ \t\f\v]+)
+ (?:
+ [%\/][^\s=]
+ | <<-?\S
+ | [-+] \d
+ | #{CHARACTER}
+ )
+ /x
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[
+ and end in or unless begin
+ defined? ensure redo super until
+ break do next rescue then
+ when case else for retry
+ while elsif if not return
+ yield
+ ])
+
+ RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo
+
+ RDOC_DATA_START = / ^=begin (?!\S) | ^__END__$ /x
+
+ FANCY_START_CORRECT = / % ( [qQwWxsr] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /mx
+
+ FancyStringType = {
+ 'q' => [:string, false],
+ 'Q' => [:string, true],
+ 'r' => [:regexp, true],
+ 's' => [:symbol, false],
+ 'x' => [:shell, true]
+ }
+ FancyStringType['w'] = FancyStringType['q']
+ FancyStringType['W'] = FancyStringType[''] = FancyStringType['Q']
+
+ class StringState < Struct.new :type, :interpreted, :delim, :heredoc,
+ :paren, :paren_depth, :pattern, :next_state
+
+ CLOSING_PAREN = Hash[ *%w[
+ ( )
+ [ ]
+ < >
+ { }
+ ] ]
+
+ CLOSING_PAREN.each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with <<
+ OPENING_PAREN = CLOSING_PAREN.invert
+
+ STRING_PATTERN = Hash.new do |h, k|
+ delim, interpreted = *k
+ delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
+ if closing_paren = CLOSING_PAREN[delim]
+ delim_pattern = delim_pattern[0..-1] if defined? JRUBY_VERSION # JRuby fix
+ delim_pattern << Regexp.escape(closing_paren)
+ end
+ delim_pattern << '\\\\' unless delim == '\\'
+
+ special_escapes =
+ case interpreted
+ when :regexp_symbols
+ '| ' + REGEXP_SYMBOLS.source
+ when :words
+ '| \s'
+ end
+
+ h[k] =
+ if interpreted and not delim == '#'
+ / (?= [#{delim_pattern}] | \# [{$@] #{special_escapes} ) /mx
+ else
+ / (?= [#{delim_pattern}] #{special_escapes} ) /mx
+ end
+ end
+
+ HEREDOC_PATTERN = Hash.new do |h, k|
+ delim, interpreted, indented = *k
+ delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
+ delim_pattern = / \n #{ '(?>[\ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x
+ h[k] =
+ if interpreted
+ / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc
+ else
+ / (?= #{delim_pattern}() | \\ ) /mx
+ end
+ end
+
+ def initialize kind, interpreted, delim, heredoc = false
+ if heredoc
+ pattern = HEREDOC_PATTERN[ [delim, interpreted, heredoc == :indented] ]
+ delim = nil
+ else
+ pattern = STRING_PATTERN[ [delim, interpreted] ]
+ if paren = CLOSING_PAREN[delim]
+ delim, paren = paren, delim
+ paren_depth = 1
+ end
+ end
+ super kind, interpreted, delim, heredoc, paren, paren_depth, pattern, :initial
+ end
+ end unless defined? StringState
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/scheme.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/scheme.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,145 @@
+module CodeRay
+ module Scanners
+
+ # Scheme scanner for CodeRay (by closure).
+ # Thanks to murphy for putting CodeRay into public.
+ class Scheme < Scanner
+
+ # TODO: function defs
+ # TODO: built-in functions
+
+ register_for :scheme
+ file_extension 'scm'
+
+ CORE_FORMS = %w[
+ lambda let let* letrec syntax-case define-syntax let-syntax
+ letrec-syntax begin define quote if or and cond case do delay
+ quasiquote set! cons force call-with-current-continuation call/cc
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(CORE_FORMS, :reserved)
+
+ #IDENTIFIER_INITIAL = /[a-z!@\$%&\*\/\:<=>\?~_\^]/i
+ #IDENTIFIER_SUBSEQUENT = /#{IDENTIFIER_INITIAL}|\d|\.|\+|-/
+ #IDENTIFIER = /#{IDENTIFIER_INITIAL}#{IDENTIFIER_SUBSEQUENT}*|\+|-|\.{3}/
+ IDENTIFIER = /[a-zA-Z!@$%&*\/:<=>?~_^][\w!@$%&*\/:<=>?~^.+\-]*|[+-]|\.\.\./
+ DIGIT = /\d/
+ DIGIT10 = DIGIT
+ DIGIT16 = /[0-9a-f]/i
+ DIGIT8 = /[0-7]/
+ DIGIT2 = /[01]/
+ RADIX16 = /\#x/i
+ RADIX8 = /\#o/i
+ RADIX2 = /\#b/i
+ RADIX10 = /\#d/i
+ EXACTNESS = /#i|#e/i
+ SIGN = /[\+-]?/
+ EXP_MARK = /[esfdl]/i
+ EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/
+ SUFFIX = /#{EXP}?/
+ PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
+ PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
+ PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
+ PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
+ UINT10 = /#{DIGIT10}+#*/
+ UINT16 = /#{DIGIT16}+#*/
+ UINT8 = /#{DIGIT8}+#*/
+ UINT2 = /#{DIGIT2}+#*/
+ DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
+ UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
+ UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/
+ UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/
+ UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/
+ REAL10 = /#{SIGN}#{UREAL10}/
+ REAL16 = /#{SIGN}#{UREAL16}/
+ REAL8 = /#{SIGN}#{UREAL8}/
+ REAL2 = /#{SIGN}#{UREAL2}/
+ IMAG10 = /i|#{UREAL10}i/
+ IMAG16 = /i|#{UREAL16}i/
+ IMAG8 = /i|#{UREAL8}i/
+ IMAG2 = /i|#{UREAL2}i/
+ COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
+ COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
+ COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
+ COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
+ NUM10 = /#{PREFIX10}?#{COMPLEX10}/
+ NUM16 = /#{PREFIX16}#{COMPLEX16}/
+ NUM8 = /#{PREFIX8}#{COMPLEX8}/
+ NUM2 = /#{PREFIX2}#{COMPLEX2}/
+ NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
+
+ private
+ def scan_tokens tokens,options
+
+ state = :initial
+ ident_kind = IDENT_KIND
+
+ until eos?
+ kind = match = nil
+
+ case state
+ when :initial
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+ elsif scan(/['\(\[\)\]]|#\(/)
+ kind = :operator_fat
+ elsif scan(/;.*/)
+ kind = :comment
+ elsif scan(/#\\(?:newline|space|.?)/)
+ kind = :char
+ elsif scan(/#[ft]/)
+ kind = :pre_constant
+ elsif scan(/#{IDENTIFIER}/o)
+ kind = ident_kind[matched]
+ elsif scan(/\./)
+ kind = :operator
+ elsif scan(/"/)
+ tokens << [:open, :string]
+ state = :string
+ tokens << ['"', :delimiter]
+ next
+ elsif scan(/#{NUM}/o) and not matched.empty?
+ kind = :integer
+ elsif getch
+ kind = :error
+ end
+
+ when :string
+ if scan(/[^"\\]+/) or scan(/\\.?/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1),
+ tokens, state
+ end
+
+ else
+ raise "else case reached"
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end # until eos
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+
+ end #scan_tokens
+ end #class
+ end #module scanners
+end #module coderay
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/sql.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/sql.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,162 @@
+module CodeRay module Scanners
+
+ # by Josh Goebel
+ class SQL < Scanner
+
+ register_for :sql
+
+ RESERVED_WORDS = %w(
+ create database table index trigger drop primary key set select
+ insert update delete replace into
+ on from values before and or if exists case when
+ then else as group order by avg where
+ join inner outer union engine not
+ like end using collate show columns begin
+ )
+
+ PREDEFINED_TYPES = %w(
+ char varchar enum binary text tinytext mediumtext
+ longtext blob tinyblob mediumblob longblob timestamp
+ date time datetime year double decimal float int
+ integer tinyint mediumint bigint smallint unsigned bit
+ bool boolean hex bin oct
+ )
+
+ PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
+
+ DIRECTIVES = %w( auto_increment unique default charset )
+
+ PREDEFINED_CONSTANTS = %w( null true false )
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant).
+ add(PREDEFINED_FUNCTIONS, :predefined).
+ add(DIRECTIVES, :directive)
+
+ ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ STRING_PREFIXES = /[xnb]|_\w+/i
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ string_type = nil
+ string_content = ''
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ if state == :initial
+
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+
+ elsif scan(/(?:--\s?|#).*/)
+ kind = :comment
+
+ elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
+ kind = :comment
+
+ elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
+ kind = :operator
+
+ elsif scan(/(#{STRING_PREFIXES})?([`"'])/o)
+ prefix = self[1]
+ string_type = self[2]
+ tokens << [:open, :string]
+ tokens << [prefix, :modifier] if prefix
+ match = string_type
+ state = :string
+ kind = :delimiter
+
+ elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = match[0] == ?@ ? :variable : IDENT_KIND[match.downcase]
+
+ elsif scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+
+ elsif scan(/0[0-7]+(?![89.eEfF])/)
+ kind = :oct
+
+ elsif scan(/(?>\d+)(?![.eEfF])/)
+ kind = :integer
+
+ elsif scan(/\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ elsif state == :string
+ if match = scan(/[^\\"'`]+/)
+ string_content << match
+ next
+ elsif match = scan(/["'`]/)
+ if string_type == match
+ if peek(1) == string_type # doubling means escape
+ string_content << string_type << getch
+ next
+ end
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ string_type = nil
+ next
+ else
+ string_content << match
+ end
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ kind = :char
+ elsif match = scan(/ \\ . /mox)
+ string_content << match
+ next
+ elsif scan(/ \\ | $ /x)
+ unless string_content.empty?
+ tokens << [string_content, :content]
+ string_content = ''
+ end
+ kind = :error
+ state = :initial
+ else
+ raise "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise 'else-case reached', tokens
+
+ end
+
+ match ||= matched
+ unless kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+ tokens
+
+ end
+
+ end
+
+end end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/xml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/xml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,17 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # XML Scanner
+ #
+ # Currently this is the same scanner as Scanners::HTML.
+ class XML < HTML
+
+ register_for :xml
+ file_extension 'xml'
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/scanners/yaml.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/yaml.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,140 @@
+module CodeRay
+module Scanners
+
+ # YAML Scanner
+ #
+ # Based on the YAML scanner from Syntax by Jamis Buck.
+ class YAML < Scanner
+
+ register_for :yaml
+ file_extension 'yml'
+
+ KINDS_NOT_LOC = :all
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ state = :initial
+ key_indent = indent = 0
+
+ until eos?
+
+ kind = nil
+ match = nil
+ key_indent = nil if bol?
+
+ if match = scan(/ +[\t ]*/)
+ kind = :space
+
+ elsif match = scan(/\n+/)
+ kind = :space
+ state = :initial if match.index(?\n)
+
+ elsif match = scan(/#.*/)
+ kind = :comment
+
+ elsif bol? and case
+ when match = scan(/---|\.\.\./)
+ tokens << [:open, :head]
+ tokens << [match, :head]
+ tokens << [:close, :head]
+ next
+ when match = scan(/%.*/)
+ tokens << [match, :doctype]
+ next
+ end
+
+ elsif state == :value and case
+ when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
+ tokens << [:open, :string]
+ tokens << [matched, :delimiter]
+ tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
+ tokens << [matched, :delimiter] if scan(/"/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/[|>][-+]?/)
+ tokens << [:open, :string]
+ tokens << [match, :delimiter]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
+ tokens << [match, :string]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ next
+ end
+
+ elsif case
+ when match = scan(/[-:](?= |$)/)
+ state = :value if state == :colon && (match == ':' || match == '-')
+ state = :value if state == :initial && match == '-'
+ kind = :operator
+ when match = scan(/[,{}\[\]]/)
+ kind = :operator
+ when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
+ kind = :key
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
+ tokens << [:open, :key]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content]
+ tokens << [match[-1,1], :delimiter]
+ tokens << [:close, :key]
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ next
+ when scan(/(![\w\/]+)(:([\w:]+))?/)
+ tokens << [self[1], :type]
+ if self[2]
+ tokens << [':', :operator]
+ tokens << [self[3], :class]
+ end
+ next
+ when scan(/&\S+/)
+ kind = :variable
+ when scan(/\*\w+/)
+ kind = :global_variable
+ when scan(/<)
+ kind = :class_variable
+ when scan(/\d\d:\d\d:\d\d/)
+ kind = :oct
+ when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
+ kind = :oct
+ when scan(/:\w+/)
+ kind = :symbol
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
+ kind = :error
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
+ kind = :error
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/style.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/style.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,20 @@
+module CodeRay
+
+ # This module holds the Style class and its subclasses.
+ #
+ # See Plugin.
+ module Styles
+ extend PluginHost
+ plugin_path File.dirname(__FILE__), 'styles'
+
+ class Style
+ extend Plugin
+ plugin_host Styles
+
+ DEFAULT_OPTIONS = { }
+
+ end
+
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 69
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles
+END
+cycnus.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb
+END
+murphy.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb
+END
+_map.rb
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,130 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+cycnus.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+59c9814fd238510473d64b6182ce4b6b
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3820
+
+murphy.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+8d8b1bc00f865483efa1de4ebb6157b3
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3371
+
+_map.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+9b92a72b99db4496e76665edb7b38c00
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/_map.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/_map.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,7 @@
+module CodeRay
+module Styles
+
+ default :cycnus
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,152 @@
+module CodeRay
+module Styles
+
+ class Cycnus < Style
+
+ register_for :cycnus
+
+ code_background = '#f8f8f8'
+ numbers_background = '#def'
+ border_color = 'silver'
+ normal_color = '#000'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
+table.CodeRay td { padding: 2px 4px; vertical-align: top }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px }
+.CodeRay .code { width: 100% }
+
+ol.CodeRay { font-size: 10pt }
+ol.CodeRay li { white-space: pre }
+
+.CodeRay .code pre { overflow: auto }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.debug { color:white ! important; background:blue ! important; }
+
+.af { color:#00C }
+.an { color:#007 }
+.at { color:#f08 }
+.av { color:#700 }
+.aw { color:#C00 }
+.bi { color:#509; font-weight:bold }
+.c { color:#888; }
+
+.ch { color:#04D }
+.ch .k { color:#04D }
+.ch .dl { color:#039 }
+
+.cl { color:#B06; font-weight:bold }
+.cm { color:#A08; font-weight:bold }
+.co { color:#036; font-weight:bold }
+.cr { color:#0A0 }
+.cv { color:#369 }
+.de { color:#B0B; }
+.df { color:#099; font-weight:bold }
+.di { color:#088; font-weight:bold }
+.dl { color:black }
+.do { color:#970 }
+.dt { color:#34b }
+.ds { color:#D42; font-weight:bold }
+.e { color:#666; font-weight:bold }
+.en { color:#800; font-weight:bold }
+.er { color:#F00; background-color:#FAA }
+.ex { color:#C00; font-weight:bold }
+.fl { color:#60E; font-weight:bold }
+.fu { color:#06B; font-weight:bold }
+.gv { color:#d70; font-weight:bold }
+.hx { color:#058; font-weight:bold }
+.i { color:#00D; font-weight:bold }
+.ic { color:#B44; font-weight:bold }
+
+.il { background: #ddd; color: black }
+.il .il { background: #ccc }
+.il .il .il { background: #bbb }
+.il .idl { background: #ddd; font-weight: bold; color: #666 }
+.idl { background-color: #bbb; font-weight: bold; color: #666; }
+
+.im { color:#f00; }
+.in { color:#B2B; font-weight:bold }
+.iv { color:#33B }
+.la { color:#970; font-weight:bold }
+.lv { color:#963 }
+.oc { color:#40E; font-weight:bold }
+.of { color:#000; font-weight:bold }
+.op { }
+.pc { color:#038; font-weight:bold }
+.pd { color:#369; font-weight:bold }
+.pp { color:#579; }
+.ps { color:#00C; font-weight:bold }
+.pt { color:#074; font-weight:bold }
+.r, .kw { color:#080; font-weight:bold }
+
+.ke { color: #808; }
+.ke .dl { color: #606; }
+.ke .ch { color: #80f; }
+.vl { color: #088; }
+
+.rx { background-color:#fff0ff }
+.rx .k { color:#808 }
+.rx .dl { color:#404 }
+.rx .mod { color:#C2C }
+.rx .fu { color:#404; font-weight: bold }
+
+.s { background-color:#fff0f0; color: #D20; }
+.s .s { background-color:#ffe0e0 }
+.s .s .s { background-color:#ffd0d0 }
+.s .k { }
+.s .ch { color: #b0b; }
+.s .dl { color: #710; }
+
+.sh { background-color:#f0fff0; color:#2B2 }
+.sh .k { }
+.sh .dl { color:#161 }
+
+.sy { color:#A60 }
+.sy .k { color:#A60 }
+.sy .dl { color:#630 }
+
+.ta { color:#070 }
+.tf { color:#070; font-weight:bold }
+.ts { color:#D70; font-weight:bold }
+.ty { color:#339; font-weight:bold }
+.v { color:#036 }
+.xt { color:#444 }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,134 @@
+module CodeRay
+module Styles
+
+ class Murphy < Style
+
+ register_for :murphy
+
+ code_background = '#001129'
+ numbers_background = code_background
+ border_color = 'silver'
+ normal_color = '#C0C0C0'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px; }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
+table.CodeRay td { padding: 2px 4px; vertical-align: top; }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold; }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px; }
+.CodeRay .code { width: 100%; }
+
+ol.CodeRay { font-size: 10pt; }
+ol.CodeRay li { white-space: pre; }
+
+.CodeRay .code pre { overflow: auto; }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.af { color:#00C; }
+.an { color:#007; }
+.av { color:#700; }
+.aw { color:#C00; }
+.bi { color:#509; font-weight:bold; }
+.c { color:#555; background-color: black; }
+
+.ch { color:#88F; }
+.ch .k { color:#04D; }
+.ch .dl { color:#039; }
+
+.cl { color:#e9e; font-weight:bold; }
+.co { color:#5ED; font-weight:bold; }
+.cr { color:#0A0; }
+.cv { color:#ccf; }
+.df { color:#099; font-weight:bold; }
+.di { color:#088; font-weight:bold; }
+.dl { color:black; }
+.do { color:#970; }
+.ds { color:#D42; font-weight:bold; }
+.e { color:#666; font-weight:bold; }
+.er { color:#F00; background-color:#FAA; }
+.ex { color:#F00; font-weight:bold; }
+.fl { color:#60E; font-weight:bold; }
+.fu { color:#5ed; font-weight:bold; }
+.gv { color:#f84; }
+.hx { color:#058; font-weight:bold; }
+.i { color:#66f; font-weight:bold; }
+.ic { color:#B44; font-weight:bold; }
+.il { }
+.in { color:#B2B; font-weight:bold; }
+.iv { color:#aaf; }
+.la { color:#970; font-weight:bold; }
+.lv { color:#963; }
+.oc { color:#40E; font-weight:bold; }
+.of { color:#000; font-weight:bold; }
+.op { }
+.pc { color:#08f; font-weight:bold; }
+.pd { color:#369; font-weight:bold; }
+.pp { color:#579; }
+.pt { color:#66f; font-weight:bold; }
+.r { color:#5de; font-weight:bold; }
+.r, .kw { color:#5de; font-weight:bold }
+
+.ke { color: #808; }
+
+.rx { background-color:#221133; }
+.rx .k { color:#f8f; }
+.rx .dl { color:#f0f; }
+.rx .mod { color:#f0b; }
+.rx .fu { color:#404; font-weight: bold; }
+
+.s { background-color:#331122; }
+.s .s { background-color:#ffe0e0; }
+.s .s .s { background-color:#ffd0d0; }
+.s .k { color:#F88; }
+.s .dl { color:#f55; }
+
+.sh { background-color:#f0fff0; }
+.sh .k { color:#2B2; }
+.sh .dl { color:#161; }
+
+.sy { color:#Fc8; }
+.sy .k { color:#Fc8; }
+.sy .dl { color:#F84; }
+
+.ta { color:#070; }
+.tf { color:#070; font-weight:bold; }
+.ts { color:#D70; font-weight:bold; }
+.ty { color:#339; font-weight:bold; }
+.v { color:#036; }
+.xt { color:#444; }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,7 @@
+module CodeRay
+module Styles
+
+ default :cycnus
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,152 @@
+module CodeRay
+module Styles
+
+ class Cycnus < Style
+
+ register_for :cycnus
+
+ code_background = '#f8f8f8'
+ numbers_background = '#def'
+ border_color = 'silver'
+ normal_color = '#000'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
+table.CodeRay td { padding: 2px 4px; vertical-align: top }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px }
+.CodeRay .code { width: 100% }
+
+ol.CodeRay { font-size: 10pt }
+ol.CodeRay li { white-space: pre }
+
+.CodeRay .code pre { overflow: auto }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.debug { color:white ! important; background:blue ! important; }
+
+.af { color:#00C }
+.an { color:#007 }
+.at { color:#f08 }
+.av { color:#700 }
+.aw { color:#C00 }
+.bi { color:#509; font-weight:bold }
+.c { color:#888; }
+
+.ch { color:#04D }
+.ch .k { color:#04D }
+.ch .dl { color:#039 }
+
+.cl { color:#B06; font-weight:bold }
+.cm { color:#A08; font-weight:bold }
+.co { color:#036; font-weight:bold }
+.cr { color:#0A0 }
+.cv { color:#369 }
+.de { color:#B0B; }
+.df { color:#099; font-weight:bold }
+.di { color:#088; font-weight:bold }
+.dl { color:black }
+.do { color:#970 }
+.dt { color:#34b }
+.ds { color:#D42; font-weight:bold }
+.e { color:#666; font-weight:bold }
+.en { color:#800; font-weight:bold }
+.er { color:#F00; background-color:#FAA }
+.ex { color:#C00; font-weight:bold }
+.fl { color:#60E; font-weight:bold }
+.fu { color:#06B; font-weight:bold }
+.gv { color:#d70; font-weight:bold }
+.hx { color:#058; font-weight:bold }
+.i { color:#00D; font-weight:bold }
+.ic { color:#B44; font-weight:bold }
+
+.il { background: #ddd; color: black }
+.il .il { background: #ccc }
+.il .il .il { background: #bbb }
+.il .idl { background: #ddd; font-weight: bold; color: #666 }
+.idl { background-color: #bbb; font-weight: bold; color: #666; }
+
+.im { color:#f00; }
+.in { color:#B2B; font-weight:bold }
+.iv { color:#33B }
+.la { color:#970; font-weight:bold }
+.lv { color:#963 }
+.oc { color:#40E; font-weight:bold }
+.of { color:#000; font-weight:bold }
+.op { }
+.pc { color:#038; font-weight:bold }
+.pd { color:#369; font-weight:bold }
+.pp { color:#579; }
+.ps { color:#00C; font-weight:bold }
+.pt { color:#074; font-weight:bold }
+.r, .kw { color:#080; font-weight:bold }
+
+.ke { color: #808; }
+.ke .dl { color: #606; }
+.ke .ch { color: #80f; }
+.vl { color: #088; }
+
+.rx { background-color:#fff0ff }
+.rx .k { color:#808 }
+.rx .dl { color:#404 }
+.rx .mod { color:#C2C }
+.rx .fu { color:#404; font-weight: bold }
+
+.s { background-color:#fff0f0; color: #D20; }
+.s .s { background-color:#ffe0e0 }
+.s .s .s { background-color:#ffd0d0 }
+.s .k { }
+.s .ch { color: #b0b; }
+.s .dl { color: #710; }
+
+.sh { background-color:#f0fff0; color:#2B2 }
+.sh .k { }
+.sh .dl { color:#161 }
+
+.sy { color:#A60 }
+.sy .k { color:#A60 }
+.sy .dl { color:#630 }
+
+.ta { color:#070 }
+.tf { color:#070; font-weight:bold }
+.ts { color:#D70; font-weight:bold }
+.ty { color:#339; font-weight:bold }
+.v { color:#036 }
+.xt { color:#444 }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,134 @@
+module CodeRay
+module Styles
+
+ class Murphy < Style
+
+ register_for :murphy
+
+ code_background = '#001129'
+ numbers_background = code_background
+ border_color = 'silver'
+ normal_color = '#C0C0C0'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px; }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
+table.CodeRay td { padding: 2px 4px; vertical-align: top; }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold; }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px; }
+.CodeRay .code { width: 100%; }
+
+ol.CodeRay { font-size: 10pt; }
+ol.CodeRay li { white-space: pre; }
+
+.CodeRay .code pre { overflow: auto; }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.af { color:#00C; }
+.an { color:#007; }
+.av { color:#700; }
+.aw { color:#C00; }
+.bi { color:#509; font-weight:bold; }
+.c { color:#555; background-color: black; }
+
+.ch { color:#88F; }
+.ch .k { color:#04D; }
+.ch .dl { color:#039; }
+
+.cl { color:#e9e; font-weight:bold; }
+.co { color:#5ED; font-weight:bold; }
+.cr { color:#0A0; }
+.cv { color:#ccf; }
+.df { color:#099; font-weight:bold; }
+.di { color:#088; font-weight:bold; }
+.dl { color:black; }
+.do { color:#970; }
+.ds { color:#D42; font-weight:bold; }
+.e { color:#666; font-weight:bold; }
+.er { color:#F00; background-color:#FAA; }
+.ex { color:#F00; font-weight:bold; }
+.fl { color:#60E; font-weight:bold; }
+.fu { color:#5ed; font-weight:bold; }
+.gv { color:#f84; }
+.hx { color:#058; font-weight:bold; }
+.i { color:#66f; font-weight:bold; }
+.ic { color:#B44; font-weight:bold; }
+.il { }
+.in { color:#B2B; font-weight:bold; }
+.iv { color:#aaf; }
+.la { color:#970; font-weight:bold; }
+.lv { color:#963; }
+.oc { color:#40E; font-weight:bold; }
+.of { color:#000; font-weight:bold; }
+.op { }
+.pc { color:#08f; font-weight:bold; }
+.pd { color:#369; font-weight:bold; }
+.pp { color:#579; }
+.pt { color:#66f; font-weight:bold; }
+.r { color:#5de; font-weight:bold; }
+.r, .kw { color:#5de; font-weight:bold }
+
+.ke { color: #808; }
+
+.rx { background-color:#221133; }
+.rx .k { color:#f8f; }
+.rx .dl { color:#f0f; }
+.rx .mod { color:#f0b; }
+.rx .fu { color:#404; font-weight: bold; }
+
+.s { background-color:#331122; }
+.s .s { background-color:#ffe0e0; }
+.s .s .s { background-color:#ffd0d0; }
+.s .k { color:#F88; }
+.s .dl { color:#f55; }
+
+.sh { background-color:#f0fff0; }
+.sh .k { color:#2B2; }
+.sh .dl { color:#161; }
+
+.sy { color:#Fc8; }
+.sy .k { color:#Fc8; }
+.sy .dl { color:#F84; }
+
+.ta { color:#070; }
+.tf { color:#070; font-weight:bold; }
+.ts { color:#D70; font-weight:bold; }
+.ty { color:#339; font-weight:bold; }
+.v { color:#036; }
+.xt { color:#444; }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/token_classes.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/token_classes.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,86 @@
+module CodeRay
+ class Tokens
+ ClassOfKind = Hash.new do |h, k|
+ h[k] = k.to_s
+ end
+ ClassOfKind.update with = {
+ :annotation => 'at',
+ :attribute_name => 'an',
+ :attribute_name_fat => 'af',
+ :attribute_value => 'av',
+ :attribute_value_fat => 'aw',
+ :bin => 'bi',
+ :char => 'ch',
+ :class => 'cl',
+ :class_variable => 'cv',
+ :color => 'cr',
+ :comment => 'c',
+ :complex => 'cm',
+ :constant => 'co',
+ :content => 'k',
+ :decorator => 'de',
+ :definition => 'df',
+ :delimiter => 'dl',
+ :directive => 'di',
+ :doc => 'do',
+ :doctype => 'dt',
+ :doc_string => 'ds',
+ :entity => 'en',
+ :error => 'er',
+ :escape => 'e',
+ :exception => 'ex',
+ :float => 'fl',
+ :function => 'fu',
+ :global_variable => 'gv',
+ :hex => 'hx',
+ :imaginary => 'cm',
+ :important => 'im',
+ :include => 'ic',
+ :inline => 'il',
+ :inline_delimiter => 'idl',
+ :instance_variable => 'iv',
+ :integer => 'i',
+ :interpreted => 'in',
+ :keyword => 'kw',
+ :key => 'ke',
+ :label => 'la',
+ :local_variable => 'lv',
+ :modifier => 'mod',
+ :oct => 'oc',
+ :operator_fat => 'of',
+ :pre_constant => 'pc',
+ :pre_type => 'pt',
+ :predefined => 'pd',
+ :preprocessor => 'pp',
+ :pseudo_class => 'ps',
+ :regexp => 'rx',
+ :reserved => 'r',
+ :shell => 'sh',
+ :string => 's',
+ :symbol => 'sy',
+ :tag => 'ta',
+ :tag_fat => 'tf',
+ :tag_special => 'ts',
+ :type => 'ty',
+ :variable => 'v',
+ :value => 'vl',
+ :xml_text => 'xt',
+
+ :insert => 'ins',
+ :delete => 'del',
+ :change => 'chg',
+ :head => 'head',
+
+ :ident => :NO_HIGHLIGHT, # 'id'
+ #:operator => 'op',
+ :operator => :NO_HIGHLIGHT, # 'op'
+ :space => :NO_HIGHLIGHT, # 'sp'
+ :plain => :NO_HIGHLIGHT,
+ }
+ ClassOfKind[:method] = ClassOfKind[:function]
+ ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
+ ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
+ ClassOfKind[:escape] = ClassOfKind[:delimiter]
+ #ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
+ end
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/lib/coderay/tokens.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/tokens.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,390 @@
+module CodeRay
+
+ # = Tokens
+ #
+ # The Tokens class represents a list of tokens returnd from
+ # a Scanner.
+ #
+ # A token is not a special object, just a two-element Array
+ # consisting of
+ # * the _token_ _text_ (the original source of the token in a String) or
+ # a _token_ _action_ (:open, :close, :begin_line, :end_line)
+ # * the _token_ _kind_ (a Symbol representing the type of the token)
+ #
+ # A token looks like this:
+ #
+ # ['# It looks like this', :comment]
+ # ['3.1415926', :float]
+ # ['$^', :error]
+ #
+ # Some scanners also yield sub-tokens, represented by special
+ # token actions, namely :open and :close.
+ #
+ # The Ruby scanner, for example, splits "a string" into:
+ #
+ # [
+ # [:open, :string],
+ # ['"', :delimiter],
+ # ['a string', :content],
+ # ['"', :delimiter],
+ # [:close, :string]
+ # ]
+ #
+ # Tokens is the interface between Scanners and Encoders:
+ # The input is split and saved into a Tokens object. The Encoder
+ # then builds the output from this object.
+ #
+ # Thus, the syntax below becomes clear:
+ #
+ # CodeRay.scan('price = 2.59', :ruby).html
+ # # the Tokens object is here -------^
+ #
+ # See how small it is? ;)
+ #
+ # Tokens gives you the power to handle pre-scanned code very easily:
+ # You can convert it to a webpage, a YAML file, or dump it into a gzip'ed string
+ # that you put in your DB.
+ #
+ # It also allows you to generate tokens directly (without using a scanner),
+ # to load them from a file, and still use any Encoder that CodeRay provides.
+ #
+ # Tokens' subclass TokenStream allows streaming to save memory.
+ class Tokens < Array
+
+ # The Scanner instance that created the tokens.
+ attr_accessor :scanner
+
+ # Whether the object is a TokenStream.
+ #
+ # Returns false.
+ def stream?
+ false
+ end
+
+ # Iterates over all tokens.
+ #
+ # If a filter is given, only tokens of that kind are yielded.
+ def each kind_filter = nil, &block
+ unless kind_filter
+ super(&block)
+ else
+ super() do |text, kind|
+ next unless kind == kind_filter
+ yield text, kind
+ end
+ end
+ end
+
+ # Iterates over all text tokens.
+ # Range tokens like [:open, :string] are left out.
+ #
+ # Example:
+ # tokens.each_text_token { |text, kind| text.replace html_escape(text) }
+ def each_text_token
+ each do |text, kind|
+ next unless text.is_a? ::String
+ yield text, kind
+ end
+ end
+
+ # Encode the tokens using encoder.
+ #
+ # encoder can be
+ # * a symbol like :html oder :statistic
+ # * an Encoder class
+ # * an Encoder object
+ #
+ # options are passed to the encoder.
+ def encode encoder, options = {}
+ unless encoder.is_a? Encoders::Encoder
+ unless encoder.is_a? Class
+ encoder_class = Encoders[encoder]
+ end
+ encoder = encoder_class.new options
+ end
+ encoder.encode_tokens self, options
+ end
+
+
+ # Turn into a string using Encoders::Text.
+ #
+ # +options+ are passed to the encoder if given.
+ def to_s options = {}
+ encode :text, options
+ end
+
+ # Redirects unknown methods to encoder calls.
+ #
+ # For example, if you call +tokens.html+, the HTML encoder
+ # is used to highlight the tokens.
+ def method_missing meth, options = {}
+ Encoders[meth].new(options).encode_tokens self
+ end
+
+ # Returns the tokens compressed by joining consecutive
+ # tokens of the same kind.
+ #
+ # This can not be undone, but should yield the same output
+ # in most Encoders. It basically makes the output smaller.
+ #
+ # Combined with dump, it saves space for the cost of time.
+ #
+ # If the scanner is written carefully, this is not required -
+ # for example, consecutive //-comment lines could already be
+ # joined in one comment token by the Scanner.
+ def optimize
+ last_kind = last_text = nil
+ new = self.class.new
+ for text, kind in self
+ if text.is_a? String
+ if kind == last_kind
+ last_text << text
+ else
+ new << [last_text, last_kind] if last_kind
+ last_text = text
+ last_kind = kind
+ end
+ else
+ new << [last_text, last_kind] if last_kind
+ last_kind = last_text = nil
+ new << [text, kind]
+ end
+ end
+ new << [last_text, last_kind] if last_kind
+ new
+ end
+
+ # Compact the object itself; see optimize.
+ def optimize!
+ replace optimize
+ end
+
+ # Ensure that all :open tokens have a correspondent :close one.
+ #
+ # TODO: Test this!
+ def fix
+ tokens = self.class.new
+ # Check token nesting using a stack of kinds.
+ opened = []
+ for type, kind in self
+ case type
+ when :open
+ opened.push [:close, kind]
+ when :begin_line
+ opened.push [:end_line, kind]
+ when :close, :end_line
+ expected = opened.pop
+ if [type, kind] != expected
+ # Unexpected :close; decide what to do based on the kind:
+ # - token was never opened: delete the :close (just skip it)
+ next unless opened.rindex expected
+ # - token was opened earlier: also close tokens in between
+ tokens << token until (token = opened.pop) == expected
+ end
+ end
+ tokens << [type, kind]
+ end
+ # Close remaining opened tokens
+ tokens << token while token = opened.pop
+ tokens
+ end
+
+ def fix!
+ replace fix
+ end
+
+ # TODO: Scanner#split_into_lines
+ #
+ # Makes sure that:
+ # - newlines are single tokens
+ # (which means all other token are single-line)
+ # - there are no open tokens at the end the line
+ #
+ # This makes it simple for encoders that work line-oriented,
+ # like HTML with list-style numeration.
+ def split_into_lines
+ raise NotImplementedError
+ end
+
+ def split_into_lines!
+ replace split_into_lines
+ end
+
+ # Dumps the object into a String that can be saved
+ # in files or databases.
+ #
+ # The dump is created with Marshal.dump;
+ # In addition, it is gzipped using GZip.gzip.
+ #
+ # The returned String object includes Undumping
+ # so it has an #undump method. See Tokens.load.
+ #
+ # You can configure the level of compression,
+ # but the default value 7 should be what you want
+ # in most cases as it is a good compromise between
+ # speed and compression rate.
+ #
+ # See GZip module.
+ def dump gzip_level = 7
+ require 'coderay/helpers/gzip_simple'
+ dump = Marshal.dump self
+ dump = dump.gzip gzip_level
+ dump.extend Undumping
+ end
+
+ # The total size of the tokens.
+ # Should be equal to the input size before
+ # scanning.
+ def text_size
+ size = 0
+ each_text_token do |t, k|
+ size + t.size
+ end
+ size
+ end
+
+ # Return all text tokens joined into a single string.
+ def text
+ map { |t, k| t if t.is_a? ::String }.join
+ end
+
+ # Include this module to give an object an #undump
+ # method.
+ #
+ # The string returned by Tokens.dump includes Undumping.
+ module Undumping
+ # Calls Tokens.load with itself.
+ def undump
+ Tokens.load self
+ end
+ end
+
+ # Undump the object using Marshal.load, then
+ # unzip it using GZip.gunzip.
+ #
+ # The result is commonly a Tokens object, but
+ # this is not guaranteed.
+ def Tokens.load dump
+ require 'coderay/helpers/gzip_simple'
+ dump = dump.gunzip
+ @dump = Marshal.load dump
+ end
+
+ end
+
+
+ # = TokenStream
+ #
+ # The TokenStream class is a fake Array without elements.
+ #
+ # It redirects the method << to a block given at creation.
+ #
+ # This allows scanners and Encoders to use streaming (no
+ # tokens are saved, the input is highlighted the same time it
+ # is scanned) with the same code.
+ #
+ # See CodeRay.encode_stream and CodeRay.scan_stream
+ class TokenStream < Tokens
+
+ # Whether the object is a TokenStream.
+ #
+ # Returns true.
+ def stream?
+ true
+ end
+
+ # The Array is empty, but size counts the tokens given by <<.
+ attr_reader :size
+
+ # Creates a new TokenStream that calls +block+ whenever
+ # its << method is called.
+ #
+ # Example:
+ #
+ # require 'coderay'
+ #
+ # token_stream = CodeRay::TokenStream.new do |text, kind|
+ # puts 'kind: %s, text size: %d.' % [kind, text.size]
+ # end
+ #
+ # token_stream << ['/\d+/', :regexp]
+ # #-> kind: rexpexp, text size: 5.
+ #
+ def initialize &block
+ raise ArgumentError, 'Block expected for streaming.' unless block
+ @callback = block
+ @size = 0
+ end
+
+ # Calls +block+ with +token+ and increments size.
+ #
+ # Returns self.
+ def << token
+ @callback.call(*token)
+ @size += 1
+ self
+ end
+
+ # This method is not implemented due to speed reasons. Use Tokens.
+ def text_size
+ raise NotImplementedError,
+ 'This method is not implemented due to speed reasons.'
+ end
+
+ # A TokenStream cannot be dumped. Use Tokens.
+ def dump
+ raise NotImplementedError, 'A TokenStream cannot be dumped.'
+ end
+
+ # A TokenStream cannot be optimized. Use Tokens.
+ def optimize
+ raise NotImplementedError, 'A TokenStream cannot be optimized.'
+ end
+
+ end
+
+end
+
+if $0 == __FILE__
+ $VERBOSE = true
+ $: << File.join(File.dirname(__FILE__), '..')
+ eval DATA.read, nil, $0, __LINE__ + 4
+end
+
+__END__
+require 'test/unit'
+
+class TokensTest < Test::Unit::TestCase
+
+ def test_creation
+ assert CodeRay::Tokens < Array
+ tokens = nil
+ assert_nothing_raised do
+ tokens = CodeRay::Tokens.new
+ end
+ assert_kind_of Array, tokens
+ end
+
+ def test_adding_tokens
+ tokens = CodeRay::Tokens.new
+ assert_nothing_raised do
+ tokens << ['string', :type]
+ tokens << ['()', :operator]
+ end
+ assert_equal tokens.size, 2
+ end
+
+ def test_dump_undump
+ tokens = CodeRay::Tokens.new
+ assert_nothing_raised do
+ tokens << ['string', :type]
+ tokens << ['()', :operator]
+ end
+ tokens2 = nil
+ assert_nothing_raised do
+ tokens2 = tokens.dump.undump
+ end
+ assert_equal tokens, tokens2
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,31 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/test
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+functional
+dir
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,77 @@
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional
+END
+for_redcloth.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rbc
+END
+vhdl.rb
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/vhdl.rb
+END
+vhdl.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/vhdl.rbc
+END
+basic.rb
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/basic.rb
+END
+basic.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/basic.rbc
+END
+load_plugin_scanner.rb
+K 25
+svn:wc:ra_dav:version-url
+V 89
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rb
+END
+word_list.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/word_list.rb
+END
+load_plugin_scanner.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 90
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rbc
+END
+suite.rb
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/suite.rb
+END
+word_list.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 80
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/word_list.rbc
+END
+for_redcloth.rb
+K 25
+svn:wc:ra_dav:version-url
+V 82
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rb
+END
+suite.rbc
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/test/functional/suite.rbc
+END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,436 @@
+10
+
+dir
+4802
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/test/functional
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+for_redcloth.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+060e0137b69ee9015c13d2a7b52f7ba5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6844
+
+vhdl.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+68592e4216555f25218f67641cd04879
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3508
+
+vhdl.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+756a012d3c51e759ecf3aba421b79d26
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7459
+
+basic.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+4c2c76c7fec083da0817c917495fe273
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3081
+
+basic.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+2dc7e681d05b65ad084db2cb31db57a4
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7680
+
+load_plugin_scanner.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+9bb16867dc01035932f0ce2491457d4a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+231
+
+word_list.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+a1077af2bb080972689e1c7c1b00f5cd
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2167
+
+load_plugin_scanner.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+a7da576f27c98ef97a1845982ed43fd8
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1145
+
+suite.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+c5ad97b377df804994bb80e0d903a954
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+265
+
+word_list.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+bb7279f9b4099e57f551ae9992e03128
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5584
+
+for_redcloth.rb
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+dc96a8219c522571f990cfe3702a428f
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3001
+
+suite.rbc
+file
+
+
+
+
+2011-02-08T13:49:51.000000Z
+534ae63cbcff177038141b589f7fd0fa
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1035
+
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/basic.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/basic.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,122 @@
+require 'test/unit'
+require 'coderay'
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_version
+ assert_nothing_raised do
+ assert_match(/\A\d\.\d\.\d\z/, CodeRay::VERSION)
+ end
+ end
+
+ RUBY_TEST_CODE = 'puts "Hello, World!"'
+
+ RUBY_TEST_TOKENS = [
+ ['puts', :ident],
+ [' ', :space],
+ [:open, :string],
+ ['"', :delimiter],
+ ['Hello, World!', :content],
+ ['"', :delimiter],
+ [:close, :string]
+ ]
+ def test_simple_scan
+ assert_nothing_raised do
+ assert_equal RUBY_TEST_TOKENS, CodeRay.scan(RUBY_TEST_CODE, :ruby).to_ary
+ end
+ end
+
+ RUBY_TEST_HTML = 'puts "' +
+ 'Hello, World!"'
+ def test_simple_highlight
+ assert_nothing_raised do
+ assert_equal RUBY_TEST_HTML, CodeRay.scan(RUBY_TEST_CODE, :ruby).html
+ end
+ end
+
+ def test_duo
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE))
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain => :plain].highlight(RUBY_TEST_CODE))
+ end
+
+ def test_duo_stream
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE, :stream => true))
+ end
+
+ def test_comment_filter
+ assert_equal <<-EXPECTED, CodeRay.scan(<<-INPUT, :ruby).comment_filter.text
+#!/usr/bin/env ruby
+
+code
+
+more code
+ EXPECTED
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+ INPUT
+ end
+
+ def test_lines_of_code
+ assert_equal 2, CodeRay.scan(<<-INPUT, :ruby).lines_of_code
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+ INPUT
+ rHTML = <<-RHTML
+
+
+
+
+
+ <%= controller.controller_name.titleize %>: <%= controller.action_name %>
+ <%= stylesheet_link_tag 'scaffold' %>
+
+
+
+<%= flash[:notice] %>
+
+
+ <%= yield %>
+
+
+
+
+ RHTML
+ assert_equal 0, CodeRay.scan(rHTML, :html).lines_of_code
+ assert_equal 0, CodeRay.scan(rHTML, :php).lines_of_code
+ assert_equal 0, CodeRay.scan(rHTML, :yaml).lines_of_code
+ assert_equal 4, CodeRay.scan(rHTML, :rhtml).lines_of_code
+ end
+
+ def test_rubygems_not_loaded
+ assert_equal nil, defined? Gem
+ end if ENV['check_rubygems'] && RUBY_VERSION < '1.9'
+
+ def test_list_of_encoders
+ assert_kind_of(Array, CodeRay::Encoders.list)
+ assert CodeRay::Encoders.list.include?('count')
+ end
+
+ def test_list_of_scanners
+ assert_kind_of(Array, CodeRay::Scanners.list)
+ assert CodeRay::Scanners.list.include?('plaintext')
+ end
+
+ def test_scan_a_frozen_string
+ CodeRay.scan RUBY_VERSION, :ruby
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/basic.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/basic.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,2022 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+53
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+47
+49
+1
+1
+15
+99
+7
+3
+45
+4
+5
+43
+6
+43
+7
+65
+49
+8
+3
+13
+99
+12
+7
+9
+12
+7
+10
+12
+65
+12
+49
+11
+4
+15
+49
+9
+0
+15
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+9
+test/unit
+x
+7
+require
+s
+7
+coderay
+x
+9
+BasicTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+9
+BasicTest
+i
+263
+5
+66
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+15
+65
+7
+4
+7
+5
+64
+49
+6
+2
+15
+65
+7
+7
+7
+8
+64
+7
+9
+35
+2
+7
+10
+64
+7
+11
+35
+2
+7
+12
+7
+13
+35
+2
+7
+14
+64
+7
+15
+35
+2
+7
+16
+64
+7
+17
+35
+2
+7
+14
+64
+7
+15
+35
+2
+7
+18
+7
+13
+35
+2
+35
+7
+49
+6
+2
+15
+99
+7
+19
+7
+20
+65
+67
+49
+2
+0
+49
+3
+4
+15
+65
+7
+21
+7
+22
+64
+7
+23
+64
+81
+24
+49
+6
+2
+15
+99
+7
+25
+7
+26
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+27
+7
+28
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+29
+7
+30
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+31
+7
+32
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+33
+7
+34
+65
+67
+49
+2
+0
+49
+3
+4
+15
+45
+35
+36
+7
+37
+64
+49
+38
+1
+13
+9
+202
+15
+45
+39
+40
+7
+41
+64
+84
+42
+9
+219
+99
+7
+43
+7
+44
+65
+67
+49
+2
+0
+49
+3
+4
+8
+220
+1
+15
+99
+7
+45
+7
+46
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+47
+7
+48
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+49
+7
+50
+65
+67
+49
+2
+0
+49
+3
+4
+11
+I
+a
+I
+0
+I
+0
+I
+0
+n
+p
+51
+x
+12
+test_version
+M
+1
+n
+n
+x
+12
+test_version
+i
+8
+5
+56
+0
+47
+50
+1
+0
+11
+I
+2
+I
+0
+I
+0
+I
+0
+n
+p
+2
+M
+1
+p
+2
+x
+9
+for_block
+t
+n
+x
+12
+test_version
+i
+29
+5
+7
+0
+13
+70
+9
+19
+15
+44
+43
+1
+7
+2
+78
+49
+3
+2
+6
+0
+45
+4
+5
+43
+6
+47
+49
+7
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+I
+-2
+p
+8
+n
+x
+6
+Regexp
+s
+14
+\A\d\.\d\.\d\z
+x
+3
+new
+x
+7
+CodeRay
+n
+x
+7
+VERSION
+x
+12
+assert_match
+p
+5
+I
+0
+I
+7
+I
+0
+I
+8
+I
+1d
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+21
+assert_nothing_raised
+p
+5
+I
+0
+I
+6
+I
+0
+I
+7
+I
+8
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+x
+14
+RUBY_TEST_CODE
+s
+20
+puts "Hello, World!"
+x
+9
+const_set
+x
+16
+RUBY_TEST_TOKENS
+s
+4
+puts
+x
+5
+ident
+s
+1
+
+x
+5
+space
+x
+4
+open
+x
+6
+string
+s
+1
+"
+x
+9
+delimiter
+s
+13
+Hello, World!
+x
+7
+content
+x
+5
+close
+x
+16
+test_simple_scan
+M
+1
+n
+n
+x
+16
+test_simple_scan
+i
+8
+5
+56
+0
+47
+50
+1
+0
+11
+I
+2
+I
+0
+I
+0
+I
+0
+n
+p
+2
+M
+1
+p
+2
+x
+9
+for_block
+t
+n
+x
+16
+test_simple_scan
+i
+23
+5
+45
+0
+1
+45
+2
+3
+45
+4
+5
+7
+6
+49
+7
+2
+49
+8
+0
+47
+49
+9
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+I
+-2
+p
+10
+x
+16
+RUBY_TEST_TOKENS
+n
+x
+7
+CodeRay
+n
+x
+14
+RUBY_TEST_CODE
+n
+x
+4
+ruby
+x
+4
+scan
+x
+6
+to_ary
+x
+12
+assert_equal
+p
+5
+I
+0
+I
+18
+I
+0
+I
+19
+I
+17
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+21
+assert_nothing_raised
+p
+5
+I
+0
+I
+17
+I
+0
+I
+18
+I
+8
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+14
+RUBY_TEST_HTML
+s
+51
+puts "
+s
+73
+Hello, World!"
+x
+1
++
+x
+21
+test_simple_highlight
+M
+1
+n
+n
+x
+21
+test_simple_highlight
+i
+8
+5
+56
+0
+47
+50
+1
+0
+11
+I
+2
+I
+0
+I
+0
+I
+0
+n
+p
+2
+M
+1
+p
+2
+x
+9
+for_block
+t
+n
+x
+21
+test_simple_highlight
+i
+23
+5
+45
+0
+1
+45
+2
+3
+45
+4
+5
+7
+6
+49
+7
+2
+49
+8
+0
+47
+49
+9
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+I
+-2
+p
+10
+x
+14
+RUBY_TEST_HTML
+n
+x
+7
+CodeRay
+n
+x
+14
+RUBY_TEST_CODE
+n
+x
+4
+ruby
+x
+4
+scan
+x
+4
+html
+x
+12
+assert_equal
+p
+5
+I
+0
+I
+20
+I
+0
+I
+21
+I
+17
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+21
+assert_nothing_raised
+p
+5
+I
+0
+I
+1f
+I
+0
+I
+20
+I
+8
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+8
+test_duo
+M
+1
+n
+n
+x
+8
+test_duo
+i
+66
+5
+45
+0
+1
+45
+2
+3
+43
+4
+7
+5
+7
+5
+49
+6
+2
+45
+0
+7
+49
+8
+1
+47
+49
+9
+2
+15
+5
+45
+0
+10
+45
+2
+11
+43
+4
+44
+43
+12
+79
+49
+13
+1
+13
+7
+5
+7
+5
+49
+14
+2
+15
+49
+6
+1
+45
+0
+15
+49
+8
+1
+47
+49
+9
+2
+11
+I
+7
+I
+0
+I
+0
+I
+0
+n
+p
+16
+x
+14
+RUBY_TEST_CODE
+n
+x
+7
+CodeRay
+n
+x
+3
+Duo
+x
+5
+plain
+x
+2
+[]
+n
+x
+9
+highlight
+x
+12
+assert_equal
+n
+n
+x
+4
+Hash
+x
+16
+new_from_literal
+x
+3
+[]=
+n
+p
+15
+I
+0
+I
+25
+I
+0
+I
+26
+I
+4
+I
+27
+I
+16
+I
+26
+I
+1b
+I
+28
+I
+1f
+I
+29
+I
+3d
+I
+28
+I
+42
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+15
+test_duo_stream
+M
+1
+n
+n
+x
+15
+test_duo_stream
+i
+42
+5
+45
+0
+1
+45
+2
+3
+43
+4
+7
+5
+7
+5
+49
+6
+2
+45
+0
+7
+44
+43
+8
+79
+49
+9
+1
+13
+7
+10
+2
+49
+11
+2
+15
+49
+12
+2
+47
+49
+13
+2
+11
+I
+8
+I
+0
+I
+0
+I
+0
+n
+p
+14
+x
+14
+RUBY_TEST_CODE
+n
+x
+7
+CodeRay
+n
+x
+3
+Duo
+x
+5
+plain
+x
+2
+[]
+n
+x
+4
+Hash
+x
+16
+new_from_literal
+x
+6
+stream
+x
+3
+[]=
+x
+9
+highlight
+x
+12
+assert_equal
+p
+9
+I
+0
+I
+2c
+I
+0
+I
+2d
+I
+4
+I
+2e
+I
+25
+I
+2d
+I
+2a
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+19
+test_comment_filter
+M
+1
+n
+n
+x
+19
+test_comment_filter
+i
+26
+5
+7
+0
+64
+45
+1
+2
+7
+3
+64
+7
+4
+49
+5
+2
+49
+6
+0
+49
+7
+0
+47
+49
+8
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+9
+s
+39
+#!/usr/bin/env ruby
+
+code
+
+more code
+
+x
+7
+CodeRay
+n
+s
+127
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+
+x
+4
+ruby
+x
+4
+scan
+x
+14
+comment_filter
+x
+4
+text
+x
+12
+assert_equal
+p
+5
+I
+0
+I
+31
+I
+0
+I
+32
+I
+1a
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+18
+test_lines_of_code
+M
+1
+n
+n
+x
+18
+test_lines_of_code
+i
+108
+5
+80
+45
+0
+1
+7
+2
+64
+7
+3
+49
+4
+2
+49
+5
+0
+47
+49
+6
+2
+15
+7
+7
+64
+19
+0
+15
+5
+78
+45
+0
+8
+20
+0
+7
+9
+49
+4
+2
+49
+5
+0
+47
+49
+6
+2
+15
+5
+78
+45
+0
+10
+20
+0
+7
+11
+49
+4
+2
+49
+5
+0
+47
+49
+6
+2
+15
+5
+78
+45
+0
+12
+20
+0
+7
+13
+49
+4
+2
+49
+5
+0
+47
+49
+6
+2
+15
+5
+4
+4
+45
+0
+14
+20
+0
+7
+15
+49
+4
+2
+49
+5
+0
+47
+49
+6
+2
+11
+I
+6
+I
+1
+I
+0
+I
+0
+n
+p
+16
+x
+7
+CodeRay
+n
+s
+127
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+
+x
+4
+ruby
+x
+4
+scan
+x
+13
+lines_of_code
+x
+12
+assert_equal
+s
+514
+
+
+
+
+
+ <%= controller.controller_name.titleize %>: <%= controller.action_name %>
+ <%= stylesheet_link_tag 'scaffold' %>
+
+
+
+<%= flash[:notice] %>
+
+
+ <%= yield %>
+
+
+
+
+
+n
+x
+4
+html
+n
+x
+3
+php
+n
+x
+4
+yaml
+n
+x
+5
+rhtml
+p
+15
+I
+0
+I
+43
+I
+0
+I
+44
+I
+15
+I
+4d
+I
+1b
+I
+62
+I
+2f
+I
+63
+I
+43
+I
+64
+I
+57
+I
+65
+I
+6c
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+1
+x
+5
+rHTML
+x
+3
+ENV
+n
+s
+14
+check_rubygems
+x
+2
+[]
+x
+12
+RUBY_VERSION
+n
+s
+3
+1.9
+x
+1
+<
+x
+24
+test_rubygems_not_loaded
+M
+1
+n
+n
+x
+24
+test_rubygems_not_loaded
+i
+34
+5
+1
+26
+93
+0
+15
+29
+17
+0
+7
+0
+98
+1
+1
+30
+8
+23
+25
+92
+0
+27
+8
+28
+15
+7
+2
+8
+29
+1
+47
+49
+3
+2
+11
+I
+4
+I
+0
+I
+0
+I
+0
+n
+p
+4
+x
+3
+Gem
+x
+16
+vm_const_defined
+s
+8
+constant
+x
+12
+assert_equal
+p
+5
+I
+0
+I
+68
+I
+0
+I
+69
+I
+22
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+21
+test_list_of_encoders
+M
+1
+n
+n
+x
+21
+test_list_of_encoders
+i
+37
+5
+45
+0
+1
+45
+2
+3
+43
+4
+49
+5
+0
+47
+49
+6
+2
+15
+5
+45
+2
+7
+43
+4
+49
+5
+0
+7
+8
+64
+49
+9
+1
+47
+49
+10
+1
+11
+I
+3
+I
+0
+I
+0
+I
+0
+n
+p
+11
+x
+5
+Array
+n
+x
+7
+CodeRay
+n
+x
+8
+Encoders
+x
+4
+list
+x
+14
+assert_kind_of
+n
+s
+5
+count
+x
+8
+include?
+x
+6
+assert
+p
+7
+I
+0
+I
+6c
+I
+0
+I
+6d
+I
+11
+I
+6e
+I
+25
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+21
+test_list_of_scanners
+M
+1
+n
+n
+x
+21
+test_list_of_scanners
+i
+37
+5
+45
+0
+1
+45
+2
+3
+43
+4
+49
+5
+0
+47
+49
+6
+2
+15
+5
+45
+2
+7
+43
+4
+49
+5
+0
+7
+8
+64
+49
+9
+1
+47
+49
+10
+1
+11
+I
+3
+I
+0
+I
+0
+I
+0
+n
+p
+11
+x
+5
+Array
+n
+x
+7
+CodeRay
+n
+x
+8
+Scanners
+x
+4
+list
+x
+14
+assert_kind_of
+n
+s
+9
+plaintext
+x
+8
+include?
+x
+6
+assert
+p
+7
+I
+0
+I
+71
+I
+0
+I
+72
+I
+11
+I
+73
+I
+25
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+25
+test_scan_a_frozen_string
+M
+1
+n
+n
+x
+25
+test_scan_a_frozen_string
+i
+12
+45
+0
+1
+45
+2
+3
+7
+4
+49
+5
+2
+11
+I
+3
+I
+0
+I
+0
+I
+0
+n
+p
+6
+x
+7
+CodeRay
+n
+x
+12
+RUBY_VERSION
+n
+x
+4
+ruby
+x
+4
+scan
+p
+5
+I
+0
+I
+76
+I
+0
+I
+77
+I
+c
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+p
+51
+I
+2
+I
+6
+I
+10
+I
+c
+I
+1a
+I
+e
+I
+1d
+I
+f
+I
+24
+I
+10
+I
+2b
+I
+11
+I
+31
+I
+12
+I
+38
+I
+13
+I
+3f
+I
+14
+I
+46
+I
+15
+I
+52
+I
+17
+I
+60
+I
+1d
+I
+63
+I
+1d
+I
+66
+I
+1e
+I
+6f
+I
+1f
+I
+7d
+I
+25
+I
+8b
+I
+2c
+I
+99
+I
+31
+I
+a7
+I
+43
+I
+b5
+I
+6a
+I
+cc
+I
+68
+I
+db
+I
+6a
+I
+dd
+I
+6c
+I
+eb
+I
+71
+I
+f9
+I
+76
+I
+107
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
+x
+13
+attach_method
+p
+7
+I
+0
+I
+1
+I
+9
+I
+2
+I
+12
+I
+4
+I
+35
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/basic.rb
+p
+0
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/for_redcloth.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/for_redcloth.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,77 @@
+require 'test/unit'
+$:.unshift 'lib'
+require 'coderay'
+
+begin
+ require 'rubygems' unless defined? Gem
+ gem 'RedCloth', '>= 4.0.3' rescue nil
+ require 'redcloth'
+rescue LoadError
+ warn 'RedCloth not found - skipping for_redcloth tests.'
+end
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_for_redcloth
+ require 'coderay/for_redcloth'
+ assert_equal "puts "Hello, World!" ",
+ RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_no_lang
+ require 'coderay/for_redcloth'
+ assert_equal "puts \"Hello, World!\" ",
+ RedCloth.new('@puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_style
+ require 'coderay/for_redcloth'
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_escapes
+ require 'coderay/for_redcloth'
+ assert_equal '> ',
+ RedCloth.new('@[ruby]>@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. &').to_html
+ end
+
+ def test_for_redcloth_escapes2
+ require 'coderay/for_redcloth'
+ assert_equal "#include <test.h> ",
+ RedCloth.new('@[c]#include @').to_html
+ end
+
+ # See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets.
+ def test_for_redcloth_false_positive
+ require 'coderay/for_redcloth'
+ assert_equal '[project]_dff.skjd ',
+ RedCloth.new('@[project]_dff.skjd@').to_html
+ # false positive, but expected behavior / known issue
+ assert_equal "_dff.skjd ",
+ RedCloth.new('@[ruby]_dff.skjd@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+[project]_dff.skjd
+ BLOCKCODE
+ RedCloth.new('bc. [project]_dff.skjd').to_html
+ end
+
+end if defined? RedCloth
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/for_redcloth.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/for_redcloth.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,1708 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+249
+5
+7
+0
+64
+47
+49
+1
+1
+15
+99
+43
+2
+7
+3
+49
+4
+1
+7
+5
+64
+49
+6
+1
+15
+5
+7
+7
+64
+47
+49
+1
+1
+15
+26
+93
+0
+15
+29
+144
+0
+26
+93
+1
+15
+29
+55
+0
+7
+8
+98
+9
+1
+30
+8
+61
+25
+92
+1
+27
+8
+66
+15
+7
+10
+8
+67
+1
+9
+72
+1
+8
+80
+5
+7
+11
+64
+47
+49
+1
+1
+15
+26
+93
+2
+15
+29
+102
+0
+5
+7
+12
+64
+7
+13
+64
+47
+49
+14
+2
+30
+8
+129
+26
+93
+3
+15
+24
+13
+45
+15
+16
+12
+49
+17
+1
+10
+119
+8
+124
+15
+1
+25
+8
+129
+15
+92
+3
+27
+34
+92
+2
+27
+15
+5
+7
+18
+64
+47
+49
+1
+1
+30
+8
+178
+26
+93
+4
+15
+24
+13
+45
+19
+20
+12
+49
+17
+1
+10
+161
+8
+173
+15
+5
+7
+21
+64
+47
+49
+22
+1
+25
+8
+178
+15
+92
+4
+27
+34
+92
+0
+27
+15
+26
+93
+5
+15
+29
+197
+0
+7
+23
+98
+9
+1
+30
+8
+203
+25
+92
+5
+27
+8
+208
+15
+7
+10
+8
+209
+1
+9
+245
+99
+7
+24
+45
+25
+26
+43
+27
+43
+28
+65
+49
+29
+3
+13
+99
+12
+7
+30
+12
+7
+31
+12
+65
+12
+49
+32
+4
+15
+49
+30
+0
+8
+246
+1
+15
+2
+11
+I
+c
+I
+0
+I
+0
+I
+0
+n
+p
+33
+s
+9
+test/unit
+x
+7
+require
+x
+7
+Globals
+x
+2
+$:
+x
+2
+[]
+s
+3
+lib
+x
+2
+<<
+s
+7
+coderay
+x
+3
+Gem
+x
+16
+vm_const_defined
+s
+8
+constant
+s
+8
+rubygems
+s
+8
+RedCloth
+s
+8
+>= 4.0.3
+x
+3
+gem
+x
+13
+StandardError
+n
+x
+3
+===
+s
+8
+redcloth
+x
+9
+LoadError
+n
+s
+49
+RedCloth not found - skipping for_redcloth tests.
+x
+4
+warn
+x
+8
+RedCloth
+x
+9
+BasicTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+9
+BasicTest
+i
+86
+5
+66
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+4
+7
+5
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+6
+7
+7
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+8
+7
+9
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+10
+7
+11
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+12
+7
+13
+65
+67
+49
+2
+0
+49
+3
+4
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+14
+x
+17
+test_for_redcloth
+M
+1
+n
+n
+x
+17
+test_for_redcloth
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+221
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+28
+@[ruby]puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+252
+
+
+x
+5
+chomp
+n
+s
+30
+bc[ruby]. puts "Hello, World!"
+p
+17
+I
+0
+I
+f
+I
+0
+I
+10
+I
+9
+I
+11
+I
+d
+I
+12
+I
+2e
+I
+11
+I
+33
+I
+13
+I
+3a
+I
+18
+I
+5b
+I
+13
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+x
+25
+test_for_redcloth_no_lang
+M
+1
+n
+n
+x
+25
+test_for_redcloth_no_lang
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+40
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+45
+puts "Hello, World!"
+
+x
+5
+chomp
+n
+s
+24
+bc. puts "Hello, World!"
+p
+17
+I
+0
+I
+1b
+I
+0
+I
+1c
+I
+9
+I
+1d
+I
+d
+I
+1e
+I
+2e
+I
+1d
+I
+33
+I
+1f
+I
+3a
+I
+22
+I
+5b
+I
+1f
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+23
+test_for_redcloth_style
+M
+1
+n
+n
+x
+23
+test_for_redcloth_style
+i
+54
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+49
+3
+0
+45
+4
+5
+13
+71
+6
+47
+9
+40
+47
+49
+7
+0
+13
+7
+8
+64
+47
+49
+9
+1
+15
+8
+46
+7
+8
+64
+49
+6
+1
+49
+10
+0
+47
+49
+11
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+85
+puts "Hello, World!"
+
+x
+5
+chomp
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+36
+bc{color: red}. puts "Hello, World!"
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+25
+I
+0
+I
+26
+I
+9
+I
+27
+I
+10
+I
+2a
+I
+31
+I
+27
+I
+36
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+25
+test_for_redcloth_escapes
+M
+1
+n
+n
+x
+25
+test_for_redcloth_escapes
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+52
+>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+9
+@[ruby]>@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+84
+
+
+x
+5
+chomp
+n
+s
+11
+bc[ruby]. &
+p
+17
+I
+0
+I
+2d
+I
+0
+I
+2e
+I
+9
+I
+2f
+I
+d
+I
+30
+I
+2e
+I
+2f
+I
+33
+I
+31
+I
+3a
+I
+36
+I
+5b
+I
+31
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+26
+test_for_redcloth_escapes2
+M
+1
+n
+n
+x
+26
+test_for_redcloth_escapes2
+i
+51
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+11
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+149
+#include <test.h>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@[c]#include @
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+39
+I
+0
+I
+3a
+I
+9
+I
+3b
+I
+d
+I
+3c
+I
+2e
+I
+3b
+I
+33
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+32
+test_for_redcloth_false_positive
+M
+1
+n
+n
+x
+32
+test_for_redcloth_false_positive
+i
+138
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+45
+3
+12
+13
+71
+5
+47
+9
+79
+47
+49
+6
+0
+13
+7
+13
+64
+47
+49
+8
+1
+15
+8
+85
+7
+13
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+14
+64
+49
+15
+0
+45
+3
+16
+13
+71
+5
+47
+9
+124
+47
+49
+6
+0
+13
+7
+17
+64
+47
+49
+8
+1
+15
+8
+130
+7
+17
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+18
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+38
+[project]_dff.skjd
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+20
+@[project]_dff.skjd@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+57
+_dff.skjd
+n
+s
+17
+@[ruby]_dff.skjd@
+s
+43
+[project]_dff.skjd
+
+x
+5
+chomp
+n
+s
+22
+bc. [project]_dff.skjd
+p
+23
+I
+0
+I
+40
+I
+0
+I
+41
+I
+9
+I
+42
+I
+d
+I
+43
+I
+2e
+I
+42
+I
+33
+I
+45
+I
+37
+I
+46
+I
+58
+I
+45
+I
+5d
+I
+47
+I
+64
+I
+4a
+I
+85
+I
+47
+I
+8a
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+p
+13
+I
+2
+I
+f
+I
+10
+I
+1b
+I
+1e
+I
+25
+I
+2c
+I
+2d
+I
+3a
+I
+39
+I
+48
+I
+40
+I
+56
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+13
+attach_method
+p
+23
+I
+0
+I
+1
+I
+9
+I
+2
+I
+18
+I
+3
+I
+21
+I
+6
+I
+51
+I
+7
+I
+85
+I
+8
+I
+95
+I
+9
+I
+a2
+I
+a
+I
+b6
+I
+4d
+I
+d3
+I
+d
+I
+f5
+I
+4d
+I
+f9
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/load_plugin_scanner.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/load_plugin_scanner.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,11 @@
+require 'test/unit'
+require 'coderay'
+
+class PluginScannerTest < Test::Unit::TestCase
+
+ def test_load
+ require File.join(File.dirname(__FILE__), 'vhdl')
+ assert_equal 'VHDL', CodeRay.scanner(:vhdl).class.name
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/load_plugin_scanner.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/load_plugin_scanner.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,317 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+53
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+47
+49
+1
+1
+15
+99
+7
+3
+45
+4
+5
+43
+6
+43
+7
+65
+49
+8
+3
+13
+99
+12
+7
+9
+12
+7
+10
+12
+65
+12
+49
+11
+4
+15
+49
+9
+0
+15
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+9
+test/unit
+x
+7
+require
+s
+7
+coderay
+x
+17
+PluginScannerTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+17
+PluginScannerTest
+i
+16
+5
+66
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+4
+x
+9
+test_load
+M
+1
+n
+n
+x
+9
+test_load
+i
+48
+5
+45
+0
+1
+45
+0
+2
+65
+49
+3
+0
+49
+4
+1
+7
+5
+64
+49
+6
+2
+47
+49
+7
+1
+15
+5
+7
+8
+64
+45
+9
+10
+7
+11
+49
+12
+1
+49
+13
+0
+49
+14
+0
+47
+49
+15
+2
+11
+I
+4
+I
+0
+I
+0
+I
+0
+n
+p
+16
+x
+4
+File
+n
+n
+x
+11
+active_path
+x
+7
+dirname
+s
+4
+vhdl
+x
+4
+join
+x
+7
+require
+s
+4
+VHDL
+x
+7
+CodeRay
+n
+x
+4
+vhdl
+x
+7
+scanner
+x
+5
+class
+x
+4
+name
+x
+12
+assert_equal
+p
+7
+I
+0
+I
+6
+I
+0
+I
+7
+I
+19
+I
+8
+I
+30
+x
+69
+/Users/murphy/ruby/coderay-0.9/test/functional/load_plugin_scanner.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+p
+3
+I
+2
+I
+6
+I
+10
+x
+69
+/Users/murphy/ruby/coderay-0.9/test/functional/load_plugin_scanner.rb
+p
+0
+x
+13
+attach_method
+p
+7
+I
+0
+I
+1
+I
+9
+I
+2
+I
+12
+I
+4
+I
+35
+x
+69
+/Users/murphy/ruby/coderay-0.9/test/functional/load_plugin_scanner.rb
+p
+0
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/suite.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/suite.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,12 @@
+require 'test/unit'
+
+MYDIR = File.dirname(__FILE__)
+
+$:.unshift 'lib'
+require 'coderay'
+puts "Running basic CodeRay #{CodeRay::VERSION} tests..."
+
+suite = %w(basic load_plugin_scanner word_list)
+for test_case in suite
+ load File.join(MYDIR, test_case + '.rb')
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/suite.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/suite.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,322 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+95
+5
+7
+0
+64
+47
+49
+1
+1
+15
+65
+7
+2
+45
+3
+4
+65
+49
+5
+0
+49
+6
+1
+49
+7
+2
+15
+99
+43
+8
+7
+9
+49
+10
+1
+7
+11
+64
+49
+12
+1
+15
+5
+7
+13
+64
+47
+49
+1
+1
+15
+5
+7
+14
+45
+15
+16
+43
+17
+47
+49
+18
+0
+7
+19
+63
+3
+47
+49
+20
+1
+15
+7
+21
+64
+7
+22
+64
+7
+23
+64
+35
+3
+19
+0
+15
+20
+0
+56
+24
+50
+25
+0
+15
+2
+11
+I
+6
+I
+2
+I
+0
+I
+0
+n
+p
+26
+s
+9
+test/unit
+x
+7
+require
+x
+5
+MYDIR
+x
+4
+File
+n
+x
+11
+active_path
+x
+7
+dirname
+x
+9
+const_set
+x
+7
+Globals
+x
+2
+$:
+x
+2
+[]
+s
+3
+lib
+x
+2
+<<
+s
+7
+coderay
+s
+22
+Running basic CodeRay
+x
+7
+CodeRay
+n
+x
+7
+VERSION
+x
+4
+to_s
+s
+9
+ tests...
+x
+4
+puts
+s
+5
+basic
+s
+19
+load_plugin_scanner
+s
+9
+word_list
+M
+1
+p
+2
+x
+9
+for_block
+t
+n
+x
+9
+__block__
+i
+28
+57
+22
+1
+1
+15
+5
+45
+0
+1
+45
+2
+3
+21
+1
+1
+7
+4
+64
+81
+5
+49
+6
+2
+47
+49
+7
+1
+11
+I
+6
+I
+0
+I
+1
+I
+1
+n
+p
+8
+x
+4
+File
+n
+x
+5
+MYDIR
+n
+s
+3
+.rb
+x
+1
++
+x
+4
+join
+x
+4
+load
+p
+5
+I
+0
+I
+a
+I
+5
+I
+b
+I
+1c
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/suite.rb
+p
+0
+x
+4
+each
+p
+15
+I
+0
+I
+1
+I
+9
+I
+3
+I
+1a
+I
+5
+I
+29
+I
+6
+I
+32
+I
+7
+I
+47
+I
+9
+I
+55
+I
+a
+I
+5f
+x
+55
+/Users/murphy/ruby/coderay-0.9/test/functional/suite.rb
+p
+2
+x
+5
+suite
+x
+9
+test_case
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/vhdl.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/vhdl.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,126 @@
+class VHDL < CodeRay::Scanners::Scanner
+
+ register_for :vhdl
+
+ RESERVED_WORDS = [
+ 'access','after','alias','all','assert','architecture','begin',
+ 'block','body','buffer','bus','case','component','configuration','constant',
+ 'disconnect','downto','else','elsif','end','entity','exit','file','for',
+ 'function','generate','generic','group','guarded','if','impure','in',
+ 'inertial','inout','is','label','library','linkage','literal','loop',
+ 'map','new','next','null','of','on','open','others','out','package',
+ 'port','postponed','procedure','process','pure','range','record','register',
+ 'reject','report','return','select','severity','signal','shared','subtype',
+ 'then','to','transport','type','unaffected','units','until','use','variable',
+ 'wait','when','while','with','note','warning','error','failure','and',
+ 'or','xor','not','nor',
+ 'array'
+ ]
+
+ PREDEFINED_TYPES = [
+ 'bit','bit_vector','character','boolean','integer','real','time','string',
+ 'severity_level','positive','natural','signed','unsigned','line','text',
+ 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state',
+ 'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength',
+ 'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector'
+ ]
+
+ PREDEFINED_CONSTANTS = [
+
+ ]
+
+ IDENT_KIND = CodeRay::CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+
+ elsif scan(/-- .*/x)
+ kind = :comment
+
+ elsif scan(/ [-+*\/=<>?:;,!&^|()\[\]{}~%]+ | \.(?!\d) /x)
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match.downcase]
+
+ elsif match = scan(/[a-z]?"/i)
+ tokens << [:open, :string]
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ kind = :char
+
+ elsif scan(/(?:\d+)(?![.eEfF])/)
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\\n"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/vhdl.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/vhdl.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,2334 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+35
+99
+7
+0
+45
+1
+2
+43
+3
+43
+4
+65
+49
+5
+3
+13
+99
+12
+7
+6
+12
+7
+7
+12
+65
+12
+49
+8
+4
+15
+49
+6
+0
+15
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+n
+p
+9
+x
+4
+VHDL
+x
+7
+CodeRay
+n
+x
+8
+Scanners
+x
+7
+Scanner
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+4
+VHDL
+i
+519
+5
+66
+5
+7
+0
+47
+49
+1
+1
+15
+65
+7
+2
+7
+3
+64
+7
+4
+64
+7
+5
+64
+7
+6
+64
+7
+7
+64
+7
+8
+64
+7
+9
+64
+7
+10
+64
+7
+11
+64
+7
+12
+64
+7
+13
+64
+7
+14
+64
+7
+15
+64
+7
+16
+64
+7
+17
+64
+7
+18
+64
+7
+19
+64
+7
+20
+64
+7
+21
+64
+7
+22
+64
+7
+23
+64
+7
+24
+64
+7
+25
+64
+7
+26
+64
+7
+27
+64
+7
+28
+64
+7
+29
+64
+7
+30
+64
+7
+31
+64
+7
+32
+64
+7
+33
+64
+7
+34
+64
+7
+35
+64
+7
+36
+64
+7
+37
+64
+7
+38
+64
+7
+39
+64
+7
+40
+64
+7
+41
+64
+7
+42
+64
+7
+43
+64
+7
+44
+64
+7
+45
+64
+7
+46
+64
+7
+47
+64
+7
+48
+64
+7
+49
+64
+7
+50
+64
+7
+51
+64
+7
+52
+64
+7
+53
+64
+7
+54
+64
+7
+55
+64
+7
+56
+64
+7
+57
+64
+7
+58
+64
+7
+59
+64
+7
+60
+64
+7
+61
+64
+7
+62
+64
+7
+63
+64
+7
+64
+64
+7
+65
+64
+7
+66
+64
+7
+67
+64
+7
+68
+64
+7
+69
+64
+7
+70
+64
+7
+71
+64
+7
+72
+64
+7
+73
+64
+7
+74
+64
+7
+75
+64
+7
+76
+64
+7
+77
+64
+7
+78
+64
+7
+79
+64
+7
+80
+64
+7
+81
+64
+7
+82
+64
+7
+83
+64
+7
+84
+64
+7
+85
+64
+7
+86
+64
+7
+87
+64
+7
+88
+64
+7
+89
+64
+7
+90
+64
+7
+91
+64
+35
+89
+49
+92
+2
+15
+65
+7
+93
+7
+94
+64
+7
+95
+64
+7
+96
+64
+7
+97
+64
+7
+98
+64
+7
+99
+64
+7
+100
+64
+7
+101
+64
+7
+102
+64
+7
+103
+64
+7
+104
+64
+7
+105
+64
+7
+106
+64
+7
+107
+64
+7
+108
+64
+7
+109
+64
+7
+110
+64
+7
+111
+64
+7
+112
+64
+7
+113
+64
+7
+114
+64
+7
+115
+64
+7
+116
+64
+7
+117
+64
+7
+118
+64
+7
+119
+64
+7
+120
+64
+7
+121
+64
+7
+122
+64
+7
+123
+64
+35
+30
+49
+92
+2
+15
+65
+7
+124
+35
+0
+49
+92
+2
+15
+65
+7
+125
+45
+126
+127
+43
+128
+13
+71
+129
+47
+9
+422
+47
+49
+130
+0
+13
+7
+131
+47
+49
+132
+1
+15
+8
+427
+7
+131
+49
+129
+1
+45
+2
+133
+7
+134
+49
+135
+2
+45
+93
+136
+7
+137
+49
+135
+2
+45
+124
+138
+7
+139
+49
+135
+2
+49
+92
+2
+15
+65
+7
+140
+7
+141
+13
+70
+9
+476
+15
+44
+43
+142
+7
+143
+80
+49
+129
+2
+6
+141
+49
+92
+2
+15
+65
+7
+144
+7
+145
+13
+70
+9
+501
+15
+44
+43
+142
+7
+146
+80
+49
+129
+2
+6
+145
+49
+92
+2
+15
+99
+7
+147
+7
+148
+65
+67
+49
+149
+0
+49
+150
+4
+11
+I
+5b
+I
+0
+I
+0
+I
+0
+n
+p
+151
+x
+4
+vhdl
+x
+12
+register_for
+x
+14
+RESERVED_WORDS
+s
+6
+access
+s
+5
+after
+s
+5
+alias
+s
+3
+all
+s
+6
+assert
+s
+12
+architecture
+s
+5
+begin
+s
+5
+block
+s
+4
+body
+s
+6
+buffer
+s
+3
+bus
+s
+4
+case
+s
+9
+component
+s
+13
+configuration
+s
+8
+constant
+s
+10
+disconnect
+s
+6
+downto
+s
+4
+else
+s
+5
+elsif
+s
+3
+end
+s
+6
+entity
+s
+4
+exit
+s
+4
+file
+s
+3
+for
+s
+8
+function
+s
+8
+generate
+s
+7
+generic
+s
+5
+group
+s
+7
+guarded
+s
+2
+if
+s
+6
+impure
+s
+2
+in
+s
+8
+inertial
+s
+5
+inout
+s
+2
+is
+s
+5
+label
+s
+7
+library
+s
+7
+linkage
+s
+7
+literal
+s
+4
+loop
+s
+3
+map
+s
+3
+new
+s
+4
+next
+s
+4
+null
+s
+2
+of
+s
+2
+on
+s
+4
+open
+s
+6
+others
+s
+3
+out
+s
+7
+package
+s
+4
+port
+s
+9
+postponed
+s
+9
+procedure
+s
+7
+process
+s
+4
+pure
+s
+5
+range
+s
+6
+record
+s
+8
+register
+s
+6
+reject
+s
+6
+report
+s
+6
+return
+s
+6
+select
+s
+8
+severity
+s
+6
+signal
+s
+6
+shared
+s
+7
+subtype
+s
+4
+then
+s
+2
+to
+s
+9
+transport
+s
+4
+type
+s
+10
+unaffected
+s
+5
+units
+s
+5
+until
+s
+3
+use
+s
+8
+variable
+s
+4
+wait
+s
+4
+when
+s
+5
+while
+s
+4
+with
+s
+4
+note
+s
+7
+warning
+s
+5
+error
+s
+7
+failure
+s
+3
+and
+s
+2
+or
+s
+3
+xor
+s
+3
+not
+s
+3
+nor
+s
+5
+array
+x
+9
+const_set
+x
+16
+PREDEFINED_TYPES
+s
+3
+bit
+s
+10
+bit_vector
+s
+9
+character
+s
+7
+boolean
+s
+7
+integer
+s
+4
+real
+s
+4
+time
+s
+6
+string
+s
+14
+severity_level
+s
+8
+positive
+s
+7
+natural
+s
+6
+signed
+s
+8
+unsigned
+s
+4
+line
+s
+4
+text
+s
+9
+std_logic
+s
+16
+std_logic_vector
+s
+10
+std_ulogic
+s
+17
+std_ulogic_vector
+s
+10
+qsim_state
+s
+17
+qsim_state_vector
+s
+12
+qsim_12state
+s
+19
+qsim_12state_vector
+s
+13
+qsim_strength
+s
+7
+mux_bit
+s
+10
+mux_vector
+s
+7
+reg_bit
+s
+10
+reg_vector
+s
+7
+wor_bit
+s
+10
+wor_vector
+x
+20
+PREDEFINED_CONSTANTS
+x
+10
+IDENT_KIND
+x
+7
+CodeRay
+n
+x
+20
+CaseIgnoringWordList
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+n
+x
+8
+reserved
+x
+3
+add
+n
+x
+8
+pre_type
+n
+x
+12
+pre_constant
+x
+6
+ESCAPE
+n
+x
+6
+Regexp
+s
+49
+ [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3}
+x
+14
+UNICODE_ESCAPE
+n
+s
+35
+ u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8}
+x
+11
+scan_tokens
+M
+1
+n
+n
+x
+11
+scan_tokens
+i
+688
+7
+0
+19
+2
+15
+5
+47
+49
+1
+0
+10
+660
+1
+19
+3
+15
+1
+19
+4
+15
+20
+2
+13
+7
+0
+12
+49
+2
+1
+9
+331
+15
+5
+7
+3
+13
+70
+9
+51
+15
+44
+43
+4
+7
+5
+80
+49
+6
+2
+6
+3
+47
+49
+7
+1
+9
+63
+7
+8
+19
+3
+8
+329
+5
+7
+9
+13
+70
+9
+82
+15
+44
+43
+4
+7
+10
+80
+49
+6
+2
+6
+9
+47
+49
+7
+1
+9
+94
+7
+11
+19
+3
+8
+329
+5
+7
+12
+13
+70
+9
+113
+15
+44
+43
+4
+7
+13
+80
+49
+6
+2
+6
+12
+47
+49
+7
+1
+9
+125
+7
+14
+19
+3
+8
+329
+5
+7
+15
+13
+70
+9
+144
+15
+44
+43
+4
+7
+16
+80
+49
+6
+2
+6
+15
+47
+49
+7
+1
+19
+4
+9
+167
+45
+17
+18
+20
+4
+49
+19
+0
+49
+20
+1
+19
+3
+8
+329
+5
+7
+21
+13
+70
+9
+186
+15
+44
+43
+4
+7
+22
+79
+49
+6
+2
+6
+21
+47
+49
+7
+1
+19
+4
+9
+217
+20
+0
+7
+23
+7
+24
+35
+2
+49
+25
+1
+15
+7
+24
+19
+2
+15
+7
+26
+19
+3
+8
+329
+5
+7
+27
+13
+70
+9
+247
+15
+44
+43
+4
+7
+28
+45
+29
+30
+47
+49
+31
+0
+7
+32
+63
+3
+80
+49
+6
+2
+6
+27
+47
+49
+7
+1
+9
+259
+7
+33
+19
+3
+8
+329
+5
+7
+34
+13
+70
+9
+278
+15
+44
+43
+4
+7
+35
+78
+49
+6
+2
+6
+34
+47
+49
+7
+1
+9
+290
+7
+36
+19
+3
+8
+329
+5
+7
+37
+13
+70
+9
+309
+15
+44
+43
+4
+7
+38
+78
+49
+6
+2
+6
+37
+47
+49
+7
+1
+9
+321
+7
+39
+19
+3
+8
+329
+5
+48
+40
+15
+7
+41
+19
+3
+8
+564
+13
+7
+24
+12
+49
+2
+1
+9
+553
+15
+5
+7
+42
+13
+70
+9
+360
+15
+44
+43
+4
+7
+43
+78
+49
+6
+2
+6
+42
+47
+49
+7
+1
+9
+372
+7
+44
+19
+3
+8
+551
+5
+7
+45
+13
+70
+9
+391
+15
+44
+43
+4
+7
+46
+78
+49
+6
+2
+6
+45
+47
+49
+7
+1
+9
+432
+20
+0
+7
+46
+64
+7
+26
+35
+2
+49
+25
+1
+15
+20
+0
+7
+47
+7
+24
+35
+2
+49
+25
+1
+15
+7
+0
+19
+2
+15
+1
+8
+656
+8
+551
+5
+7
+48
+13
+70
+9
+472
+15
+44
+43
+4
+7
+49
+45
+29
+50
+47
+49
+31
+0
+7
+51
+45
+52
+53
+47
+49
+31
+0
+7
+54
+63
+5
+4
+6
+49
+6
+2
+6
+48
+47
+49
+7
+1
+9
+484
+7
+33
+19
+3
+8
+551
+5
+7
+55
+13
+70
+9
+503
+15
+44
+43
+4
+7
+56
+80
+49
+6
+2
+6
+55
+47
+49
+7
+1
+9
+532
+20
+0
+7
+47
+7
+24
+35
+2
+49
+25
+1
+15
+7
+41
+19
+3
+15
+7
+0
+19
+2
+8
+551
+5
+7
+57
+64
+5
+79
+47
+49
+58
+1
+49
+59
+1
+20
+0
+47
+49
+60
+2
+8
+564
+15
+5
+7
+61
+64
+20
+0
+47
+49
+60
+2
+15
+20
+4
+13
+10
+576
+15
+5
+48
+62
+19
+4
+15
+99
+43
+63
+7
+64
+49
+20
+1
+13
+9
+597
+15
+20
+3
+10
+596
+2
+8
+597
+3
+9
+625
+5
+7
+65
+64
+20
+4
+20
+3
+35
+2
+5
+48
+66
+35
+2
+49
+59
+1
+20
+0
+47
+49
+60
+2
+8
+626
+1
+15
+20
+4
+9
+634
+1
+8
+644
+5
+7
+67
+64
+20
+0
+47
+49
+60
+2
+15
+20
+0
+20
+4
+20
+3
+35
+2
+49
+25
+1
+15
+68
+8
+5
+1
+15
+20
+2
+7
+24
+83
+68
+9
+683
+20
+0
+7
+47
+7
+24
+35
+2
+49
+25
+1
+8
+684
+1
+15
+20
+0
+11
+I
+c
+I
+5
+I
+2
+I
+2
+n
+p
+69
+x
+7
+initial
+x
+4
+eos?
+x
+3
+===
+n
+x
+6
+Regexp
+s
+12
+ \s+ | \\\n
+x
+3
+new
+x
+4
+scan
+x
+5
+space
+n
+s
+5
+-- .*
+x
+7
+comment
+n
+s
+42
+ [-+*\/=<>?:;,!&^|()\[\]{}~%]+ | \.(?!\d)
+x
+8
+operator
+n
+s
+24
+ [A-Za-z_][A-Za-z_0-9]*
+x
+10
+IDENT_KIND
+n
+x
+8
+downcase
+x
+2
+[]
+n
+s
+7
+[a-z]?"
+x
+4
+open
+x
+6
+string
+x
+2
+<<
+x
+9
+delimiter
+n
+s
+24
+ L?' (?: [^\'\n\\] | \\
+x
+6
+ESCAPE
+n
+x
+4
+to_s
+s
+7
+ )? '?
+x
+4
+char
+n
+s
+18
+(?:\d+)(?![.eEfF])
+x
+7
+integer
+n
+s
+59
+\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?
+x
+5
+float
+x
+5
+getch
+x
+5
+error
+n
+s
+9
+[^\\\n"]+
+x
+7
+content
+n
+s
+1
+"
+x
+5
+close
+n
+s
+8
+ \\ (?:
+n
+s
+3
+ |
+x
+14
+UNICODE_ESCAPE
+n
+s
+3
+ )
+n
+s
+8
+ \\ | $
+s
+36
+else case " reached; %p not handled.
+x
+4
+peek
+x
+1
+%
+x
+13
+raise_inspect
+s
+13
+Unknown state
+x
+7
+matched
+x
+7
+Globals
+x
+6
+$DEBUG
+s
+25
+Error token %p in line %d
+x
+4
+line
+s
+11
+Empty token
+x
+2
+==
+p
+111
+I
+0
+I
+28
+I
+0
+I
+2a
+I
+5
+I
+2c
+I
+c
+I
+2e
+I
+10
+I
+2f
+I
+14
+I
+31
+I
+17
+I
+33
+I
+20
+I
+35
+I
+39
+I
+36
+I
+3f
+I
+38
+I
+58
+I
+39
+I
+5e
+I
+3b
+I
+77
+I
+3c
+I
+7d
+I
+3e
+I
+98
+I
+3f
+I
+a7
+I
+41
+I
+c2
+I
+42
+I
+ce
+I
+43
+I
+d3
+I
+44
+I
+d9
+I
+46
+I
+fd
+I
+47
+I
+103
+I
+49
+I
+11c
+I
+4a
+I
+122
+I
+4c
+I
+13b
+I
+4d
+I
+141
+I
+50
+I
+145
+I
+51
+I
+14c
+I
+55
+I
+155
+I
+56
+I
+16e
+I
+57
+I
+174
+I
+58
+I
+18d
+I
+59
+I
+19a
+I
+5a
+I
+1a6
+I
+5b
+I
+1ab
+I
+5c
+I
+1b0
+I
+5d
+I
+1de
+I
+5e
+I
+1e4
+I
+5f
+I
+1fd
+I
+60
+I
+209
+I
+61
+I
+20e
+I
+62
+I
+214
+I
+64
+I
+22a
+I
+68
+I
+235
+I
+6c
+I
+241
+I
+6d
+I
+257
+I
+6f
+I
+258
+I
+6e
+I
+25b
+I
+6f
+I
+271
+I
+6d
+I
+273
+I
+71
+I
+285
+I
+73
+I
+296
+I
+77
+I
+29e
+I
+78
+I
+2ab
+I
+77
+I
+2ad
+I
+7b
+I
+2b0
+x
+54
+/Users/murphy/ruby/coderay-0.9/test/functional/vhdl.rb
+p
+5
+x
+6
+tokens
+x
+7
+options
+x
+5
+state
+x
+4
+kind
+x
+5
+match
+x
+17
+method_visibility
+x
+15
+add_defn_method
+p
+65
+I
+2
+I
+3
+I
+a
+I
+5
+I
+d
+I
+6
+I
+22
+I
+7
+I
+3a
+I
+8
+I
+55
+I
+9
+I
+6d
+I
+a
+I
+85
+I
+b
+I
+a3
+I
+c
+I
+bb
+I
+d
+I
+d3
+I
+e
+I
+ee
+I
+f
+I
+109
+I
+10
+I
+115
+I
+11
+I
+11e
+I
+14
+I
+121
+I
+15
+I
+139
+I
+16
+I
+14e
+I
+17
+I
+15d
+I
+18
+I
+169
+I
+19
+I
+181
+I
+1c
+I
+184
+I
+1e
+I
+18a
+I
+20
+I
+1ab
+I
+21
+I
+1b0
+I
+20
+I
+1b3
+I
+22
+I
+1b8
+I
+20
+I
+1bb
+I
+23
+I
+1c0
+I
+20
+I
+1c7
+I
+25
+I
+1e0
+I
+26
+I
+1f9
+I
+28
+I
+207
+x
+54
+/Users/murphy/ruby/coderay-0.9/test/functional/vhdl.rb
+p
+0
+x
+13
+attach_method
+p
+3
+I
+0
+I
+1
+I
+23
+x
+54
+/Users/murphy/ruby/coderay-0.9/test/functional/vhdl.rb
+p
+0
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/word_list.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/word_list.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,79 @@
+require 'test/unit'
+require 'coderay'
+
+class WordListTest < Test::Unit::TestCase
+
+ include CodeRay
+
+ # define word arrays
+ RESERVED_WORDS = %w[
+ asm break case continue default do else
+ ...
+ ]
+
+ PREDEFINED_TYPES = %w[
+ int long short char void
+ ...
+ ]
+
+ PREDEFINED_CONSTANTS = %w[
+ EOF NULL ...
+ ]
+
+ # make a WordList
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ def test_word_list_example
+ assert_equal :pre_type, IDENT_KIND['void']
+ # assert_equal :pre_constant, IDENT_KIND['...'] # not specified
+ end
+
+ def test_word_list
+ list = WordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ assert_equal :ident, list['FooBar']
+ end
+
+ def test_word_list_cached
+ list = WordList.new(:ident, true).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ assert_equal :ident, list['FooBar']
+ end
+
+ def test_case_ignoring_word_list
+ list = CaseIgnoringWordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+
+ list = CaseIgnoringWordList.new(:ident).add(['FooBar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+ end
+
+ def test_case_ignoring_word_list_cached
+ list = CaseIgnoringWordList.new(:ident, true).add(['foobar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+
+ list = CaseIgnoringWordList.new(:ident, true).add(['FooBar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+ end
+
+ def test_dup
+ list = WordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ list2 = list.dup
+ list2.add(%w[foobar], :keyword)
+ assert_equal :keyword, list2['foobar']
+ assert_equal :reserved, list['foobar']
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/word_list.rbc.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/.svn/text-base/word_list.rbc.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,1763 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+53
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+47
+49
+1
+1
+15
+99
+7
+3
+45
+4
+5
+43
+6
+43
+7
+65
+49
+8
+3
+13
+99
+12
+7
+9
+12
+7
+10
+12
+65
+12
+49
+11
+4
+15
+49
+9
+0
+15
+2
+11
+I
+6
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+9
+test/unit
+x
+7
+require
+s
+7
+coderay
+x
+12
+WordListTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+12
+WordListTest
+i
+232
+5
+66
+5
+45
+0
+1
+47
+49
+2
+1
+15
+65
+7
+3
+7
+4
+64
+7
+5
+64
+7
+6
+64
+7
+7
+64
+7
+8
+64
+7
+9
+64
+7
+10
+64
+7
+11
+64
+35
+8
+49
+12
+2
+15
+65
+7
+13
+7
+14
+64
+7
+15
+64
+7
+16
+64
+7
+17
+64
+7
+18
+64
+7
+11
+64
+35
+6
+49
+12
+2
+15
+65
+7
+19
+7
+20
+64
+7
+21
+64
+7
+11
+64
+35
+3
+49
+12
+2
+15
+65
+7
+22
+45
+23
+24
+13
+71
+25
+47
+9
+115
+47
+49
+26
+0
+13
+7
+27
+47
+49
+28
+1
+15
+8
+120
+7
+27
+49
+25
+1
+45
+3
+29
+7
+30
+49
+31
+2
+45
+13
+32
+7
+33
+49
+31
+2
+45
+19
+34
+7
+35
+49
+31
+2
+49
+12
+2
+15
+99
+7
+36
+7
+37
+65
+67
+49
+38
+0
+49
+39
+4
+15
+99
+7
+40
+7
+41
+65
+67
+49
+38
+0
+49
+39
+4
+15
+99
+7
+42
+7
+43
+65
+67
+49
+38
+0
+49
+39
+4
+15
+99
+7
+44
+7
+45
+65
+67
+49
+38
+0
+49
+39
+4
+15
+99
+7
+46
+7
+47
+65
+67
+49
+38
+0
+49
+39
+4
+15
+99
+7
+48
+7
+49
+65
+67
+49
+38
+0
+49
+39
+4
+11
+I
+a
+I
+0
+I
+0
+I
+0
+n
+p
+50
+x
+7
+CodeRay
+n
+x
+7
+include
+x
+14
+RESERVED_WORDS
+s
+3
+asm
+s
+5
+break
+s
+4
+case
+s
+8
+continue
+s
+7
+default
+s
+2
+do
+s
+4
+else
+s
+3
+...
+x
+9
+const_set
+x
+16
+PREDEFINED_TYPES
+s
+3
+int
+s
+4
+long
+s
+5
+short
+s
+4
+char
+s
+4
+void
+x
+20
+PREDEFINED_CONSTANTS
+s
+3
+EOF
+s
+4
+NULL
+x
+10
+IDENT_KIND
+x
+8
+WordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+n
+x
+8
+reserved
+x
+3
+add
+n
+x
+8
+pre_type
+n
+x
+12
+pre_constant
+x
+22
+test_word_list_example
+M
+1
+n
+n
+x
+22
+test_word_list_example
+i
+17
+5
+7
+0
+45
+1
+2
+7
+3
+64
+49
+4
+1
+47
+49
+5
+2
+11
+I
+4
+I
+0
+I
+0
+I
+0
+n
+p
+6
+x
+8
+pre_type
+x
+10
+IDENT_KIND
+n
+s
+4
+void
+x
+2
+[]
+x
+12
+assert_equal
+p
+5
+I
+0
+I
+1d
+I
+0
+I
+1e
+I
+11
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+x
+14
+test_word_list
+M
+1
+n
+n
+x
+14
+test_word_list
+i
+73
+45
+0
+1
+13
+71
+2
+47
+9
+23
+47
+49
+3
+0
+13
+7
+4
+47
+49
+5
+1
+15
+8
+28
+7
+4
+49
+2
+1
+7
+6
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+9
+1
+47
+49
+10
+2
+15
+5
+7
+4
+20
+0
+7
+11
+64
+49
+9
+1
+47
+49
+10
+2
+11
+I
+5
+I
+1
+I
+0
+I
+0
+n
+p
+12
+x
+8
+WordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+s
+6
+foobar
+x
+8
+reserved
+x
+3
+add
+x
+2
+[]
+x
+12
+assert_equal
+s
+6
+FooBar
+p
+9
+I
+0
+I
+22
+I
+0
+I
+23
+I
+29
+I
+24
+I
+39
+I
+25
+I
+49
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+1
+x
+4
+list
+x
+21
+test_word_list_cached
+M
+1
+n
+n
+x
+21
+test_word_list_cached
+i
+75
+45
+0
+1
+13
+71
+2
+47
+9
+24
+47
+49
+3
+0
+13
+7
+4
+2
+47
+49
+5
+2
+15
+8
+30
+7
+4
+2
+49
+2
+2
+7
+6
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+9
+1
+47
+49
+10
+2
+15
+5
+7
+4
+20
+0
+7
+11
+64
+49
+9
+1
+47
+49
+10
+2
+11
+I
+5
+I
+1
+I
+0
+I
+0
+n
+p
+12
+x
+8
+WordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+s
+6
+foobar
+x
+8
+reserved
+x
+3
+add
+x
+2
+[]
+x
+12
+assert_equal
+s
+6
+FooBar
+p
+9
+I
+0
+I
+28
+I
+0
+I
+29
+I
+2b
+I
+2a
+I
+3b
+I
+2b
+I
+4b
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+1
+x
+4
+list
+x
+28
+test_case_ignoring_word_list
+M
+1
+n
+n
+x
+28
+test_case_ignoring_word_list
+i
+178
+45
+0
+1
+13
+71
+2
+47
+9
+23
+47
+49
+3
+0
+13
+7
+4
+47
+49
+5
+1
+15
+8
+28
+7
+4
+49
+2
+1
+7
+6
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+4
+20
+0
+7
+9
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+12
+64
+49
+10
+1
+47
+49
+11
+2
+15
+45
+0
+13
+13
+71
+2
+47
+9
+112
+47
+49
+3
+0
+13
+7
+4
+47
+49
+5
+1
+15
+8
+117
+7
+4
+49
+2
+1
+7
+12
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+4
+20
+0
+7
+9
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+12
+64
+49
+10
+1
+47
+49
+11
+2
+11
+I
+5
+I
+1
+I
+0
+I
+0
+n
+p
+14
+x
+20
+CaseIgnoringWordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+s
+6
+foobar
+x
+8
+reserved
+x
+3
+add
+s
+3
+foo
+x
+2
+[]
+x
+12
+assert_equal
+s
+6
+FooBar
+n
+p
+19
+I
+0
+I
+2e
+I
+0
+I
+2f
+I
+29
+I
+30
+I
+39
+I
+31
+I
+49
+I
+32
+I
+59
+I
+34
+I
+82
+I
+35
+I
+92
+I
+36
+I
+a2
+I
+37
+I
+b2
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+1
+x
+4
+list
+x
+35
+test_case_ignoring_word_list_cached
+M
+1
+n
+n
+x
+35
+test_case_ignoring_word_list_cached
+i
+182
+45
+0
+1
+13
+71
+2
+47
+9
+24
+47
+49
+3
+0
+13
+7
+4
+2
+47
+49
+5
+2
+15
+8
+30
+7
+4
+2
+49
+2
+2
+7
+6
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+4
+20
+0
+7
+9
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+12
+64
+49
+10
+1
+47
+49
+11
+2
+15
+45
+0
+13
+13
+71
+2
+47
+9
+115
+47
+49
+3
+0
+13
+7
+4
+2
+47
+49
+5
+2
+15
+8
+121
+7
+4
+2
+49
+2
+2
+7
+12
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+4
+20
+0
+7
+9
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+10
+1
+47
+49
+11
+2
+15
+5
+7
+7
+20
+0
+7
+12
+64
+49
+10
+1
+47
+49
+11
+2
+11
+I
+5
+I
+1
+I
+0
+I
+0
+n
+p
+14
+x
+20
+CaseIgnoringWordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+s
+6
+foobar
+x
+8
+reserved
+x
+3
+add
+s
+3
+foo
+x
+2
+[]
+x
+12
+assert_equal
+s
+6
+FooBar
+n
+p
+19
+I
+0
+I
+3a
+I
+0
+I
+3b
+I
+2b
+I
+3c
+I
+3b
+I
+3d
+I
+4b
+I
+3e
+I
+5b
+I
+40
+I
+86
+I
+41
+I
+96
+I
+42
+I
+a6
+I
+43
+I
+b6
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+1
+x
+4
+list
+x
+8
+test_dup
+M
+1
+n
+n
+x
+8
+test_dup
+i
+110
+45
+0
+1
+13
+71
+2
+47
+9
+23
+47
+49
+3
+0
+13
+7
+4
+47
+49
+5
+1
+15
+8
+28
+7
+4
+49
+2
+1
+7
+6
+64
+35
+1
+7
+7
+49
+8
+2
+19
+0
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+9
+1
+47
+49
+10
+2
+15
+20
+0
+49
+11
+0
+19
+1
+15
+20
+1
+7
+6
+64
+35
+1
+7
+12
+49
+8
+2
+15
+5
+7
+12
+20
+1
+7
+6
+64
+49
+9
+1
+47
+49
+10
+2
+15
+5
+7
+7
+20
+0
+7
+6
+64
+49
+9
+1
+47
+49
+10
+2
+11
+I
+6
+I
+2
+I
+0
+I
+0
+n
+p
+13
+x
+8
+WordList
+n
+x
+3
+new
+x
+8
+allocate
+x
+5
+ident
+x
+10
+initialize
+s
+6
+foobar
+x
+8
+reserved
+x
+3
+add
+x
+2
+[]
+x
+12
+assert_equal
+x
+3
+dup
+x
+7
+keyword
+p
+15
+I
+0
+I
+46
+I
+0
+I
+47
+I
+29
+I
+48
+I
+39
+I
+49
+I
+41
+I
+4a
+I
+4e
+I
+4b
+I
+5e
+I
+4c
+I
+6e
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+2
+x
+4
+list
+x
+5
+list2
+p
+45
+I
+2
+I
+6
+I
+b
+I
+9
+I
+e
+I
+a
+I
+23
+I
+b
+I
+2c
+I
+e
+I
+2f
+I
+f
+I
+3e
+I
+10
+I
+47
+I
+13
+I
+4a
+I
+14
+I
+59
+I
+18
+I
+78
+I
+19
+I
+7d
+I
+18
+I
+80
+I
+1a
+I
+85
+I
+18
+I
+88
+I
+1b
+I
+8d
+I
+18
+I
+94
+I
+1d
+I
+a2
+I
+22
+I
+b0
+I
+28
+I
+be
+I
+2e
+I
+cc
+I
+3a
+I
+da
+I
+46
+I
+e8
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+0
+x
+13
+attach_method
+p
+7
+I
+0
+I
+1
+I
+9
+I
+2
+I
+12
+I
+4
+I
+35
+x
+59
+/Users/murphy/ruby/coderay-0.9/test/functional/word_list.rb
+p
+0
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/basic.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/basic.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,122 @@
+require 'test/unit'
+require 'coderay'
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_version
+ assert_nothing_raised do
+ assert_match(/\A\d\.\d\.\d\z/, CodeRay::VERSION)
+ end
+ end
+
+ RUBY_TEST_CODE = 'puts "Hello, World!"'
+
+ RUBY_TEST_TOKENS = [
+ ['puts', :ident],
+ [' ', :space],
+ [:open, :string],
+ ['"', :delimiter],
+ ['Hello, World!', :content],
+ ['"', :delimiter],
+ [:close, :string]
+ ]
+ def test_simple_scan
+ assert_nothing_raised do
+ assert_equal RUBY_TEST_TOKENS, CodeRay.scan(RUBY_TEST_CODE, :ruby).to_ary
+ end
+ end
+
+ RUBY_TEST_HTML = 'puts "' +
+ 'Hello, World!"'
+ def test_simple_highlight
+ assert_nothing_raised do
+ assert_equal RUBY_TEST_HTML, CodeRay.scan(RUBY_TEST_CODE, :ruby).html
+ end
+ end
+
+ def test_duo
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE))
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain => :plain].highlight(RUBY_TEST_CODE))
+ end
+
+ def test_duo_stream
+ assert_equal(RUBY_TEST_CODE,
+ CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE, :stream => true))
+ end
+
+ def test_comment_filter
+ assert_equal <<-EXPECTED, CodeRay.scan(<<-INPUT, :ruby).comment_filter.text
+#!/usr/bin/env ruby
+
+code
+
+more code
+ EXPECTED
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+ INPUT
+ end
+
+ def test_lines_of_code
+ assert_equal 2, CodeRay.scan(<<-INPUT, :ruby).lines_of_code
+#!/usr/bin/env ruby
+=begin
+A multi-line comment.
+=end
+code
+# A single-line comment.
+more code # and another comment, in-line.
+ INPUT
+ rHTML = <<-RHTML
+
+
+
+
+
+ <%= controller.controller_name.titleize %>: <%= controller.action_name %>
+ <%= stylesheet_link_tag 'scaffold' %>
+
+
+
+<%= flash[:notice] %>
+
+
+ <%= yield %>
+
+
+
+
+ RHTML
+ assert_equal 0, CodeRay.scan(rHTML, :html).lines_of_code
+ assert_equal 0, CodeRay.scan(rHTML, :php).lines_of_code
+ assert_equal 0, CodeRay.scan(rHTML, :yaml).lines_of_code
+ assert_equal 4, CodeRay.scan(rHTML, :rhtml).lines_of_code
+ end
+
+ def test_rubygems_not_loaded
+ assert_equal nil, defined? Gem
+ end if ENV['check_rubygems'] && RUBY_VERSION < '1.9'
+
+ def test_list_of_encoders
+ assert_kind_of(Array, CodeRay::Encoders.list)
+ assert CodeRay::Encoders.list.include?('count')
+ end
+
+ def test_list_of_scanners
+ assert_kind_of(Array, CodeRay::Scanners.list)
+ assert CodeRay::Scanners.list.include?('plaintext')
+ end
+
+ def test_scan_a_frozen_string
+ CodeRay.scan RUBY_VERSION, :ruby
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,77 @@
+require 'test/unit'
+$:.unshift 'lib'
+require 'coderay'
+
+begin
+ require 'rubygems' unless defined? Gem
+ gem 'RedCloth', '>= 4.0.3' rescue nil
+ require 'redcloth'
+rescue LoadError
+ warn 'RedCloth not found - skipping for_redcloth tests.'
+end
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_for_redcloth
+ require 'coderay/for_redcloth'
+ assert_equal "puts "Hello, World!" ",
+ RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_no_lang
+ require 'coderay/for_redcloth'
+ assert_equal "puts \"Hello, World!\" ",
+ RedCloth.new('@puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_style
+ require 'coderay/for_redcloth'
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_escapes
+ require 'coderay/for_redcloth'
+ assert_equal '> ',
+ RedCloth.new('@[ruby]>@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. &').to_html
+ end
+
+ def test_for_redcloth_escapes2
+ require 'coderay/for_redcloth'
+ assert_equal "#include <test.h> ",
+ RedCloth.new('@[c]#include @').to_html
+ end
+
+ # See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets.
+ def test_for_redcloth_false_positive
+ require 'coderay/for_redcloth'
+ assert_equal '[project]_dff.skjd ',
+ RedCloth.new('@[project]_dff.skjd@').to_html
+ # false positive, but expected behavior / known issue
+ assert_equal "_dff.skjd ",
+ RedCloth.new('@[ruby]_dff.skjd@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+[project]_dff.skjd
+ BLOCKCODE
+ RedCloth.new('bc. [project]_dff.skjd').to_html
+ end
+
+end if defined? RedCloth
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,11 @@
+require 'test/unit'
+require 'coderay'
+
+class PluginScannerTest < Test::Unit::TestCase
+
+ def test_load
+ require File.join(File.dirname(__FILE__), 'vhdl')
+ assert_equal 'VHDL', CodeRay.scanner(:vhdl).class.name
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/suite.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/suite.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,12 @@
+require 'test/unit'
+
+MYDIR = File.dirname(__FILE__)
+
+$:.unshift 'lib'
+require 'coderay'
+puts "Running basic CodeRay #{CodeRay::VERSION} tests..."
+
+suite = %w(basic load_plugin_scanner word_list)
+for test_case in suite
+ load File.join(MYDIR, test_case + '.rb')
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/vhdl.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/vhdl.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,126 @@
+class VHDL < CodeRay::Scanners::Scanner
+
+ register_for :vhdl
+
+ RESERVED_WORDS = [
+ 'access','after','alias','all','assert','architecture','begin',
+ 'block','body','buffer','bus','case','component','configuration','constant',
+ 'disconnect','downto','else','elsif','end','entity','exit','file','for',
+ 'function','generate','generic','group','guarded','if','impure','in',
+ 'inertial','inout','is','label','library','linkage','literal','loop',
+ 'map','new','next','null','of','on','open','others','out','package',
+ 'port','postponed','procedure','process','pure','range','record','register',
+ 'reject','report','return','select','severity','signal','shared','subtype',
+ 'then','to','transport','type','unaffected','units','until','use','variable',
+ 'wait','when','while','with','note','warning','error','failure','and',
+ 'or','xor','not','nor',
+ 'array'
+ ]
+
+ PREDEFINED_TYPES = [
+ 'bit','bit_vector','character','boolean','integer','real','time','string',
+ 'severity_level','positive','natural','signed','unsigned','line','text',
+ 'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector','qsim_state',
+ 'qsim_state_vector','qsim_12state','qsim_12state_vector','qsim_strength',
+ 'mux_bit','mux_vector','reg_bit','reg_vector','wor_bit','wor_vector'
+ ]
+
+ PREDEFINED_CONSTANTS = [
+
+ ]
+
+ IDENT_KIND = CodeRay::CaseIgnoringWordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
+
+ def scan_tokens tokens, options
+
+ state = :initial
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if scan(/ \s+ | \\\n /x)
+ kind = :space
+
+ elsif scan(/-- .*/x)
+ kind = :comment
+
+ elsif scan(/ [-+*\/=<>?:;,!&^|()\[\]{}~%]+ | \.(?!\d) /x)
+ kind = :operator
+
+ elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
+ kind = IDENT_KIND[match.downcase]
+
+ elsif match = scan(/[a-z]?"/i)
+ tokens << [:open, :string]
+ state = :string
+ kind = :delimiter
+
+ elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
+ kind = :char
+
+ elsif scan(/(?:\d+)(?![.eEfF])/)
+ kind = :integer
+
+ elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
+ kind = :float
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string
+ if scan(/[^\\\n"]+/)
+ kind = :content
+ elsif scan(/"/)
+ tokens << ['"', :delimiter]
+ tokens << [:close, :string]
+ state = :initial
+ next
+ elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+ elsif scan(/ \\ | $ /x)
+ tokens << [:close, :string]
+ kind = :error
+ state = :initial
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ end
+
+ if state == :string
+ tokens << [:close, :string]
+ end
+
+ tokens
+ end
+
+end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/coderay-0.9.7/test/functional/word_list.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/word_list.rb Tue Feb 08 13:51:46 2011 +0000
@@ -0,0 +1,79 @@
+require 'test/unit'
+require 'coderay'
+
+class WordListTest < Test::Unit::TestCase
+
+ include CodeRay
+
+ # define word arrays
+ RESERVED_WORDS = %w[
+ asm break case continue default do else
+ ...
+ ]
+
+ PREDEFINED_TYPES = %w[
+ int long short char void
+ ...
+ ]
+
+ PREDEFINED_CONSTANTS = %w[
+ EOF NULL ...
+ ]
+
+ # make a WordList
+ IDENT_KIND = WordList.new(:ident).
+ add(RESERVED_WORDS, :reserved).
+ add(PREDEFINED_TYPES, :pre_type).
+ add(PREDEFINED_CONSTANTS, :pre_constant)
+
+ def test_word_list_example
+ assert_equal :pre_type, IDENT_KIND['void']
+ # assert_equal :pre_constant, IDENT_KIND['...'] # not specified
+ end
+
+ def test_word_list
+ list = WordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ assert_equal :ident, list['FooBar']
+ end
+
+ def test_word_list_cached
+ list = WordList.new(:ident, true).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ assert_equal :ident, list['FooBar']
+ end
+
+ def test_case_ignoring_word_list
+ list = CaseIgnoringWordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+
+ list = CaseIgnoringWordList.new(:ident).add(['FooBar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+ end
+
+ def test_case_ignoring_word_list_cached
+ list = CaseIgnoringWordList.new(:ident, true).add(['foobar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+
+ list = CaseIgnoringWordList.new(:ident, true).add(['FooBar'], :reserved)
+ assert_equal :ident, list['foo']
+ assert_equal :reserved, list['foobar']
+ assert_equal :reserved, list['FooBar']
+ end
+
+ def test_dup
+ list = WordList.new(:ident).add(['foobar'], :reserved)
+ assert_equal :reserved, list['foobar']
+ list2 = list.dup
+ list2.add(%w[foobar], :keyword)
+ assert_equal :keyword, list2['foobar']
+ assert_equal :reserved, list['foobar']
+ end
+
+end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/rubytree-0.5.2/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
48b46ff6764d5b76e1ad138669923aff
2009-11-25T05:36:44.792571Z
3090
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
954df52967073c3833d9c565bb4b1ea8
2009-11-25T05:36:44.792571Z
3090
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.527765Z
+2011-02-08T13:45:46.000000Z
f3e96d4b9eeb3d0c4d841c7c7ea6259c
2009-11-25T05:36:44.792571Z
3090
@@ -137,7 +137,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
7a9a6ee34490c5d9c4148c7cf8f85034
2009-11-25T05:36:44.792571Z
3090
@@ -171,7 +171,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
82301a43d2504d992ba1cfd7839b2d7e
2009-11-25T05:36:44.792571Z
3090
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
b15b8164d281daa7c7028cdda9635950
2009-11-25T05:36:44.792571Z
3090
@@ -242,7 +242,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
25d0fdd6b9633f784544a5c000dc1351
2009-11-25T05:36:44.792571Z
3090
@@ -276,7 +276,7 @@
-2010-09-23T14:37:45.523822Z
+2011-02-08T13:45:46.000000Z
13d490389c788748b3931b9e09b2b4d4
2009-11-25T05:36:44.792571Z
3090
@@ -310,7 +310,7 @@
-2010-09-23T14:37:45.519811Z
+2011-02-08T13:45:46.000000Z
5906fb8bdb4197fe19171f795952ed9d
2009-11-25T05:36:44.792571Z
3090
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/rubytree-0.5.2/lib/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.527765Z
+2011-02-08T13:45:46.000000Z
46e46766767dc3a96b3019d385a5af83
2009-11-25T05:36:44.792571Z
3090
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib/tree
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.527765Z
+2011-02-08T13:45:46.000000Z
54320f0ffbb41fa9d99ab2d617636ea1
2009-11-25T05:36:44.792571Z
3090
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/gems/rubytree-0.5.2/test/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.531765Z
+2011-02-08T13:45:46.000000Z
bd5257614b958bab00916feffc4fa9ae
2009-11-25T05:36:44.792571Z
3090
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.531765Z
+2011-02-08T13:45:46.000000Z
b9b4a1d43e859491e80fb1e2c7499d20
2009-11-25T05:36:44.792571Z
3090
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/.svn/all-wcprops
--- a/vendor/plugins/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 39
-/svn/!svn/ver/4602/trunk/vendor/plugins
+/svn/!svn/ver/4739/trunk/vendor/plugins
END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/.svn/entries
--- a/vendor/plugins/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins
http://redmine.rubyforge.org/svn
-2011-01-01T11:45:12.617336Z
-4602
+2011-01-22T13:18:01.557255Z
+4739
jplang
@@ -44,9 +44,6 @@
classic_pagination
dir
-coderay-0.9.2
-dir
-
acts_as_versioned
dir
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_activity_provider/.svn/entries
--- a/vendor/plugins/acts_as_activity_provider/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_activity_provider/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.531765Z
+2011-02-08T13:45:46.000000Z
779d73c171dc111df084a0798cca73e2
2008-07-27T17:54:09.197937Z
1701
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_activity_provider/lib/.svn/entries
--- a/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.535765Z
+2011-02-08T13:45:46.000000Z
21fbeb28c4ce556d2534306b96be9497
2008-12-08T18:20:26.452857Z
2114
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_attachable/.svn/entries
--- a/vendor/plugins/acts_as_attachable/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_attachable/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.535765Z
+2011-02-08T13:45:46.000000Z
b215588c95e69b4bb8f91ad91606bfbe
2008-12-09T16:54:46.963649Z
2116
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_attachable/lib/.svn/entries
--- a/vendor/plugins/acts_as_attachable/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_attachable/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.535765Z
+2011-02-08T13:45:46.000000Z
982227c44f1fe848c8aeed862ea027f3
2010-03-03T17:05:00.967826Z
3528
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_customizable/.svn/entries
--- a/vendor/plugins/acts_as_customizable/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.539808Z
+2011-02-08T13:45:46.000000Z
0d1f178b7636d6712b38304954530928
2008-06-27T20:13:56.888432Z
1592
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_customizable/lib/.svn/entries
--- a/vendor/plugins/acts_as_customizable/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:46.000000Z
cef2f70b94f09391acec6dea08160454
2010-12-10T10:48:16.342425Z
4481
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_event/.svn/entries
--- a/vendor/plugins/acts_as_event/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_event/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.539808Z
+2011-02-08T13:45:46.000000Z
60df7ab698ddd0c3701bb0efbb8233cf
2007-08-29T16:52:35.680643Z
674
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_event/lib/.svn/entries
--- a/vendor/plugins/acts_as_event/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_event/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.543762Z
+2011-02-08T13:45:46.000000Z
ca8e33777d59976db870f71defe5f66d
2010-04-30T10:45:21.145380Z
3703
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_list/.svn/entries
--- a/vendor/plugins/acts_as_list/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_list/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.543762Z
+2011-02-08T13:45:46.000000Z
0bdbdc825f80fda1a94852a82b68ffd4
2007-12-10T17:58:07.273873Z
975
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.543762Z
+2011-02-08T13:45:46.000000Z
42212b5cb681c9888d56f9c0f36e1e02
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_list/lib/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_list/lib/active_record/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record/acts
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.547761Z
+2011-02-08T13:45:46.000000Z
a3ee41e8bed56868bc2e4ab2cb7df73a
2009-02-26T09:21:41.696815Z
2526
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_list/test/.svn/entries
--- a/vendor/plugins/acts_as_list/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_list/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.551763Z
+2011-02-08T13:45:46.000000Z
3d41debf5c631e88295d337507c3b5b6
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_searchable/.svn/entries
--- a/vendor/plugins/acts_as_searchable/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_searchable/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.551763Z
+2011-02-08T13:45:46.000000Z
7512fe68c7dfbb57e956d22b9aa8f8ed
2007-09-27T17:28:22.154371Z
766
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_searchable/lib/.svn/entries
--- a/vendor/plugins/acts_as_searchable/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_searchable/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.551763Z
+2011-02-08T13:45:46.000000Z
f282f30a34a9560d7ef3d5883aba5fe9
2010-02-17T20:20:51.097274Z
3445
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/.svn/entries
--- a/vendor/plugins/acts_as_tree/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.555763Z
+2011-02-08T13:45:46.000000Z
77667cb4c41516750075eefb98896a93
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.555763Z
+2011-02-08T13:45:46.000000Z
581c104f87fe90cfe9a7d1d41d77c84f
2007-12-10T17:58:07.273873Z
975
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.555763Z
+2011-02-08T13:45:46.000000Z
918c85e850eb84259c178529b9aafd62
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/lib/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/lib/active_record/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record/acts
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.559786Z
+2011-02-08T13:45:46.000000Z
544900d884182d6888334ce14323bef0
2009-04-21T12:19:56.547537Z
2676
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/test/.svn/entries
--- a/vendor/plugins/acts_as_tree/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -137,7 +137,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
7bd3d48984d0e563b9f5e20ca8fdff81
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_tree/test/fixtures/.svn/entries
--- a/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.563764Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_versioned/.svn/entries
--- a/vendor/plugins/acts_as_versioned/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
8aae554c93cc60ef98cb3da2dd7c1b4b
2007-03-04T13:40:21.895320Z
290
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
1f57ce7fac2d625797b9ec6d6480cf5b
2008-07-04T17:58:14.743502Z
1623
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
1d117218f55938f9c75f1f814a4915d1
2007-03-04T13:40:21.895320Z
290
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
3aa6f483cf322e248d4a1281160f8845
2007-03-04T13:40:21.895320Z
290
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
e4ba7226e637685b5cca7a9cc5c05af2
2007-03-04T13:40:21.895320Z
290
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.567763Z
+2011-02-08T13:45:46.000000Z
06ee73d1b4ad386b681f88b9326a0685
2007-03-04T13:40:21.895320Z
290
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_versioned/lib/.svn/entries
--- a/vendor/plugins/acts_as_versioned/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.571763Z
+2011-02-08T13:45:46.000000Z
474fc02132fce15712540924bb7b22cf
2008-07-04T17:58:14.743502Z
1623
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_versioned/test/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
8a2eaa42c29dc84e0c018e78c99987f1
2008-07-04T17:58:14.743502Z
1623
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
df4118ed0edd4b3a0bae0cbb3b7a8a6b
2007-03-04T13:40:21.895320Z
290
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.571763Z
+2011-02-08T13:45:46.000000Z
99f5a4aa22b79a8f8c7521a0b1e9ec3e
2008-07-04T17:58:14.743502Z
1623
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.571763Z
+2011-02-08T13:45:46.000000Z
c5ac373bf98e48576df3a63ab4349883
2007-03-04T13:40:21.895320Z
290
@@ -171,7 +171,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
eb28101ab94f672b3a99998fc03f0d38
2008-07-04T17:58:14.743502Z
1623
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
6052582a74186e97a71e6d50ff1c3558
2007-03-04T13:40:21.895320Z
290
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
35aca448cc30c958ad2f3a8130903701
2007-03-04T13:40:21.895320Z
290
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
df240cb0129f29834aea167ea97df5c9
2007-03-04T13:40:21.895320Z
290
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
3e63e88f04d92531412a5e328670313d
2007-03-04T13:40:21.895320Z
290
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
9e0c65a239dc63caf3ba5b61e5acd86b
2007-03-04T13:40:21.895320Z
290
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
c9631a233cff08e617f783f2c5d4ebcb
2007-03-04T13:40:21.895320Z
290
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
6cbb9a0d4b22160edce9cdd270943fcd
2008-07-04T17:58:14.743502Z
1623
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
7845068722476900746d101729c30187
2007-03-04T13:40:21.895320Z
290
@@ -307,7 +307,7 @@
-2010-09-23T14:37:45.575760Z
+2011-02-08T13:45:46.000000Z
ebfb47357586fa12e4524a65ba0a714a
2007-03-04T13:40:21.895320Z
290
@@ -341,7 +341,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
a93535c95869678b16df898b8de4259f
2007-03-04T13:40:21.895320Z
290
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures/migrations
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.579760Z
+2011-02-08T13:45:46.000000Z
8fca6192aeeba1c8456bd6ac6199839f
2007-03-04T13:40:21.895320Z
290
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_watchable/.svn/entries
--- a/vendor/plugins/acts_as_watchable/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_watchable/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.583759Z
+2011-02-08T13:45:46.000000Z
7051267daa625f991f2b604afde255ff
2007-04-21T12:08:31.130506Z
453
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/acts_as_watchable/lib/.svn/entries
--- a/vendor/plugins/acts_as_watchable/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/acts_as_watchable/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.583759Z
+2011-02-08T13:45:46.000000Z
30f73616865f02dadce09f9511269b70
2010-06-20T18:41:30.111362Z
3803
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/.svn/all-wcprops
--- a/vendor/plugins/awesome_nested_set/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 58
-/svn/!svn/ver/4406/trunk/vendor/plugins/awesome_nested_set
+/svn/!svn/ver/4735/trunk/vendor/plugins/awesome_nested_set
END
awesome_nested_set.gemspec
K 25
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set
http://redmine.rubyforge.org/svn
-2010-11-14T16:24:21.989522Z
-4406
+2011-01-22T11:46:15.415880Z
+4735
jplang
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.587807Z
+2011-02-08T13:45:46.000000Z
c1f9a7c7c81a0c9150d260757c895ab3
2008-12-20T12:22:38.158335Z
2149
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.587807Z
+2011-02-08T13:45:46.000000Z
75ea4a8e8109afdbce9214ac3e9aa40a
2008-12-20T12:22:38.158335Z
2149
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.587807Z
+2011-02-08T13:45:46.000000Z
5d897290320b00753c366c59f40b213e
2008-12-20T12:22:38.158335Z
2149
@@ -137,7 +137,7 @@
-2010-09-23T14:37:45.587807Z
+2011-02-08T13:45:46.000000Z
af5f1806895c92bb03e8855a96d13a64
2008-12-20T12:22:38.158335Z
2149
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.587807Z
+2011-02-08T13:45:46.000000Z
ba826ae68593d063b726b4e66dcb1e8f
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/lib/.svn/all-wcprops
--- a/vendor/plugins/awesome_nested_set/lib/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000
@@ -1,11 +1,11 @@
K 25
svn:wc:ra_dav:version-url
V 62
-/svn/!svn/ver/4406/trunk/vendor/plugins/awesome_nested_set/lib
+/svn/!svn/ver/4735/trunk/vendor/plugins/awesome_nested_set/lib
END
awesome_nested_set.rb
K 25
svn:wc:ra_dav:version-url
V 84
-/svn/!svn/ver/4406/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
+/svn/!svn/ver/4735/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/lib/.svn/entries
--- a/vendor/plugins/awesome_nested_set/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib
http://redmine.rubyforge.org/svn
-2010-11-14T16:24:21.989522Z
-4406
+2011-01-22T11:46:15.415880Z
+4735
jplang
@@ -32,10 +32,10 @@
-2010-11-19T13:04:50.944921Z
-e8fd989882fd3a10519da66c2a73e982
-2010-11-14T16:24:21.989522Z
-4406
+2011-02-08T13:49:51.000000Z
+30e0732ab58f6380af97e08261871486
+2011-01-22T11:46:15.415880Z
+4735
jplang
has-props
@@ -58,7 +58,7 @@
-21530
+21619
awesome_nested_set
dir
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/lib/.svn/text-base/awesome_nested_set.rb.svn-base
--- a/vendor/plugins/awesome_nested_set/lib/.svn/text-base/awesome_nested_set.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/text-base/awesome_nested_set.rb.svn-base Tue Feb 08 13:51:46 2011 +0000
@@ -444,17 +444,19 @@
# Prunes a branch off of the tree, shifting all of the elements on the right
# back to the left so the counts still work.
def prune_from_tree
- return if right.nil? || left.nil?
- diff = right - left + 1
+ return if right.nil? || left.nil? || !self.class.exists?(id)
delete_method = acts_as_nested_set_options[:dependent] == :destroy ?
:destroy_all : :delete_all
self.class.base_class.transaction do
+ reload_nested_set
nested_set_scope.send(delete_method,
["#{quoted_left_column_name} > ? AND #{quoted_right_column_name} < ?",
left, right]
)
+ reload_nested_set
+ diff = right - left + 1
nested_set_scope.update_all(
["#{quoted_left_column_name} = (#{quoted_left_column_name} - ?)", diff],
["#{quoted_left_column_name} >= ?", right]
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb Tue Feb 08 13:51:46 2011 +0000
@@ -444,17 +444,19 @@
# Prunes a branch off of the tree, shifting all of the elements on the right
# back to the left so the counts still work.
def prune_from_tree
- return if right.nil? || left.nil?
- diff = right - left + 1
+ return if right.nil? || left.nil? || !self.class.exists?(id)
delete_method = acts_as_nested_set_options[:dependent] == :destroy ?
:destroy_all : :delete_all
self.class.base_class.transaction do
+ reload_nested_set
nested_set_scope.send(delete_method,
["#{quoted_left_column_name} > ? AND #{quoted_right_column_name} < ?",
left, right]
)
+ reload_nested_set
+ diff = right - left + 1
nested_set_scope.update_all(
["#{quoted_left_column_name} = (#{quoted_left_column_name} - ?)", diff],
["#{quoted_left_column_name} >= ?", right]
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.591804Z
+2011-02-08T13:45:46.000000Z
d15393e7ec4757df0e53641d9a8d76f4
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.591804Z
+2011-02-08T13:45:46.000000Z
d4a9622144313fa6b56117a6c1f11e61
2008-12-20T12:22:38.158335Z
2149
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.591804Z
+2011-02-08T13:45:46.000000Z
cebe8bf25e6f479251be38c80a246574
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/rails/.svn/entries
--- a/vendor/plugins/awesome_nested_set/rails/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/rails/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/rails
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.595761Z
+2011-02-08T13:45:46.000000Z
d5995cbfa2abdc12b57c44d69dc0085b
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/test/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.603759Z
+2011-02-08T13:45:46.000000Z
41b65aff686211d45ba085c1b0791218
2008-12-20T12:22:38.158335Z
2149
@@ -75,7 +75,7 @@
-2010-09-23T14:37:45.599759Z
+2011-02-08T13:45:46.000000Z
d177339aefb3c4a8f280efff48c974b6
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/awesome_nested_set
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.595761Z
+2011-02-08T13:45:46.000000Z
03a414e3247544a5a2334aed005764f3
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/test/db/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/db/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/db/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/db
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.599759Z
+2011-02-08T13:45:46.000000Z
ae23aecda935bb66e29aa4f02ea9de0a
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.599759Z
+2011-02-08T13:45:46.000000Z
359889e11314c2969bdf7e37475bdc62
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.603759Z
+2011-02-08T13:45:46.000000Z
460e90d6f219f339e8e4c64aaae0063c
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.599759Z
+2011-02-08T13:45:46.000000Z
4b6a06e11c21a3aadd09e60dee443110
2008-12-20T12:22:38.158335Z
2149
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.603759Z
+2011-02-08T13:45:46.000000Z
e4eb5dbc7f2a2aa2fee79dba9210e769
2008-12-20T12:22:38.158335Z
2149
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.603759Z
+2011-02-08T13:45:46.000000Z
e8b507fd94ed89b9997c3f9f137290cf
2008-12-20T12:22:38.158335Z
2149
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/classic_pagination/.svn/entries
--- a/vendor/plugins/classic_pagination/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/classic_pagination/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
b14424b71d2f606a775061237c8226f1
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
181539722e198d92992a94f40310f4fc
2007-12-10T17:58:07.273873Z
975
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
3ef206f381b42341342908fcc0001210
2007-12-09T21:53:46.068689Z
966
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
1c88d6bc27aa809cd6ef26543c18b1e6
2007-12-10T17:58:07.273873Z
975
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
f1df690ff1ea0da74f8fe161f50722ad
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/classic_pagination/lib/.svn/entries
--- a/vendor/plugins/classic_pagination/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/classic_pagination/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
535b7515c14fb3964e97be32c2d36415
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.607804Z
+2011-02-08T13:45:46.000000Z
d770c57066726c423cc9de4ca5b552cd
2008-12-14T15:36:59.418123Z
2134
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/classic_pagination/test/.svn/entries
--- a/vendor/plugins/classic_pagination/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/classic_pagination/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.623761Z
+2011-02-08T13:45:46.000000Z
50c7fabeb3d6728ce24eada59d5b2b67
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.623761Z
+2011-02-08T13:45:46.000000Z
0a02d28a37b53a8e19af7935db5be1a8
2007-12-10T17:58:07.273873Z
975
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.623761Z
+2011-02-08T13:45:46.000000Z
597b7501984a5ecd10242163d06c33e7
2007-12-10T17:58:07.273873Z
975
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/classic_pagination/test/fixtures/.svn/entries
--- a/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
4e923be7fd534a67635192bcfcbed5cf
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
021192cd31a5c3a39cbe7bd14144425a
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
5953f128689c82c1d5c9ab2709a682e4
2007-12-10T17:58:07.273873Z
975
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
cc2715c9793cffccefbac86e97dd5a08
2007-12-10T17:58:07.273873Z
975
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
92e8d8a3cd6b419bdabbafc91be07b13
2007-12-10T17:58:07.273873Z
975
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
182661632986d51f75c49d74b19df40c
2007-12-10T17:58:07.273873Z
975
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
f1bf372057211d4a6d86499e561d903c
2007-12-10T17:58:07.273873Z
975
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
98f978d0e16223524ee8dc769136a3c4
2007-12-10T17:58:07.273873Z
975
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
3605b2a8f1cf10cbc34343bd7c49330d
2007-12-10T17:58:07.273873Z
975
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
dccebb95780c20b896fe26306d904e9d
2007-12-10T17:58:07.273873Z
975
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
318c27008dc35148da64e32ff9bf53c7
2007-12-10T17:58:07.273873Z
975
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.619761Z
+2011-02-08T13:45:46.000000Z
78b664b5dbb72751888e7f6bf4cd12f8
2007-12-09T21:53:46.068689Z
966
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2
-END
-LICENSE
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/LICENSE
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-LICENSE
-file
-
-
-
-
-2010-09-23T14:37:45.623761Z
-071d975e884a936b40eab0b865ea4da1
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-26534
-
-lib
-dir
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/.svn/prop-base/LICENSE.svn-base
--- a/vendor/plugins/coderay-0.9.2/.svn/prop-base/LICENSE.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/.svn/text-base/LICENSE.svn-base
--- a/vendor/plugins/coderay-0.9.2/.svn/text-base/LICENSE.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/LICENSE
--- a/vendor/plugins/coderay-0.9.2/LICENSE Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 57
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib
-END
-coderay.rb
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay.rb
-END
-README
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/README
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-coderay
-dir
-
-coderay.rb
-file
-
-
-
-
-2010-09-23T14:37:45.627760Z
-c736c3ed620d59c1c6799d6fa340b0af
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10050
-
-README
-file
-
-
-
-
-2010-09-23T14:37:45.627760Z
-0d50df22acd760dc1905c7ef55e509e6
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4998
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/prop-base/README.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/prop-base/README.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/prop-base/coderay.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/prop-base/coderay.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/text-base/README.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/text-base/README.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-= CodeRay
-
-[- Tired of blue'n'gray? Try the original version of this documentation on
-coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
-
-== About
-CodeRay is a Ruby library for syntax highlighting.
-
-Syntax highlighting means: You put your code in, and you get it back colored;
-Keywords, strings, floats, comments - all in different colors.
-And with line numbers.
-
-*Syntax* *Highlighting*...
-* makes code easier to read and maintain
-* lets you detect syntax errors faster
-* helps you to understand the syntax of a language
-* looks nice
-* is what everybody should have on their website
-* solves all your problems and makes the girls run after you
-
-Version: 0.9.2
-Author:: murphy (Kornelius Kalnbach)
-Contact:: murphy rubychan de
-Website:: coderay.rubychan.de[http://coderay.rubychan.de]
-License:: GNU LGPL; see LICENSE file in the main directory.
-
-== Installation
-
-You need RubyGems[http://rubyforge.org/frs/?group_id=126].
-
- % gem install coderay
-
-
-=== Dependencies
-
-CodeRay needs Ruby 1.8.6 or later. It also runs with Ruby 1.9.1+ and JRuby 1.1+.
-
-
-== Example Usage
-(Forgive me, but this is not highlighted.)
-
- require 'coderay'
-
- tokens = CodeRay.scan "puts 'Hello, world!'", :ruby
- page = tokens.html :line_numbers => :inline, :wrap => :page
- puts page
-
-
-== Documentation
-
-See CodeRay.
-
-Please report errors in this documentation to .
-
-
-== Credits
-
-=== Special Thanks to
-
-* licenser (Heinz N. Gies) for ending my QBasic career, inventing the Coder
- project and the input/output plugin system.
- CodeRay would not exist without him.
-* bovi (Daniel Bovensiepen) for helping me out on various occasions.
-
-=== Thanks to
-
-* Caleb Clausen for writing RubyLexer (see
- http://rubyforge.org/projects/rubylexer) and lots of very interesting mail
- traffic
-* birkenfeld (Georg Brandl) and mitsuhiku (Arnim Ronacher) for PyKleur, now pygments.
- You guys rock!
-* Jamis Buck for writing Syntax (see http://rubyforge.org/projects/syntax)
- I got some useful ideas from it.
-* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
- coding CodeRay, but also gave me a wonderful target to reach for the Ruby
- scanner.
-* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
-* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
-* Dethix from ruby-mine.de
-* zickzackw
-* Dookie (who is no longer with us...) and Leonidas from http://www.python-forum.de
-* Andreas Schwarz for finding out that CaseIgnoringWordList was not case
- ignoring! Such things really make you write tests.
-* closure for the first version of the Scheme scanner.
-* Stefan Walk for the first version of the JavaScript and PHP scanners.
-* Josh Goebel for another version of the JavaScript scanner, a SQL and a Diff scanner.
-* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
-* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
-* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
-* Andreas Neuhaus for pointing out a markup bug in coderay/for_redcloth.
-* 0xf30fc7 for the FileType patch concerning Delphi file extensions.
-* The folks at redmine.org - thank you for using and fixing CodeRay!
-* Keith Pitt for his SQL scanners
-* Rob Aldred for the terminal encoder
-* Trans for pointing out $DEBUG dependencies
-* Flameeyes for finding that Term::ANSIColor was obsolete
-* matz and all Ruby gods and gurus
-* The inventors of: the computer, the internet, the true color display, HTML &
- CSS, VIM, Ruby, pizza, microwaves, guitars, scouting, programming, anime,
- manga, coke and green ice tea.
-
-Where would we be without all those people?
-
-=== Created using
-
-* Ruby[http://ruby-lang.org/]
-* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
- Triella, born Rico (my new MacBook); as well as
- Seras and Hikari (my PCs)
-* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
- VIM[http://vim.org] and TextMate[http://macromates.com]
-* Subversion[http://subversion.tigris.org/]
-* Redmine[http://redmine.org/]
-* Firefox[http://www.mozilla.org/products/firefox/],
- Firebug[http://getfirebug.com/], Safari[http://www.apple.com/safari/], and
- Thunderbird[http://www.mozilla.org/products/thunderbird/]
-* RubyGems[http://docs.rubygems.org/] and Rake[http://rake.rubyforge.org/]
-* TortoiseSVN[http://tortoisesvn.tigris.org/] using Apache via
- XAMPP[http://www.apachefriends.org/en/xampp.html]
-* RDoc (though I'm quite unsatisfied with it)
-* Microsoft Windows (yes, I confess!) and MacOS X
-* GNUWin32, MinGW and some other tools to make the shell under windows a bit
- less useless
-* Term::ANSIColor[http://term-ansicolor.rubyforge.org/]
-* PLEAC[http://pleac.sourceforge.net/] code examples
-
-=== Free
-
-* As you can see, CodeRay was created under heavy use of *free* software.
-* So CodeRay is also *free*.
-* If you use CodeRay to create software, think about making this software
- *free*, too.
-* Thanks :)
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/.svn/text-base/coderay.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/text-base/coderay.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-# = CodeRay Library
-#
-# CodeRay is a Ruby library for syntax highlighting.
-#
-# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
-# fast and efficient.
-#
-# See README.
-#
-# It consists mainly of
-# * the main engine: CodeRay (Scanners::Scanner, Tokens/TokenStream, Encoders::Encoder), PluginHost
-# * the scanners in CodeRay::Scanners
-# * the encoders in CodeRay::Encoders
-#
-# Here's a fancy graphic to light up this gray docu:
-#
-# http://cycnus.de/raindark/coderay/scheme.png
-#
-# == Documentation
-#
-# See CodeRay, Encoders, Scanners, Tokens.
-#
-# == Usage
-#
-# Remember you need RubyGems to use CodeRay, unless you have it in your load path. Run Ruby with
-# -rubygems option if required.
-#
-# === Highlight Ruby code in a string as html
-#
-# require 'coderay'
-# print CodeRay.scan('puts "Hello, world!"', :ruby).html
-#
-# # prints something like this:
-# puts "Hello, world!"
-#
-#
-# === Highlight C code from a file in a html div
-#
-# require 'coderay'
-# print CodeRay.scan(File.read('ruby.h'), :c).div
-# print CodeRay.scan_file('ruby.h').html.div
-#
-# You can include this div in your page. The used CSS styles can be printed with
-#
-# % coderay_stylesheet
-#
-# === Highlight without typing too much
-#
-# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
-#
-# % ruby -rubygems /path/to/coderay/coderay.rb > example.html
-#
-# and look at the file it created in your browser.
-#
-# = CodeRay Module
-#
-# The CodeRay module provides convenience methods for the engine.
-#
-# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
-# simply lower-case symbols, like :python or :html.
-# * All methods take an optional hash as last parameter, +options+, that is send to
-# the Encoder / Scanner.
-# * Input and language are always sorted in this order: +code+, +lang+.
-# (This is in alphabetical order, if you need a mnemonic ;)
-#
-# You should be able to highlight everything you want just using these methods;
-# so there is no need to dive into CodeRay's deep class hierarchy.
-#
-# The examples in the demo directory demonstrate common cases using this interface.
-#
-# = Basic Access Ways
-#
-# Read this to get a general view what CodeRay provides.
-#
-# == Scanning
-#
-# Scanning means analysing an input string, splitting it up into Tokens.
-# Each Token knows about what type it is: string, comment, class name, etc.
-#
-# Each +lang+ (language) has its own Scanner; for example, :ruby code is
-# handled by CodeRay::Scanners::Ruby.
-#
-# CodeRay.scan:: Scan a string in a given language into Tokens.
-# This is the most common method to use.
-# CodeRay.scan_file:: Scan a file and guess the language using FileType.
-#
-# The Tokens object you get from these methods can encode itself; see Tokens.
-#
-# == Encoding
-#
-# Encoding means compiling Tokens into an output. This can be colored HTML or
-# LaTeX, a textual statistic or just the number of non-whitespace tokens.
-#
-# Each Encoder provides output in a specific +format+, so you select Encoders via
-# formats like :html or :statistic.
-#
-# CodeRay.encode:: Scan and encode a string in a given language.
-# CodeRay.encode_tokens:: Encode the given tokens.
-# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
-#
-# == Streaming
-#
-# Streaming saves RAM by running Scanner and Encoder in some sort of
-# pipe mode; see TokenStream.
-#
-# CodeRay.scan_stream:: Scan in stream mode.
-#
-# == All-in-One Encoding
-#
-# CodeRay.encode:: Highlight a string with a given input and output format.
-#
-# == Instanciating
-#
-# You can use an Encoder instance to highlight multiple inputs. This way, the setup
-# for this Encoder must only be done once.
-#
-# CodeRay.encoder:: Create an Encoder instance with format and options.
-# CodeRay.scanner:: Create an Scanner instance for lang, with '' as default code.
-#
-# To make use of CodeRay.scanner, use CodeRay::Scanner::code=.
-#
-# The scanning methods provide more flexibility; we recommend to use these.
-#
-# == Reusing Scanners and Encoders
-#
-# If you want to re-use scanners and encoders (because that is faster), see
-# CodeRay::Duo for the most convenient (and recommended) interface.
-module CodeRay
-
- $CODERAY_DEBUG ||= false
-
- # Version: Major.Minor.Teeny[.Revision]
- # Major: 0 for pre-stable, 1 for stable
- # Minor: feature milestone
- # Teeny: development state, 0 for pre-release
- # Revision: Subversion Revision number (generated on rake gem:make)
- VERSION = '0.9.2'
-
- require 'coderay/tokens'
- require 'coderay/token_classes'
- require 'coderay/scanner'
- require 'coderay/encoder'
- require 'coderay/duo'
- require 'coderay/style'
-
-
- class << self
-
- # Scans the given +code+ (a String) with the Scanner for +lang+.
- #
- # This is a simple way to use CodeRay. Example:
- # require 'coderay'
- # page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
- #
- # See also demo/demo_simple.
- def scan code, lang, options = {}, &block
- scanner = Scanners[lang].new code, options, &block
- scanner.tokenize
- end
-
- # Scans +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
- # determine it. If it cannot find out what type it is, it uses
- # CodeRay::Scanners::Plaintext.
- #
- # Calls CodeRay.scan.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.scan_file('some_c_code.c').html
- def scan_file filename, lang = :auto, options = {}, &block
- file = IO.read filename
- if lang == :auto
- require 'coderay/helpers/file_type'
- lang = FileType.fetch filename, :plaintext, true
- end
- scan file, lang, options = {}, &block
- end
-
- # Scan the +code+ (a string) with the scanner for +lang+.
- #
- # Calls scan.
- #
- # See CodeRay.scan.
- def scan_stream code, lang, options = {}, &block
- options[:stream] = true
- scan code, lang, options, &block
- end
-
- # Encode a string in Streaming mode.
- #
- # This starts scanning +code+ with the the Scanner for +lang+
- # while encodes the output with the Encoder for +format+.
- # +options+ will be passed to the Encoder.
- #
- # See CodeRay::Encoder.encode_stream
- def encode_stream code, lang, format, options = {}
- encoder(format, options).encode_stream code, lang, options
- end
-
- # Encode a string.
- #
- # This scans +code+ with the the Scanner for +lang+ and then
- # encodes it with the Encoder for +format+.
- # +options+ will be passed to the Encoder.
- #
- # See CodeRay::Encoder.encode
- def encode code, lang, format, options = {}
- encoder(format, options).encode code, lang, options
- end
-
- # Highlight a string into a HTML .
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight code, lang, options = { :css => :class }, format = :div
- encode code, lang, format, options
- end
-
- # Encode pre-scanned Tokens.
- # Use this together with CodeRay.scan:
- #
- # require 'coderay'
- #
- # # Highlight a short Ruby code example in a HTML span
- # tokens = CodeRay.scan '1 + 2', :ruby
- # puts CodeRay.encode_tokens(tokens, :span)
- #
- def encode_tokens tokens, format, options = {}
- encoder(format, options).encode_tokens tokens, options
- end
-
- # Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # See CodeRay.scan_file.
- # Notice that the second argument is the output +format+, not the input language.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.encode_file 'some_c_code.c', :html
- def encode_file filename, format, options = {}
- tokens = scan_file filename, :auto, get_scanner_options(options)
- encode_tokens tokens, format, options
- end
-
- # Highlight a file into a HTML .
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight_file filename, options = { :css => :class }, format = :div
- encode_file filename, format, options
- end
-
- # Finds the Encoder class for +format+ and creates an instance, passing
- # +options+ to it.
- #
- # Example:
- # require 'coderay'
- #
- # stats = CodeRay.encoder(:statistic)
- # stats.encode("puts 17 + 4\n", :ruby)
- #
- # puts '%d out of %d tokens have the kind :integer.' % [
- # stats.type_stats[:integer].count,
- # stats.real_token_count
- # ]
- # #-> 2 out of 4 tokens have the kind :integer.
- def encoder format, options = {}
- Encoders[format].new options
- end
-
- # Finds the Scanner class for +lang+ and creates an instance, passing
- # +options+ to it.
- #
- # See Scanner.new.
- def scanner lang, options = {}
- Scanners[lang].new '', options
- end
-
- # Extract the options for the scanner from the +options+ hash.
- #
- # Returns an empty Hash if :scanner_options is not set.
- #
- # This is used if a method like CodeRay.encode has to provide options
- # for Encoder _and_ scanner.
- def get_scanner_options options
- options.fetch :scanner_options, {}
- end
-
- end
-
- # This Exception is raised when you try to stream with something that is not
- # capable of streaming.
- class NotStreamableError < Exception
- def initialize obj
- @obj = obj
- end
-
- def to_s
- '%s is not Streamable!' % @obj.class
- end
- end
-
- # A dummy module that is included by subclasses of CodeRay::Scanner an CodeRay::Encoder
- # to show that they are able to handle streams.
- module Streamable
- end
-
-end
-
-# Run a test script.
-if $0 == __FILE__
- $stderr.print 'Press key to print demo.'; gets
- # Just use this file as an example of Ruby code.
- code = File.read(__FILE__)[/module CodeRay.*/m]
- print CodeRay.scan(code, :ruby).html
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/README
--- a/vendor/plugins/coderay-0.9.2/lib/README Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-= CodeRay
-
-[- Tired of blue'n'gray? Try the original version of this documentation on
-coderay.rubychan.de[http://coderay.rubychan.de/doc/] (use Ctrl+Click to open it in its own frame.) -]
-
-== About
-CodeRay is a Ruby library for syntax highlighting.
-
-Syntax highlighting means: You put your code in, and you get it back colored;
-Keywords, strings, floats, comments - all in different colors.
-And with line numbers.
-
-*Syntax* *Highlighting*...
-* makes code easier to read and maintain
-* lets you detect syntax errors faster
-* helps you to understand the syntax of a language
-* looks nice
-* is what everybody should have on their website
-* solves all your problems and makes the girls run after you
-
-Version: 0.9.2
-Author:: murphy (Kornelius Kalnbach)
-Contact:: murphy rubychan de
-Website:: coderay.rubychan.de[http://coderay.rubychan.de]
-License:: GNU LGPL; see LICENSE file in the main directory.
-
-== Installation
-
-You need RubyGems[http://rubyforge.org/frs/?group_id=126].
-
- % gem install coderay
-
-
-=== Dependencies
-
-CodeRay needs Ruby 1.8.6 or later. It also runs with Ruby 1.9.1+ and JRuby 1.1+.
-
-
-== Example Usage
-(Forgive me, but this is not highlighted.)
-
- require 'coderay'
-
- tokens = CodeRay.scan "puts 'Hello, world!'", :ruby
- page = tokens.html :line_numbers => :inline, :wrap => :page
- puts page
-
-
-== Documentation
-
-See CodeRay.
-
-Please report errors in this documentation to .
-
-
-== Credits
-
-=== Special Thanks to
-
-* licenser (Heinz N. Gies) for ending my QBasic career, inventing the Coder
- project and the input/output plugin system.
- CodeRay would not exist without him.
-* bovi (Daniel Bovensiepen) for helping me out on various occasions.
-
-=== Thanks to
-
-* Caleb Clausen for writing RubyLexer (see
- http://rubyforge.org/projects/rubylexer) and lots of very interesting mail
- traffic
-* birkenfeld (Georg Brandl) and mitsuhiku (Arnim Ronacher) for PyKleur, now pygments.
- You guys rock!
-* Jamis Buck for writing Syntax (see http://rubyforge.org/projects/syntax)
- I got some useful ideas from it.
-* Doug Kearns and everyone else who worked on ruby.vim - it not only helped me
- coding CodeRay, but also gave me a wonderful target to reach for the Ruby
- scanner.
-* everyone who uses CodeBB on http://www.rubyforen.de and http://www.python-forum.de
-* iGEL, magichisoka, manveru, WoNáDo and everyone I forgot from rubyforen.de
-* Dethix from ruby-mine.de
-* zickzackw
-* Dookie (who is no longer with us...) and Leonidas from http://www.python-forum.de
-* Andreas Schwarz for finding out that CaseIgnoringWordList was not case
- ignoring! Such things really make you write tests.
-* closure for the first version of the Scheme scanner.
-* Stefan Walk for the first version of the JavaScript and PHP scanners.
-* Josh Goebel for another version of the JavaScript scanner, a SQL and a Diff scanner.
-* Jonathan Younger for pointing out the licence confusion caused by wrong LICENSE file.
-* Jeremy Hinegardner for finding the shebang-on-empty-file bug in FileType.
-* Charles Oliver Nutter and Yehuda Katz for helping me benchmark CodeRay on JRuby.
-* Andreas Neuhaus for pointing out a markup bug in coderay/for_redcloth.
-* 0xf30fc7 for the FileType patch concerning Delphi file extensions.
-* The folks at redmine.org - thank you for using and fixing CodeRay!
-* Keith Pitt for his SQL scanners
-* Rob Aldred for the terminal encoder
-* Trans for pointing out $DEBUG dependencies
-* Flameeyes for finding that Term::ANSIColor was obsolete
-* matz and all Ruby gods and gurus
-* The inventors of: the computer, the internet, the true color display, HTML &
- CSS, VIM, Ruby, pizza, microwaves, guitars, scouting, programming, anime,
- manga, coke and green ice tea.
-
-Where would we be without all those people?
-
-=== Created using
-
-* Ruby[http://ruby-lang.org/]
-* Chihiro (my Sony VAIO laptop); Henrietta (my old MacBook);
- Triella, born Rico (my new MacBook); as well as
- Seras and Hikari (my PCs)
-* RDE[http://homepage2.nifty.com/sakazuki/rde_e.html],
- VIM[http://vim.org] and TextMate[http://macromates.com]
-* Subversion[http://subversion.tigris.org/]
-* Redmine[http://redmine.org/]
-* Firefox[http://www.mozilla.org/products/firefox/],
- Firebug[http://getfirebug.com/], Safari[http://www.apple.com/safari/], and
- Thunderbird[http://www.mozilla.org/products/thunderbird/]
-* RubyGems[http://docs.rubygems.org/] and Rake[http://rake.rubyforge.org/]
-* TortoiseSVN[http://tortoisesvn.tigris.org/] using Apache via
- XAMPP[http://www.apachefriends.org/en/xampp.html]
-* RDoc (though I'm quite unsatisfied with it)
-* Microsoft Windows (yes, I confess!) and MacOS X
-* GNUWin32, MinGW and some other tools to make the shell under windows a bit
- less useless
-* Term::ANSIColor[http://term-ansicolor.rubyforge.org/]
-* PLEAC[http://pleac.sourceforge.net/] code examples
-
-=== Free
-
-* As you can see, CodeRay was created under heavy use of *free* software.
-* So CodeRay is also *free*.
-* If you use CodeRay to create software, think about making this software
- *free*, too.
-* Thanks :)
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-# = CodeRay Library
-#
-# CodeRay is a Ruby library for syntax highlighting.
-#
-# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
-# fast and efficient.
-#
-# See README.
-#
-# It consists mainly of
-# * the main engine: CodeRay (Scanners::Scanner, Tokens/TokenStream, Encoders::Encoder), PluginHost
-# * the scanners in CodeRay::Scanners
-# * the encoders in CodeRay::Encoders
-#
-# Here's a fancy graphic to light up this gray docu:
-#
-# http://cycnus.de/raindark/coderay/scheme.png
-#
-# == Documentation
-#
-# See CodeRay, Encoders, Scanners, Tokens.
-#
-# == Usage
-#
-# Remember you need RubyGems to use CodeRay, unless you have it in your load path. Run Ruby with
-# -rubygems option if required.
-#
-# === Highlight Ruby code in a string as html
-#
-# require 'coderay'
-# print CodeRay.scan('puts "Hello, world!"', :ruby).html
-#
-# # prints something like this:
-# puts "Hello, world!"
-#
-#
-# === Highlight C code from a file in a html div
-#
-# require 'coderay'
-# print CodeRay.scan(File.read('ruby.h'), :c).div
-# print CodeRay.scan_file('ruby.h').html.div
-#
-# You can include this div in your page. The used CSS styles can be printed with
-#
-# % coderay_stylesheet
-#
-# === Highlight without typing too much
-#
-# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
-#
-# % ruby -rubygems /path/to/coderay/coderay.rb > example.html
-#
-# and look at the file it created in your browser.
-#
-# = CodeRay Module
-#
-# The CodeRay module provides convenience methods for the engine.
-#
-# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
-# simply lower-case symbols, like :python or :html.
-# * All methods take an optional hash as last parameter, +options+, that is send to
-# the Encoder / Scanner.
-# * Input and language are always sorted in this order: +code+, +lang+.
-# (This is in alphabetical order, if you need a mnemonic ;)
-#
-# You should be able to highlight everything you want just using these methods;
-# so there is no need to dive into CodeRay's deep class hierarchy.
-#
-# The examples in the demo directory demonstrate common cases using this interface.
-#
-# = Basic Access Ways
-#
-# Read this to get a general view what CodeRay provides.
-#
-# == Scanning
-#
-# Scanning means analysing an input string, splitting it up into Tokens.
-# Each Token knows about what type it is: string, comment, class name, etc.
-#
-# Each +lang+ (language) has its own Scanner; for example, :ruby code is
-# handled by CodeRay::Scanners::Ruby.
-#
-# CodeRay.scan:: Scan a string in a given language into Tokens.
-# This is the most common method to use.
-# CodeRay.scan_file:: Scan a file and guess the language using FileType.
-#
-# The Tokens object you get from these methods can encode itself; see Tokens.
-#
-# == Encoding
-#
-# Encoding means compiling Tokens into an output. This can be colored HTML or
-# LaTeX, a textual statistic or just the number of non-whitespace tokens.
-#
-# Each Encoder provides output in a specific +format+, so you select Encoders via
-# formats like :html or :statistic.
-#
-# CodeRay.encode:: Scan and encode a string in a given language.
-# CodeRay.encode_tokens:: Encode the given tokens.
-# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
-#
-# == Streaming
-#
-# Streaming saves RAM by running Scanner and Encoder in some sort of
-# pipe mode; see TokenStream.
-#
-# CodeRay.scan_stream:: Scan in stream mode.
-#
-# == All-in-One Encoding
-#
-# CodeRay.encode:: Highlight a string with a given input and output format.
-#
-# == Instanciating
-#
-# You can use an Encoder instance to highlight multiple inputs. This way, the setup
-# for this Encoder must only be done once.
-#
-# CodeRay.encoder:: Create an Encoder instance with format and options.
-# CodeRay.scanner:: Create an Scanner instance for lang, with '' as default code.
-#
-# To make use of CodeRay.scanner, use CodeRay::Scanner::code=.
-#
-# The scanning methods provide more flexibility; we recommend to use these.
-#
-# == Reusing Scanners and Encoders
-#
-# If you want to re-use scanners and encoders (because that is faster), see
-# CodeRay::Duo for the most convenient (and recommended) interface.
-module CodeRay
-
- $CODERAY_DEBUG ||= false
-
- # Version: Major.Minor.Teeny[.Revision]
- # Major: 0 for pre-stable, 1 for stable
- # Minor: feature milestone
- # Teeny: development state, 0 for pre-release
- # Revision: Subversion Revision number (generated on rake gem:make)
- VERSION = '0.9.2'
-
- require 'coderay/tokens'
- require 'coderay/token_classes'
- require 'coderay/scanner'
- require 'coderay/encoder'
- require 'coderay/duo'
- require 'coderay/style'
-
-
- class << self
-
- # Scans the given +code+ (a String) with the Scanner for +lang+.
- #
- # This is a simple way to use CodeRay. Example:
- # require 'coderay'
- # page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
- #
- # See also demo/demo_simple.
- def scan code, lang, options = {}, &block
- scanner = Scanners[lang].new code, options, &block
- scanner.tokenize
- end
-
- # Scans +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
- # determine it. If it cannot find out what type it is, it uses
- # CodeRay::Scanners::Plaintext.
- #
- # Calls CodeRay.scan.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.scan_file('some_c_code.c').html
- def scan_file filename, lang = :auto, options = {}, &block
- file = IO.read filename
- if lang == :auto
- require 'coderay/helpers/file_type'
- lang = FileType.fetch filename, :plaintext, true
- end
- scan file, lang, options = {}, &block
- end
-
- # Scan the +code+ (a string) with the scanner for +lang+.
- #
- # Calls scan.
- #
- # See CodeRay.scan.
- def scan_stream code, lang, options = {}, &block
- options[:stream] = true
- scan code, lang, options, &block
- end
-
- # Encode a string in Streaming mode.
- #
- # This starts scanning +code+ with the the Scanner for +lang+
- # while encodes the output with the Encoder for +format+.
- # +options+ will be passed to the Encoder.
- #
- # See CodeRay::Encoder.encode_stream
- def encode_stream code, lang, format, options = {}
- encoder(format, options).encode_stream code, lang, options
- end
-
- # Encode a string.
- #
- # This scans +code+ with the the Scanner for +lang+ and then
- # encodes it with the Encoder for +format+.
- # +options+ will be passed to the Encoder.
- #
- # See CodeRay::Encoder.encode
- def encode code, lang, format, options = {}
- encoder(format, options).encode code, lang, options
- end
-
- # Highlight a string into a HTML .
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight code, lang, options = { :css => :class }, format = :div
- encode code, lang, format, options
- end
-
- # Encode pre-scanned Tokens.
- # Use this together with CodeRay.scan:
- #
- # require 'coderay'
- #
- # # Highlight a short Ruby code example in a HTML span
- # tokens = CodeRay.scan '1 + 2', :ruby
- # puts CodeRay.encode_tokens(tokens, :span)
- #
- def encode_tokens tokens, format, options = {}
- encoder(format, options).encode_tokens tokens, options
- end
-
- # Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
- #
- # See CodeRay.scan_file.
- # Notice that the second argument is the output +format+, not the input language.
- #
- # Example:
- # require 'coderay'
- # page = CodeRay.encode_file 'some_c_code.c', :html
- def encode_file filename, format, options = {}
- tokens = scan_file filename, :auto, get_scanner_options(options)
- encode_tokens tokens, format, options
- end
-
- # Highlight a file into a HTML .
- #
- # CSS styles use classes, so you have to include a stylesheet
- # in your output.
- #
- # See encode.
- def highlight_file filename, options = { :css => :class }, format = :div
- encode_file filename, format, options
- end
-
- # Finds the Encoder class for +format+ and creates an instance, passing
- # +options+ to it.
- #
- # Example:
- # require 'coderay'
- #
- # stats = CodeRay.encoder(:statistic)
- # stats.encode("puts 17 + 4\n", :ruby)
- #
- # puts '%d out of %d tokens have the kind :integer.' % [
- # stats.type_stats[:integer].count,
- # stats.real_token_count
- # ]
- # #-> 2 out of 4 tokens have the kind :integer.
- def encoder format, options = {}
- Encoders[format].new options
- end
-
- # Finds the Scanner class for +lang+ and creates an instance, passing
- # +options+ to it.
- #
- # See Scanner.new.
- def scanner lang, options = {}
- Scanners[lang].new '', options
- end
-
- # Extract the options for the scanner from the +options+ hash.
- #
- # Returns an empty Hash if :scanner_options is not set.
- #
- # This is used if a method like CodeRay.encode has to provide options
- # for Encoder _and_ scanner.
- def get_scanner_options options
- options.fetch :scanner_options, {}
- end
-
- end
-
- # This Exception is raised when you try to stream with something that is not
- # capable of streaming.
- class NotStreamableError < Exception
- def initialize obj
- @obj = obj
- end
-
- def to_s
- '%s is not Streamable!' % @obj.class
- end
- end
-
- # A dummy module that is included by subclasses of CodeRay::Scanner an CodeRay::Encoder
- # to show that they are able to handle streams.
- module Streamable
- end
-
-end
-
-# Run a test script.
-if $0 == __FILE__
- $stderr.print 'Press key to print demo.'; gets
- # Just use this file as an example of Ruby code.
- code = File.read(__FILE__)[/module CodeRay.*/m]
- print CodeRay.scan(code, :ruby).html
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 65
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay
-END
-token_classes.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/token_classes.rb
-END
-encoder.rb
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoder.rb
-END
-style.rb
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/style.rb
-END
-tokens.rb
-K 25
-svn:wc:ra_dav:version-url
-V 75
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/tokens.rb
-END
-duo.rb
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/duo.rb
-END
-scanner.rb
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanner.rb
-END
-for_redcloth.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/for_redcloth.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-token_classes.rb
-file
-
-
-
-
-2010-09-23T14:37:45.683786Z
-4f17211f3874899049db6111ef282a3b
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2287
-
-encoder.rb
-file
-
-
-
-
-2010-09-23T14:37:45.631818Z
-f0ead48eaa86c8b4d6a5587e9b5450ca
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6565
-
-encoders
-dir
-
-helpers
-dir
-
-style.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-409fa492a5470a8bed5ae969f270decf
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-293
-
-styles
-dir
-
-tokens.rb
-file
-
-
-
-
-2010-09-23T14:37:45.683786Z
-b7662592ff38046174f935548f579ce4
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10153
-
-duo.rb
-file
-
-
-
-
-2010-09-23T14:37:45.631818Z
-b33e5b83e354c09655f46d37ae662f64
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2549
-
-scanner.rb
-file
-
-
-
-
-2010-09-23T14:37:45.655760Z
-f75f38c93ee8de3e6df1c08773b62319
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7803
-
-scanners
-dir
-
-for_redcloth.rb
-file
-
-
-
-
-2010-09-23T14:37:45.651759Z
-d216c2f1c7a84a23ce3feff0b1358d60
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3001
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/duo.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/duo.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/encoder.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/encoder.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/for_redcloth.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/for_redcloth.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/scanner.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/scanner.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/style.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/style.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/token_classes.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/token_classes.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/tokens.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/prop-base/tokens.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/duo.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/duo.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-module CodeRay
-
- # = Duo
- #
- # A Duo is a convenient way to use CodeRay. You just create a Duo,
- # giving it a lang (language of the input code) and a format (desired
- # output format), and call Duo#highlight with the code.
- #
- # Duo makes it easy to re-use both scanner and encoder for a repetitive
- # task. It also provides a very easy interface syntax:
- #
- # require 'coderay'
- # CodeRay::Duo[:python, :div].highlight 'import this'
- #
- # Until you want to do uncommon things with CodeRay, I recommend to use
- # this method, since it takes care of everything.
- class Duo
-
- attr_accessor :lang, :format, :options
-
- # Create a new Duo, holding a lang and a format to highlight code.
- #
- # simple:
- # CodeRay::Duo[:ruby, :page].highlight 'bla 42'
- #
- # streaming:
- # CodeRay::Duo[:ruby, :page].highlight 'bar 23', :stream => true
- #
- # with options:
- # CodeRay::Duo[:ruby, :html, :hint => :debug].highlight '????::??'
- #
- # alternative syntax without options:
- # CodeRay::Duo[:ruby => :statistic].encode 'class << self; end'
- #
- # alternative syntax with options:
- # CodeRay::Duo[{ :ruby => :statistic }, :do => :something].encode 'abc'
- #
- # The options are forwarded to scanner and encoder
- # (see CodeRay.get_scanner_options).
- def initialize lang = nil, format = nil, options = {}
- if format == nil and lang.is_a? Hash and lang.size == 1
- @lang = lang.keys.first
- @format = lang[@lang]
- else
- @lang = lang
- @format = format
- end
- @options = options
- end
-
- class << self
- # To allow calls like Duo[:ruby, :html].highlight.
- alias [] new
- end
-
- # The scanner of the duo. Only created once.
- def scanner
- @scanner ||= CodeRay.scanner @lang, CodeRay.get_scanner_options(@options)
- end
-
- # The encoder of the duo. Only created once.
- def encoder
- @encoder ||= CodeRay.encoder @format, @options
- end
-
- # Tokenize and highlight the code using +scanner+ and +encoder+.
- #
- # If the :stream option is set, the Duo will go into streaming mode,
- # saving memory for the cost of time.
- def encode code, options = { :stream => false }
- stream = options.delete :stream
- options = @options.merge options
- if stream
- encoder.encode_stream(code, @lang, options)
- else
- scanner.code = code
- encoder.encode_tokens(scanner.tokenize, options)
- end
- end
- alias highlight encode
-
- end
-
-end
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/encoder.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/encoder.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-module CodeRay
-
- # This module holds the Encoder class and its subclasses.
- # For example, the HTML encoder is named CodeRay::Encoders::HTML
- # can be found in coderay/encoders/html.
- #
- # Encoders also provides methods and constants for the register
- # mechanism and the [] method that returns the Encoder class
- # belonging to the given format.
- module Encoders
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'encoders'
-
- # = Encoder
- #
- # The Encoder base class. Together with Scanner and
- # Tokens, it forms the highlighting triad.
- #
- # Encoder instances take a Tokens object and do something with it.
- #
- # The most common Encoder is surely the HTML encoder
- # (CodeRay::Encoders::HTML). It highlights the code in a colorful
- # html page.
- # If you want the highlighted code in a div or a span instead,
- # use its subclasses Div and Span.
- class Encoder
- extend Plugin
- plugin_host Encoders
-
- attr_reader :token_stream
-
- class << self
-
- # Returns if the Encoder can be used in streaming mode.
- def streamable?
- is_a? Streamable
- end
-
- # If FILE_EXTENSION isn't defined, this method returns the
- # downcase class name instead.
- def const_missing sym
- if sym == :FILE_EXTENSION
- plugin_id
- else
- super
- end
- end
-
- end
-
- # Subclasses are to store their default options in this constant.
- DEFAULT_OPTIONS = { :stream => false }
-
- # The options you gave the Encoder at creating.
- attr_accessor :options
-
- # Creates a new Encoder.
- # +options+ is saved and used for all encode operations, as long
- # as you don't overwrite it there by passing additional options.
- #
- # Encoder objects provide three encode methods:
- # - encode simply takes a +code+ string and a +lang+
- # - encode_tokens expects a +tokens+ object instead
- # - encode_stream is like encode, but uses streaming mode.
- #
- # Each method has an optional +options+ parameter. These are
- # added to the options you passed at creation.
- def initialize options = {}
- @options = self.class::DEFAULT_OPTIONS.merge options
- raise "I am only the basic Encoder class. I can't encode "\
- "anything. :( Use my subclasses." if self.class == Encoder
- end
-
- # Encode a Tokens object.
- def encode_tokens tokens, options = {}
- options = @options.merge options
- setup options
- compile tokens, options
- finish options
- end
-
- # Encode the given +code+ after tokenizing it using the Scanner
- # for +lang+.
- def encode code, lang, options = {}
- options = @options.merge options
- scanner_options = CodeRay.get_scanner_options(options)
- tokens = CodeRay.scan code, lang, scanner_options
- encode_tokens tokens, options
- end
-
- # You can use highlight instead of encode, if that seems
- # more clear to you.
- alias highlight encode
-
- # Encode the given +code+ using the Scanner for +lang+ in
- # streaming mode.
- def encode_stream code, lang, options = {}
- raise NotStreamableError, self unless kind_of? Streamable
- options = @options.merge options
- setup options
- scanner_options = CodeRay.get_scanner_options options
- @token_stream =
- CodeRay.scan_stream code, lang, scanner_options, &self
- finish options
- end
-
- # Behave like a proc. The token method is converted to a proc.
- def to_proc
- method(:token).to_proc
- end
-
- # Return the default file extension for outputs of this encoder.
- def file_extension
- self.class::FILE_EXTENSION
- end
-
- protected
-
- # Called with merged options before encoding starts.
- # Sets @out to an empty string.
- #
- # See the HTML Encoder for an example of option caching.
- def setup options
- @out = ''
- end
-
- # Called with +content+ and +kind+ of the currently scanned token.
- # For simple scanners, it's enougth to implement this method.
- #
- # By default, it calls text_token or block_token, depending on
- # whether +content+ is a String.
- def token content, kind
- encoded_token =
- if content.is_a? ::String
- text_token content, kind
- elsif content.is_a? ::Symbol
- block_token content, kind
- else
- raise 'Unknown token content type: %p' % [content]
- end
- append_encoded_token_to_output encoded_token
- end
-
- def append_encoded_token_to_output encoded_token
- @out << encoded_token if encoded_token && defined?(@out) && @out
- end
-
- # Called for each text token ([text, kind]), where text is a String.
- def text_token text, kind
- end
-
- # Called for each block (non-text) token ([action, kind]),
- # where +action+ is a Symbol.
- #
- # Calls open_token, close_token, begin_line, and end_line according to
- # the value of +action+.
- def block_token action, kind
- case action
- when :open
- open_token kind
- when :close
- close_token kind
- when :begin_line
- begin_line kind
- when :end_line
- end_line kind
- else
- raise 'unknown block action: %p' % action
- end
- end
-
- # Called for each block token at the start of the block ([:open, kind]).
- def open_token kind
- end
-
- # Called for each block token end of the block ([:close, kind]).
- def close_token kind
- end
-
- # Called for each line token block at the start of the line ([:begin_line, kind]).
- def begin_line kind
- end
-
- # Called for each line token block at the end of the line ([:end_line, kind]).
- def end_line kind
- end
-
- # Called with merged options after encoding starts.
- # The return value is the result of encoding, typically @out.
- def finish options
- @out
- end
-
- # Do the encoding.
- #
- # The already created +tokens+ object must be used; it can be a
- # TokenStream or a Tokens object.
- if RUBY_VERSION >= '1.9'
- def compile tokens, options
- for text, kind in tokens
- token text, kind
- end
- end
- else
- def compile tokens, options
- tokens.each(&self)
- end
- end
-
- end
-
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/for_redcloth.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/for_redcloth.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-module CodeRay
-
- # A little hack to enable CodeRay highlighting in RedCloth.
- #
- # Usage:
- # require 'coderay'
- # require 'coderay/for_redcloth'
- # RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
- #
- # Make sure you have RedCloth 4.0.3 activated, for example by calling
- # require 'rubygems'
- # before RedCloth is loaded and before calling CodeRay.for_redcloth.
- module ForRedCloth
-
- def self.install
- gem 'RedCloth', '>= 4.0.3' if defined? gem
- require 'redcloth'
- unless RedCloth::VERSION.to_s >= '4.0.3'
- if defined? gem
- raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later. ' +
- "You have #{RedCloth::VERSION}. Please gem install RedCloth."
- else
- $".delete 'redcloth.rb' # sorry, but it works
- require 'rubygems'
- return install # retry
- end
- end
- unless RedCloth::VERSION.to_s >= '4.2.2'
- warn 'CodeRay.for_redcloth works best with RedCloth version 4.2.2 or later.'
- end
- RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
- RedCloth::Formatters::HTML.module_eval do
- def unescape(html)
- replacements = {
- '&' => '&',
- '"' => '"',
- '>' => '>',
- '<' => '<',
- }
- html.gsub(/&(?:amp|quot|[gl]t);/) { |entity| replacements[entity] }
- end
- undef code, bc_open, bc_close, escape_pre
- def code(opts) # :nodoc:
- opts[:block] = true
- if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
- # simulating pre-4.2 behavior
- if opts[:text].sub!(/\A\[(\w+)\]/, '')
- if CodeRay::Scanners[$1].plugin_id == 'plaintext'
- opts[:text] = $& + opts[:text]
- else
- opts[:lang] = $1
- end
- end
- end
- if opts[:lang] && !filter_coderay
- require 'coderay'
- @in_bc ||= nil
- format = @in_bc ? :div : :span
- opts[:text] = unescape(opts[:text]) unless @in_bc
- highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
- highlighted_code.sub!(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
- highlighted_code
- else
- " #{opts[:text]} "
- end
- end
- def bc_open(opts) # :nodoc:
- opts[:block] = true
- @in_bc = opts
- opts[:lang] ? '' : " "
- end
- def bc_close(opts) # :nodoc:
- opts = @in_bc
- @in_bc = nil
- opts[:lang] ? '' : " \n"
- end
- def escape_pre(text)
- if @in_bc ||= nil
- text
- else
- html_esc(text, :html_escape_preformatted)
- end
- end
- end
- end
-
- module TextileDoc # :nodoc:
- attr_accessor :filter_coderay
- end
-
- end
-
-end
-
-CodeRay::ForRedCloth.install
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/scanner.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/scanner.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-module CodeRay
-
- require 'coderay/helpers/plugin'
-
- # = Scanners
- #
- # This module holds the Scanner class and its subclasses.
- # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
- # can be found in coderay/scanners/ruby.
- #
- # Scanner also provides methods and constants for the register
- # mechanism and the [] method that returns the Scanner class
- # belonging to the given lang.
- #
- # See PluginHost.
- module Scanners
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'scanners'
-
- require 'strscan'
-
- # = Scanner
- #
- # The base class for all Scanners.
- #
- # It is a subclass of Ruby's great +StringScanner+, which
- # makes it easy to access the scanning methods inside.
- #
- # It is also +Enumerable+, so you can use it like an Array of
- # Tokens:
- #
- # require 'coderay'
- #
- # c_scanner = CodeRay::Scanners[:c].new "if (*p == '{') nest++;"
- #
- # for text, kind in c_scanner
- # puts text if kind == :operator
- # end
- #
- # # prints: (*==)++;
- #
- # OK, this is a very simple example :)
- # You can also use +map+, +any?+, +find+ and even +sort_by+,
- # if you want.
- class Scanner < StringScanner
-
- extend Plugin
- plugin_host Scanners
-
- # Raised if a Scanner fails while scanning
- ScanError = Class.new(Exception)
-
- require 'coderay/helpers/word_list'
-
- # The default options for all scanner classes.
- #
- # Define @default_options for subclasses.
- DEFAULT_OPTIONS = { :stream => false }
-
- KINDS_NOT_LOC = [:comment, :doctype]
-
- class << self
-
- # Returns if the Scanner can be used in streaming mode.
- def streamable?
- is_a? Streamable
- end
-
- def normify code
- code = code.to_s
- if code.respond_to? :force_encoding
- debug, $DEBUG = $DEBUG, false
- begin
- code.force_encoding 'utf-8'
- code[/\z/] # raises an ArgumentError when code contains a non-UTF-8 char
- rescue ArgumentError
- code.force_encoding 'binary'
- ensure
- $DEBUG = debug
- end
- end
- code.to_unix
- end
-
- def file_extension extension = nil
- if extension
- @file_extension = extension.to_s
- else
- @file_extension ||= plugin_id.to_s
- end
- end
-
- end
-
-=begin
-## Excluded for speed reasons; protected seems to make methods slow.
-
- # Save the StringScanner methods from being called.
- # This would not be useful for highlighting.
- strscan_public_methods =
- StringScanner.instance_methods -
- StringScanner.ancestors[1].instance_methods
- protected(*strscan_public_methods)
-=end
-
- # Create a new Scanner.
- #
- # * +code+ is the input String and is handled by the superclass
- # StringScanner.
- # * +options+ is a Hash with Symbols as keys.
- # It is merged with the default options of the class (you can
- # overwrite default options here.)
- # * +block+ is the callback for streamed highlighting.
- #
- # If you set :stream to +true+ in the options, the Scanner uses a
- # TokenStream with the +block+ as callback to handle the tokens.
- #
- # Else, a Tokens object is used.
- def initialize code='', options = {}, &block
- raise "I am only the basic Scanner class. I can't scan "\
- "anything. :( Use my subclasses." if self.class == Scanner
-
- @options = self.class::DEFAULT_OPTIONS.merge options
-
- super Scanner.normify(code)
-
- @tokens = options[:tokens]
- if @options[:stream]
- warn "warning in CodeRay::Scanner.new: :stream is set, "\
- "but no block was given" unless block_given?
- raise NotStreamableError, self unless kind_of? Streamable
- @tokens ||= TokenStream.new(&block)
- else
- warn "warning in CodeRay::Scanner.new: Block given, "\
- "but :stream is #{@options[:stream]}" if block_given?
- @tokens ||= Tokens.new
- end
- @tokens.scanner = self
-
- setup
- end
-
- def reset
- super
- reset_instance
- end
-
- def string= code
- code = Scanner.normify(code)
- super code
- reset_instance
- end
-
- # More mnemonic accessor name for the input string.
- alias code string
- alias code= string=
-
- # Returns the Plugin ID for this scanner.
- def lang
- self.class.plugin_id
- end
-
- # Scans the code and returns all tokens in a Tokens object.
- def tokenize new_string=nil, options = {}
- options = @options.merge(options)
- self.string = new_string if new_string
- @cached_tokens =
- if @options[:stream] # :stream must have been set already
- reset unless new_string
- scan_tokens @tokens, options
- @tokens
- else
- scan_tokens @tokens, options
- end
- end
-
- def tokens
- @cached_tokens ||= tokenize
- end
-
- # Whether the scanner is in streaming mode.
- def streaming?
- !!@options[:stream]
- end
-
- # Traverses the tokens.
- def each &block
- raise ArgumentError,
- 'Cannot traverse TokenStream.' if @options[:stream]
- tokens.each(&block)
- end
- include Enumerable
-
- # The current line position of the scanner.
- #
- # Beware, this is implemented inefficiently. It should be used
- # for debugging only.
- def line
- string[0..pos].count("\n") + 1
- end
-
- def column pos = self.pos
- return 0 if pos <= 0
- string = string()
- if string.respond_to?(:bytesize) && (defined?(@bin_string) || string.bytesize != string.size)
- @bin_string ||= string.dup.force_encoding('binary')
- string = @bin_string
- end
- pos - (string.rindex(?\n, pos) || 0)
- end
-
- def marshal_dump
- @options
- end
-
- def marshal_load options
- @options = options
- end
-
- protected
-
- # Can be implemented by subclasses to do some initialization
- # that has to be done once per instance.
- #
- # Use reset for initialization that has to be done once per
- # scan.
- def setup
- end
-
- # This is the central method, and commonly the only one a
- # subclass implements.
- #
- # Subclasses must implement this method; it must return +tokens+
- # and must only use Tokens#<< for storing scanned tokens!
- def scan_tokens tokens, options
- raise NotImplementedError,
- "#{self.class}#scan_tokens not implemented."
- end
-
- def reset_instance
- @tokens.clear unless @options[:keep_tokens]
- @cached_tokens = nil
- @bin_string = nil if defined? @bin_string
- end
-
- # Scanner error with additional status information
- def raise_inspect msg, tokens, state = 'No state given!', ambit = 30
- raise ScanError, <<-EOE % [
-
-
-***ERROR in %s: %s (after %d tokens)
-
-tokens:
-%s
-
-current line: %d column: %d pos: %d
-matched: %p state: %p
-bol? = %p, eos? = %p
-
-surrounding code:
-%p ~~ %p
-
-
-***ERROR***
-
- EOE
- File.basename(caller[0]),
- msg,
- tokens.size,
- tokens.last(10).map { |t| t.inspect }.join("\n"),
- line, column, pos,
- matched, state, bol?, eos?,
- string[pos - ambit, ambit],
- string[pos, ambit],
- ]
- end
-
- end
-
- end
-end
-
-class String
- # I love this hack. It seems to silence all dos/unix/mac newline problems.
- def to_unix
- if index ?\r
- gsub(/\r\n?/, "\n")
- else
- self
- end
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/style.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/style.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module CodeRay
-
- # This module holds the Style class and its subclasses.
- #
- # See Plugin.
- module Styles
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'styles'
-
- class Style
- extend Plugin
- plugin_host Styles
-
- DEFAULT_OPTIONS = { }
-
- end
-
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/token_classes.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/token_classes.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-module CodeRay
- class Tokens
- ClassOfKind = Hash.new do |h, k|
- h[k] = k.to_s
- end
- ClassOfKind.update with = {
- :annotation => 'at',
- :attribute_name => 'an',
- :attribute_name_fat => 'af',
- :attribute_value => 'av',
- :attribute_value_fat => 'aw',
- :bin => 'bi',
- :char => 'ch',
- :class => 'cl',
- :class_variable => 'cv',
- :color => 'cr',
- :comment => 'c',
- :complex => 'cm',
- :constant => 'co',
- :content => 'k',
- :decorator => 'de',
- :definition => 'df',
- :delimiter => 'dl',
- :directive => 'di',
- :doc => 'do',
- :doctype => 'dt',
- :doc_string => 'ds',
- :entity => 'en',
- :error => 'er',
- :escape => 'e',
- :exception => 'ex',
- :float => 'fl',
- :function => 'fu',
- :global_variable => 'gv',
- :hex => 'hx',
- :imaginary => 'cm',
- :important => 'im',
- :include => 'ic',
- :inline => 'il',
- :inline_delimiter => 'idl',
- :instance_variable => 'iv',
- :integer => 'i',
- :interpreted => 'in',
- :keyword => 'kw',
- :key => 'ke',
- :label => 'la',
- :local_variable => 'lv',
- :modifier => 'mod',
- :oct => 'oc',
- :operator_fat => 'of',
- :pre_constant => 'pc',
- :pre_type => 'pt',
- :predefined => 'pd',
- :preprocessor => 'pp',
- :pseudo_class => 'ps',
- :regexp => 'rx',
- :reserved => 'r',
- :shell => 'sh',
- :string => 's',
- :symbol => 'sy',
- :tag => 'ta',
- :tag_fat => 'tf',
- :tag_special => 'ts',
- :type => 'ty',
- :variable => 'v',
- :value => 'vl',
- :xml_text => 'xt',
-
- :insert => 'ins',
- :delete => 'del',
- :change => 'chg',
- :head => 'head',
-
- :ident => :NO_HIGHLIGHT, # 'id'
- #:operator => 'op',
- :operator => :NO_HIGHLIGHT, # 'op'
- :space => :NO_HIGHLIGHT, # 'sp'
- :plain => :NO_HIGHLIGHT,
- }
- ClassOfKind[:method] = ClassOfKind[:function]
- ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
- ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
- ClassOfKind[:escape] = ClassOfKind[:delimiter]
- #ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
- end
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/tokens.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/text-base/tokens.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-module CodeRay
-
- # = Tokens
- #
- # The Tokens class represents a list of tokens returnd from
- # a Scanner.
- #
- # A token is not a special object, just a two-element Array
- # consisting of
- # * the _token_ _kind_ (a Symbol representing the type of the token)
- # * the _token_ _text_ (the original source of the token in a String)
- #
- # A token looks like this:
- #
- # [:comment, '# It looks like this']
- # [:float, '3.1415926']
- # [:error, '$^']
- #
- # Some scanners also yield some kind of sub-tokens, represented by special
- # token texts, namely :open and :close .
- #
- # The Ruby scanner, for example, splits "a string" into:
- #
- # [
- # [:open, :string],
- # [:delimiter, '"'],
- # [:content, 'a string'],
- # [:delimiter, '"'],
- # [:close, :string]
- # ]
- #
- # Tokens is also the interface between Scanners and Encoders:
- # The input is split and saved into a Tokens object. The Encoder
- # then builds the output from this object.
- #
- # Thus, the syntax below becomes clear:
- #
- # CodeRay.scan('price = 2.59', :ruby).html
- # # the Tokens object is here -------^
- #
- # See how small it is? ;)
- #
- # Tokens gives you the power to handle pre-scanned code very easily:
- # You can convert it to a webpage, a YAML file, or dump it into a gzip'ed string
- # that you put in your DB.
- #
- # Tokens' subclass TokenStream allows streaming to save memory.
- class Tokens < Array
-
- # The Scanner instance that created the tokens.
- attr_accessor :scanner
-
- # Whether the object is a TokenStream.
- #
- # Returns false.
- def stream?
- false
- end
-
- # Iterates over all tokens.
- #
- # If a filter is given, only tokens of that kind are yielded.
- def each kind_filter = nil, &block
- unless kind_filter
- super(&block)
- else
- super() do |text, kind|
- next unless kind == kind_filter
- yield text, kind
- end
- end
- end
-
- # Iterates over all text tokens.
- # Range tokens like [:open, :string] are left out.
- #
- # Example:
- # tokens.each_text_token { |text, kind| text.replace html_escape(text) }
- def each_text_token
- each do |text, kind|
- next unless text.is_a? ::String
- yield text, kind
- end
- end
-
- # Encode the tokens using encoder.
- #
- # encoder can be
- # * a symbol like :html oder :statistic
- # * an Encoder class
- # * an Encoder object
- #
- # options are passed to the encoder.
- def encode encoder, options = {}
- unless encoder.is_a? Encoders::Encoder
- unless encoder.is_a? Class
- encoder_class = Encoders[encoder]
- end
- encoder = encoder_class.new options
- end
- encoder.encode_tokens self, options
- end
-
-
- # Turn into a string using Encoders::Text.
- #
- # +options+ are passed to the encoder if given.
- def to_s options = {}
- encode :text, options
- end
-
- # Redirects unknown methods to encoder calls.
- #
- # For example, if you call +tokens.html+, the HTML encoder
- # is used to highlight the tokens.
- def method_missing meth, options = {}
- Encoders[meth].new(options).encode_tokens self
- end
-
- # Returns the tokens compressed by joining consecutive
- # tokens of the same kind.
- #
- # This can not be undone, but should yield the same output
- # in most Encoders. It basically makes the output smaller.
- #
- # Combined with dump, it saves space for the cost of time.
- #
- # If the scanner is written carefully, this is not required -
- # for example, consecutive //-comment lines could already be
- # joined in one comment token by the Scanner.
- def optimize
- last_kind = last_text = nil
- new = self.class.new
- for text, kind in self
- if text.is_a? String
- if kind == last_kind
- last_text << text
- else
- new << [last_text, last_kind] if last_kind
- last_text = text
- last_kind = kind
- end
- else
- new << [last_text, last_kind] if last_kind
- last_kind = last_text = nil
- new << [text, kind]
- end
- end
- new << [last_text, last_kind] if last_kind
- new
- end
-
- # Compact the object itself; see optimize.
- def optimize!
- replace optimize
- end
-
- # Ensure that all :open tokens have a correspondent :close one.
- #
- # TODO: Test this!
- def fix
- tokens = self.class.new
- # Check token nesting using a stack of kinds.
- opened = []
- for type, kind in self
- case type
- when :open
- opened.push [:close, kind]
- when :begin_line
- opened.push [:end_line, kind]
- when :close, :end_line
- expected = opened.pop
- if [type, kind] != expected
- # Unexpected :close; decide what to do based on the kind:
- # - token was never opened: delete the :close (just skip it)
- next unless opened.rindex expected
- # - token was opened earlier: also close tokens in between
- tokens << token until (token = opened.pop) == expected
- end
- end
- tokens << [type, kind]
- end
- # Close remaining opened tokens
- tokens << token while token = opened.pop
- tokens
- end
-
- def fix!
- replace fix
- end
-
- # TODO: Scanner#split_into_lines
- #
- # Makes sure that:
- # - newlines are single tokens
- # (which means all other token are single-line)
- # - there are no open tokens at the end the line
- #
- # This makes it simple for encoders that work line-oriented,
- # like HTML with list-style numeration.
- def split_into_lines
- raise NotImplementedError
- end
-
- def split_into_lines!
- replace split_into_lines
- end
-
- # Dumps the object into a String that can be saved
- # in files or databases.
- #
- # The dump is created with Marshal.dump;
- # In addition, it is gzipped using GZip.gzip.
- #
- # The returned String object includes Undumping
- # so it has an #undump method. See Tokens.load.
- #
- # You can configure the level of compression,
- # but the default value 7 should be what you want
- # in most cases as it is a good compromise between
- # speed and compression rate.
- #
- # See GZip module.
- def dump gzip_level = 7
- require 'coderay/helpers/gzip_simple'
- dump = Marshal.dump self
- dump = dump.gzip gzip_level
- dump.extend Undumping
- end
-
- # The total size of the tokens.
- # Should be equal to the input size before
- # scanning.
- def text_size
- size = 0
- each_text_token do |t, k|
- size + t.size
- end
- size
- end
-
- # The total size of the tokens.
- # Should be equal to the input size before
- # scanning.
- def text
- map { |t, k| t if t.is_a? ::String }.join
- end
-
- # Include this module to give an object an #undump
- # method.
- #
- # The string returned by Tokens.dump includes Undumping.
- module Undumping
- # Calls Tokens.load with itself.
- def undump
- Tokens.load self
- end
- end
-
- # Undump the object using Marshal.load, then
- # unzip it using GZip.gunzip.
- #
- # The result is commonly a Tokens object, but
- # this is not guaranteed.
- def Tokens.load dump
- require 'coderay/helpers/gzip_simple'
- dump = dump.gunzip
- @dump = Marshal.load dump
- end
-
- end
-
-
- # = TokenStream
- #
- # The TokenStream class is a fake Array without elements.
- #
- # It redirects the method << to a block given at creation.
- #
- # This allows scanners and Encoders to use streaming (no
- # tokens are saved, the input is highlighted the same time it
- # is scanned) with the same code.
- #
- # See CodeRay.encode_stream and CodeRay.scan_stream
- class TokenStream < Tokens
-
- # Whether the object is a TokenStream.
- #
- # Returns true.
- def stream?
- true
- end
-
- # The Array is empty, but size counts the tokens given by <<.
- attr_reader :size
-
- # Creates a new TokenStream that calls +block+ whenever
- # its << method is called.
- #
- # Example:
- #
- # require 'coderay'
- #
- # token_stream = CodeRay::TokenStream.new do |kind, text|
- # puts 'kind: %s, text size: %d.' % [kind, text.size]
- # end
- #
- # token_stream << [:regexp, '/\d+/']
- # #-> kind: rexpexp, text size: 5.
- #
- def initialize &block
- raise ArgumentError, 'Block expected for streaming.' unless block
- @callback = block
- @size = 0
- end
-
- # Calls +block+ with +token+ and increments size.
- #
- # Returns self.
- def << token
- @callback.call(*token)
- @size += 1
- self
- end
-
- # This method is not implemented due to speed reasons. Use Tokens.
- def text_size
- raise NotImplementedError,
- 'This method is not implemented due to speed reasons.'
- end
-
- # A TokenStream cannot be dumped. Use Tokens.
- def dump
- raise NotImplementedError, 'A TokenStream cannot be dumped.'
- end
-
- # A TokenStream cannot be optimized. Use Tokens.
- def optimize
- raise NotImplementedError, 'A TokenStream cannot be optimized.'
- end
-
- end
-
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class TokensTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Tokens < Array
- tokens = nil
- assert_nothing_raised do
- tokens = CodeRay::Tokens.new
- end
- assert_kind_of Array, tokens
- end
-
- def test_adding_tokens
- tokens = CodeRay::Tokens.new
- assert_nothing_raised do
- tokens << ['string', :type]
- tokens << ['()', :operator]
- end
- assert_equal tokens.size, 2
- end
-
- def test_dump_undump
- tokens = CodeRay::Tokens.new
- assert_nothing_raised do
- tokens << ['string', :type]
- tokens << ['()', :operator]
- end
- tokens2 = nil
- assert_nothing_raised do
- tokens2 = tokens.dump.undump
- end
- assert_equal tokens, tokens2
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/duo.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/duo.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-module CodeRay
-
- # = Duo
- #
- # A Duo is a convenient way to use CodeRay. You just create a Duo,
- # giving it a lang (language of the input code) and a format (desired
- # output format), and call Duo#highlight with the code.
- #
- # Duo makes it easy to re-use both scanner and encoder for a repetitive
- # task. It also provides a very easy interface syntax:
- #
- # require 'coderay'
- # CodeRay::Duo[:python, :div].highlight 'import this'
- #
- # Until you want to do uncommon things with CodeRay, I recommend to use
- # this method, since it takes care of everything.
- class Duo
-
- attr_accessor :lang, :format, :options
-
- # Create a new Duo, holding a lang and a format to highlight code.
- #
- # simple:
- # CodeRay::Duo[:ruby, :page].highlight 'bla 42'
- #
- # streaming:
- # CodeRay::Duo[:ruby, :page].highlight 'bar 23', :stream => true
- #
- # with options:
- # CodeRay::Duo[:ruby, :html, :hint => :debug].highlight '????::??'
- #
- # alternative syntax without options:
- # CodeRay::Duo[:ruby => :statistic].encode 'class << self; end'
- #
- # alternative syntax with options:
- # CodeRay::Duo[{ :ruby => :statistic }, :do => :something].encode 'abc'
- #
- # The options are forwarded to scanner and encoder
- # (see CodeRay.get_scanner_options).
- def initialize lang = nil, format = nil, options = {}
- if format == nil and lang.is_a? Hash and lang.size == 1
- @lang = lang.keys.first
- @format = lang[@lang]
- else
- @lang = lang
- @format = format
- end
- @options = options
- end
-
- class << self
- # To allow calls like Duo[:ruby, :html].highlight.
- alias [] new
- end
-
- # The scanner of the duo. Only created once.
- def scanner
- @scanner ||= CodeRay.scanner @lang, CodeRay.get_scanner_options(@options)
- end
-
- # The encoder of the duo. Only created once.
- def encoder
- @encoder ||= CodeRay.encoder @format, @options
- end
-
- # Tokenize and highlight the code using +scanner+ and +encoder+.
- #
- # If the :stream option is set, the Duo will go into streaming mode,
- # saving memory for the cost of time.
- def encode code, options = { :stream => false }
- stream = options.delete :stream
- options = @options.merge options
- if stream
- encoder.encode_stream(code, @lang, options)
- else
- scanner.code = code
- encoder.encode_tokens(scanner.tokenize, options)
- end
- end
- alias highlight encode
-
- end
-
-end
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoder.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoder.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-module CodeRay
-
- # This module holds the Encoder class and its subclasses.
- # For example, the HTML encoder is named CodeRay::Encoders::HTML
- # can be found in coderay/encoders/html.
- #
- # Encoders also provides methods and constants for the register
- # mechanism and the [] method that returns the Encoder class
- # belonging to the given format.
- module Encoders
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'encoders'
-
- # = Encoder
- #
- # The Encoder base class. Together with Scanner and
- # Tokens, it forms the highlighting triad.
- #
- # Encoder instances take a Tokens object and do something with it.
- #
- # The most common Encoder is surely the HTML encoder
- # (CodeRay::Encoders::HTML). It highlights the code in a colorful
- # html page.
- # If you want the highlighted code in a div or a span instead,
- # use its subclasses Div and Span.
- class Encoder
- extend Plugin
- plugin_host Encoders
-
- attr_reader :token_stream
-
- class << self
-
- # Returns if the Encoder can be used in streaming mode.
- def streamable?
- is_a? Streamable
- end
-
- # If FILE_EXTENSION isn't defined, this method returns the
- # downcase class name instead.
- def const_missing sym
- if sym == :FILE_EXTENSION
- plugin_id
- else
- super
- end
- end
-
- end
-
- # Subclasses are to store their default options in this constant.
- DEFAULT_OPTIONS = { :stream => false }
-
- # The options you gave the Encoder at creating.
- attr_accessor :options
-
- # Creates a new Encoder.
- # +options+ is saved and used for all encode operations, as long
- # as you don't overwrite it there by passing additional options.
- #
- # Encoder objects provide three encode methods:
- # - encode simply takes a +code+ string and a +lang+
- # - encode_tokens expects a +tokens+ object instead
- # - encode_stream is like encode, but uses streaming mode.
- #
- # Each method has an optional +options+ parameter. These are
- # added to the options you passed at creation.
- def initialize options = {}
- @options = self.class::DEFAULT_OPTIONS.merge options
- raise "I am only the basic Encoder class. I can't encode "\
- "anything. :( Use my subclasses." if self.class == Encoder
- end
-
- # Encode a Tokens object.
- def encode_tokens tokens, options = {}
- options = @options.merge options
- setup options
- compile tokens, options
- finish options
- end
-
- # Encode the given +code+ after tokenizing it using the Scanner
- # for +lang+.
- def encode code, lang, options = {}
- options = @options.merge options
- scanner_options = CodeRay.get_scanner_options(options)
- tokens = CodeRay.scan code, lang, scanner_options
- encode_tokens tokens, options
- end
-
- # You can use highlight instead of encode, if that seems
- # more clear to you.
- alias highlight encode
-
- # Encode the given +code+ using the Scanner for +lang+ in
- # streaming mode.
- def encode_stream code, lang, options = {}
- raise NotStreamableError, self unless kind_of? Streamable
- options = @options.merge options
- setup options
- scanner_options = CodeRay.get_scanner_options options
- @token_stream =
- CodeRay.scan_stream code, lang, scanner_options, &self
- finish options
- end
-
- # Behave like a proc. The token method is converted to a proc.
- def to_proc
- method(:token).to_proc
- end
-
- # Return the default file extension for outputs of this encoder.
- def file_extension
- self.class::FILE_EXTENSION
- end
-
- protected
-
- # Called with merged options before encoding starts.
- # Sets @out to an empty string.
- #
- # See the HTML Encoder for an example of option caching.
- def setup options
- @out = ''
- end
-
- # Called with +content+ and +kind+ of the currently scanned token.
- # For simple scanners, it's enougth to implement this method.
- #
- # By default, it calls text_token or block_token, depending on
- # whether +content+ is a String.
- def token content, kind
- encoded_token =
- if content.is_a? ::String
- text_token content, kind
- elsif content.is_a? ::Symbol
- block_token content, kind
- else
- raise 'Unknown token content type: %p' % [content]
- end
- append_encoded_token_to_output encoded_token
- end
-
- def append_encoded_token_to_output encoded_token
- @out << encoded_token if encoded_token && defined?(@out) && @out
- end
-
- # Called for each text token ([text, kind]), where text is a String.
- def text_token text, kind
- end
-
- # Called for each block (non-text) token ([action, kind]),
- # where +action+ is a Symbol.
- #
- # Calls open_token, close_token, begin_line, and end_line according to
- # the value of +action+.
- def block_token action, kind
- case action
- when :open
- open_token kind
- when :close
- close_token kind
- when :begin_line
- begin_line kind
- when :end_line
- end_line kind
- else
- raise 'unknown block action: %p' % action
- end
- end
-
- # Called for each block token at the start of the block ([:open, kind]).
- def open_token kind
- end
-
- # Called for each block token end of the block ([:close, kind]).
- def close_token kind
- end
-
- # Called for each line token block at the start of the line ([:begin_line, kind]).
- def begin_line kind
- end
-
- # Called for each line token block at the end of the line ([:end_line, kind]).
- def end_line kind
- end
-
- # Called with merged options after encoding starts.
- # The return value is the result of encoding, typically @out.
- def finish options
- @out
- end
-
- # Do the encoding.
- #
- # The already created +tokens+ object must be used; it can be a
- # TokenStream or a Tokens object.
- if RUBY_VERSION >= '1.9'
- def compile tokens, options
- for text, kind in tokens
- token text, kind
- end
- end
- else
- def compile tokens, options
- tokens.each(&self)
- end
- end
-
- end
-
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders
-END
-div.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/div.rb
-END
-text.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/text.rb
-END
-filter.rb
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/filter.rb
-END
-debug.rb
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/debug.rb
-END
-lines_of_code.rb
-K 25
-svn:wc:ra_dav:version-url
-V 91
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/lines_of_code.rb
-END
-count.rb
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/count.rb
-END
-xml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/xml.rb
-END
-span.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/span.rb
-END
-yaml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/yaml.rb
-END
-html.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html.rb
-END
-term.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/term.rb
-END
-statistic.rb
-K 25
-svn:wc:ra_dav:version-url
-V 87
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/statistic.rb
-END
-comment_filter.rb
-K 25
-svn:wc:ra_dav:version-url
-V 92
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/comment_filter.rb
-END
-json.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/json.rb
-END
-token_class_filter.rb
-K 25
-svn:wc:ra_dav:version-url
-V 96
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/token_class_filter.rb
-END
-null.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/null.rb
-END
-page.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/page.rb
-END
-_map.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/_map.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,643 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-div.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-f0c5be15265facadc46889fbbc2613f1
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-232
-
-text.rb
-file
-
-
-
-
-2010-09-23T14:37:45.651759Z
-2914ed90921556a01a79f3fb6d549b09
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-400
-
-filter.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-08591bbd1f20dc7dce67030a294d1636
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1595
-
-debug.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-9e878089035fe9ad88c808bd1a15cf7a
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-835
-
-count.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-c262d84ddbdf37e99ff6bcf6dd6a66c2
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-230
-
-lines_of_code.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-966e154458fb6c665b6d62aa90d07e18
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2395
-
-xml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.651759Z
-ada7effba81bbc28f41efeaef69dcc51
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1367
-
-span.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-e4228be45ad0f818a0e125caee838d56
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-236
-
-html
-dir
-
-yaml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.651759Z
-04c428b240ef44de896ad15827cf51df
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-264
-
-html.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-85370d734631d5ad2c034541e66e2910
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7856
-
-comment_filter.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-32f2d1a9db6f58636d3946a43b5a60f0
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-808
-
-statistic.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-49017735ef679f73dd65795e30d8e5c7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1800
-
-term.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-422a51cd181de3cc0a55aba7f9915c18
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4324
-
-json.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-86a2dcae2ef0a971f70386c3b794469f
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1570
-
-null.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-9c9dcf3ba3f2effa5ebd4cd37417db36
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-320
-
-token_class_filter.rb
-file
-
-
-
-
-2010-09-23T14:37:45.651759Z
-e59791dbcdce328f09240e7e5c8b3d0e
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2546
-
-page.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-26da5aef43dc8731fbd63dcffea259bf
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-262
-
-_map.rb
-file
-
-
-
-
-2010-09-23T14:37:45.643761Z
-964d7ee16d213ab2e41418257f1eb8aa
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-167
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/comment_filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/comment_filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/count.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/count.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/debug.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/debug.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/div.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/div.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/html.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/html.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/json.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/json.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/lines_of_code.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/lines_of_code.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/null.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/null.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/page.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/page.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/span.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/span.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/statistic.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/statistic.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/term.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/term.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/text.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/text.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/token_class_filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/token_class_filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/xml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/xml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/yaml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/prop-base/yaml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module CodeRay
-module Encoders
-
- map \
- :loc => :lines_of_code,
- :plain => :text,
- :stats => :statistic,
- :terminal => :term,
- :tex => :latex
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/comment_filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/comment_filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- load :token_class_filter
-
- class CommentFilter < TokenClassFilter
-
- register_for :comment_filter
-
- DEFAULT_OPTIONS = superclass::DEFAULT_OPTIONS.merge \
- :exclude => [:comment]
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class CommentFilterTest < Test::Unit::TestCase
-
- def test_filtering_comments
- tokens = CodeRay.scan <<-RUBY, :ruby
-#!/usr/bin/env ruby
-# a minimal Ruby program
-puts "Hello world!"
- RUBY
- assert_equal <<-RUBY_FILTERED, tokens.comment_filter.text
-#!/usr/bin/env ruby
-
-puts "Hello world!"
- RUBY_FILTERED
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/count.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/count.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module CodeRay
-module Encoders
-
- class Count < Encoder
-
- include Streamable
- register_for :count
-
- protected
-
- def setup options
- @out = 0
- end
-
- def token text, kind
- @out += 1
- end
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/debug.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/debug.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Debug Encoder
- #
- # Fast encoder producing simple debug output.
- #
- # It is readable and diff-able and is used for testing.
- #
- # You cannot fully restore the tokens information from the
- # output, because consecutive :space tokens are merged.
- # Use Tokens#dump for caching purposes.
- class Debug < Encoder
-
- include Streamable
- register_for :debug
-
- FILE_EXTENSION = 'raydebug'
-
- protected
- def text_token text, kind
- if kind == :space
- text
- else
- text = text.gsub(/[)\\]/, '\\\\\0') # escape ) and \
- "#{kind}(#{text})"
- end
- end
-
- def open_token kind
- "#{kind}<"
- end
-
- def close_token kind
- ">"
- end
-
- def begin_line kind
- "#{kind}["
- end
-
- def end_line kind
- "]"
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/div.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/div.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Div < HTML
-
- FILE_EXTENSION = 'div.html'
-
- register_for :div
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :div
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- class Filter < Encoder
-
- register_for :filter
-
- protected
- def setup options
- @out = Tokens.new
- end
-
- def text_token text, kind
- [text, kind] if include_text_token? text, kind
- end
-
- def include_text_token? text, kind
- true
- end
-
- def block_token action, kind
- [action, kind] if include_block_token? action, kind
- end
-
- def include_block_token? action, kind
- true
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class FilterTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :filter
- end
- assert_kind_of CodeRay::Encoders::Encoder, filter
- end
-
- def test_filtering_text_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [i.to_s, :index]
- end
- assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
- assert_equal tokens, tokens.filter
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [:open, :index]
- tokens << [i.to_s, :content]
- tokens << [:close, :index]
- end
- assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
- assert_equal tokens, tokens.filter
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/html.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/html.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-require 'set'
-
-module CodeRay
-module Encoders
-
- # = HTML Encoder
- #
- # This is CodeRay's most important highlighter:
- # It provides save, fast XHTML generation and CSS support.
- #
- # == Usage
- #
- # require 'coderay'
- # puts CodeRay.scan('Some /code/', :ruby).html #-> a HTML page
- # puts CodeRay.scan('Some /code/', :ruby).html(:wrap => :span)
- # #-> Some /code/
- # puts CodeRay.scan('Some /code/', :ruby).span #-> the same
- #
- # puts CodeRay.scan('Some code', :ruby).html(
- # :wrap => nil,
- # :line_numbers => :inline,
- # :css => :style
- # )
- # #-> 1 Some code
- #
- # == Options
- #
- # === :tab_width
- # Convert \t characters to +n+ spaces (a number.)
- # Default: 8
- #
- # === :css
- # How to include the styles; can be :class or :style.
- #
- # Default: :class
- #
- # === :wrap
- # Wrap in :page, :div, :span or nil.
- #
- # You can also use Encoders::Div and Encoders::Span.
- #
- # Default: nil
- #
- # === :title
- #
- # The title of the HTML page (works only when :wrap is set to :page.)
- #
- # Default: 'CodeRay output'
- #
- # === :line_numbers
- # Include line numbers in :table, :inline, :list or nil (no line numbers)
- #
- # Default: nil
- #
- # === :line_number_start
- # Where to start with line number counting.
- #
- # Default: 1
- #
- # === :bold_every
- # Make every +n+-th number appear bold.
- #
- # Default: 10
- #
- # === :highlight_lines
- #
- # Highlights certain line numbers.
- # Can be any Enumerable, typically just an Array or Range, of numbers.
- #
- # Bolding is deactivated when :highlight_lines is set. It only makes sense
- # in combination with :line_numbers.
- #
- # Default: nil
- #
- # === :hint
- # Include some information into the output using the title attribute.
- # Can be :info (show token type on mouse-over), :info_long (with full path)
- # or :debug (via inspect).
- #
- # Default: false
- class HTML < Encoder
-
- include Streamable
- register_for :html
-
- FILE_EXTENSION = 'html'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
-
- :css => :class,
-
- :style => :cycnus,
- :wrap => nil,
- :title => 'CodeRay output',
-
- :line_numbers => nil,
- :line_number_start => 1,
- :bold_every => 10,
- :highlight_lines => nil,
-
- :hint => false,
- }
-
- helper :output, :css
-
- attr_reader :css
-
- protected
-
- HTML_ESCAPE = { #:nodoc:
- '&' => '&',
- '"' => '"',
- '>' => '>',
- '<' => '<',
- }
-
- # This was to prevent illegal HTML.
- # Strange chars should still be avoided in codes.
- evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
- evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
- #ansi_chars = Array(0x7f..0xff)
- #ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '%d;' % i }
- # \x9 (\t) and \xA (\n) not included
- #HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
- HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
-
- TOKEN_KIND_TO_INFO = Hash.new { |h, kind|
- h[kind] =
- case kind
- when :pre_constant
- 'Predefined constant'
- else
- kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
- end
- }
-
- TRANSPARENT_TOKEN_KINDS = [
- :delimiter, :modifier, :content, :escape, :inline_delimiter,
- ].to_set
-
- # Generate a hint about the given +classes+ in a +hint+ style.
- #
- # +hint+ may be :info, :info_long or :debug.
- def self.token_path_to_hint hint, classes
- title =
- case hint
- when :info
- TOKEN_KIND_TO_INFO[classes.first]
- when :info_long
- classes.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
- when :debug
- classes.inspect
- end
- title ? " title=\"#{title}\"" : ''
- end
-
- def setup options
- super
-
- @HTML_ESCAPE = HTML_ESCAPE.dup
- @HTML_ESCAPE["\t"] = ' ' * options[:tab_width]
-
- @opened = [nil]
- @css = CSS.new options[:style]
-
- hint = options[:hint]
- if hint and not [:debug, :info, :info_long].include? hint
- raise ArgumentError, "Unknown value %p for :hint; \
- expected :info, :debug, false, or nil." % hint
- end
-
- case options[:css]
-
- when :class
- @css_style = Hash.new do |h, k|
- c = CodeRay::Tokens::ClassOfKind[k.first]
- if c == :NO_HIGHLIGHT and not hint
- h[k.dup] = false
- else
- title = if hint
- HTML.token_path_to_hint(hint, k[1..-1] << k.first)
- else
- ''
- end
- if c == :NO_HIGHLIGHT
- h[k.dup] = ' ' % [title]
- else
- h[k.dup] = '' % [title, c]
- end
- end
- end
-
- when :style
- @css_style = Hash.new do |h, k|
- if k.is_a? ::Array
- styles = k.dup
- else
- styles = [k]
- end
- type = styles.first
- classes = styles.map { |c| Tokens::ClassOfKind[c] }
- if classes.first == :NO_HIGHLIGHT and not hint
- h[k] = false
- else
- styles.shift if TRANSPARENT_TOKEN_KINDS.include? styles.first
- title = HTML.token_path_to_hint hint, styles
- style = @css[*classes]
- h[k] =
- if style
- '' % [title, style]
- else
- false
- end
- end
- end
-
- else
- raise ArgumentError, "Unknown value %p for :css." % options[:css]
-
- end
- end
-
- def finish options
- not_needed = @opened.shift
- @out << '' * @opened.size
- unless @opened.empty?
- warn '%d tokens still open: %p' % [@opened.size, @opened]
- end
-
- @out.extend Output
- @out.css = @css
- @out.numerize! options[:line_numbers], options
- @out.wrap! options[:wrap]
- @out.apply_title! options[:title]
-
- super
- end
-
- def token text, type = :plain
- case text
-
- when nil
- # raise 'Token with nil as text was given: %p' % [[text, type]]
-
- when String
- if text =~ /#{HTML_ESCAPE_PATTERN}/o
- text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] }
- end
- @opened[0] = type
- if text != "\n" && style = @css_style[@opened]
- @out << style << text << ''
- else
- @out << text
- end
-
-
- # token groups, eg. strings
- when :open
- @opened[0] = type
- @out << (@css_style[@opened] || '')
- @opened << type
- when :close
- if @opened.empty?
- # nothing to close
- else
- if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
- raise 'Malformed token stream: Trying to close a token (%p) \
- that is not open. Open are: %p.' % [type, @opened[1..-1]]
- end
- @out << ''
- @opened.pop
- end
-
- # whole lines to be highlighted, eg. a deleted line in a diff
- when :begin_line
- @opened[0] = type
- if style = @css_style[@opened]
- @out << style.sub(''
- end
- @opened << type
- when :end_line
- if @opened.empty?
- # nothing to close
- else
- if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
- raise 'Malformed token stream: Trying to close a line (%p) \
- that is not open. Open are: %p.' % [type, @opened[1..-1]]
- end
- @out << ''
- @opened.pop
- end
-
- else
- raise 'unknown token kind: %p' % [text]
-
- end
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/json.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/json.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- # = JSON Encoder
- class JSON < Encoder
-
- register_for :json
- FILE_EXTENSION = 'json'
-
- protected
- def setup options
- begin
- require 'json'
- rescue LoadError
- require 'rubygems'
- require 'json'
- end
- @out = []
- end
-
- def text_token text, kind
- { :type => 'text', :text => text, :kind => kind }
- end
-
- def block_token action, kind
- { :type => 'block', :action => action, :kind => kind }
- end
-
- def finish options
- @out.to_json
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-$:.delete '.'
-require 'rubygems' if RUBY_VERSION < '1.9'
-
-class JSONEncoderTest < Test::Unit::TestCase
-
- def test_json_output
- tokens = CodeRay.scan <<-RUBY, :ruby
-puts "Hello world!"
- RUBY
- require 'json'
- assert_equal [
- {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
- {"type"=>"text", "text"=>" ", "kind"=>"space"},
- {"type"=>"block", "action"=>"open", "kind"=>"string"},
- {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
- {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- {"type"=>"block", "action"=>"close", "kind"=>"string"},
- {"type"=>"text", "text"=>"\n", "kind"=>"space"}
- ], JSON.load(tokens.json)
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/lines_of_code.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/lines_of_code.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- # Counts the LoC (Lines of Code). Returns an Integer >= 0.
- #
- # Alias: :loc
- #
- # Everything that is not comment, markup, doctype/shebang, or an empty line,
- # is considered to be code.
- #
- # For example,
- # * HTML files not containing JavaScript have 0 LoC
- # * in a Java class without comments, LoC is the number of non-empty lines
- #
- # A Scanner class should define the token kinds that are not code in the
- # KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].
- class LinesOfCode < Encoder
-
- register_for :lines_of_code
-
- NON_EMPTY_LINE = /^\s*\S.*$/
-
- def compile tokens, options
- if scanner = tokens.scanner
- kinds_not_loc = scanner.class::KINDS_NOT_LOC
- else
- warn ArgumentError, 'Tokens have no scanner.' if $VERBOSE
- kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
- end
- code = tokens.token_class_filter :exclude => kinds_not_loc
- @loc = code.text.scan(NON_EMPTY_LINE).size
- end
-
- def finish options
- @loc
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class LinesOfCodeTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::LinesOfCode < CodeRay::Encoders::Encoder
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :loc
- end
- assert_kind_of CodeRay::Encoders::LinesOfCode, filter
- assert_nothing_raised do
- filter = CodeRay.encoder :lines_of_code
- end
- assert_kind_of CodeRay::Encoders::LinesOfCode, filter
- end
-
- def test_lines_of_code
- tokens = CodeRay.scan <<-RUBY, :ruby
-#!/usr/bin/env ruby
-
-# a minimal Ruby program
-puts "Hello world!"
- RUBY
- assert_equal 1, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
- assert_equal 1, tokens.lines_of_code
- assert_equal 1, tokens.loc
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- tokens << ["Hello\n", :world]
- tokens << ["Hello\n", :space]
- tokens << ["Hello\n", :comment]
- assert_equal 2, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
- assert_equal 2, tokens.lines_of_code
- assert_equal 2, tokens.loc
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/null.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/null.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Null Encoder
- #
- # Does nothing and returns an empty string.
- class Null < Encoder
-
- include Streamable
- register_for :null
-
- # Defined for faster processing
- def to_proc
- proc {}
- end
-
- protected
-
- def token(*)
- # do nothing
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/page.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/page.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Page < HTML
-
- FILE_EXTENSION = 'html'
-
- register_for :page
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :class,
- :wrap => :page,
- :line_numbers => :table
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/span.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/span.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Span < HTML
-
- FILE_EXTENSION = 'span.html'
-
- register_for :span
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :span
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/statistic.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/statistic.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-module CodeRay
-module Encoders
-
- # Makes a statistic for the given tokens.
- class Statistic < Encoder
-
- include Streamable
- register_for :stats, :statistic
-
- attr_reader :type_stats, :real_token_count
-
- protected
-
- TypeStats = Struct.new :count, :size
-
- def setup options
- @type_stats = Hash.new { |h, k| h[k] = TypeStats.new 0, 0 }
- @real_token_count = 0
- end
-
- def generate tokens, options
- @tokens = tokens
- super
- end
-
- def text_token text, kind
- @real_token_count += 1 unless kind == :space
- @type_stats[kind].count += 1
- @type_stats[kind].size += text.size
- @type_stats['TOTAL'].size += text.size
- @type_stats['TOTAL'].count += 1
- end
-
- # TODO Hierarchy handling
- def block_token action, kind
- @type_stats['TOTAL'].count += 1
- @type_stats['open/close'].count += 1
- end
-
- STATS = <<-STATS
-
-Code Statistics
-
-Tokens %8d
- Non-Whitespace %8d
-Bytes Total %8d
-
-Token Types (%d):
- type count ratio size (average)
--------------------------------------------------------------
-%s
- STATS
-# space 12007 33.81 % 1.7
- TOKEN_TYPES_ROW = <<-TKR
- %-20s %8d %6.2f %% %5.1f
- TKR
-
- def finish options
- all = @type_stats['TOTAL']
- all_count, all_size = all.count, all.size
- @type_stats.each do |type, stat|
- stat.size /= stat.count.to_f
- end
- types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
- TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
- end.join
- STATS % [
- all_count, @real_token_count, all_size,
- @type_stats.delete_if { |k, v| k.is_a? String }.size,
- types_stats
- ]
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/term.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/term.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-# encoders/term.rb
-# By Rob Aldred (http://robaldred.co.uk)
-# Based on idea by Nathan Weizenbaum (http://nex-3.com)
-# MIT License (http://www.opensource.org/licenses/mit-license.php)
-#
-# A CodeRay encoder that outputs code highlighted for a color terminal.
-# Check out http://robaldred.co.uk
-
-module CodeRay
- module Encoders
- class Term < Encoder
- register_for :term
-
- TOKEN_COLORS = {
- :annotation => '35',
- :attribute_name => '33',
- :attribute_name_fat => '33',
- :attribute_value => '31',
- :attribute_value_fat => '31',
- :bin => '1;35',
- :char => {:self => '36', :delimiter => '34'},
- :class => '1;35',
- :class_variable => '36',
- :color => '32',
- :comment => '37',
- :complex => '34',
- :constant => ['34', '4'],
- :decoration => '35',
- :definition => '1;32',
- :directive => ['32', '4'],
- :doc => '46',
- :doctype => '1;30',
- :doc_string => ['31', '4'],
- :entity => '33',
- :error => ['1;33', '41'],
- :exception => '1;31',
- :float => '1;35',
- :function => '1;34',
- :global_variable => '42',
- :hex => '1;36',
- :important => '1;31',
- :include => '33',
- :integer => '1;34',
- :interpreted => '1;35',
- :key => '35',
- :label => '1;4',
- :local_variable => '33',
- :oct => '1;35',
- :operator_name => '1;29',
- :pre_constant => '1;36',
- :pre_type => '1;30',
- :predefined => ['4', '1;34'],
- :preprocessor => '36',
- :pseudo_class => '34',
- :regexp => {
- :content => '31',
- :delimiter => '1;29',
- :modifier => '35',
- :function => '1;29'
- },
- :reserved => '1;31',
- :shell => {
- :self => '42',
- :content => '1;29',
- :delimiter => '37',
- },
- :string => {
- :self => '32',
- :modifier => '1;32',
- :escape => '1;36',
- :delimiter => '1;32',
- },
- :symbol => '1;32',
- :tag => '34',
- :tag_fat => '1;34',
- :tag_special => ['34', '4'],
- :type => '1;34',
- :value => '36',
- :variable => '34',
- :insert => '42',
- :delete => '41',
- :change => '44',
- :head => '45',
- }
- TOKEN_COLORS[:keyword] = TOKEN_COLORS[:reserved]
- TOKEN_COLORS[:method] = TOKEN_COLORS[:function]
- TOKEN_COLORS[:imaginary] = TOKEN_COLORS[:complex]
- TOKEN_COLORS[:open] = TOKEN_COLORS[:close] = TOKEN_COLORS[:nesting_delimiter] = TOKEN_COLORS[:escape] = TOKEN_COLORS[:delimiter]
-
- protected
-
- def setup(options)
- @out = ''
- @opened = [nil]
- @subcolors = nil
- end
-
- def finish(options)
- super
- end
-
- def token text, type = :plain
- case text
-
- when nil
- # raise 'Token with nil as text was given: %p' % [[text, type]]
-
- when String
-
- if color = (@subcolors || TOKEN_COLORS)[type]
- color = color[:self] || return if Hash === color
-
- @out << col(color) + text.gsub("\n", col(0) + "\n" + col(color)) + col(0)
- @out << col(@subcolors[:self]) if @subcolors && @subcolors[:self]
- else
- @out << text
- end
-
- # token groups, eg. strings
- when :open
- @opened[0] = type
- if color = TOKEN_COLORS[type]
- if Hash === color
- @subcolors = color
- @out << col(color[:self]) if color[:self]
- else
- @subcolors = {}
- @out << col(color)
- end
- end
- @opened << type
- when :close
- if @opened.empty?
- # nothing to close
- else
- @out << col(0) if (@subcolors || {})[:self]
- @subcolors = nil
- @opened.pop
- end
-
- # whole lines to be highlighted, eg. a added/modified/deleted lines in a diff
- when :begin_line
-
- when :end_line
-
- else
- raise 'unknown token kind: %p' % [text]
- end
- end
-
- private
-
- def col(color)
- Array(color).map { |c| "\e[#{c}m" }.join
- end
- end
- end
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/text.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/text.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-module CodeRay
-module Encoders
-
- class Text < Encoder
-
- include Streamable
- register_for :text
-
- FILE_EXTENSION = 'txt'
-
- DEFAULT_OPTIONS = {
- :separator => ''
- }
-
- protected
- def setup options
- super
- @sep = options[:separator]
- end
-
- def text_token text, kind
- text + @sep
- end
-
- def finish options
- super.chomp @sep
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/token_class_filter.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/token_class_filter.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- load :filter
-
- class TokenClassFilter < Filter
-
- include Streamable
- register_for :token_class_filter
-
- DEFAULT_OPTIONS = {
- :exclude => [],
- :include => :all
- }
-
- protected
- def setup options
- super
- @exclude = options[:exclude]
- @exclude = Array(@exclude) unless @exclude == :all
- @include = options[:include]
- @include = Array(@include) unless @include == :all
- end
-
- def include_text_token? text, kind
- (@include == :all || @include.include?(kind)) &&
- !(@exclude == :all || @exclude.include?(kind))
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class TokenClassFilterTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Encoder
- assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Filter
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :token_class_filter
- end
- assert_instance_of CodeRay::Encoders::TokenClassFilter, filter
- end
-
- def test_filtering_text_tokens
- tokens = CodeRay::Tokens.new
- for i in 1..10
- tokens << [i.to_s, :index]
- tokens << [' ', :space] if i < 10
- end
- assert_equal 10, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :space).size
- assert_equal 10, tokens.token_class_filter(:exclude => :space).size
- assert_equal 9, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :space).size
- assert_equal 9, tokens.token_class_filter(:include => :space).size
- assert_equal 0, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :all).size
- assert_equal 0, tokens.token_class_filter(:exclude => :all).size
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [:open, :index]
- tokens << [i.to_s, :content]
- tokens << [:close, :index]
- end
- assert_equal 20, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :blubb).size
- assert_equal 20, tokens.token_class_filter(:include => :blubb).size
- assert_equal 30, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :index).size
- assert_equal 30, tokens.token_class_filter(:exclude => :index).size
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/xml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/xml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-module CodeRay
-module Encoders
-
- # = XML Encoder
- #
- # Uses REXML. Very slow.
- class XML < Encoder
-
- include Streamable
- register_for :xml
-
- FILE_EXTENSION = 'xml'
-
- require 'rexml/document'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
- :pretty => -1,
- :transitive => false,
- }
-
- protected
-
- def setup options
- @doc = REXML::Document.new
- @doc << REXML::XMLDecl.new
- @tab_width = options[:tab_width]
- @root = @node = @doc.add_element('coderay-tokens')
- end
-
- def finish options
- @out = ''
- @doc.write @out, options[:pretty], options[:transitive], true
- @out
- end
-
- def text_token text, kind
- if kind == :space
- token = @node
- else
- token = @node.add_element kind.to_s
- end
- text.scan(/(\x20+)|(\t+)|(\n)|[^\x20\t\n]+/) do |space, tab, nl|
- case
- when space
- token << REXML::Text.new(space, true)
- when tab
- token << REXML::Text.new(tab, true)
- when nl
- token << REXML::Text.new(nl, true)
- else
- token << REXML::Text.new($&)
- end
- end
- end
-
- def open_token kind
- @node = @node.add_element kind.to_s
- end
-
- def close_token kind
- if @node == @root
- raise 'no token to close!'
- end
- @node = @node.parent
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/yaml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/text-base/yaml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module CodeRay
-module Encoders
-
- # = YAML Encoder
- #
- # Slow.
- class YAML < Encoder
-
- register_for :yaml
-
- FILE_EXTENSION = 'yaml'
-
- protected
- def compile tokens, options
- require 'yaml'
- @out = tokens.to_a.to_yaml
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/_map.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module CodeRay
-module Encoders
-
- map \
- :loc => :lines_of_code,
- :plain => :text,
- :stats => :statistic,
- :terminal => :term,
- :tex => :latex
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/comment_filter.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/comment_filter.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- load :token_class_filter
-
- class CommentFilter < TokenClassFilter
-
- register_for :comment_filter
-
- DEFAULT_OPTIONS = superclass::DEFAULT_OPTIONS.merge \
- :exclude => [:comment]
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class CommentFilterTest < Test::Unit::TestCase
-
- def test_filtering_comments
- tokens = CodeRay.scan <<-RUBY, :ruby
-#!/usr/bin/env ruby
-# a minimal Ruby program
-puts "Hello world!"
- RUBY
- assert_equal <<-RUBY_FILTERED, tokens.comment_filter.text
-#!/usr/bin/env ruby
-
-puts "Hello world!"
- RUBY_FILTERED
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/count.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/count.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module CodeRay
-module Encoders
-
- class Count < Encoder
-
- include Streamable
- register_for :count
-
- protected
-
- def setup options
- @out = 0
- end
-
- def token text, kind
- @out += 1
- end
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/debug.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/debug.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Debug Encoder
- #
- # Fast encoder producing simple debug output.
- #
- # It is readable and diff-able and is used for testing.
- #
- # You cannot fully restore the tokens information from the
- # output, because consecutive :space tokens are merged.
- # Use Tokens#dump for caching purposes.
- class Debug < Encoder
-
- include Streamable
- register_for :debug
-
- FILE_EXTENSION = 'raydebug'
-
- protected
- def text_token text, kind
- if kind == :space
- text
- else
- text = text.gsub(/[)\\]/, '\\\\\0') # escape ) and \
- "#{kind}(#{text})"
- end
- end
-
- def open_token kind
- "#{kind}<"
- end
-
- def close_token kind
- ">"
- end
-
- def begin_line kind
- "#{kind}["
- end
-
- def end_line kind
- "]"
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/div.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/div.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Div < HTML
-
- FILE_EXTENSION = 'div.html'
-
- register_for :div
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :div
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/filter.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/filter.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- class Filter < Encoder
-
- register_for :filter
-
- protected
- def setup options
- @out = Tokens.new
- end
-
- def text_token text, kind
- [text, kind] if include_text_token? text, kind
- end
-
- def include_text_token? text, kind
- true
- end
-
- def block_token action, kind
- [action, kind] if include_block_token? action, kind
- end
-
- def include_block_token? action, kind
- true
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class FilterTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :filter
- end
- assert_kind_of CodeRay::Encoders::Encoder, filter
- end
-
- def test_filtering_text_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [i.to_s, :index]
- end
- assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
- assert_equal tokens, tokens.filter
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [:open, :index]
- tokens << [i.to_s, :content]
- tokens << [:close, :index]
- end
- assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
- assert_equal tokens, tokens.filter
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-require 'set'
-
-module CodeRay
-module Encoders
-
- # = HTML Encoder
- #
- # This is CodeRay's most important highlighter:
- # It provides save, fast XHTML generation and CSS support.
- #
- # == Usage
- #
- # require 'coderay'
- # puts CodeRay.scan('Some /code/', :ruby).html #-> a HTML page
- # puts CodeRay.scan('Some /code/', :ruby).html(:wrap => :span)
- # #-> Some /code/
- # puts CodeRay.scan('Some /code/', :ruby).span #-> the same
- #
- # puts CodeRay.scan('Some code', :ruby).html(
- # :wrap => nil,
- # :line_numbers => :inline,
- # :css => :style
- # )
- # #-> 1 Some code
- #
- # == Options
- #
- # === :tab_width
- # Convert \t characters to +n+ spaces (a number.)
- # Default: 8
- #
- # === :css
- # How to include the styles; can be :class or :style.
- #
- # Default: :class
- #
- # === :wrap
- # Wrap in :page, :div, :span or nil.
- #
- # You can also use Encoders::Div and Encoders::Span.
- #
- # Default: nil
- #
- # === :title
- #
- # The title of the HTML page (works only when :wrap is set to :page.)
- #
- # Default: 'CodeRay output'
- #
- # === :line_numbers
- # Include line numbers in :table, :inline, :list or nil (no line numbers)
- #
- # Default: nil
- #
- # === :line_number_start
- # Where to start with line number counting.
- #
- # Default: 1
- #
- # === :bold_every
- # Make every +n+-th number appear bold.
- #
- # Default: 10
- #
- # === :highlight_lines
- #
- # Highlights certain line numbers.
- # Can be any Enumerable, typically just an Array or Range, of numbers.
- #
- # Bolding is deactivated when :highlight_lines is set. It only makes sense
- # in combination with :line_numbers.
- #
- # Default: nil
- #
- # === :hint
- # Include some information into the output using the title attribute.
- # Can be :info (show token type on mouse-over), :info_long (with full path)
- # or :debug (via inspect).
- #
- # Default: false
- class HTML < Encoder
-
- include Streamable
- register_for :html
-
- FILE_EXTENSION = 'html'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
-
- :css => :class,
-
- :style => :cycnus,
- :wrap => nil,
- :title => 'CodeRay output',
-
- :line_numbers => nil,
- :line_number_start => 1,
- :bold_every => 10,
- :highlight_lines => nil,
-
- :hint => false,
- }
-
- helper :output, :css
-
- attr_reader :css
-
- protected
-
- HTML_ESCAPE = { #:nodoc:
- '&' => '&',
- '"' => '"',
- '>' => '>',
- '<' => '<',
- }
-
- # This was to prevent illegal HTML.
- # Strange chars should still be avoided in codes.
- evil_chars = Array(0x00...0x20) - [?\n, ?\t, ?\s]
- evil_chars.each { |i| HTML_ESCAPE[i.chr] = ' ' }
- #ansi_chars = Array(0x7f..0xff)
- #ansi_chars.each { |i| HTML_ESCAPE[i.chr] = '%d;' % i }
- # \x9 (\t) and \xA (\n) not included
- #HTML_ESCAPE_PATTERN = /[\t&"><\0-\x8\xB-\x1f\x7f-\xff]/
- HTML_ESCAPE_PATTERN = /[\t"&><\0-\x8\xB-\x1f]/
-
- TOKEN_KIND_TO_INFO = Hash.new { |h, kind|
- h[kind] =
- case kind
- when :pre_constant
- 'Predefined constant'
- else
- kind.to_s.gsub(/_/, ' ').gsub(/\b\w/) { $&.capitalize }
- end
- }
-
- TRANSPARENT_TOKEN_KINDS = [
- :delimiter, :modifier, :content, :escape, :inline_delimiter,
- ].to_set
-
- # Generate a hint about the given +classes+ in a +hint+ style.
- #
- # +hint+ may be :info, :info_long or :debug.
- def self.token_path_to_hint hint, classes
- title =
- case hint
- when :info
- TOKEN_KIND_TO_INFO[classes.first]
- when :info_long
- classes.reverse.map { |kind| TOKEN_KIND_TO_INFO[kind] }.join('/')
- when :debug
- classes.inspect
- end
- title ? " title=\"#{title}\"" : ''
- end
-
- def setup options
- super
-
- @HTML_ESCAPE = HTML_ESCAPE.dup
- @HTML_ESCAPE["\t"] = ' ' * options[:tab_width]
-
- @opened = [nil]
- @css = CSS.new options[:style]
-
- hint = options[:hint]
- if hint and not [:debug, :info, :info_long].include? hint
- raise ArgumentError, "Unknown value %p for :hint; \
- expected :info, :debug, false, or nil." % hint
- end
-
- case options[:css]
-
- when :class
- @css_style = Hash.new do |h, k|
- c = CodeRay::Tokens::ClassOfKind[k.first]
- if c == :NO_HIGHLIGHT and not hint
- h[k.dup] = false
- else
- title = if hint
- HTML.token_path_to_hint(hint, k[1..-1] << k.first)
- else
- ''
- end
- if c == :NO_HIGHLIGHT
- h[k.dup] = ' ' % [title]
- else
- h[k.dup] = '' % [title, c]
- end
- end
- end
-
- when :style
- @css_style = Hash.new do |h, k|
- if k.is_a? ::Array
- styles = k.dup
- else
- styles = [k]
- end
- type = styles.first
- classes = styles.map { |c| Tokens::ClassOfKind[c] }
- if classes.first == :NO_HIGHLIGHT and not hint
- h[k] = false
- else
- styles.shift if TRANSPARENT_TOKEN_KINDS.include? styles.first
- title = HTML.token_path_to_hint hint, styles
- style = @css[*classes]
- h[k] =
- if style
- '' % [title, style]
- else
- false
- end
- end
- end
-
- else
- raise ArgumentError, "Unknown value %p for :css." % options[:css]
-
- end
- end
-
- def finish options
- not_needed = @opened.shift
- @out << '' * @opened.size
- unless @opened.empty?
- warn '%d tokens still open: %p' % [@opened.size, @opened]
- end
-
- @out.extend Output
- @out.css = @css
- @out.numerize! options[:line_numbers], options
- @out.wrap! options[:wrap]
- @out.apply_title! options[:title]
-
- super
- end
-
- def token text, type = :plain
- case text
-
- when nil
- # raise 'Token with nil as text was given: %p' % [[text, type]]
-
- when String
- if text =~ /#{HTML_ESCAPE_PATTERN}/o
- text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] }
- end
- @opened[0] = type
- if text != "\n" && style = @css_style[@opened]
- @out << style << text << ''
- else
- @out << text
- end
-
-
- # token groups, eg. strings
- when :open
- @opened[0] = type
- @out << (@css_style[@opened] || '')
- @opened << type
- when :close
- if @opened.empty?
- # nothing to close
- else
- if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
- raise 'Malformed token stream: Trying to close a token (%p) \
- that is not open. Open are: %p.' % [type, @opened[1..-1]]
- end
- @out << ''
- @opened.pop
- end
-
- # whole lines to be highlighted, eg. a deleted line in a diff
- when :begin_line
- @opened[0] = type
- if style = @css_style[@opened]
- @out << style.sub(''
- end
- @opened << type
- when :end_line
- if @opened.empty?
- # nothing to close
- else
- if $CODERAY_DEBUG and (@opened.size == 1 or @opened.last != type)
- raise 'Malformed token stream: Trying to close a line (%p) \
- that is not open. Open are: %p.' % [type, @opened[1..-1]]
- end
- @out << ' '
- @opened.pop
- end
-
- else
- raise 'unknown token kind: %p' % [text]
-
- end
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 79
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html
-END
-output.rb
-K 25
-svn:wc:ra_dav:version-url
-V 89
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/output.rb
-END
-numerization.rb
-K 25
-svn:wc:ra_dav:version-url
-V 95
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/numerization.rb
-END
-css.rb
-K 25
-svn:wc:ra_dav:version-url
-V 86
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/css.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-output.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-8d0cea50dc9e6743bd10a8e0c6f1db17
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5271
-
-numerization.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-6f9a2f0d033d9af4d4804ecd8751a3f7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4226
-
-css.rb
-file
-
-
-
-
-2010-09-23T14:37:45.647759Z
-aa931c09ed5f16abfed3b7c99f0f684d
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1626
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/css.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/css.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/numerization.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/numerization.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/output.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/prop-base/output.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/css.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/css.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
- class CSS
-
- attr :stylesheet
-
- def CSS.load_stylesheet style = nil
- CodeRay::Styles[style]
- end
-
- def initialize style = :default
- @classes = Hash.new
- style = CSS.load_stylesheet style
- @stylesheet = [
- style::CSS_MAIN_STYLES,
- style::TOKEN_COLORS.gsub(/^(?!$)/, '.CodeRay ')
- ].join("\n")
- parse style::TOKEN_COLORS
- end
-
- def [] *styles
- cl = @classes[styles.first]
- return '' unless cl
- style = ''
- 1.upto(styles.size) do |offset|
- break if style = cl[styles[offset .. -1]]
- end
- # warn 'Style not found: %p' % [styles] if style.empty?
- return style
- end
-
- private
-
- CSS_CLASS_PATTERN = /
- ( # $1 = selectors
- (?:
- (?: \s* \. [-\w]+ )+
- \s* ,?
- )+
- )
- \s* \{ \s*
- ( [^\}]+ )? # $2 = style
- \s* \} \s*
- |
- ( . ) # $3 = error
- /mx
- def parse stylesheet
- stylesheet.scan CSS_CLASS_PATTERN do |selectors, style, error|
- raise "CSS parse error: '#{error.inspect}' not recognized" if error
- for selector in selectors.split(',')
- classes = selector.scan(/[-\w]+/)
- cl = classes.pop
- @classes[cl] ||= Hash.new
- @classes[cl][classes] = style.to_s.strip.delete(' ').chomp(';')
- end
- end
- end
-
- end
- end
-
-end
-end
-
-if $0 == __FILE__
- require 'pp'
- pp CodeRay::Encoders::HTML::CSS.new
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/numerization.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/numerization.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- module Output
-
- def numerize *args
- clone.numerize!(*args)
- end
-
-=begin NUMERIZABLE_WRAPPINGS = {
- :table => [:div, :page, nil],
- :inline => :all,
- :list => [:div, :page, nil]
- }
- NUMERIZABLE_WRAPPINGS.default = :all
-=end
- def numerize! mode = :table, options = {}
- return self unless mode
-
- options = DEFAULT_OPTIONS.merge options
-
- start = options[:line_number_start]
- unless start.is_a? Integer
- raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start
- end
-
- #allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode]
- #unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap]
- # raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]]
- #end
-
- bold_every = options[:bold_every]
- highlight_lines = options[:highlight_lines]
- bolding =
- if bold_every == false && highlight_lines == nil
- proc { |line| line.to_s }
- elsif highlight_lines.is_a? Enumerable
- highlight_lines = highlight_lines.to_set
- proc do |line|
- if highlight_lines.include? line
- "#{line}" # highlighted line numbers in bold
- else
- line.to_s
- end
- end
- elsif bold_every.is_a? Integer
- raise ArgumentError, ":bolding can't be 0." if bold_every == 0
- proc do |line|
- if line % bold_every == 0
- "#{line}" # every bold_every-th number in bold
- else
- line.to_s
- end
- end
- else
- raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
- end
-
- case mode
- when :inline
- max_width = (start + line_count).to_s.size
- line_number = start
- gsub!(/^/) do
- line_number_text = bolding.call line_number
- indent = ' ' * (max_width - line_number.to_s.size) # TODO: Optimize (10^x)
- res = "#{indent}#{line_number_text} "
- line_number += 1
- res
- end
-
- when :table
- # This is really ugly.
- # Because even monospace fonts seem to have different heights when bold,
- # I make the newline bold, both in the code and the line numbers.
- # FIXME Still not working perfect for Mr. Internet Exploder
- line_numbers = (start ... start + line_count).to_a.map(&bolding).join("\n")
- line_numbers << "\n" # also for Mr. MS Internet Exploder :-/
- line_numbers.gsub!(/\n/) { "\n" }
-
- line_numbers_table_tpl = TABLE.apply('LINE_NUMBERS', line_numbers)
- gsub!(/<\/div>\n/) { '' }
- gsub!(/\n/) { " \n" }
- wrap_in! line_numbers_table_tpl
- @wrapped_in = :div
-
- when :list
- opened_tags = []
- gsub!(/^.*$\n?/) do |line|
- line.chomp!
-
- open = opened_tags.join
- line.scan(%r!<(/)?span[^>]*>?!) do |close,|
- if close
- opened_tags.pop
- else
- opened_tags << $&
- end
- end
- close = '' * opened_tags.size
-
- " #{open}#{line}#{close}\n"
- end
- chomp!("\n")
- wrap_in! LIST
- @wrapped_in = :div
-
- else
- raise ArgumentError, 'Unknown value %p for mode: expected one of %p' %
- [mode, [:table, :list, :inline]]
- end
-
- self
- end
-
- def line_count
- line_count = count("\n")
- position_of_last_newline = rindex(?\n)
- if position_of_last_newline
- after_last_newline = self[position_of_last_newline + 1 .. -1]
- ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
- line_count += 1 if not ends_with_newline
- end
- line_count
- end
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/output.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/.svn/text-base/output.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- # This module is included in the output String from thew HTML Encoder.
- #
- # It provides methods like wrap, div, page etc.
- #
- # Remember to use #clone instead of #dup to keep the modules the object was
- # extended with.
- #
- # TODO: more doc.
- module Output
-
- require 'coderay/encoders/html/numerization.rb'
-
- attr_accessor :css
-
- class << self
-
- # This makes Output look like a class.
- #
- # Example:
- #
- # a = Output.new ' Code'
- # a.wrap! :page
- def new string, css = CSS.new, element = nil
- output = string.clone.extend self
- output.wrapped_in = element
- output.css = css
- output
- end
-
- # Raises an exception if an object that doesn't respond to to_str is extended by Output,
- # to prevent users from misuse. Use Module#remove_method to disable.
- def extended o
- warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
- end
-
- def make_stylesheet css, in_tag = false
- sheet = css.stylesheet
- sheet = <<-CSS if in_tag
-
- CSS
- sheet
- end
-
- def page_template_for_css css
- sheet = make_stylesheet css
- PAGE.apply 'CSS', sheet
- end
-
- # Define a new wrapper. This is meta programming.
- def wrapper *wrappers
- wrappers.each do |wrapper|
- define_method wrapper do |*args|
- wrap wrapper, *args
- end
- define_method "#{wrapper}!".to_sym do |*args|
- wrap! wrapper, *args
- end
- end
- end
-
- end
-
- wrapper :div, :span, :page
-
- def wrapped_in? element
- wrapped_in == element
- end
-
- def wrapped_in
- @wrapped_in ||= nil
- end
- attr_writer :wrapped_in
-
- def wrap_in template
- clone.wrap_in! template
- end
-
- def wrap_in! template
- Template.wrap! self, template, 'CONTENT'
- self
- end
-
- def apply_title! title
- self.sub!(/( )(<\/title>)/) { $1 + title + $2 }
- self
- end
-
- def wrap! element, *args
- return self if not element or element == wrapped_in
- case element
- when :div
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! DIV
- when :span
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! SPAN
- when :page
- wrap! :div if wrapped_in? nil
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
- wrap_in! Output.page_template_for_css(@css)
- if args.first.is_a?(Hash) && title = args.first[:title]
- apply_title! title
- end
- self
- when nil
- return self
- else
- raise "Unknown value %p for :wrap" % element
- end
- @wrapped_in = element
- self
- end
-
- def wrap *args
- clone.wrap!(*args)
- end
-
- def stylesheet in_tag = false
- Output.make_stylesheet @css, in_tag
- end
-
- class Template < String
-
- def self.wrap! str, template, target
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if template =~ target
- str[0,0] = $`
- str << $'
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- def apply target, replacement
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if self =~ target
- Template.new($` + replacement + $')
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- module Simple
- def ` str #` <-- for stupid editors
- Template.new str
- end
- end
- end
-
- extend Template::Simple
-
-#-- don't include the templates in docu
-
- SPAN = `<%CONTENT%>`
-
- DIV = <<-`DIV`
-
- DIV
-
- TABLE = <<-`TABLE`
-
- <%LINE_NUMBERS%> |
- <%CONTENT%> |
-
- TABLE
- # title="double click to expand"
-
- LIST = <<-`LIST`
-
-<%CONTENT%>
-
- LIST
-
- PAGE = <<-`PAGE`
-
-
-
-
-
-
-
-
-
-<%CONTENT%>
-
-
- PAGE
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/css.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/css.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
- class CSS
-
- attr :stylesheet
-
- def CSS.load_stylesheet style = nil
- CodeRay::Styles[style]
- end
-
- def initialize style = :default
- @classes = Hash.new
- style = CSS.load_stylesheet style
- @stylesheet = [
- style::CSS_MAIN_STYLES,
- style::TOKEN_COLORS.gsub(/^(?!$)/, '.CodeRay ')
- ].join("\n")
- parse style::TOKEN_COLORS
- end
-
- def [] *styles
- cl = @classes[styles.first]
- return '' unless cl
- style = ''
- 1.upto(styles.size) do |offset|
- break if style = cl[styles[offset .. -1]]
- end
- # warn 'Style not found: %p' % [styles] if style.empty?
- return style
- end
-
- private
-
- CSS_CLASS_PATTERN = /
- ( # $1 = selectors
- (?:
- (?: \s* \. [-\w]+ )+
- \s* ,?
- )+
- )
- \s* \{ \s*
- ( [^\}]+ )? # $2 = style
- \s* \} \s*
- |
- ( . ) # $3 = error
- /mx
- def parse stylesheet
- stylesheet.scan CSS_CLASS_PATTERN do |selectors, style, error|
- raise "CSS parse error: '#{error.inspect}' not recognized" if error
- for selector in selectors.split(',')
- classes = selector.scan(/[-\w]+/)
- cl = classes.pop
- @classes[cl] ||= Hash.new
- @classes[cl][classes] = style.to_s.strip.delete(' ').chomp(';')
- end
- end
- end
-
- end
- end
-
-end
-end
-
-if $0 == __FILE__
- require 'pp'
- pp CodeRay::Encoders::HTML::CSS.new
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/numerization.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/numerization.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- module Output
-
- def numerize *args
- clone.numerize!(*args)
- end
-
-=begin NUMERIZABLE_WRAPPINGS = {
- :table => [:div, :page, nil],
- :inline => :all,
- :list => [:div, :page, nil]
- }
- NUMERIZABLE_WRAPPINGS.default = :all
-=end
- def numerize! mode = :table, options = {}
- return self unless mode
-
- options = DEFAULT_OPTIONS.merge options
-
- start = options[:line_number_start]
- unless start.is_a? Integer
- raise ArgumentError, "Invalid value %p for :line_number_start; Integer expected." % start
- end
-
- #allowed_wrappings = NUMERIZABLE_WRAPPINGS[mode]
- #unless allowed_wrappings == :all or allowed_wrappings.include? options[:wrap]
- # raise ArgumentError, "Can't numerize, :wrap must be in %p, but is %p" % [NUMERIZABLE_WRAPPINGS, options[:wrap]]
- #end
-
- bold_every = options[:bold_every]
- highlight_lines = options[:highlight_lines]
- bolding =
- if bold_every == false && highlight_lines == nil
- proc { |line| line.to_s }
- elsif highlight_lines.is_a? Enumerable
- highlight_lines = highlight_lines.to_set
- proc do |line|
- if highlight_lines.include? line
- " #{line}" # highlighted line numbers in bold
- else
- line.to_s
- end
- end
- elsif bold_every.is_a? Integer
- raise ArgumentError, ":bolding can't be 0." if bold_every == 0
- proc do |line|
- if line % bold_every == 0
- " #{line}" # every bold_every-th number in bold
- else
- line.to_s
- end
- end
- else
- raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
- end
-
- case mode
- when :inline
- max_width = (start + line_count).to_s.size
- line_number = start
- gsub!(/^/) do
- line_number_text = bolding.call line_number
- indent = ' ' * (max_width - line_number.to_s.size) # TODO: Optimize (10^x)
- res = " #{indent}#{line_number_text} "
- line_number += 1
- res
- end
-
- when :table
- # This is really ugly.
- # Because even monospace fonts seem to have different heights when bold,
- # I make the newline bold, both in the code and the line numbers.
- # FIXME Still not working perfect for Mr. Internet Exploder
- line_numbers = (start ... start + line_count).to_a.map(&bolding).join("\n")
- line_numbers << "\n" # also for Mr. MS Internet Exploder :-/
- line_numbers.gsub!(/\n/) { " \n" }
-
- line_numbers_table_tpl = TABLE.apply('LINE_NUMBERS', line_numbers)
- gsub!(/<\/div>\n/) { ' ' }
- gsub!(/\n/) { "\n" }
- wrap_in! line_numbers_table_tpl
- @wrapped_in = :div
-
- when :list
- opened_tags = []
- gsub!(/^.*$\n?/) do |line|
- line.chomp!
-
- open = opened_tags.join
- line.scan(%r!<(/)?span[^>]*>?!) do |close,|
- if close
- opened_tags.pop
- else
- opened_tags << $&
- end
- end
- close = '' * opened_tags.size
-
- "#{open}#{line}#{close}\n"
- end
- chomp!("\n")
- wrap_in! LIST
- @wrapped_in = :div
-
- else
- raise ArgumentError, 'Unknown value %p for mode: expected one of %p' %
- [mode, [:table, :list, :inline]]
- end
-
- self
- end
-
- def line_count
- line_count = count("\n")
- position_of_last_newline = rindex(?\n)
- if position_of_last_newline
- after_last_newline = self[position_of_last_newline + 1 .. -1]
- ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
- line_count += 1 if not ends_with_newline
- end
- line_count
- end
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/output.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html/output.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- # This module is included in the output String from thew HTML Encoder.
- #
- # It provides methods like wrap, div, page etc.
- #
- # Remember to use #clone instead of #dup to keep the modules the object was
- # extended with.
- #
- # TODO: more doc.
- module Output
-
- require 'coderay/encoders/html/numerization.rb'
-
- attr_accessor :css
-
- class << self
-
- # This makes Output look like a class.
- #
- # Example:
- #
- # a = Output.new 'Code'
- # a.wrap! :page
- def new string, css = CSS.new, element = nil
- output = string.clone.extend self
- output.wrapped_in = element
- output.css = css
- output
- end
-
- # Raises an exception if an object that doesn't respond to to_str is extended by Output,
- # to prevent users from misuse. Use Module#remove_method to disable.
- def extended o
- warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
- end
-
- def make_stylesheet css, in_tag = false
- sheet = css.stylesheet
- sheet = <<-CSS if in_tag
-
- CSS
- sheet
- end
-
- def page_template_for_css css
- sheet = make_stylesheet css
- PAGE.apply 'CSS', sheet
- end
-
- # Define a new wrapper. This is meta programming.
- def wrapper *wrappers
- wrappers.each do |wrapper|
- define_method wrapper do |*args|
- wrap wrapper, *args
- end
- define_method "#{wrapper}!".to_sym do |*args|
- wrap! wrapper, *args
- end
- end
- end
-
- end
-
- wrapper :div, :span, :page
-
- def wrapped_in? element
- wrapped_in == element
- end
-
- def wrapped_in
- @wrapped_in ||= nil
- end
- attr_writer :wrapped_in
-
- def wrap_in template
- clone.wrap_in! template
- end
-
- def wrap_in! template
- Template.wrap! self, template, 'CONTENT'
- self
- end
-
- def apply_title! title
- self.sub!(/()(<\/title>)/) { $1 + title + $2 }
- self
- end
-
- def wrap! element, *args
- return self if not element or element == wrapped_in
- case element
- when :div
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! DIV
- when :span
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! SPAN
- when :page
- wrap! :div if wrapped_in? nil
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
- wrap_in! Output.page_template_for_css(@css)
- if args.first.is_a?(Hash) && title = args.first[:title]
- apply_title! title
- end
- self
- when nil
- return self
- else
- raise "Unknown value %p for :wrap" % element
- end
- @wrapped_in = element
- self
- end
-
- def wrap *args
- clone.wrap!(*args)
- end
-
- def stylesheet in_tag = false
- Output.make_stylesheet @css, in_tag
- end
-
- class Template < String
-
- def self.wrap! str, template, target
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if template =~ target
- str[0,0] = $`
- str << $'
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- def apply target, replacement
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if self =~ target
- Template.new($` + replacement + $')
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- module Simple
- def ` str #` <-- for stupid editors
- Template.new str
- end
- end
- end
-
- extend Template::Simple
-
-#-- don't include the templates in docu
-
- SPAN = `<%CONTENT%>`
-
- DIV = <<-`DIV`
-
- DIV
-
- TABLE = <<-`TABLE`
-
- <%LINE_NUMBERS%> |
- <%CONTENT%> |
-
- TABLE
- # title="double click to expand"
-
- LIST = <<-`LIST`
-
-<%CONTENT%>
-
- LIST
-
- PAGE = <<-`PAGE`
-
-
-
-
-
-
-
-
-
-<%CONTENT%>
-
-
- PAGE
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/json.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/json.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- # = JSON Encoder
- class JSON < Encoder
-
- register_for :json
- FILE_EXTENSION = 'json'
-
- protected
- def setup options
- begin
- require 'json'
- rescue LoadError
- require 'rubygems'
- require 'json'
- end
- @out = []
- end
-
- def text_token text, kind
- { :type => 'text', :text => text, :kind => kind }
- end
-
- def block_token action, kind
- { :type => 'block', :action => action, :kind => kind }
- end
-
- def finish options
- @out.to_json
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-$:.delete '.'
-require 'rubygems' if RUBY_VERSION < '1.9'
-
-class JSONEncoderTest < Test::Unit::TestCase
-
- def test_json_output
- tokens = CodeRay.scan <<-RUBY, :ruby
-puts "Hello world!"
- RUBY
- require 'json'
- assert_equal [
- {"type"=>"text", "text"=>"puts", "kind"=>"ident"},
- {"type"=>"text", "text"=>" ", "kind"=>"space"},
- {"type"=>"block", "action"=>"open", "kind"=>"string"},
- {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- {"type"=>"text", "text"=>"Hello world!", "kind"=>"content"},
- {"type"=>"text", "text"=>"\"", "kind"=>"delimiter"},
- {"type"=>"block", "action"=>"close", "kind"=>"string"},
- {"type"=>"text", "text"=>"\n", "kind"=>"space"}
- ], JSON.load(tokens.json)
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/lines_of_code.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/lines_of_code.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- # Counts the LoC (Lines of Code). Returns an Integer >= 0.
- #
- # Alias: :loc
- #
- # Everything that is not comment, markup, doctype/shebang, or an empty line,
- # is considered to be code.
- #
- # For example,
- # * HTML files not containing JavaScript have 0 LoC
- # * in a Java class without comments, LoC is the number of non-empty lines
- #
- # A Scanner class should define the token kinds that are not code in the
- # KINDS_NOT_LOC constant, which defaults to [:comment, :doctype].
- class LinesOfCode < Encoder
-
- register_for :lines_of_code
-
- NON_EMPTY_LINE = /^\s*\S.*$/
-
- def compile tokens, options
- if scanner = tokens.scanner
- kinds_not_loc = scanner.class::KINDS_NOT_LOC
- else
- warn ArgumentError, 'Tokens have no scanner.' if $VERBOSE
- kinds_not_loc = CodeRay::Scanners::Scanner::KINDS_NOT_LOC
- end
- code = tokens.token_class_filter :exclude => kinds_not_loc
- @loc = code.text.scan(NON_EMPTY_LINE).size
- end
-
- def finish options
- @loc
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class LinesOfCodeTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::LinesOfCode < CodeRay::Encoders::Encoder
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :loc
- end
- assert_kind_of CodeRay::Encoders::LinesOfCode, filter
- assert_nothing_raised do
- filter = CodeRay.encoder :lines_of_code
- end
- assert_kind_of CodeRay::Encoders::LinesOfCode, filter
- end
-
- def test_lines_of_code
- tokens = CodeRay.scan <<-RUBY, :ruby
-#!/usr/bin/env ruby
-
-# a minimal Ruby program
-puts "Hello world!"
- RUBY
- assert_equal 1, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
- assert_equal 1, tokens.lines_of_code
- assert_equal 1, tokens.loc
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- tokens << ["Hello\n", :world]
- tokens << ["Hello\n", :space]
- tokens << ["Hello\n", :comment]
- assert_equal 2, CodeRay::Encoders::LinesOfCode.new.encode_tokens(tokens)
- assert_equal 2, tokens.lines_of_code
- assert_equal 2, tokens.loc
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/null.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/null.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-module CodeRay
-module Encoders
-
- # = Null Encoder
- #
- # Does nothing and returns an empty string.
- class Null < Encoder
-
- include Streamable
- register_for :null
-
- # Defined for faster processing
- def to_proc
- proc {}
- end
-
- protected
-
- def token(*)
- # do nothing
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/page.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/page.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Page < HTML
-
- FILE_EXTENSION = 'html'
-
- register_for :page
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :class,
- :wrap => :page,
- :line_numbers => :table
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/span.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/span.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module CodeRay
-module Encoders
-
- load :html
-
- class Span < HTML
-
- FILE_EXTENSION = 'span.html'
-
- register_for :span
-
- DEFAULT_OPTIONS = HTML::DEFAULT_OPTIONS.merge \
- :css => :style,
- :wrap => :span
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/statistic.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/statistic.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-module CodeRay
-module Encoders
-
- # Makes a statistic for the given tokens.
- class Statistic < Encoder
-
- include Streamable
- register_for :stats, :statistic
-
- attr_reader :type_stats, :real_token_count
-
- protected
-
- TypeStats = Struct.new :count, :size
-
- def setup options
- @type_stats = Hash.new { |h, k| h[k] = TypeStats.new 0, 0 }
- @real_token_count = 0
- end
-
- def generate tokens, options
- @tokens = tokens
- super
- end
-
- def text_token text, kind
- @real_token_count += 1 unless kind == :space
- @type_stats[kind].count += 1
- @type_stats[kind].size += text.size
- @type_stats['TOTAL'].size += text.size
- @type_stats['TOTAL'].count += 1
- end
-
- # TODO Hierarchy handling
- def block_token action, kind
- @type_stats['TOTAL'].count += 1
- @type_stats['open/close'].count += 1
- end
-
- STATS = <<-STATS
-
-Code Statistics
-
-Tokens %8d
- Non-Whitespace %8d
-Bytes Total %8d
-
-Token Types (%d):
- type count ratio size (average)
--------------------------------------------------------------
-%s
- STATS
-# space 12007 33.81 % 1.7
- TOKEN_TYPES_ROW = <<-TKR
- %-20s %8d %6.2f %% %5.1f
- TKR
-
- def finish options
- all = @type_stats['TOTAL']
- all_count, all_size = all.count, all.size
- @type_stats.each do |type, stat|
- stat.size /= stat.count.to_f
- end
- types_stats = @type_stats.sort_by { |k, v| [-v.count, k.to_s] }.map do |k, v|
- TOKEN_TYPES_ROW % [k, v.count, 100.0 * v.count / all_count, v.size]
- end.join
- STATS % [
- all_count, @real_token_count, all_size,
- @type_stats.delete_if { |k, v| k.is_a? String }.size,
- types_stats
- ]
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/term.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/term.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-# encoders/term.rb
-# By Rob Aldred (http://robaldred.co.uk)
-# Based on idea by Nathan Weizenbaum (http://nex-3.com)
-# MIT License (http://www.opensource.org/licenses/mit-license.php)
-#
-# A CodeRay encoder that outputs code highlighted for a color terminal.
-# Check out http://robaldred.co.uk
-
-module CodeRay
- module Encoders
- class Term < Encoder
- register_for :term
-
- TOKEN_COLORS = {
- :annotation => '35',
- :attribute_name => '33',
- :attribute_name_fat => '33',
- :attribute_value => '31',
- :attribute_value_fat => '31',
- :bin => '1;35',
- :char => {:self => '36', :delimiter => '34'},
- :class => '1;35',
- :class_variable => '36',
- :color => '32',
- :comment => '37',
- :complex => '34',
- :constant => ['34', '4'],
- :decoration => '35',
- :definition => '1;32',
- :directive => ['32', '4'],
- :doc => '46',
- :doctype => '1;30',
- :doc_string => ['31', '4'],
- :entity => '33',
- :error => ['1;33', '41'],
- :exception => '1;31',
- :float => '1;35',
- :function => '1;34',
- :global_variable => '42',
- :hex => '1;36',
- :important => '1;31',
- :include => '33',
- :integer => '1;34',
- :interpreted => '1;35',
- :key => '35',
- :label => '1;4',
- :local_variable => '33',
- :oct => '1;35',
- :operator_name => '1;29',
- :pre_constant => '1;36',
- :pre_type => '1;30',
- :predefined => ['4', '1;34'],
- :preprocessor => '36',
- :pseudo_class => '34',
- :regexp => {
- :content => '31',
- :delimiter => '1;29',
- :modifier => '35',
- :function => '1;29'
- },
- :reserved => '1;31',
- :shell => {
- :self => '42',
- :content => '1;29',
- :delimiter => '37',
- },
- :string => {
- :self => '32',
- :modifier => '1;32',
- :escape => '1;36',
- :delimiter => '1;32',
- },
- :symbol => '1;32',
- :tag => '34',
- :tag_fat => '1;34',
- :tag_special => ['34', '4'],
- :type => '1;34',
- :value => '36',
- :variable => '34',
- :insert => '42',
- :delete => '41',
- :change => '44',
- :head => '45',
- }
- TOKEN_COLORS[:keyword] = TOKEN_COLORS[:reserved]
- TOKEN_COLORS[:method] = TOKEN_COLORS[:function]
- TOKEN_COLORS[:imaginary] = TOKEN_COLORS[:complex]
- TOKEN_COLORS[:open] = TOKEN_COLORS[:close] = TOKEN_COLORS[:nesting_delimiter] = TOKEN_COLORS[:escape] = TOKEN_COLORS[:delimiter]
-
- protected
-
- def setup(options)
- @out = ''
- @opened = [nil]
- @subcolors = nil
- end
-
- def finish(options)
- super
- end
-
- def token text, type = :plain
- case text
-
- when nil
- # raise 'Token with nil as text was given: %p' % [[text, type]]
-
- when String
-
- if color = (@subcolors || TOKEN_COLORS)[type]
- color = color[:self] || return if Hash === color
-
- @out << col(color) + text.gsub("\n", col(0) + "\n" + col(color)) + col(0)
- @out << col(@subcolors[:self]) if @subcolors && @subcolors[:self]
- else
- @out << text
- end
-
- # token groups, eg. strings
- when :open
- @opened[0] = type
- if color = TOKEN_COLORS[type]
- if Hash === color
- @subcolors = color
- @out << col(color[:self]) if color[:self]
- else
- @subcolors = {}
- @out << col(color)
- end
- end
- @opened << type
- when :close
- if @opened.empty?
- # nothing to close
- else
- @out << col(0) if (@subcolors || {})[:self]
- @subcolors = nil
- @opened.pop
- end
-
- # whole lines to be highlighted, eg. a added/modified/deleted lines in a diff
- when :begin_line
-
- when :end_line
-
- else
- raise 'unknown token kind: %p' % [text]
- end
- end
-
- private
-
- def col(color)
- Array(color).map { |c| "\e[#{c}m" }.join
- end
- end
- end
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/text.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/text.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-module CodeRay
-module Encoders
-
- class Text < Encoder
-
- include Streamable
- register_for :text
-
- FILE_EXTENSION = 'txt'
-
- DEFAULT_OPTIONS = {
- :separator => ''
- }
-
- protected
- def setup options
- super
- @sep = options[:separator]
- end
-
- def text_token text, kind
- text + @sep
- end
-
- def finish options
- super.chomp @sep
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/token_class_filter.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/token_class_filter.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-($:.unshift '../..'; require 'coderay') unless defined? CodeRay
-module CodeRay
-module Encoders
-
- load :filter
-
- class TokenClassFilter < Filter
-
- include Streamable
- register_for :token_class_filter
-
- DEFAULT_OPTIONS = {
- :exclude => [],
- :include => :all
- }
-
- protected
- def setup options
- super
- @exclude = options[:exclude]
- @exclude = Array(@exclude) unless @exclude == :all
- @include = options[:include]
- @include = Array(@include) unless @include == :all
- end
-
- def include_text_token? text, kind
- (@include == :all || @include.include?(kind)) &&
- !(@exclude == :all || @exclude.include?(kind))
- end
-
- end
-
-end
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class TokenClassFilterTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Encoder
- assert CodeRay::Encoders::TokenClassFilter < CodeRay::Encoders::Filter
- filter = nil
- assert_nothing_raised do
- filter = CodeRay.encoder :token_class_filter
- end
- assert_instance_of CodeRay::Encoders::TokenClassFilter, filter
- end
-
- def test_filtering_text_tokens
- tokens = CodeRay::Tokens.new
- for i in 1..10
- tokens << [i.to_s, :index]
- tokens << [' ', :space] if i < 10
- end
- assert_equal 10, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :space).size
- assert_equal 10, tokens.token_class_filter(:exclude => :space).size
- assert_equal 9, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :space).size
- assert_equal 9, tokens.token_class_filter(:include => :space).size
- assert_equal 0, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :all).size
- assert_equal 0, tokens.token_class_filter(:exclude => :all).size
- end
-
- def test_filtering_block_tokens
- tokens = CodeRay::Tokens.new
- 10.times do |i|
- tokens << [:open, :index]
- tokens << [i.to_s, :content]
- tokens << [:close, :index]
- end
- assert_equal 20, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :include => :blubb).size
- assert_equal 20, tokens.token_class_filter(:include => :blubb).size
- assert_equal 30, CodeRay::Encoders::TokenClassFilter.new.encode_tokens(tokens, :exclude => :index).size
- assert_equal 30, tokens.token_class_filter(:exclude => :index).size
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/xml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/xml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-module CodeRay
-module Encoders
-
- # = XML Encoder
- #
- # Uses REXML. Very slow.
- class XML < Encoder
-
- include Streamable
- register_for :xml
-
- FILE_EXTENSION = 'xml'
-
- require 'rexml/document'
-
- DEFAULT_OPTIONS = {
- :tab_width => 8,
- :pretty => -1,
- :transitive => false,
- }
-
- protected
-
- def setup options
- @doc = REXML::Document.new
- @doc << REXML::XMLDecl.new
- @tab_width = options[:tab_width]
- @root = @node = @doc.add_element('coderay-tokens')
- end
-
- def finish options
- @out = ''
- @doc.write @out, options[:pretty], options[:transitive], true
- @out
- end
-
- def text_token text, kind
- if kind == :space
- token = @node
- else
- token = @node.add_element kind.to_s
- end
- text.scan(/(\x20+)|(\t+)|(\n)|[^\x20\t\n]+/) do |space, tab, nl|
- case
- when space
- token << REXML::Text.new(space, true)
- when tab
- token << REXML::Text.new(tab, true)
- when nl
- token << REXML::Text.new(nl, true)
- else
- token << REXML::Text.new($&)
- end
- end
- end
-
- def open_token kind
- @node = @node.add_element kind.to_s
- end
-
- def close_token kind
- if @node == @root
- raise 'no token to close!'
- end
- @node = @node.parent
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/encoders/yaml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/yaml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module CodeRay
-module Encoders
-
- # = YAML Encoder
- #
- # Slow.
- class YAML < Encoder
-
- register_for :yaml
-
- FILE_EXTENSION = 'yaml'
-
- protected
- def compile tokens, options
- require 'yaml'
- @out = tokens.to_a.to_yaml
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/for_redcloth.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/for_redcloth.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-module CodeRay
-
- # A little hack to enable CodeRay highlighting in RedCloth.
- #
- # Usage:
- # require 'coderay'
- # require 'coderay/for_redcloth'
- # RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
- #
- # Make sure you have RedCloth 4.0.3 activated, for example by calling
- # require 'rubygems'
- # before RedCloth is loaded and before calling CodeRay.for_redcloth.
- module ForRedCloth
-
- def self.install
- gem 'RedCloth', '>= 4.0.3' if defined? gem
- require 'redcloth'
- unless RedCloth::VERSION.to_s >= '4.0.3'
- if defined? gem
- raise 'CodeRay.for_redcloth needs RedCloth version 4.0.3 or later. ' +
- "You have #{RedCloth::VERSION}. Please gem install RedCloth."
- else
- $".delete 'redcloth.rb' # sorry, but it works
- require 'rubygems'
- return install # retry
- end
- end
- unless RedCloth::VERSION.to_s >= '4.2.2'
- warn 'CodeRay.for_redcloth works best with RedCloth version 4.2.2 or later.'
- end
- RedCloth::TextileDoc.send :include, ForRedCloth::TextileDoc
- RedCloth::Formatters::HTML.module_eval do
- def unescape(html)
- replacements = {
- '&' => '&',
- '"' => '"',
- '>' => '>',
- '<' => '<',
- }
- html.gsub(/&(?:amp|quot|[gl]t);/) { |entity| replacements[entity] }
- end
- undef code, bc_open, bc_close, escape_pre
- def code(opts) # :nodoc:
- opts[:block] = true
- if !opts[:lang] && RedCloth::VERSION.to_s >= '4.2.0'
- # simulating pre-4.2 behavior
- if opts[:text].sub!(/\A\[(\w+)\]/, '')
- if CodeRay::Scanners[$1].plugin_id == 'plaintext'
- opts[:text] = $& + opts[:text]
- else
- opts[:lang] = $1
- end
- end
- end
- if opts[:lang] && !filter_coderay
- require 'coderay'
- @in_bc ||= nil
- format = @in_bc ? :div : :span
- opts[:text] = unescape(opts[:text]) unless @in_bc
- highlighted_code = CodeRay.encode opts[:text], opts[:lang], format, :stream => true
- highlighted_code.sub!(/\A<(span|div)/) { |m| m + pba(@in_bc || opts) }
- highlighted_code
- else
- "#{opts[:text]} "
- end
- end
- def bc_open(opts) # :nodoc:
- opts[:block] = true
- @in_bc = opts
- opts[:lang] ? '' : ""
- end
- def bc_close(opts) # :nodoc:
- opts = @in_bc
- @in_bc = nil
- opts[:lang] ? '' : " \n"
- end
- def escape_pre(text)
- if @in_bc ||= nil
- text
- else
- html_esc(text, :html_escape_preformatted)
- end
- end
- end
- end
-
- module TextileDoc # :nodoc:
- attr_accessor :filter_coderay
- end
-
- end
-
-end
-
-CodeRay::ForRedCloth.install
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 73
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers
-END
-plugin.rb
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/plugin.rb
-END
-file_type.rb
-K 25
-svn:wc:ra_dav:version-url
-V 86
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/file_type.rb
-END
-gzip_simple.rb
-K 25
-svn:wc:ra_dav:version-url
-V 88
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/gzip_simple.rb
-END
-word_list.rb
-K 25
-svn:wc:ra_dav:version-url
-V 86
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/word_list.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/helpers
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-plugin.rb
-file
-
-
-
-
-2010-09-23T14:37:45.655760Z
-a8ef4aea22392cc4012ee679fc1d15ba
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7926
-
-file_type.rb
-file
-
-
-
-
-2010-09-23T14:37:45.655760Z
-107e3d46dc60830e87b1a4ce4d467ce8
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6494
-
-gzip_simple.rb
-file
-
-
-
-
-2010-09-23T14:37:45.655760Z
-ffacc98651f60a6fe698427bbc3c3c86
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2701
-
-word_list.rb
-file
-
-
-
-
-2010-09-23T14:37:45.655760Z
-86d05af27cbe342789f28ed543956aa5
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3229
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/file_type.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/file_type.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/gzip_simple.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/gzip_simple.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/plugin.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/plugin.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/word_list.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/prop-base/word_list.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/file_type.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/file_type.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-#!/usr/bin/env ruby
-module CodeRay
-
-# = FileType
-#
-# A simple filetype recognizer.
-#
-# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
-#
-# License:: LGPL / ask the author
-# Version:: 0.1 (2005-09-01)
-#
-# == Documentation
-#
-# # determine the type of the given
-# lang = FileType[ARGV.first]
-#
-# # return :plaintext if the file type is unknown
-# lang = FileType.fetch ARGV.first, :plaintext
-#
-# # try the shebang line, too
-# lang = FileType.fetch ARGV.first, :plaintext, true
-module FileType
-
- UnknownFileType = Class.new Exception
-
- class << self
-
- # Try to determine the file type of the file.
- #
- # +filename+ is a relative or absolute path to a file.
- #
- # The file itself is only accessed when +read_shebang+ is set to true.
- # That means you can get filetypes from files that don't exist.
- def [] filename, read_shebang = false
- name = File.basename filename
- ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
- ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
-
- type =
- TypeFromExt[ext] ||
- TypeFromExt[ext.downcase] ||
- (TypeFromExt[ext2] if ext2) ||
- (TypeFromExt[ext2.downcase] if ext2) ||
- TypeFromName[name] ||
- TypeFromName[name.downcase]
- type ||= shebang(filename) if read_shebang
-
- type
- end
-
- def shebang filename
- begin
- File.open filename, 'r' do |f|
- if first_line = f.gets
- if type = first_line[TypeFromShebang]
- type.to_sym
- end
- end
- end
- rescue IOError
- nil
- end
- end
-
- # This works like Hash#fetch.
- #
- # If the filetype cannot be found, the +default+ value
- # is returned.
- def fetch filename, default = nil, read_shebang = false
- if default and block_given?
- warn 'block supersedes default value argument'
- end
-
- unless type = self[filename, read_shebang]
- return yield if block_given?
- return default if default
- raise UnknownFileType, 'Could not determine type of %p.' % filename
- end
- type
- end
-
- end
-
- TypeFromExt = {
- 'c' => :c,
- 'css' => :css,
- 'diff' => :diff,
- 'dpr' => :delphi,
- 'groovy' => :groovy,
- 'gvy' => :groovy,
- 'h' => :c,
- 'htm' => :html,
- 'html' => :html,
- 'html.erb' => :rhtml,
- 'java' => :java,
- 'js' => :java_script,
- 'json' => :json,
- 'mab' => :ruby,
- 'pas' => :delphi,
- 'patch' => :diff,
- 'php' => :php,
- 'php3' => :php,
- 'php4' => :php,
- 'php5' => :php,
- 'py' => :python,
- 'py3' => :python,
- 'pyw' => :python,
- 'rake' => :ruby,
- 'raydebug' => :debug,
- 'rb' => :ruby,
- 'rbw' => :ruby,
- 'rhtml' => :rhtml,
- 'rxml' => :ruby,
- 'sch' => :scheme,
- 'sql' => :sql,
- 'ss' => :scheme,
- 'xhtml' => :xhtml,
- 'xml' => :xml,
- 'yaml' => :yaml,
- 'yml' => :yaml,
- }
- for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
- TypeFromExt[cpp_alias] = :cpp
- end
-
- TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
-
- TypeFromName = {
- 'Rakefile' => :ruby,
- 'Rantfile' => :ruby,
- }
-
-end
-
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class FileTypeTests < Test::Unit::TestCase
-
- include CodeRay
-
- def test_fetch
- assert_raise FileType::UnknownFileType do
- FileType.fetch ''
- end
-
- assert_throws :not_found do
- FileType.fetch '.' do
- throw :not_found
- end
- end
-
- assert_equal :default, FileType.fetch('c', :default)
-
- stderr, fake_stderr = $stderr, Object.new
- $err = ''
- def fake_stderr.write x
- $err << x
- end
- $stderr = fake_stderr
- FileType.fetch('c', :default) { }
- assert_equal "block supersedes default value argument\n", $err
- $stderr = stderr
- end
-
- def test_ruby
- assert_equal :ruby, FileType['test.rb']
- assert_equal :ruby, FileType['test.java.rb']
- assert_equal :java, FileType['test.rb.java']
- assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
- assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
- assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
- assert_equal :ruby, FileType['./lib/tasks\repository.rake']
- assert_not_equal :ruby, FileType['test_rb']
- assert_not_equal :ruby, FileType['Makefile']
- assert_not_equal :ruby, FileType['set.rb/set']
- assert_not_equal :ruby, FileType['~/projects/blabla/rb']
- end
-
- def test_c
- assert_equal :c, FileType['test.c']
- assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
- assert_not_equal :c, FileType['test_c']
- assert_not_equal :c, FileType['Makefile']
- assert_not_equal :c, FileType['set.h/set']
- assert_not_equal :c, FileType['~/projects/blabla/c']
- end
-
- def test_cpp
- assert_equal :cpp, FileType['test.c++']
- assert_equal :cpp, FileType['test.cxx']
- assert_equal :cpp, FileType['test.hh']
- assert_equal :cpp, FileType['test.hpp']
- assert_equal :cpp, FileType['test.cu']
- assert_equal :cpp, FileType['test.C']
- assert_not_equal :cpp, FileType['test.c']
- assert_not_equal :cpp, FileType['test.h']
- end
-
- def test_html
- assert_equal :html, FileType['test.htm']
- assert_equal :xhtml, FileType['test.xhtml']
- assert_equal :xhtml, FileType['test.html.xhtml']
- assert_equal :rhtml, FileType['_form.rhtml']
- assert_equal :rhtml, FileType['_form.html.erb']
- end
-
- def test_yaml
- assert_equal :yaml, FileType['test.yml']
- assert_equal :yaml, FileType['test.yaml']
- assert_equal :yaml, FileType['my.html.yaml']
- assert_not_equal :yaml, FileType['YAML']
- end
-
- def test_pathname
- require 'pathname'
- pn = Pathname.new 'test.rb'
- assert_equal :ruby, FileType[pn]
- dir = Pathname.new '/etc/var/blubb'
- assert_equal :ruby, FileType[dir + pn]
- assert_equal :cpp, FileType[dir + 'test.cpp']
- end
-
- def test_no_shebang
- dir = './test'
- if File.directory? dir
- Dir.chdir dir do
- assert_equal :c, FileType['test.c']
- end
- end
- end
-
- def test_shebang_empty_file
- require 'tmpdir'
- tmpfile = File.join(Dir.tmpdir, 'bla')
- File.open(tmpfile, 'w') { } # touch
- assert_equal nil, FileType[tmpfile]
- end
-
- def test_shebang
- require 'tmpdir'
- tmpfile = File.join(Dir.tmpdir, 'bla')
- File.open(tmpfile, 'w') { |f| f.puts '#!/usr/bin/env ruby' }
- assert_equal :ruby, FileType[tmpfile, true]
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/gzip_simple.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/gzip_simple.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-# =GZip Simple
-#
-# A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
-#
-# Author: murphy (mail to murphy rubychan de)
-#
-# Version: 0.2 (2005.may.28)
-#
-# ==Documentation
-#
-# See +GZip+ module and the +String+ extensions.
-#
-module GZip
-
- require 'zlib'
-
- # The default zipping level. 7 zips good and fast.
- DEFAULT_GZIP_LEVEL = 7
-
- # Unzips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # print GZip.gunzip(File.read('adresses.gz'))
- def GZip.gunzip s
- Zlib::Inflate.inflate s
- end
-
- # Zips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # File.open('adresses.gz', 'w') do |file
- # file.write GZip.gzip('Mum: 0123 456 789', 9)
- # end
- #
- # If you provide a +level+, you can control how strong
- # the string is compressed:
- # - 0: no compression, only convert to gzip format
- # - 1: compress fast
- # - 7: compress more, but still fast (default)
- # - 8: compress more, slower
- # - 9: compress best, very slow
- def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
- Zlib::Deflate.new(level).deflate s, Zlib::FINISH
- end
-end
-
-
-# String extensions to use the GZip module.
-#
-# The methods gzip and gunzip provide an even more simple
-# interface to the ZLib:
-#
-# # create a big string
-# x = 'a' * 1000
-#
-# # zip it
-# x_gz = x.gzip
-#
-# # test the result
-# puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
-# #-> Zipped 1000 bytes to 19 bytes.
-#
-# # unzipping works
-# p x_gz.gunzip == x #-> true
-class String
- # Returns the string, unzipped.
- # See GZip.gunzip
- def gunzip
- GZip.gunzip self
- end
- # Replaces the string with its unzipped value.
- # See GZip.gunzip
- def gunzip!
- replace gunzip
- end
-
- # Returns the string, zipped.
- # +level+ is the gzip compression level, see GZip.gzip.
- def gzip level = GZip::DEFAULT_GZIP_LEVEL
- GZip.gzip self, level
- end
- # Replaces the string with its zipped value.
- # See GZip.gzip.
- def gzip!(*args)
- replace gzip(*args)
- end
-end
-
-if $0 == __FILE__
- eval DATA.read, nil, $0, __LINE__+4
-end
-
-__END__
-#CODE
-
-# Testing / Benchmark
-x = 'a' * 1000
-x_gz = x.gzip
-puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
-p x_gz.gunzip == x #-> true
-
-require 'benchmark'
-
-INFO = 'packed to %0.3f%%' # :nodoc:
-
-x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
-Benchmark.bm(10) do |bm|
- for level in 0..9
- bm.report "zip #{level}" do
- $x = x.gzip level
- end
- puts INFO % [100.0 * $x.size / x.size]
- end
- bm.report 'zip' do
- $x = x.gzip
- end
- puts INFO % [100.0 * $x.size / x.size]
- bm.report 'unzip' do
- $x.gunzip
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/plugin.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/plugin.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +0,0 @@
-module CodeRay
-
-# = PluginHost
-#
-# A simple subclass plugin system.
-#
-# Example:
-# class Generators < PluginHost
-# plugin_path 'app/generators'
-# end
-#
-# class Generator
-# extend Plugin
-# PLUGIN_HOST = Generators
-# end
-#
-# class FancyGenerator < Generator
-# register_for :fancy
-# end
-#
-# Generators[:fancy] #-> FancyGenerator
-# # or
-# CodeRay.require_plugin 'Generators/fancy'
-module PluginHost
-
- # Raised if Encoders::[] fails because:
- # * a file could not be found
- # * the requested Encoder is not registered
- PluginNotFound = Class.new Exception
- HostNotFound = Class.new Exception
-
- PLUGIN_HOSTS = []
- PLUGIN_HOSTS_BY_ID = {} # dummy hash
-
- # Loads all plugins using list and load.
- def load_all
- for plugin in list
- load plugin
- end
- end
-
- # Returns the Plugin for +id+.
- #
- # Example:
- # yaml_plugin = MyPluginHost[:yaml]
- def [] id, *args, &blk
- plugin = validate_id(id)
- begin
- plugin = plugin_hash.[] plugin, *args, &blk
- end while plugin.is_a? Symbol
- plugin
- end
-
- # Alias for +[]+.
- alias load []
-
- def require_helper plugin_id, helper_name
- path = path_to File.join(plugin_id, helper_name)
- require path
- end
-
- class << self
-
- # Adds the module/class to the PLUGIN_HOSTS list.
- def extended mod
- PLUGIN_HOSTS << mod
- end
-
- # Warns you that you should not #include this module.
- def included mod
- warn "#{name} should not be included. Use extend."
- end
-
- # Find the PluginHost for host_id.
- def host_by_id host_id
- unless PLUGIN_HOSTS_BY_ID.default_proc
- ph = Hash.new do |h, a_host_id|
- for host in PLUGIN_HOSTS
- h[host.host_id] = host
- end
- h.fetch a_host_id, nil
- end
- PLUGIN_HOSTS_BY_ID.replace ph
- end
- PLUGIN_HOSTS_BY_ID[host_id]
- end
-
- end
-
- # The path where the plugins can be found.
- def plugin_path *args
- unless args.empty?
- @plugin_path = File.expand_path File.join(*args)
- load_map
- end
- @plugin_path
- end
-
- # The host's ID.
- #
- # If PLUGIN_HOST_ID is not set, it is simply the class name.
- def host_id
- if self.const_defined? :PLUGIN_HOST_ID
- self::PLUGIN_HOST_ID
- else
- name
- end
- end
-
- # Map a plugin_id to another.
- #
- # Usage: Put this in a file plugin_path/_map.rb.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue,
- # :maroon => :brown,
- # :luna => :moon
- # end
- def map hash
- for from, to in hash
- from = validate_id from
- to = validate_id to
- plugin_hash[from] = to unless plugin_hash.has_key? from
- end
- end
-
- # Define the default plugin to use when no plugin is found
- # for a given id.
- #
- # See also map.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue
- # default :gray
- # end
- def default id = nil
- if id
- id = validate_id id
- plugin_hash[nil] = id
- else
- plugin_hash[nil]
- end
- end
-
- # Every plugin must register itself for one or more
- # +ids+ by calling register_for, which calls this method.
- #
- # See Plugin#register_for.
- def register plugin, *ids
- for id in ids
- unless id.is_a? Symbol
- raise ArgumentError,
- "id must be a Symbol, but it was a #{id.class}"
- end
- plugin_hash[validate_id(id)] = plugin
- end
- end
-
- # A Hash of plugion_id => Plugin pairs.
- def plugin_hash
- @plugin_hash ||= create_plugin_hash
- end
-
- # Returns an array of all .rb files in the plugin path.
- #
- # The extension .rb is not included.
- def list
- Dir[path_to('*')].select do |file|
- File.basename(file)[/^(?!_)\w+\.rb$/]
- end.map do |file|
- File.basename file, '.rb'
- end
- end
-
- # Makes a map of all loaded plugins.
- def inspect
- map = plugin_hash.dup
- map.each do |id, plugin|
- map[id] = plugin.to_s[/(?>\w+)$/]
- end
- "#{name}[#{host_id}]#{map.inspect}"
- end
-
-protected
- # Created a new plugin list and stores it to @plugin_hash.
- def create_plugin_hash
- @plugin_hash =
- Hash.new do |h, plugin_id|
- id = validate_id(plugin_id)
- path = path_to id
- begin
- require path
- rescue LoadError => boom
- if h.has_key? nil # default plugin
- h[id] = h[nil]
- else
- raise PluginNotFound, 'Could not load plugin %p: %s' % [id, boom]
- end
- else
- # Plugin should have registered by now
- unless h.has_key? id
- raise PluginNotFound,
- "No #{self.name} plugin for #{id.inspect} found in #{path}."
- end
- end
- h[id]
- end
- end
-
- # Loads the map file (see map).
- #
- # This is done automatically when plugin_path is called.
- def load_map
- mapfile = path_to '_map'
- if File.exist? mapfile
- require mapfile
- elsif $VERBOSE
- warn 'no _map.rb found for %s' % name
- end
- end
-
- # Returns the Plugin for +id+.
- # Use it like Hash#fetch.
- #
- # Example:
- # yaml_plugin = MyPluginHost[:yaml, :default]
- def fetch id, *args, &blk
- plugin_hash.fetch validate_id(id), *args, &blk
- end
-
- # Returns the expected path to the plugin file for the given id.
- def path_to plugin_id
- File.join plugin_path, "#{plugin_id}.rb"
- end
-
- # Converts +id+ to a Symbol if it is a String,
- # or returns +id+ if it already is a Symbol.
- #
- # Raises +ArgumentError+ for all other objects, or if the
- # given String includes non-alphanumeric characters (\W).
- def validate_id id
- if id.is_a? Symbol or id.nil?
- id
- elsif id.is_a? String
- if id[/\w+/] == id
- id.downcase.to_sym
- else
- raise ArgumentError, "Invalid id: '#{id}' given."
- end
- else
- raise ArgumentError,
- "String or Symbol expected, but #{id.class} given."
- end
- end
-
-end
-
-
-# = Plugin
-#
-# Plugins have to include this module.
-#
-# IMPORTANT: use extend for this module.
-#
-# Example: see PluginHost.
-module Plugin
-
- def included mod
- warn "#{name} should not be included. Use extend."
- end
-
- # Register this class for the given langs.
- # Example:
- # class MyPlugin < PluginHost::BaseClass
- # register_for :my_id
- # ...
- # end
- #
- # See PluginHost.register.
- def register_for *ids
- plugin_host.register self, *ids
- end
-
- # Returns the title of the plugin, or sets it to the
- # optional argument +title+.
- def title title = nil
- if title
- @title = title.to_s
- else
- @title ||= name[/([^:]+)$/, 1]
- end
- end
-
- # The host for this Plugin class.
- def plugin_host host = nil
- if host and not host.is_a? PluginHost
- raise ArgumentError,
- "PluginHost expected, but #{host.class} given."
- end
- self.const_set :PLUGIN_HOST, host if host
- self::PLUGIN_HOST
- end
-
- # Require some helper files.
- #
- # Example:
- #
- # class MyPlugin < PluginHost::BaseClass
- # register_for :my_id
- # helper :my_helper
- #
- # The above example loads the file myplugin/my_helper.rb relative to the
- # file in which MyPlugin was defined.
- #
- # You can also load a helper from a different plugin:
- #
- # helper 'other_plugin/helper_name'
- def helper *helpers
- for helper in helpers
- if helper.is_a?(String) && helper[/\//]
- self::PLUGIN_HOST.require_helper $`, $'
- else
- self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
- end
- end
- end
-
- # Returns the pulgin id used by the engine.
- def plugin_id
- name[/\w+$/].downcase
- end
-
-end
-
-# Convenience method for plugin loading.
-# The syntax used is:
-#
-# CodeRay.require_plugin '/'
-#
-# Returns the loaded plugin.
-def self.require_plugin path
- host_id, plugin_id = path.split '/', 2
- host = PluginHost.host_by_id(host_id)
- raise PluginHost::HostNotFound,
- "No host for #{host_id.inspect} found." unless host
- host.load plugin_id
-end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/word_list.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/text-base/word_list.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-module CodeRay
-
-# = WordList
-#
-# A Hash subclass designed for mapping word lists to token types.
-#
-# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
-#
-# License:: LGPL / ask the author
-# Version:: 1.1 (2006-Oct-19)
-#
-# A WordList is a Hash with some additional features.
-# It is intended to be used for keyword recognition.
-#
-# WordList is highly optimized to be used in Scanners,
-# typically to decide whether a given ident is a special token.
-#
-# For case insensitive words use CaseIgnoringWordList.
-#
-# Example:
-#
-# # define word arrays
-# RESERVED_WORDS = %w[
-# asm break case continue default do else
-# ...
-# ]
-#
-# PREDEFINED_TYPES = %w[
-# int long short char void
-# ...
-# ]
-#
-# PREDEFINED_CONSTANTS = %w[
-# EOF NULL ...
-# ]
-#
-# # make a WordList
-# IDENT_KIND = WordList.new(:ident).
-# add(RESERVED_WORDS, :reserved).
-# add(PREDEFINED_TYPES, :pre_type).
-# add(PREDEFINED_CONSTANTS, :pre_constant)
-#
-# ...
-#
-# def scan_tokens tokens, options
-# ...
-#
-# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
-# # use it
-# kind = IDENT_KIND[match]
-# ...
-class WordList < Hash
-
- # Creates a new WordList with +default+ as default value.
- #
- # You can activate +caching+ to store the results for every [] request.
- #
- # With caching, methods like +include?+ or +delete+ may no longer behave
- # as you expect. Therefore, it is recommended to use the [] method only.
- def initialize default = false, caching = false, &block
- if block
- raise ArgumentError, 'Can\'t combine block with caching.' if caching
- super(&block)
- else
- if caching
- super() do |h, k|
- h[k] = h.fetch k, default
- end
- else
- super default
- end
- end
- end
-
- # Add words to the list and associate them with +kind+.
- #
- # Returns +self+, so you can concat add calls.
- def add words, kind = true
- words.each do |word|
- self[word] = kind
- end
- self
- end
-
-end
-
-
-# A CaseIgnoringWordList is like a WordList, only that
-# keys are compared case-insensitively.
-#
-# Ignoring the text case is realized by sending the +downcase+ message to
-# all keys.
-#
-# Caching usually makes a CaseIgnoringWordList faster, but it has to be
-# activated explicitely.
-class CaseIgnoringWordList < WordList
-
- # Creates a new case-insensitive WordList with +default+ as default value.
- #
- # You can activate caching to store the results for every [] request.
- # This speeds up subsequent lookups for the same word, but also
- # uses memory.
- def initialize default = false, caching = false
- if caching
- super(default, false) do |h, k|
- h[k] = h.fetch k.downcase, default
- end
- else
- super(default, false)
- extend Uncached
- end
- end
-
- module Uncached # :nodoc:
- def [] key
- super(key.downcase)
- end
- end
-
- # Add +words+ to the list and associate them with +kind+.
- def add words, kind = true
- words.each do |word|
- self[word.downcase] = kind
- end
- self
- end
-
-end
-
-end
-
-__END__
-# check memory consumption
-END {
- ObjectSpace.each_object(CodeRay::CaseIgnoringWordList) do |wl|
- p wl.inject(0) { |memo, key, value| memo + key.size + 24 }
- end
-}
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/file_type.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/file_type.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-#!/usr/bin/env ruby
-module CodeRay
-
-# = FileType
-#
-# A simple filetype recognizer.
-#
-# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
-#
-# License:: LGPL / ask the author
-# Version:: 0.1 (2005-09-01)
-#
-# == Documentation
-#
-# # determine the type of the given
-# lang = FileType[ARGV.first]
-#
-# # return :plaintext if the file type is unknown
-# lang = FileType.fetch ARGV.first, :plaintext
-#
-# # try the shebang line, too
-# lang = FileType.fetch ARGV.first, :plaintext, true
-module FileType
-
- UnknownFileType = Class.new Exception
-
- class << self
-
- # Try to determine the file type of the file.
- #
- # +filename+ is a relative or absolute path to a file.
- #
- # The file itself is only accessed when +read_shebang+ is set to true.
- # That means you can get filetypes from files that don't exist.
- def [] filename, read_shebang = false
- name = File.basename filename
- ext = File.extname(name).sub(/^\./, '') # from last dot, delete the leading dot
- ext2 = filename.to_s[/\.(.*)/, 1] # from first dot
-
- type =
- TypeFromExt[ext] ||
- TypeFromExt[ext.downcase] ||
- (TypeFromExt[ext2] if ext2) ||
- (TypeFromExt[ext2.downcase] if ext2) ||
- TypeFromName[name] ||
- TypeFromName[name.downcase]
- type ||= shebang(filename) if read_shebang
-
- type
- end
-
- def shebang filename
- begin
- File.open filename, 'r' do |f|
- if first_line = f.gets
- if type = first_line[TypeFromShebang]
- type.to_sym
- end
- end
- end
- rescue IOError
- nil
- end
- end
-
- # This works like Hash#fetch.
- #
- # If the filetype cannot be found, the +default+ value
- # is returned.
- def fetch filename, default = nil, read_shebang = false
- if default and block_given?
- warn 'block supersedes default value argument'
- end
-
- unless type = self[filename, read_shebang]
- return yield if block_given?
- return default if default
- raise UnknownFileType, 'Could not determine type of %p.' % filename
- end
- type
- end
-
- end
-
- TypeFromExt = {
- 'c' => :c,
- 'css' => :css,
- 'diff' => :diff,
- 'dpr' => :delphi,
- 'groovy' => :groovy,
- 'gvy' => :groovy,
- 'h' => :c,
- 'htm' => :html,
- 'html' => :html,
- 'html.erb' => :rhtml,
- 'java' => :java,
- 'js' => :java_script,
- 'json' => :json,
- 'mab' => :ruby,
- 'pas' => :delphi,
- 'patch' => :diff,
- 'php' => :php,
- 'php3' => :php,
- 'php4' => :php,
- 'php5' => :php,
- 'py' => :python,
- 'py3' => :python,
- 'pyw' => :python,
- 'rake' => :ruby,
- 'raydebug' => :debug,
- 'rb' => :ruby,
- 'rbw' => :ruby,
- 'rhtml' => :rhtml,
- 'rxml' => :ruby,
- 'sch' => :scheme,
- 'sql' => :sql,
- 'ss' => :scheme,
- 'xhtml' => :xhtml,
- 'xml' => :xml,
- 'yaml' => :yaml,
- 'yml' => :yaml,
- }
- for cpp_alias in %w[cc cpp cp cxx c++ C hh hpp h++ cu]
- TypeFromExt[cpp_alias] = :cpp
- end
-
- TypeFromShebang = /\b(?:ruby|perl|python|sh)\b/
-
- TypeFromName = {
- 'Rakefile' => :ruby,
- 'Rantfile' => :ruby,
- }
-
-end
-
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class FileTypeTests < Test::Unit::TestCase
-
- include CodeRay
-
- def test_fetch
- assert_raise FileType::UnknownFileType do
- FileType.fetch ''
- end
-
- assert_throws :not_found do
- FileType.fetch '.' do
- throw :not_found
- end
- end
-
- assert_equal :default, FileType.fetch('c', :default)
-
- stderr, fake_stderr = $stderr, Object.new
- $err = ''
- def fake_stderr.write x
- $err << x
- end
- $stderr = fake_stderr
- FileType.fetch('c', :default) { }
- assert_equal "block supersedes default value argument\n", $err
- $stderr = stderr
- end
-
- def test_ruby
- assert_equal :ruby, FileType['test.rb']
- assert_equal :ruby, FileType['test.java.rb']
- assert_equal :java, FileType['test.rb.java']
- assert_equal :ruby, FileType['C:\\Program Files\\x\\y\\c\\test.rbw']
- assert_equal :ruby, FileType['/usr/bin/something/Rakefile']
- assert_equal :ruby, FileType['~/myapp/gem/Rantfile']
- assert_equal :ruby, FileType['./lib/tasks\repository.rake']
- assert_not_equal :ruby, FileType['test_rb']
- assert_not_equal :ruby, FileType['Makefile']
- assert_not_equal :ruby, FileType['set.rb/set']
- assert_not_equal :ruby, FileType['~/projects/blabla/rb']
- end
-
- def test_c
- assert_equal :c, FileType['test.c']
- assert_equal :c, FileType['C:\\Program Files\\x\\y\\c\\test.h']
- assert_not_equal :c, FileType['test_c']
- assert_not_equal :c, FileType['Makefile']
- assert_not_equal :c, FileType['set.h/set']
- assert_not_equal :c, FileType['~/projects/blabla/c']
- end
-
- def test_cpp
- assert_equal :cpp, FileType['test.c++']
- assert_equal :cpp, FileType['test.cxx']
- assert_equal :cpp, FileType['test.hh']
- assert_equal :cpp, FileType['test.hpp']
- assert_equal :cpp, FileType['test.cu']
- assert_equal :cpp, FileType['test.C']
- assert_not_equal :cpp, FileType['test.c']
- assert_not_equal :cpp, FileType['test.h']
- end
-
- def test_html
- assert_equal :html, FileType['test.htm']
- assert_equal :xhtml, FileType['test.xhtml']
- assert_equal :xhtml, FileType['test.html.xhtml']
- assert_equal :rhtml, FileType['_form.rhtml']
- assert_equal :rhtml, FileType['_form.html.erb']
- end
-
- def test_yaml
- assert_equal :yaml, FileType['test.yml']
- assert_equal :yaml, FileType['test.yaml']
- assert_equal :yaml, FileType['my.html.yaml']
- assert_not_equal :yaml, FileType['YAML']
- end
-
- def test_pathname
- require 'pathname'
- pn = Pathname.new 'test.rb'
- assert_equal :ruby, FileType[pn]
- dir = Pathname.new '/etc/var/blubb'
- assert_equal :ruby, FileType[dir + pn]
- assert_equal :cpp, FileType[dir + 'test.cpp']
- end
-
- def test_no_shebang
- dir = './test'
- if File.directory? dir
- Dir.chdir dir do
- assert_equal :c, FileType['test.c']
- end
- end
- end
-
- def test_shebang_empty_file
- require 'tmpdir'
- tmpfile = File.join(Dir.tmpdir, 'bla')
- File.open(tmpfile, 'w') { } # touch
- assert_equal nil, FileType[tmpfile]
- end
-
- def test_shebang
- require 'tmpdir'
- tmpfile = File.join(Dir.tmpdir, 'bla')
- File.open(tmpfile, 'w') { |f| f.puts '#!/usr/bin/env ruby' }
- assert_equal :ruby, FileType[tmpfile, true]
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/gzip_simple.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/gzip_simple.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-# =GZip Simple
-#
-# A simplified interface to the gzip library +zlib+ (from the Ruby Standard Library.)
-#
-# Author: murphy (mail to murphy rubychan de)
-#
-# Version: 0.2 (2005.may.28)
-#
-# ==Documentation
-#
-# See +GZip+ module and the +String+ extensions.
-#
-module GZip
-
- require 'zlib'
-
- # The default zipping level. 7 zips good and fast.
- DEFAULT_GZIP_LEVEL = 7
-
- # Unzips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # print GZip.gunzip(File.read('adresses.gz'))
- def GZip.gunzip s
- Zlib::Inflate.inflate s
- end
-
- # Zips the given string +s+.
- #
- # Example:
- # require 'gzip_simple'
- # File.open('adresses.gz', 'w') do |file
- # file.write GZip.gzip('Mum: 0123 456 789', 9)
- # end
- #
- # If you provide a +level+, you can control how strong
- # the string is compressed:
- # - 0: no compression, only convert to gzip format
- # - 1: compress fast
- # - 7: compress more, but still fast (default)
- # - 8: compress more, slower
- # - 9: compress best, very slow
- def GZip.gzip s, level = DEFAULT_GZIP_LEVEL
- Zlib::Deflate.new(level).deflate s, Zlib::FINISH
- end
-end
-
-
-# String extensions to use the GZip module.
-#
-# The methods gzip and gunzip provide an even more simple
-# interface to the ZLib:
-#
-# # create a big string
-# x = 'a' * 1000
-#
-# # zip it
-# x_gz = x.gzip
-#
-# # test the result
-# puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size]
-# #-> Zipped 1000 bytes to 19 bytes.
-#
-# # unzipping works
-# p x_gz.gunzip == x #-> true
-class String
- # Returns the string, unzipped.
- # See GZip.gunzip
- def gunzip
- GZip.gunzip self
- end
- # Replaces the string with its unzipped value.
- # See GZip.gunzip
- def gunzip!
- replace gunzip
- end
-
- # Returns the string, zipped.
- # +level+ is the gzip compression level, see GZip.gzip.
- def gzip level = GZip::DEFAULT_GZIP_LEVEL
- GZip.gzip self, level
- end
- # Replaces the string with its zipped value.
- # See GZip.gzip.
- def gzip!(*args)
- replace gzip(*args)
- end
-end
-
-if $0 == __FILE__
- eval DATA.read, nil, $0, __LINE__+4
-end
-
-__END__
-#CODE
-
-# Testing / Benchmark
-x = 'a' * 1000
-x_gz = x.gzip
-puts 'Zipped %d bytes to %d bytes.' % [x.size, x_gz.size] #-> Zipped 1000 bytes to 19 bytes.
-p x_gz.gunzip == x #-> true
-
-require 'benchmark'
-
-INFO = 'packed to %0.3f%%' # :nodoc:
-
-x = Array.new(100000) { rand(255).chr + 'aaaaaaaaa' + rand(255).chr }.join
-Benchmark.bm(10) do |bm|
- for level in 0..9
- bm.report "zip #{level}" do
- $x = x.gzip level
- end
- puts INFO % [100.0 * $x.size / x.size]
- end
- bm.report 'zip' do
- $x = x.gzip
- end
- puts INFO % [100.0 * $x.size / x.size]
- bm.report 'unzip' do
- $x.gunzip
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/plugin.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/plugin.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,349 +0,0 @@
-module CodeRay
-
-# = PluginHost
-#
-# A simple subclass plugin system.
-#
-# Example:
-# class Generators < PluginHost
-# plugin_path 'app/generators'
-# end
-#
-# class Generator
-# extend Plugin
-# PLUGIN_HOST = Generators
-# end
-#
-# class FancyGenerator < Generator
-# register_for :fancy
-# end
-#
-# Generators[:fancy] #-> FancyGenerator
-# # or
-# CodeRay.require_plugin 'Generators/fancy'
-module PluginHost
-
- # Raised if Encoders::[] fails because:
- # * a file could not be found
- # * the requested Encoder is not registered
- PluginNotFound = Class.new Exception
- HostNotFound = Class.new Exception
-
- PLUGIN_HOSTS = []
- PLUGIN_HOSTS_BY_ID = {} # dummy hash
-
- # Loads all plugins using list and load.
- def load_all
- for plugin in list
- load plugin
- end
- end
-
- # Returns the Plugin for +id+.
- #
- # Example:
- # yaml_plugin = MyPluginHost[:yaml]
- def [] id, *args, &blk
- plugin = validate_id(id)
- begin
- plugin = plugin_hash.[] plugin, *args, &blk
- end while plugin.is_a? Symbol
- plugin
- end
-
- # Alias for +[]+.
- alias load []
-
- def require_helper plugin_id, helper_name
- path = path_to File.join(plugin_id, helper_name)
- require path
- end
-
- class << self
-
- # Adds the module/class to the PLUGIN_HOSTS list.
- def extended mod
- PLUGIN_HOSTS << mod
- end
-
- # Warns you that you should not #include this module.
- def included mod
- warn "#{name} should not be included. Use extend."
- end
-
- # Find the PluginHost for host_id.
- def host_by_id host_id
- unless PLUGIN_HOSTS_BY_ID.default_proc
- ph = Hash.new do |h, a_host_id|
- for host in PLUGIN_HOSTS
- h[host.host_id] = host
- end
- h.fetch a_host_id, nil
- end
- PLUGIN_HOSTS_BY_ID.replace ph
- end
- PLUGIN_HOSTS_BY_ID[host_id]
- end
-
- end
-
- # The path where the plugins can be found.
- def plugin_path *args
- unless args.empty?
- @plugin_path = File.expand_path File.join(*args)
- load_map
- end
- @plugin_path
- end
-
- # The host's ID.
- #
- # If PLUGIN_HOST_ID is not set, it is simply the class name.
- def host_id
- if self.const_defined? :PLUGIN_HOST_ID
- self::PLUGIN_HOST_ID
- else
- name
- end
- end
-
- # Map a plugin_id to another.
- #
- # Usage: Put this in a file plugin_path/_map.rb.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue,
- # :maroon => :brown,
- # :luna => :moon
- # end
- def map hash
- for from, to in hash
- from = validate_id from
- to = validate_id to
- plugin_hash[from] = to unless plugin_hash.has_key? from
- end
- end
-
- # Define the default plugin to use when no plugin is found
- # for a given id.
- #
- # See also map.
- #
- # class MyColorHost < PluginHost
- # map :navy => :dark_blue
- # default :gray
- # end
- def default id = nil
- if id
- id = validate_id id
- plugin_hash[nil] = id
- else
- plugin_hash[nil]
- end
- end
-
- # Every plugin must register itself for one or more
- # +ids+ by calling register_for, which calls this method.
- #
- # See Plugin#register_for.
- def register plugin, *ids
- for id in ids
- unless id.is_a? Symbol
- raise ArgumentError,
- "id must be a Symbol, but it was a #{id.class}"
- end
- plugin_hash[validate_id(id)] = plugin
- end
- end
-
- # A Hash of plugion_id => Plugin pairs.
- def plugin_hash
- @plugin_hash ||= create_plugin_hash
- end
-
- # Returns an array of all .rb files in the plugin path.
- #
- # The extension .rb is not included.
- def list
- Dir[path_to('*')].select do |file|
- File.basename(file)[/^(?!_)\w+\.rb$/]
- end.map do |file|
- File.basename file, '.rb'
- end
- end
-
- # Makes a map of all loaded plugins.
- def inspect
- map = plugin_hash.dup
- map.each do |id, plugin|
- map[id] = plugin.to_s[/(?>\w+)$/]
- end
- "#{name}[#{host_id}]#{map.inspect}"
- end
-
-protected
- # Created a new plugin list and stores it to @plugin_hash.
- def create_plugin_hash
- @plugin_hash =
- Hash.new do |h, plugin_id|
- id = validate_id(plugin_id)
- path = path_to id
- begin
- require path
- rescue LoadError => boom
- if h.has_key? nil # default plugin
- h[id] = h[nil]
- else
- raise PluginNotFound, 'Could not load plugin %p: %s' % [id, boom]
- end
- else
- # Plugin should have registered by now
- unless h.has_key? id
- raise PluginNotFound,
- "No #{self.name} plugin for #{id.inspect} found in #{path}."
- end
- end
- h[id]
- end
- end
-
- # Loads the map file (see map).
- #
- # This is done automatically when plugin_path is called.
- def load_map
- mapfile = path_to '_map'
- if File.exist? mapfile
- require mapfile
- elsif $VERBOSE
- warn 'no _map.rb found for %s' % name
- end
- end
-
- # Returns the Plugin for +id+.
- # Use it like Hash#fetch.
- #
- # Example:
- # yaml_plugin = MyPluginHost[:yaml, :default]
- def fetch id, *args, &blk
- plugin_hash.fetch validate_id(id), *args, &blk
- end
-
- # Returns the expected path to the plugin file for the given id.
- def path_to plugin_id
- File.join plugin_path, "#{plugin_id}.rb"
- end
-
- # Converts +id+ to a Symbol if it is a String,
- # or returns +id+ if it already is a Symbol.
- #
- # Raises +ArgumentError+ for all other objects, or if the
- # given String includes non-alphanumeric characters (\W).
- def validate_id id
- if id.is_a? Symbol or id.nil?
- id
- elsif id.is_a? String
- if id[/\w+/] == id
- id.downcase.to_sym
- else
- raise ArgumentError, "Invalid id: '#{id}' given."
- end
- else
- raise ArgumentError,
- "String or Symbol expected, but #{id.class} given."
- end
- end
-
-end
-
-
-# = Plugin
-#
-# Plugins have to include this module.
-#
-# IMPORTANT: use extend for this module.
-#
-# Example: see PluginHost.
-module Plugin
-
- def included mod
- warn "#{name} should not be included. Use extend."
- end
-
- # Register this class for the given langs.
- # Example:
- # class MyPlugin < PluginHost::BaseClass
- # register_for :my_id
- # ...
- # end
- #
- # See PluginHost.register.
- def register_for *ids
- plugin_host.register self, *ids
- end
-
- # Returns the title of the plugin, or sets it to the
- # optional argument +title+.
- def title title = nil
- if title
- @title = title.to_s
- else
- @title ||= name[/([^:]+)$/, 1]
- end
- end
-
- # The host for this Plugin class.
- def plugin_host host = nil
- if host and not host.is_a? PluginHost
- raise ArgumentError,
- "PluginHost expected, but #{host.class} given."
- end
- self.const_set :PLUGIN_HOST, host if host
- self::PLUGIN_HOST
- end
-
- # Require some helper files.
- #
- # Example:
- #
- # class MyPlugin < PluginHost::BaseClass
- # register_for :my_id
- # helper :my_helper
- #
- # The above example loads the file myplugin/my_helper.rb relative to the
- # file in which MyPlugin was defined.
- #
- # You can also load a helper from a different plugin:
- #
- # helper 'other_plugin/helper_name'
- def helper *helpers
- for helper in helpers
- if helper.is_a?(String) && helper[/\//]
- self::PLUGIN_HOST.require_helper $`, $'
- else
- self::PLUGIN_HOST.require_helper plugin_id, helper.to_s
- end
- end
- end
-
- # Returns the pulgin id used by the engine.
- def plugin_id
- name[/\w+$/].downcase
- end
-
-end
-
-# Convenience method for plugin loading.
-# The syntax used is:
-#
-# CodeRay.require_plugin '/'
-#
-# Returns the loaded plugin.
-def self.require_plugin path
- host_id, plugin_id = path.split '/', 2
- host = PluginHost.host_by_id(host_id)
- raise PluginHost::HostNotFound,
- "No host for #{host_id.inspect} found." unless host
- host.load plugin_id
-end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/helpers/word_list.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/word_list.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-module CodeRay
-
-# = WordList
-#
-# A Hash subclass designed for mapping word lists to token types.
-#
-# Copyright (c) 2006 by murphy (Kornelius Kalnbach)
-#
-# License:: LGPL / ask the author
-# Version:: 1.1 (2006-Oct-19)
-#
-# A WordList is a Hash with some additional features.
-# It is intended to be used for keyword recognition.
-#
-# WordList is highly optimized to be used in Scanners,
-# typically to decide whether a given ident is a special token.
-#
-# For case insensitive words use CaseIgnoringWordList.
-#
-# Example:
-#
-# # define word arrays
-# RESERVED_WORDS = %w[
-# asm break case continue default do else
-# ...
-# ]
-#
-# PREDEFINED_TYPES = %w[
-# int long short char void
-# ...
-# ]
-#
-# PREDEFINED_CONSTANTS = %w[
-# EOF NULL ...
-# ]
-#
-# # make a WordList
-# IDENT_KIND = WordList.new(:ident).
-# add(RESERVED_WORDS, :reserved).
-# add(PREDEFINED_TYPES, :pre_type).
-# add(PREDEFINED_CONSTANTS, :pre_constant)
-#
-# ...
-#
-# def scan_tokens tokens, options
-# ...
-#
-# elsif scan(/[A-Za-z_][A-Za-z_0-9]*/)
-# # use it
-# kind = IDENT_KIND[match]
-# ...
-class WordList < Hash
-
- # Creates a new WordList with +default+ as default value.
- #
- # You can activate +caching+ to store the results for every [] request.
- #
- # With caching, methods like +include?+ or +delete+ may no longer behave
- # as you expect. Therefore, it is recommended to use the [] method only.
- def initialize default = false, caching = false, &block
- if block
- raise ArgumentError, 'Can\'t combine block with caching.' if caching
- super(&block)
- else
- if caching
- super() do |h, k|
- h[k] = h.fetch k, default
- end
- else
- super default
- end
- end
- end
-
- # Add words to the list and associate them with +kind+.
- #
- # Returns +self+, so you can concat add calls.
- def add words, kind = true
- words.each do |word|
- self[word] = kind
- end
- self
- end
-
-end
-
-
-# A CaseIgnoringWordList is like a WordList, only that
-# keys are compared case-insensitively.
-#
-# Ignoring the text case is realized by sending the +downcase+ message to
-# all keys.
-#
-# Caching usually makes a CaseIgnoringWordList faster, but it has to be
-# activated explicitely.
-class CaseIgnoringWordList < WordList
-
- # Creates a new case-insensitive WordList with +default+ as default value.
- #
- # You can activate caching to store the results for every [] request.
- # This speeds up subsequent lookups for the same word, but also
- # uses memory.
- def initialize default = false, caching = false
- if caching
- super(default, false) do |h, k|
- h[k] = h.fetch k.downcase, default
- end
- else
- super(default, false)
- extend Uncached
- end
- end
-
- module Uncached # :nodoc:
- def [] key
- super(key.downcase)
- end
- end
-
- # Add +words+ to the list and associate them with +kind+.
- def add words, kind = true
- words.each do |word|
- self[word.downcase] = kind
- end
- self
- end
-
-end
-
-end
-
-__END__
-# check memory consumption
-END {
- ObjectSpace.each_object(CodeRay::CaseIgnoringWordList) do |wl|
- p wl.inject(0) { |memo, key, value| memo + key.size + 24 }
- end
-}
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanner.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanner.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-module CodeRay
-
- require 'coderay/helpers/plugin'
-
- # = Scanners
- #
- # This module holds the Scanner class and its subclasses.
- # For example, the Ruby scanner is named CodeRay::Scanners::Ruby
- # can be found in coderay/scanners/ruby.
- #
- # Scanner also provides methods and constants for the register
- # mechanism and the [] method that returns the Scanner class
- # belonging to the given lang.
- #
- # See PluginHost.
- module Scanners
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'scanners'
-
- require 'strscan'
-
- # = Scanner
- #
- # The base class for all Scanners.
- #
- # It is a subclass of Ruby's great +StringScanner+, which
- # makes it easy to access the scanning methods inside.
- #
- # It is also +Enumerable+, so you can use it like an Array of
- # Tokens:
- #
- # require 'coderay'
- #
- # c_scanner = CodeRay::Scanners[:c].new "if (*p == '{') nest++;"
- #
- # for text, kind in c_scanner
- # puts text if kind == :operator
- # end
- #
- # # prints: (*==)++;
- #
- # OK, this is a very simple example :)
- # You can also use +map+, +any?+, +find+ and even +sort_by+,
- # if you want.
- class Scanner < StringScanner
-
- extend Plugin
- plugin_host Scanners
-
- # Raised if a Scanner fails while scanning
- ScanError = Class.new(Exception)
-
- require 'coderay/helpers/word_list'
-
- # The default options for all scanner classes.
- #
- # Define @default_options for subclasses.
- DEFAULT_OPTIONS = { :stream => false }
-
- KINDS_NOT_LOC = [:comment, :doctype]
-
- class << self
-
- # Returns if the Scanner can be used in streaming mode.
- def streamable?
- is_a? Streamable
- end
-
- def normify code
- code = code.to_s
- if code.respond_to? :force_encoding
- debug, $DEBUG = $DEBUG, false
- begin
- code.force_encoding 'utf-8'
- code[/\z/] # raises an ArgumentError when code contains a non-UTF-8 char
- rescue ArgumentError
- code.force_encoding 'binary'
- ensure
- $DEBUG = debug
- end
- end
- code.to_unix
- end
-
- def file_extension extension = nil
- if extension
- @file_extension = extension.to_s
- else
- @file_extension ||= plugin_id.to_s
- end
- end
-
- end
-
-=begin
-## Excluded for speed reasons; protected seems to make methods slow.
-
- # Save the StringScanner methods from being called.
- # This would not be useful for highlighting.
- strscan_public_methods =
- StringScanner.instance_methods -
- StringScanner.ancestors[1].instance_methods
- protected(*strscan_public_methods)
-=end
-
- # Create a new Scanner.
- #
- # * +code+ is the input String and is handled by the superclass
- # StringScanner.
- # * +options+ is a Hash with Symbols as keys.
- # It is merged with the default options of the class (you can
- # overwrite default options here.)
- # * +block+ is the callback for streamed highlighting.
- #
- # If you set :stream to +true+ in the options, the Scanner uses a
- # TokenStream with the +block+ as callback to handle the tokens.
- #
- # Else, a Tokens object is used.
- def initialize code='', options = {}, &block
- raise "I am only the basic Scanner class. I can't scan "\
- "anything. :( Use my subclasses." if self.class == Scanner
-
- @options = self.class::DEFAULT_OPTIONS.merge options
-
- super Scanner.normify(code)
-
- @tokens = options[:tokens]
- if @options[:stream]
- warn "warning in CodeRay::Scanner.new: :stream is set, "\
- "but no block was given" unless block_given?
- raise NotStreamableError, self unless kind_of? Streamable
- @tokens ||= TokenStream.new(&block)
- else
- warn "warning in CodeRay::Scanner.new: Block given, "\
- "but :stream is #{@options[:stream]}" if block_given?
- @tokens ||= Tokens.new
- end
- @tokens.scanner = self
-
- setup
- end
-
- def reset
- super
- reset_instance
- end
-
- def string= code
- code = Scanner.normify(code)
- super code
- reset_instance
- end
-
- # More mnemonic accessor name for the input string.
- alias code string
- alias code= string=
-
- # Returns the Plugin ID for this scanner.
- def lang
- self.class.plugin_id
- end
-
- # Scans the code and returns all tokens in a Tokens object.
- def tokenize new_string=nil, options = {}
- options = @options.merge(options)
- self.string = new_string if new_string
- @cached_tokens =
- if @options[:stream] # :stream must have been set already
- reset unless new_string
- scan_tokens @tokens, options
- @tokens
- else
- scan_tokens @tokens, options
- end
- end
-
- def tokens
- @cached_tokens ||= tokenize
- end
-
- # Whether the scanner is in streaming mode.
- def streaming?
- !!@options[:stream]
- end
-
- # Traverses the tokens.
- def each &block
- raise ArgumentError,
- 'Cannot traverse TokenStream.' if @options[:stream]
- tokens.each(&block)
- end
- include Enumerable
-
- # The current line position of the scanner.
- #
- # Beware, this is implemented inefficiently. It should be used
- # for debugging only.
- def line
- string[0..pos].count("\n") + 1
- end
-
- def column pos = self.pos
- return 0 if pos <= 0
- string = string()
- if string.respond_to?(:bytesize) && (defined?(@bin_string) || string.bytesize != string.size)
- @bin_string ||= string.dup.force_encoding('binary')
- string = @bin_string
- end
- pos - (string.rindex(?\n, pos) || 0)
- end
-
- def marshal_dump
- @options
- end
-
- def marshal_load options
- @options = options
- end
-
- protected
-
- # Can be implemented by subclasses to do some initialization
- # that has to be done once per instance.
- #
- # Use reset for initialization that has to be done once per
- # scan.
- def setup
- end
-
- # This is the central method, and commonly the only one a
- # subclass implements.
- #
- # Subclasses must implement this method; it must return +tokens+
- # and must only use Tokens#<< for storing scanned tokens!
- def scan_tokens tokens, options
- raise NotImplementedError,
- "#{self.class}#scan_tokens not implemented."
- end
-
- def reset_instance
- @tokens.clear unless @options[:keep_tokens]
- @cached_tokens = nil
- @bin_string = nil if defined? @bin_string
- end
-
- # Scanner error with additional status information
- def raise_inspect msg, tokens, state = 'No state given!', ambit = 30
- raise ScanError, <<-EOE % [
-
-
-***ERROR in %s: %s (after %d tokens)
-
-tokens:
-%s
-
-current line: %d column: %d pos: %d
-matched: %p state: %p
-bol? = %p, eos? = %p
-
-surrounding code:
-%p ~~ %p
-
-
-***ERROR***
-
- EOE
- File.basename(caller[0]),
- msg,
- tokens.size,
- tokens.last(10).map { |t| t.inspect }.join("\n"),
- line, column, pos,
- matched, state, bol?, eos?,
- string[pos - ambit, ambit],
- string[pos, ambit],
- ]
- end
-
- end
-
- end
-end
-
-class String
- # I love this hack. It seems to silence all dos/unix/mac newline problems.
- def to_unix
- if index ?\r
- gsub(/\r\n?/, "\n")
- else
- self
- end
- end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners
-END
-java.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java.rb
-END
-python.rb
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/python.rb
-END
-ruby.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby.rb
-END
-cpp.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/cpp.rb
-END
-c.rb
-K 25
-svn:wc:ra_dav:version-url
-V 79
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/c.rb
-END
-groovy.rb
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/groovy.rb
-END
-debug.rb
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb
-END
-rhtml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 83
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/rhtml.rb
-END
-php.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/php.rb
-END
-css.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/css.rb
-END
-sql.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/sql.rb
-END
-xml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/xml.rb
-END
-yaml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/yaml.rb
-END
-scheme.rb
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/scheme.rb
-END
-html.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/html.rb
-END
-java_script.rb
-K 25
-svn:wc:ra_dav:version-url
-V 89
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java_script.rb
-END
-delphi.rb
-K 25
-svn:wc:ra_dav:version-url
-V 84
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/delphi.rb
-END
-nitro_xhtml.rb
-K 25
-svn:wc:ra_dav:version-url
-V 89
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/nitro_xhtml.rb
-END
-plaintext.rb
-K 25
-svn:wc:ra_dav:version-url
-V 87
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/plaintext.rb
-END
-diff.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/diff.rb
-END
-json.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/json.rb
-END
-_map.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/_map.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,782 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-ruby
-dir
-
-java
-dir
-
-ruby.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-4a49513a2bda4483a1bfaeba8e57fb2c
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-13715
-
-python.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-939e009d9b197cb6437646be82c02982
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-9190
-
-java.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-c812fce5db1da4af753e919407494271
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5046
-
-c.rb
-file
-
-
-
-
-2010-09-23T14:37:45.667815Z
-299db2bdce8368d0bc6d90f5839c87ee
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5408
-
-cpp.rb
-file
-
-
-
-
-2010-09-23T14:37:45.667815Z
-afc4a4b0842e5efdafe98f6c5a10810e
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6286
-
-groovy.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-7fc1acca7ff04fa00160349b3a1b543e
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-8521
-
-rhtml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-456da0b0587037dce29f70bdb4d42253
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1526
-
-debug.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-94bdd6c948cb9c3d21ef94a5cec19e05
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1281
-
-php.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-90f9a8053ea7eaef089e5140188c9950
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-23501
-
-css.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-dfbdae0781ad8376342b8c0f5733c2ba
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5548
-
-sql.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-dd1580e74abffd4c30a8b941b3903f07
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4727
-
-xml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-798309ac45aa9d4ccc159242f3a6f150
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-211
-
-yaml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-f62eab25adbef42e92cad3f5463f91ac
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4261
-
-html.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-9a21ea0438e6eea6962a27aa15f55645
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4247
-
-scheme.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-f6c296bbb33704ec2a03725b01e06719
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4939
-
-java_script.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-821536789acfa80a62a4fb54ab6f31d4
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6722
-
-delphi.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-182116a4525447d4faed874dfb790277
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4504
-
-nitro_xhtml.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-f7d82e60f68fe6c9d46b63e63f6ec9f6
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2858
-
-plaintext.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-ae16e40b3db78a5d8c793165085f5db9
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-316
-
-diff.rb
-file
-
-
-
-
-2010-09-23T14:37:45.671759Z
-fbe0f5af1885b8c58e55c9ba2891ce49
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3024
-
-json.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-0284131b18751e532a2c5e2dd8d51426
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2940
-
-_map.rb
-file
-
-
-
-
-2010-09-23T14:37:45.667815Z
-b3eadcc78242cf25ba0ab3205d6a2b61
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-413
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/c.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/c.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/cpp.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/cpp.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/css.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/css.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/debug.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/debug.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/delphi.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/delphi.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/diff.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/diff.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/groovy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/groovy.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/html.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/html.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/java.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/java.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/java_script.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/java_script.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/json.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/json.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/nitro_xhtml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/nitro_xhtml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/php.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/php.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/plaintext.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/plaintext.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/python.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/python.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/rhtml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/rhtml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/ruby.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/ruby.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/scheme.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/scheme.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/sql.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/sql.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/xml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/xml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/yaml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/prop-base/yaml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module CodeRay
-module Scanners
-
- map \
- :h => :c,
- :cplusplus => :cpp,
- :'c++' => :cpp,
- :ecma => :java_script,
- :ecmascript => :java_script,
- :ecma_script => :java_script,
- :irb => :ruby,
- :javascript => :java_script,
- :js => :java_script,
- :nitro => :nitro_xhtml,
- :pascal => :delphi,
- :plain => :plaintext,
- :xhtml => :html,
- :yml => :yaml
-
- default :plain
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/c.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/c.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-module CodeRay
-module Scanners
-
- class C < Scanner
-
- include Streamable
-
- register_for :c
- file_extension 'c'
-
- RESERVED_WORDS = [
- 'asm', 'break', 'case', 'continue', 'default', 'do',
- 'else', 'enum', 'for', 'goto', 'if', 'return',
- 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while',
- 'restrict', # added in C99
- ]
-
- PREDEFINED_TYPES = [
- 'int', 'long', 'short', 'char',
- 'signed', 'unsigned', 'float', 'double',
- 'bool', 'complex', # added in C99
- ]
-
- PREDEFINED_CONSTANTS = [
- 'EOF', 'NULL',
- 'true', 'false', # added in C99
- ]
- DIRECTIVES = [
- 'auto', 'extern', 'register', 'static', 'void',
- 'const', 'volatile', # added in C89
- 'inline', # added in C99
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- kind = :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :reserved
- case match
- when 'case', 'default'
- case_expected = true
- end
- end
- end
-
- elsif scan(/\$/)
- kind = :ident
-
- elsif match = scan(/L?"/)
- tokens << [:open, :string]
- if match[0] == ?L
- tokens << ['L', :modifier]
- match = '"'
- end
- state = :string
- kind = :delimiter
-
- elsif scan(/#[ \t]*(\w*)/)
- kind = :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- kind = :char
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- kind = :oct
-
- elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- kind = :integer
-
- elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(/[^\\\n"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- label_expected = false
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- when :include_expected
- if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- kind = :include
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
- next
-
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/cpp.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/cpp.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-module CodeRay
-module Scanners
-
- class CPlusPlus < Scanner
-
- include Streamable
-
- register_for :cpp
- file_extension 'cpp'
- title 'C++'
-
- # http://www.cppreference.com/wiki/keywords/start
- RESERVED_WORDS = [
- 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break',
- 'case', 'catch', 'class', 'compl', 'const_cast',
- 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else',
- 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new',
- 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return',
- 'sizeof', 'static_cast', 'struct', 'switch', 'template',
- 'throw', 'try', 'typedef', 'typeid', 'typename', 'union',
- 'while', 'xor', 'xor_eq'
- ]
-
- PREDEFINED_TYPES = [
- 'bool', 'char', 'double', 'float', 'int', 'long',
- 'short', 'signed', 'unsigned', 'wchar_t', 'string'
- ]
- PREDEFINED_CONSTANTS = [
- 'false', 'true',
- 'EOF', 'NULL',
- ]
- PREDEFINED_VARIABLES = [
- 'this'
- ]
- DIRECTIVES = [
- 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator',
- 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void',
- 'volatile'
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(PREDEFINED_VARIABLES, :local_variable).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- kind = :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :reserved
- case match
- when 'class'
- state = :class_name_expected
- when 'case', 'default'
- case_expected = true
- end
- end
- end
-
- elsif scan(/\$/)
- kind = :ident
-
- elsif match = scan(/L?"/)
- tokens << [:open, :string]
- if match[0] == ?L
- tokens << ['L', :modifier]
- match = '"'
- end
- state = :string
- kind = :delimiter
-
- elsif scan(/#[ \t]*(\w*)/)
- kind = :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- kind = :char
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- kind = :oct
-
- elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- kind = :integer
-
- elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(/[^\\"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- label_expected = false
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- when :include_expected
- if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- kind = :include
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
- next
-
- end
-
- when :class_name_expected
- if scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = :class
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
-
- else
- getch
- kind = :error
- state = :initial
-
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/css.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/css.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-module CodeRay
-module Scanners
-
- class CSS < Scanner
-
- register_for :css
-
- KINDS_NOT_LOC = [
- :comment,
- :class, :pseudo_class, :type,
- :constant, :directive,
- :key, :value, :operator, :color, :float,
- :error, :important,
- ]
-
- module RE
- NonASCII = /[\x80-\xFF]/
- Hex = /[0-9a-fA-F]/
- Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too
- Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/
- NMChar = /[-_a-zA-Z0-9]|#{NonASCII}|#{Escape}/
- NMStart = /[_a-zA-Z]|#{NonASCII}|#{Escape}/
- NL = /\r\n|\r|\n|\f/
- String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # FIXME: buggy regexp
- String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # FIXME: buggy regexp
- String = /#{String1}|#{String2}/
-
- HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/
- Color = /#{HexColor}/
-
- Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/
- Name = /#{NMChar}+/
- Ident = /-?#{NMStart}#{NMChar}*/
- AtKeyword = /@#{Ident}/
- Percentage = /#{Num}%/
-
- reldimensions = %w[em ex px]
- absdimensions = %w[in cm mm pt pc]
- Unit = Regexp.union(*(reldimensions + absdimensions))
-
- Dimension = /#{Num}#{Unit}/
-
- Comment = %r! /\* (?: .*? \*/ | .* ) !mx
- Function = /(?:url|alpha)\((?:[^)\n\r\f]|\\\))*\)?/
-
- Id = /##{Name}/
- Class = /\.#{Name}/
- PseudoClass = /:#{Name}/
- AttributeSelector = /\[[^\]]*\]?/
-
- end
-
- def scan_tokens tokens, options
-
- value_expected = nil
- states = [:initial]
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/)
- kind = :space
-
- elsif case states.last
- when :initial, :media
- if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
- kind = :type
- elsif scan RE::Class
- kind = :class
- elsif scan RE::Id
- kind = :constant
- elsif scan RE::PseudoClass
- kind = :pseudo_class
- elsif match = scan(RE::AttributeSelector)
- # TODO: Improve highlighting inside of attribute selectors.
- tokens << [:open, :string]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content] if match.size > 2
- tokens << [match[-1,1], :delimiter] if match[-1] == ?]
- tokens << [:close, :string]
- next
- elsif match = scan(/@media/)
- kind = :directive
- states.push :media_before_name
- end
-
- when :block
- if scan(/(?>#{RE::Ident})(?!\()/ox)
- if value_expected
- kind = :value
- else
- kind = :key
- end
- end
-
- when :media_before_name
- if scan RE::Ident
- kind = :type
- states[-1] = :media_after_name
- end
-
- when :media_after_name
- if scan(/\{/)
- kind = :operator
- states[-1] = :media
- end
-
- when :comment
- if scan(/(?:[^*\s]|\*(?!\/))+/)
- kind = :comment
- elsif scan(/\*\//)
- kind = :comment
- states.pop
- elsif scan(/\s+/)
- kind = :space
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- elsif scan(/\/\*/)
- kind = :comment
- states.push :comment
-
- elsif scan(/\{/)
- value_expected = false
- kind = :operator
- states.push :block
-
- elsif scan(/\}/)
- value_expected = false
- if states.last == :block || states.last == :media
- kind = :operator
- states.pop
- else
- kind = :error
- end
-
- elsif match = scan(/#{RE::String}/o)
- tokens << [:open, :string]
- tokens << [match[0, 1], :delimiter]
- tokens << [match[1..-2], :content] if match.size > 2
- tokens << [match[-1, 1], :delimiter] if match.size >= 2
- tokens << [:close, :string]
- next
-
- elsif match = scan(/#{RE::Function}/o)
- tokens << [:open, :string]
- start = match[/^\w+\(/]
- tokens << [start, :delimiter]
- if match[-1] == ?)
- tokens << [match[start.size..-2], :content]
- tokens << [')', :delimiter]
- else
- tokens << [match[start.size..-1], :content]
- end
- tokens << [:close, :string]
- next
-
- elsif scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox)
- kind = :float
-
- elsif scan(/#{RE::Color}/o)
- kind = :color
-
- elsif scan(/! *important/)
- kind = :important
-
- elsif scan(/rgb\([^()\n]*\)?/)
- kind = :color
-
- elsif scan(/#{RE::AtKeyword}/o)
- kind = :directive
-
- elsif match = scan(/ [+>:;,.=()\/] /x)
- if match == ':'
- value_expected = true
- elsif match == ';'
- value_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/debug.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/debug.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-module CodeRay
-module Scanners
-
- # = Debug Scanner
- class Debug < Scanner
-
- include Streamable
- register_for :debug
- file_extension 'raydebug'
- title 'CodeRay Token Dump'
-
- protected
- def scan_tokens tokens, options
-
- opened_tokens = []
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/)
- tokens << [matched, :space]
- next
-
- elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x)
- kind = self[1].to_sym
- match = self[2].gsub(/\\(.)/, '\1')
-
- elsif scan(/ (\w+) < /x)
- kind = self[1].to_sym
- opened_tokens << kind
- match = :open
-
- elsif !opened_tokens.empty? && scan(/ > /x)
- kind = opened_tokens.pop || :error
- match = :close
-
- else
- kind = :error
- getch
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/delphi.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/delphi.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-module CodeRay
-module Scanners
-
- class Delphi < Scanner
-
- register_for :delphi
- file_extension 'pas'
-
- RESERVED_WORDS = [
- 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class',
- 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do',
- 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization',
- 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in',
- 'inherited', 'initialization', 'inline', 'interface', 'is', 'label',
- 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed',
- 'procedure', 'program', 'property', 'raise', 'record', 'repeat',
- 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar',
- 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with',
- 'xor', 'on'
- ]
-
- DIRECTIVES = [
- 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl',
- 'contains', 'deprecated', 'dispid', 'dynamic', 'export',
- 'external', 'far', 'forward', 'implements', 'local',
- 'near', 'nodefault', 'on', 'overload', 'override',
- 'package', 'pascal', 'platform', 'private', 'protected', 'public',
- 'published', 'read', 'readonly', 'register', 'reintroduce',
- 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs',
- 'virtual', 'write', 'writeonly'
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(DIRECTIVES, :directive)
-
- NAME_FOLLOWS = CaseIgnoringWordList.new(false).
- add(%w(procedure function .))
-
- private
- def scan_tokens tokens, options
-
- state = :initial
- last_token = ''
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :initial
-
- if scan(/ \s+ /x)
- tokens << [matched, :space]
- next
-
- elsif scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx)
- tokens << [matched, :preprocessor]
- next
-
- elsif scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx)
- tokens << [matched, :comment]
- next
-
- elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x)
- kind = :operator
-
- elsif match = scan(/\./)
- kind = :operator
- if last_token == 'end'
- tokens << [match, kind]
- next
- end
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match]
-
- elsif match = scan(/ ' ( [^\n']|'' ) (?:'|$) /x)
- tokens << [:open, :char]
- tokens << ["'", :delimiter]
- tokens << [self[1], :content]
- tokens << ["'", :delimiter]
- tokens << [:close, :char]
- next
-
- elsif match = scan(/ ' /x)
- tokens << [:open, :string]
- state = :string
- kind = :delimiter
-
- elsif scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x)
- kind = :char
-
- elsif scan(/ \$ [0-9A-Fa-f]+ /x)
- kind = :hex
-
- elsif scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x)
- kind = :integer
-
- elsif scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x)
- kind = :float
-
- else
- kind = :error
- getch
-
- end
-
- elsif state == :string
- if scan(/[^\n']+/)
- kind = :content
- elsif scan(/''/)
- kind = :char
- elsif scan(/'/)
- tokens << ["'", :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- elsif scan(/\n/)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- else
- raise "else case \' reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise 'else-case reached', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/diff.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/diff.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-module CodeRay
-module Scanners
-
- class Diff < Scanner
-
- register_for :diff
- title 'diff output'
-
- def scan_tokens tokens, options
-
- line_kind = nil
- state = :initial
-
- until eos?
- kind = match = nil
-
- if match = scan(/\n/)
- if line_kind
- tokens << [:end_line, line_kind]
- line_kind = nil
- end
- tokens << [match, :space]
- next
- end
-
- case state
-
- when :initial
- if match = scan(/--- |\+\+\+ |=+|_+/)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/Index: |Property changes on: /)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/Added: /)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- state = :added
- elsif match = scan(/\\ /)
- tokens << [:begin_line, line_kind = :change]
- tokens << [match, :change]
- next unless match = scan(/.+/)
- kind = :plain
- elsif scan(/(@@)((?>[^@\n]*))(@@)/)
- tokens << [:begin_line, line_kind = :change]
- tokens << [self[1], :change]
- tokens << [self[2], :plain]
- tokens << [self[3], :change]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/\+/)
- tokens << [:begin_line, line_kind = :insert]
- tokens << [match, :insert]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/-/)
- tokens << [:begin_line, line_kind = :delete]
- tokens << [match, :delete]
- next unless match = scan(/.+/)
- kind = :plain
- elsif scan(/ .*/)
- kind = :comment
- elsif scan(/.+/)
- tokens << [:begin_line, line_kind = :head]
- kind = :plain
- else
- raise_inspect 'else case rached'
- end
-
- when :added
- if match = scan(/ \+/)
- tokens << [:begin_line, line_kind = :insert]
- tokens << [match, :insert]
- next unless match = scan(/.+/)
- kind = :plain
- else
- state = :initial
- next
- end
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
- end
-
- tokens << [:end_line, line_kind] if line_kind
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/groovy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/groovy.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-module CodeRay
-module Scanners
-
- load :java
-
- class Groovy < Java
-
- include Streamable
- register_for :groovy
-
- # TODO: Check this!
- GROOVY_KEYWORDS = %w[
- as assert def in
- ]
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case instanceof new return throw typeof while as assert in
- ]
- GROOVY_MAGIC_VARIABLES = %w[ it ]
-
- IDENT_KIND = Java::IDENT_KIND.dup.
- add(GROOVY_KEYWORDS, :keyword).
- add(GROOVY_MAGIC_VARIABLES, :local_variable)
-
- ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
-
- # TODO: interpretation inside ', ", /
- STRING_CONTENT_PATTERN = {
- "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
- '"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\']+|'(?!''))+/,
- '"""' => /(?>[^\\$"]+|"(?!""))+/,
- '/' => /[^\\$\/\n]+/,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- inline_block_stack = []
- inline_block_paren_depth = nil
- string_delimiter = nil
- import_clause = class_name_follows = last_token = after_def = false
- value_expected = true
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- if match.index ?\n
- import_clause = after_def = false
- value_expected = true unless value_expected
- end
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- after_def = false
- kind = :comment
-
- elsif bol? && scan(/ \#!.* /x)
- kind = :doctype
-
- elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
- after_def = value_expected = false
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token == '.'
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- elsif after_def && check(/\s*[({]/)
- kind = :method
- after_def = false
- elsif kind == :ident && last_token != '?' && check(/:/)
- kind = :key
- else
- class_name_follows = true if match == 'class' || (import_clause && match == 'as')
- import_clause = match == 'import'
- after_def = true if match == 'def'
- end
-
- elsif scan(/;/)
- import_clause = after_def = false
- value_expected = true
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = after_def = false
- value_expected = true
- kind = :operator
- if !inline_block_stack.empty?
- inline_block_paren_depth += 1
- end
-
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
- value_expected = true
- value_expected = :regexp if match == '~'
- after_def = false
- kind = :operator
-
- elsif match = scan(/ [)\]}] /x)
- value_expected = after_def = false
- if !inline_block_stack.empty? && match == '}'
- inline_block_paren_depth -= 1
- if inline_block_paren_depth == 0 # closing brace of inline block reached
- tokens << [match, :inline_delimiter]
- tokens << [:close, :inline]
- state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
- next
- end
- end
- kind = :operator
-
- elsif check(/[\d.]/)
- after_def = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lLgG]?/)
- kind = :integer
- end
-
- elsif match = scan(/'''|"""/)
- after_def = value_expected = false
- state = :multiline_string
- tokens << [:open, :string]
- string_delimiter = match
- kind = :delimiter
-
- # TODO: record.'name'
- elsif match = scan(/["']/)
- after_def = value_expected = false
- state = match == '/' ? :regexp : :string
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\//))
- after_def = value_expected = false
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- after_def = value_expected = false
- kind = :annotation
-
- elsif scan(/\//)
- after_def = false
- value_expected = true
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :multiline_string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
-
- elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- # TODO: regexp modifiers? s, m, x, i?
- modifiers = scan(/[ix]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- state = :string if state == :multiline_string
- tokens << [:close, state]
- string_delimiter = nil
- after_def = value_expected = false
- state = :initial
- next
-
- elsif (state == :string || state == :multiline_string) &&
- (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
-
- elsif match = scan(/ \$ #{IDENT} /mox)
- tokens << [:open, :inline]
- tokens << ['$', :inline_delimiter]
- match = match[1..-1]
- tokens << [match, IDENT_KIND[match]]
- tokens << [:close, :inline]
- next
- elsif match = scan(/ \$ \{ /x)
- tokens << [:open, :inline]
- tokens << ['${', :inline_delimiter]
- inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
- inline_block_paren_depth = 1
- state = :initial
- next
-
- elsif scan(/ \$ /mx)
- kind = :content
-
- elsif scan(/ \\. /mx)
- kind = :content
-
- elsif scan(/ \\ | \n /x)
- tokens << [:close, state]
- kind = :error
- after_def = value_expected = false
- state = :initial
-
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match unless [:space, :comment, :doctype].include? kind
-
- tokens << [match, kind]
-
- end
-
- if [:multiline_string, :string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/html.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/html.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-module CodeRay
-module Scanners
-
- # HTML Scanner
- class HTML < Scanner
-
- include Streamable
- register_for :html
-
- KINDS_NOT_LOC = [
- :comment, :doctype, :preprocessor,
- :tag, :attribute_name, :operator,
- :attribute_value, :delimiter, :content,
- :plain, :entity, :error
- ]
-
- ATTR_NAME = /[\w.:-]+/
- ATTR_VALUE_UNQUOTED = ATTR_NAME
- TAG_END = /\/?>/
- HEX = /[0-9a-fA-F]/
- ENTITY = /
- &
- (?:
- \w+
- |
- \#
- (?:
- \d+
- |
- x#{HEX}+
- )
- )
- ;
- /ox
-
- PLAIN_STRING_CONTENT = {
- "'" => /[^&'>\n]+/,
- '"' => /[^&">\n]+/,
- }
-
- def reset
- super
- @state = :initial
- end
-
- private
- def setup
- @state = :initial
- @plain_string_content = nil
- end
-
- def scan_tokens tokens, options
-
- state = @state
- plain_string_content = @plain_string_content
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/m)
- kind = :space
-
- else
-
- case state
-
- when :initial
- if scan(//m)
- kind = :comment
- elsif scan(//m)
- kind = :doctype
- elsif scan(/<\?xml.*?\?>/m)
- kind = :preprocessor
- elsif scan(/<\?.*?\?>|<%.*?%>/m)
- kind = :comment
- elsif scan(/<\/[-\w.:]*>/m)
- kind = :tag
- elsif match = scan(/<[-\w.:]+>?/m)
- kind = :tag
- state = :attribute unless match[-1] == ?>
- elsif scan(/[^<>&]+/)
- kind = :plain
- elsif scan(/#{ENTITY}/ox)
- kind = :entity
- elsif scan(/[<>&]/)
- kind = :error
- else
- raise_inspect '[BUG] else-case reached with state %p' % [state], tokens
- end
-
- when :attribute
- if scan(/#{TAG_END}/)
- kind = :tag
- state = :initial
- elsif scan(/#{ATTR_NAME}/o)
- kind = :attribute_name
- state = :attribute_equal
- else
- kind = :error
- getch
- end
-
- when :attribute_equal
- if scan(/=/)
- kind = :operator
- state = :attribute_value
- elsif scan(/#{ATTR_NAME}/o)
- kind = :attribute_name
- elsif scan(/#{TAG_END}/o)
- kind = :tag
- state = :initial
- elsif scan(/./)
- kind = :error
- state = :attribute
- end
-
- when :attribute_value
- if scan(/#{ATTR_VALUE_UNQUOTED}/o)
- kind = :attribute_value
- state = :attribute
- elsif match = scan(/["']/)
- tokens << [:open, :string]
- state = :attribute_value_string
- plain_string_content = PLAIN_STRING_CONTENT[match]
- kind = :delimiter
- elsif scan(/#{TAG_END}/o)
- kind = :tag
- state = :initial
- else
- kind = :error
- getch
- end
-
- when :attribute_value_string
- if scan(plain_string_content)
- kind = :content
- elsif scan(/['"]/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :attribute
- next
- elsif scan(/#{ENTITY}/ox)
- kind = :entity
- elsif scan(/&/)
- kind = :content
- elsif scan(/[\n>]/)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- end
-
- else
- raise_inspect 'Unknown state: %p' % [state], tokens
-
- end
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
- end
-
- if options[:keep_state]
- @state = state
- @plain_string_content = plain_string_content
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/java.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/java.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-module CodeRay
-module Scanners
-
- class Java < Scanner
-
- include Streamable
- register_for :java
- helper :builtin_types
-
- # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
- KEYWORDS = %w[
- assert break case catch continue default do else
- finally for if instanceof import new package
- return switch throw try typeof while
- debugger export
- ]
- RESERVED = %w[ const goto ]
- CONSTANTS = %w[ false null true ]
- MAGIC_VARIABLES = %w[ this super ]
- TYPES = %w[
- boolean byte char class double enum float int interface long
- short void
- ] << '[]' # because int[] should be highlighted as a type
- DIRECTIVES = %w[
- abstract extends final implements native private protected public
- static strictfp synchronized throws transient volatile
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(RESERVED, :reserved).
- add(CONSTANTS, :pre_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(TYPES, :type).
- add(BuiltinTypes::List, :pre_type).
- add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- }
- IDENT = /[a-zA-Z_][A-Za-z_0-9]*/
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- import_clause = class_name_follows = last_token_dot = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- next
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- tokens << [match, :comment]
- next
-
- elsif import_clause && scan(/ #{IDENT} (?: \. #{IDENT} )* /ox)
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- if last_token_dot
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- else
- import_clause = true if match == 'import'
- class_name_follows = true if match == 'class' || match == 'interface'
- end
-
- elsif scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<=? | >>>?=? /x)
- kind = :operator
-
- elsif scan(/;/)
- import_clause = false
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = false
- kind = :operator
-
- elsif check(/[\d.]/)
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lL]?/)
- kind = :integer
- end
-
- elsif match = scan(/["']/)
- tokens << [:open, :string]
- state = :string
- string_delimiter = match
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- kind = :annotation
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
- tokens << [match, :delimiter]
- tokens << [:close, state]
- string_delimiter = nil
- state = :initial
- next
- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :delimiter]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token_dot = match == '.'
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/java_script.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/java_script.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-module CodeRay
-module Scanners
-
- class JavaScript < Scanner
-
- include Streamable
-
- register_for :java_script
- file_extension 'js'
-
- # The actual JavaScript keywords.
- KEYWORDS = %w[
- break case catch continue default delete do else
- finally for function if in instanceof new
- return switch throw try typeof var void while with
- ]
- PREDEFINED_CONSTANTS = %w[
- false null true undefined
- ]
-
- MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
-
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case delete in instanceof new return throw typeof with
- ]
-
- # Reserved for future use.
- RESERVED_WORDS = %w[
- abstract boolean byte char class debugger double enum export extends
- final float goto implements import int interface long native package
- private protected public short static super synchronized throws transient
- volatile
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_CONSTANTS, :pre_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(KEYWORDS, :keyword)
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
- REGEXP_ESCAPE = / [bBdDsSwW] /x
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- }
- KEY_CHECK_PATTERN = {
- "'" => / [^\\']* (?: \\.? [^\\']* )* '? \s* : /x,
- '"' => / [^\\"]* (?: \\.? [^\\"]* )* "? \s* : /x,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- value_expected = true
- key_expected = false
- function_expected = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- value_expected = true if !value_expected && match.index(?\n)
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- kind = :comment
-
- elsif check(/\.?\d/)
- key_expected = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- kind = :float
- elsif scan(/\d+/)
- kind = :integer
- end
-
- elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
- # FIXME: scan over nested tags
- xml_scanner.tokenize match
- value_expected = false
- next
-
- elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
- value_expected = true
- last_operator = match[-1]
- key_expected = (last_operator == ?{) || (last_operator == ?,)
- function_expected = false
- kind = :operator
-
- elsif scan(/ [)\]}]+ /x)
- function_expected = key_expected = value_expected = false
- kind = :operator
-
- elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- # TODO: labels
- if kind == :ident
- if match.index(?$) # $ allowed inside an identifier
- kind = :predefined
- elsif function_expected
- kind = :function
- elsif check(/\s*[=:]\s*function\b/)
- kind = :function
- elsif key_expected && check(/\s*:/)
- kind = :key
- end
- end
- function_expected = (kind == :keyword) && (match == 'function')
- key_expected = false
-
- elsif match = scan(/["']/)
- if key_expected && check(KEY_CHECK_PATTERN[match])
- state = :key
- else
- state = :string
- end
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\/(?=\S)/))
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ \/ /x)
- value_expected = true
- key_expected = false
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :key
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- modifiers = scan(/[gim]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- tokens << [:close, state]
- string_delimiter = nil
- key_expected = value_expected = false
- state = :initial
- next
- elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, state]
- kind = :error
- key_expected = value_expected = false
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if [:string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- protected
-
- def reset_instance
- super
- @xml_scanner.reset if defined? @xml_scanner
- end
-
- def xml_scanner
- @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/json.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/json.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-module CodeRay
-module Scanners
-
- class JSON < Scanner
-
- include Streamable
-
- register_for :json
- file_extension 'json'
-
- KINDS_NOT_LOC = [
- :float, :char, :content, :delimiter,
- :error, :integer, :operator, :value,
- ]
-
- CONSTANTS = %w( true false null )
- IDENT_KIND = WordList.new(:key).add(CONSTANTS, :value)
-
- ESCAPE = / [bfnrt\\"\/] /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- stack = []
- string_delimiter = nil
- key_expected = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- next
- elsif match = scan(/ [:,\[{\]}] /x)
- kind = :operator
- case match
- when '{' then stack << :object; key_expected = true
- when '[' then stack << :array
- when ':' then key_expected = false
- when ',' then key_expected = true if stack.last == :object
- when '}', ']' then stack.pop # no error recovery, but works for valid JSON
- end
- elsif match = scan(/ true | false | null /x)
- kind = IDENT_KIND[match]
- elsif match = scan(/-?(?:0|[1-9]\d*)/)
- kind = :integer
- if scan(/\.\d+(?:[eE][-+]?\d+)?|[eE][-+]?\d+/)
- match << matched
- kind = :float
- end
- elsif match = scan(/"/)
- state = key_expected ? :key : :string
- tokens << [:open, state]
- kind = :delimiter
- else
- getch
- kind = :error
- end
-
- when :string, :key
- if scan(/[^\\"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, state]
- state = :initial
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :delimiter]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if [:string, :key].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/nitro_xhtml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/nitro_xhtml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # Nitro XHTML Scanner
- class NitroXHTML < Scanner
-
- include Streamable
- register_for :nitro_xhtml
- file_extension :xhtml
- title 'Nitro XHTML'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- NITRO_RUBY_BLOCK = /
- <\?r
- (?>
- [^\?]*
- (?> \?(?!>) [^\?]* )*
- )
- (?: \?> )?
- |
-
- (?>
- [^<]*
- (?> <(?!\/ruby>) [^<]* )*
- )
- (?: <\/ruby> )?
- |
- <%
- (?>
- [^%]*
- (?> %(?!>) [^%]* )*
- )
- (?: %> )?
- /mx
-
- NITRO_VALUE_BLOCK = /
- \#
- (?:
- \{
- [^{}]*
- (?>
- \{ [^}]* \}
- (?> [^{}]* )
- )*
- \}?
- | \| [^|]* \|?
- | \( [^)]* \)?
- | \[ [^\]]* \]?
- | \\ [^\\]* \\?
- )
- /x
-
- NITRO_ENTITY = /
- % (?: \#\d+ | \w+ ) ;
- /
-
- START_OF_RUBY = /
- (?=[<\#%])
- < (?: \?r | % | ruby> )
- | \# [{(|]
- | % (?: \#\d+ | \w+ ) ;
- /x
-
- CLOSING_PAREN = Hash.new do |h, p|
- h[p] = p
- end.update( {
- '(' => ')',
- '[' => ']',
- '{' => '}',
- } )
-
- private
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens tokens, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_RUBY})/o) || scan_until(/\z/)) and not match.empty?
- @html_scanner.tokenize match
-
- elsif match = scan(/#{NITRO_VALUE_BLOCK}/o)
- start_tag = match[0,2]
- delimiter = CLOSING_PAREN[start_tag[1,1]]
- end_tag = match[-1,1] == delimiter ? delimiter : ''
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -1 - end_tag.size]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- elsif match = scan(/#{NITRO_RUBY_BLOCK}/o)
- start_tag = '' ? '?>' : ''
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -(end_tag.size)-1]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- elsif entity = scan(/#{NITRO_ENTITY}/o)
- tokens << [entity, :entity]
-
- elsif scan(/%/)
- tokens << [matched, :error]
-
- else
- raise_inspect 'else-case reached!', tokens
-
- end
-
- end
-
- tokens
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/php.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/php.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Original by Stefan Walk.
- class PHP < Scanner
-
- register_for :php
- file_extension 'php'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- def setup
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- module Words
-
- # according to http://www.php.net/manual/en/reserved.keywords.php
- KEYWORDS = %w[
- abstract and array as break case catch class clone const continue declare default do else elseif
- enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
- goto if implements interface instanceof namespace new or private protected public static switch
- throw try use var while xor
- cfunction old_function
- ]
-
- TYPES = %w[ int integer float double bool boolean string array object resource ]
-
- LANGUAGE_CONSTRUCTS = %w[
- die echo empty exit eval include include_once isset list
- require require_once return print unset
- ]
-
- CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
-
- # according to http://php.net/quickref.php on 2009-04-21;
- # all functions with _ excluded (module functions) and selected additional functions
- BUILTIN_FUNCTIONS = %w[
- abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
- atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
- bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
- calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
- compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
- decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
- ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
- fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
- fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
- fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
- getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
- getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
- gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
- gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
- gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
- implode include intval ip2long iptcembed iptcparse isset
- jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
- juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
- log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
- natsort next ngettext nl2br nthmac octdec opendir openlog
- ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
- prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
- readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
- serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
- snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
- strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
- strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
- strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
- textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
- unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
- array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
- array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
- array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
- array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
- array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
- array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
- array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
- array_walk_recursive
- assert_options base_convert base64_decode base64_encode
- chunk_split class_exists class_implements class_parents
- count_chars debug_backtrace debug_print_backtrace debug_zval_dump
- error_get_last error_log error_reporting extension_loaded
- file_exists file_get_contents file_put_contents load_file
- func_get_arg func_get_args func_num_args function_exists
- get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
- get_current_user get_declared_classes get_declared_interfaces get_defined_constants
- get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
- get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
- get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
- gc_collect_cycles gc_disable gc_enable gc_enabled
- halt_compiler headers_list headers_sent highlight_file highlight_string
- html_entity_decode htmlspecialchars_decode
- in_array include_once inclued_get_data
- is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
- is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
- is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
- is_writable is_writeable
- locale_get_default locale_set_default
- number_format override_function parse_str parse_url
- php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
- php_strip_whitespace php_uname
- preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
- preg_replace_callback preg_split print_r
- require_once register_shutdown_function register_tick_function
- set_error_handler set_exception_handler set_file_buffer set_include_path
- set_magic_quotes_runtime set_time_limit shell_exec
- str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
- strip_tags substr_compare substr_count substr_replace
- time_nanosleep time_sleep_until
- token_get_all token_name trigger_error
- unregister_tick_function use_soap_error_handler user_error
- utf8_decode utf8_encode var_dump var_export
- version_compare
- zend_logo_guid zend_thread_id zend_version
- create_function call_user_func_array
- posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
- posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
- posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
- posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
- posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
- posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
- posix_setuid posix_strerror posix_times posix_ttyname posix_uname
- pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
- pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
- pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
- pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
- ]
- # TODO: more built-in PHP functions?
-
- EXCEPTIONS = %w[
- E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
- E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
- ]
-
- CONSTANTS = %w[
- null true false self parent
- __LINE__ __DIR__ __FILE__ __LINE__
- __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
- PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
- PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
- PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
- PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
- PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
- __COMPILER_HALT_OFFSET__
- EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
- EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
- COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
- CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
- M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
- CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
- HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
- INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
- CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
- STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
- LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
- ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
- ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
- MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
- ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
- POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
- N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
- YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
- LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
- LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
- LOG_NDELAY LOG_NOWAIT LOG_PERROR
- ]
-
- PREDEFINED = %w[
- $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
- $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
- $argc $argv
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(KEYWORDS, :reserved).
- add(TYPES, :pre_type).
- add(LANGUAGE_CONSTRUCTS, :reserved).
- add(BUILTIN_FUNCTIONS, :predefined).
- add(CLASSES, :pre_constant).
- add(EXCEPTIONS, :exception).
- add(CONSTANTS, :pre_constant)
-
- VARIABLE_KIND = WordList.new(:local_variable).
- add(PREDEFINED, :predefined)
- end
-
- module RE
-
- PHP_START = /
- |
- \?>
- !xi
-
- HTML_INDICATOR = / ]/i
-
- IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
- VARIABLE = /\$#{IDENTIFIER}/
-
- OPERATOR = /
- \.(?!\d)=? | # dot that is not decimal point, string concatenation
- && | \|\| | # logic
- :: | -> | => | # scope, member, dictionary
- \\(?!\n) | # namespace
- \+\+ | -- | # increment, decrement
- [,;?:()\[\]{}] | # simple delimiters
- [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
- [~$] | # whatever
- =& | # reference assignment
- [=!]=?=? | <> | # comparison and assignment
- <<=? | >>=? | [<>]=? # comparison and shift
- /x
-
- end
-
- def scan_tokens tokens, options
-
- if check(RE::PHP_START) || # starts with
- (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
- exist?(RE::HTML_INDICATOR) ||
- check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
- # is HTML with embedded PHP, so start with HTML
- states = [:initial]
- else
- # is just PHP, so start with PHP surrounded by HTML
- states = [:initial, :php]
- end
-
- label_expected = true
- case_expected = false
-
- heredoc_delimiter = nil
- delimiter = nil
- modifier = nil
-
- until eos?
-
- match = nil
- kind = nil
-
- case states.last
-
- when :initial # HTML
- if scan RE::PHP_START
- kind = :inline_delimiter
- label_expected = true
- states << :php
- else
- match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
- @html_scanner.tokenize match unless match.empty?
- next
- end
-
- when :php
- if match = scan(/\s+/)
- tokens << [match, :space]
- next
-
- elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
- kind = :comment
-
- elsif match = scan(RE::IDENTIFIER)
- kind = Words::IDENT_KIND[match]
- if kind == :ident && label_expected && check(/:(?!:)/)
- kind = :label
- label_expected = true
- else
- label_expected = false
- if kind == :ident && match =~ /^[A-Z]/
- kind = :constant
- elsif kind == :reserved
- case match
- when 'class'
- states << :class_expected
- when 'function'
- states << :function_expected
- when 'case', 'default'
- case_expected = true
- end
- elsif match == 'b' && check(/['"]/) # binary string literal
- modifier = match
- next
- end
- end
-
- elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
- label_expected = false
- kind = :float
-
- elsif scan(/0x[0-9a-fA-F]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/\d+/)
- label_expected = false
- kind = :integer
-
- elsif scan(/'/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- kind = :delimiter
- states.push :sqstring
-
- elsif match = scan(/["`]/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- delimiter = match
- kind = :delimiter
- states.push :dqstring
-
- elsif match = scan(RE::VARIABLE)
- label_expected = false
- kind = Words::VARIABLE_KIND[match]
-
- elsif scan(/\{/)
- kind = :operator
- label_expected = true
- states.push :php
-
- elsif scan(/\}/)
- if states.size == 1
- kind = :error
- else
- states.pop
- if states.last.is_a?(::Array)
- delimiter = states.last[1]
- states[-1] = states.last[0]
- tokens << [matched, :delimiter]
- tokens << [:close, :inline]
- next
- else
- kind = :operator
- label_expected = true
- end
- end
-
- elsif scan(/@/)
- label_expected = false
- kind = :exception
-
- elsif scan RE::PHP_END
- kind = :inline_delimiter
- states = [:initial]
-
- elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
- tokens << [:open, :string]
- warn 'heredoc in heredoc?' if heredoc_delimiter
- heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
- kind = :delimiter
- states.push self[3] ? :sqstring : :dqstring
- heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
-
- elsif match = scan(/#{RE::OPERATOR}/o)
- label_expected = match == ';'
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :sqstring
- if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
- kind = :content
- elsif !heredoc_delimiter && scan(/'/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- end
-
- when :dqstring
- if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
- kind = :content
- elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
- kind = :char
- elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- elsif match = scan(/#{RE::VARIABLE}/o)
- kind = :local_variable
- if check(/\[#{RE::IDENTIFIER}\]/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/\[/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [scan(/\]/), :operator]
- tokens << [:close, :inline]
- next
- elsif check(/\[/)
- match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
- kind = :error
- elsif check(/->#{RE::IDENTIFIER}/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/->/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [:close, :inline]
- next
- elsif check(/->/)
- match << scan(/->/)
- kind = :error
- end
- elsif match = scan(/\{/)
- if check(/\$/)
- kind = :delimiter
- states[-1] = [states.last, delimiter]
- delimiter = nil
- states.push :php
- tokens << [:open, :inline]
- else
- kind = :string
- end
- elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
- kind = :local_variable
- elsif scan(/\$/)
- kind = :content
- end
-
- when :class_expected
- if scan(/\s+/)
- kind = :space
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :class
- states.pop
- else
- states.pop
- next
- end
-
- when :function_expected
- if scan(/\s+/)
- kind = :space
- elsif scan(/&/)
- kind = :operator
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :function
- states.pop
- else
- states.pop
- next
- end
-
- else
- raise_inspect 'Unknown state!', tokens, states
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, states
- end
- raise_inspect 'Empty token', tokens, states unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/plaintext.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/plaintext.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module CodeRay
-module Scanners
-
- class Plaintext < Scanner
-
- register_for :plaintext, :plain
- title 'Plain text'
-
- include Streamable
-
- KINDS_NOT_LOC = [:plain]
-
- def scan_tokens tokens, options
- text = (scan_until(/\z/) || '')
- tokens << [text, :plain]
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/python.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/python.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +0,0 @@
-module CodeRay
-module Scanners
-
- # Bases on pygments' PythonLexer, see
- # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py.
- class Python < Scanner
-
- include Streamable
-
- register_for :python
- file_extension 'py'
-
- KEYWORDS = [
- 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
- 'del', 'elif', 'else', 'except', 'finally', 'for',
- 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not',
- 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield',
- 'nonlocal', # new in Python 3
- ]
-
- OLD_KEYWORDS = [
- 'exec', 'print', # gone in Python 3
- ]
-
- PREDEFINED_METHODS_AND_TYPES = %w[
- __import__ abs all any apply basestring bin bool buffer
- bytearray bytes callable chr classmethod cmp coerce compile
- complex delattr dict dir divmod enumerate eval execfile exit
- file filter float frozenset getattr globals hasattr hash hex id
- input int intern isinstance issubclass iter len list locals
- long map max min next object oct open ord pow property range
- raw_input reduce reload repr reversed round set setattr slice
- sorted staticmethod str sum super tuple type unichr unicode
- vars xrange zip
- ]
-
- PREDEFINED_EXCEPTIONS = %w[
- ArithmeticError AssertionError AttributeError
- BaseException DeprecationWarning EOFError EnvironmentError
- Exception FloatingPointError FutureWarning GeneratorExit IOError
- ImportError ImportWarning IndentationError IndexError KeyError
- KeyboardInterrupt LookupError MemoryError NameError
- NotImplemented NotImplementedError OSError OverflowError
- OverflowWarning PendingDeprecationWarning ReferenceError
- RuntimeError RuntimeWarning StandardError StopIteration
- SyntaxError SyntaxWarning SystemError SystemExit TabError
- TypeError UnboundLocalError UnicodeDecodeError
- UnicodeEncodeError UnicodeError UnicodeTranslateError
- UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
- ]
-
- PREDEFINED_VARIABLES_AND_CONSTANTS = [
- 'False', 'True', 'None', # "keywords" since Python 3
- 'self', 'Ellipsis', 'NotImplemented',
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(OLD_KEYWORDS, :old_keyword).
- add(PREDEFINED_METHODS_AND_TYPES, :predefined).
- add(PREDEFINED_VARIABLES_AND_CONSTANTS, :pre_constant).
- add(PREDEFINED_EXCEPTIONS, :exception)
-
- NAME = / [^\W\d] \w* /x
- ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x
-
- OPERATOR = /
- \.\.\. | # ellipsis
- \.(?!\d) | # dot but not decimal point
- [,;:()\[\]{}] | # simple delimiters
- \/\/=? | \*\*=? | # special math
- [-+*\/%&|^]=? | # ordinary math and binary logic
- [~`] | # binary complement and inspection
- <<=? | >>=? | [<>=]=? | != # comparison and assignment
- /x
-
- STRING_DELIMITER_REGEXP = Hash.new do |h, delimiter|
- h[delimiter] = Regexp.union delimiter
- end
-
- STRING_CONTENT_REGEXP = Hash.new do |h, delimiter|
- h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x
- end
-
- DEF_NEW_STATE = WordList.new(:initial).
- add(%w(def), :def_expected).
- add(%w(import from), :include_expected).
- add(%w(class), :class_expected)
-
- DESCRIPTOR = /
- #{NAME}
- (?: \. #{NAME} )*
- | \*
- /x
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- string_raw = false
- import_clause = class_name_follows = last_token_dot = false
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
- from_import_state = []
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :string
- if scan(STRING_DELIMITER_REGEXP[string_delimiter])
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- elsif string_delimiter.size == 3 && scan(/\n/)
- kind = :content
- elsif scan(STRING_CONTENT_REGEXP[string_delimiter])
- kind = :content
- elsif !string_raw && scan(/ \\ #{ESCAPE} /ox)
- kind = :char
- elsif scan(/ \\ #{UNICODE_ESCAPE} /ox)
- kind = :char
- elsif scan(/ \\ . /x)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens, state
- end
-
- elsif match = scan(/ [ \t]+ | \\\n /x)
- tokens << [match, :space]
- next
-
- elsif match = scan(/\n/)
- tokens << [match, :space]
- state = :initial if state == :include_expected
- next
-
- elsif match = scan(/ \# [^\n]* /mx)
- tokens << [match, :comment]
- next
-
- elsif state == :initial
-
- if scan(/#{OPERATOR}/o)
- kind = :operator
-
- elsif match = scan(/(u?r?|b)?("""|"|'''|')/i)
- tokens << [:open, :string]
- string_delimiter = self[2]
- string_raw = false
- modifiers = self[1]
- unless modifiers.empty?
- string_raw = !!modifiers.index(?r)
- tokens << [modifiers, :modifier]
- match = string_delimiter
- end
- state = :string
- kind = :delimiter
-
- # TODO: backticks
-
- elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = IDENT_KIND[match]
- # TODO: keyword arguments
- kind = :ident if last_token_dot
- if kind == :old_keyword
- kind = check(/\(/) ? :ident : :keyword
- elsif kind == :predefined && check(/ *=/)
- kind = :ident
- elsif kind == :keyword
- state = DEF_NEW_STATE[match]
- from_import_state << match.to_sym if state == :include_expected
- end
-
- elsif scan(/@[a-zA-Z0-9_.]+[lL]?/)
- kind = :decorator
-
- elsif scan(/0[xX][0-9A-Fa-f]+[lL]?/)
- kind = :hex
-
- elsif scan(/0[bB][01]+[lL]?/)
- kind = :bin
-
- elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
- kind = :float
- if scan(/[jJ]/)
- match << matched
- kind = :imaginary
- end
-
- elsif scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/)
- kind = :oct
-
- elsif match = scan(/\d+([lL])?/)
- kind = :integer
- if self[1] == nil && scan(/[jJ]/)
- match << matched
- kind = :imaginary
- end
-
- else
- getch
- kind = :error
-
- end
-
- elsif state == :def_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = :method
- else
- next
- end
-
- elsif state == :class_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = :class
- else
- next
- end
-
- elsif state == :include_expected
- if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o)
- kind = :include
- if match == 'as'
- kind = :keyword
- from_import_state << :as
- elsif from_import_state.first == :from && match == 'import'
- kind = :keyword
- from_import_state << :import
- elsif from_import_state.last == :as
- # kind = match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method
- kind = :ident
- from_import_state.pop
- elsif IDENT_KIND[match] == :keyword
- unscan
- match = nil
- state = :initial
- next
- end
- elsif match = scan(/,/)
- from_import_state.pop if from_import_state.last == :as
- kind = :operator
- else
- from_import_state = []
- state = :initial
- next
- end
-
- else
- raise_inspect 'Unknown state', tokens, state
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- last_token_dot = match == '.'
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/rhtml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/rhtml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # RHTML Scanner
- class RHTML < Scanner
-
- include Streamable
- register_for :rhtml
- title 'HTML ERB Template'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- ERB_RUBY_BLOCK = /
- <%(?!%)[=-]?
- (?>
- [^\-%]* # normal*
- (?> # special
- (?: %(?!>) | -(?!%>) )
- [^\-%]* # normal*
- )*
- )
- (?: -?%> )?
- /x
-
- START_OF_ERB = /
- <%(?!%)
- /x
-
- private
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens tokens, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_until(/\z/)) and not match.empty?
- @html_scanner.tokenize match
-
- elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
- start_tag = match[/\A<%[-=]?/]
- end_tag = match[/-?%?>?\z/]
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -1 - end_tag.size]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- else
- raise_inspect 'else-case reached!', tokens
- end
-
- end
-
- tokens
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/ruby.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/ruby.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-module CodeRay
-module Scanners
-
- # This scanner is really complex, since Ruby _is_ a complex language!
- #
- # It tries to highlight 100% of all common code,
- # and 90% of strange codes.
- #
- # It is optimized for HTML highlighting, and is not very useful for
- # parsing or pretty printing.
- #
- # For now, I think it's better than the scanners in VIM or Syntax, or
- # any highlighter I was able to find, except Caleb's RubyLexer.
- #
- # I hope it's also better than the rdoc/irb lexer.
- class Ruby < Scanner
-
- include Streamable
-
- register_for :ruby
- file_extension 'rb'
-
- helper :patterns
-
- if not defined? EncodingError
- EncodingError = Class.new Exception
- end
-
- private
- def scan_tokens tokens, options
- last_token_dot = false
- value_expected = true
- heredocs = nil
- last_state = nil
- state = :initial
- depth = nil
- inline_block_stack = []
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
-
- patterns = Patterns # avoid constant lookup
-
- until eos?
- match = nil
- kind = nil
-
- if state.instance_of? patterns::StringState
-# {{{
- match = scan_until(state.pattern) || scan_until(/\z/)
- tokens << [match, :content] unless match.empty?
- break if eos?
-
- if state.heredoc and self[1] # end of heredoc
- match = getch.to_s
- match << scan_until(/$/) unless eos?
- tokens << [match, :delimiter]
- tokens << [:close, state.type]
- state = state.next_state
- next
- end
-
- case match = getch
-
- when state.delim
- if state.paren
- state.paren_depth -= 1
- if state.paren_depth > 0
- tokens << [match, :nesting_delimiter]
- next
- end
- end
- tokens << [match, :delimiter]
- if state.type == :regexp and not eos?
- modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
- tokens << [modifiers, :modifier] unless modifiers.empty?
- end
- tokens << [:close, state.type]
- value_expected = false
- state = state.next_state
-
- when '\\'
- if state.interpreted
- if esc = scan(/ #{patterns::ESCAPE} /ox)
- tokens << [match + esc, :char]
- else
- tokens << [match, :error]
- end
- else
- case m = getch
- when state.delim, '\\'
- tokens << [match + m, :char]
- when nil
- tokens << [match, :error]
- else
- tokens << [match + m, :content]
- end
- end
-
- when '#'
- case peek(1)
- when '{'
- inline_block_stack << [state, depth, heredocs]
- value_expected = true
- state = :initial
- depth = 1
- tokens << [:open, :inline]
- tokens << [match + getch, :inline_delimiter]
- when '$', '@'
- tokens << [match, :escape]
- last_state = state # scan one token as normal code, then return here
- state = :initial
- else
- raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
- end
-
- when state.paren
- state.paren_depth += 1
- tokens << [match, :nesting_delimiter]
-
- when /#{patterns::REGEXP_SYMBOLS}/ox
- tokens << [match, :function]
-
- else
- raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
-
- end
- next
-# }}}
- else
-# {{{
- if match = scan(/[ \t\f]+/)
- kind = :space
- match << scan(/\s*/) unless eos? || heredocs
- value_expected = true if match.index(?\n)
- tokens << [match, kind]
- next
-
- elsif match = scan(/\\?\n/)
- kind = :space
- if match == "\n"
- value_expected = true
- state = :initial if state == :undef_comma_expected
- end
- if heredocs
- unscan # heredoc scanning needs \n at start
- state = heredocs.shift
- tokens << [:open, state.type]
- heredocs = nil if heredocs.empty?
- next
- else
- match << scan(/\s*/) unless eos?
- end
- tokens << [match, kind]
- next
-
- elsif bol? && match = scan(/\#!.*/)
- tokens << [match, :doctype]
- next
-
- elsif match = scan(/\#.*/) or
- ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
- kind = :comment
- tokens << [match, kind]
- next
-
- elsif state == :initial
-
- # IDENTS #
- if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
- /#{patterns::METHOD_NAME}/o)
- if last_token_dot
- kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
- else
- kind = patterns::IDENT_KIND[match]
- if kind == :ident and match[/^[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
- kind = :constant
- elsif kind == :reserved
- state = patterns::DEF_NEW_STATE[match]
- value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
- end
- end
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
- kind = :ident
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- # OPERATORS #
- elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
- if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
- value_expected = :set
- end
- last_token_dot = :set if self[1]
- kind = :operator
- unless inline_block_stack.empty?
- case match
- when '{'
- depth += 1
- when '}'
- depth -= 1
- if depth == 0 # closing brace of inline block reached
- state, depth, heredocs = inline_block_stack.pop
- heredocs = nil if heredocs && heredocs.empty?
- tokens << [match, :inline_delimiter]
- kind = :inline
- match = :close
- end
- end
- end
-
- elsif match = scan(/ ['"] /mx)
- tokens << [:open, :string]
- kind = :delimiter
- state = patterns::StringState.new :string, match == '"', match # important for streaming
-
- elsif match = scan(/#{patterns::INSTANCE_VARIABLE}/o)
- kind = :instance_variable
-
- elsif value_expected and match = scan(/\//)
- tokens << [:open, :regexp]
- kind = :delimiter
- interpreted = true
- state = patterns::StringState.new :regexp, interpreted, match
-
- # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
- elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
- kind = self[1] ? :float : :integer
-
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- else
- kind = :symbol
- end
-
- elsif match = scan(/ [-+!~^]=? | [*|&]{1,2}=? | >>? /x)
- value_expected = :set
- kind = :operator
-
- elsif value_expected and match = scan(/#{patterns::HEREDOC_OPEN}/o)
- indented = self[1] == '-'
- quote = self[3]
- delim = self[quote ? 4 : 2]
- kind = patterns::QUOTE_TO_TYPE[quote]
- tokens << [:open, kind]
- tokens << [match, :delimiter]
- match = :close
- heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
- heredocs ||= [] # create heredocs if empty
- heredocs << heredoc
-
- elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
- kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
- raise_inspect 'Unknown fancy string: %%%p' % k, tokens
- end
- tokens << [:open, kind]
- state = patterns::StringState.new kind, interpreted, self[2]
- kind = :delimiter
-
- elsif value_expected and match = scan(/#{patterns::CHARACTER}/o)
- kind = :integer
-
- elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
- value_expected = :set
- kind = :operator
-
- elsif match = scan(/`/)
- if last_token_dot
- kind = :operator
- else
- tokens << [:open, :shell]
- kind = :delimiter
- state = patterns::StringState.new :shell, true, match
- end
-
- elsif match = scan(/#{patterns::GLOBAL_VARIABLE}/o)
- kind = :global_variable
-
- elsif match = scan(/#{patterns::CLASS_VARIABLE}/o)
- kind = :class_variable
-
- else
- if !unicode
- # check for unicode
- debug, $DEBUG = $DEBUG, false
- begin
- if check(/./mu).size > 1
- # seems like we should try again with unicode
- unicode = true
- end
- rescue
- # bad unicode char; use getch
- ensure
- $DEBUG = debug
- end
- next if unicode
- end
- kind = :error
- match = getch
-
- end
-
- elsif state == :def_expected
- state = :initial
- if scan(/self\./)
- tokens << ['self', :pre_constant]
- tokens << ['.', :operator]
- end
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- kind = :method
- else
- next
- end
-
- elsif state == :module_expected
- if match = scan(/<)
- kind = :operator
- else
- state = :initial
- if match = scan(/ (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox)
- kind = :class
- else
- next
- end
- end
-
- elsif state == :undef_expected
- state = :undef_comma_expected
- if match = scan(/#{patterns::METHOD_NAME_EX}/o)
- kind = :method
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- state.next_state = :undef_comma_expected
- else
- kind = :symbol
- end
- else
- state = :initial
- next
- end
-
- elsif state == :alias_expected
- match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
- /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
-
- if match
- tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
- tokens << [self[2], :space]
- tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
- end
- state = :initial
- next
-
- elsif state == :undef_comma_expected
- if match = scan(/,/)
- kind = :operator
- state = :undef_expected
- else
- state = :initial
- next
- end
-
- end
-# }}}
-
- unless kind == :error
- value_expected = value_expected == :set
- last_token_dot = last_token_dot == :set
- end
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- if last_state
- state = last_state
- last_state = nil
- end
- end
- end
-
- inline_block_stack << [state] if state.is_a? patterns::StringState
- until inline_block_stack.empty?
- this_block = inline_block_stack.pop
- tokens << [:close, :inline] if this_block.size > 1
- state = this_block.first
- tokens << [:close, state.type]
- end
-
- tokens
- end
-
- end
-
-end
-end
-
-# vim:fdm=marker
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/scheme.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/scheme.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-module CodeRay
- module Scanners
-
- # Scheme scanner for CodeRay (by closure).
- # Thanks to murphy for putting CodeRay into public.
- class Scheme < Scanner
-
- # TODO: function defs
- # TODO: built-in functions
-
- register_for :scheme
- file_extension 'scm'
-
- CORE_FORMS = %w[
- lambda let let* letrec syntax-case define-syntax let-syntax
- letrec-syntax begin define quote if or and cond case do delay
- quasiquote set! cons force call-with-current-continuation call/cc
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(CORE_FORMS, :reserved)
-
- #IDENTIFIER_INITIAL = /[a-z!@\$%&\*\/\:<=>\?~_\^]/i
- #IDENTIFIER_SUBSEQUENT = /#{IDENTIFIER_INITIAL}|\d|\.|\+|-/
- #IDENTIFIER = /#{IDENTIFIER_INITIAL}#{IDENTIFIER_SUBSEQUENT}*|\+|-|\.{3}/
- IDENTIFIER = /[a-zA-Z!@$%&*\/:<=>?~_^][\w!@$%&*\/:<=>?~^.+\-]*|[+-]|\.\.\./
- DIGIT = /\d/
- DIGIT10 = DIGIT
- DIGIT16 = /[0-9a-f]/i
- DIGIT8 = /[0-7]/
- DIGIT2 = /[01]/
- RADIX16 = /\#x/i
- RADIX8 = /\#o/i
- RADIX2 = /\#b/i
- RADIX10 = /\#d/i
- EXACTNESS = /#i|#e/i
- SIGN = /[\+-]?/
- EXP_MARK = /[esfdl]/i
- EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/
- SUFFIX = /#{EXP}?/
- PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
- PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
- PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
- PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
- UINT10 = /#{DIGIT10}+#*/
- UINT16 = /#{DIGIT16}+#*/
- UINT8 = /#{DIGIT8}+#*/
- UINT2 = /#{DIGIT2}+#*/
- DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
- UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
- UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/
- UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/
- UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/
- REAL10 = /#{SIGN}#{UREAL10}/
- REAL16 = /#{SIGN}#{UREAL16}/
- REAL8 = /#{SIGN}#{UREAL8}/
- REAL2 = /#{SIGN}#{UREAL2}/
- IMAG10 = /i|#{UREAL10}i/
- IMAG16 = /i|#{UREAL16}i/
- IMAG8 = /i|#{UREAL8}i/
- IMAG2 = /i|#{UREAL2}i/
- COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
- COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
- COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
- COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
- NUM10 = /#{PREFIX10}?#{COMPLEX10}/
- NUM16 = /#{PREFIX16}#{COMPLEX16}/
- NUM8 = /#{PREFIX8}#{COMPLEX8}/
- NUM2 = /#{PREFIX2}#{COMPLEX2}/
- NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
-
- private
- def scan_tokens tokens,options
-
- state = :initial
- ident_kind = IDENT_KIND
-
- until eos?
- kind = match = nil
-
- case state
- when :initial
- if scan(/ \s+ | \\\n /x)
- kind = :space
- elsif scan(/['\(\[\)\]]|#\(/)
- kind = :operator_fat
- elsif scan(/;.*/)
- kind = :comment
- elsif scan(/#\\(?:newline|space|.?)/)
- kind = :char
- elsif scan(/#[ft]/)
- kind = :pre_constant
- elsif scan(/#{IDENTIFIER}/o)
- kind = ident_kind[matched]
- elsif scan(/\./)
- kind = :operator
- elsif scan(/"/)
- tokens << [:open, :string]
- state = :string
- tokens << ['"', :delimiter]
- next
- elsif scan(/#{NUM}/o) and not matched.empty?
- kind = :integer
- elsif getch
- kind = :error
- end
-
- when :string
- if scan(/[^"\\]+/) or scan(/\\.?/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1),
- tokens, state
- end
-
- else
- raise "else case reached"
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end # until eos
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
-
- end #scan_tokens
- end #class
- end #module scanners
-end #module coderay
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/sql.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/sql.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-module CodeRay module Scanners
-
- # by Josh Goebel
- class SQL < Scanner
-
- register_for :sql
-
- RESERVED_WORDS = %w(
- create database table index trigger drop primary key set select
- insert update delete replace into
- on from values before and or if exists case when
- then else as group order by avg where
- join inner outer union engine not
- like end using collate show columns begin
- )
-
- PREDEFINED_TYPES = %w(
- char varchar enum binary text tinytext mediumtext
- longtext blob tinyblob mediumblob longblob timestamp
- date time datetime year double decimal float int
- integer tinyint mediumint bigint smallint unsigned bit
- bool boolean hex bin oct
- )
-
- PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
-
- DIRECTIVES = %w( auto_increment unique default charset )
-
- PREDEFINED_CONSTANTS = %w( null true false )
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(PREDEFINED_CONSTANTS, :pre_constant).
- add(PREDEFINED_FUNCTIONS, :predefined).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- STRING_PREFIXES = /[xnb]|_\w+/i
-
- def scan_tokens tokens, options
-
- state = :initial
- string_type = nil
- string_content = ''
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :initial
-
- if scan(/ \s+ | \\\n /x)
- kind = :space
-
- elsif scan(/^(?:--\s?|#).*/)
- kind = :comment
-
- elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
- kind = :operator
-
- elsif scan(/(#{STRING_PREFIXES})?([`"'])/o)
- prefix = self[1]
- string_type = self[2]
- tokens << [:open, :string]
- tokens << [prefix, :modifier] if prefix
- match = string_type
- state = :string
- kind = :delimiter
-
- elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
- kind = match[0] == ?@ ? :variable : IDENT_KIND[match.downcase]
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
-
- elsif scan(/0[0-7]+(?![89.eEfF])/)
- kind = :oct
-
- elsif scan(/(?>\d+)(?![.eEfF])/)
- kind = :integer
-
- elsif scan(/\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- elsif state == :string
- if match = scan(/[^\\"'`]+/)
- string_content << match
- next
- elsif match = scan(/["'`]/)
- if string_type == match
- if peek(1) == string_type # doubling means escape
- string_content << string_type << getch
- next
- end
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :initial
- string_type = nil
- next
- else
- string_content << match
- end
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- kind = :char
- elsif match = scan(/ \\ . /mox)
- string_content << match
- next
- elsif scan(/ \\ | $ /x)
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- kind = :error
- state = :initial
- else
- raise "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise 'else-case reached', tokens
-
- end
-
- match ||= matched
- unless kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
- tokens
-
- end
-
- end
-
-end end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/xml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/xml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # XML Scanner
- #
- # Currently this is the same scanner as Scanners::HTML.
- class XML < HTML
-
- register_for :xml
- file_extension 'xml'
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/yaml.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/text-base/yaml.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-module CodeRay
-module Scanners
-
- # YAML Scanner
- #
- # Based on the YAML scanner from Syntax by Jamis Buck.
- class YAML < Scanner
-
- register_for :yaml
- file_extension 'yml'
-
- KINDS_NOT_LOC = :all
-
- def scan_tokens tokens, options
-
- value_expected = nil
- state = :initial
- key_indent = indent = 0
-
- until eos?
-
- kind = nil
- match = nil
- key_indent = nil if bol?
-
- if match = scan(/ +[\t ]*/)
- kind = :space
-
- elsif match = scan(/\n+/)
- kind = :space
- state = :initial if match.index(?\n)
-
- elsif match = scan(/#.*/)
- kind = :comment
-
- elsif bol? and case
- when match = scan(/---|\.\.\./)
- tokens << [:open, :head]
- tokens << [match, :head]
- tokens << [:close, :head]
- next
- when match = scan(/%.*/)
- tokens << [match, :doctype]
- next
- end
-
- elsif state == :value and case
- when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
- tokens << [:open, :string]
- tokens << [matched, :delimiter]
- tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
- tokens << [matched, :delimiter] if scan(/"/)
- tokens << [:close, :string]
- next
- when match = scan(/[|>][-+]?/)
- tokens << [:open, :string]
- tokens << [match, :delimiter]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- tokens << [:close, :string]
- next
- when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
- tokens << [match, :string]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- next
- end
-
- elsif case
- when match = scan(/[-:](?= |$)/)
- state = :value if state == :colon && (match == ':' || match == '-')
- state = :value if state == :initial && match == '-'
- kind = :operator
- when match = scan(/[,{}\[\]]/)
- kind = :operator
- when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
- kind = :key
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
- tokens << [:open, :key]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content]
- tokens << [match[-1,1], :delimiter]
- tokens << [:close, :key]
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- next
- when scan(/(![\w\/]+)(:([\w:]+))?/)
- tokens << [self[1], :type]
- if self[2]
- tokens << [':', :operator]
- tokens << [self[3], :class]
- end
- next
- when scan(/&\S+/)
- kind = :variable
- when scan(/\*\w+/)
- kind = :global_variable
- when scan(/<)
- kind = :class_variable
- when scan(/\d\d:\d\d:\d\d/)
- kind = :oct
- when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
- kind = :oct
- when scan(/:\w+/)
- kind = :symbol
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
- kind = :error
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
- kind = :error
- end
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/_map.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module CodeRay
-module Scanners
-
- map \
- :h => :c,
- :cplusplus => :cpp,
- :'c++' => :cpp,
- :ecma => :java_script,
- :ecmascript => :java_script,
- :ecma_script => :java_script,
- :irb => :ruby,
- :javascript => :java_script,
- :js => :java_script,
- :nitro => :nitro_xhtml,
- :pascal => :delphi,
- :plain => :plaintext,
- :xhtml => :html,
- :yml => :yaml
-
- default :plain
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/c.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/c.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-module CodeRay
-module Scanners
-
- class C < Scanner
-
- include Streamable
-
- register_for :c
- file_extension 'c'
-
- RESERVED_WORDS = [
- 'asm', 'break', 'case', 'continue', 'default', 'do',
- 'else', 'enum', 'for', 'goto', 'if', 'return',
- 'sizeof', 'struct', 'switch', 'typedef', 'union', 'while',
- 'restrict', # added in C99
- ]
-
- PREDEFINED_TYPES = [
- 'int', 'long', 'short', 'char',
- 'signed', 'unsigned', 'float', 'double',
- 'bool', 'complex', # added in C99
- ]
-
- PREDEFINED_CONSTANTS = [
- 'EOF', 'NULL',
- 'true', 'false', # added in C99
- ]
- DIRECTIVES = [
- 'auto', 'extern', 'register', 'static', 'void',
- 'const', 'volatile', # added in C89
- 'inline', # added in C99
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- kind = :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :reserved
- case match
- when 'case', 'default'
- case_expected = true
- end
- end
- end
-
- elsif scan(/\$/)
- kind = :ident
-
- elsif match = scan(/L?"/)
- tokens << [:open, :string]
- if match[0] == ?L
- tokens << ['L', :modifier]
- match = '"'
- end
- state = :string
- kind = :delimiter
-
- elsif scan(/#[ \t]*(\w*)/)
- kind = :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- kind = :char
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- kind = :oct
-
- elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- kind = :integer
-
- elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(/[^\\\n"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- label_expected = false
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- when :include_expected
- if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- kind = :include
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
- next
-
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/cpp.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/cpp.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-module CodeRay
-module Scanners
-
- class CPlusPlus < Scanner
-
- include Streamable
-
- register_for :cpp
- file_extension 'cpp'
- title 'C++'
-
- # http://www.cppreference.com/wiki/keywords/start
- RESERVED_WORDS = [
- 'and', 'and_eq', 'asm', 'bitand', 'bitor', 'break',
- 'case', 'catch', 'class', 'compl', 'const_cast',
- 'continue', 'default', 'delete', 'do', 'dynamic_cast', 'else',
- 'enum', 'export', 'for', 'goto', 'if', 'namespace', 'new',
- 'not', 'not_eq', 'or', 'or_eq', 'reinterpret_cast', 'return',
- 'sizeof', 'static_cast', 'struct', 'switch', 'template',
- 'throw', 'try', 'typedef', 'typeid', 'typename', 'union',
- 'while', 'xor', 'xor_eq'
- ]
-
- PREDEFINED_TYPES = [
- 'bool', 'char', 'double', 'float', 'int', 'long',
- 'short', 'signed', 'unsigned', 'wchar_t', 'string'
- ]
- PREDEFINED_CONSTANTS = [
- 'false', 'true',
- 'EOF', 'NULL',
- ]
- PREDEFINED_VARIABLES = [
- 'this'
- ]
- DIRECTIVES = [
- 'auto', 'const', 'explicit', 'extern', 'friend', 'inline', 'mutable', 'operator',
- 'private', 'protected', 'public', 'register', 'static', 'using', 'virtual', 'void',
- 'volatile'
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(PREDEFINED_VARIABLES, :local_variable).
- add(DIRECTIVES, :directive).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- ESCAPE = / [rbfntv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- label_expected = true
- case_expected = false
- label_expected_before_preproc_line = nil
- in_preproc_line = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- if in_preproc_line && match != "\\\n" && match.index(?\n)
- in_preproc_line = false
- label_expected = label_expected_before_preproc_line
- end
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif match = scan(/ \# \s* if \s* 0 /x)
- match << scan_until(/ ^\# (?:elif|else|endif) .*? $ | \z /xm) unless eos?
- kind = :comment
-
- elsif match = scan(/ [-+*=<>?:;,!&^|()\[\]{}~%]+ | \/=? | \.(?!\d) /x)
- label_expected = match =~ /[;\{\}]/
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = IDENT_KIND[match]
- if kind == :ident && label_expected && !in_preproc_line && scan(/:(?!:)/)
- kind = :label
- match << matched
- else
- label_expected = false
- if kind == :reserved
- case match
- when 'class'
- state = :class_name_expected
- when 'case', 'default'
- case_expected = true
- end
- end
- end
-
- elsif scan(/\$/)
- kind = :ident
-
- elsif match = scan(/L?"/)
- tokens << [:open, :string]
- if match[0] == ?L
- tokens << ['L', :modifier]
- match = '"'
- end
- state = :string
- kind = :delimiter
-
- elsif scan(/#[ \t]*(\w*)/)
- kind = :preprocessor
- in_preproc_line = true
- label_expected_before_preproc_line = label_expected
- state = :include_expected if self[1] == 'include'
-
- elsif scan(/ L?' (?: [^\'\n\\] | \\ #{ESCAPE} )? '? /ox)
- label_expected = false
- kind = :char
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/(?:0[0-7]+)(?![89.eEfF])/)
- label_expected = false
- kind = :oct
-
- elsif scan(/(?:\d+)(?![.eEfF])L?L?/)
- label_expected = false
- kind = :integer
-
- elsif scan(/\d[fF]?|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- label_expected = false
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(/[^\\"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- label_expected = false
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- label_expected = false
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- when :include_expected
- if scan(/<[^>\n]+>?|"[^"\n\\]*(?:\\.[^"\n\\]*)*"?/)
- kind = :include
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
- state = :initial if match.index ?\n
-
- else
- state = :initial
- next
-
- end
-
- when :class_name_expected
- if scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = :class
- state = :initial
-
- elsif match = scan(/\s+/)
- kind = :space
-
- else
- getch
- kind = :error
- state = :initial
-
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/css.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/css.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-module CodeRay
-module Scanners
-
- class CSS < Scanner
-
- register_for :css
-
- KINDS_NOT_LOC = [
- :comment,
- :class, :pseudo_class, :type,
- :constant, :directive,
- :key, :value, :operator, :color, :float,
- :error, :important,
- ]
-
- module RE
- NonASCII = /[\x80-\xFF]/
- Hex = /[0-9a-fA-F]/
- Unicode = /\\#{Hex}{1,6}(?:\r\n|\s)?/ # differs from standard because it allows uppercase hex too
- Escape = /#{Unicode}|\\[^\r\n\f0-9a-fA-F]/
- NMChar = /[-_a-zA-Z0-9]|#{NonASCII}|#{Escape}/
- NMStart = /[_a-zA-Z]|#{NonASCII}|#{Escape}/
- NL = /\r\n|\r|\n|\f/
- String1 = /"(?:[^\n\r\f\\"]|\\#{NL}|#{Escape})*"?/ # FIXME: buggy regexp
- String2 = /'(?:[^\n\r\f\\']|\\#{NL}|#{Escape})*'?/ # FIXME: buggy regexp
- String = /#{String1}|#{String2}/
-
- HexColor = /#(?:#{Hex}{6}|#{Hex}{3})/
- Color = /#{HexColor}/
-
- Num = /-?(?:[0-9]+|[0-9]*\.[0-9]+)/
- Name = /#{NMChar}+/
- Ident = /-?#{NMStart}#{NMChar}*/
- AtKeyword = /@#{Ident}/
- Percentage = /#{Num}%/
-
- reldimensions = %w[em ex px]
- absdimensions = %w[in cm mm pt pc]
- Unit = Regexp.union(*(reldimensions + absdimensions))
-
- Dimension = /#{Num}#{Unit}/
-
- Comment = %r! /\* (?: .*? \*/ | .* ) !mx
- Function = /(?:url|alpha)\((?:[^)\n\r\f]|\\\))*\)?/
-
- Id = /##{Name}/
- Class = /\.#{Name}/
- PseudoClass = /:#{Name}/
- AttributeSelector = /\[[^\]]*\]?/
-
- end
-
- def scan_tokens tokens, options
-
- value_expected = nil
- states = [:initial]
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/)
- kind = :space
-
- elsif case states.last
- when :initial, :media
- if scan(/(?>#{RE::Ident})(?!\()|\*/ox)
- kind = :type
- elsif scan RE::Class
- kind = :class
- elsif scan RE::Id
- kind = :constant
- elsif scan RE::PseudoClass
- kind = :pseudo_class
- elsif match = scan(RE::AttributeSelector)
- # TODO: Improve highlighting inside of attribute selectors.
- tokens << [:open, :string]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content] if match.size > 2
- tokens << [match[-1,1], :delimiter] if match[-1] == ?]
- tokens << [:close, :string]
- next
- elsif match = scan(/@media/)
- kind = :directive
- states.push :media_before_name
- end
-
- when :block
- if scan(/(?>#{RE::Ident})(?!\()/ox)
- if value_expected
- kind = :value
- else
- kind = :key
- end
- end
-
- when :media_before_name
- if scan RE::Ident
- kind = :type
- states[-1] = :media_after_name
- end
-
- when :media_after_name
- if scan(/\{/)
- kind = :operator
- states[-1] = :media
- end
-
- when :comment
- if scan(/(?:[^*\s]|\*(?!\/))+/)
- kind = :comment
- elsif scan(/\*\//)
- kind = :comment
- states.pop
- elsif scan(/\s+/)
- kind = :space
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- elsif scan(/\/\*/)
- kind = :comment
- states.push :comment
-
- elsif scan(/\{/)
- value_expected = false
- kind = :operator
- states.push :block
-
- elsif scan(/\}/)
- value_expected = false
- if states.last == :block || states.last == :media
- kind = :operator
- states.pop
- else
- kind = :error
- end
-
- elsif match = scan(/#{RE::String}/o)
- tokens << [:open, :string]
- tokens << [match[0, 1], :delimiter]
- tokens << [match[1..-2], :content] if match.size > 2
- tokens << [match[-1, 1], :delimiter] if match.size >= 2
- tokens << [:close, :string]
- next
-
- elsif match = scan(/#{RE::Function}/o)
- tokens << [:open, :string]
- start = match[/^\w+\(/]
- tokens << [start, :delimiter]
- if match[-1] == ?)
- tokens << [match[start.size..-2], :content]
- tokens << [')', :delimiter]
- else
- tokens << [match[start.size..-1], :content]
- end
- tokens << [:close, :string]
- next
-
- elsif scan(/(?: #{RE::Dimension} | #{RE::Percentage} | #{RE::Num} )/ox)
- kind = :float
-
- elsif scan(/#{RE::Color}/o)
- kind = :color
-
- elsif scan(/! *important/)
- kind = :important
-
- elsif scan(/rgb\([^()\n]*\)?/)
- kind = :color
-
- elsif scan(/#{RE::AtKeyword}/o)
- kind = :directive
-
- elsif match = scan(/ [+>:;,.=()\/] /x)
- if match == ':'
- value_expected = true
- elsif match == ';'
- value_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-module CodeRay
-module Scanners
-
- # = Debug Scanner
- class Debug < Scanner
-
- include Streamable
- register_for :debug
- file_extension 'raydebug'
- title 'CodeRay Token Dump'
-
- protected
- def scan_tokens tokens, options
-
- opened_tokens = []
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/)
- tokens << [matched, :space]
- next
-
- elsif scan(/ (\w+) \( ( [^\)\\]* ( \\. [^\)\\]* )* ) \) /x)
- kind = self[1].to_sym
- match = self[2].gsub(/\\(.)/, '\1')
-
- elsif scan(/ (\w+) < /x)
- kind = self[1].to_sym
- opened_tokens << kind
- match = :open
-
- elsif !opened_tokens.empty? && scan(/ > /x)
- kind = opened_tokens.pop || :error
- match = :close
-
- else
- kind = :error
- getch
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/delphi.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/delphi.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-module CodeRay
-module Scanners
-
- class Delphi < Scanner
-
- register_for :delphi
- file_extension 'pas'
-
- RESERVED_WORDS = [
- 'and', 'array', 'as', 'at', 'asm', 'at', 'begin', 'case', 'class',
- 'const', 'constructor', 'destructor', 'dispinterface', 'div', 'do',
- 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization',
- 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in',
- 'inherited', 'initialization', 'inline', 'interface', 'is', 'label',
- 'library', 'mod', 'nil', 'not', 'object', 'of', 'or', 'out', 'packed',
- 'procedure', 'program', 'property', 'raise', 'record', 'repeat',
- 'resourcestring', 'set', 'shl', 'shr', 'string', 'then', 'threadvar',
- 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with',
- 'xor', 'on'
- ]
-
- DIRECTIVES = [
- 'absolute', 'abstract', 'assembler', 'at', 'automated', 'cdecl',
- 'contains', 'deprecated', 'dispid', 'dynamic', 'export',
- 'external', 'far', 'forward', 'implements', 'local',
- 'near', 'nodefault', 'on', 'overload', 'override',
- 'package', 'pascal', 'platform', 'private', 'protected', 'public',
- 'published', 'read', 'readonly', 'register', 'reintroduce',
- 'requires', 'resident', 'safecall', 'stdcall', 'stored', 'varargs',
- 'virtual', 'write', 'writeonly'
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(DIRECTIVES, :directive)
-
- NAME_FOLLOWS = CaseIgnoringWordList.new(false).
- add(%w(procedure function .))
-
- private
- def scan_tokens tokens, options
-
- state = :initial
- last_token = ''
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :initial
-
- if scan(/ \s+ /x)
- tokens << [matched, :space]
- next
-
- elsif scan(%r! \{ \$ [^}]* \}? | \(\* \$ (?: .*? \*\) | .* ) !mx)
- tokens << [matched, :preprocessor]
- next
-
- elsif scan(%r! // [^\n]* | \{ [^}]* \}? | \(\* (?: .*? \*\) | .* ) !mx)
- tokens << [matched, :comment]
- next
-
- elsif match = scan(/ <[>=]? | >=? | :=? | [-+=*\/;,@\^|\(\)\[\]] | \.\. /x)
- kind = :operator
-
- elsif match = scan(/\./)
- kind = :operator
- if last_token == 'end'
- tokens << [match, kind]
- next
- end
-
- elsif match = scan(/ [A-Za-z_][A-Za-z_0-9]* /x)
- kind = NAME_FOLLOWS[last_token] ? :ident : IDENT_KIND[match]
-
- elsif match = scan(/ ' ( [^\n']|'' ) (?:'|$) /x)
- tokens << [:open, :char]
- tokens << ["'", :delimiter]
- tokens << [self[1], :content]
- tokens << ["'", :delimiter]
- tokens << [:close, :char]
- next
-
- elsif match = scan(/ ' /x)
- tokens << [:open, :string]
- state = :string
- kind = :delimiter
-
- elsif scan(/ \# (?: \d+ | \$[0-9A-Fa-f]+ ) /x)
- kind = :char
-
- elsif scan(/ \$ [0-9A-Fa-f]+ /x)
- kind = :hex
-
- elsif scan(/ (?: \d+ ) (?![eE]|\.[^.]) /x)
- kind = :integer
-
- elsif scan(/ \d+ (?: \.\d+ (?: [eE][+-]? \d+ )? | [eE][+-]? \d+ ) /x)
- kind = :float
-
- else
- kind = :error
- getch
-
- end
-
- elsif state == :string
- if scan(/[^\n']+/)
- kind = :content
- elsif scan(/''/)
- kind = :char
- elsif scan(/'/)
- tokens << ["'", :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- elsif scan(/\n/)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- else
- raise "else case \' reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise 'else-case reached', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/diff.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/diff.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-module CodeRay
-module Scanners
-
- class Diff < Scanner
-
- register_for :diff
- title 'diff output'
-
- def scan_tokens tokens, options
-
- line_kind = nil
- state = :initial
-
- until eos?
- kind = match = nil
-
- if match = scan(/\n/)
- if line_kind
- tokens << [:end_line, line_kind]
- line_kind = nil
- end
- tokens << [match, :space]
- next
- end
-
- case state
-
- when :initial
- if match = scan(/--- |\+\+\+ |=+|_+/)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/Index: |Property changes on: /)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/Added: /)
- tokens << [:begin_line, line_kind = :head]
- tokens << [match, :head]
- next unless match = scan(/.+/)
- kind = :plain
- state = :added
- elsif match = scan(/\\ /)
- tokens << [:begin_line, line_kind = :change]
- tokens << [match, :change]
- next unless match = scan(/.+/)
- kind = :plain
- elsif scan(/(@@)((?>[^@\n]*))(@@)/)
- tokens << [:begin_line, line_kind = :change]
- tokens << [self[1], :change]
- tokens << [self[2], :plain]
- tokens << [self[3], :change]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/\+/)
- tokens << [:begin_line, line_kind = :insert]
- tokens << [match, :insert]
- next unless match = scan(/.+/)
- kind = :plain
- elsif match = scan(/-/)
- tokens << [:begin_line, line_kind = :delete]
- tokens << [match, :delete]
- next unless match = scan(/.+/)
- kind = :plain
- elsif scan(/ .*/)
- kind = :comment
- elsif scan(/.+/)
- tokens << [:begin_line, line_kind = :head]
- kind = :plain
- else
- raise_inspect 'else case rached'
- end
-
- when :added
- if match = scan(/ \+/)
- tokens << [:begin_line, line_kind = :insert]
- tokens << [match, :insert]
- next unless match = scan(/.+/)
- kind = :plain
- else
- state = :initial
- next
- end
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
- end
-
- tokens << [:end_line, line_kind] if line_kind
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/groovy.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/groovy.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-module CodeRay
-module Scanners
-
- load :java
-
- class Groovy < Java
-
- include Streamable
- register_for :groovy
-
- # TODO: Check this!
- GROOVY_KEYWORDS = %w[
- as assert def in
- ]
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case instanceof new return throw typeof while as assert in
- ]
- GROOVY_MAGIC_VARIABLES = %w[ it ]
-
- IDENT_KIND = Java::IDENT_KIND.dup.
- add(GROOVY_KEYWORDS, :keyword).
- add(GROOVY_MAGIC_VARIABLES, :local_variable)
-
- ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
-
- # TODO: interpretation inside ', ", /
- STRING_CONTENT_PATTERN = {
- "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
- '"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\']+|'(?!''))+/,
- '"""' => /(?>[^\\$"]+|"(?!""))+/,
- '/' => /[^\\$\/\n]+/,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- inline_block_stack = []
- inline_block_paren_depth = nil
- string_delimiter = nil
- import_clause = class_name_follows = last_token = after_def = false
- value_expected = true
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- if match.index ?\n
- import_clause = after_def = false
- value_expected = true unless value_expected
- end
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- after_def = false
- kind = :comment
-
- elsif bol? && scan(/ \#!.* /x)
- kind = :doctype
-
- elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
- after_def = value_expected = false
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token == '.'
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- elsif after_def && check(/\s*[({]/)
- kind = :method
- after_def = false
- elsif kind == :ident && last_token != '?' && check(/:/)
- kind = :key
- else
- class_name_follows = true if match == 'class' || (import_clause && match == 'as')
- import_clause = match == 'import'
- after_def = true if match == 'def'
- end
-
- elsif scan(/;/)
- import_clause = after_def = false
- value_expected = true
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = after_def = false
- value_expected = true
- kind = :operator
- if !inline_block_stack.empty?
- inline_block_paren_depth += 1
- end
-
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
- value_expected = true
- value_expected = :regexp if match == '~'
- after_def = false
- kind = :operator
-
- elsif match = scan(/ [)\]}] /x)
- value_expected = after_def = false
- if !inline_block_stack.empty? && match == '}'
- inline_block_paren_depth -= 1
- if inline_block_paren_depth == 0 # closing brace of inline block reached
- tokens << [match, :inline_delimiter]
- tokens << [:close, :inline]
- state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
- next
- end
- end
- kind = :operator
-
- elsif check(/[\d.]/)
- after_def = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lLgG]?/)
- kind = :integer
- end
-
- elsif match = scan(/'''|"""/)
- after_def = value_expected = false
- state = :multiline_string
- tokens << [:open, :string]
- string_delimiter = match
- kind = :delimiter
-
- # TODO: record.'name'
- elsif match = scan(/["']/)
- after_def = value_expected = false
- state = match == '/' ? :regexp : :string
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\//))
- after_def = value_expected = false
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- after_def = value_expected = false
- kind = :annotation
-
- elsif scan(/\//)
- after_def = false
- value_expected = true
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :multiline_string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
-
- elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- # TODO: regexp modifiers? s, m, x, i?
- modifiers = scan(/[ix]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- state = :string if state == :multiline_string
- tokens << [:close, state]
- string_delimiter = nil
- after_def = value_expected = false
- state = :initial
- next
-
- elsif (state == :string || state == :multiline_string) &&
- (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
-
- elsif match = scan(/ \$ #{IDENT} /mox)
- tokens << [:open, :inline]
- tokens << ['$', :inline_delimiter]
- match = match[1..-1]
- tokens << [match, IDENT_KIND[match]]
- tokens << [:close, :inline]
- next
- elsif match = scan(/ \$ \{ /x)
- tokens << [:open, :inline]
- tokens << ['${', :inline_delimiter]
- inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
- inline_block_paren_depth = 1
- state = :initial
- next
-
- elsif scan(/ \$ /mx)
- kind = :content
-
- elsif scan(/ \\. /mx)
- kind = :content
-
- elsif scan(/ \\ | \n /x)
- tokens << [:close, state]
- kind = :error
- after_def = value_expected = false
- state = :initial
-
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match unless [:space, :comment, :doctype].include? kind
-
- tokens << [match, kind]
-
- end
-
- if [:multiline_string, :string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/html.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/html.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-module CodeRay
-module Scanners
-
- # HTML Scanner
- class HTML < Scanner
-
- include Streamable
- register_for :html
-
- KINDS_NOT_LOC = [
- :comment, :doctype, :preprocessor,
- :tag, :attribute_name, :operator,
- :attribute_value, :delimiter, :content,
- :plain, :entity, :error
- ]
-
- ATTR_NAME = /[\w.:-]+/
- ATTR_VALUE_UNQUOTED = ATTR_NAME
- TAG_END = /\/?>/
- HEX = /[0-9a-fA-F]/
- ENTITY = /
- &
- (?:
- \w+
- |
- \#
- (?:
- \d+
- |
- x#{HEX}+
- )
- )
- ;
- /ox
-
- PLAIN_STRING_CONTENT = {
- "'" => /[^&'>\n]+/,
- '"' => /[^&">\n]+/,
- }
-
- def reset
- super
- @state = :initial
- end
-
- private
- def setup
- @state = :initial
- @plain_string_content = nil
- end
-
- def scan_tokens tokens, options
-
- state = @state
- plain_string_content = @plain_string_content
-
- until eos?
-
- kind = nil
- match = nil
-
- if scan(/\s+/m)
- kind = :space
-
- else
-
- case state
-
- when :initial
- if scan(//m)
- kind = :comment
- elsif scan(//m)
- kind = :doctype
- elsif scan(/<\?xml.*?\?>/m)
- kind = :preprocessor
- elsif scan(/<\?.*?\?>|<%.*?%>/m)
- kind = :comment
- elsif scan(/<\/[-\w.:]*>/m)
- kind = :tag
- elsif match = scan(/<[-\w.:]+>?/m)
- kind = :tag
- state = :attribute unless match[-1] == ?>
- elsif scan(/[^<>&]+/)
- kind = :plain
- elsif scan(/#{ENTITY}/ox)
- kind = :entity
- elsif scan(/[<>&]/)
- kind = :error
- else
- raise_inspect '[BUG] else-case reached with state %p' % [state], tokens
- end
-
- when :attribute
- if scan(/#{TAG_END}/)
- kind = :tag
- state = :initial
- elsif scan(/#{ATTR_NAME}/o)
- kind = :attribute_name
- state = :attribute_equal
- else
- kind = :error
- getch
- end
-
- when :attribute_equal
- if scan(/=/)
- kind = :operator
- state = :attribute_value
- elsif scan(/#{ATTR_NAME}/o)
- kind = :attribute_name
- elsif scan(/#{TAG_END}/o)
- kind = :tag
- state = :initial
- elsif scan(/./)
- kind = :error
- state = :attribute
- end
-
- when :attribute_value
- if scan(/#{ATTR_VALUE_UNQUOTED}/o)
- kind = :attribute_value
- state = :attribute
- elsif match = scan(/["']/)
- tokens << [:open, :string]
- state = :attribute_value_string
- plain_string_content = PLAIN_STRING_CONTENT[match]
- kind = :delimiter
- elsif scan(/#{TAG_END}/o)
- kind = :tag
- state = :initial
- else
- kind = :error
- getch
- end
-
- when :attribute_value_string
- if scan(plain_string_content)
- kind = :content
- elsif scan(/['"]/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :attribute
- next
- elsif scan(/#{ENTITY}/ox)
- kind = :entity
- elsif scan(/&/)
- kind = :content
- elsif scan(/[\n>]/)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- end
-
- else
- raise_inspect 'Unknown state: %p' % [state], tokens
-
- end
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
- end
-
- if options[:keep_state]
- @state = state
- @plain_string_content = plain_string_content
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-module CodeRay
-module Scanners
-
- class Java < Scanner
-
- include Streamable
- register_for :java
- helper :builtin_types
-
- # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
- KEYWORDS = %w[
- assert break case catch continue default do else
- finally for if instanceof import new package
- return switch throw try typeof while
- debugger export
- ]
- RESERVED = %w[ const goto ]
- CONSTANTS = %w[ false null true ]
- MAGIC_VARIABLES = %w[ this super ]
- TYPES = %w[
- boolean byte char class double enum float int interface long
- short void
- ] << '[]' # because int[] should be highlighted as a type
- DIRECTIVES = %w[
- abstract extends final implements native private protected public
- static strictfp synchronized throws transient volatile
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(RESERVED, :reserved).
- add(CONSTANTS, :pre_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(TYPES, :type).
- add(BuiltinTypes::List, :pre_type).
- add(BuiltinTypes::List.select { |builtin| builtin[/(Error|Exception)$/] }, :exception).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- }
- IDENT = /[a-zA-Z_][A-Za-z_0-9]*/
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- import_clause = class_name_follows = last_token_dot = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- next
-
- elsif match = scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- tokens << [match, :comment]
- next
-
- elsif import_clause && scan(/ #{IDENT} (?: \. #{IDENT} )* /ox)
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- if last_token_dot
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- else
- import_clause = true if match == 'import'
- class_name_follows = true if match == 'class' || match == 'interface'
- end
-
- elsif scan(/ \.(?!\d) | [,?:()\[\]}] | -- | \+\+ | && | \|\| | \*\*=? | [-+*\/%^~&|<>=!]=? | <<=? | >>>?=? /x)
- kind = :operator
-
- elsif scan(/;/)
- import_clause = false
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = false
- kind = :operator
-
- elsif check(/[\d.]/)
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lL]?/)
- kind = :integer
- end
-
- elsif match = scan(/["']/)
- tokens << [:open, :string]
- state = :string
- string_delimiter = match
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- kind = :annotation
-
- else
- getch
- kind = :error
-
- end
-
- when :string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
- tokens << [match, :delimiter]
- tokens << [:close, state]
- string_delimiter = nil
- state = :initial
- next
- elsif state == :string && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :delimiter]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token_dot = match == '.'
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 79
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java
-END
-builtin_types.rb
-K 25
-svn:wc:ra_dav:version-url
-V 96
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/builtin_types.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-builtin_types.rb
-file
-
-
-
-
-2010-09-23T14:37:45.675761Z
-2522414597cbbef27fad175c20c8a556
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-41768
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/prop-base/builtin_types.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/prop-base/builtin_types.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/text-base/builtin_types.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/.svn/text-base/builtin_types.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-module CodeRay
-module Scanners
-
- module Java::BuiltinTypes # :nodoc:
-
- List = %w[
- AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection
- AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel
- AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences
- AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector
- AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit
- AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible
- AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext
- AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText
- AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject
- AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection
- AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange
- AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException
- AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent
- ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc
- ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub
- ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent
- ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener
- Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi
- AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite
- AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement
- Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet
- AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array
- ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType
- AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray
- AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference
- AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute
- AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator
- AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException
- AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip
- AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem
- AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback
- AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy
- AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException
- BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException
- BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute
- BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI
- BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup
- BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI
- BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory
- BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel
- BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI
- BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI
- BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI
- BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI
- BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI
- BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException
- BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport
- BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener
- BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider
- BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener
- BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport
- BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding
- BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory
- BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator
- BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp
- BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException
- BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte
- ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet
- CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler
- CancelablePrintJob CancellationException CancelledKeyException CannotProceedException
- CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor
- CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException
- CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException
- CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult
- CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator
- CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore
- CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener
- Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter
- CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider
- Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice
- ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class
- ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError
- ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard
- ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException
- ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner
- CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection
- CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI
- ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource
- ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator
- CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel
- ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation
- ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData
- CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl
- CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap
- ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback
- ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener
- ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container
- ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler
- ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory
- Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported
- CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32
- CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector
- CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer
- DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort
- DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl
- DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource
- DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat
- DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing
- DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel
- DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel
- DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter
- DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer
- DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme
- DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument
- DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor
- DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed
- DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec
- DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable
- DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec
- DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream
- Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory
- DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document
- DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener
- DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer
- DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter
- DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener
- DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter
- DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey
- DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey
- DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m
- ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey
- ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder
- EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum
- EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error
- ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener
- EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception
- ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor
- ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException
- ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse
- Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field
- FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel
- FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream
- FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap
- FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter
- Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter
- Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener
- FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter
- FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics
- FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException
- Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future
- FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean
- GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError
- GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics
- Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter
- GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream
- GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet
- HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet
- HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter
- HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument
- HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection
- HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon
- IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage
- IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl
- IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener
- IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener
- IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException
- IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException
- IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException
- IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException
- IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException
- IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities
- ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl
- ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi
- ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder
- ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi
- ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel
- IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address
- InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited
- InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext
- InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext
- InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests
- InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource
- InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException
- Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError
- InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener
- InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException
- InterruptedNamingException InterruptibleChannel IntrospectionException Introspector
- InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException
- InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException
- InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException
- InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException
- InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException
- InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException
- InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException
- InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException
- InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler
- InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator
- IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection
- JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog
- JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu
- JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification
- JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory
- JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException
- JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted
- JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets
- JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName
- JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet
- JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable
- JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator
- JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField
- JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal
- KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException
- KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory
- KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager
- KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep
- KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI
- LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy
- LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName
- LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer
- LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException
- LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException
- LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator
- ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView
- LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext
- LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp
- LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException
- MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission
- ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException
- MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo
- MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo
- MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer
- MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory
- MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter
- MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName
- MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler
- MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType
- MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener
- MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager
- MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI
- MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon
- MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane
- MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI
- MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton
- MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI
- MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method
- MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat
- MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException
- MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException
- Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo
- ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo
- ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification
- MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter
- MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent
- MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI
- MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI
- MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI
- MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster
- MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI
- MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI
- MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet
- MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair
- NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration
- NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException
- NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError
- NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException
- NoninvertibleTransformException NonReadableChannelException NonWritableChannelException
- NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException
- NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException
- NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException
- NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster
- NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport
- NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException
- NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException
- NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper
- OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput
- ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream
- ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID
- Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport
- OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport
- OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo
- OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException
- OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError
- OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException
- OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes
- PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor
- Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor
- ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException
- ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch
- PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported
- Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe
- PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel
- PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker
- PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy
- PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent
- PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate
- PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences
- PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException
- PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob
- PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo
- PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason
- PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter
- PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent
- PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService
- PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet
- PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader
- PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException
- PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor
- ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener
- PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor
- PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle
- PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector
- PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval
- QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp
- RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException
- ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape
- ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue
- ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable
- RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException
- RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification
- RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport
- RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall
- RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub
- RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage
- RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName
- RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result
- ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader
- RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub
- RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl
- RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub
- RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList
- RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer
- RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener
- RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec
- RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey
- RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit
- RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException
- RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory
- SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource
- SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture
- ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable
- Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI
- SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec
- SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException
- SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider
- Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob
- SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef
- SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef
- ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException
- ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set
- SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer
- ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi
- SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter
- SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax
- SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException
- SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory
- SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException
- SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet
- SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource
- Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel
- SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput
- SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException
- SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException
- SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession
- SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack
- StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit
- StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService
- StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer
- StringBufferInputStream StringBuilder StringCharacterIterator StringContent
- StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr
- StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate
- StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet
- Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings
- SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException
- SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants
- SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory
- SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor
- TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener
- TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData
- TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates
- TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo
- TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint
- Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor
- Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer
- TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone
- TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track
- TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable
- TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException
- TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency
- TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel
- TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener
- TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory
- TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults
- UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener
- UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError
- UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException
- UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException
- UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException
- UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission
- UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent
- UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException
- UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError
- UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException
- UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL
- URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory
- UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler
- ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener
- VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI
- VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet
- WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener
- WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage
- WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector
- X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension
- X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants
- XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath
- XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory
- XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver
- XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView
- ]
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/builtin_types.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java/builtin_types.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +0,0 @@
-module CodeRay
-module Scanners
-
- module Java::BuiltinTypes # :nodoc:
-
- List = %w[
- AbstractAction AbstractBorder AbstractButton AbstractCellEditor AbstractCollection
- AbstractColorChooserPanel AbstractDocument AbstractExecutorService AbstractInterruptibleChannel
- AbstractLayoutCache AbstractList AbstractListModel AbstractMap AbstractMethodError AbstractPreferences
- AbstractQueue AbstractQueuedSynchronizer AbstractSelectableChannel AbstractSelectionKey AbstractSelector
- AbstractSequentialList AbstractSet AbstractSpinnerModel AbstractTableModel AbstractUndoableEdit
- AbstractWriter AccessControlContext AccessControlException AccessController AccessException Accessible
- AccessibleAction AccessibleAttributeSequence AccessibleBundle AccessibleComponent AccessibleContext
- AccessibleEditableText AccessibleExtendedComponent AccessibleExtendedTable AccessibleExtendedText
- AccessibleHyperlink AccessibleHypertext AccessibleIcon AccessibleKeyBinding AccessibleObject
- AccessibleRelation AccessibleRelationSet AccessibleResourceBundle AccessibleRole AccessibleSelection
- AccessibleState AccessibleStateSet AccessibleStreamable AccessibleTable AccessibleTableModelChange
- AccessibleText AccessibleTextSequence AccessibleValue AccountException AccountExpiredException
- AccountLockedException AccountNotFoundException Acl AclEntry AclNotFoundException Action ActionEvent
- ActionListener ActionMap ActionMapUIResource Activatable ActivateFailedException ActivationDesc
- ActivationException ActivationGroup ActivationGroupDesc ActivationGroupID ActivationGroup_Stub
- ActivationID ActivationInstantiator ActivationMonitor ActivationSystem Activator ActiveEvent
- ActivityCompletedException ActivityRequiredException Adjustable AdjustmentEvent AdjustmentListener
- Adler32 AffineTransform AffineTransformOp AlgorithmParameterGenerator AlgorithmParameterGeneratorSpi
- AlgorithmParameters AlgorithmParameterSpec AlgorithmParametersSpi AllPermission AlphaComposite
- AlreadyBoundException AlreadyConnectedException AncestorEvent AncestorListener AnnotatedElement
- Annotation AnnotationFormatError AnnotationTypeMismatchException AppConfigurationEntry Appendable Applet
- AppletContext AppletInitializer AppletStub Arc2D Area AreaAveragingScaleFilter ArithmeticException Array
- ArrayBlockingQueue ArrayIndexOutOfBoundsException ArrayList Arrays ArrayStoreException ArrayType
- AssertionError AsyncBoxView AsynchronousCloseException AtomicBoolean AtomicInteger AtomicIntegerArray
- AtomicIntegerFieldUpdater AtomicLong AtomicLongArray AtomicLongFieldUpdater AtomicMarkableReference
- AtomicReference AtomicReferenceArray AtomicReferenceFieldUpdater AtomicStampedReference Attribute
- AttributeChangeNotification AttributeChangeNotificationFilter AttributedCharacterIterator
- AttributedString AttributeException AttributeInUseException AttributeList AttributeModificationException
- AttributeNotFoundException Attributes AttributeSet AttributeSetUtilities AttributeValueExp AudioClip
- AudioFileFormat AudioFileReader AudioFileWriter AudioFormat AudioInputStream AudioPermission AudioSystem
- AuthenticationException AuthenticationNotSupportedException Authenticator AuthorizeCallback
- AuthPermission AuthProvider Autoscroll AWTError AWTEvent AWTEventListener AWTEventListenerProxy
- AWTEventMulticaster AWTException AWTKeyStroke AWTPermission BackingStoreException
- BadAttributeValueExpException BadBinaryOpValueExpException BadLocationException BadPaddingException
- BadStringOperationException BandCombineOp BandedSampleModel BaseRowSet BasicArrowButton BasicAttribute
- BasicAttributes BasicBorders BasicButtonListener BasicButtonUI BasicCheckBoxMenuItemUI BasicCheckBoxUI
- BasicColorChooserUI BasicComboBoxEditor BasicComboBoxRenderer BasicComboBoxUI BasicComboPopup
- BasicControl BasicDesktopIconUI BasicDesktopPaneUI BasicDirectoryModel BasicEditorPaneUI
- BasicFileChooserUI BasicFormattedTextFieldUI BasicGraphicsUtils BasicHTML BasicIconFactory
- BasicInternalFrameTitlePane BasicInternalFrameUI BasicLabelUI BasicListUI BasicLookAndFeel
- BasicMenuBarUI BasicMenuItemUI BasicMenuUI BasicOptionPaneUI BasicPanelUI BasicPasswordFieldUI
- BasicPermission BasicPopupMenuSeparatorUI BasicPopupMenuUI BasicProgressBarUI BasicRadioButtonMenuItemUI
- BasicRadioButtonUI BasicRootPaneUI BasicScrollBarUI BasicScrollPaneUI BasicSeparatorUI BasicSliderUI
- BasicSpinnerUI BasicSplitPaneDivider BasicSplitPaneUI BasicStroke BasicTabbedPaneUI BasicTableHeaderUI
- BasicTableUI BasicTextAreaUI BasicTextFieldUI BasicTextPaneUI BasicTextUI BasicToggleButtonUI
- BasicToolBarSeparatorUI BasicToolBarUI BasicToolTipUI BasicTreeUI BasicViewportUI BatchUpdateException
- BeanContext BeanContextChild BeanContextChildComponentProxy BeanContextChildSupport
- BeanContextContainerProxy BeanContextEvent BeanContextMembershipEvent BeanContextMembershipListener
- BeanContextProxy BeanContextServiceAvailableEvent BeanContextServiceProvider
- BeanContextServiceProviderBeanInfo BeanContextServiceRevokedEvent BeanContextServiceRevokedListener
- BeanContextServices BeanContextServicesListener BeanContextServicesSupport BeanContextSupport
- BeanDescriptor BeanInfo Beans BevelBorder Bidi BigDecimal BigInteger BinaryRefAddr BindException Binding
- BitSet Blob BlockingQueue BlockView BMPImageWriteParam Book Boolean BooleanControl Border BorderFactory
- BorderLayout BorderUIResource BoundedRangeModel Box BoxLayout BoxView BreakIterator
- BrokenBarrierException Buffer BufferCapabilities BufferedImage BufferedImageFilter BufferedImageOp
- BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter BufferOverflowException
- BufferStrategy BufferUnderflowException Button ButtonGroup ButtonModel ButtonUI Byte
- ByteArrayInputStream ByteArrayOutputStream ByteBuffer ByteChannel ByteLookupTable ByteOrder CachedRowSet
- CacheRequest CacheResponse Calendar Callable CallableStatement Callback CallbackHandler
- CancelablePrintJob CancellationException CancelledKeyException CannotProceedException
- CannotRedoException CannotUndoException Canvas CardLayout Caret CaretEvent CaretListener CellEditor
- CellEditorListener CellRendererPane Certificate CertificateEncodingException CertificateException
- CertificateExpiredException CertificateFactory CertificateFactorySpi CertificateNotYetValidException
- CertificateParsingException CertPath CertPathBuilder CertPathBuilderException CertPathBuilderResult
- CertPathBuilderSpi CertPathParameters CertPathTrustManagerParameters CertPathValidator
- CertPathValidatorException CertPathValidatorResult CertPathValidatorSpi CertSelector CertStore
- CertStoreException CertStoreParameters CertStoreSpi ChangedCharSetException ChangeEvent ChangeListener
- Channel Channels Character CharacterCodingException CharacterIterator CharArrayReader CharArrayWriter
- CharBuffer CharConversionException CharSequence Charset CharsetDecoder CharsetEncoder CharsetProvider
- Checkbox CheckboxGroup CheckboxMenuItem CheckedInputStream CheckedOutputStream Checksum Choice
- ChoiceCallback ChoiceFormat Chromaticity Cipher CipherInputStream CipherOutputStream CipherSpi Class
- ClassCastException ClassCircularityError ClassDefinition ClassDesc ClassFileTransformer ClassFormatError
- ClassLoader ClassLoaderRepository ClassLoadingMXBean ClassNotFoundException Clip Clipboard
- ClipboardOwner Clob Cloneable CloneNotSupportedException Closeable ClosedByInterruptException
- ClosedChannelException ClosedSelectorException CMMException CoderMalfunctionError CoderResult CodeSigner
- CodeSource CodingErrorAction CollationElementIterator CollationKey Collator Collection
- CollectionCertStoreParameters Collections Color ColorChooserComponentFactory ColorChooserUI
- ColorConvertOp ColorModel ColorSelectionModel ColorSpace ColorSupported ColorType ColorUIResource
- ComboBoxEditor ComboBoxModel ComboBoxUI ComboPopup CommunicationException Comparable Comparator
- CompilationMXBean Compiler CompletionService Component ComponentAdapter ComponentColorModel
- ComponentEvent ComponentInputMap ComponentInputMapUIResource ComponentListener ComponentOrientation
- ComponentSampleModel ComponentUI ComponentView Composite CompositeContext CompositeData
- CompositeDataSupport CompositeName CompositeType CompositeView CompoundBorder CompoundControl
- CompoundEdit CompoundName Compression ConcurrentHashMap ConcurrentLinkedQueue ConcurrentMap
- ConcurrentModificationException Condition Configuration ConfigurationException ConfirmationCallback
- ConnectException ConnectIOException Connection ConnectionEvent ConnectionEventListener
- ConnectionPendingException ConnectionPoolDataSource ConsoleHandler Constructor Container
- ContainerAdapter ContainerEvent ContainerListener ContainerOrderFocusTraversalPolicy ContentHandler
- ContentHandlerFactory ContentModel Context ContextNotEmptyException ContextualRenderedImageFactory
- Control ControlFactory ControllerEventListener ConvolveOp CookieHandler Copies CopiesSupported
- CopyOnWriteArrayList CopyOnWriteArraySet CountDownLatch CounterMonitor CounterMonitorMBean CRC32
- CredentialException CredentialExpiredException CredentialNotFoundException CRL CRLException CRLSelector
- CropImageFilter CSS CubicCurve2D Currency Cursor Customizer CyclicBarrier DatabaseMetaData DataBuffer
- DataBufferByte DataBufferDouble DataBufferFloat DataBufferInt DataBufferShort DataBufferUShort
- DataFlavor DataFormatException DatagramChannel DatagramPacket DatagramSocket DatagramSocketImpl
- DatagramSocketImplFactory DataInput DataInputStream DataLine DataOutput DataOutputStream DataSource
- DataTruncation DatatypeConfigurationException DatatypeConstants DatatypeFactory Date DateFormat
- DateFormatSymbols DateFormatter DateTimeAtCompleted DateTimeAtCreation DateTimeAtProcessing
- DateTimeSyntax DebugGraphics DecimalFormat DecimalFormatSymbols DefaultBoundedRangeModel
- DefaultButtonModel DefaultCaret DefaultCellEditor DefaultColorSelectionModel DefaultComboBoxModel
- DefaultDesktopManager DefaultEditorKit DefaultFocusManager DefaultFocusTraversalPolicy DefaultFormatter
- DefaultFormatterFactory DefaultHighlighter DefaultKeyboardFocusManager DefaultListCellRenderer
- DefaultListModel DefaultListSelectionModel DefaultLoaderRepository DefaultMenuLayout DefaultMetalTheme
- DefaultMutableTreeNode DefaultPersistenceDelegate DefaultSingleSelectionModel DefaultStyledDocument
- DefaultTableCellRenderer DefaultTableColumnModel DefaultTableModel DefaultTextUI DefaultTreeCellEditor
- DefaultTreeCellRenderer DefaultTreeModel DefaultTreeSelectionModel Deflater DeflaterOutputStream Delayed
- DelayQueue DelegationPermission Deprecated Descriptor DescriptorAccess DescriptorSupport DESedeKeySpec
- DesignMode DESKeySpec DesktopIconUI DesktopManager DesktopPaneUI Destination Destroyable
- DestroyFailedException DGC DHGenParameterSpec DHKey DHParameterSpec DHPrivateKey DHPrivateKeySpec
- DHPublicKey DHPublicKeySpec Dialog Dictionary DigestException DigestInputStream DigestOutputStream
- Dimension Dimension2D DimensionUIResource DirContext DirectColorModel DirectoryManager DirObjectFactory
- DirStateFactory DisplayMode DnDConstants Doc DocAttribute DocAttributeSet DocFlavor DocPrintJob Document
- DocumentBuilder DocumentBuilderFactory Documented DocumentEvent DocumentFilter DocumentListener
- DocumentName DocumentParser DomainCombiner DOMLocator DOMResult DOMSource Double DoubleBuffer
- DragGestureEvent DragGestureListener DragGestureRecognizer DragSource DragSourceAdapter
- DragSourceContext DragSourceDragEvent DragSourceDropEvent DragSourceEvent DragSourceListener
- DragSourceMotionListener Driver DriverManager DriverPropertyInfo DropTarget DropTargetAdapter
- DropTargetContext DropTargetDragEvent DropTargetDropEvent DropTargetEvent DropTargetListener DSAKey
- DSAKeyPairGenerator DSAParameterSpec DSAParams DSAPrivateKey DSAPrivateKeySpec DSAPublicKey
- DSAPublicKeySpec DTD DTDConstants DuplicateFormatFlagsException Duration DynamicMBean ECField ECFieldF2m
- ECFieldFp ECGenParameterSpec ECKey ECParameterSpec ECPoint ECPrivateKey ECPrivateKeySpec ECPublicKey
- ECPublicKeySpec EditorKit Element ElementIterator ElementType Ellipse2D EllipticCurve EmptyBorder
- EmptyStackException EncodedKeySpec Encoder EncryptedPrivateKeyInfo Entity Enum
- EnumConstantNotPresentException EnumControl Enumeration EnumMap EnumSet EnumSyntax EOFException Error
- ErrorListener ErrorManager EtchedBorder Event EventContext EventDirContext EventHandler EventListener
- EventListenerList EventListenerProxy EventObject EventQueue EventSetDescriptor Exception
- ExceptionInInitializerError ExceptionListener Exchanger ExecutionException Executor
- ExecutorCompletionService Executors ExecutorService ExemptionMechanism ExemptionMechanismException
- ExemptionMechanismSpi ExpandVetoException ExportException Expression ExtendedRequest ExtendedResponse
- Externalizable FactoryConfigurationError FailedLoginException FeatureDescriptor Fidelity Field
- FieldPosition FieldView File FileCacheImageInputStream FileCacheImageOutputStream FileChannel
- FileChooserUI FileDescriptor FileDialog FileFilter FileHandler FileImageInputStream
- FileImageOutputStream FileInputStream FileLock FileLockInterruptionException FilenameFilter FileNameMap
- FileNotFoundException FileOutputStream FilePermission FileReader FileSystemView FileView FileWriter
- Filter FilteredImageSource FilteredRowSet FilterInputStream FilterOutputStream FilterReader FilterWriter
- Finishings FixedHeightLayoutCache FlatteningPathIterator FlavorEvent FlavorException FlavorListener
- FlavorMap FlavorTable Float FloatBuffer FloatControl FlowLayout FlowView Flushable FocusAdapter
- FocusEvent FocusListener FocusManager FocusTraversalPolicy Font FontFormatException FontMetrics
- FontRenderContext FontUIResource Format FormatConversionProvider FormatFlagsConversionMismatchException
- Formattable FormattableFlags Formatter FormatterClosedException FormSubmitEvent FormView Frame Future
- FutureTask GapContent GarbageCollectorMXBean GatheringByteChannel GaugeMonitor GaugeMonitorMBean
- GeneralPath GeneralSecurityException GenericArrayType GenericDeclaration GenericSignatureFormatError
- GlyphJustificationInfo GlyphMetrics GlyphVector GlyphView GradientPaint GraphicAttribute Graphics
- Graphics2D GraphicsConfigTemplate GraphicsConfiguration GraphicsDevice GraphicsEnvironment GrayFilter
- GregorianCalendar GridBagConstraints GridBagLayout GridLayout Group Guard GuardedObject GZIPInputStream
- GZIPOutputStream Handler HandshakeCompletedEvent HandshakeCompletedListener HasControls HashAttributeSet
- HashDocAttributeSet HashMap HashPrintJobAttributeSet HashPrintRequestAttributeSet
- HashPrintServiceAttributeSet HashSet Hashtable HeadlessException HierarchyBoundsAdapter
- HierarchyBoundsListener HierarchyEvent HierarchyListener Highlighter HostnameVerifier HTML HTMLDocument
- HTMLEditorKit HTMLFrameHyperlinkEvent HTMLWriter HttpRetryException HttpsURLConnection HttpURLConnection
- HyperlinkEvent HyperlinkListener ICC_ColorSpace ICC_Profile ICC_ProfileGray ICC_ProfileRGB Icon
- IconUIResource IconView Identity IdentityHashMap IdentityScope IIOByteBuffer IIOException IIOImage
- IIOInvalidTreeException IIOMetadata IIOMetadataController IIOMetadataFormat IIOMetadataFormatImpl
- IIOMetadataNode IIOParam IIOParamController IIOReadProgressListener IIOReadUpdateListener
- IIOReadWarningListener IIORegistry IIOServiceProvider IIOWriteProgressListener IIOWriteWarningListener
- IllegalAccessError IllegalAccessException IllegalArgumentException IllegalBlockingModeException
- IllegalBlockSizeException IllegalCharsetNameException IllegalClassFormatException
- IllegalComponentStateException IllegalFormatCodePointException IllegalFormatConversionException
- IllegalFormatException IllegalFormatFlagsException IllegalFormatPrecisionException
- IllegalFormatWidthException IllegalMonitorStateException IllegalPathStateException
- IllegalSelectorException IllegalStateException IllegalThreadStateException Image ImageCapabilities
- ImageConsumer ImageFilter ImageGraphicAttribute ImageIcon ImageInputStream ImageInputStreamImpl
- ImageInputStreamSpi ImageIO ImageObserver ImageOutputStream ImageOutputStreamImpl ImageOutputStreamSpi
- ImageProducer ImageReader ImageReaderSpi ImageReaderWriterSpi ImageReadParam ImageTranscoder
- ImageTranscoderSpi ImageTypeSpecifier ImageView ImageWriteParam ImageWriter ImageWriterSpi
- ImagingOpException IncompatibleClassChangeError IncompleteAnnotationException IndexColorModel
- IndexedPropertyChangeEvent IndexedPropertyDescriptor IndexOutOfBoundsException Inet4Address Inet6Address
- InetAddress InetSocketAddress Inflater InflaterInputStream InheritableThreadLocal Inherited
- InitialContext InitialContextFactory InitialContextFactoryBuilder InitialDirContext InitialLdapContext
- InlineView InputContext InputEvent InputMap InputMapUIResource InputMethod InputMethodContext
- InputMethodDescriptor InputMethodEvent InputMethodHighlight InputMethodListener InputMethodRequests
- InputMismatchException InputStream InputStreamReader InputSubset InputVerifier Insets InsetsUIResource
- InstanceAlreadyExistsException InstanceNotFoundException InstantiationError InstantiationException
- Instrument Instrumentation InsufficientResourcesException IntBuffer Integer IntegerSyntax InternalError
- InternalFrameAdapter InternalFrameEvent InternalFrameFocusTraversalPolicy InternalFrameListener
- InternalFrameUI InternationalFormatter InterruptedException InterruptedIOException
- InterruptedNamingException InterruptibleChannel IntrospectionException Introspector
- InvalidActivityException InvalidAlgorithmParameterException InvalidApplicationException
- InvalidAttributeIdentifierException InvalidAttributesException InvalidAttributeValueException
- InvalidClassException InvalidDnDOperationException InvalidKeyException InvalidKeySpecException
- InvalidMarkException InvalidMidiDataException InvalidNameException InvalidObjectException
- InvalidOpenTypeException InvalidParameterException InvalidParameterSpecException
- InvalidPreferencesFormatException InvalidPropertiesFormatException InvalidRelationIdException
- InvalidRelationServiceException InvalidRelationTypeException InvalidRoleInfoException
- InvalidRoleValueException InvalidSearchControlsException InvalidSearchFilterException
- InvalidTargetObjectTypeException InvalidTransactionException InvocationEvent InvocationHandler
- InvocationTargetException IOException ItemEvent ItemListener ItemSelectable Iterable Iterator
- IvParameterSpec JApplet JarEntry JarException JarFile JarInputStream JarOutputStream JarURLConnection
- JButton JCheckBox JCheckBoxMenuItem JColorChooser JComboBox JComponent JdbcRowSet JDesktopPane JDialog
- JEditorPane JFileChooser JFormattedTextField JFrame JInternalFrame JLabel JLayeredPane JList JMenu
- JMenuBar JMenuItem JMException JMRuntimeException JMXAuthenticator JMXConnectionNotification
- JMXConnector JMXConnectorFactory JMXConnectorProvider JMXConnectorServer JMXConnectorServerFactory
- JMXConnectorServerMBean JMXConnectorServerProvider JMXPrincipal JMXProviderException
- JMXServerErrorException JMXServiceURL JobAttributes JobHoldUntil JobImpressions JobImpressionsCompleted
- JobImpressionsSupported JobKOctets JobKOctetsProcessed JobKOctetsSupported JobMediaSheets
- JobMediaSheetsCompleted JobMediaSheetsSupported JobMessageFromOperator JobName JobOriginatingUserName
- JobPriority JobPrioritySupported JobSheets JobState JobStateReason JobStateReasons Joinable JoinRowSet
- JOptionPane JPanel JPasswordField JPEGHuffmanTable JPEGImageReadParam JPEGImageWriteParam JPEGQTable
- JPopupMenu JProgressBar JRadioButton JRadioButtonMenuItem JRootPane JScrollBar JScrollPane JSeparator
- JSlider JSpinner JSplitPane JTabbedPane JTable JTableHeader JTextArea JTextComponent JTextField
- JTextPane JToggleButton JToolBar JToolTip JTree JViewport JWindow KerberosKey KerberosPrincipal
- KerberosTicket Kernel Key KeyAdapter KeyAgreement KeyAgreementSpi KeyAlreadyExistsException
- KeyboardFocusManager KeyEvent KeyEventDispatcher KeyEventPostProcessor KeyException KeyFactory
- KeyFactorySpi KeyGenerator KeyGeneratorSpi KeyListener KeyManagementException KeyManager
- KeyManagerFactory KeyManagerFactorySpi Keymap KeyPair KeyPairGenerator KeyPairGeneratorSpi KeyRep
- KeySpec KeyStore KeyStoreBuilderParameters KeyStoreException KeyStoreSpi KeyStroke Label LabelUI
- LabelView LanguageCallback LastOwnerException LayeredHighlighter LayoutFocusTraversalPolicy
- LayoutManager LayoutManager2 LayoutQueue LDAPCertStoreParameters LdapContext LdapName
- LdapReferralException Lease Level LimitExceededException Line Line2D LineBorder LineBreakMeasurer
- LineEvent LineListener LineMetrics LineNumberInputStream LineNumberReader LineUnavailableException
- LinkageError LinkedBlockingQueue LinkedHashMap LinkedHashSet LinkedList LinkException LinkLoopException
- LinkRef List ListCellRenderer ListDataEvent ListDataListener ListenerNotFoundException ListIterator
- ListModel ListResourceBundle ListSelectionEvent ListSelectionListener ListSelectionModel ListUI ListView
- LoaderHandler Locale LocateRegistry Lock LockSupport Logger LoggingMXBean LoggingPermission LoginContext
- LoginException LoginModule LogManager LogRecord LogStream Long LongBuffer LookAndFeel LookupOp
- LookupTable Mac MacSpi MalformedInputException MalformedLinkException MalformedObjectNameException
- MalformedParameterizedTypeException MalformedURLException ManagementFactory ManagementPermission
- ManageReferralControl ManagerFactoryParameters Manifest Map MappedByteBuffer MarshalException
- MarshalledObject MaskFormatter Matcher MatchResult Math MathContext MatteBorder MBeanAttributeInfo
- MBeanConstructorInfo MBeanException MBeanFeatureInfo MBeanInfo MBeanNotificationInfo MBeanOperationInfo
- MBeanParameterInfo MBeanPermission MBeanRegistration MBeanRegistrationException MBeanServer
- MBeanServerBuilder MBeanServerConnection MBeanServerDelegate MBeanServerDelegateMBean MBeanServerFactory
- MBeanServerForwarder MBeanServerInvocationHandler MBeanServerNotification MBeanServerNotificationFilter
- MBeanServerPermission MBeanTrustPermission Media MediaName MediaPrintableArea MediaSize MediaSizeName
- MediaTracker MediaTray Member MemoryCacheImageInputStream MemoryCacheImageOutputStream MemoryHandler
- MemoryImageSource MemoryManagerMXBean MemoryMXBean MemoryNotificationInfo MemoryPoolMXBean MemoryType
- MemoryUsage Menu MenuBar MenuBarUI MenuComponent MenuContainer MenuDragMouseEvent MenuDragMouseListener
- MenuElement MenuEvent MenuItem MenuItemUI MenuKeyEvent MenuKeyListener MenuListener MenuSelectionManager
- MenuShortcut MessageDigest MessageDigestSpi MessageFormat MetaEventListener MetalBorders MetalButtonUI
- MetalCheckBoxIcon MetalCheckBoxUI MetalComboBoxButton MetalComboBoxEditor MetalComboBoxIcon
- MetalComboBoxUI MetalDesktopIconUI MetalFileChooserUI MetalIconFactory MetalInternalFrameTitlePane
- MetalInternalFrameUI MetalLabelUI MetalLookAndFeel MetalMenuBarUI MetalPopupMenuSeparatorUI
- MetalProgressBarUI MetalRadioButtonUI MetalRootPaneUI MetalScrollBarUI MetalScrollButton
- MetalScrollPaneUI MetalSeparatorUI MetalSliderUI MetalSplitPaneUI MetalTabbedPaneUI MetalTextFieldUI
- MetalTheme MetalToggleButtonUI MetalToolBarUI MetalToolTipUI MetalTreeUI MetaMessage Method
- MethodDescriptor MGF1ParameterSpec MidiChannel MidiDevice MidiDeviceProvider MidiEvent MidiFileFormat
- MidiFileReader MidiFileWriter MidiMessage MidiSystem MidiUnavailableException MimeTypeParseException
- MinimalHTMLWriter MissingFormatArgumentException MissingFormatWidthException MissingResourceException
- Mixer MixerProvider MLet MLetMBean ModelMBean ModelMBeanAttributeInfo ModelMBeanConstructorInfo
- ModelMBeanInfo ModelMBeanInfoSupport ModelMBeanNotificationBroadcaster ModelMBeanNotificationInfo
- ModelMBeanOperationInfo ModificationItem Modifier Monitor MonitorMBean MonitorNotification
- MonitorSettingException MouseAdapter MouseDragGestureRecognizer MouseEvent MouseInfo MouseInputAdapter
- MouseInputListener MouseListener MouseMotionAdapter MouseMotionListener MouseWheelEvent
- MouseWheelListener MultiButtonUI MulticastSocket MultiColorChooserUI MultiComboBoxUI MultiDesktopIconUI
- MultiDesktopPaneUI MultiDoc MultiDocPrintJob MultiDocPrintService MultiFileChooserUI
- MultiInternalFrameUI MultiLabelUI MultiListUI MultiLookAndFeel MultiMenuBarUI MultiMenuItemUI
- MultiOptionPaneUI MultiPanelUI MultiPixelPackedSampleModel MultipleDocumentHandling MultipleMaster
- MultiPopupMenuUI MultiProgressBarUI MultiRootPaneUI MultiScrollBarUI MultiScrollPaneUI MultiSeparatorUI
- MultiSliderUI MultiSpinnerUI MultiSplitPaneUI MultiTabbedPaneUI MultiTableHeaderUI MultiTableUI
- MultiTextUI MultiToolBarUI MultiToolTipUI MultiTreeUI MultiViewportUI MutableAttributeSet
- MutableComboBoxModel MutableTreeNode Name NameAlreadyBoundException NameCallback NameClassPair
- NameNotFoundException NameParser NamespaceChangeListener NamespaceContext Naming NamingEnumeration
- NamingEvent NamingException NamingExceptionEvent NamingListener NamingManager NamingSecurityException
- NavigationFilter NegativeArraySizeException NetPermission NetworkInterface NoClassDefFoundError
- NoConnectionPendingException NodeChangeEvent NodeChangeListener NoInitialContextException
- NoninvertibleTransformException NonReadableChannelException NonWritableChannelException
- NoPermissionException NoRouteToHostException NoSuchAlgorithmException NoSuchAttributeException
- NoSuchElementException NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException
- NoSuchObjectException NoSuchPaddingException NoSuchProviderException NotActiveException
- NotBoundException NotCompliantMBeanException NotContextException Notification NotificationBroadcaster
- NotificationBroadcasterSupport NotificationEmitter NotificationFilter NotificationFilterSupport
- NotificationListener NotificationResult NotOwnerException NotSerializableException NotYetBoundException
- NotYetConnectedException NullCipher NullPointerException Number NumberFormat NumberFormatException
- NumberFormatter NumberOfDocuments NumberOfInterveningJobs NumberUp NumberUpSupported NumericShaper
- OAEPParameterSpec Object ObjectChangeListener ObjectFactory ObjectFactoryBuilder ObjectInput
- ObjectInputStream ObjectInputValidation ObjectInstance ObjectName ObjectOutput ObjectOutputStream
- ObjectStreamClass ObjectStreamConstants ObjectStreamException ObjectStreamField ObjectView ObjID
- Observable Observer OceanTheme OpenDataException OpenMBeanAttributeInfo OpenMBeanAttributeInfoSupport
- OpenMBeanConstructorInfo OpenMBeanConstructorInfoSupport OpenMBeanInfo OpenMBeanInfoSupport
- OpenMBeanOperationInfo OpenMBeanOperationInfoSupport OpenMBeanParameterInfo
- OpenMBeanParameterInfoSupport OpenType OperatingSystemMXBean Operation OperationNotSupportedException
- OperationsException Option OptionalDataException OptionPaneUI OrientationRequested OutOfMemoryError
- OutputDeviceAssigned OutputKeys OutputStream OutputStreamWriter OverlappingFileLockException
- OverlayLayout Override Owner Pack200 Package PackedColorModel Pageable PageAttributes
- PagedResultsControl PagedResultsResponseControl PageFormat PageRanges PagesPerMinute PagesPerMinuteColor
- Paint PaintContext PaintEvent Panel PanelUI Paper ParagraphView ParameterBlock ParameterDescriptor
- ParameterizedType ParameterMetaData ParseException ParsePosition Parser ParserConfigurationException
- ParserDelegator PartialResultException PasswordAuthentication PasswordCallback PasswordView Patch
- PathIterator Pattern PatternSyntaxException PBEKey PBEKeySpec PBEParameterSpec PDLOverrideSupported
- Permission PermissionCollection Permissions PersistenceDelegate PersistentMBean PhantomReference Pipe
- PipedInputStream PipedOutputStream PipedReader PipedWriter PixelGrabber PixelInterleavedSampleModel
- PKCS8EncodedKeySpec PKIXBuilderParameters PKIXCertPathBuilderResult PKIXCertPathChecker
- PKIXCertPathValidatorResult PKIXParameters PlainDocument PlainView Point Point2D PointerInfo Policy
- PolicyNode PolicyQualifierInfo Polygon PooledConnection Popup PopupFactory PopupMenu PopupMenuEvent
- PopupMenuListener PopupMenuUI Port PortableRemoteObject PortableRemoteObjectDelegate
- PortUnreachableException Position Predicate PreferenceChangeEvent PreferenceChangeListener Preferences
- PreferencesFactory PreparedStatement PresentationDirection Principal Printable PrinterAbortException
- PrinterException PrinterGraphics PrinterInfo PrinterIOException PrinterIsAcceptingJobs PrinterJob
- PrinterLocation PrinterMakeAndModel PrinterMessageFromOperator PrinterMoreInfo
- PrinterMoreInfoManufacturer PrinterName PrinterResolution PrinterState PrinterStateReason
- PrinterStateReasons PrinterURI PrintEvent PrintException PrintGraphics PrintJob PrintJobAdapter
- PrintJobAttribute PrintJobAttributeEvent PrintJobAttributeListener PrintJobAttributeSet PrintJobEvent
- PrintJobListener PrintQuality PrintRequestAttribute PrintRequestAttributeSet PrintService
- PrintServiceAttribute PrintServiceAttributeEvent PrintServiceAttributeListener PrintServiceAttributeSet
- PrintServiceLookup PrintStream PrintWriter PriorityBlockingQueue PriorityQueue PrivateClassLoader
- PrivateCredentialPermission PrivateKey PrivateMLet PrivilegedAction PrivilegedActionException
- PrivilegedExceptionAction Process ProcessBuilder ProfileDataException ProgressBarUI ProgressMonitor
- ProgressMonitorInputStream Properties PropertyChangeEvent PropertyChangeListener
- PropertyChangeListenerProxy PropertyChangeSupport PropertyDescriptor PropertyEditor
- PropertyEditorManager PropertyEditorSupport PropertyPermission PropertyResourceBundle
- PropertyVetoException ProtectionDomain ProtocolException Provider ProviderException Proxy ProxySelector
- PSource PSSParameterSpec PublicKey PushbackInputStream PushbackReader QName QuadCurve2D Query QueryEval
- QueryExp Queue QueuedJobCount Random RandomAccess RandomAccessFile Raster RasterFormatException RasterOp
- RC2ParameterSpec RC5ParameterSpec Rdn Readable ReadableByteChannel Reader ReadOnlyBufferException
- ReadWriteLock RealmCallback RealmChoiceCallback Receiver Rectangle Rectangle2D RectangularShape
- ReentrantLock ReentrantReadWriteLock Ref RefAddr Reference Referenceable ReferenceQueue
- ReferenceUriSchemesSupported ReferralException ReflectionException ReflectPermission Refreshable
- RefreshFailedException Region RegisterableService Registry RegistryHandler RejectedExecutionException
- RejectedExecutionHandler Relation RelationException RelationNotFoundException RelationNotification
- RelationService RelationServiceMBean RelationServiceNotRegisteredException RelationSupport
- RelationSupportMBean RelationType RelationTypeNotFoundException RelationTypeSupport Remote RemoteCall
- RemoteException RemoteObject RemoteObjectInvocationHandler RemoteRef RemoteServer RemoteStub
- RenderableImage RenderableImageOp RenderableImageProducer RenderContext RenderedImage
- RenderedImageFactory Renderer RenderingHints RepaintManager ReplicateScaleFilter RequestingUserName
- RequiredModelMBean RescaleOp ResolutionSyntax Resolver ResolveResult ResourceBundle ResponseCache Result
- ResultSet ResultSetMetaData Retention RetentionPolicy ReverbType RGBImageFilter RMIClassLoader
- RMIClassLoaderSpi RMIClientSocketFactory RMIConnection RMIConnectionImpl RMIConnectionImpl_Stub
- RMIConnector RMIConnectorServer RMIFailureHandler RMIIIOPServerImpl RMIJRMPServerImpl
- RMISecurityException RMISecurityManager RMIServer RMIServerImpl RMIServerImpl_Stub
- RMIServerSocketFactory RMISocketFactory Robot Role RoleInfo RoleInfoNotFoundException RoleList
- RoleNotFoundException RoleResult RoleStatus RoleUnresolved RoleUnresolvedList RootPaneContainer
- RootPaneUI RoundingMode RoundRectangle2D RowMapper RowSet RowSetEvent RowSetInternal RowSetListener
- RowSetMetaData RowSetMetaDataImpl RowSetReader RowSetWarning RowSetWriter RSAKey RSAKeyGenParameterSpec
- RSAMultiPrimePrivateCrtKey RSAMultiPrimePrivateCrtKeySpec RSAOtherPrimeInfo RSAPrivateCrtKey
- RSAPrivateCrtKeySpec RSAPrivateKey RSAPrivateKeySpec RSAPublicKey RSAPublicKeySpec RTFEditorKit
- RuleBasedCollator Runnable Runtime RuntimeErrorException RuntimeException RuntimeMBeanException
- RuntimeMXBean RuntimeOperationsException RuntimePermission SampleModel Sasl SaslClient SaslClientFactory
- SaslException SaslServer SaslServerFactory Savepoint SAXParser SAXParserFactory SAXResult SAXSource
- SAXTransformerFactory Scanner ScatteringByteChannel ScheduledExecutorService ScheduledFuture
- ScheduledThreadPoolExecutor Schema SchemaFactory SchemaFactoryLoader SchemaViolationException Scrollable
- Scrollbar ScrollBarUI ScrollPane ScrollPaneAdjustable ScrollPaneConstants ScrollPaneLayout ScrollPaneUI
- SealedObject SearchControls SearchResult SecretKey SecretKeyFactory SecretKeyFactorySpi SecretKeySpec
- SecureCacheResponse SecureClassLoader SecureRandom SecureRandomSpi Security SecurityException
- SecurityManager SecurityPermission Segment SelectableChannel SelectionKey Selector SelectorProvider
- Semaphore SeparatorUI Sequence SequenceInputStream Sequencer SerialArray SerialBlob SerialClob
- SerialDatalink SerialException Serializable SerializablePermission SerialJavaObject SerialRef
- SerialStruct ServerCloneException ServerError ServerException ServerNotActiveException ServerRef
- ServerRuntimeException ServerSocket ServerSocketChannel ServerSocketFactory ServiceNotFoundException
- ServicePermission ServiceRegistry ServiceUI ServiceUIFactory ServiceUnavailableException Set
- SetOfIntegerSyntax Severity Shape ShapeGraphicAttribute SheetCollate Short ShortBuffer
- ShortBufferException ShortLookupTable ShortMessage Sides Signature SignatureException SignatureSpi
- SignedObject Signer SimpleAttributeSet SimpleBeanInfo SimpleDateFormat SimpleDoc SimpleFormatter
- SimpleTimeZone SimpleType SinglePixelPackedSampleModel SingleSelectionModel Size2DSyntax
- SizeLimitExceededException SizeRequirements SizeSequence Skeleton SkeletonMismatchException
- SkeletonNotFoundException SliderUI Socket SocketAddress SocketChannel SocketException SocketFactory
- SocketHandler SocketImpl SocketImplFactory SocketOptions SocketPermission SocketSecurityException
- SocketTimeoutException SoftBevelBorder SoftReference SortControl SortedMap SortedSet
- SortingFocusTraversalPolicy SortKey SortResponseControl Soundbank SoundbankReader SoundbankResource
- Source SourceDataLine SourceLocator SpinnerDateModel SpinnerListModel SpinnerModel SpinnerNumberModel
- SpinnerUI SplitPaneUI Spring SpringLayout SQLData SQLException SQLInput SQLInputImpl SQLOutput
- SQLOutputImpl SQLPermission SQLWarning SSLContext SSLContextSpi SSLEngine SSLEngineResult SSLException
- SSLHandshakeException SSLKeyException SSLPeerUnverifiedException SSLPermission SSLProtocolException
- SslRMIClientSocketFactory SslRMIServerSocketFactory SSLServerSocket SSLServerSocketFactory SSLSession
- SSLSessionBindingEvent SSLSessionBindingListener SSLSessionContext SSLSocket SSLSocketFactory Stack
- StackOverflowError StackTraceElement StandardMBean StartTlsRequest StartTlsResponse StateEdit
- StateEditable StateFactory Statement StreamCorruptedException StreamHandler StreamPrintService
- StreamPrintServiceFactory StreamResult StreamSource StreamTokenizer StrictMath String StringBuffer
- StringBufferInputStream StringBuilder StringCharacterIterator StringContent
- StringIndexOutOfBoundsException StringMonitor StringMonitorMBean StringReader StringRefAddr
- StringSelection StringTokenizer StringValueExp StringWriter Stroke Struct Stub StubDelegate
- StubNotFoundException Style StyleConstants StyleContext StyledDocument StyledEditorKit StyleSheet
- Subject SubjectDelegationPermission SubjectDomainCombiner SupportedValuesAttribute SuppressWarnings
- SwingConstants SwingPropertyChangeSupport SwingUtilities SyncFactory SyncFactoryException
- SyncFailedException SynchronousQueue SyncProvider SyncProviderException SyncResolver SynthConstants
- SynthContext Synthesizer SynthGraphicsUtils SynthLookAndFeel SynthPainter SynthStyle SynthStyleFactory
- SysexMessage System SystemColor SystemFlavorMap TabableView TabbedPaneUI TabExpander TableCellEditor
- TableCellRenderer TableColumn TableColumnModel TableColumnModelEvent TableColumnModelListener
- TableHeaderUI TableModel TableModelEvent TableModelListener TableUI TableView TabSet TabStop TabularData
- TabularDataSupport TabularType TagElement Target TargetDataLine TargetedNotification Templates
- TemplatesHandler TextAction TextArea TextAttribute TextComponent TextEvent TextField TextHitInfo
- TextInputCallback TextLayout TextListener TextMeasurer TextOutputCallback TextSyntax TextUI TexturePaint
- Thread ThreadDeath ThreadFactory ThreadGroup ThreadInfo ThreadLocal ThreadMXBean ThreadPoolExecutor
- Throwable Tie TileObserver Time TimeLimitExceededException TimeoutException Timer
- TimerAlarmClockNotification TimerMBean TimerNotification TimerTask Timestamp TimeUnit TimeZone
- TitledBorder ToolBarUI Toolkit ToolTipManager ToolTipUI TooManyListenersException Track
- TransactionalWriter TransactionRequiredException TransactionRolledbackException Transferable
- TransferHandler TransformAttribute Transformer TransformerConfigurationException TransformerException
- TransformerFactory TransformerFactoryConfigurationError TransformerHandler Transmitter Transparency
- TreeCellEditor TreeCellRenderer TreeExpansionEvent TreeExpansionListener TreeMap TreeModel
- TreeModelEvent TreeModelListener TreeNode TreePath TreeSelectionEvent TreeSelectionListener
- TreeSelectionModel TreeSet TreeUI TreeWillExpandListener TrustAnchor TrustManager TrustManagerFactory
- TrustManagerFactorySpi Type TypeInfoProvider TypeNotPresentException Types TypeVariable UID UIDefaults
- UIManager UIResource UndeclaredThrowableException UndoableEdit UndoableEditEvent UndoableEditListener
- UndoableEditSupport UndoManager UnexpectedException UnicastRemoteObject UnknownError
- UnknownFormatConversionException UnknownFormatFlagsException UnknownGroupException UnknownHostException
- UnknownObjectException UnknownServiceException UnmappableCharacterException UnmarshalException
- UnmodifiableClassException UnmodifiableSetException UnrecoverableEntryException
- UnrecoverableKeyException Unreferenced UnresolvedAddressException UnresolvedPermission
- UnsatisfiedLinkError UnsolicitedNotification UnsolicitedNotificationEvent
- UnsolicitedNotificationListener UnsupportedAddressTypeException UnsupportedAudioFileException
- UnsupportedCallbackException UnsupportedCharsetException UnsupportedClassVersionError
- UnsupportedEncodingException UnsupportedFlavorException UnsupportedLookAndFeelException
- UnsupportedOperationException URI URIException URIResolver URISyntax URISyntaxException URL
- URLClassLoader URLConnection URLDecoder URLEncoder URLStreamHandler URLStreamHandlerFactory
- UTFDataFormatException Util UtilDelegate Utilities UUID Validator ValidatorHandler ValueExp ValueHandler
- ValueHandlerMultiFormat VariableHeightLayoutCache Vector VerifyError VetoableChangeListener
- VetoableChangeListenerProxy VetoableChangeSupport View ViewFactory ViewportLayout ViewportUI
- VirtualMachineError Visibility VMID VoiceStatus Void VolatileImage WeakHashMap WeakReference WebRowSet
- WildcardType Window WindowAdapter WindowConstants WindowEvent WindowFocusListener WindowListener
- WindowStateListener WrappedPlainView WritableByteChannel WritableRaster WritableRenderedImage
- WriteAbortedException Writer X500Principal X500PrivateCredential X509Certificate X509CertSelector
- X509CRL X509CRLEntry X509CRLSelector X509EncodedKeySpec X509ExtendedKeyManager X509Extension
- X509KeyManager X509TrustManager XAConnection XADataSource XAException XAResource Xid XMLConstants
- XMLDecoder XMLEncoder XMLFormatter XMLGregorianCalendar XMLParseException XmlReader XmlWriter XPath
- XPathConstants XPathException XPathExpression XPathExpressionException XPathFactory
- XPathFactoryConfigurationException XPathFunction XPathFunctionException XPathFunctionResolver
- XPathVariableResolver ZipEntry ZipException ZipFile ZipInputStream ZipOutputStream ZoneView
- ]
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java_script.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java_script.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-module CodeRay
-module Scanners
-
- class JavaScript < Scanner
-
- include Streamable
-
- register_for :java_script
- file_extension 'js'
-
- # The actual JavaScript keywords.
- KEYWORDS = %w[
- break case catch continue default delete do else
- finally for function if in instanceof new
- return switch throw try typeof var void while with
- ]
- PREDEFINED_CONSTANTS = %w[
- false null true undefined
- ]
-
- MAGIC_VARIABLES = %w[ this arguments ] # arguments was introduced in JavaScript 1.4
-
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case delete in instanceof new return throw typeof with
- ]
-
- # Reserved for future use.
- RESERVED_WORDS = %w[
- abstract boolean byte char class debugger double enum export extends
- final float goto implements import int interface long native package
- private protected public short static super synchronized throws transient
- volatile
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_CONSTANTS, :pre_constant).
- add(MAGIC_VARIABLES, :local_variable).
- add(KEYWORDS, :keyword)
-
- ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
- REGEXP_ESCAPE = / [bBdDsSwW] /x
- STRING_CONTENT_PATTERN = {
- "'" => /[^\\']+/,
- '"' => /[^\\"]+/,
- '/' => /[^\\\/]+/,
- }
- KEY_CHECK_PATTERN = {
- "'" => / [^\\']* (?: \\.? [^\\']* )* '? \s* : /x,
- '"' => / [^\\"]* (?: \\.? [^\\"]* )* "? \s* : /x,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- value_expected = true
- key_expected = false
- function_expected = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- value_expected = true if !value_expected && match.index(?\n)
- tokens << [match, :space]
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- kind = :comment
-
- elsif check(/\.?\d/)
- key_expected = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fF]|\d*\.\d+(?:[eE][+-]?\d+)?[fF]?|\d+[eE][+-]?\d+[fF]?/)
- kind = :float
- elsif scan(/\d+/)
- kind = :integer
- end
-
- elsif value_expected && match = scan(/<([[:alpha:]]\w*) (?: [^\/>]*\/> | .*?<\/\1>)/xim)
- # FIXME: scan over nested tags
- xml_scanner.tokenize match
- value_expected = false
- next
-
- elsif match = scan(/ [-+*=<>?:;,!&^|(\[{~%]+ | \.(?!\d) /x)
- value_expected = true
- last_operator = match[-1]
- key_expected = (last_operator == ?{) || (last_operator == ?,)
- function_expected = false
- kind = :operator
-
- elsif scan(/ [)\]}]+ /x)
- function_expected = key_expected = value_expected = false
- kind = :operator
-
- elsif match = scan(/ [$a-zA-Z_][A-Za-z_0-9$]* /x)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- # TODO: labels
- if kind == :ident
- if match.index(?$) # $ allowed inside an identifier
- kind = :predefined
- elsif function_expected
- kind = :function
- elsif check(/\s*[=:]\s*function\b/)
- kind = :function
- elsif key_expected && check(/\s*:/)
- kind = :key
- end
- end
- function_expected = (kind == :keyword) && (match == 'function')
- key_expected = false
-
- elsif match = scan(/["']/)
- if key_expected && check(KEY_CHECK_PATTERN[match])
- state = :key
- else
- state = :string
- end
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\/(?=\S)/))
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ \/ /x)
- value_expected = true
- key_expected = false
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :key
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
- elsif match = scan(/["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- modifiers = scan(/[gim]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- tokens << [:close, state]
- string_delimiter = nil
- key_expected = value_expected = false
- state = :initial
- next
- elsif state != :regexp && (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter == "'" && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{ESCAPE} | #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, state]
- kind = :error
- key_expected = value_expected = false
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if [:string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- protected
-
- def reset_instance
- super
- @xml_scanner.reset if defined? @xml_scanner
- end
-
- def xml_scanner
- @xml_scanner ||= CodeRay.scanner :xml, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/json.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/json.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-module CodeRay
-module Scanners
-
- class JSON < Scanner
-
- include Streamable
-
- register_for :json
- file_extension 'json'
-
- KINDS_NOT_LOC = [
- :float, :char, :content, :delimiter,
- :error, :integer, :operator, :value,
- ]
-
- CONSTANTS = %w( true false null )
- IDENT_KIND = WordList.new(:key).add(CONSTANTS, :value)
-
- ESCAPE = / [bfnrt\\"\/] /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x
-
- def scan_tokens tokens, options
-
- state = :initial
- stack = []
- string_delimiter = nil
- key_expected = false
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- next
- elsif match = scan(/ [:,\[{\]}] /x)
- kind = :operator
- case match
- when '{' then stack << :object; key_expected = true
- when '[' then stack << :array
- when ':' then key_expected = false
- when ',' then key_expected = true if stack.last == :object
- when '}', ']' then stack.pop # no error recovery, but works for valid JSON
- end
- elsif match = scan(/ true | false | null /x)
- kind = IDENT_KIND[match]
- elsif match = scan(/-?(?:0|[1-9]\d*)/)
- kind = :integer
- if scan(/\.\d+(?:[eE][-+]?\d+)?|[eE][-+]?\d+/)
- match << matched
- kind = :float
- end
- elsif match = scan(/"/)
- state = key_expected ? :key : :string
- tokens << [:open, state]
- kind = :delimiter
- else
- getch
- kind = :error
- end
-
- when :string, :key
- if scan(/[^\\"]+/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, state]
- state = :initial
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :delimiter]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
-
- if [:string, :key].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/nitro_xhtml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/nitro_xhtml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # Nitro XHTML Scanner
- class NitroXHTML < Scanner
-
- include Streamable
- register_for :nitro_xhtml
- file_extension :xhtml
- title 'Nitro XHTML'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- NITRO_RUBY_BLOCK = /
- <\?r
- (?>
- [^\?]*
- (?> \?(?!>) [^\?]* )*
- )
- (?: \?> )?
- |
-
- (?>
- [^<]*
- (?> <(?!\/ruby>) [^<]* )*
- )
- (?: <\/ruby> )?
- |
- <%
- (?>
- [^%]*
- (?> %(?!>) [^%]* )*
- )
- (?: %> )?
- /mx
-
- NITRO_VALUE_BLOCK = /
- \#
- (?:
- \{
- [^{}]*
- (?>
- \{ [^}]* \}
- (?> [^{}]* )
- )*
- \}?
- | \| [^|]* \|?
- | \( [^)]* \)?
- | \[ [^\]]* \]?
- | \\ [^\\]* \\?
- )
- /x
-
- NITRO_ENTITY = /
- % (?: \#\d+ | \w+ ) ;
- /
-
- START_OF_RUBY = /
- (?=[<\#%])
- < (?: \?r | % | ruby> )
- | \# [{(|]
- | % (?: \#\d+ | \w+ ) ;
- /x
-
- CLOSING_PAREN = Hash.new do |h, p|
- h[p] = p
- end.update( {
- '(' => ')',
- '[' => ']',
- '{' => '}',
- } )
-
- private
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens tokens, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_RUBY})/o) || scan_until(/\z/)) and not match.empty?
- @html_scanner.tokenize match
-
- elsif match = scan(/#{NITRO_VALUE_BLOCK}/o)
- start_tag = match[0,2]
- delimiter = CLOSING_PAREN[start_tag[1,1]]
- end_tag = match[-1,1] == delimiter ? delimiter : ''
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -1 - end_tag.size]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- elsif match = scan(/#{NITRO_RUBY_BLOCK}/o)
- start_tag = '' ? '?>' : ''
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -(end_tag.size)-1]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- elsif entity = scan(/#{NITRO_ENTITY}/o)
- tokens << [entity, :entity]
-
- elsif scan(/%/)
- tokens << [matched, :error]
-
- else
- raise_inspect 'else-case reached!', tokens
-
- end
-
- end
-
- tokens
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/php.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/php.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Original by Stefan Walk.
- class PHP < Scanner
-
- register_for :php
- file_extension 'php'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- def setup
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- module Words
-
- # according to http://www.php.net/manual/en/reserved.keywords.php
- KEYWORDS = %w[
- abstract and array as break case catch class clone const continue declare default do else elseif
- enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
- goto if implements interface instanceof namespace new or private protected public static switch
- throw try use var while xor
- cfunction old_function
- ]
-
- TYPES = %w[ int integer float double bool boolean string array object resource ]
-
- LANGUAGE_CONSTRUCTS = %w[
- die echo empty exit eval include include_once isset list
- require require_once return print unset
- ]
-
- CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
-
- # according to http://php.net/quickref.php on 2009-04-21;
- # all functions with _ excluded (module functions) and selected additional functions
- BUILTIN_FUNCTIONS = %w[
- abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
- atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
- bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
- calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
- compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
- decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
- ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
- fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
- fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
- fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
- getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
- getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
- gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
- gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
- gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
- implode include intval ip2long iptcembed iptcparse isset
- jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
- juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
- log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
- natsort next ngettext nl2br nthmac octdec opendir openlog
- ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
- prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
- readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
- serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
- snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
- strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
- strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
- strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
- textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
- unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
- array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
- array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
- array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
- array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
- array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
- array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
- array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
- array_walk_recursive
- assert_options base_convert base64_decode base64_encode
- chunk_split class_exists class_implements class_parents
- count_chars debug_backtrace debug_print_backtrace debug_zval_dump
- error_get_last error_log error_reporting extension_loaded
- file_exists file_get_contents file_put_contents load_file
- func_get_arg func_get_args func_num_args function_exists
- get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
- get_current_user get_declared_classes get_declared_interfaces get_defined_constants
- get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
- get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
- get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
- gc_collect_cycles gc_disable gc_enable gc_enabled
- halt_compiler headers_list headers_sent highlight_file highlight_string
- html_entity_decode htmlspecialchars_decode
- in_array include_once inclued_get_data
- is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
- is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
- is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
- is_writable is_writeable
- locale_get_default locale_set_default
- number_format override_function parse_str parse_url
- php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
- php_strip_whitespace php_uname
- preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
- preg_replace_callback preg_split print_r
- require_once register_shutdown_function register_tick_function
- set_error_handler set_exception_handler set_file_buffer set_include_path
- set_magic_quotes_runtime set_time_limit shell_exec
- str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
- strip_tags substr_compare substr_count substr_replace
- time_nanosleep time_sleep_until
- token_get_all token_name trigger_error
- unregister_tick_function use_soap_error_handler user_error
- utf8_decode utf8_encode var_dump var_export
- version_compare
- zend_logo_guid zend_thread_id zend_version
- create_function call_user_func_array
- posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
- posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
- posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
- posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
- posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
- posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
- posix_setuid posix_strerror posix_times posix_ttyname posix_uname
- pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
- pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
- pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
- pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
- ]
- # TODO: more built-in PHP functions?
-
- EXCEPTIONS = %w[
- E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
- E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
- ]
-
- CONSTANTS = %w[
- null true false self parent
- __LINE__ __DIR__ __FILE__ __LINE__
- __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
- PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
- PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
- PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
- PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
- PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
- __COMPILER_HALT_OFFSET__
- EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
- EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
- COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
- CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
- M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
- CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
- HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
- INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
- CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
- STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
- LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
- ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
- ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
- MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
- ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
- POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
- N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
- YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
- LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
- LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
- LOG_NDELAY LOG_NOWAIT LOG_PERROR
- ]
-
- PREDEFINED = %w[
- $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
- $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
- $argc $argv
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(KEYWORDS, :reserved).
- add(TYPES, :pre_type).
- add(LANGUAGE_CONSTRUCTS, :reserved).
- add(BUILTIN_FUNCTIONS, :predefined).
- add(CLASSES, :pre_constant).
- add(EXCEPTIONS, :exception).
- add(CONSTANTS, :pre_constant)
-
- VARIABLE_KIND = WordList.new(:local_variable).
- add(PREDEFINED, :predefined)
- end
-
- module RE
-
- PHP_START = /
- |
- \?>
- !xi
-
- HTML_INDICATOR = / ]/i
-
- IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
- VARIABLE = /\$#{IDENTIFIER}/
-
- OPERATOR = /
- \.(?!\d)=? | # dot that is not decimal point, string concatenation
- && | \|\| | # logic
- :: | -> | => | # scope, member, dictionary
- \\(?!\n) | # namespace
- \+\+ | -- | # increment, decrement
- [,;?:()\[\]{}] | # simple delimiters
- [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
- [~$] | # whatever
- =& | # reference assignment
- [=!]=?=? | <> | # comparison and assignment
- <<=? | >>=? | [<>]=? # comparison and shift
- /x
-
- end
-
- def scan_tokens tokens, options
-
- if check(RE::PHP_START) || # starts with
- (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
- exist?(RE::HTML_INDICATOR) ||
- check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
- # is HTML with embedded PHP, so start with HTML
- states = [:initial]
- else
- # is just PHP, so start with PHP surrounded by HTML
- states = [:initial, :php]
- end
-
- label_expected = true
- case_expected = false
-
- heredoc_delimiter = nil
- delimiter = nil
- modifier = nil
-
- until eos?
-
- match = nil
- kind = nil
-
- case states.last
-
- when :initial # HTML
- if scan RE::PHP_START
- kind = :inline_delimiter
- label_expected = true
- states << :php
- else
- match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
- @html_scanner.tokenize match unless match.empty?
- next
- end
-
- when :php
- if match = scan(/\s+/)
- tokens << [match, :space]
- next
-
- elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
- kind = :comment
-
- elsif match = scan(RE::IDENTIFIER)
- kind = Words::IDENT_KIND[match]
- if kind == :ident && label_expected && check(/:(?!:)/)
- kind = :label
- label_expected = true
- else
- label_expected = false
- if kind == :ident && match =~ /^[A-Z]/
- kind = :constant
- elsif kind == :reserved
- case match
- when 'class'
- states << :class_expected
- when 'function'
- states << :function_expected
- when 'case', 'default'
- case_expected = true
- end
- elsif match == 'b' && check(/['"]/) # binary string literal
- modifier = match
- next
- end
- end
-
- elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
- label_expected = false
- kind = :float
-
- elsif scan(/0x[0-9a-fA-F]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/\d+/)
- label_expected = false
- kind = :integer
-
- elsif scan(/'/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- kind = :delimiter
- states.push :sqstring
-
- elsif match = scan(/["`]/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- delimiter = match
- kind = :delimiter
- states.push :dqstring
-
- elsif match = scan(RE::VARIABLE)
- label_expected = false
- kind = Words::VARIABLE_KIND[match]
-
- elsif scan(/\{/)
- kind = :operator
- label_expected = true
- states.push :php
-
- elsif scan(/\}/)
- if states.size == 1
- kind = :error
- else
- states.pop
- if states.last.is_a?(::Array)
- delimiter = states.last[1]
- states[-1] = states.last[0]
- tokens << [matched, :delimiter]
- tokens << [:close, :inline]
- next
- else
- kind = :operator
- label_expected = true
- end
- end
-
- elsif scan(/@/)
- label_expected = false
- kind = :exception
-
- elsif scan RE::PHP_END
- kind = :inline_delimiter
- states = [:initial]
-
- elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
- tokens << [:open, :string]
- warn 'heredoc in heredoc?' if heredoc_delimiter
- heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
- kind = :delimiter
- states.push self[3] ? :sqstring : :dqstring
- heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
-
- elsif match = scan(/#{RE::OPERATOR}/o)
- label_expected = match == ';'
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :sqstring
- if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
- kind = :content
- elsif !heredoc_delimiter && scan(/'/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- end
-
- when :dqstring
- if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
- kind = :content
- elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
- kind = :char
- elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- elsif match = scan(/#{RE::VARIABLE}/o)
- kind = :local_variable
- if check(/\[#{RE::IDENTIFIER}\]/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/\[/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [scan(/\]/), :operator]
- tokens << [:close, :inline]
- next
- elsif check(/\[/)
- match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
- kind = :error
- elsif check(/->#{RE::IDENTIFIER}/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/->/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [:close, :inline]
- next
- elsif check(/->/)
- match << scan(/->/)
- kind = :error
- end
- elsif match = scan(/\{/)
- if check(/\$/)
- kind = :delimiter
- states[-1] = [states.last, delimiter]
- delimiter = nil
- states.push :php
- tokens << [:open, :inline]
- else
- kind = :string
- end
- elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
- kind = :local_variable
- elsif scan(/\$/)
- kind = :content
- end
-
- when :class_expected
- if scan(/\s+/)
- kind = :space
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :class
- states.pop
- else
- states.pop
- next
- end
-
- when :function_expected
- if scan(/\s+/)
- kind = :space
- elsif scan(/&/)
- kind = :operator
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :function
- states.pop
- else
- states.pop
- next
- end
-
- else
- raise_inspect 'Unknown state!', tokens, states
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, states
- end
- raise_inspect 'Empty token', tokens, states unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/plaintext.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/plaintext.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module CodeRay
-module Scanners
-
- class Plaintext < Scanner
-
- register_for :plaintext, :plain
- title 'Plain text'
-
- include Streamable
-
- KINDS_NOT_LOC = [:plain]
-
- def scan_tokens tokens, options
- text = (scan_until(/\z/) || '')
- tokens << [text, :plain]
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/python.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/python.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +0,0 @@
-module CodeRay
-module Scanners
-
- # Bases on pygments' PythonLexer, see
- # http://dev.pocoo.org/projects/pygments/browser/pygments/lexers/agile.py.
- class Python < Scanner
-
- include Streamable
-
- register_for :python
- file_extension 'py'
-
- KEYWORDS = [
- 'and', 'as', 'assert', 'break', 'class', 'continue', 'def',
- 'del', 'elif', 'else', 'except', 'finally', 'for',
- 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not',
- 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield',
- 'nonlocal', # new in Python 3
- ]
-
- OLD_KEYWORDS = [
- 'exec', 'print', # gone in Python 3
- ]
-
- PREDEFINED_METHODS_AND_TYPES = %w[
- __import__ abs all any apply basestring bin bool buffer
- bytearray bytes callable chr classmethod cmp coerce compile
- complex delattr dict dir divmod enumerate eval execfile exit
- file filter float frozenset getattr globals hasattr hash hex id
- input int intern isinstance issubclass iter len list locals
- long map max min next object oct open ord pow property range
- raw_input reduce reload repr reversed round set setattr slice
- sorted staticmethod str sum super tuple type unichr unicode
- vars xrange zip
- ]
-
- PREDEFINED_EXCEPTIONS = %w[
- ArithmeticError AssertionError AttributeError
- BaseException DeprecationWarning EOFError EnvironmentError
- Exception FloatingPointError FutureWarning GeneratorExit IOError
- ImportError ImportWarning IndentationError IndexError KeyError
- KeyboardInterrupt LookupError MemoryError NameError
- NotImplemented NotImplementedError OSError OverflowError
- OverflowWarning PendingDeprecationWarning ReferenceError
- RuntimeError RuntimeWarning StandardError StopIteration
- SyntaxError SyntaxWarning SystemError SystemExit TabError
- TypeError UnboundLocalError UnicodeDecodeError
- UnicodeEncodeError UnicodeError UnicodeTranslateError
- UnicodeWarning UserWarning ValueError Warning ZeroDivisionError
- ]
-
- PREDEFINED_VARIABLES_AND_CONSTANTS = [
- 'False', 'True', 'None', # "keywords" since Python 3
- 'self', 'Ellipsis', 'NotImplemented',
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(KEYWORDS, :keyword).
- add(OLD_KEYWORDS, :old_keyword).
- add(PREDEFINED_METHODS_AND_TYPES, :predefined).
- add(PREDEFINED_VARIABLES_AND_CONSTANTS, :pre_constant).
- add(PREDEFINED_EXCEPTIONS, :exception)
-
- NAME = / [^\W\d] \w* /x
- ESCAPE = / [abfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} | N\{[-\w ]+\} /x
-
- OPERATOR = /
- \.\.\. | # ellipsis
- \.(?!\d) | # dot but not decimal point
- [,;:()\[\]{}] | # simple delimiters
- \/\/=? | \*\*=? | # special math
- [-+*\/%&|^]=? | # ordinary math and binary logic
- [~`] | # binary complement and inspection
- <<=? | >>=? | [<>=]=? | != # comparison and assignment
- /x
-
- STRING_DELIMITER_REGEXP = Hash.new do |h, delimiter|
- h[delimiter] = Regexp.union delimiter
- end
-
- STRING_CONTENT_REGEXP = Hash.new do |h, delimiter|
- h[delimiter] = / [^\\\n]+? (?= \\ | $ | #{Regexp.escape(delimiter)} ) /x
- end
-
- DEF_NEW_STATE = WordList.new(:initial).
- add(%w(def), :def_expected).
- add(%w(import from), :include_expected).
- add(%w(class), :class_expected)
-
- DESCRIPTOR = /
- #{NAME}
- (?: \. #{NAME} )*
- | \*
- /x
-
- def scan_tokens tokens, options
-
- state = :initial
- string_delimiter = nil
- string_raw = false
- import_clause = class_name_follows = last_token_dot = false
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
- from_import_state = []
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :string
- if scan(STRING_DELIMITER_REGEXP[string_delimiter])
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- elsif string_delimiter.size == 3 && scan(/\n/)
- kind = :content
- elsif scan(STRING_CONTENT_REGEXP[string_delimiter])
- kind = :content
- elsif !string_raw && scan(/ \\ #{ESCAPE} /ox)
- kind = :char
- elsif scan(/ \\ #{UNICODE_ESCAPE} /ox)
- kind = :char
- elsif scan(/ \\ . /x)
- kind = :content
- elsif scan(/ \\ | $ /x)
- tokens << [:close, :string]
- kind = :error
- state = :initial
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens, state
- end
-
- elsif match = scan(/ [ \t]+ | \\\n /x)
- tokens << [match, :space]
- next
-
- elsif match = scan(/\n/)
- tokens << [match, :space]
- state = :initial if state == :include_expected
- next
-
- elsif match = scan(/ \# [^\n]* /mx)
- tokens << [match, :comment]
- next
-
- elsif state == :initial
-
- if scan(/#{OPERATOR}/o)
- kind = :operator
-
- elsif match = scan(/(u?r?|b)?("""|"|'''|')/i)
- tokens << [:open, :string]
- string_delimiter = self[2]
- string_raw = false
- modifiers = self[1]
- unless modifiers.empty?
- string_raw = !!modifiers.index(?r)
- tokens << [modifiers, :modifier]
- match = string_delimiter
- end
- state = :string
- kind = :delimiter
-
- # TODO: backticks
-
- elsif match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = IDENT_KIND[match]
- # TODO: keyword arguments
- kind = :ident if last_token_dot
- if kind == :old_keyword
- kind = check(/\(/) ? :ident : :keyword
- elsif kind == :predefined && check(/ *=/)
- kind = :ident
- elsif kind == :keyword
- state = DEF_NEW_STATE[match]
- from_import_state << match.to_sym if state == :include_expected
- end
-
- elsif scan(/@[a-zA-Z0-9_.]+[lL]?/)
- kind = :decorator
-
- elsif scan(/0[xX][0-9A-Fa-f]+[lL]?/)
- kind = :hex
-
- elsif scan(/0[bB][01]+[lL]?/)
- kind = :bin
-
- elsif match = scan(/(?:\d*\.\d+|\d+\.\d*)(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
- kind = :float
- if scan(/[jJ]/)
- match << matched
- kind = :imaginary
- end
-
- elsif scan(/0[oO][0-7]+|0[0-7]+(?![89.eE])[lL]?/)
- kind = :oct
-
- elsif match = scan(/\d+([lL])?/)
- kind = :integer
- if self[1] == nil && scan(/[jJ]/)
- match << matched
- kind = :imaginary
- end
-
- else
- getch
- kind = :error
-
- end
-
- elsif state == :def_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = :method
- else
- next
- end
-
- elsif state == :class_expected
- state = :initial
- if match = scan(unicode ? /#{NAME}/uo : /#{NAME}/o)
- kind = :class
- else
- next
- end
-
- elsif state == :include_expected
- if match = scan(unicode ? /#{DESCRIPTOR}/uo : /#{DESCRIPTOR}/o)
- kind = :include
- if match == 'as'
- kind = :keyword
- from_import_state << :as
- elsif from_import_state.first == :from && match == 'import'
- kind = :keyword
- from_import_state << :import
- elsif from_import_state.last == :as
- # kind = match[0,1][unicode ? /[[:upper:]]/u : /[[:upper:]]/] ? :class : :method
- kind = :ident
- from_import_state.pop
- elsif IDENT_KIND[match] == :keyword
- unscan
- match = nil
- state = :initial
- next
- end
- elsif match = scan(/,/)
- from_import_state.pop if from_import_state.last == :as
- kind = :operator
- else
- from_import_state = []
- state = :initial
- next
- end
-
- else
- raise_inspect 'Unknown state', tokens, state
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- last_token_dot = match == '.'
-
- tokens << [match, kind]
-
- end
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/rhtml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/rhtml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
- load :ruby
-
- # RHTML Scanner
- class RHTML < Scanner
-
- include Streamable
- register_for :rhtml
- title 'HTML ERB Template'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- ERB_RUBY_BLOCK = /
- <%(?!%)[=-]?
- (?>
- [^\-%]* # normal*
- (?> # special
- (?: %(?!>) | -(?!%>) )
- [^\-%]* # normal*
- )*
- )
- (?: -?%> )?
- /x
-
- START_OF_ERB = /
- <%(?!%)
- /x
-
- private
-
- def setup
- @ruby_scanner = CodeRay.scanner :ruby, :tokens => @tokens, :keep_tokens => true
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- def scan_tokens tokens, options
-
- until eos?
-
- if (match = scan_until(/(?=#{START_OF_ERB})/o) || scan_until(/\z/)) and not match.empty?
- @html_scanner.tokenize match
-
- elsif match = scan(/#{ERB_RUBY_BLOCK}/o)
- start_tag = match[/\A<%[-=]?/]
- end_tag = match[/-?%?>?\z/]
- tokens << [:open, :inline]
- tokens << [start_tag, :inline_delimiter]
- code = match[start_tag.size .. -1 - end_tag.size]
- @ruby_scanner.tokenize code
- tokens << [end_tag, :inline_delimiter] unless end_tag.empty?
- tokens << [:close, :inline]
-
- else
- raise_inspect 'else-case reached!', tokens
- end
-
- end
-
- tokens
-
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-module CodeRay
-module Scanners
-
- # This scanner is really complex, since Ruby _is_ a complex language!
- #
- # It tries to highlight 100% of all common code,
- # and 90% of strange codes.
- #
- # It is optimized for HTML highlighting, and is not very useful for
- # parsing or pretty printing.
- #
- # For now, I think it's better than the scanners in VIM or Syntax, or
- # any highlighter I was able to find, except Caleb's RubyLexer.
- #
- # I hope it's also better than the rdoc/irb lexer.
- class Ruby < Scanner
-
- include Streamable
-
- register_for :ruby
- file_extension 'rb'
-
- helper :patterns
-
- if not defined? EncodingError
- EncodingError = Class.new Exception
- end
-
- private
- def scan_tokens tokens, options
- last_token_dot = false
- value_expected = true
- heredocs = nil
- last_state = nil
- state = :initial
- depth = nil
- inline_block_stack = []
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
-
- patterns = Patterns # avoid constant lookup
-
- until eos?
- match = nil
- kind = nil
-
- if state.instance_of? patterns::StringState
-# {{{
- match = scan_until(state.pattern) || scan_until(/\z/)
- tokens << [match, :content] unless match.empty?
- break if eos?
-
- if state.heredoc and self[1] # end of heredoc
- match = getch.to_s
- match << scan_until(/$/) unless eos?
- tokens << [match, :delimiter]
- tokens << [:close, state.type]
- state = state.next_state
- next
- end
-
- case match = getch
-
- when state.delim
- if state.paren
- state.paren_depth -= 1
- if state.paren_depth > 0
- tokens << [match, :nesting_delimiter]
- next
- end
- end
- tokens << [match, :delimiter]
- if state.type == :regexp and not eos?
- modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
- tokens << [modifiers, :modifier] unless modifiers.empty?
- end
- tokens << [:close, state.type]
- value_expected = false
- state = state.next_state
-
- when '\\'
- if state.interpreted
- if esc = scan(/ #{patterns::ESCAPE} /ox)
- tokens << [match + esc, :char]
- else
- tokens << [match, :error]
- end
- else
- case m = getch
- when state.delim, '\\'
- tokens << [match + m, :char]
- when nil
- tokens << [match, :error]
- else
- tokens << [match + m, :content]
- end
- end
-
- when '#'
- case peek(1)
- when '{'
- inline_block_stack << [state, depth, heredocs]
- value_expected = true
- state = :initial
- depth = 1
- tokens << [:open, :inline]
- tokens << [match + getch, :inline_delimiter]
- when '$', '@'
- tokens << [match, :escape]
- last_state = state # scan one token as normal code, then return here
- state = :initial
- else
- raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
- end
-
- when state.paren
- state.paren_depth += 1
- tokens << [match, :nesting_delimiter]
-
- when /#{patterns::REGEXP_SYMBOLS}/ox
- tokens << [match, :function]
-
- else
- raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
-
- end
- next
-# }}}
- else
-# {{{
- if match = scan(/[ \t\f]+/)
- kind = :space
- match << scan(/\s*/) unless eos? || heredocs
- value_expected = true if match.index(?\n)
- tokens << [match, kind]
- next
-
- elsif match = scan(/\\?\n/)
- kind = :space
- if match == "\n"
- value_expected = true
- state = :initial if state == :undef_comma_expected
- end
- if heredocs
- unscan # heredoc scanning needs \n at start
- state = heredocs.shift
- tokens << [:open, state.type]
- heredocs = nil if heredocs.empty?
- next
- else
- match << scan(/\s*/) unless eos?
- end
- tokens << [match, kind]
- next
-
- elsif bol? && match = scan(/\#!.*/)
- tokens << [match, :doctype]
- next
-
- elsif match = scan(/\#.*/) or
- ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
- kind = :comment
- tokens << [match, kind]
- next
-
- elsif state == :initial
-
- # IDENTS #
- if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
- /#{patterns::METHOD_NAME}/o)
- if last_token_dot
- kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
- else
- kind = patterns::IDENT_KIND[match]
- if kind == :ident and match[/^[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
- kind = :constant
- elsif kind == :reserved
- state = patterns::DEF_NEW_STATE[match]
- value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
- end
- end
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
- kind = :ident
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- # OPERATORS #
- elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
- if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
- value_expected = :set
- end
- last_token_dot = :set if self[1]
- kind = :operator
- unless inline_block_stack.empty?
- case match
- when '{'
- depth += 1
- when '}'
- depth -= 1
- if depth == 0 # closing brace of inline block reached
- state, depth, heredocs = inline_block_stack.pop
- heredocs = nil if heredocs && heredocs.empty?
- tokens << [match, :inline_delimiter]
- kind = :inline
- match = :close
- end
- end
- end
-
- elsif match = scan(/ ['"] /mx)
- tokens << [:open, :string]
- kind = :delimiter
- state = patterns::StringState.new :string, match == '"', match # important for streaming
-
- elsif match = scan(/#{patterns::INSTANCE_VARIABLE}/o)
- kind = :instance_variable
-
- elsif value_expected and match = scan(/\//)
- tokens << [:open, :regexp]
- kind = :delimiter
- interpreted = true
- state = patterns::StringState.new :regexp, interpreted, match
-
- # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
- elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
- kind = self[1] ? :float : :integer
-
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- else
- kind = :symbol
- end
-
- elsif match = scan(/ [-+!~^]=? | [*|&]{1,2}=? | >>? /x)
- value_expected = :set
- kind = :operator
-
- elsif value_expected and match = scan(/#{patterns::HEREDOC_OPEN}/o)
- indented = self[1] == '-'
- quote = self[3]
- delim = self[quote ? 4 : 2]
- kind = patterns::QUOTE_TO_TYPE[quote]
- tokens << [:open, kind]
- tokens << [match, :delimiter]
- match = :close
- heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
- heredocs ||= [] # create heredocs if empty
- heredocs << heredoc
-
- elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
- kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
- raise_inspect 'Unknown fancy string: %%%p' % k, tokens
- end
- tokens << [:open, kind]
- state = patterns::StringState.new kind, interpreted, self[2]
- kind = :delimiter
-
- elsif value_expected and match = scan(/#{patterns::CHARACTER}/o)
- kind = :integer
-
- elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
- value_expected = :set
- kind = :operator
-
- elsif match = scan(/`/)
- if last_token_dot
- kind = :operator
- else
- tokens << [:open, :shell]
- kind = :delimiter
- state = patterns::StringState.new :shell, true, match
- end
-
- elsif match = scan(/#{patterns::GLOBAL_VARIABLE}/o)
- kind = :global_variable
-
- elsif match = scan(/#{patterns::CLASS_VARIABLE}/o)
- kind = :class_variable
-
- else
- if !unicode
- # check for unicode
- debug, $DEBUG = $DEBUG, false
- begin
- if check(/./mu).size > 1
- # seems like we should try again with unicode
- unicode = true
- end
- rescue
- # bad unicode char; use getch
- ensure
- $DEBUG = debug
- end
- next if unicode
- end
- kind = :error
- match = getch
-
- end
-
- elsif state == :def_expected
- state = :initial
- if scan(/self\./)
- tokens << ['self', :pre_constant]
- tokens << ['.', :operator]
- end
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- kind = :method
- else
- next
- end
-
- elsif state == :module_expected
- if match = scan(/<)
- kind = :operator
- else
- state = :initial
- if match = scan(/ (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox)
- kind = :class
- else
- next
- end
- end
-
- elsif state == :undef_expected
- state = :undef_comma_expected
- if match = scan(/#{patterns::METHOD_NAME_EX}/o)
- kind = :method
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- state.next_state = :undef_comma_expected
- else
- kind = :symbol
- end
- else
- state = :initial
- next
- end
-
- elsif state == :alias_expected
- match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
- /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
-
- if match
- tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
- tokens << [self[2], :space]
- tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
- end
- state = :initial
- next
-
- elsif state == :undef_comma_expected
- if match = scan(/,/)
- kind = :operator
- state = :undef_expected
- else
- state = :initial
- next
- end
-
- end
-# }}}
-
- unless kind == :error
- value_expected = value_expected == :set
- last_token_dot = last_token_dot == :set
- end
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- if last_state
- state = last_state
- last_state = nil
- end
- end
- end
-
- inline_block_stack << [state] if state.is_a? patterns::StringState
- until inline_block_stack.empty?
- this_block = inline_block_stack.pop
- tokens << [:close, :inline] if this_block.size > 1
- state = this_block.first
- tokens << [:close, state.type]
- end
-
- tokens
- end
-
- end
-
-end
-end
-
-# vim:fdm=marker
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 79
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby
-END
-patterns.rb
-K 25
-svn:wc:ra_dav:version-url
-V 91
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/patterns.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-patterns.rb
-file
-
-
-
-
-2010-09-23T14:37:45.679790Z
-ae0aca82c4390ffcc5757c97c71bc8f3
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6903
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/prop-base/patterns.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/prop-base/patterns.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/text-base/patterns.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/.svn/text-base/patterns.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-# encoding: utf-8
-module CodeRay
-module Scanners
-
- module Ruby::Patterns # :nodoc:
-
- RESERVED_WORDS = %w[
- and def end in or unless begin
- defined? ensure module redo super until
- BEGIN break do next rescue then
- when END case else for retry
- while alias class elsif if not return
- undef yield
- ]
-
- DEF_KEYWORDS = %w[ def ]
- UNDEF_KEYWORDS = %w[ undef ]
- ALIAS_KEYWORDS = %w[ alias ]
- MODULE_KEYWORDS = %w[class module]
- DEF_NEW_STATE = WordList.new(:initial).
- add(DEF_KEYWORDS, :def_expected).
- add(UNDEF_KEYWORDS, :undef_expected).
- add(ALIAS_KEYWORDS, :alias_expected).
- add(MODULE_KEYWORDS, :module_expected)
-
- PREDEFINED_CONSTANTS = %w[
- nil true false self
- DATA ARGV ARGF __FILE__ __LINE__
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- IDENT = 'ä'[/[[:alpha:]]/] == 'ä' ? /[[:alpha:]_][[:alnum:]_]*/ : /[^\W\d]\w*/
-
- METHOD_NAME = / #{IDENT} [?!]? /ox
- METHOD_NAME_OPERATOR = /
- \*\*? # multiplication and power
- | [-+~]@? # plus, minus, tilde with and without at sign
- | [\/%&|^`] # division, modulo or format strings, and, or, xor, system
- | \[\]=? # array getter and setter
- | << | >> # append or shift left, shift right
- | <=?>? | >=? # comparison, rocket operator
- | ===? | =~ # simple equality, case equality, match
- | ![~=@]? # negation with and without at sign, not-equal and not-match
- /ox
- METHOD_NAME_EX = / #{IDENT} (?:[?!]|=(?!>))? | #{METHOD_NAME_OPERATOR} /ox
- INSTANCE_VARIABLE = / @ #{IDENT} /ox
- CLASS_VARIABLE = / @@ #{IDENT} /ox
- OBJECT_VARIABLE = / @@? #{IDENT} /ox
- GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox
- PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox
- VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox
-
- QUOTE_TO_TYPE = {
- '`' => :shell,
- '/'=> :regexp,
- }
- QUOTE_TO_TYPE.default = :string
-
- REGEXP_MODIFIERS = /[mixounse]*/
- REGEXP_SYMBOLS = /[|?*+(){}\[\].^$]/
-
- DECIMAL = /\d+(?:_\d+)*/
- OCTAL = /0_?[0-7]+(?:_[0-7]+)*/
- HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/
- BINARY = /0b[01]+(?:_[01]+)*/
-
- EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
- FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
- FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
- NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
-
- SYMBOL = /
- :
- (?:
- #{METHOD_NAME_EX}
- | #{PREFIX_VARIABLE}
- | ['"]
- )
- /ox
- METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
-
- SIMPLE_ESCAPE = /
- [abefnrstv]
- | [0-7]{1,3}
- | x[0-9A-Fa-f]{1,2}
- | .?
- /mx
-
- CONTROL_META_ESCAPE = /
- (?: M-|C-|c )
- (?: \\ (?: M-|C-|c ) )*
- (?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
- /mox
-
- ESCAPE = /
- #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
- /mox
-
- CHARACTER = /
- \?
- (?:
- [^\s\\]
- | \\ #{ESCAPE}
- )
- /mox
-
- # NOTE: This is not completely correct, but
- # nobody needs heredoc delimiters ending with \n.
- HEREDOC_OPEN = /
- << (-)? # $1 = float
- (?:
- ( [A-Za-z_0-9]+ ) # $2 = delim
- |
- ( ["'`\/] ) # $3 = quote, type
- ( [^\n]*? ) \3 # $4 = delim
- )
- /mx
-
- RUBYDOC = /
- =begin (?!\S)
- .*?
- (?: \Z | ^=end (?!\S) [^\n]* )
- /mx
-
- DATA = /
- __END__$
- .*?
- (?: \Z | (?=^\#CODE) )
- /mx
-
- # Checks for a valid value to follow. This enables
- # value_expected in method calls without parentheses.
- VALUE_FOLLOWS = /
- (?>[ \t\f\v]+)
- (?:
- [%\/][^\s=]
- | <<-?\S
- | [-+] \d
- | #{CHARACTER}
- )
- /x
- KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[
- and end in or unless begin
- defined? ensure redo super until
- break do next rescue then
- when case else for retry
- while elsif if not return
- yield
- ])
-
- RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo
-
- RDOC_DATA_START = / ^=begin (?!\S) | ^__END__$ /x
-
- FANCY_START_CORRECT = / % ( [qQwWxsr] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /mx
-
- FancyStringType = {
- 'q' => [:string, false],
- 'Q' => [:string, true],
- 'r' => [:regexp, true],
- 's' => [:symbol, false],
- 'x' => [:shell, true]
- }
- FancyStringType['w'] = FancyStringType['q']
- FancyStringType['W'] = FancyStringType[''] = FancyStringType['Q']
-
- class StringState < Struct.new :type, :interpreted, :delim, :heredoc,
- :paren, :paren_depth, :pattern, :next_state
-
- CLOSING_PAREN = Hash[ *%w[
- ( )
- [ ]
- < >
- { }
- ] ]
-
- CLOSING_PAREN.each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with <<
- OPENING_PAREN = CLOSING_PAREN.invert
-
- STRING_PATTERN = Hash.new do |h, k|
- delim, interpreted = *k
- delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
- if closing_paren = CLOSING_PAREN[delim]
- delim_pattern = delim_pattern[0..-1] if defined? JRUBY_VERSION # JRuby fix
- delim_pattern << Regexp.escape(closing_paren)
- end
- delim_pattern << '\\\\' unless delim == '\\'
-
- special_escapes =
- case interpreted
- when :regexp_symbols
- '| ' + REGEXP_SYMBOLS.source
- when :words
- '| \s'
- end
-
- h[k] =
- if interpreted and not delim == '#'
- / (?= [#{delim_pattern}] | \# [{$@] #{special_escapes} ) /mx
- else
- / (?= [#{delim_pattern}] #{special_escapes} ) /mx
- end
- end
-
- HEREDOC_PATTERN = Hash.new do |h, k|
- delim, interpreted, indented = *k
- delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
- delim_pattern = / \n #{ '(?>[\ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x
- h[k] =
- if interpreted
- / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc
- else
- / (?= #{delim_pattern}() | \\ ) /mx
- end
- end
-
- def initialize kind, interpreted, delim, heredoc = false
- if heredoc
- pattern = HEREDOC_PATTERN[ [delim, interpreted, heredoc == :indented] ]
- delim = nil
- else
- pattern = STRING_PATTERN[ [delim, interpreted] ]
- if paren = CLOSING_PAREN[delim]
- delim, paren = paren, delim
- paren_depth = 1
- end
- end
- super kind, interpreted, delim, heredoc, paren, paren_depth, pattern, :initial
- end
- end unless defined? StringState
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/patterns.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby/patterns.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-# encoding: utf-8
-module CodeRay
-module Scanners
-
- module Ruby::Patterns # :nodoc:
-
- RESERVED_WORDS = %w[
- and def end in or unless begin
- defined? ensure module redo super until
- BEGIN break do next rescue then
- when END case else for retry
- while alias class elsif if not return
- undef yield
- ]
-
- DEF_KEYWORDS = %w[ def ]
- UNDEF_KEYWORDS = %w[ undef ]
- ALIAS_KEYWORDS = %w[ alias ]
- MODULE_KEYWORDS = %w[class module]
- DEF_NEW_STATE = WordList.new(:initial).
- add(DEF_KEYWORDS, :def_expected).
- add(UNDEF_KEYWORDS, :undef_expected).
- add(ALIAS_KEYWORDS, :alias_expected).
- add(MODULE_KEYWORDS, :module_expected)
-
- PREDEFINED_CONSTANTS = %w[
- nil true false self
- DATA ARGV ARGF __FILE__ __LINE__
- ]
-
- IDENT_KIND = WordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_CONSTANTS, :pre_constant)
-
- IDENT = 'ä'[/[[:alpha:]]/] == 'ä' ? /[[:alpha:]_][[:alnum:]_]*/ : /[^\W\d]\w*/
-
- METHOD_NAME = / #{IDENT} [?!]? /ox
- METHOD_NAME_OPERATOR = /
- \*\*? # multiplication and power
- | [-+~]@? # plus, minus, tilde with and without at sign
- | [\/%&|^`] # division, modulo or format strings, and, or, xor, system
- | \[\]=? # array getter and setter
- | << | >> # append or shift left, shift right
- | <=?>? | >=? # comparison, rocket operator
- | ===? | =~ # simple equality, case equality, match
- | ![~=@]? # negation with and without at sign, not-equal and not-match
- /ox
- METHOD_NAME_EX = / #{IDENT} (?:[?!]|=(?!>))? | #{METHOD_NAME_OPERATOR} /ox
- INSTANCE_VARIABLE = / @ #{IDENT} /ox
- CLASS_VARIABLE = / @@ #{IDENT} /ox
- OBJECT_VARIABLE = / @@? #{IDENT} /ox
- GLOBAL_VARIABLE = / \$ (?: #{IDENT} | [1-9]\d* | 0\w* | [~&+`'=\/,;_.<>!@$?*":\\] | -[a-zA-Z_0-9] ) /ox
- PREFIX_VARIABLE = / #{GLOBAL_VARIABLE} | #{OBJECT_VARIABLE} /ox
- VARIABLE = / @?@? #{IDENT} | #{GLOBAL_VARIABLE} /ox
-
- QUOTE_TO_TYPE = {
- '`' => :shell,
- '/'=> :regexp,
- }
- QUOTE_TO_TYPE.default = :string
-
- REGEXP_MODIFIERS = /[mixounse]*/
- REGEXP_SYMBOLS = /[|?*+(){}\[\].^$]/
-
- DECIMAL = /\d+(?:_\d+)*/
- OCTAL = /0_?[0-7]+(?:_[0-7]+)*/
- HEXADECIMAL = /0x[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*/
- BINARY = /0b[01]+(?:_[01]+)*/
-
- EXPONENT = / [eE] [+-]? #{DECIMAL} /ox
- FLOAT_SUFFIX = / #{EXPONENT} | \. #{DECIMAL} #{EXPONENT}? /ox
- FLOAT_OR_INT = / #{DECIMAL} (?: #{FLOAT_SUFFIX} () )? /ox
- NUMERIC = / (?: (?=0) (?: #{OCTAL} | #{HEXADECIMAL} | #{BINARY} ) | #{FLOAT_OR_INT} ) /ox
-
- SYMBOL = /
- :
- (?:
- #{METHOD_NAME_EX}
- | #{PREFIX_VARIABLE}
- | ['"]
- )
- /ox
- METHOD_NAME_OR_SYMBOL = / #{METHOD_NAME_EX} | #{SYMBOL} /ox
-
- SIMPLE_ESCAPE = /
- [abefnrstv]
- | [0-7]{1,3}
- | x[0-9A-Fa-f]{1,2}
- | .?
- /mx
-
- CONTROL_META_ESCAPE = /
- (?: M-|C-|c )
- (?: \\ (?: M-|C-|c ) )*
- (?: [^\\] | \\ #{SIMPLE_ESCAPE} )?
- /mox
-
- ESCAPE = /
- #{CONTROL_META_ESCAPE} | #{SIMPLE_ESCAPE}
- /mox
-
- CHARACTER = /
- \?
- (?:
- [^\s\\]
- | \\ #{ESCAPE}
- )
- /mox
-
- # NOTE: This is not completely correct, but
- # nobody needs heredoc delimiters ending with \n.
- HEREDOC_OPEN = /
- << (-)? # $1 = float
- (?:
- ( [A-Za-z_0-9]+ ) # $2 = delim
- |
- ( ["'`\/] ) # $3 = quote, type
- ( [^\n]*? ) \3 # $4 = delim
- )
- /mx
-
- RUBYDOC = /
- =begin (?!\S)
- .*?
- (?: \Z | ^=end (?!\S) [^\n]* )
- /mx
-
- DATA = /
- __END__$
- .*?
- (?: \Z | (?=^\#CODE) )
- /mx
-
- # Checks for a valid value to follow. This enables
- # value_expected in method calls without parentheses.
- VALUE_FOLLOWS = /
- (?>[ \t\f\v]+)
- (?:
- [%\/][^\s=]
- | <<-?\S
- | [-+] \d
- | #{CHARACTER}
- )
- /x
- KEYWORDS_EXPECTING_VALUE = WordList.new.add(%w[
- and end in or unless begin
- defined? ensure redo super until
- break do next rescue then
- when case else for retry
- while elsif if not return
- yield
- ])
-
- RUBYDOC_OR_DATA = / #{RUBYDOC} | #{DATA} /xo
-
- RDOC_DATA_START = / ^=begin (?!\S) | ^__END__$ /x
-
- FANCY_START_CORRECT = / % ( [qQwWxsr] | (?![a-zA-Z0-9]) ) ([^a-zA-Z0-9]) /mx
-
- FancyStringType = {
- 'q' => [:string, false],
- 'Q' => [:string, true],
- 'r' => [:regexp, true],
- 's' => [:symbol, false],
- 'x' => [:shell, true]
- }
- FancyStringType['w'] = FancyStringType['q']
- FancyStringType['W'] = FancyStringType[''] = FancyStringType['Q']
-
- class StringState < Struct.new :type, :interpreted, :delim, :heredoc,
- :paren, :paren_depth, :pattern, :next_state
-
- CLOSING_PAREN = Hash[ *%w[
- ( )
- [ ]
- < >
- { }
- ] ]
-
- CLOSING_PAREN.each { |k,v| k.freeze; v.freeze } # debug, if I try to change it with <<
- OPENING_PAREN = CLOSING_PAREN.invert
-
- STRING_PATTERN = Hash.new do |h, k|
- delim, interpreted = *k
- delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
- if closing_paren = CLOSING_PAREN[delim]
- delim_pattern = delim_pattern[0..-1] if defined? JRUBY_VERSION # JRuby fix
- delim_pattern << Regexp.escape(closing_paren)
- end
- delim_pattern << '\\\\' unless delim == '\\'
-
- special_escapes =
- case interpreted
- when :regexp_symbols
- '| ' + REGEXP_SYMBOLS.source
- when :words
- '| \s'
- end
-
- h[k] =
- if interpreted and not delim == '#'
- / (?= [#{delim_pattern}] | \# [{$@] #{special_escapes} ) /mx
- else
- / (?= [#{delim_pattern}] #{special_escapes} ) /mx
- end
- end
-
- HEREDOC_PATTERN = Hash.new do |h, k|
- delim, interpreted, indented = *k
- delim_pattern = Regexp.escape(delim.dup) # dup: workaround for old Ruby
- delim_pattern = / \n #{ '(?>[\ \t]*)' if indented } #{ Regexp.new delim_pattern } $ /x
- h[k] =
- if interpreted
- / (?= #{delim_pattern}() | \\ | \# [{$@] ) /mx # $1 set == end of heredoc
- else
- / (?= #{delim_pattern}() | \\ ) /mx
- end
- end
-
- def initialize kind, interpreted, delim, heredoc = false
- if heredoc
- pattern = HEREDOC_PATTERN[ [delim, interpreted, heredoc == :indented] ]
- delim = nil
- else
- pattern = STRING_PATTERN[ [delim, interpreted] ]
- if paren = CLOSING_PAREN[delim]
- delim, paren = paren, delim
- paren_depth = 1
- end
- end
- super kind, interpreted, delim, heredoc, paren, paren_depth, pattern, :initial
- end
- end unless defined? StringState
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/scheme.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/scheme.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-module CodeRay
- module Scanners
-
- # Scheme scanner for CodeRay (by closure).
- # Thanks to murphy for putting CodeRay into public.
- class Scheme < Scanner
-
- # TODO: function defs
- # TODO: built-in functions
-
- register_for :scheme
- file_extension 'scm'
-
- CORE_FORMS = %w[
- lambda let let* letrec syntax-case define-syntax let-syntax
- letrec-syntax begin define quote if or and cond case do delay
- quasiquote set! cons force call-with-current-continuation call/cc
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(CORE_FORMS, :reserved)
-
- #IDENTIFIER_INITIAL = /[a-z!@\$%&\*\/\:<=>\?~_\^]/i
- #IDENTIFIER_SUBSEQUENT = /#{IDENTIFIER_INITIAL}|\d|\.|\+|-/
- #IDENTIFIER = /#{IDENTIFIER_INITIAL}#{IDENTIFIER_SUBSEQUENT}*|\+|-|\.{3}/
- IDENTIFIER = /[a-zA-Z!@$%&*\/:<=>?~_^][\w!@$%&*\/:<=>?~^.+\-]*|[+-]|\.\.\./
- DIGIT = /\d/
- DIGIT10 = DIGIT
- DIGIT16 = /[0-9a-f]/i
- DIGIT8 = /[0-7]/
- DIGIT2 = /[01]/
- RADIX16 = /\#x/i
- RADIX8 = /\#o/i
- RADIX2 = /\#b/i
- RADIX10 = /\#d/i
- EXACTNESS = /#i|#e/i
- SIGN = /[\+-]?/
- EXP_MARK = /[esfdl]/i
- EXP = /#{EXP_MARK}#{SIGN}#{DIGIT}+/
- SUFFIX = /#{EXP}?/
- PREFIX10 = /#{RADIX10}?#{EXACTNESS}?|#{EXACTNESS}?#{RADIX10}?/
- PREFIX16 = /#{RADIX16}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX16}/
- PREFIX8 = /#{RADIX8}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX8}/
- PREFIX2 = /#{RADIX2}#{EXACTNESS}?|#{EXACTNESS}?#{RADIX2}/
- UINT10 = /#{DIGIT10}+#*/
- UINT16 = /#{DIGIT16}+#*/
- UINT8 = /#{DIGIT8}+#*/
- UINT2 = /#{DIGIT2}+#*/
- DECIMAL = /#{DIGIT10}+#+\.#*#{SUFFIX}|#{DIGIT10}+\.#{DIGIT10}*#*#{SUFFIX}|\.#{DIGIT10}+#*#{SUFFIX}|#{UINT10}#{EXP}/
- UREAL10 = /#{UINT10}\/#{UINT10}|#{DECIMAL}|#{UINT10}/
- UREAL16 = /#{UINT16}\/#{UINT16}|#{UINT16}/
- UREAL8 = /#{UINT8}\/#{UINT8}|#{UINT8}/
- UREAL2 = /#{UINT2}\/#{UINT2}|#{UINT2}/
- REAL10 = /#{SIGN}#{UREAL10}/
- REAL16 = /#{SIGN}#{UREAL16}/
- REAL8 = /#{SIGN}#{UREAL8}/
- REAL2 = /#{SIGN}#{UREAL2}/
- IMAG10 = /i|#{UREAL10}i/
- IMAG16 = /i|#{UREAL16}i/
- IMAG8 = /i|#{UREAL8}i/
- IMAG2 = /i|#{UREAL2}i/
- COMPLEX10 = /#{REAL10}@#{REAL10}|#{REAL10}\+#{IMAG10}|#{REAL10}-#{IMAG10}|\+#{IMAG10}|-#{IMAG10}|#{REAL10}/
- COMPLEX16 = /#{REAL16}@#{REAL16}|#{REAL16}\+#{IMAG16}|#{REAL16}-#{IMAG16}|\+#{IMAG16}|-#{IMAG16}|#{REAL16}/
- COMPLEX8 = /#{REAL8}@#{REAL8}|#{REAL8}\+#{IMAG8}|#{REAL8}-#{IMAG8}|\+#{IMAG8}|-#{IMAG8}|#{REAL8}/
- COMPLEX2 = /#{REAL2}@#{REAL2}|#{REAL2}\+#{IMAG2}|#{REAL2}-#{IMAG2}|\+#{IMAG2}|-#{IMAG2}|#{REAL2}/
- NUM10 = /#{PREFIX10}?#{COMPLEX10}/
- NUM16 = /#{PREFIX16}#{COMPLEX16}/
- NUM8 = /#{PREFIX8}#{COMPLEX8}/
- NUM2 = /#{PREFIX2}#{COMPLEX2}/
- NUM = /#{NUM10}|#{NUM16}|#{NUM8}|#{NUM2}/
-
- private
- def scan_tokens tokens,options
-
- state = :initial
- ident_kind = IDENT_KIND
-
- until eos?
- kind = match = nil
-
- case state
- when :initial
- if scan(/ \s+ | \\\n /x)
- kind = :space
- elsif scan(/['\(\[\)\]]|#\(/)
- kind = :operator_fat
- elsif scan(/;.*/)
- kind = :comment
- elsif scan(/#\\(?:newline|space|.?)/)
- kind = :char
- elsif scan(/#[ft]/)
- kind = :pre_constant
- elsif scan(/#{IDENTIFIER}/o)
- kind = ident_kind[matched]
- elsif scan(/\./)
- kind = :operator
- elsif scan(/"/)
- tokens << [:open, :string]
- state = :string
- tokens << ['"', :delimiter]
- next
- elsif scan(/#{NUM}/o) and not matched.empty?
- kind = :integer
- elsif getch
- kind = :error
- end
-
- when :string
- if scan(/[^"\\]+/) or scan(/\\.?/)
- kind = :content
- elsif scan(/"/)
- tokens << ['"', :delimiter]
- tokens << [:close, :string]
- state = :initial
- next
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1),
- tokens, state
- end
-
- else
- raise "else case reached"
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end # until eos
-
- if state == :string
- tokens << [:close, :string]
- end
-
- tokens
-
- end #scan_tokens
- end #class
- end #module scanners
-end #module coderay
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/sql.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/sql.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-module CodeRay module Scanners
-
- # by Josh Goebel
- class SQL < Scanner
-
- register_for :sql
-
- RESERVED_WORDS = %w(
- create database table index trigger drop primary key set select
- insert update delete replace into
- on from values before and or if exists case when
- then else as group order by avg where
- join inner outer union engine not
- like end using collate show columns begin
- )
-
- PREDEFINED_TYPES = %w(
- char varchar enum binary text tinytext mediumtext
- longtext blob tinyblob mediumblob longblob timestamp
- date time datetime year double decimal float int
- integer tinyint mediumint bigint smallint unsigned bit
- bool boolean hex bin oct
- )
-
- PREDEFINED_FUNCTIONS = %w( sum cast abs pi count min max avg )
-
- DIRECTIVES = %w( auto_increment unique default charset )
-
- PREDEFINED_CONSTANTS = %w( null true false )
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(RESERVED_WORDS, :reserved).
- add(PREDEFINED_TYPES, :pre_type).
- add(PREDEFINED_CONSTANTS, :pre_constant).
- add(PREDEFINED_FUNCTIONS, :predefined).
- add(DIRECTIVES, :directive)
-
- ESCAPE = / [rbfntv\n\\\/'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | . /mx
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} | U[a-fA-F0-9]{8} /x
-
- STRING_PREFIXES = /[xnb]|_\w+/i
-
- def scan_tokens tokens, options
-
- state = :initial
- string_type = nil
- string_content = ''
-
- until eos?
-
- kind = nil
- match = nil
-
- if state == :initial
-
- if scan(/ \s+ | \\\n /x)
- kind = :space
-
- elsif scan(/^(?:--\s?|#).*/)
- kind = :comment
-
- elsif scan(%r! /\* (?: .*? \*/ | .* ) !mx)
- kind = :comment
-
- elsif scan(/ [-+*\/=<>;,!&^|()\[\]{}~%] | \.(?!\d) /x)
- kind = :operator
-
- elsif scan(/(#{STRING_PREFIXES})?([`"'])/o)
- prefix = self[1]
- string_type = self[2]
- tokens << [:open, :string]
- tokens << [prefix, :modifier] if prefix
- match = string_type
- state = :string
- kind = :delimiter
-
- elsif match = scan(/ @? [A-Za-z_][A-Za-z_0-9]* /x)
- kind = match[0] == ?@ ? :variable : IDENT_KIND[match.downcase]
-
- elsif scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
-
- elsif scan(/0[0-7]+(?![89.eEfF])/)
- kind = :oct
-
- elsif scan(/(?>\d+)(?![.eEfF])/)
- kind = :integer
-
- elsif scan(/\d[fF]|\d*\.\d+(?:[eE][+-]?\d+)?|\d+[eE][+-]?\d+/)
- kind = :float
-
- else
- getch
- kind = :error
-
- end
-
- elsif state == :string
- if match = scan(/[^\\"'`]+/)
- string_content << match
- next
- elsif match = scan(/["'`]/)
- if string_type == match
- if peek(1) == string_type # doubling means escape
- string_content << string_type << getch
- next
- end
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- state = :initial
- string_type = nil
- next
- else
- string_content << match
- end
- next
- elsif scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- kind = :char
- elsif match = scan(/ \\ . /mox)
- string_content << match
- next
- elsif scan(/ \\ | $ /x)
- unless string_content.empty?
- tokens << [string_content, :content]
- string_content = ''
- end
- kind = :error
- state = :initial
- else
- raise "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise 'else-case reached', tokens
-
- end
-
- match ||= matched
- unless kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- end
- tokens
-
- end
-
- end
-
-end end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/xml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/xml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # XML Scanner
- #
- # Currently this is the same scanner as Scanners::HTML.
- class XML < HTML
-
- register_for :xml
- file_extension 'xml'
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/scanners/yaml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/yaml.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-module CodeRay
-module Scanners
-
- # YAML Scanner
- #
- # Based on the YAML scanner from Syntax by Jamis Buck.
- class YAML < Scanner
-
- register_for :yaml
- file_extension 'yml'
-
- KINDS_NOT_LOC = :all
-
- def scan_tokens tokens, options
-
- value_expected = nil
- state = :initial
- key_indent = indent = 0
-
- until eos?
-
- kind = nil
- match = nil
- key_indent = nil if bol?
-
- if match = scan(/ +[\t ]*/)
- kind = :space
-
- elsif match = scan(/\n+/)
- kind = :space
- state = :initial if match.index(?\n)
-
- elsif match = scan(/#.*/)
- kind = :comment
-
- elsif bol? and case
- when match = scan(/---|\.\.\./)
- tokens << [:open, :head]
- tokens << [match, :head]
- tokens << [:close, :head]
- next
- when match = scan(/%.*/)
- tokens << [match, :doctype]
- next
- end
-
- elsif state == :value and case
- when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
- tokens << [:open, :string]
- tokens << [matched, :delimiter]
- tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
- tokens << [matched, :delimiter] if scan(/"/)
- tokens << [:close, :string]
- next
- when match = scan(/[|>][-+]?/)
- tokens << [:open, :string]
- tokens << [match, :delimiter]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- tokens << [:close, :string]
- next
- when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
- tokens << [match, :string]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- next
- end
-
- elsif case
- when match = scan(/[-:](?= |$)/)
- state = :value if state == :colon && (match == ':' || match == '-')
- state = :value if state == :initial && match == '-'
- kind = :operator
- when match = scan(/[,{}\[\]]/)
- kind = :operator
- when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
- kind = :key
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
- tokens << [:open, :key]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content]
- tokens << [match[-1,1], :delimiter]
- tokens << [:close, :key]
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- next
- when scan(/(![\w\/]+)(:([\w:]+))?/)
- tokens << [self[1], :type]
- if self[2]
- tokens << [':', :operator]
- tokens << [self[3], :class]
- end
- next
- when scan(/&\S+/)
- kind = :variable
- when scan(/\*\w+/)
- kind = :global_variable
- when scan(/<)
- kind = :class_variable
- when scan(/\d\d:\d\d:\d\d/)
- kind = :oct
- when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
- kind = :oct
- when scan(/:\w+/)
- kind = :symbol
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
- kind = :error
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
- kind = :error
- end
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/style.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/style.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module CodeRay
-
- # This module holds the Style class and its subclasses.
- #
- # See Plugin.
- module Styles
- extend PluginHost
- plugin_path File.dirname(__FILE__), 'styles'
-
- class Style
- extend Plugin
- plugin_host Styles
-
- DEFAULT_OPTIONS = { }
-
- end
-
- end
-
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/all-wcprops
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles
-END
-cycnus.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles/cycnus.rb
-END
-murphy.rb
-K 25
-svn:wc:ra_dav:version-url
-V 82
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles/murphy.rb
-END
-_map.rb
-K 25
-svn:wc:ra_dav:version-url
-V 80
-/svn/!svn/ver/3592/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles/_map.rb
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/trunk/vendor/plugins/coderay-0.9.2/lib/coderay/styles
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-cycnus.rb
-file
-
-
-
-
-2010-09-23T14:37:45.683786Z
-e8d4af106543cf30dcc95fd942044e63
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3759
-
-murphy.rb
-file
-
-
-
-
-2010-09-23T14:37:45.683786Z
-7c7e3c4f8f845a59359649b3221689a7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3259
-
-_map.rb
-file
-
-
-
-
-2010-09-23T14:37:45.683786Z
-9b92a72b99db4496e76665edb7b38c00
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-57
-
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/cycnus.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/cycnus.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/murphy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/murphy.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-K 13
-svn:eol-style
-V 6
-native
-END
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/_map.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module CodeRay
-module Styles
-
- default :cycnus
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-module CodeRay
-module Styles
-
- class Cycnus < Style
-
- register_for :cycnus
-
- code_background = '#f8f8f8'
- numbers_background = '#def'
- border_color = 'silver'
- normal_color = '#000'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
-table.CodeRay td { padding: 2px 4px; vertical-align: top }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold }
-.CodeRay .line_numbers .highlighted { color: red }
-.CodeRay .no { padding: 0px 4px }
-.CodeRay .code { width: 100% }
-
-ol.CodeRay { font-size: 10pt }
-ol.CodeRay li { white-space: pre }
-
-.CodeRay .code pre { overflow: auto }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.debug { color:white ! important; background:blue ! important; }
-
-.af { color:#00C }
-.an { color:#007 }
-.at { color:#f08 }
-.av { color:#700 }
-.aw { color:#C00 }
-.bi { color:#509; font-weight:bold }
-.c { color:#888; }
-
-.ch { color:#04D }
-.ch .k { color:#04D }
-.ch .dl { color:#039 }
-
-.cl { color:#B06; font-weight:bold }
-.cm { color:#A08; font-weight:bold }
-.co { color:#036; font-weight:bold }
-.cr { color:#0A0 }
-.cv { color:#369 }
-.de { color:#B0B; }
-.df { color:#099; font-weight:bold }
-.di { color:#088; font-weight:bold }
-.dl { color:black }
-.do { color:#970 }
-.dt { color:#34b }
-.ds { color:#D42; font-weight:bold }
-.e { color:#666; font-weight:bold }
-.en { color:#800; font-weight:bold }
-.er { color:#F00; background-color:#FAA }
-.ex { color:#C00; font-weight:bold }
-.fl { color:#60E; font-weight:bold }
-.fu { color:#06B; font-weight:bold }
-.gv { color:#d70; font-weight:bold }
-.hx { color:#058; font-weight:bold }
-.i { color:#00D; font-weight:bold }
-.ic { color:#B44; font-weight:bold }
-
-.il { background: #ddd; color: black }
-.il .il { background: #ccc }
-.il .il .il { background: #bbb }
-.il .idl { background: #ddd; font-weight: bold; color: #666 }
-.idl { background-color: #bbb; font-weight: bold; color: #666; }
-
-.im { color:#f00; }
-.in { color:#B2B; font-weight:bold }
-.iv { color:#33B }
-.la { color:#970; font-weight:bold }
-.lv { color:#963 }
-.oc { color:#40E; font-weight:bold }
-.of { color:#000; font-weight:bold }
-.op { }
-.pc { color:#038; font-weight:bold }
-.pd { color:#369; font-weight:bold }
-.pp { color:#579; }
-.ps { color:#00C; font-weight:bold }
-.pt { color:#074; font-weight:bold }
-.r, .kw { color:#080; font-weight:bold }
-
-.ke { color: #808; }
-.ke .dl { color: #606; }
-.ke .ch { color: #80f; }
-.vl { color: #088; }
-
-.rx { background-color:#fff0ff }
-.rx .k { color:#808 }
-.rx .dl { color:#404 }
-.rx .mod { color:#C2C }
-.rx .fu { color:#404; font-weight: bold }
-
-.s { background-color:#fff0f0; color: #D20; }
-.s .s { background-color:#ffe0e0 }
-.s .s .s { background-color:#ffd0d0 }
-.s .k { }
-.s .ch { color: #b0b; }
-.s .dl { color: #710; }
-
-.sh { background-color:#f0fff0; color:#2B2 }
-.sh .k { }
-.sh .dl { color:#161 }
-
-.sy { color:#A60 }
-.sy .k { color:#A60 }
-.sy .dl { color:#630 }
-
-.ta { color:#070 }
-.tf { color:#070; font-weight:bold }
-.ts { color:#D70; font-weight:bold }
-.ty { color:#339; font-weight:bold }
-.v { color:#036 }
-.xt { color:#444 }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-module CodeRay
-module Styles
-
- class Murphy < Style
-
- register_for :murphy
-
- code_background = '#001129'
- numbers_background = code_background
- border_color = 'silver'
- normal_color = '#C0C0C0'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px; }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
-table.CodeRay td { padding: 2px 4px; vertical-align: top; }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold; }
-.CodeRay .no { padding: 0px 4px; }
-.CodeRay .code { width: 100%; }
-
-ol.CodeRay { font-size: 10pt; }
-ol.CodeRay li { white-space: pre; }
-
-.CodeRay .code pre { overflow: auto; }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.af { color:#00C; }
-.an { color:#007; }
-.av { color:#700; }
-.aw { color:#C00; }
-.bi { color:#509; font-weight:bold; }
-.c { color:#555; background-color: black; }
-
-.ch { color:#88F; }
-.ch .k { color:#04D; }
-.ch .dl { color:#039; }
-
-.cl { color:#e9e; font-weight:bold; }
-.co { color:#5ED; font-weight:bold; }
-.cr { color:#0A0; }
-.cv { color:#ccf; }
-.df { color:#099; font-weight:bold; }
-.di { color:#088; font-weight:bold; }
-.dl { color:black; }
-.do { color:#970; }
-.ds { color:#D42; font-weight:bold; }
-.e { color:#666; font-weight:bold; }
-.er { color:#F00; background-color:#FAA; }
-.ex { color:#F00; font-weight:bold; }
-.fl { color:#60E; font-weight:bold; }
-.fu { color:#5ed; font-weight:bold; }
-.gv { color:#f84; }
-.hx { color:#058; font-weight:bold; }
-.i { color:#66f; font-weight:bold; }
-.ic { color:#B44; font-weight:bold; }
-.il { }
-.in { color:#B2B; font-weight:bold; }
-.iv { color:#aaf; }
-.la { color:#970; font-weight:bold; }
-.lv { color:#963; }
-.oc { color:#40E; font-weight:bold; }
-.of { color:#000; font-weight:bold; }
-.op { }
-.pc { color:#08f; font-weight:bold; }
-.pd { color:#369; font-weight:bold; }
-.pp { color:#579; }
-.pt { color:#66f; font-weight:bold; }
-.r { color:#5de; font-weight:bold; }
-.r, .kw { color:#5de; font-weight:bold }
-
-.ke { color: #808; }
-
-.rx { background-color:#221133; }
-.rx .k { color:#f8f; }
-.rx .dl { color:#f0f; }
-.rx .mod { color:#f0b; }
-.rx .fu { color:#404; font-weight: bold; }
-
-.s { background-color:#331122; }
-.s .s { background-color:#ffe0e0; }
-.s .s .s { background-color:#ffd0d0; }
-.s .k { color:#F88; }
-.s .dl { color:#f55; }
-
-.sh { background-color:#f0fff0; }
-.sh .k { color:#2B2; }
-.sh .dl { color:#161; }
-
-.sy { color:#Fc8; }
-.sy .k { color:#Fc8; }
-.sy .dl { color:#F84; }
-
-.ta { color:#070; }
-.tf { color:#070; font-weight:bold; }
-.ts { color:#D70; font-weight:bold; }
-.ty { color:#339; font-weight:bold; }
-.v { color:#036; }
-.xt { color:#444; }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/_map.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module CodeRay
-module Styles
-
- default :cycnus
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/cycnus.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/cycnus.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-module CodeRay
-module Styles
-
- class Cycnus < Style
-
- register_for :cycnus
-
- code_background = '#f8f8f8'
- numbers_background = '#def'
- border_color = 'silver'
- normal_color = '#000'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
-table.CodeRay td { padding: 2px 4px; vertical-align: top }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold }
-.CodeRay .line_numbers .highlighted { color: red }
-.CodeRay .no { padding: 0px 4px }
-.CodeRay .code { width: 100% }
-
-ol.CodeRay { font-size: 10pt }
-ol.CodeRay li { white-space: pre }
-
-.CodeRay .code pre { overflow: auto }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.debug { color:white ! important; background:blue ! important; }
-
-.af { color:#00C }
-.an { color:#007 }
-.at { color:#f08 }
-.av { color:#700 }
-.aw { color:#C00 }
-.bi { color:#509; font-weight:bold }
-.c { color:#888; }
-
-.ch { color:#04D }
-.ch .k { color:#04D }
-.ch .dl { color:#039 }
-
-.cl { color:#B06; font-weight:bold }
-.cm { color:#A08; font-weight:bold }
-.co { color:#036; font-weight:bold }
-.cr { color:#0A0 }
-.cv { color:#369 }
-.de { color:#B0B; }
-.df { color:#099; font-weight:bold }
-.di { color:#088; font-weight:bold }
-.dl { color:black }
-.do { color:#970 }
-.dt { color:#34b }
-.ds { color:#D42; font-weight:bold }
-.e { color:#666; font-weight:bold }
-.en { color:#800; font-weight:bold }
-.er { color:#F00; background-color:#FAA }
-.ex { color:#C00; font-weight:bold }
-.fl { color:#60E; font-weight:bold }
-.fu { color:#06B; font-weight:bold }
-.gv { color:#d70; font-weight:bold }
-.hx { color:#058; font-weight:bold }
-.i { color:#00D; font-weight:bold }
-.ic { color:#B44; font-weight:bold }
-
-.il { background: #ddd; color: black }
-.il .il { background: #ccc }
-.il .il .il { background: #bbb }
-.il .idl { background: #ddd; font-weight: bold; color: #666 }
-.idl { background-color: #bbb; font-weight: bold; color: #666; }
-
-.im { color:#f00; }
-.in { color:#B2B; font-weight:bold }
-.iv { color:#33B }
-.la { color:#970; font-weight:bold }
-.lv { color:#963 }
-.oc { color:#40E; font-weight:bold }
-.of { color:#000; font-weight:bold }
-.op { }
-.pc { color:#038; font-weight:bold }
-.pd { color:#369; font-weight:bold }
-.pp { color:#579; }
-.ps { color:#00C; font-weight:bold }
-.pt { color:#074; font-weight:bold }
-.r, .kw { color:#080; font-weight:bold }
-
-.ke { color: #808; }
-.ke .dl { color: #606; }
-.ke .ch { color: #80f; }
-.vl { color: #088; }
-
-.rx { background-color:#fff0ff }
-.rx .k { color:#808 }
-.rx .dl { color:#404 }
-.rx .mod { color:#C2C }
-.rx .fu { color:#404; font-weight: bold }
-
-.s { background-color:#fff0f0; color: #D20; }
-.s .s { background-color:#ffe0e0 }
-.s .s .s { background-color:#ffd0d0 }
-.s .k { }
-.s .ch { color: #b0b; }
-.s .dl { color: #710; }
-
-.sh { background-color:#f0fff0; color:#2B2 }
-.sh .k { }
-.sh .dl { color:#161 }
-
-.sy { color:#A60 }
-.sy .k { color:#A60 }
-.sy .dl { color:#630 }
-
-.ta { color:#070 }
-.tf { color:#070; font-weight:bold }
-.ts { color:#D70; font-weight:bold }
-.ty { color:#339; font-weight:bold }
-.v { color:#036 }
-.xt { color:#444 }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/styles/murphy.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/murphy.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-module CodeRay
-module Styles
-
- class Murphy < Style
-
- register_for :murphy
-
- code_background = '#001129'
- numbers_background = code_background
- border_color = 'silver'
- normal_color = '#C0C0C0'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px; }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
-table.CodeRay td { padding: 2px 4px; vertical-align: top; }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold; }
-.CodeRay .no { padding: 0px 4px; }
-.CodeRay .code { width: 100%; }
-
-ol.CodeRay { font-size: 10pt; }
-ol.CodeRay li { white-space: pre; }
-
-.CodeRay .code pre { overflow: auto; }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.af { color:#00C; }
-.an { color:#007; }
-.av { color:#700; }
-.aw { color:#C00; }
-.bi { color:#509; font-weight:bold; }
-.c { color:#555; background-color: black; }
-
-.ch { color:#88F; }
-.ch .k { color:#04D; }
-.ch .dl { color:#039; }
-
-.cl { color:#e9e; font-weight:bold; }
-.co { color:#5ED; font-weight:bold; }
-.cr { color:#0A0; }
-.cv { color:#ccf; }
-.df { color:#099; font-weight:bold; }
-.di { color:#088; font-weight:bold; }
-.dl { color:black; }
-.do { color:#970; }
-.ds { color:#D42; font-weight:bold; }
-.e { color:#666; font-weight:bold; }
-.er { color:#F00; background-color:#FAA; }
-.ex { color:#F00; font-weight:bold; }
-.fl { color:#60E; font-weight:bold; }
-.fu { color:#5ed; font-weight:bold; }
-.gv { color:#f84; }
-.hx { color:#058; font-weight:bold; }
-.i { color:#66f; font-weight:bold; }
-.ic { color:#B44; font-weight:bold; }
-.il { }
-.in { color:#B2B; font-weight:bold; }
-.iv { color:#aaf; }
-.la { color:#970; font-weight:bold; }
-.lv { color:#963; }
-.oc { color:#40E; font-weight:bold; }
-.of { color:#000; font-weight:bold; }
-.op { }
-.pc { color:#08f; font-weight:bold; }
-.pd { color:#369; font-weight:bold; }
-.pp { color:#579; }
-.pt { color:#66f; font-weight:bold; }
-.r { color:#5de; font-weight:bold; }
-.r, .kw { color:#5de; font-weight:bold }
-
-.ke { color: #808; }
-
-.rx { background-color:#221133; }
-.rx .k { color:#f8f; }
-.rx .dl { color:#f0f; }
-.rx .mod { color:#f0b; }
-.rx .fu { color:#404; font-weight: bold; }
-
-.s { background-color:#331122; }
-.s .s { background-color:#ffe0e0; }
-.s .s .s { background-color:#ffd0d0; }
-.s .k { color:#F88; }
-.s .dl { color:#f55; }
-
-.sh { background-color:#f0fff0; }
-.sh .k { color:#2B2; }
-.sh .dl { color:#161; }
-
-.sy { color:#Fc8; }
-.sy .k { color:#Fc8; }
-.sy .dl { color:#F84; }
-
-.ta { color:#070; }
-.tf { color:#070; font-weight:bold; }
-.ts { color:#D70; font-weight:bold; }
-.ty { color:#339; font-weight:bold; }
-.v { color:#036; }
-.xt { color:#444; }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/token_classes.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/token_classes.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-module CodeRay
- class Tokens
- ClassOfKind = Hash.new do |h, k|
- h[k] = k.to_s
- end
- ClassOfKind.update with = {
- :annotation => 'at',
- :attribute_name => 'an',
- :attribute_name_fat => 'af',
- :attribute_value => 'av',
- :attribute_value_fat => 'aw',
- :bin => 'bi',
- :char => 'ch',
- :class => 'cl',
- :class_variable => 'cv',
- :color => 'cr',
- :comment => 'c',
- :complex => 'cm',
- :constant => 'co',
- :content => 'k',
- :decorator => 'de',
- :definition => 'df',
- :delimiter => 'dl',
- :directive => 'di',
- :doc => 'do',
- :doctype => 'dt',
- :doc_string => 'ds',
- :entity => 'en',
- :error => 'er',
- :escape => 'e',
- :exception => 'ex',
- :float => 'fl',
- :function => 'fu',
- :global_variable => 'gv',
- :hex => 'hx',
- :imaginary => 'cm',
- :important => 'im',
- :include => 'ic',
- :inline => 'il',
- :inline_delimiter => 'idl',
- :instance_variable => 'iv',
- :integer => 'i',
- :interpreted => 'in',
- :keyword => 'kw',
- :key => 'ke',
- :label => 'la',
- :local_variable => 'lv',
- :modifier => 'mod',
- :oct => 'oc',
- :operator_fat => 'of',
- :pre_constant => 'pc',
- :pre_type => 'pt',
- :predefined => 'pd',
- :preprocessor => 'pp',
- :pseudo_class => 'ps',
- :regexp => 'rx',
- :reserved => 'r',
- :shell => 'sh',
- :string => 's',
- :symbol => 'sy',
- :tag => 'ta',
- :tag_fat => 'tf',
- :tag_special => 'ts',
- :type => 'ty',
- :variable => 'v',
- :value => 'vl',
- :xml_text => 'xt',
-
- :insert => 'ins',
- :delete => 'del',
- :change => 'chg',
- :head => 'head',
-
- :ident => :NO_HIGHLIGHT, # 'id'
- #:operator => 'op',
- :operator => :NO_HIGHLIGHT, # 'op'
- :space => :NO_HIGHLIGHT, # 'sp'
- :plain => :NO_HIGHLIGHT,
- }
- ClassOfKind[:method] = ClassOfKind[:function]
- ClassOfKind[:open] = ClassOfKind[:close] = ClassOfKind[:delimiter]
- ClassOfKind[:nesting_delimiter] = ClassOfKind[:delimiter]
- ClassOfKind[:escape] = ClassOfKind[:delimiter]
- #ClassOfKind.default = ClassOfKind[:error] or raise 'no class found for :error!'
- end
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/coderay-0.9.2/lib/coderay/tokens.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/tokens.rb Wed Jan 19 15:04:22 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-module CodeRay
-
- # = Tokens
- #
- # The Tokens class represents a list of tokens returnd from
- # a Scanner.
- #
- # A token is not a special object, just a two-element Array
- # consisting of
- # * the _token_ _kind_ (a Symbol representing the type of the token)
- # * the _token_ _text_ (the original source of the token in a String)
- #
- # A token looks like this:
- #
- # [:comment, '# It looks like this']
- # [:float, '3.1415926']
- # [:error, '$^']
- #
- # Some scanners also yield some kind of sub-tokens, represented by special
- # token texts, namely :open and :close .
- #
- # The Ruby scanner, for example, splits "a string" into:
- #
- # [
- # [:open, :string],
- # [:delimiter, '"'],
- # [:content, 'a string'],
- # [:delimiter, '"'],
- # [:close, :string]
- # ]
- #
- # Tokens is also the interface between Scanners and Encoders:
- # The input is split and saved into a Tokens object. The Encoder
- # then builds the output from this object.
- #
- # Thus, the syntax below becomes clear:
- #
- # CodeRay.scan('price = 2.59', :ruby).html
- # # the Tokens object is here -------^
- #
- # See how small it is? ;)
- #
- # Tokens gives you the power to handle pre-scanned code very easily:
- # You can convert it to a webpage, a YAML file, or dump it into a gzip'ed string
- # that you put in your DB.
- #
- # Tokens' subclass TokenStream allows streaming to save memory.
- class Tokens < Array
-
- # The Scanner instance that created the tokens.
- attr_accessor :scanner
-
- # Whether the object is a TokenStream.
- #
- # Returns false.
- def stream?
- false
- end
-
- # Iterates over all tokens.
- #
- # If a filter is given, only tokens of that kind are yielded.
- def each kind_filter = nil, &block
- unless kind_filter
- super(&block)
- else
- super() do |text, kind|
- next unless kind == kind_filter
- yield text, kind
- end
- end
- end
-
- # Iterates over all text tokens.
- # Range tokens like [:open, :string] are left out.
- #
- # Example:
- # tokens.each_text_token { |text, kind| text.replace html_escape(text) }
- def each_text_token
- each do |text, kind|
- next unless text.is_a? ::String
- yield text, kind
- end
- end
-
- # Encode the tokens using encoder.
- #
- # encoder can be
- # * a symbol like :html oder :statistic
- # * an Encoder class
- # * an Encoder object
- #
- # options are passed to the encoder.
- def encode encoder, options = {}
- unless encoder.is_a? Encoders::Encoder
- unless encoder.is_a? Class
- encoder_class = Encoders[encoder]
- end
- encoder = encoder_class.new options
- end
- encoder.encode_tokens self, options
- end
-
-
- # Turn into a string using Encoders::Text.
- #
- # +options+ are passed to the encoder if given.
- def to_s options = {}
- encode :text, options
- end
-
- # Redirects unknown methods to encoder calls.
- #
- # For example, if you call +tokens.html+, the HTML encoder
- # is used to highlight the tokens.
- def method_missing meth, options = {}
- Encoders[meth].new(options).encode_tokens self
- end
-
- # Returns the tokens compressed by joining consecutive
- # tokens of the same kind.
- #
- # This can not be undone, but should yield the same output
- # in most Encoders. It basically makes the output smaller.
- #
- # Combined with dump, it saves space for the cost of time.
- #
- # If the scanner is written carefully, this is not required -
- # for example, consecutive //-comment lines could already be
- # joined in one comment token by the Scanner.
- def optimize
- last_kind = last_text = nil
- new = self.class.new
- for text, kind in self
- if text.is_a? String
- if kind == last_kind
- last_text << text
- else
- new << [last_text, last_kind] if last_kind
- last_text = text
- last_kind = kind
- end
- else
- new << [last_text, last_kind] if last_kind
- last_kind = last_text = nil
- new << [text, kind]
- end
- end
- new << [last_text, last_kind] if last_kind
- new
- end
-
- # Compact the object itself; see optimize.
- def optimize!
- replace optimize
- end
-
- # Ensure that all :open tokens have a correspondent :close one.
- #
- # TODO: Test this!
- def fix
- tokens = self.class.new
- # Check token nesting using a stack of kinds.
- opened = []
- for type, kind in self
- case type
- when :open
- opened.push [:close, kind]
- when :begin_line
- opened.push [:end_line, kind]
- when :close, :end_line
- expected = opened.pop
- if [type, kind] != expected
- # Unexpected :close; decide what to do based on the kind:
- # - token was never opened: delete the :close (just skip it)
- next unless opened.rindex expected
- # - token was opened earlier: also close tokens in between
- tokens << token until (token = opened.pop) == expected
- end
- end
- tokens << [type, kind]
- end
- # Close remaining opened tokens
- tokens << token while token = opened.pop
- tokens
- end
-
- def fix!
- replace fix
- end
-
- # TODO: Scanner#split_into_lines
- #
- # Makes sure that:
- # - newlines are single tokens
- # (which means all other token are single-line)
- # - there are no open tokens at the end the line
- #
- # This makes it simple for encoders that work line-oriented,
- # like HTML with list-style numeration.
- def split_into_lines
- raise NotImplementedError
- end
-
- def split_into_lines!
- replace split_into_lines
- end
-
- # Dumps the object into a String that can be saved
- # in files or databases.
- #
- # The dump is created with Marshal.dump;
- # In addition, it is gzipped using GZip.gzip.
- #
- # The returned String object includes Undumping
- # so it has an #undump method. See Tokens.load.
- #
- # You can configure the level of compression,
- # but the default value 7 should be what you want
- # in most cases as it is a good compromise between
- # speed and compression rate.
- #
- # See GZip module.
- def dump gzip_level = 7
- require 'coderay/helpers/gzip_simple'
- dump = Marshal.dump self
- dump = dump.gzip gzip_level
- dump.extend Undumping
- end
-
- # The total size of the tokens.
- # Should be equal to the input size before
- # scanning.
- def text_size
- size = 0
- each_text_token do |t, k|
- size + t.size
- end
- size
- end
-
- # The total size of the tokens.
- # Should be equal to the input size before
- # scanning.
- def text
- map { |t, k| t if t.is_a? ::String }.join
- end
-
- # Include this module to give an object an #undump
- # method.
- #
- # The string returned by Tokens.dump includes Undumping.
- module Undumping
- # Calls Tokens.load with itself.
- def undump
- Tokens.load self
- end
- end
-
- # Undump the object using Marshal.load, then
- # unzip it using GZip.gunzip.
- #
- # The result is commonly a Tokens object, but
- # this is not guaranteed.
- def Tokens.load dump
- require 'coderay/helpers/gzip_simple'
- dump = dump.gunzip
- @dump = Marshal.load dump
- end
-
- end
-
-
- # = TokenStream
- #
- # The TokenStream class is a fake Array without elements.
- #
- # It redirects the method << to a block given at creation.
- #
- # This allows scanners and Encoders to use streaming (no
- # tokens are saved, the input is highlighted the same time it
- # is scanned) with the same code.
- #
- # See CodeRay.encode_stream and CodeRay.scan_stream
- class TokenStream < Tokens
-
- # Whether the object is a TokenStream.
- #
- # Returns true.
- def stream?
- true
- end
-
- # The Array is empty, but size counts the tokens given by <<.
- attr_reader :size
-
- # Creates a new TokenStream that calls +block+ whenever
- # its << method is called.
- #
- # Example:
- #
- # require 'coderay'
- #
- # token_stream = CodeRay::TokenStream.new do |kind, text|
- # puts 'kind: %s, text size: %d.' % [kind, text.size]
- # end
- #
- # token_stream << [:regexp, '/\d+/']
- # #-> kind: rexpexp, text size: 5.
- #
- def initialize &block
- raise ArgumentError, 'Block expected for streaming.' unless block
- @callback = block
- @size = 0
- end
-
- # Calls +block+ with +token+ and increments size.
- #
- # Returns self.
- def << token
- @callback.call(*token)
- @size += 1
- self
- end
-
- # This method is not implemented due to speed reasons. Use Tokens.
- def text_size
- raise NotImplementedError,
- 'This method is not implemented due to speed reasons.'
- end
-
- # A TokenStream cannot be dumped. Use Tokens.
- def dump
- raise NotImplementedError, 'A TokenStream cannot be dumped.'
- end
-
- # A TokenStream cannot be optimized. Use Tokens.
- def optimize
- raise NotImplementedError, 'A TokenStream cannot be optimized.'
- end
-
- end
-
-end
-
-if $0 == __FILE__
- $VERBOSE = true
- $: << File.join(File.dirname(__FILE__), '..')
- eval DATA.read, nil, $0, __LINE__ + 4
-end
-
-__END__
-require 'test/unit'
-
-class TokensTest < Test::Unit::TestCase
-
- def test_creation
- assert CodeRay::Tokens < Array
- tokens = nil
- assert_nothing_raised do
- tokens = CodeRay::Tokens.new
- end
- assert_kind_of Array, tokens
- end
-
- def test_adding_tokens
- tokens = CodeRay::Tokens.new
- assert_nothing_raised do
- tokens << ['string', :type]
- tokens << ['()', :operator]
- end
- assert_equal tokens.size, 2
- end
-
- def test_dump_undump
- tokens = CodeRay::Tokens.new
- assert_nothing_raised do
- tokens << ['string', :type]
- tokens << ['()', :operator]
- end
- tokens2 = nil
- assert_nothing_raised do
- tokens2 = tokens.dump.undump
- end
- assert_equal tokens, tokens2
- end
-
-end
\ No newline at end of file
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/.svn/entries
--- a/vendor/plugins/engines/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.687760Z
+2011-02-08T13:45:46.000000Z
b8328004b1bb94c84d90c0839cd7d41d
2009-09-13T17:14:35.707881Z
2887
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.683786Z
+2011-02-08T13:45:46.000000Z
a523ea1465a566ae38fba96a99506ff3
2008-07-12T10:17:14.809831Z
1654
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.691758Z
+2011-02-08T13:45:46.000000Z
f653a768811758cee11e21d4de00b381
2009-10-07T16:43:50.656336Z
2904
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.695759Z
+2011-02-08T13:45:46.000000Z
e4f81ba26f0b10a838b3336ba263aaa5
2009-09-13T17:14:35.707881Z
2887
@@ -177,7 +177,7 @@
-2010-09-23T14:37:45.687760Z
+2011-02-08T13:45:46.000000Z
41bb5eeb2864cd46438eefb1cb048c4d
2009-02-21T11:04:50.579477Z
2493
@@ -214,7 +214,7 @@
-2010-09-23T14:37:45.687760Z
+2011-02-08T13:45:46.000000Z
6e112fd6d07885bef3fd5bd537fc1409
2008-07-12T10:17:14.809831Z
1654
@@ -248,7 +248,7 @@
-2010-09-23T14:37:45.691758Z
+2011-02-08T13:45:46.000000Z
18cc761cb69b7735ecf0cdb0d9b6d640
2009-09-13T17:14:35.707881Z
2887
@@ -282,7 +282,7 @@
-2010-09-23T14:37:45.687760Z
+2011-02-08T13:45:46.000000Z
7e25f2cbded59c24735a20510040bb74
2008-07-12T10:17:14.809831Z
1654
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/generators/.svn/entries
--- a/vendor/plugins/engines/generators/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/generators/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/generators/plugin_migration/.svn/entries
--- a/vendor/plugins/engines/generators/plugin_migration/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.916901Z
+2011-02-08T13:45:46.000000Z
3f4805cb1e4a8b8a3ed180f22d81c285
2010-11-14T16:24:21.989522Z
4406
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.691758Z
+2011-02-08T13:45:46.000000Z
d796f61555b36ef9941ea049c94df06b
2008-07-12T10:17:14.809831Z
1654
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries
--- a/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.695759Z
+2011-02-08T13:45:46.000000Z
0b30f95c4244242093ded274caf9e4a8
2008-07-12T10:17:14.809831Z
1654
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/lib/.svn/entries
--- a/vendor/plugins/engines/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.695759Z
+2011-02-08T13:45:46.000000Z
b9128ad79c06e8c2eb2474a7f9edf60d
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/lib/engines/.svn/entries
--- a/vendor/plugins/engines/lib/engines/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
f5e61f1312a19bdac20f06b7529eaa98
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.699755Z
+2011-02-08T13:45:46.000000Z
d084e8ccb3edfb9f481f2626ee9e57e1
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.699755Z
+2011-02-08T13:45:46.000000Z
a2cb2f3c517fbe62ab1277e44b0a05ed
2009-02-21T11:04:50.579477Z
2493
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/lib/engines/plugin/.svn/entries
--- a/vendor/plugins/engines/lib/engines/plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.703755Z
+2011-02-08T13:45:46.000000Z
2adca63e7c7d7c38a91953458e893bb2
2008-07-12T10:17:14.809831Z
1654
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.703755Z
+2011-02-08T13:45:46.000000Z
21ac938bcf4f86e62ec21e9803cfd76e
2009-02-21T11:04:50.579477Z
2493
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.703755Z
+2011-02-08T13:45:46.000000Z
38eaf6e3b113f74daa0669c67261cc72
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.703755Z
+2011-02-08T13:45:46.000000Z
d68941171066743dd63a174b5f270f66
2008-07-12T10:17:14.809831Z
1654
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries
--- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/rails_extensions
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
3e26c9fe2cd009cb5e81f6ccea3f012c
2009-02-21T11:04:50.579477Z
2493
@@ -66,7 +66,7 @@
-2010-09-24T12:48:29.635919Z
+2011-02-08T13:45:46.000000Z
c5a5e8b469c1e3fefcc5bedca9f4ac82
2010-09-17T04:06:40.671348Z
4094
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
6e29697f02c187c9033624422365044a
2009-02-21T11:04:50.579477Z
2493
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
f26da6a18ffcc7b846838f038a0abea4
2008-07-12T10:17:14.809831Z
1654
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
8f8e408b9f1a72af1cc5232ddb888266
2009-02-21T11:04:50.579477Z
2493
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/tasks/.svn/entries
--- a/vendor/plugins/engines/tasks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/tasks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/tasks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.707755Z
+2011-02-08T13:45:46.000000Z
10b9e5aacd9d0673e694f6ababd6ee3b
2009-12-18T14:41:37.649419Z
3186
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/.svn/entries
--- a/vendor/plugins/engines/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/.svn/entries
--- a/vendor/plugins/engines/test/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.711814Z
+2011-02-08T13:45:46.000000Z
8e2adc646126f3962ca1eaf16d663fa7
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/controllers/namespace/.svn/entries
--- a/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers/namespace
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.711814Z
+2011-02-08T13:45:46.000000Z
ed9f029690f9d77b31e0d68cff2f8ff3
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/helpers/.svn/entries
--- a/vendor/plugins/engines/test/app/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/helpers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/helpers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.715757Z
+2011-02-08T13:45:46.000000Z
b3286b0384ccf10d15423a78b8a70c3a
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/models/.svn/entries
--- a/vendor/plugins/engines/test/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.715757Z
+2011-02-08T13:45:46.000000Z
53fd050b6dc2f5da77439ffab6e1dd6e
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.715757Z
+2011-02-08T13:45:46.000000Z
ffba288117364d8379bd2b6788e2fd2f
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/things/.svn/entries
--- a/vendor/plugins/engines/test/app/things/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/things/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/things
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.715757Z
+2011-02-08T13:45:46.000000Z
aaa0b6b1363b304ca66c8def3c543b13
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/.svn/entries
--- a/vendor/plugins/engines/test/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries
--- a/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/app_and_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.719755Z
+2011-02-08T13:45:46.000000Z
e6dca36d9e91414f1a520ffddb5202d7
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/namespace/.svn/entries
--- a/vendor/plugins/engines/test/app/views/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries
--- a/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace/app_and_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.719755Z
+2011-02-08T13:45:46.000000Z
e6dca36d9e91414f1a520ffddb5202d7
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/notify_mail/.svn/entries
--- a/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/notify_mail
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.723813Z
+2011-02-08T13:45:46.000000Z
8e367f8a525da2fddf6b32d5f874c6ba
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.723813Z
+2011-02-08T13:45:46.000000Z
50ed7a6afc64b4a326aa8b681a31b9a3
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.723813Z
+2011-02-08T13:45:46.000000Z
cb0d28ce47ca265d02f252970ac69194
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.723813Z
+2011-02-08T13:45:46.000000Z
5a4f738dec733e5f4ad703495c5eb54a
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.723813Z
+2011-02-08T13:45:46.000000Z
3b779e7b00bfe0f9b876bfebd7905a4e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries
--- a/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/plugin_mail
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
d0e724c594c43b6db39389834f3c26e2
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
317dc13d851c827568f61def9b031803
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/functional/.svn/entries
--- a/vendor/plugins/engines/test/functional/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/functional/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/functional
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
53bf916868db17fcb64853aab45ce80b
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
03f318c931cb7d40733445e72a504c95
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.731757Z
+2011-02-08T13:45:46.000000Z
43b6ff22af92cc8988a51d1b50c4c587
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
0ca8b6e7e4b7655c3633b11d4ff61cc6
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.731757Z
+2011-02-08T13:45:46.000000Z
afcc79d3fa1c4f1615b271f65d982d8b
2009-09-13T17:14:35.707881Z
2887
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.727757Z
+2011-02-08T13:45:46.000000Z
6bd25b9259dbf37b6d31e69f83a32fe0
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/lib/.svn/entries
--- a/vendor/plugins/engines/test/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.731757Z
+2011-02-08T13:45:46.000000Z
1fde453d5263852d1ba9fc3dd90254fc
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.731757Z
+2011-02-08T13:45:46.000000Z
b00ea9b677cec76cd2fc19b1f66db3e2
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.731757Z
+2011-02-08T13:45:46.000000Z
52fd5b17adc2fec1950be496b5ff3a3d
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/.svn/entries
--- a/vendor/plugins/engines/test/plugins/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.735800Z
+2011-02-08T13:45:46.000000Z
b70de56fa165815bbab14f584b6fbdb4
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.735800Z
+2011-02-08T13:45:46.000000Z
9e56eb4864bc1877cc8a6e69ca873157
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
f9f42ac7db3bb715ff4f055162013aba
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
a24a7b9dd5706d2daef2456b1b1cac4c
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
b1c4a105ad8bfa7add28c583dbd9ef8a
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
43152818b40142db88dffe0192e66582
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
a661e69f87fead66873ac8cc162da128
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
01ab2dea5fd3e341bd082f2fc507f760
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.739799Z
+2011-02-08T13:45:46.000000Z
ae48cf4ce7068428c1525dba877a880c
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.743801Z
+2011-02-08T13:45:46.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.743801Z
+2011-02-08T13:45:46.000000Z
68deee946f4e81fafcae37d51f2e6bd5
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.747800Z
+2011-02-08T13:45:46.000000Z
3791a6748098d1382b11556ec47b6366
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.747800Z
+2011-02-08T13:45:46.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.747800Z
+2011-02-08T13:45:46.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.751796Z
+2011-02-08T13:45:46.000000Z
3bef9fe54ed08fd7ce454a189b2b3195
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.751796Z
+2011-02-08T13:45:46.000000Z
3bef9fe54ed08fd7ce454a189b2b3195
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.751796Z
+2011-02-08T13:45:46.000000Z
4799f34099980de6af0dc719c7f04845
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.751796Z
+2011-02-08T13:45:46.000000Z
e892323cf7ac415a30ca41b49ab96d1d
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.755800Z
+2011-02-08T13:45:46.000000Z
8fb4d64b7ed263c84a6aa2974eb71f25
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-09-23T14:37:45.763755Z
+2011-02-08T13:45:46.000000Z
cee45809cc705092eca4e13d3aa204f1
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.759798Z
+2011-02-08T13:45:46.000000Z
6c633d0dcb606e532dd906bd2567bf57
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.759798Z
+2011-02-08T13:45:46.000000Z
df7f8bb84aa9fcbe07534d5aa59e11b8
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.759798Z
+2011-02-08T13:45:46.000000Z
a8bcbb79381d6db75a9ea6e2704828a9
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.759798Z
+2011-02-08T13:45:46.000000Z
c9a469b003eca7ac6627c41deeda1b4c
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.763755Z
+2011-02-08T13:45:46.000000Z
78db1a7e1a9f6216dfa3671e5d42c81b
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.763755Z
+2011-02-08T13:45:46.000000Z
78db1a7e1a9f6216dfa3671e5d42c81b
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.767754Z
+2011-02-08T13:45:46.000000Z
277816fa171800daec137e70993e39f6
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin/public
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.767754Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.775754Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.771797Z
+2011-02-08T13:45:46.000000Z
ba97b09a04ada07aa57234ea8649c128
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/assets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.771797Z
+2011-02-08T13:45:46.000000Z
5c22cfc5b27a3b2b869075baacf530a6
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.775754Z
+2011-02-08T13:45:46.000000Z
8a99331150683df5edbd645cb851de37
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.775754Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public/subfolder
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.775754Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.779781Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.779781Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.779781Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.783782Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.783782Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.783782Z
+2011-02-08T13:45:46.000000Z
cee45809cc705092eca4e13d3aa204f1
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app/things
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.783782Z
+2011-02-08T13:45:46.000000Z
3b8cfcd53b03ccc6db1aac5b542abaa4
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_load_path/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_load_path
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.787823Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_migration/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.791825Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db/migrate
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.791825Z
+2011-02-08T13:45:46.000000Z
ba950e9dc666a42d09029148ae7e3234
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.791825Z
+2011-02-08T13:45:46.000000Z
de937ac5b434955daacc33306a5a1a2d
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.791825Z
+2011-02-08T13:45:46.000000Z
b9241da5bb8308bcea2f4cd5cbd32ff1
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.799837Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.791825Z
+2011-02-08T13:45:46.000000Z
6bfa7a84bb26ae29617568896fec30ae
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.795823Z
+2011-02-08T13:45:46.000000Z
cf207341167ec099c0e0ffbe3935a4d4
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.795823Z
+2011-02-08T13:45:46.000000Z
c54772416c0a8c4f3d46880180299dd5
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.799837Z
+2011-02-08T13:45:46.000000Z
6f32fb0cf1bfbf4dcc8636f350a126e8
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.795823Z
+2011-02-08T13:45:46.000000Z
6f32fb0cf1bfbf4dcc8636f350a126e8
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.795823Z
+2011-02-08T13:45:46.000000Z
ededb32a08ab9582df24ce1572dc2a20
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_routing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-09-23T14:37:45.803782Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.803782Z
+2011-02-08T13:45:46.000000Z
e5a27666b16bdff58054a3440cf14516
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.803782Z
+2011-02-08T13:45:46.000000Z
515669edfb53126155e911a1ae5149ec
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/config
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.803782Z
+2011-02-08T13:45:46.000000Z
47135f279d2e64a431d8604df1402ffb
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_testing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-09-23T14:37:45.807778Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/app
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.807778Z
+2011-02-08T13:45:46.000000Z
9cbac832f86ac5e8cfbbc4c69811910e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.807778Z
+2011-02-08T13:45:46.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test/unit
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.807778Z
+2011-02-08T13:45:46.000000Z
35e9fbc2fb32c9114a5d6cf531f41e8d
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/unit/.svn/entries
--- a/vendor/plugins/engines/test/unit/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/unit/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
6724203a17cf765303c1f1cad440ec45
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.811809Z
+2011-02-08T13:45:47.000000Z
45a0f490d23fbb62bab17f142ba7e3a6
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.811809Z
+2011-02-08T13:45:47.000000Z
061b4ca6bf8ee79b149289ced48c0389
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.811809Z
+2011-02-08T13:45:47.000000Z
caf5ed93e20f9675e13260049b591bcb
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.811809Z
+2011-02-08T13:45:47.000000Z
d48da3c38e3e757d1649f48a25913284
2009-09-13T17:14:35.707881Z
2887
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
ba3376b21f9304e1bc6dd06e88fb031f
2009-09-13T17:14:35.707881Z
2887
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
7930dc88c66a78e10283af28694f9d75
2009-09-13T17:14:35.707881Z
2887
@@ -273,7 +273,7 @@
-2010-09-23T14:37:45.811809Z
+2011-02-08T13:45:47.000000Z
da88ee34b7ad92288156f6dc33bc8945
2009-09-13T17:14:35.707881Z
2887
@@ -307,7 +307,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
749dec42d5f8db283afd40fa09a7a323
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/engines/test/unit/test_testing/.svn/entries
--- a/vendor/plugins/engines/test/unit/test_testing/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/engines/test/unit/test_testing/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit/test_testing
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
55340a07100e4eea865c224b450561d8
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/gravatar/.svn/entries
--- a/vendor/plugins/gravatar/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/gravatar/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-24T12:48:29.643852Z
+2011-02-08T13:45:47.000000Z
dcfa5a7b3c1cc768b2c0e3ad1ab802d0
2010-09-10T03:09:02.311267Z
4072
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.819779Z
+2011-02-08T13:45:47.000000Z
3b03a1f4670e486bfc0a99ea42fcc661
2009-08-02T04:19:44.367555Z
2832
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.815811Z
+2011-02-08T13:45:47.000000Z
cd9b6943fc8fe58cdccef0b0215bf6bb
2009-08-02T04:19:44.367555Z
2832
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.819779Z
+2011-02-08T13:45:47.000000Z
7560c41dd1c4891e83f52d2855a6a4e9
2008-10-30T02:58:04.259131Z
1962
@@ -171,7 +171,7 @@
-2010-09-23T14:37:45.819779Z
+2011-02-08T13:45:47.000000Z
b718f27e16d77b36a24720b5b902328f
2008-10-30T02:58:04.259131Z
1962
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.819779Z
+2011-02-08T13:45:47.000000Z
e052390cb0624d4b81b7809e65db85f6
2009-08-02T04:19:44.367555Z
2832
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/gravatar/lib/.svn/entries
--- a/vendor/plugins/gravatar/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/gravatar/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.928934Z
+2011-02-08T13:45:47.000000Z
a25a3e98e0d582955ee8fd520f424273
2010-11-14T16:24:21.989522Z
4406
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/gravatar/spec/.svn/entries
--- a/vendor/plugins/gravatar/spec/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/gravatar/spec/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/spec
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-24T12:48:29.643852Z
+2011-02-08T13:45:47.000000Z
26b23e5e988b11435e121bf53624d934
2010-09-10T03:09:02.311267Z
4072
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/.svn/entries
--- a/vendor/plugins/open_id_authentication/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.823780Z
+2011-02-08T13:45:47.000000Z
b66b372df8374607d104228f41a06671
2009-02-11T19:06:45.087605Z
2438
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.831824Z
+2011-02-08T13:45:47.000000Z
22579abfc9dc6a4cf475150e407e9a17
2009-02-12T21:25:50.680468Z
2458
@@ -109,7 +109,7 @@
-2010-09-23T14:37:45.823780Z
+2011-02-08T13:45:47.000000Z
d23f4c2e6c00805d7172c76ad52ebe6f
2009-02-11T19:06:45.087605Z
2438
@@ -146,7 +146,7 @@
-2010-09-23T14:37:45.823780Z
+2011-02-08T13:45:47.000000Z
45eb3e296a3591fca629d0c8eab71e4c
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/generators/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.827780Z
+2011-02-08T13:45:47.000000Z
ee799e52b83b842fa2a879431195e9eb
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.827780Z
+2011-02-08T13:45:47.000000Z
352b0b17c079fdf355c028a9b990b3b7
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.831824Z
+2011-02-08T13:45:47.000000Z
f401bfd8b5d2dd3008d16bf79de8c1e4
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.831824Z
+2011-02-08T13:45:47.000000Z
512b6bc6321e15e12a9eb5ef10317b73
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/lib/.svn/entries
--- a/vendor/plugins/open_id_authentication/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.831824Z
+2011-02-08T13:45:47.000000Z
c72f1bd48e8c2dfe4e84ba232fc40030
2010-08-10T21:12:32.103531Z
3933
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries
--- a/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib/open_id_authentication
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
1effe2a3ab6ff2cf3a4ffc288222b114
2009-02-11T19:06:45.087605Z
2438
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
9ed2aea6a3f0e76f21a84bf5bdb1bebe
2009-02-11T19:06:45.087605Z
2438
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
4aa743638f54375c2f1f25e62fa50bf3
2009-02-11T19:06:45.087605Z
2438
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
d05c8725996156d4cc153a2fc0891db8
2009-02-11T19:06:45.087605Z
2438
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
6a6fdfddabbc9ae4b8c11f69bc653107
2009-02-11T19:06:45.087605Z
2438
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
42863e1d17d5af05e0e896d336def59c
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/tasks/.svn/entries
--- a/vendor/plugins/open_id_authentication/tasks/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/tasks/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/tasks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.835838Z
+2011-02-08T13:45:47.000000Z
54b595ee92e0adb364a9086340b2af51
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/open_id_authentication/test/.svn/entries
--- a/vendor/plugins/open_id_authentication/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/open_id_authentication/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.839834Z
+2011-02-08T13:45:47.000000Z
9448478c6f6c999b3dfae03f9661a7a9
2009-02-11T19:06:45.087605Z
2438
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.839834Z
+2011-02-08T13:45:47.000000Z
218b9c429fce5d50a6de37d10d4c626a
2009-02-11T19:06:45.087605Z
2438
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.839834Z
+2011-02-08T13:45:47.000000Z
3ffcd8ee621212d3a963257c35cf565c
2009-02-11T19:06:45.087605Z
2438
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.839834Z
+2011-02-08T13:45:47.000000Z
26175162cebaa3962614100cac9726fc
2009-02-11T19:06:45.087605Z
2438
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.839834Z
+2011-02-08T13:45:47.000000Z
c3e483ae649f9324f093075331c26ed1
2009-02-11T19:06:45.087605Z
2438
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/prepend_engine_views/.svn/entries
--- a/vendor/plugins/prepend_engine_views/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/prepend_engine_views/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/prepend_engine_views
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.843778Z
+2011-02-08T13:45:47.000000Z
720c397a2f5ed49f4436f5d9cbe0b5ec
2009-09-13T17:14:35.707881Z
2887
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/rfpdf/.svn/entries
--- a/vendor/plugins/rfpdf/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/rfpdf/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.843778Z
+2011-02-08T13:45:47.000000Z
1da9fbada6119233134b3aab6c7d0edf
2008-07-04T17:58:14.743502Z
1623
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.843778Z
+2011-02-08T13:45:47.000000Z
275a3dc6407eaf7c40f1d8f4e6b08803
2006-11-21T18:34:04.275680Z
49
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.843778Z
+2011-02-08T13:45:47.000000Z
40cf182dab06e3de067375de5bbab322
2006-11-21T18:34:04.275680Z
49
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.843778Z
+2011-02-08T13:45:47.000000Z
d58199e83ebcaa5d234764407c238bb2
2006-11-21T18:34:04.275680Z
49
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/rfpdf/lib/.svn/entries
--- a/vendor/plugins/rfpdf/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/rfpdf/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.847779Z
+2011-02-08T13:45:47.000000Z
9667df0ee17c3893ec4025f214d990ee
2006-11-21T18:34:04.275680Z
49
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/rfpdf/lib/rfpdf/.svn/entries
--- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib/rfpdf
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.851779Z
+2011-02-08T13:45:47.000000Z
ddaf6868455af432aac221e53aadc10a
2008-06-07T08:39:06.277997Z
1497
@@ -66,7 +66,7 @@
-2011-01-13T14:09:38.000000Z
+2011-02-08T13:45:47.000000Z
a2f702c9c8177f01521aa9eb5d6f9313
2011-01-01T11:45:12.617336Z
4602
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.855835Z
+2011-02-08T13:45:47.000000Z
61d6e8e3bc2a549b1adf12c8e5148019
2010-02-07T12:30:44.486359Z
3389
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.855835Z
+2011-02-08T13:45:47.000000Z
f504607d615e4d100eb506daf3dfe038
2006-11-21T18:34:04.275680Z
49
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.855835Z
+2011-02-08T13:45:47.000000Z
267f469d753d389beda7bb8d39ef5e79
2007-02-18T10:33:22.252239Z
248
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.851779Z
+2011-02-08T13:45:47.000000Z
8b971319c65229a7075520cf5ce0fb84
2006-11-21T18:34:04.275680Z
49
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.851779Z
+2011-02-08T13:45:47.000000Z
c11f99560b9b2e12cf9c679f8ef11c37
2006-11-21T18:34:04.275680Z
49
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.851779Z
+2011-02-08T13:45:47.000000Z
48cd43d67257151aebb2e0aeee6f4cbf
2007-03-01T19:49:04.518842Z
287
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.855835Z
+2011-02-08T13:45:47.000000Z
9bdec08cb98e4413cfb9c39877f3734d
2008-07-04T17:58:14.743502Z
1623
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.851779Z
+2011-02-08T13:45:47.000000Z
e759935ac5ac9027073e9a2f3543b231
2006-11-21T18:34:04.275680Z
49
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/rfpdf/test/.svn/entries
--- a/vendor/plugins/rfpdf/test/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/rfpdf/test/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.855835Z
+2011-02-08T13:45:47.000000Z
65b672e3025a6dc9ed22dc2cb1356061
2006-11-21T18:34:04.275680Z
49
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.859799Z
+2011-02-08T13:45:47.000000Z
100efd8d000514effa3709713ab85acb
2007-01-02T08:48:40.736310Z
134
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.859799Z
+2011-02-08T13:45:47.000000Z
e951c712b462c2e6e01f12474d4a23c2
2007-01-02T08:48:40.736310Z
134
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.859799Z
+2011-02-08T13:45:47.000000Z
ff6d66271209d878dbe3742d8061151e
2007-01-02T08:48:40.736310Z
134
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.859799Z
+2011-02-08T13:45:47.000000Z
365281a5053e3232092adff0636600b3
2007-01-02T08:48:40.736310Z
134
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib
http://redmine.rubyforge.org/svn
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
bcd7fbc67923f3cc1491ca301a5c39cb
2007-01-02T08:48:40.736310Z
134
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.863819Z
+2011-02-08T13:45:47.000000Z
47d5a9c76d96071a1de184dd49c09194
2007-01-02T08:48:40.736310Z
134
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.863819Z
+2011-02-08T13:45:47.000000Z
40f7f978006674f2b916ce341e5ad684
2008-02-15T17:22:21.293943Z
1148
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
be6b5dd522a4532ceeda4ab5bddcb53e
2007-01-02T08:48:40.736310Z
134
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
dce002e156bf793b6219b50e5d4ede3a
2007-01-02T08:48:40.736310Z
134
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
39c1aa4a3ff36f2769b6855a4b56faa7
2007-02-18T11:45:55.832750Z
252
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
7acdae44250f47d4b177c0367865d5f7
2007-01-02T08:48:40.736310Z
134
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.867778Z
+2011-02-08T13:45:47.000000Z
7af528c0721148b904f82e64e523ee74
2007-01-02T08:48:40.736310Z
134
diff -r 07fa8a8b56a8 -r 0579821a129a vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Wed Jan 19 15:04:22 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Tue Feb 08 13:51:46 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4802
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/tests
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
d32a0d5d48658b30de358974dc588b6a
2007-01-02T08:48:40.736310Z
134
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
9a4a1de4982131870bcc016b3062b563
2007-01-02T08:48:40.736310Z
134
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
07fadb83b55212328945590db904016b
2007-01-02T08:48:40.736310Z
134
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
f60b9471933a7a534097d3fd1fe38a18
2007-01-02T08:48:40.736310Z
134
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
98e4a39b73665ed7c274457213d8e3d5
2007-01-02T08:48:40.736310Z
134
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
a6eed10e89ba06f4ffa2da720bb1752f
2007-01-02T08:48:40.736310Z
134
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.871778Z
+2011-02-08T13:45:47.000000Z
3dcbc8b4c3717fa97211a1d75a7fab4f
2007-01-02T08:48:40.736310Z
134
| |