# HG changeset patch # User Chris Cannam # Date 1297173106 0 # Node ID 0579821a129a1155fdb4b635e19326324837c27a # Parent 07fa8a8b56a8c37e2b6f2d266444552f4dc8b1f5 Update to Redmine trunk rev 4802 diff -r 07fa8a8b56a8 -r 0579821a129a .gitignore --- a/.gitignore Wed Jan 19 15:04:22 2011 +0000 +++ b/.gitignore Tue Feb 08 13:51:46 2011 +0000 @@ -1,4 +1,5 @@ /config/additional_environment.rb +/config/configuration.yml /config/database.yml /config/email.yml /config/initializers/session_store.rb diff -r 07fa8a8b56a8 -r 0579821a129a .hgignore --- a/.hgignore Wed Jan 19 15:04:22 2011 +0000 +++ b/.hgignore Tue Feb 08 13:51:46 2011 +0000 @@ -1,6 +1,7 @@ syntax: glob config/additional_environment.rb +config/configuration.yml config/database.yml config/email.yml config/initializers/session_store.rb @@ -13,7 +14,6 @@ log/mongrel_debug public/dispatch.* public/plugin_assets -tmp/* tmp/cache/* tmp/sessions/* tmp/sockets/* diff -r 07fa8a8b56a8 -r 0579821a129a .svn/all-wcprops --- a/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 24 -/svn/!svn/ver/4731/trunk +/svn/!svn/ver/4802/trunk END .hgignore K 25 svn:wc:ra_dav:version-url V 34 -/svn/!svn/ver/4606/trunk/.hgignore +/svn/!svn/ver/4787/trunk/.hgignore END Rakefile K 25 @@ -25,5 +25,5 @@ K 25 svn:wc:ra_dav:version-url V 35 -/svn/!svn/ver/3768/trunk/.gitignore +/svn/!svn/ver/4787/trunk/.gitignore END diff -r 07fa8a8b56a8 -r 0579821a129a .svn/dir-prop-base --- a/.svn/dir-prop-base Wed Jan 19 15:04:22 2011 +0000 +++ b/.svn/dir-prop-base Tue Feb 08 13:51:46 2011 +0000 @@ -4,7 +4,9 @@ e93f8b46-1217-0410-a6f0-8f06a7374b81:/trunk:1751 K 10 svn:ignore -V 9 +V 28 coverage +.project +.loadpath END diff -r 07fa8a8b56a8 -r 0579821a129a .svn/entries --- a/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/.svn/entries Tue Feb 08 13:51:46 2011 +0000 @@ -1,15 +1,15 @@ 10 dir -4732 +4802 http://redmine.rubyforge.org/svn/trunk http://redmine.rubyforge.org/svn -2011-01-16T16:36:58.753919Z -4731 -jplang +2011-02-07T10:26:15.436891Z +4802 +tmaruyama has-props @@ -35,10 +35,10 @@ -2011-01-13T14:11:09.000000Z -0f5961e6af62737d2a1f5e3ad47f8c89 -2011-01-01T21:07:43.412022Z -4606 +2011-02-08T13:49:53.000000Z +f7e1eefb3dfe776e3db86602594d9397 +2011-02-01T13:48:56.769696Z +4787 tmaruyama @@ -61,7 +61,7 @@ -317 +342 app dir @@ -75,7 +75,7 @@ -2010-09-23T14:37:44.367737Z +2011-02-08T13:45:45.000000Z bbf560d44f092d22a30d3a562436ad8c 2006-12-05T20:45:04.842118Z 67 @@ -109,7 +109,7 @@ -2010-09-23T14:37:44.367737Z +2011-02-08T13:45:45.000000Z 67c937b1f1d0603e69f322de34bbfe04 2010-07-18T15:49:24.341728Z 3849 @@ -167,11 +167,11 @@ -2010-09-23T14:37:44.363818Z -201a803b90bbd2a1624c4ce1dd260098 -2010-06-09T22:01:21.132822Z -3768 -edavis10 +2011-02-08T13:49:53.000000Z +7dcc6fd20b6e4c018dea1a2b9253aa46 +2011-02-01T13:48:56.769696Z +4787 +tmaruyama @@ -193,7 +193,7 @@ -322 +348 lib dir diff -r 07fa8a8b56a8 -r 0579821a129a .svn/text-base/.gitignore.svn-base --- a/.svn/text-base/.gitignore.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/.svn/text-base/.gitignore.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -1,4 +1,5 @@ /config/additional_environment.rb +/config/configuration.yml /config/database.yml /config/email.yml /config/initializers/session_store.rb diff -r 07fa8a8b56a8 -r 0579821a129a .svn/text-base/.hgignore.svn-base --- a/.svn/text-base/.hgignore.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/.svn/text-base/.hgignore.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -1,6 +1,7 @@ syntax: glob config/additional_environment.rb +config/configuration.yml config/database.yml config/email.yml config/initializers/session_store.rb diff -r 07fa8a8b56a8 -r 0579821a129a app/.svn/all-wcprops --- a/app/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 28 -/svn/!svn/ver/4731/trunk/app +/svn/!svn/ver/4802/trunk/app END diff -r 07fa8a8b56a8 -r 0579821a129a app/.svn/entries --- a/app/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/.svn/entries Tue Feb 08 13:51:46 2011 +0000 @@ -1,15 +1,15 @@ 10 dir -4732 +4802 http://redmine.rubyforge.org/svn/trunk/app http://redmine.rubyforge.org/svn -2011-01-16T16:36:58.753919Z -4731 -jplang +2011-02-07T10:26:15.436891Z +4802 +tmaruyama diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/all-wcprops --- a/app/controllers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 40 -/svn/!svn/ver/4729/trunk/app/controllers +/svn/!svn/ver/4764/trunk/app/controllers END issues_controller.rb K 25 svn:wc:ra_dav:version-url V 61 -/svn/!svn/ver/4652/trunk/app/controllers/issues_controller.rb +/svn/!svn/ver/4741/trunk/app/controllers/issues_controller.rb END queries_controller.rb K 25 @@ -99,11 +99,11 @@ V 75 /svn/!svn/ver/4075/trunk/app/controllers/project_enumerations_controller.rb END -custom_fields_controller.rb +settings_controller.rb K 25 svn:wc:ra_dav:version-url -V 68 -/svn/!svn/ver/3627/trunk/app/controllers/custom_fields_controller.rb +V 63 +/svn/!svn/ver/4432/trunk/app/controllers/settings_controller.rb END timelog_controller.rb K 25 @@ -111,11 +111,17 @@ V 62 /svn/!svn/ver/4511/trunk/app/controllers/timelog_controller.rb END -settings_controller.rb +custom_fields_controller.rb K 25 svn:wc:ra_dav:version-url -V 63 -/svn/!svn/ver/4432/trunk/app/controllers/settings_controller.rb +V 68 +/svn/!svn/ver/3627/trunk/app/controllers/custom_fields_controller.rb +END +users_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4729/trunk/app/controllers/users_controller.rb END issue_moves_controller.rb K 25 @@ -123,12 +129,6 @@ V 66 /svn/!svn/ver/4292/trunk/app/controllers/issue_moves_controller.rb END -users_controller.rb -K 25 -svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/4729/trunk/app/controllers/users_controller.rb -END files_controller.rb K 25 svn:wc:ra_dav:version-url @@ -141,11 +141,11 @@ V 66 /svn/!svn/ver/4573/trunk/app/controllers/application_controller.rb END -previews_controller.rb +ldap_auth_sources_controller.rb K 25 svn:wc:ra_dav:version-url -V 63 -/svn/!svn/ver/4174/trunk/app/controllers/previews_controller.rb +V 72 +/svn/!svn/ver/3744/trunk/app/controllers/ldap_auth_sources_controller.rb END auth_sources_controller.rb K 25 @@ -153,11 +153,11 @@ V 67 /svn/!svn/ver/3744/trunk/app/controllers/auth_sources_controller.rb END -ldap_auth_sources_controller.rb +previews_controller.rb K 25 svn:wc:ra_dav:version-url -V 72 -/svn/!svn/ver/3744/trunk/app/controllers/ldap_auth_sources_controller.rb +V 63 +/svn/!svn/ver/4174/trunk/app/controllers/previews_controller.rb END search_controller.rb K 25 @@ -171,18 +171,18 @@ V 63 /svn/!svn/ver/3528/trunk/app/controllers/messages_controller.rb END +issue_relations_controller.rb +K 25 +svn:wc:ra_dav:version-url +V 70 +/svn/!svn/ver/4764/trunk/app/controllers/issue_relations_controller.rb +END versions_controller.rb K 25 svn:wc:ra_dav:version-url V 63 /svn/!svn/ver/4354/trunk/app/controllers/versions_controller.rb END -issue_relations_controller.rb -K 25 -svn:wc:ra_dav:version-url -V 70 -/svn/!svn/ver/3591/trunk/app/controllers/issue_relations_controller.rb -END boards_controller.rb K 25 svn:wc:ra_dav:version-url @@ -235,7 +235,7 @@ K 25 svn:wc:ra_dav:version-url V 67 -/svn/!svn/ver/4711/trunk/app/controllers/repositories_controller.rb +/svn/!svn/ver/4733/trunk/app/controllers/repositories_controller.rb END admin_controller.rb K 25 @@ -253,7 +253,7 @@ K 25 svn:wc:ra_dav:version-url V 62 -/svn/!svn/ver/3906/trunk/app/controllers/account_controller.rb +/svn/!svn/ver/4757/trunk/app/controllers/account_controller.rb END calendars_controller.rb K 25 diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/entries --- a/app/controllers/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.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/controllers http://redmine.rubyforge.org/svn -2011-01-16T15:23:11.666065Z -4729 +2011-01-27T21:38:47.430923Z +4764 jplang @@ -32,11 +32,11 @@ -2011-01-13T14:09:10.000000Z -2166617cc44ef66371dcac04c09755c2 -2011-01-08T00:19:51.192586Z -4652 -tmaruyama +2011-02-08T13:49:51.000000Z +b2f39d4816a34c8fdbe451324ff298e4 +2011-01-22T13:28:20.816262Z +4741 +jplang has-props @@ -58,7 +58,7 @@ -12149 +12253 queries_controller.rb file @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 7ad6758cfd160c4b6ef6d71be06e087c 2010-04-19T15:08:28.751734Z 3684 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 7a73aba15fcd447531d1552de01706d9 2009-12-20T09:44:28.044710Z 3201 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z 612f3e7497e14c728934e83fbe5778c4 2009-12-20T09:45:04.782778Z 3202 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 3ee494bd8196306eab8913bd462b44da 2010-06-20T16:08:15.578906Z 3798 @@ -202,7 +202,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z edbdb443ff7cc8f299f7772b3532eca1 2010-12-12T16:06:43.892596Z 4503 @@ -236,7 +236,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 40ea055e0f9f9aa83680751fdab5a0a5 2010-12-12T14:25:23.262992Z 4497 @@ -270,7 +270,7 @@ -2010-09-24T12:48:26.271687Z +2011-02-08T13:45:45.000000Z c2289eb9b654117a101c072955d4c705 2010-09-23T15:20:19.085385Z 4172 @@ -304,7 +304,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z 20e245fa61dc0dcb2f105a8f0e6af98c 2010-06-19T19:51:43.174421Z 3784 @@ -338,7 +338,7 @@ -2010-09-23T14:37:44.403745Z +2011-02-08T13:45:45.000000Z 95ad1acf7766861a4dbd0aebd9c847de 2009-10-21T03:21:31.657956Z 2941 @@ -372,7 +372,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 596c3ab10f8cf4687f6d8b163e7a2243 2010-12-29T19:55:52.079810Z 4580 @@ -406,7 +406,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z bec68711fe4573cf428799354ea68f5d 2010-12-18T17:11:41.680297Z 4535 @@ -440,7 +440,7 @@ -2010-09-23T14:37:44.403745Z +2011-02-08T13:45:45.000000Z 5052c701a12ad27e88950dd4a745b0f8 2010-03-04T05:33:45.236699Z 3536 @@ -474,7 +474,7 @@ -2010-11-19T13:04:46.996826Z +2011-02-08T13:45:45.000000Z dadcb57d89dc3c90c5fa099b143c07f8 2010-10-05T16:07:17.015270Z 4232 @@ -508,7 +508,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 8f7e6e7308912a6169a700b0c88174a0 2010-04-27T16:43:52.584075Z 3692 @@ -542,7 +542,7 @@ -2010-09-24T12:48:26.271687Z +2011-02-08T13:45:45.000000Z 828b364ba2850ceddb3caa566bf10124 2010-09-10T16:00:49.687515Z 4075 @@ -576,7 +576,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 98c4c9f33f038160a44752d229926c32 2010-11-27T14:06:11.754120Z 4432 @@ -610,7 +610,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z 00272455ac5be11da48f92c4a443c538 2010-04-03T11:54:24.331654Z 3627 @@ -644,7 +644,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 3e6698f208a263105c7b4a59c60b26b3 2010-12-14T18:29:24.891563Z 4511 @@ -678,7 +678,7 @@ -2011-01-19T15:03:32.000000Z +2011-02-08T13:45:45.000000Z 7860374d98cda03916d9b06d9ec8d370 2011-01-16T15:23:11.666065Z 4729 @@ -712,7 +712,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z cacd6ffe0ce299e2ede9d45b7ef8af42 2010-10-25T18:44:46.868009Z 4292 @@ -746,7 +746,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z f0246e8f8dde5ea7b93e4dc2162181fc 2010-09-26T08:07:41.604064Z 4177 @@ -780,7 +780,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 218c497f1c4c6d7b41cdac214e595156 2010-12-23T14:49:14.339855Z 4573 @@ -814,7 +814,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z 5f7b9cb2e9c8a60db58ea0833cf481c5 2010-05-23T03:16:31.304135Z 3744 @@ -848,7 +848,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z 237280766d09418161536250d514a7bf 2010-05-23T03:16:31.304135Z 3744 @@ -882,7 +882,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z c5ae4fae18159e70fd81c2487bb1daa1 2010-09-24T16:26:46.819682Z 4174 @@ -916,7 +916,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 0015154998f830227b636ee423f007f3 2010-06-20T20:01:32.722003Z 3806 @@ -950,7 +950,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z f3f4378ec15e1401ead0dcac4e9cb059 2010-03-03T17:05:00.967826Z 3528 @@ -984,11 +984,11 @@ -2010-09-23T14:37:44.395735Z -c57448661f2eaab81c76f23d7f51e0ab -2010-03-16T15:17:47.586688Z -3591 -edavis10 +2011-02-08T13:49:51.000000Z +8c5249f85056c74e0ab06b5dfa9fed72 +2011-01-27T21:38:47.430923Z +4764 +jplang has-props @@ -1010,7 +1010,7 @@ -2220 +2450 versions_controller.rb file @@ -1018,7 +1018,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z a98fb262a20669600a85c0f72202c5e6 2010-11-01T13:13:32.982466Z 4354 @@ -1052,7 +1052,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z 52638c82da929081099076d5aa0f9212 2010-08-16T23:39:27.396462Z 3942 @@ -1086,7 +1086,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z 21c0e5d894d1429ac39f3253ae021594 2010-01-05T18:16:03.565347Z 3281 @@ -1120,7 +1120,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z cb358f888a6a92cc99bef83af92cd766 2010-12-12T17:00:52.100205Z 4505 @@ -1154,7 +1154,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z a5e793eb94e501be4c1a39acc65cc568 2010-04-03T11:54:24.331654Z 3627 @@ -1188,7 +1188,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z 77209ec52ddcefafb0bfbb76195167ec 2010-08-10T22:37:00.826946Z 3934 @@ -1222,7 +1222,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z f0fdda9126d71c0b2d4638de50ab1097 2010-02-12T19:15:39.389877Z 3416 @@ -1256,7 +1256,7 @@ -2010-09-23T14:37:44.399747Z +2011-02-08T13:45:45.000000Z 28f2e44219870c62c9844354b78af6e1 2010-04-03T11:54:24.331654Z 3627 @@ -1290,7 +1290,7 @@ -2010-09-23T14:37:44.403745Z +2011-02-08T13:45:45.000000Z 7ae79a9d22586240a01af73834b718a3 2010-02-05T16:57:02.094258Z 3370 @@ -1324,11 +1324,11 @@ -2011-01-19T15:03:32.000000Z -9c3c92ca908cc2101e23ecbbc6f723c0 -2011-01-14T20:24:03.783512Z -4711 -jplang +2011-02-08T13:49:51.000000Z +4333ec6901a78a0b2a45c3713372ab84 +2011-01-21T13:22:08.161817Z +4733 +tmaruyama has-props @@ -1350,7 +1350,7 @@ -11263 +11435 admin_controller.rb file @@ -1358,7 +1358,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z ed65a11326fe54914ba3a750a2b6f943 2009-12-19T20:33:24.113306Z 3200 @@ -1392,7 +1392,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z c07d79c1bd100dd8972ea408c4fe549f 2011-01-06T20:57:17.003359Z 4647 @@ -1426,11 +1426,11 @@ -2010-09-23T14:37:44.391741Z -d0ff6be1c749b765d9d64bef64c27537 -2010-08-03T15:26:50.842290Z -3906 -edavis10 +2011-02-08T13:49:51.000000Z +7b162cad903bb22948f7040a48509256 +2011-01-23T11:40:07.678287Z +4757 +jplang has-props @@ -1452,7 +1452,7 @@ -8962 +9350 calendars_controller.rb file @@ -1460,7 +1460,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z 0be20cab6d5ea49f428a90cf3afef3e3 2010-11-07T22:38:10.728638Z 4388 @@ -1494,7 +1494,7 @@ -2010-09-23T14:37:44.395735Z +2011-02-08T13:45:45.000000Z 119ceb4a27aa554d03867f46cb142d0e 2010-03-17T15:41:58.766740Z 3597 @@ -1528,7 +1528,7 @@ -2010-11-19T13:04:47.000764Z +2011-02-08T13:45:45.000000Z 81dbee1745da99b9ea499f3fbe1d3944 2010-11-07T22:38:10.728638Z 4388 @@ -1562,7 +1562,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z c2c68bf5fa3ed22a8f55c8414d1efce9 2010-03-17T15:41:58.766740Z 3597 @@ -1596,7 +1596,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z ccc57886f63cb0efb0149b601dd2ac43 2010-11-27T10:34:44.408431Z 4429 @@ -1630,7 +1630,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z ad33818a03b408419be4e616e8c88b5c 2010-12-29T19:37:42.740543Z 4579 @@ -1664,7 +1664,7 @@ -2010-09-23T14:37:44.391741Z +2011-02-08T13:45:45.000000Z 1caaedc7bb0a3085878dc94446c70ab0 2010-03-02T20:03:09.514061Z 3524 diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/text-base/account_controller.rb.svn-base --- a/app/controllers/.svn/text-base/account_controller.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.svn/text-base/account_controller.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -203,12 +203,24 @@ self.logged_user = user # generate a key and set cookie if autologin if params[:autologin] && Setting.autologin? - token = Token.create(:user => user, :action => 'autologin') - cookies[:autologin] = { :value => token.value, :expires => 1.year.from_now } + set_autologin_cookie(user) end call_hook(:controller_account_success_authentication_after, {:user => user }) redirect_back_or_default :controller => 'my', :action => 'page' end + + def set_autologin_cookie(user) + token = Token.create(:user => user, :action => 'autologin') + cookie_name = Redmine::Configuration['autologin_cookie_name'] || 'autologin' + cookie_options = { + :value => token.value, + :expires => 1.year.from_now, + :path => (Redmine::Configuration['autologin_cookie_path'] || '/'), + :secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false), + :httponly => true + } + cookies[cookie_name] = cookie_options + end # Onthefly creation failed, display the registration form to fill/fix attributes def onthefly_creation_failed(user, auth_source_options = { }) diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/text-base/issue_relations_controller.rb.svn-base --- a/app/controllers/.svn/text-base/issue_relations_controller.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.svn/text-base/issue_relations_controller.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -28,6 +28,7 @@ respond_to do |format| format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } format.js do + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } render :update do |page| page.replace_html "relations", :partial => 'issues/relations' if @relation.errors.empty? @@ -47,7 +48,10 @@ end respond_to do |format| format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } - format.js { render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} } + format.js { + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } + render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} + } end end diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/text-base/issues_controller.rb.svn-base --- a/app/controllers/.svn/text-base/issues_controller.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.svn/text-base/issues_controller.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -108,6 +108,7 @@ @journals.reverse! if User.current.wants_comments_in_reverse_order? @changesets = @issue.changesets.visible.all @changesets.reverse! if User.current.wants_comments_in_reverse_order? + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @edit_allowed = User.current.allowed_to?(:edit_issues, @project) @priorities = IssuePriority.all diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/.svn/text-base/repositories_controller.rb.svn-base --- a/app/controllers/.svn/text-base/repositories_controller.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/.svn/text-base/repositories_controller.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -94,6 +94,7 @@ (show_error_not_found; return) unless @entry @changesets = @repository.latest_changesets(@path, @rev, Setting.repository_log_display_limit.to_i) @properties = @repository.properties(@path, @rev) + @changeset = @repository.find_changeset_by_name(@rev) end def revisions @@ -127,17 +128,19 @@ else # Prevent empty lines when displaying a file with Windows style eol @content.gsub!("\r\n", "\n") + @changeset = @repository.find_changeset_by_name(@rev) end end - + def annotate @entry = @repository.entry(@path, @rev) (show_error_not_found; return) unless @entry @annotate = @repository.scm.annotate(@path, @rev) (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty? + @changeset = @repository.find_changeset_by_name(@rev) end - + def revision raise ChangesetNotFound if @rev.blank? @changeset = @repository.find_changeset_by_name(@rev) diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/account_controller.rb --- a/app/controllers/account_controller.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/account_controller.rb Tue Feb 08 13:51:46 2011 +0000 @@ -203,12 +203,24 @@ self.logged_user = user # generate a key and set cookie if autologin if params[:autologin] && Setting.autologin? - token = Token.create(:user => user, :action => 'autologin') - cookies[:autologin] = { :value => token.value, :expires => 1.year.from_now } + set_autologin_cookie(user) end call_hook(:controller_account_success_authentication_after, {:user => user }) redirect_back_or_default :controller => 'my', :action => 'page' end + + def set_autologin_cookie(user) + token = Token.create(:user => user, :action => 'autologin') + cookie_name = Redmine::Configuration['autologin_cookie_name'] || 'autologin' + cookie_options = { + :value => token.value, + :expires => 1.year.from_now, + :path => (Redmine::Configuration['autologin_cookie_path'] || '/'), + :secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false), + :httponly => true + } + cookies[cookie_name] = cookie_options + end # Onthefly creation failed, display the registration form to fill/fix attributes def onthefly_creation_failed(user, auth_source_options = { }) diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/issue_relations_controller.rb --- a/app/controllers/issue_relations_controller.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/issue_relations_controller.rb Tue Feb 08 13:51:46 2011 +0000 @@ -28,6 +28,7 @@ respond_to do |format| format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } format.js do + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } render :update do |page| page.replace_html "relations", :partial => 'issues/relations' if @relation.errors.empty? @@ -47,7 +48,10 @@ end respond_to do |format| format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue } - format.js { render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} } + format.js { + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } + render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} + } end end diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/issues_controller.rb --- a/app/controllers/issues_controller.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/issues_controller.rb Tue Feb 08 13:51:46 2011 +0000 @@ -108,6 +108,7 @@ @journals.reverse! if User.current.wants_comments_in_reverse_order? @changesets = @issue.changesets.visible.all @changesets.reverse! if User.current.wants_comments_in_reverse_order? + @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? } @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @edit_allowed = User.current.allowed_to?(:edit_issues, @project) @priorities = IssuePriority.all diff -r 07fa8a8b56a8 -r 0579821a129a app/controllers/repositories_controller.rb --- a/app/controllers/repositories_controller.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/controllers/repositories_controller.rb Tue Feb 08 13:51:46 2011 +0000 @@ -94,6 +94,7 @@ (show_error_not_found; return) unless @entry @changesets = @repository.latest_changesets(@path, @rev, Setting.repository_log_display_limit.to_i) @properties = @repository.properties(@path, @rev) + @changeset = @repository.find_changeset_by_name(@rev) end def revisions @@ -127,17 +128,19 @@ else # Prevent empty lines when displaying a file with Windows style eol @content.gsub!("\r\n", "\n") + @changeset = @repository.find_changeset_by_name(@rev) end end - + def annotate @entry = @repository.entry(@path, @rev) (show_error_not_found; return) unless @entry @annotate = @repository.scm.annotate(@path, @rev) (render_error l(:error_scm_annotate); return) if @annotate.nil? || @annotate.empty? + @changeset = @repository.find_changeset_by_name(@rev) end - + def revision raise ChangesetNotFound if @rev.blank? @changeset = @repository.find_changeset_by_name(@rev) diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/.svn/all-wcprops --- a/app/helpers/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/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 36 -/svn/!svn/ver/4694/trunk/app/helpers +/svn/!svn/ver/4760/trunk/app/helpers END trackers_helper.rb K 25 @@ -93,18 +93,18 @@ V 53 /svn/!svn/ver/4465/trunk/app/helpers/issues_helper.rb END +queries_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 54 +/svn/!svn/ver/4387/trunk/app/helpers/queries_helper.rb +END gantt_helper.rb K 25 svn:wc:ra_dav:version-url V 52 /svn/!svn/ver/4283/trunk/app/helpers/gantt_helper.rb END -queries_helper.rb -K 25 -svn:wc:ra_dav:version-url -V 54 -/svn/!svn/ver/4387/trunk/app/helpers/queries_helper.rb -END mail_handler_helper.rb K 25 svn:wc:ra_dav:version-url @@ -135,29 +135,29 @@ V 53 /svn/!svn/ver/333/trunk/app/helpers/welcome_helper.rb END +journals_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/!svn/ver/4062/trunk/app/helpers/journals_helper.rb +END workflows_helper.rb K 25 svn:wc:ra_dav:version-url V 56 /svn/!svn/ver/1914/trunk/app/helpers/workflows_helper.rb END -journals_helper.rb -K 25 -svn:wc:ra_dav:version-url -V 55 -/svn/!svn/ver/4062/trunk/app/helpers/journals_helper.rb -END reports_helper.rb K 25 svn:wc:ra_dav:version-url V 53 /svn/!svn/ver/629/trunk/app/helpers/reports_helper.rb END -custom_fields_helper.rb +timelog_helper.rb K 25 svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/4480/trunk/app/helpers/custom_fields_helper.rb +V 54 +/svn/!svn/ver/3708/trunk/app/helpers/timelog_helper.rb END settings_helper.rb K 25 @@ -165,11 +165,17 @@ V 55 /svn/!svn/ver/4222/trunk/app/helpers/settings_helper.rb END -timelog_helper.rb +custom_fields_helper.rb K 25 svn:wc:ra_dav:version-url -V 54 -/svn/!svn/ver/3708/trunk/app/helpers/timelog_helper.rb +V 60 +/svn/!svn/ver/4480/trunk/app/helpers/custom_fields_helper.rb +END +issue_moves_helper.rb +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/!svn/ver/3936/trunk/app/helpers/issue_moves_helper.rb END users_helper.rb K 25 @@ -177,17 +183,11 @@ V 52 /svn/!svn/ver/4497/trunk/app/helpers/users_helper.rb END -issue_moves_helper.rb -K 25 -svn:wc:ra_dav:version-url -V 58 -/svn/!svn/ver/3936/trunk/app/helpers/issue_moves_helper.rb -END application_helper.rb K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/4694/trunk/app/helpers/application_helper.rb +/svn/!svn/ver/4760/trunk/app/helpers/application_helper.rb END auth_sources_helper.rb K 25 @@ -205,7 +205,7 @@ K 25 svn:wc:ra_dav:version-url V 55 -/svn/!svn/ver/3373/trunk/app/helpers/messages_helper.rb +/svn/!svn/ver/4760/trunk/app/helpers/messages_helper.rb END versions_helper.rb K 25 diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/.svn/entries --- a/app/helpers/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/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/app/helpers http://redmine.rubyforge.org/svn -2011-01-11T16:02:36.869666Z -4694 -tmaruyama +2011-01-23T17:02:10.030897Z +4760 +jplang @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z e1b19c2c81df384b2026001d1d9605fd 2007-03-12T17:59:02.654744Z 333 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z ab0af291fb143223852a6edddc64b74b 2009-09-12T08:36:46.650954Z 2869 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z 0cd3093356b7034ee950ca327fc7aabc 2007-03-12T17:59:02.654744Z 333 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 69869e026dc6cbacc618214e4bb13b1b 2007-03-12T17:59:02.654744Z 333 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 491ead5828edb57adcd7333943656c94 2010-03-27T16:55:20.312262Z 3618 @@ -202,7 +202,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z ec30c91fbf601169b281a5cd859df2ab 2011-01-02T09:45:05.291687Z 4613 @@ -236,7 +236,7 @@ -2010-09-24T12:48:25.903794Z +2011-02-08T13:45:45.000000Z 258ebc9ad13b3111585e5118ec607d1b 2010-09-10T23:07:10.817821Z 4080 @@ -270,7 +270,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z 19efbd2b30f44f233d5140437e2707a0 2010-08-08T07:07:20.961363Z 3924 @@ -304,7 +304,7 @@ -2010-09-23T14:37:44.423776Z +2011-02-08T13:45:45.000000Z 42d20ee00a3c45e3411634dbb09e2447 2007-03-12T17:59:02.654744Z 333 @@ -338,7 +338,7 @@ -2010-09-24T12:48:25.903794Z +2011-02-08T13:45:45.000000Z c8780c65337211f34097d74a8c3c9f6e 2010-08-26T16:37:26.575205Z 4046 @@ -372,7 +372,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z 1257aafe6669c839ab46dac2b2732ae0 2007-03-12T17:59:02.654744Z 333 @@ -406,7 +406,7 @@ -2010-09-23T14:37:44.423776Z +2011-02-08T13:45:45.000000Z ceb0fce7a4c271df3ae182c29caf9c03 2007-03-12T17:59:02.654744Z 333 @@ -440,7 +440,7 @@ -2010-11-19T13:04:46.900732Z +2011-02-08T13:45:45.000000Z 3e6762604b5e9a201b7a7bb2edc1f78f 2010-11-06T14:30:32.528294Z 4375 @@ -474,7 +474,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z fc5ec20dd0ca3ce1d954b219417eff70 2007-03-12T17:59:02.654744Z 333 @@ -508,7 +508,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 5bc8f95d2852e1136e9034fe21aaa2fb 2010-12-04T13:02:14.466576Z 4465 @@ -542,7 +542,7 @@ -2010-11-19T13:04:46.900732Z +2011-02-08T13:45:45.000000Z 6b997d023cc081b101be1949eb18f893 2010-11-07T15:38:51.908839Z 4387 @@ -576,7 +576,7 @@ -2010-11-19T13:04:46.900732Z +2011-02-08T13:45:45.000000Z dfac5226f31c3c232d7dcc9416172071 2010-10-23T09:08:55.877887Z 4283 @@ -610,7 +610,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z c79faf6237abac40fabce0eacbfbb4cb 2008-06-25T19:25:28.386590Z 1584 @@ -644,7 +644,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z fc71d3a83fe0178e0c6d9519c7a62dde 2010-03-13T17:45:41.194736Z 3579 @@ -678,7 +678,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z d7134d76eff99aef107d8930903b10e0 2007-03-12T17:59:02.654744Z 333 @@ -712,7 +712,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z cc94b2fd5c6a87acac13bbe6e91bd39a 2007-03-12T17:59:02.654744Z 333 @@ -746,7 +746,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 2d03eb3683f312ec26736c696319ec76 2007-03-12T17:59:02.654744Z 333 @@ -780,7 +780,7 @@ -2010-09-24T12:48:25.903794Z +2011-02-08T13:45:45.000000Z b64edde44bceed7fb0911f87dba971aa 2010-09-05T22:57:20.669640Z 4062 @@ -814,7 +814,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 4f7bcbe149363ecb18080e3ce6c3f761 2008-09-28T12:03:17.584169Z 1914 @@ -848,7 +848,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 9daafcfffa933849b3ee09fe5fd7b0cc 2007-08-13T17:00:59.400243Z 629 @@ -882,7 +882,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z 1888fd2d4a1be5fa0d6ad8a63238e2b4 2010-04-30T12:18:11.536180Z 3708 @@ -916,7 +916,7 @@ -2010-11-19T13:04:46.900732Z +2011-02-08T13:45:45.000000Z 868d0dc19e332ae2c817321637a8e31f 2010-09-28T21:09:06.467392Z 4222 @@ -950,7 +950,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 19a8f1c143030c42136fe167f167db15 2010-12-10T10:12:19.202442Z 4480 @@ -984,7 +984,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 1bedb4287035a6f89074da0b37640c28 2010-12-12T14:25:23.262992Z 4497 @@ -1018,7 +1018,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z 66e99bd3af036c92a773a91e92a725f9 2010-08-11T14:42:10.119704Z 3936 @@ -1052,11 +1052,11 @@ -2011-01-13T14:09:10.000000Z -183212fd485ef2b4682dbe8023cd489b -2011-01-11T16:02:36.869666Z -4694 -tmaruyama +2011-02-08T13:49:51.000000Z +6eb7b882b785a0e9dbd7ebf13606f026 +2011-01-23T17:02:10.030897Z +4760 +jplang has-props @@ -1078,7 +1078,7 @@ -35143 +35623 auth_sources_helper.rb file @@ -1086,7 +1086,7 @@ -2010-09-23T14:37:44.423776Z +2011-02-08T13:45:45.000000Z 19759b6e665f9063140da8ac473d9e31 2007-03-12T17:59:02.654744Z 333 @@ -1120,7 +1120,7 @@ -2010-11-19T13:04:46.900732Z +2011-02-08T13:45:45.000000Z dedb3c62af67e076703aa2f60c97fb2b 2010-11-01T12:55:15.292443Z 4353 @@ -1154,10 +1154,10 @@ -2010-09-23T14:37:44.427784Z -70db854f3fd0a38d203a65c44d93bb13 -2010-02-06T12:54:13.653502Z -3373 +2011-02-08T13:49:51.000000Z +d083581ae234853db09e79e4e88d6ad3 +2011-01-23T17:02:10.030897Z +4760 jplang has-props @@ -1180,7 +1180,7 @@ -1364 +823 versions_helper.rb file @@ -1188,7 +1188,7 @@ -2010-09-23T14:37:44.431779Z +2011-02-08T13:45:45.000000Z fd18226266f3e53f6af000ac07a13313 2007-12-07T10:26:07.864320Z 955 @@ -1222,7 +1222,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z fef3a97e6644b418b44f9551aa65af95 2007-05-05T13:22:27.245135Z 506 @@ -1256,7 +1256,7 @@ -2010-09-23T14:37:44.423776Z +2011-02-08T13:45:45.000000Z 0ca8f33522734ee0417089366037a7cb 2007-05-13T17:09:56.765659Z 529 @@ -1290,7 +1290,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 58bc2391be7fedbf3e55ef07454cb04c 2011-01-01T19:12:35.568700Z 4605 @@ -1324,7 +1324,7 @@ -2010-09-23T14:37:44.427784Z +2011-02-08T13:45:45.000000Z d808f6794a2fa7cd059ed56d5c8d1b28 2007-03-12T17:59:02.654744Z 333 diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/.svn/text-base/application_helper.rb.svn-base --- a/app/helpers/.svn/text-base/application_helper.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/helpers/.svn/text-base/application_helper.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -109,6 +109,20 @@ link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => rev}, :title => l(:label_revision_id, format_revision(revision))) end + + # Generates a link to a message + def link_to_message(message, options={}, html_options = nil) + link_to( + h(truncate(message.subject, :length => 60)), + { :controller => 'messages', :action => 'show', + :board_id => message.board_id, + :id => message.root, + :r => (message.parent_id && message.id), + :anchor => (message.parent_id ? "message-#{message.id}" : nil) + }.merge(options), + html_options + ) + end # Generates a link to a project if active # Examples: @@ -588,16 +602,26 @@ # 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 # export:some/file -> Force the download of the file - # Forum messages: + # Forum messages: # message#1218 -> Link to message with id 1218 + # + # Links can refer other objects from other projects, using project identifier: + # identifier:r52 + # identifier:document:"Some document" + # identifier:version:1.0.0 + # identifier:source:some/file def parse_redmine_links(text, project, obj, attr, only_path, options) - text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m| - leading, esc, prefix, sep, identifier = $1, $2, $3, $5 || $7, $6 || $8 + text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-]+):)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m| + leading, esc, project_prefix, project_identifier, prefix, sep, identifier = $1, $2, $3, $4, $5, $7 || $9, $8 || $10 link = nil + if project_identifier + project = Project.visible.find_by_identifier(project_identifier) + end if esc.nil? if prefix.nil? && sep == 'r' - if project && (changeset = project.changesets.find_by_revision(identifier)) - link = link_to("r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision}, + # project.changesets.visible raises an SQL error because of a double join on repositories + if project && project.repository && (changeset = Changeset.visible.find_by_repository_id_and_revision(project.repository.id, identifier)) + link = link_to("#{project_prefix}r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision}, :class => 'changeset', :title => truncate_single_line(changeset.comments, :length => 100)) end @@ -611,24 +635,18 @@ :title => "#{truncate(issue.subject, :length => 100)} (#{issue.status.name})") end when 'document' - if document = Document.find_by_id(oid, :include => [:project], :conditions => Project.visible_by(User.current)) + if document = Document.visible.find_by_id(oid) link = link_to h(document.title), {:only_path => only_path, :controller => 'documents', :action => 'show', :id => document}, :class => 'document' end when 'version' - if version = Version.find_by_id(oid, :include => [:project], :conditions => Project.visible_by(User.current)) + if version = Version.visible.find_by_id(oid) link = link_to h(version.name), {:only_path => only_path, :controller => 'versions', :action => 'show', :id => version}, :class => 'version' end when 'message' - if message = Message.find_by_id(oid, :include => [:parent, {:board => :project}], :conditions => Project.visible_by(User.current)) - link = link_to h(truncate(message.subject, :length => 60)), {:only_path => only_path, - :controller => 'messages', - :action => 'show', - :board_id => message.board, - :id => message.root, - :anchor => (message.parent ? "message-#{message.id}" : nil)}, - :class => 'message' + if message = Message.visible.find_by_id(oid, :include => :parent) + link = link_to_message(message, {:only_path => only_path}, :class => 'message') end when 'project' if p = Project.visible.find_by_id(oid) @@ -640,26 +658,26 @@ name = identifier.gsub(%r{^"(.*)"$}, "\\1") case prefix when 'document' - if project && document = project.documents.find_by_title(name) + if project && document = project.documents.visible.find_by_title(name) link = link_to h(document.title), {:only_path => only_path, :controller => 'documents', :action => 'show', :id => document}, :class => 'document' end when 'version' - if project && version = project.versions.find_by_name(name) + if project && version = project.versions.visible.find_by_name(name) link = link_to h(version.name), {:only_path => only_path, :controller => 'versions', :action => 'show', :id => version}, :class => 'version' end when 'commit' - if project && (changeset = project.changesets.find(:first, :conditions => ["scmid LIKE ?", "#{name}%"])) - link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier}, + if project && project.repository && (changeset = Changeset.visible.find(:first, :conditions => ["repository_id = ? AND scmid LIKE ?", project.repository.id, "#{name}%"])) + link = link_to h("#{project_prefix}#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier}, :class => 'changeset', :title => truncate_single_line(changeset.comments, :length => 100) end when 'source', 'export' - if project && project.repository + if project && project.repository && User.current.allowed_to?(:browse_repository, project) name =~ %r{^[/\\]*(.*?)(@([0-9a-f]+))?(#(L\d+))?$} path, rev, anchor = $1, $3, $5 - link = link_to h("#{prefix}:#{name}"), {:controller => 'repositories', :action => 'entry', :id => project, + link = link_to h("#{project_prefix}#{prefix}:#{name}"), {:controller => 'repositories', :action => 'entry', :id => project, :path => to_path_param(path), :rev => rev, :anchor => anchor, @@ -679,7 +697,7 @@ end end end - leading + (link || "#{prefix}#{sep}#{identifier}") + leading + (link || "#{project_prefix}#{prefix}#{sep}#{identifier}") end end diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/.svn/text-base/messages_helper.rb.svn-base --- a/app/helpers/.svn/text-base/messages_helper.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/helpers/.svn/text-base/messages_helper.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -16,14 +16,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module MessagesHelper - - def link_to_message(message) - return '' unless message - link_to h(truncate(message.subject, :length => 60)), :controller => 'messages', - :action => 'show', - :board_id => message.board_id, - :id => message.root, - :r => (message.parent_id && message.id), - :anchor => (message.parent_id ? "message-#{message.id}" : nil) - end end diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/application_helper.rb --- a/app/helpers/application_helper.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/helpers/application_helper.rb Tue Feb 08 13:51:46 2011 +0000 @@ -109,6 +109,20 @@ link_to(text, {:controller => 'repositories', :action => 'revision', :id => project, :rev => rev}, :title => l(:label_revision_id, format_revision(revision))) end + + # Generates a link to a message + def link_to_message(message, options={}, html_options = nil) + link_to( + h(truncate(message.subject, :length => 60)), + { :controller => 'messages', :action => 'show', + :board_id => message.board_id, + :id => message.root, + :r => (message.parent_id && message.id), + :anchor => (message.parent_id ? "message-#{message.id}" : nil) + }.merge(options), + html_options + ) + end # Generates a link to a project if active # Examples: @@ -588,16 +602,26 @@ # 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 # export:some/file -> Force the download of the file - # Forum messages: + # Forum messages: # message#1218 -> Link to message with id 1218 + # + # Links can refer other objects from other projects, using project identifier: + # identifier:r52 + # identifier:document:"Some document" + # identifier:version:1.0.0 + # identifier:source:some/file def parse_redmine_links(text, project, obj, attr, only_path, options) - text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m| - leading, esc, prefix, sep, identifier = $1, $2, $3, $5 || $7, $6 || $8 + text.gsub!(%r{([\s\(,\-\[\>]|^)(!)?(([a-z0-9\-]+):)?(attachment|document|version|commit|source|export|message|project)?((#|r)(\d+)|(:)([^"\s<>][^\s<>]*?|"[^"]+?"))(?=(?=[[:punct:]]\W)|,|\s|\]|<|$)}) do |m| + leading, esc, project_prefix, project_identifier, prefix, sep, identifier = $1, $2, $3, $4, $5, $7 || $9, $8 || $10 link = nil + if project_identifier + project = Project.visible.find_by_identifier(project_identifier) + end if esc.nil? if prefix.nil? && sep == 'r' - if project && (changeset = project.changesets.find_by_revision(identifier)) - link = link_to("r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision}, + # project.changesets.visible raises an SQL error because of a double join on repositories + if project && project.repository && (changeset = Changeset.visible.find_by_repository_id_and_revision(project.repository.id, identifier)) + link = link_to("#{project_prefix}r#{identifier}", {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.revision}, :class => 'changeset', :title => truncate_single_line(changeset.comments, :length => 100)) end @@ -611,24 +635,18 @@ :title => "#{truncate(issue.subject, :length => 100)} (#{issue.status.name})") end when 'document' - if document = Document.find_by_id(oid, :include => [:project], :conditions => Project.visible_by(User.current)) + if document = Document.visible.find_by_id(oid) link = link_to h(document.title), {:only_path => only_path, :controller => 'documents', :action => 'show', :id => document}, :class => 'document' end when 'version' - if version = Version.find_by_id(oid, :include => [:project], :conditions => Project.visible_by(User.current)) + if version = Version.visible.find_by_id(oid) link = link_to h(version.name), {:only_path => only_path, :controller => 'versions', :action => 'show', :id => version}, :class => 'version' end when 'message' - if message = Message.find_by_id(oid, :include => [:parent, {:board => :project}], :conditions => Project.visible_by(User.current)) - link = link_to h(truncate(message.subject, :length => 60)), {:only_path => only_path, - :controller => 'messages', - :action => 'show', - :board_id => message.board, - :id => message.root, - :anchor => (message.parent ? "message-#{message.id}" : nil)}, - :class => 'message' + if message = Message.visible.find_by_id(oid, :include => :parent) + link = link_to_message(message, {:only_path => only_path}, :class => 'message') end when 'project' if p = Project.visible.find_by_id(oid) @@ -640,26 +658,26 @@ name = identifier.gsub(%r{^"(.*)"$}, "\\1") case prefix when 'document' - if project && document = project.documents.find_by_title(name) + if project && document = project.documents.visible.find_by_title(name) link = link_to h(document.title), {:only_path => only_path, :controller => 'documents', :action => 'show', :id => document}, :class => 'document' end when 'version' - if project && version = project.versions.find_by_name(name) + if project && version = project.versions.visible.find_by_name(name) link = link_to h(version.name), {:only_path => only_path, :controller => 'versions', :action => 'show', :id => version}, :class => 'version' end when 'commit' - if project && (changeset = project.changesets.find(:first, :conditions => ["scmid LIKE ?", "#{name}%"])) - link = link_to h("#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier}, + if project && project.repository && (changeset = Changeset.visible.find(:first, :conditions => ["repository_id = ? AND scmid LIKE ?", project.repository.id, "#{name}%"])) + link = link_to h("#{project_prefix}#{name}"), {:only_path => only_path, :controller => 'repositories', :action => 'revision', :id => project, :rev => changeset.identifier}, :class => 'changeset', :title => truncate_single_line(changeset.comments, :length => 100) end when 'source', 'export' - if project && project.repository + if project && project.repository && User.current.allowed_to?(:browse_repository, project) name =~ %r{^[/\\]*(.*?)(@([0-9a-f]+))?(#(L\d+))?$} path, rev, anchor = $1, $3, $5 - link = link_to h("#{prefix}:#{name}"), {:controller => 'repositories', :action => 'entry', :id => project, + link = link_to h("#{project_prefix}#{prefix}:#{name}"), {:controller => 'repositories', :action => 'entry', :id => project, :path => to_path_param(path), :rev => rev, :anchor => anchor, @@ -679,7 +697,7 @@ end end end - leading + (link || "#{prefix}#{sep}#{identifier}") + leading + (link || "#{project_prefix}#{prefix}#{sep}#{identifier}") end end diff -r 07fa8a8b56a8 -r 0579821a129a app/helpers/messages_helper.rb --- a/app/helpers/messages_helper.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/helpers/messages_helper.rb Tue Feb 08 13:51:46 2011 +0000 @@ -16,14 +16,4 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module MessagesHelper - - def link_to_message(message) - return '' unless message - link_to h(truncate(message.subject, :length => 60)), :controller => 'messages', - :action => 'show', - :board_id => message.board_id, - :id => message.root, - :r => (message.parent_id && message.id), - :anchor => (message.parent_id ? "message-#{message.id}" : nil) - end end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/all-wcprops --- a/app/models/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,13 +1,13 @@ K 25 svn:wc:ra_dav:version-url V 35 -/svn/!svn/ver/4730/trunk/app/models +/svn/!svn/ver/4802/trunk/app/models END document.rb K 25 svn:wc:ra_dav:version-url V 47 -/svn/!svn/ver/3358/trunk/app/models/document.rb +/svn/!svn/ver/4759/trunk/app/models/document.rb END mail_handler.rb K 25 @@ -81,11 +81,17 @@ V 50 /svn/!svn/ver/3240/trunk/app/models/enumeration.rb END +member_role.rb +K 25 +svn:wc:ra_dav:version-url +V 50 +/svn/!svn/ver/3250/trunk/app/models/member_role.rb +END issue.rb K 25 svn:wc:ra_dav:version-url V 44 -/svn/!svn/ver/4723/trunk/app/models/issue.rb +/svn/!svn/ver/4735/trunk/app/models/issue.rb END time_entry_activity_custom_field.rb K 25 @@ -93,12 +99,6 @@ V 71 /svn/!svn/ver/2952/trunk/app/models/time_entry_activity_custom_field.rb END -member_role.rb -K 25 -svn:wc:ra_dav:version-url -V 50 -/svn/!svn/ver/3250/trunk/app/models/member_role.rb -END issue_priority.rb K 25 svn:wc:ra_dav:version-url @@ -111,17 +111,23 @@ V 55 /svn/!svn/ver/3169/trunk/app/models/message_observer.rb END +watcher.rb +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/3167/trunk/app/models/watcher.rb +END wiki_content.rb K 25 svn:wc:ra_dav:version-url V 51 /svn/!svn/ver/4296/trunk/app/models/wiki_content.rb END -watcher.rb +enabled_module.rb K 25 svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/3167/trunk/app/models/watcher.rb +V 53 +/svn/!svn/ver/2970/trunk/app/models/enabled_module.rb END wiki_page.rb K 25 @@ -129,12 +135,6 @@ V 48 /svn/!svn/ver/4296/trunk/app/models/wiki_page.rb END -enabled_module.rb -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/2970/trunk/app/models/enabled_module.rb -END comment.rb K 25 svn:wc:ra_dav:version-url @@ -169,7 +169,13 @@ K 25 svn:wc:ra_dav:version-url V 45 -/svn/!svn/ver/4373/trunk/app/models/mailer.rb +/svn/!svn/ver/4752/trunk/app/models/mailer.rb +END +journal.rb +K 25 +svn:wc:ra_dav:version-url +V 46 +/svn/!svn/ver/4062/trunk/app/models/journal.rb END workflow.rb K 25 @@ -177,12 +183,6 @@ V 47 /svn/!svn/ver/3709/trunk/app/models/workflow.rb END -journal.rb -K 25 -svn:wc:ra_dav:version-url -V 46 -/svn/!svn/ver/4062/trunk/app/models/journal.rb -END user_custom_field.rb K 25 svn:wc:ra_dav:version-url @@ -211,7 +211,7 @@ K 25 svn:wc:ra_dav:version-url V 43 -/svn/!svn/ver/4730/trunk/app/models/user.rb +/svn/!svn/ver/4761/trunk/app/models/user.rb END auth_source.rb K 25 @@ -229,7 +229,7 @@ K 25 svn:wc:ra_dav:version-url V 46 -/svn/!svn/ver/3373/trunk/app/models/message.rb +/svn/!svn/ver/4759/trunk/app/models/message.rb END wiki_redirect.rb K 25 @@ -271,7 +271,7 @@ K 25 svn:wc:ra_dav:version-url V 49 -/svn/!svn/ver/3774/trunk/app/models/attachment.rb +/svn/!svn/ver/4755/trunk/app/models/attachment.rb END group_custom_field.rb K 25 diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/entries --- a/app/models/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/entries Tue Feb 08 13:51:46 2011 +0000 @@ -1,15 +1,15 @@ 10 dir -4732 +4802 http://redmine.rubyforge.org/svn/trunk/app/models http://redmine.rubyforge.org/svn -2011-01-16T15:36:42.998302Z -4730 -jplang +2011-02-07T10:26:15.436891Z +4802 +tmaruyama @@ -35,11 +35,11 @@ -2010-09-23T14:37:44.471831Z -6edd75717c818c718387e30ec7aee840 -2010-02-01T18:57:12.733490Z -3358 -edavis10 +2011-02-08T13:49:51.000000Z +190c117fe2ccfc4b1ebe70ae94e0d779 +2011-01-23T16:47:59.732003Z +4759 +jplang has-props @@ -61,7 +61,7 @@ -1995 +2197 mail_handler.rb file @@ -69,7 +69,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 122f4a542fc3b0425bacdf2365e83004 2011-01-10T19:57:41.641529Z 4682 @@ -103,7 +103,7 @@ -2011-01-19T15:03:32.000000Z +2011-02-08T13:45:45.000000Z ef582464c7d04e61c0149608ea3dd11c 2011-01-14T22:51:12.547821Z 4712 @@ -137,7 +137,7 @@ -2011-01-19T15:03:32.000000Z +2011-02-08T13:45:45.000000Z db327d70b8e3bcf04992bf7c69522467 2011-01-14T18:04:16.470040Z 4708 @@ -171,7 +171,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 441a5648e149e471c91928dc7f3f29a6 2009-06-02T17:24:50.360628Z 2778 @@ -205,7 +205,7 @@ -2010-11-19T13:04:46.956816Z +2011-02-08T13:45:45.000000Z 7d895b3a013ce8f4e63dd4e7aab7eb20 2010-09-28T20:20:00.843023Z 4221 @@ -239,7 +239,7 @@ -2010-09-23T14:37:44.467732Z +2011-02-08T13:45:45.000000Z 87f2ff0401993963de36fe7502cd6949 2010-02-26T09:13:12.187275Z 3492 @@ -273,7 +273,7 @@ -2010-09-24T12:48:25.923798Z +2011-02-08T13:45:45.000000Z 01332c0957f952b76c01e7c7ebd112f0 2010-09-10T18:46:23.747988Z 4076 @@ -307,7 +307,7 @@ -2010-09-23T14:37:44.491776Z +2011-02-08T13:45:45.000000Z 6bf31c0491d87fff1481a91519f66363 2009-11-15T15:22:55.021661Z 3064 @@ -341,7 +341,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z cd405a055651d29541f2ebcf4e22f8dc 2007-03-15T22:11:02.843262Z 337 @@ -375,7 +375,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z da42817b3f290549a03ada82a93dc5d0 2007-12-07T10:26:07.864320Z 955 @@ -409,7 +409,7 @@ -2010-09-23T14:37:44.467732Z +2011-02-08T13:45:45.000000Z 622826f16c01373c631876eb1e480a65 2010-07-24T00:19:32.307471Z 3860 @@ -443,7 +443,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z 90ec955317994a58df9a5a7f85b810e7 2009-12-25T17:13:58.090736Z 3240 @@ -477,10 +477,10 @@ -2011-01-19T15:03:32.000000Z -910893e1e82a08d072a65d7c7c3dc8a8 -2011-01-15T14:12:18.630628Z -4723 +2011-02-08T13:49:51.000000Z +c204ee16bf640ce033289ec49f99b970 +2011-01-22T11:46:15.415880Z +4735 jplang has-props @@ -503,7 +503,7 @@ -32309 +32179 member_role.rb file @@ -511,7 +511,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z 95caba31fc55fea2d5ff257e70cf14b2 2009-12-26T16:14:55.591181Z 3250 @@ -545,7 +545,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z d5549b2847a255d4bdd7185a670988b5 2009-10-21T22:35:03.091600Z 2952 @@ -579,7 +579,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z 028b9a9be35e74573921f9865f953439 2009-12-25T17:13:58.090736Z 3240 @@ -613,7 +613,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z 50c2305c38ffecfb2138cd437e1c255c 2009-12-13T14:26:54.396245Z 3169 @@ -647,7 +647,7 @@ -2010-09-23T14:37:44.491776Z +2011-02-08T13:45:45.000000Z c72443f206052fafae720378fba40163 2009-12-13T12:39:22.716082Z 3167 @@ -681,7 +681,7 @@ -2010-11-19T13:04:46.956816Z +2011-02-08T13:45:45.000000Z 3cac6a9c934a472fcbdf99cd00e5bfbb 2010-10-27T16:27:06.240747Z 4296 @@ -715,7 +715,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z 56631baa5560f63cbb213855761c8fcc 2009-10-25T10:31:01.135799Z 2970 @@ -749,7 +749,7 @@ -2010-11-19T13:04:46.956816Z +2011-02-08T13:45:45.000000Z a45da72d99c7bc05ce93eb86205942e5 2010-10-27T16:27:06.240747Z 4296 @@ -783,7 +783,7 @@ -2010-09-23T14:37:44.467732Z +2011-02-08T13:45:45.000000Z 0ca314834c39ddc12f2993caf5722e79 2007-04-25T15:06:20.062636Z 479 @@ -817,7 +817,7 @@ -2010-09-23T14:37:44.491776Z +2011-02-08T13:45:45.000000Z a6804cb0c0abc6de72a184e7384ed36d 2009-05-17T09:55:13.601447Z 2749 @@ -851,7 +851,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 05f6de2ec101b91c331e3b69602f73de 2010-12-21T21:46:54.984442Z 4553 @@ -885,7 +885,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z 84d28844bbac90dab2c56a27ed58db18 2010-08-09T05:10:00.803890Z 3929 @@ -919,7 +919,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z 60dadf29c4da2a4e97f463a647b8e98d 2009-10-21T22:34:22.740755Z 2945 @@ -953,10 +953,10 @@ -2010-11-19T13:04:46.956816Z -1c4b2494e527ab830998b06f67b18f52 -2010-11-06T13:23:23.456511Z -4373 +2011-02-08T13:49:51.000000Z +f7340d6a500dabc6fa0aae801539d5e5 +2011-01-23T10:22:00.456857Z +4752 jplang has-props @@ -979,7 +979,7 @@ -18490 +18498 journal.rb file @@ -987,7 +987,7 @@ -2010-09-24T12:48:25.923798Z +2011-02-08T13:45:45.000000Z f3797cd6a4b7e4d256aba15e317e98b1 2010-09-05T22:57:20.669640Z 4062 @@ -1021,7 +1021,7 @@ -2010-09-23T14:37:44.491776Z +2011-02-08T13:45:45.000000Z 4561dfcb12b3fa066a9516c59a9eef94 2010-04-30T12:19:51.238583Z 3709 @@ -1055,7 +1055,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 47067c42f4d6607335adf75d11c3323b 2007-03-12T17:59:02.654744Z 333 @@ -1089,7 +1089,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 7dbc4f88d9fcd8f1057ea6d5982a1099 2008-07-22T18:52:00.008047Z 1689 @@ -1123,7 +1123,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z a81e0b41100d375e6327075ab1f59242 2010-12-31T15:30:50.544770Z 4599 @@ -1157,7 +1157,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 5a0ad520fc95e7fefd2c6e6a1c9c3e76 2010-02-12T22:08:02.981984Z 3417 @@ -1191,10 +1191,10 @@ -2011-01-19T15:03:32.000000Z -f1782d2190897c738b4abde29795c25c -2011-01-16T15:36:42.998302Z -4730 +2011-02-08T13:49:51.000000Z +6b483ec94e3ac2e3955f641423089ea4 +2011-01-24T17:28:59.767504Z +4761 jplang has-props @@ -1217,7 +1217,7 @@ -17792 +17982 auth_source.rb file @@ -1225,7 +1225,7 @@ -2010-09-23T14:37:44.467732Z +2011-02-08T13:45:45.000000Z 837db713425e094779466a392a668679 2010-05-23T03:16:37.499264Z 3745 @@ -1259,7 +1259,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z b98015db4679606ee5f8d75e55574745 2009-03-28T00:38:57.780983Z 2637 @@ -1293,10 +1293,10 @@ -2010-09-23T14:37:44.475780Z -66b09263cf7988c661307523991d83d5 -2010-02-06T12:54:13.653502Z -3373 +2011-02-08T13:49:51.000000Z +82f0a68c26f05f4ed6aa94418a447a00 +2011-01-23T16:47:59.732003Z +4759 jplang has-props @@ -1319,7 +1319,7 @@ -3576 +3789 wiki_redirect.rb file @@ -1327,7 +1327,7 @@ -2010-09-23T14:37:44.491776Z +2011-02-08T13:45:45.000000Z 4e4c64bab677a9e081fc1230ff6a3773 2007-09-09T17:05:38.846724Z 720 @@ -1361,7 +1361,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z e79f69fb89a7015471e190050ba97847 2010-12-04T18:10:02.635321Z 4467 @@ -1395,7 +1395,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z b76852d33bcfab19bb6c4e3e727da0ed 2009-03-28T00:38:57.780983Z 2637 @@ -1429,7 +1429,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 9fdcb569734799b2fface5b9c6207856 2010-12-23T14:58:52.304263Z 4574 @@ -1463,7 +1463,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z 478dceec50480a17a7f2c321fc59e794 2009-10-21T22:34:22.740755Z 2945 @@ -1497,7 +1497,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z aaa3cd558c500d4db3bb506878e12fc1 2010-11-27T12:42:11.793330Z 4431 @@ -1531,11 +1531,11 @@ -2010-09-23T14:37:44.467732Z -56226fcf13a57b18ed9faf979b5cf1bc -2010-06-19T03:54:28.250424Z -3774 -edavis10 +2011-02-08T13:49:51.000000Z +527c189ff333588f46ed31db163dcc5c +2011-01-23T10:41:43.320139Z +4755 +jplang has-props @@ -1557,7 +1557,7 @@ -6702 +6756 group_custom_field.rb file @@ -1565,7 +1565,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z 2c07c440361210f71d2eb821ce95ce12 2009-09-12T08:36:46.650954Z 2869 @@ -1599,7 +1599,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z b659d10bfe8c0debcf69013051422682 2010-12-31T15:30:50.544770Z 4599 @@ -1633,7 +1633,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 2508e3911e5bb016a9925502244b358f 2009-12-25T17:13:58.090736Z 3240 @@ -1667,7 +1667,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z e7d08a30fb7e14fd7486a7d7e04efccb 2010-12-31T15:30:50.544770Z 4599 @@ -1701,7 +1701,7 @@ -2010-09-23T14:37:44.475780Z +2011-02-08T13:45:45.000000Z 4b700215d4c3bf72071a45448fa2b0e3 2007-04-24T18:26:42.003879Z 478 @@ -1735,7 +1735,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z a6be23c5316bf4e17cd5601624202b18 2010-11-27T14:46:51.426568Z 4437 @@ -1769,7 +1769,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z d4026d660fcb2601834d26268468aec2 2009-03-28T00:38:57.780983Z 2637 @@ -1803,7 +1803,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 31b78fcec84fafc7077e80a8782e8889 2011-01-02T09:45:05.291687Z 4613 @@ -1837,7 +1837,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 15c62eb20c0904d6061c427984ea5ad6 2010-12-31T15:30:50.544770Z 4599 @@ -1871,7 +1871,7 @@ -2010-09-23T14:37:44.479733Z +2011-02-08T13:45:45.000000Z 926ef98901f13ba13688fdc3ab0184fc 2007-03-12T17:59:02.654744Z 333 @@ -1905,7 +1905,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z c1467b11ffdf01173add19cbdcbecccd 2011-01-10T18:32:04.408692Z 4680 @@ -1939,7 +1939,7 @@ -2010-11-19T13:04:46.960863Z +2011-02-08T13:45:45.000000Z 6938d61d0f9e1fc190bb1d0e6c05546e 2010-11-07T14:15:01.891476Z 4382 @@ -1973,7 +1973,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 85527d6304192255d188255b78b10fb5 2011-01-06T20:36:31.826591Z 4645 @@ -2007,7 +2007,7 @@ -2010-09-23T14:37:44.471831Z +2011-02-08T13:45:45.000000Z aeaf540cf9f940cbec4ddfc984dd6af5 2009-12-25T17:13:58.090736Z 3240 @@ -2041,7 +2041,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z ce0648ce457209d4a582b3076287bf01 2010-12-12T17:00:52.100205Z 4505 @@ -2075,7 +2075,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z 41ea06399352eb7b8c2903357abe1ab0 2008-07-04T17:58:14.743502Z 1623 diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/attachment.rb.svn-base --- a/app/models/.svn/text-base/attachment.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/attachment.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -43,7 +43,7 @@ "LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"} cattr_accessor :storage_path - @@storage_path = "#{RAILS_ROOT}/files" + @@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{RAILS_ROOT}/files" def validate if self.filesize > Setting.attachment_max_size.to_i.kilobytes diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/document.rb.svn-base --- a/app/models/.svn/text-base/document.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/document.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -29,6 +29,9 @@ validates_presence_of :project, :title, :category validates_length_of :title, :maximum => 60 + named_scope :visible, lambda {|*args| { :include => :project, + :conditions => Project.allowed_to_condition(args.first || User.current, :view_documents) } } + def visible?(user=User.current) !user.nil? && user.allowed_to?(:view_documents, project) end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/issue.rb.svn-base --- a/app/models/.svn/text-base/issue.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/issue.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -34,7 +34,7 @@ has_many :relations_from, :class_name => 'IssueRelation', :foreign_key => 'issue_from_id', :dependent => :delete_all has_many :relations_to, :class_name => 'IssueRelation', :foreign_key => 'issue_to_id', :dependent => :delete_all - acts_as_nested_set :scope => 'root_id' + acts_as_nested_set :scope => 'root_id', :dependent => :destroy acts_as_attachable :after_remove => :attachment_removed acts_as_customizable acts_as_watchable @@ -89,7 +89,6 @@ before_create :default_assign before_save :close_duplicates, :update_done_ratio_from_issue_status after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal - after_destroy :destroy_children after_destroy :update_parent_attributes # Returns true if usr or current user is allowed to view the issue @@ -758,14 +757,6 @@ end end - def destroy_children - unless leaf? - children.each do |child| - child.destroy - end - end - end - # Update issues so their versions are not pointing to a # fixed_version that is not shared with the issue's project def self.update_versions(conditions=nil) diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/mailer.rb.svn-base --- a/app/models/.svn/text-base/mailer.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/mailer.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -296,7 +296,7 @@ if raise_errors raise e elsif mylogger - mylogger.error "The following error occured while sending email notification: \"#{e.message}\". Check your configuration in config/email.yml." + mylogger.error "The following error occured while sending email notification: \"#{e.message}\". Check your configuration in config/configuration.yml." end ensure self.class.raise_delivery_errors = raise_errors diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/message.rb.svn-base --- a/app/models/.svn/text-base/message.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/message.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -42,6 +42,9 @@ after_create :add_author_as_watcher + named_scope :visible, lambda {|*args| { :include => {:board => :project}, + :conditions => Project.allowed_to_condition(args.first || User.current, :view_messages) } } + def visible?(user=User.current) !user.nil? && user.allowed_to?(:view_messages, project) end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/.svn/text-base/user.rb.svn-base --- a/app/models/.svn/text-base/user.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/.svn/text-base/user.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -424,7 +424,12 @@ when 'all' true when 'selected' - # Handled by the Project + # user receives notifications for created/assigned issues on unselected projects + if object.is_a?(Issue) && (object.author == self || object.assigned_to == self) + true + else + false + end when 'none' false when 'only_my_events' diff -r 07fa8a8b56a8 -r 0579821a129a app/models/attachment.rb --- a/app/models/attachment.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/attachment.rb Tue Feb 08 13:51:46 2011 +0000 @@ -43,7 +43,7 @@ "LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"} cattr_accessor :storage_path - @@storage_path = "#{RAILS_ROOT}/files" + @@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{RAILS_ROOT}/files" def validate if self.filesize > Setting.attachment_max_size.to_i.kilobytes diff -r 07fa8a8b56a8 -r 0579821a129a app/models/document.rb --- a/app/models/document.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/document.rb Tue Feb 08 13:51:46 2011 +0000 @@ -29,6 +29,9 @@ validates_presence_of :project, :title, :category validates_length_of :title, :maximum => 60 + named_scope :visible, lambda {|*args| { :include => :project, + :conditions => Project.allowed_to_condition(args.first || User.current, :view_documents) } } + def visible?(user=User.current) !user.nil? && user.allowed_to?(:view_documents, project) end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/issue.rb --- a/app/models/issue.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/issue.rb Tue Feb 08 13:51:46 2011 +0000 @@ -34,7 +34,7 @@ has_many :relations_from, :class_name => 'IssueRelation', :foreign_key => 'issue_from_id', :dependent => :delete_all has_many :relations_to, :class_name => 'IssueRelation', :foreign_key => 'issue_to_id', :dependent => :delete_all - acts_as_nested_set :scope => 'root_id' + acts_as_nested_set :scope => 'root_id', :dependent => :destroy acts_as_attachable :after_remove => :attachment_removed acts_as_customizable acts_as_watchable @@ -89,7 +89,6 @@ before_create :default_assign before_save :close_duplicates, :update_done_ratio_from_issue_status after_save :reschedule_following_issues, :update_nested_set_attributes, :update_parent_attributes, :create_journal - after_destroy :destroy_children after_destroy :update_parent_attributes # Returns true if usr or current user is allowed to view the issue @@ -758,14 +757,6 @@ end end - def destroy_children - unless leaf? - children.each do |child| - child.destroy - end - end - end - # Update issues so their versions are not pointing to a # fixed_version that is not shared with the issue's project def self.update_versions(conditions=nil) diff -r 07fa8a8b56a8 -r 0579821a129a app/models/mailer.rb --- a/app/models/mailer.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/mailer.rb Tue Feb 08 13:51:46 2011 +0000 @@ -296,7 +296,7 @@ if raise_errors raise e elsif mylogger - mylogger.error "The following error occured while sending email notification: \"#{e.message}\". Check your configuration in config/email.yml." + mylogger.error "The following error occured while sending email notification: \"#{e.message}\". Check your configuration in config/configuration.yml." end ensure self.class.raise_delivery_errors = raise_errors diff -r 07fa8a8b56a8 -r 0579821a129a app/models/message.rb --- a/app/models/message.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/message.rb Tue Feb 08 13:51:46 2011 +0000 @@ -42,6 +42,9 @@ after_create :add_author_as_watcher + named_scope :visible, lambda {|*args| { :include => {:board => :project}, + :conditions => Project.allowed_to_condition(args.first || User.current, :view_messages) } } + def visible?(user=User.current) !user.nil? && user.allowed_to?(:view_messages, project) end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/repository/.svn/all-wcprops --- a/app/models/repository/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/repository/.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/4704/trunk/app/models/repository +/svn/!svn/ver/4802/trunk/app/models/repository END subversion.rb K 25 @@ -37,7 +37,7 @@ K 25 svn:wc:ra_dav:version-url V 53 -/svn/!svn/ver/1768/trunk/app/models/repository/cvs.rb +/svn/!svn/ver/4802/trunk/app/models/repository/cvs.rb END darcs.rb K 25 diff -r 07fa8a8b56a8 -r 0579821a129a app/models/repository/.svn/entries --- a/app/models/repository/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/repository/.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/models/repository http://redmine.rubyforge.org/svn -2011-01-13T12:04:51.838288Z -4704 +2011-02-07T10:26:15.436891Z +4802 tmaruyama @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.487730Z +2011-02-08T13:45:45.000000Z b02ecaea01c5990cbde09689be12ec7d 2010-02-02T17:02:32.020293Z 3360 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.483732Z +2011-02-08T13:45:45.000000Z 84591e1c5afa1b74a10954dd521ceb4e 2008-06-14T15:44:36.838876Z 1537 @@ -100,7 +100,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z a3363c594162378e93390bb64f908183 2011-01-02T09:45:05.291687Z 4613 @@ -134,7 +134,7 @@ -2011-01-13T14:09:10.000000Z +2011-02-08T13:45:45.000000Z 4b0702e606f495c7db57461f3527181e 2011-01-13T12:04:51.838288Z 4704 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.483732Z +2011-02-08T13:45:45.000000Z ed75a7df6cfdc54b7059c9bb20c079d3 2008-06-08T15:40:24.603157Z 1508 @@ -202,11 +202,11 @@ -2010-09-23T14:37:44.483732Z -4bf6afb2a5e03df854a06fb116fc6fd2 -2008-08-26T12:28:15.338708Z -1768 -jplang +2011-02-08T13:49:51.000000Z +a5117cd6200edb62482568b4aa888153 +2011-02-07T10:26:15.436891Z +4802 +tmaruyama has-props @@ -228,7 +228,7 @@ -6357 +6626 darcs.rb file @@ -236,7 +236,7 @@ -2010-09-23T14:37:44.483732Z +2011-02-08T13:45:45.000000Z 75c2836fd6ba92e0aef7a9cfc249ebb7 2010-02-02T17:02:32.020293Z 3360 diff -r 07fa8a8b56a8 -r 0579821a129a app/models/repository/.svn/text-base/cvs.rb.svn-base --- a/app/models/repository/.svn/text-base/cvs.rb.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/repository/.svn/text-base/cvs.rb.svn-base Tue Feb 08 13:51:46 2011 +0000 @@ -104,10 +104,11 @@ scm.revisions('', fetch_since, nil, :with_paths => true) do |revision| # only add the change to the database, if it doen't exists. the cvs log # is not exclusive at all. - unless changes.find_by_path_and_revision(scm.with_leading_slash(revision.paths[0][:path]), revision.paths[0][:revision]) - revision + tmp_time = revision.time.clone + unless changes.find_by_path_and_revision( + scm.with_leading_slash(revision.paths[0][:path]), revision.paths[0][:revision]) cs = changesets.find(:first, :conditions=>{ - :committed_on=>revision.time-time_delta..revision.time+time_delta, + :committed_on=>tmp_time - time_delta .. tmp_time + time_delta, :committer=>revision.author, :comments=>Changeset.normalize_comments(revision.message) }) @@ -116,11 +117,14 @@ unless cs # we use a temporaray revision number here (just for inserting) # later on, we calculate a continous positive number - latest = changesets.find(:first, :order => 'id DESC') + tmp_time2 = tmp_time.clone.gmtime + branch = revision.paths[0][:branch] + scmid = branch + "-" + tmp_time2.strftime("%Y%m%d-%H%M%S") cs = Changeset.create(:repository => self, - :revision => "_#{tmp_rev_num}", + :revision => "tmp#{tmp_rev_num}", + :scmid => scmid, :committer => revision.author, - :committed_on => revision.time, + :committed_on => tmp_time, :comments => revision.message) tmp_rev_num += 1 end @@ -144,10 +148,13 @@ end # Renumber new changesets in chronological order - changesets.find(:all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE '_%'").each do |changeset| + changesets.find( + :all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE 'tmp%'" + ).each do |changeset| changeset.update_attribute :revision, next_revision_number end end # transaction + @current_revision_number = nil end private @@ -155,7 +162,9 @@ # Returns the next revision number to assign to a CVS changeset def next_revision_number # Need to retrieve existing revision numbers to sort them as integers - @current_revision_number ||= (connection.select_values("SELECT revision FROM #{Changeset.table_name} WHERE repository_id = #{id} AND revision NOT LIKE '_%'").collect(&:to_i).max || 0) + sql = "SELECT revision FROM #{Changeset.table_name} " + sql << "WHERE repository_id = #{id} AND revision NOT LIKE 'tmp%'" + @current_revision_number ||= (connection.select_values(sql).collect(&:to_i).max || 0) @current_revision_number += 1 end end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/repository/cvs.rb --- a/app/models/repository/cvs.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/repository/cvs.rb Tue Feb 08 13:51:46 2011 +0000 @@ -104,10 +104,11 @@ scm.revisions('', fetch_since, nil, :with_paths => true) do |revision| # only add the change to the database, if it doen't exists. the cvs log # is not exclusive at all. - unless changes.find_by_path_and_revision(scm.with_leading_slash(revision.paths[0][:path]), revision.paths[0][:revision]) - revision + tmp_time = revision.time.clone + unless changes.find_by_path_and_revision( + scm.with_leading_slash(revision.paths[0][:path]), revision.paths[0][:revision]) cs = changesets.find(:first, :conditions=>{ - :committed_on=>revision.time-time_delta..revision.time+time_delta, + :committed_on=>tmp_time - time_delta .. tmp_time + time_delta, :committer=>revision.author, :comments=>Changeset.normalize_comments(revision.message) }) @@ -116,11 +117,14 @@ unless cs # we use a temporaray revision number here (just for inserting) # later on, we calculate a continous positive number - latest = changesets.find(:first, :order => 'id DESC') + tmp_time2 = tmp_time.clone.gmtime + branch = revision.paths[0][:branch] + scmid = branch + "-" + tmp_time2.strftime("%Y%m%d-%H%M%S") cs = Changeset.create(:repository => self, - :revision => "_#{tmp_rev_num}", + :revision => "tmp#{tmp_rev_num}", + :scmid => scmid, :committer => revision.author, - :committed_on => revision.time, + :committed_on => tmp_time, :comments => revision.message) tmp_rev_num += 1 end @@ -144,10 +148,13 @@ end # Renumber new changesets in chronological order - changesets.find(:all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE '_%'").each do |changeset| + changesets.find( + :all, :order => 'committed_on ASC, id ASC', :conditions => "revision LIKE 'tmp%'" + ).each do |changeset| changeset.update_attribute :revision, next_revision_number end end # transaction + @current_revision_number = nil end private @@ -155,7 +162,9 @@ # Returns the next revision number to assign to a CVS changeset def next_revision_number # Need to retrieve existing revision numbers to sort them as integers - @current_revision_number ||= (connection.select_values("SELECT revision FROM #{Changeset.table_name} WHERE repository_id = #{id} AND revision NOT LIKE '_%'").collect(&:to_i).max || 0) + sql = "SELECT revision FROM #{Changeset.table_name} " + sql << "WHERE repository_id = #{id} AND revision NOT LIKE 'tmp%'" + @current_revision_number ||= (connection.select_values(sql).collect(&:to_i).max || 0) @current_revision_number += 1 end end diff -r 07fa8a8b56a8 -r 0579821a129a app/models/user.rb --- a/app/models/user.rb Wed Jan 19 15:04:22 2011 +0000 +++ b/app/models/user.rb Tue Feb 08 13:51:46 2011 +0000 @@ -424,7 +424,12 @@ when 'all' true when 'selected' - # Handled by the Project + # user receives notifications for created/assigned issues on unselected projects + if object.is_a?(Issue) && (object.author == self || object.assigned_to == self) + true + else + false + end when 'none' false when 'only_my_events' diff -r 07fa8a8b56a8 -r 0579821a129a app/sweepers/.svn/entries --- a/app/sweepers/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/sweepers/.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/sweepers http://redmine.rubyforge.org/svn diff -r 07fa8a8b56a8 -r 0579821a129a app/views/.svn/all-wcprops --- a/app/views/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,5 +1,5 @@ K 25 svn:wc:ra_dav:version-url V 34 -/svn/!svn/ver/4731/trunk/app/views +/svn/!svn/ver/4782/trunk/app/views END diff -r 07fa8a8b56a8 -r 0579821a129a app/views/.svn/entries --- a/app/views/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/.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 http://redmine.rubyforge.org/svn -2011-01-16T16:36:58.753919Z -4731 +2011-01-30T09:09:50.276451Z +4782 jplang @@ -68,22 +68,22 @@ custom_fields dir -issue_moves +users dir -users +issue_moves dir files dir -previews +ldap_auth_sources dir auth_sources dir -ldap_auth_sources +previews dir search @@ -92,10 +92,10 @@ messages dir -versions +issue_relations dir -issue_relations +versions dir mailer diff -r 07fa8a8b56a8 -r 0579821a129a app/views/account/.svn/entries --- a/app/views/account/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/account/.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/account http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.495777Z +2011-02-08T13:45:45.000000Z 232ce32581d2f869b81c300244decff5 2010-01-28T18:54:51.800438Z 3341 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.495777Z +2011-02-08T13:45:45.000000Z cf3d603bbb4825640988086c7871c165 2007-09-22T13:17:49.935719Z 747 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.495777Z +2011-02-08T13:45:45.000000Z 82c6920dc6c95e35b0248de4be82885b 2009-04-21T13:43:57.529967Z 2678 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.495777Z +2011-02-08T13:45:45.000000Z 72b586f183037fcab519bc7575d3b2b5 2010-03-03T20:21:05.265018Z 3530 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/activities/.svn/entries --- a/app/views/activities/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/activities/.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/activities http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-24T12:48:29.578245Z +2011-02-08T13:45:45.000000Z 9e6d9091be2c8769f8e262500d974f84 2010-08-27T14:05:54.014502Z 4047 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/admin/.svn/entries --- a/app/views/admin/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/admin/.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/admin http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.499776Z +2011-02-08T13:45:45.000000Z a7b3d0461b8dac7e68d5b758e6b93b45 2009-12-19T20:33:24.113306Z 3200 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.503775Z +2011-02-08T13:45:45.000000Z aacfd3ff934f52585eba4f460f52df31 2008-11-16T17:12:02.001794Z 2041 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.499776Z +2011-02-08T13:45:45.000000Z a2dcf50c0d70604e64f18cd28f15280b 2010-08-04T00:38:22.739166Z 3909 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.499776Z +2011-02-08T13:45:45.000000Z 8db715728d1f5851c242e085110f2bb6 2008-01-05T11:33:49.132886Z 1040 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.499776Z +2011-02-08T13:45:45.000000Z 35378eb3f0e385475e3bd0586f22324a 2009-12-17T18:21:02.630202Z 3176 @@ -202,7 +202,7 @@ -2010-11-19T13:04:49.448967Z +2011-02-08T13:45:45.000000Z 9aaefdc17951db18479f38fb0db73ea7 2010-10-22T15:11:04.321155Z 4271 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/attachments/.svn/entries --- a/app/views/attachments/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/attachments/.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/attachments http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.503775Z +2011-02-08T13:45:45.000000Z 6f5329a1a81f3798a84a26b0261f5000 2008-12-09T16:54:46.963649Z 2116 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.507774Z +2011-02-08T13:45:45.000000Z b8bc854a91c56c3e3d45390e8ed4bb8d 2009-04-25T09:35:14.494071Z 2693 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.503775Z +2011-02-08T13:45:45.000000Z 9cd3f9685ce632814961d9f7e67c4d26 2010-07-25T10:34:55.569539Z 3879 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.503775Z +2011-02-08T13:45:45.000000Z 43e4ae1b5703daa55b37eb438a169304 2009-04-25T09:35:14.494071Z 2693 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/auth_sources/.svn/entries --- a/app/views/auth_sources/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/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/auth_sources http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.507774Z +2011-02-08T13:45:45.000000Z 2f1b944eb2979ed37624c653969fa6bf 2010-02-15T16:41:21.789274Z 3436 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.507774Z +2011-02-08T13:45:45.000000Z 6f4f645b6d66417180eaadb0e204a56e 2007-03-12T17:59:02.654744Z 333 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.507774Z +2011-02-08T13:45:45.000000Z 4ea0fc7f46738e3709d552778de7a756 2010-05-23T03:16:31.304135Z 3744 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.507774Z +2011-02-08T13:45:45.000000Z 1cc2f5049536de6e5d6d4e926f96ab38 2007-03-12T17:59:02.654744Z 333 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/auto_completes/.svn/entries --- a/app/views/auto_completes/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/auto_completes/.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/auto_completes http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.511773Z +2011-02-08T13:45:45.000000Z d325b0677890591680b96985e16a0139 2010-08-17T15:03:58.074505Z 3945 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/boards/.svn/entries --- a/app/views/boards/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/boards/.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/boards http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.515775Z +2011-02-08T13:45:45.000000Z 74a37f0fbb3bb635f2c0389a2624988e 2010-02-14T11:52:12.027647Z 3426 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.515775Z +2011-02-08T13:45:45.000000Z 0416740cf4bf599b0da68e597c0cd44c 2007-05-13T17:09:56.765659Z 529 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.515775Z +2011-02-08T13:45:45.000000Z 00f3643ebd3d5af2322b92c885a6eec6 2007-05-13T17:09:56.765659Z 529 @@ -134,7 +134,7 @@ -2010-09-24T12:48:28.319823Z +2011-02-08T13:45:45.000000Z 5c323ebf8fea05f556896ed49186773b 2010-08-27T14:05:54.014502Z 4047 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.515775Z +2011-02-08T13:45:45.000000Z b951b4d73988508c5a42fdb7b7df695c 2007-05-13T17:09:56.765659Z 529 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/calendars/.svn/entries --- a/app/views/calendars/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/calendars/.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/calendars http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-11-19T13:04:49.472856Z +2011-02-08T13:45:45.000000Z d47ece5d0e0ff017f3f1b5ce4b776ba0 2010-10-07T15:26:53.500793Z 4238 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/common/.svn/entries --- a/app/views/common/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/common/.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/common http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.523788Z +2011-02-08T13:45:45.000000Z f95c4268a6ac374ab617da665e57a3ad 2010-03-14T13:22:50.317701Z 3585 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.523788Z +2011-02-08T13:45:45.000000Z e2b0309f637e9a49ef39f8401f3190c5 2009-05-26T08:28:36.964305Z 2768 @@ -100,7 +100,7 @@ -2010-11-19T13:04:49.456921Z +2011-02-08T13:45:45.000000Z 882dace2c9ea129616067a2052cebef4 2010-10-23T11:07:04.019894Z 4286 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.523788Z +2011-02-08T13:45:45.000000Z d03b1c3719bd49af7d930d210a8e8328 2008-07-26T12:54:54.604420Z 1699 @@ -168,7 +168,7 @@ -2011-01-13T14:09:24.000000Z +2011-02-08T13:45:45.000000Z 1938ad8ac1793e75074891018e795398 2011-01-01T13:40:36.520874Z 4604 @@ -202,7 +202,7 @@ -2010-09-23T14:37:44.523788Z +2011-02-08T13:45:45.000000Z 18b2d631fabd5720aa07d369da11d0de 2010-06-19T22:52:15.523619Z 3790 @@ -236,7 +236,7 @@ -2010-09-23T14:37:44.523788Z +2011-02-08T13:45:45.000000Z 6e7716818f87ed1ad9839c6e9a92ed1b 2009-12-14T20:13:29.438642Z 3174 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/context_menus/.svn/entries --- a/app/views/context_menus/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/context_menus/.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/context_menus http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-11-19T13:04:47.016806Z +2011-02-08T13:45:45.000000Z 1a873e0d09f011b6b274e955460d35a1 2010-11-16T19:49:08.085592Z 4409 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/custom_fields/.svn/entries --- a/app/views/custom_fields/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/custom_fields/.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/custom_fields http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-11-19T13:04:48.192856Z +2011-02-08T13:45:45.000000Z 7c1accc3dd22bd872e2e9b6a7f02a5c2 2010-11-07T14:15:01.891476Z 4382 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.527783Z +2011-02-08T13:45:45.000000Z 0c149f63c965988c70ecf48bde3222b3 2009-12-09T10:49:58.529326Z 3144 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.527783Z +2011-02-08T13:45:45.000000Z 3372a4aeafa9f940744f07c4ce8ca434 2010-04-16T15:33:49.924704Z 3672 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.527783Z +2011-02-08T13:45:45.000000Z 6441c559d374310cabfc9649eb5b3617 2009-09-12T09:13:13.676884Z 2871 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.527783Z +2011-02-08T13:45:45.000000Z 7658107f6af4536cedfc075202ad3f7c 2009-12-09T10:49:58.529326Z 3144 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/documents/.svn/entries --- a/app/views/documents/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/documents/.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/documents http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.531783Z +2011-02-08T13:45:45.000000Z 755690362ea0b5f92a82326872d3b0ea 2010-03-18T20:02:17.358992Z 3602 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.535729Z +2011-02-08T13:45:45.000000Z a7c10b428fb4d74827a6ffdcc3651a25 2010-03-18T20:06:16.936785Z 3603 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.535729Z +2011-02-08T13:45:45.000000Z 9d05f76602471c3dc339d8c54d2f4abc 2009-05-30T23:30:36.923541Z 2777 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.535729Z +2011-02-08T13:45:45.000000Z 41a0e984e939e8fad03f2be67b33a4fc 2007-03-12T17:59:02.654744Z 333 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.535729Z +2011-02-08T13:45:45.000000Z cf8b8406d31262625c1f2ab2b66020b2 2009-01-22T16:34:54.303755Z 2295 @@ -202,7 +202,7 @@ -2010-09-23T14:37:44.535729Z +2011-02-08T13:45:45.000000Z 60e54f2c42af4454d69bfc812bbf55ca 2008-02-29T19:46:58.834023Z 1180 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/enumerations/.svn/entries --- a/app/views/enumerations/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/enumerations/.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/enumerations http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.539728Z +2011-02-08T13:45:45.000000Z b4f45f24d2fb9546e609fd3299912be6 2010-05-09T11:19:15.980195Z 3734 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.539728Z +2011-02-08T13:45:45.000000Z 0a47386b406e4f425fe541d12c780467 2009-10-21T22:34:28.905707Z 2946 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.539728Z +2011-02-08T13:45:45.000000Z 668687299206262ccf34ac3a44f57c33 2009-07-05T12:22:02.133266Z 2810 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.539728Z +2011-02-08T13:45:45.000000Z b9c8a97c172197a30cbb6c08000a9fa7 2008-06-17T19:10:54.015252Z 1558 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.539728Z +2011-02-08T13:45:45.000000Z e6eaade1aac54267080f56f5a09d3fd1 2009-07-05T12:22:02.133266Z 2810 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/files/.svn/entries --- a/app/views/files/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/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/app/views/files http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-11-19T13:04:49.392852Z +2011-02-08T13:45:45.000000Z 05986f09d13424caeb68601c7c9ff16b 2010-10-22T14:45:02.987126Z 4268 @@ -66,7 +66,7 @@ -2010-09-24T12:48:27.722352Z +2011-02-08T13:45:45.000000Z 7cd15d28fd27afa1f10b921c8b35cd7a 2010-09-14T16:24:07.840869Z 4085 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/gantts/.svn/all-wcprops --- a/app/views/gantts/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/gantts/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,11 +1,11 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/4528/trunk/app/views/gantts +/svn/!svn/ver/4782/trunk/app/views/gantts END show.html.erb K 25 svn:wc:ra_dav:version-url V 55 -/svn/!svn/ver/4528/trunk/app/views/gantts/show.html.erb +/svn/!svn/ver/4782/trunk/app/views/gantts/show.html.erb END diff -r 07fa8a8b56a8 -r 0579821a129a app/views/gantts/.svn/entries --- a/app/views/gantts/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/gantts/.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/gantts http://redmine.rubyforge.org/svn -2010-12-17T15:25:07.681776Z -4528 +2011-01-30T09:09:50.276451Z +4782 jplang @@ -32,10 +32,10 @@ -2011-01-13T14:09:29.000000Z +2011-02-08T13:49:51.000000Z 85e8095f9a3c80cf6a53b73c6b694323 -2010-12-17T15:25:07.681776Z -4528 +2011-01-30T09:09:50.276451Z +4782 jplang has-props diff -r 07fa8a8b56a8 -r 0579821a129a app/views/groups/.svn/entries --- a/app/views/groups/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/groups/.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/groups http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 8798190a9ed51cd47a32f7fa3b14962b 2009-09-11T21:11:20.141433Z 2864 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 77b68adb1216f00c034d0afa77a50bff 2009-09-12T09:13:13.676884Z 2871 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 61731ddfe926e25ea2108a99a7dc594d 2009-07-05T11:38:40.659710Z 2807 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z f122118621575d0b74331d392b4aba4b 2010-02-06T13:26:29.318273Z 3375 @@ -168,7 +168,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 5fc442e9118fe012a7d4049daa4d68b4 2009-09-12T16:12:42.876344Z 2879 @@ -202,7 +202,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 5f484ae9be041e266944cc2710caa394 2010-05-09T11:19:15.980195Z 3734 @@ -236,7 +236,7 @@ -2010-11-19T13:04:49.444940Z +2011-02-08T13:45:45.000000Z 7738dc0db4c4ad48e82613829c1e991a 2010-10-30T16:47:33.260585Z 4312 @@ -270,7 +270,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z ee1e9b07710ccd0b0dee7791dddc93bb 2009-07-05T13:54:34.821434Z 2812 @@ -304,7 +304,7 @@ -2010-09-23T14:37:44.547775Z +2011-02-08T13:45:45.000000Z 09eeec211f50994f28b31bcff9be43ef 2009-09-05T11:19:00.617770Z 2858 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issue_categories/.svn/entries --- a/app/views/issue_categories/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issue_categories/.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/issue_categories http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.551784Z +2011-02-08T13:45:45.000000Z 61ef938e10897a71008d145439614aa8 2010-03-06T18:43:00.594668Z 3549 @@ -66,7 +66,7 @@ -2010-11-19T13:04:49.476971Z +2011-02-08T13:45:45.000000Z e0d28729320423a7b8fcb6309b58de9a 2010-11-07T14:56:12.614499Z 4385 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.551784Z +2011-02-08T13:45:45.000000Z fc3f04670edce3c08e645d254198a89c 2007-09-14T11:34:08.234701Z 725 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.551784Z +2011-02-08T13:45:45.000000Z f7b34c60cf2f117d3c53be7b0840fe28 2008-02-29T22:54:07.325361Z 1182 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issue_moves/.svn/entries --- a/app/views/issue_moves/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issue_moves/.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/issue_moves http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2011-01-13T14:09:16.000000Z +2011-02-08T13:45:45.000000Z 9a221a421165c46becefe4e15dc6266c 2010-12-29T20:48:51.915261Z 4583 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issue_relations/.svn/entries --- a/app/views/issue_relations/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issue_relations/.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/issue_relations http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2011-01-13T14:09:24.000000Z +2011-02-08T13:45:45.000000Z 7024ae266ddb4d218d7c24c3b17fa790 2010-12-12T16:04:28.950669Z 4502 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issue_statuses/.svn/entries --- a/app/views/issue_statuses/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issue_statuses/.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/issue_statuses http://redmine.rubyforge.org/svn @@ -32,7 +32,7 @@ -2010-09-23T14:37:44.559788Z +2011-02-08T13:45:45.000000Z 2d8b318bb1dbbe6dbb478716d52e65e9 2010-03-17T20:46:22.413470Z 3600 @@ -66,7 +66,7 @@ -2010-09-23T14:37:44.559788Z +2011-02-08T13:45:45.000000Z e4ea04eeab7c1f7265858a9dd09f1b7b 2009-12-12T10:33:12.138303Z 3157 @@ -100,7 +100,7 @@ -2010-09-23T14:37:44.559788Z +2011-02-08T13:45:45.000000Z 21f8b2f134a83413d09ae7e4d004c642 2009-07-05T12:22:02.133266Z 2810 @@ -134,7 +134,7 @@ -2010-09-23T14:37:44.559788Z +2011-02-08T13:45:45.000000Z af751ca552f43d9954a0cb1bbdb6e362 2009-07-05T12:22:02.133266Z 2810 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/.svn/all-wcprops --- a/app/views/issues/.svn/all-wcprops Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issues/.svn/all-wcprops Tue Feb 08 13:51:46 2011 +0000 @@ -1,13 +1,19 @@ K 25 svn:wc:ra_dav:version-url V 41 -/svn/!svn/ver/4652/trunk/app/views/issues +/svn/!svn/ver/4741/trunk/app/views/issues END _relations.rhtml K 25 svn:wc:ra_dav:version-url V 58 -/svn/!svn/ver/4065/trunk/app/views/issues/_relations.rhtml +/svn/!svn/ver/4741/trunk/app/views/issues/_relations.rhtml +END +_action_menu.rhtml +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/4258/trunk/app/views/issues/_action_menu.rhtml END _history.rhtml K 25 @@ -15,11 +21,11 @@ V 56 /svn/!svn/ver/4062/trunk/app/views/issues/_history.rhtml END -_action_menu.rhtml +_form.rhtml K 25 svn:wc:ra_dav:version-url -V 60 -/svn/!svn/ver/4258/trunk/app/views/issues/_action_menu.rhtml +V 53 +/svn/!svn/ver/4311/trunk/app/views/issues/_form.rhtml END bulk_edit.rhtml K 25 @@ -27,12 +33,6 @@ V 57 /svn/!svn/ver/4533/trunk/app/views/issues/bulk_edit.rhtml END -_form.rhtml -K 25 -svn:wc:ra_dav:version-url -V 53 -/svn/!svn/ver/4311/trunk/app/views/issues/_form.rhtml -END _form_update.rhtml K 25 svn:wc:ra_dav:version-url @@ -75,18 +75,18 @@ V 67 /svn/!svn/ver/2827/trunk/app/views/issues/_form_custom_fields.rhtml END +_changesets.rhtml +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/!svn/ver/4652/trunk/app/views/issues/_changesets.rhtml +END _list_simple.rhtml K 25 svn:wc:ra_dav:version-url V 60 /svn/!svn/ver/3924/trunk/app/views/issues/_list_simple.rhtml END -_changesets.rhtml -K 25 -svn:wc:ra_dav:version-url -V 59 -/svn/!svn/ver/4652/trunk/app/views/issues/_changesets.rhtml -END _edit.rhtml K 25 svn:wc:ra_dav:version-url @@ -109,7 +109,7 @@ K 25 svn:wc:ra_dav:version-url V 54 -/svn/!svn/ver/4512/trunk/app/views/issues/show.api.rsb +/svn/!svn/ver/4741/trunk/app/views/issues/show.api.rsb END destroy.rhtml K 25 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/.svn/entries --- a/app/views/issues/.svn/entries Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issues/.svn/entries Tue Feb 08 13:51:46 2011 +0000 @@ -1,15 +1,15 @@ 10 dir -4732 +4802 http://redmine.rubyforge.org/svn/trunk/app/views/issues http://redmine.rubyforge.org/svn -2011-01-08T00:19:51.192586Z -4652 -tmaruyama +2011-01-22T13:28:20.816262Z +4741 +jplang @@ -32,11 +32,11 @@ -2010-09-24T12:48:29.596042Z -4659150afe6ae87105eaa29894e4d488 -2010-09-06T00:48:44.764418Z -4065 -edavis10 +2011-02-08T13:49:51.000000Z +071e7d5deebfed5ec01c6fa478e57a6d +2011-01-22T13:28:20.816262Z +4741 +jplang has-props @@ -58,7 +58,7 @@ -1816 +1763 _history.rhtml file @@ -66,7 +66,7 @@ -2010-09-24T12:48:29.596042Z +2011-02-08T13:45:45.000000Z 8d719ade30044f529f104cda9dcdd6f4 2010-09-05T22:57:20.669640Z 4062 @@ -100,7 +100,7 @@ -2010-11-19T13:04:50.824922Z +2011-02-08T13:45:45.000000Z 74c6e939ebb113c49a367fff0f463f63 2010-10-15T23:11:05.712143Z 4258 @@ -134,7 +134,7 @@ -2011-01-13T14:09:38.000000Z +2011-02-08T13:45:45.000000Z f3bdc270087564333ffdacd38f1d363c 2010-12-18T14:14:04.023240Z 4533 @@ -168,7 +168,7 @@ -2010-11-19T13:04:50.824922Z +2011-02-08T13:45:45.000000Z 7c3d2a41291eabbd1c7e28139be69e49 2010-10-30T16:15:31.867344Z 4311 @@ -202,7 +202,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z 00a1336147a304d10f556a97f7105a83 2009-12-11T18:48:34.197724Z 3151 @@ -236,7 +236,7 @@ -2010-09-24T12:48:29.596042Z +2011-02-08T13:45:45.000000Z 5a8516dceeaac8769ab1780f8e9cccd9 2010-09-16T21:33:49.399868Z 4093 @@ -270,7 +270,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z c2e4e73b27a58d99224ccc2d7f35dc84 2010-08-22T18:30:26.413363Z 4012 @@ -304,7 +304,7 @@ -2010-09-24T12:48:29.596042Z +2011-02-08T13:45:45.000000Z b5bd20e1b16f321b87b14ec6d0b7a9e7 2010-09-03T19:59:49.465806Z 4056 @@ -338,7 +338,7 @@ -2011-01-13T14:09:38.000000Z +2011-02-08T13:45:45.000000Z db6f5533a330ebdcd1dd5e4c47098024 2010-12-11T13:13:49.013705Z 4489 @@ -372,7 +372,7 @@ -2011-01-13T14:09:38.000000Z +2011-02-08T13:45:45.000000Z f147a1cbca0263a122d10bf674d6dcbf 2010-12-18T13:40:50.641112Z 4530 @@ -406,7 +406,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z 5cac68d4655699c1a4ce40ef17da7b0a 2009-07-29T19:04:27.717761Z 2827 @@ -440,7 +440,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z 334ec8cd87b661a181185092c242c41d 2010-08-08T07:07:20.961363Z 3924 @@ -474,7 +474,7 @@ -2011-01-13T14:09:38.000000Z +2011-02-08T13:45:45.000000Z eca2b7cfea14ef6185c358e55f1b8b48 2011-01-08T00:19:51.192586Z 4652 @@ -508,7 +508,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z ebae2e20ea4028620967382b877b5860 2010-08-18T15:01:35.032314Z 3946 @@ -542,7 +542,7 @@ -2010-09-24T12:48:29.599802Z +2011-02-08T13:45:45.000000Z e2c801f0755567e34186cdbbc510d29d 2010-09-16T18:27:33.887969Z 4090 @@ -576,7 +576,7 @@ -2010-09-23T14:37:44.575742Z +2011-02-08T13:45:45.000000Z 4b6048de503364b0ef668df08cceb602 2008-02-09T16:11:18.249226Z 1129 @@ -610,10 +610,10 @@ -2011-01-13T14:09:38.000000Z -47d5c2be3301716cd4351c51904801a3 -2010-12-14T19:03:17.057916Z -4512 +2011-02-08T13:49:51.000000Z +cdb3db6cd78da1f46578c9da61923c4e +2011-01-22T13:28:20.816262Z +4741 jplang has-props @@ -636,7 +636,7 @@ -2836 +2808 destroy.rhtml file @@ -644,7 +644,7 @@ -2010-09-23T14:37:44.571741Z +2011-02-08T13:45:45.000000Z b429d0e7dd6b3ef7bc1a28bdf0aeaf34 2009-04-24T17:18:36.117696Z 2685 @@ -678,7 +678,7 @@ -2010-11-19T13:04:50.824922Z +2011-02-08T13:45:45.000000Z 9889d4cce0dfd6d224e85fc1f489c623 2010-10-30T16:15:31.867344Z 4311 diff -r 07fa8a8b56a8 -r 0579821a129a app/views/issues/.svn/text-base/_relations.rhtml.svn-base --- a/app/views/issues/.svn/text-base/_relations.rhtml.svn-base Wed Jan 19 15:04:22 2011 +0000 +++ b/app/views/issues/.svn/text-base/_relations.rhtml.svn-base 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/.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 error

Rails 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 error

Rails 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 error

Rails 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 error

    Rails 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 = `<span class="CodeRay"><%CONTENT%></span>` + + DIV = <<-`DIV` +<div class="CodeRay"> + <div class="code"><pre><%CONTENT%></pre></div> +</div> + DIV + + TABLE = <<-`TABLE` +<table class="CodeRay"><tr> + <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><%LINE_NUMBERS%></pre></td> + <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><%CONTENT%></pre></td> +</tr></table> + TABLE + # title="double click to expand" + + LIST = <<-`LIST` +<ol class="CodeRay"> +<%CONTENT%> +</ol> + LIST + + PAGE = <<-`PAGE` +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <title> + + + + +<%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 = `<span class="CodeRay"><%CONTENT%></span>` + + DIV = <<-`DIV` +<div class="CodeRay"> + <div class="code"><pre><%CONTENT%></pre></div> +</div> + DIV + + TABLE = <<-`TABLE` +<table class="CodeRay"><tr> + <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><%LINE_NUMBERS%></pre></td> + <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><%CONTENT%></pre></td> +</tr></table> + TABLE + # title="double click to expand" + + LIST = <<-`LIST` +<ol class="CodeRay"> +<%CONTENT%> +</ol> + LIST + + PAGE = <<-`PAGE` +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> +<head> + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> + <title> + + + + +<%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(/ \.\.] | \+\+ | + && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<>>?=? /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 = / + ]*?language\s*=\s*"php"[^>]*?> | + ]*?language\s*=\s*'php'[^>]*?> | + <\?php\d? | + <\?(?!xml) + /xi + + PHP_END = %r! + | + \?> + !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 #{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(/< 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(/< :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(/ \.\.] | \+\+ | + && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<>>?=? /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 = / + ]*?language\s*=\s*"php"[^>]*?> | + ]*?language\s*=\s*'php'[^>]*?> | + <\?php\d? | + <\?(?!xml) + /xi + + PHP_END = %r! + | + \?> + !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 #{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(/< 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(/< '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, +
    +
    puts "Hello, World!"
    +
    + 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 +
    +
    puts "Hello, World!"
    +
    + +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, +
    +
    puts "Hello, World!"
    +
    + 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 = `<span class="CodeRay"><%CONTENT%></span>` - - DIV = <<-`DIV` -<div class="CodeRay"> - <div class="code"><pre><%CONTENT%></pre></div> -</div> - DIV - - TABLE = <<-`TABLE` -<table class="CodeRay"><tr> - <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><%LINE_NUMBERS%></pre></td> - <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><%CONTENT%></pre></td> -</tr></table> - TABLE - # title="double click to expand" - - LIST = <<-`LIST` -<ol class="CodeRay"> -<%CONTENT%> -</ol> - LIST - - PAGE = <<-`PAGE` -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <title> - - - - -<%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 = `<span class="CodeRay"><%CONTENT%></span>` - - DIV = <<-`DIV` -<div class="CodeRay"> - <div class="code"><pre><%CONTENT%></pre></div> -</div> - DIV - - TABLE = <<-`TABLE` -<table class="CodeRay"><tr> - <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre><%LINE_NUMBERS%></pre></td> - <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><%CONTENT%></pre></td> -</tr></table> - TABLE - # title="double click to expand" - - LIST = <<-`LIST` -<ol class="CodeRay"> -<%CONTENT%> -</ol> - LIST - - PAGE = <<-`PAGE` -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="de"> -<head> - <meta http-equiv="content-type" content="text/html; charset=utf-8" /> - <title> - - - - -<%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(/ \.\.] | \+\+ | - && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<>>?=? /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 = / - ]*?language\s*=\s*"php"[^>]*?> | - ]*?language\s*=\s*'php'[^>]*?> | - <\?php\d? | - <\?(?!xml) - /xi - - PHP_END = %r! - | - \?> - !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 #{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(/< 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(/< :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(/ \.\.] | \+\+ | - && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<>>?=? /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 = / - ]*?language\s*=\s*"php"[^>]*?> | - ]*?language\s*=\s*'php'[^>]*?> | - <\?php\d? | - <\?(?!xml) - /xi - - PHP_END = %r! - | - \?> - !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 #{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(/< 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(/< '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
    #