<%= 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 fca2657f4aa5 -r eeebe205a056 app/views/issues/.svn/text-base/_sidebar.rhtml.svn-base
--- a/app/views/issues/.svn/text-base/_sidebar.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/issues/.svn/text-base/_sidebar.rhtml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -13,11 +13,5 @@
<% end %>
<%= call_hook(:view_issues_sidebar_planning_bottom) %>
-<% unless sidebar_queries.empty? -%>
-<%= l(:label_query_plural) %>
-
-<% sidebar_queries.each do |query| -%>
-<%= link_to(h(query.name), :controller => 'issues', :action => 'index', :project_id => @project, :query_id => query) %>
-<% end -%>
+<%= render_sidebar_queries %>
<%= call_hook(:view_issues_sidebar_queries_bottom) %>
-<% end -%>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/issues/.svn/text-base/show.api.rsb.svn-base
--- a/app/views/issues/.svn/text-base/show.api.rsb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/issues/.svn/text-base/show.api.rsb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 app/views/issues/_relations.rhtml
--- a/app/views/issues/_relations.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/issues/_relations.rhtml Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 app/views/issues/_sidebar.rhtml
--- a/app/views/issues/_sidebar.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/issues/_sidebar.rhtml Thu Mar 03 12:02:03 2011 +0000
@@ -13,11 +13,5 @@
<% end %>
<%= call_hook(:view_issues_sidebar_planning_bottom) %>
-<% unless sidebar_queries.empty? -%>
-<%= l(:label_query_plural) %>
-
-<% sidebar_queries.each do |query| -%>
-<%= link_to(h(query.name), :controller => 'issues', :action => 'index', :project_id => @project, :query_id => query) %>
-<% end -%>
+<%= render_sidebar_queries %>
<%= call_hook(:view_issues_sidebar_queries_bottom) %>
-<% end -%>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/issues/show.api.rsb
--- a/app/views/issues/show.api.rsb Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/issues/show.api.rsb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 app/views/journals/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/journals/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,35 @@
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svn/!svn/ver/4954/trunk/app/views/journals
+END
+_notes_form.rhtml
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/2924/trunk/app/views/journals/_notes_form.rhtml
+END
+update.rjs
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/3596/trunk/app/views/journals/update.rjs
+END
+edit.rjs
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/1105/trunk/app/views/journals/edit.rjs
+END
+diff.html.erb
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/4954/trunk/app/views/journals/diff.html.erb
+END
+index.rxml
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/4034/trunk/app/views/journals/index.rxml
+END
diff -r fca2657f4aa5 -r eeebe205a056 app/views/journals/.svn/entries
--- a/app/views/journals/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/journals/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/journals
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/journals
http://redmine.rubyforge.org/svn
-2010-08-23T15:04:36.844654Z
-4034
-edavis10
+2011-02-27T13:34:41.060565Z
+4954
+jplang
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
fb8a5b1bfdbadbbaaa17ce7fc1dfcf3c
2009-10-11T10:36:11.599175Z
2924
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
269ec86216a5d0340e02940f1b190d51
2010-03-17T04:13:05.342620Z
3596
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
ce552c52f7c423630412d0593cc1ee61
2008-02-02T10:50:31.694950Z
1105
@@ -128,13 +128,47 @@
140
+diff.html.erb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+073352211ae7cecb9e1ff5ea1ce17150
+2011-02-27T13:34:41.060565Z
+4954
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+408
+
index.rxml
file
-2010-09-10T14:59:24.000000Z
+2011-03-03T11:05:10.000000Z
ef7f777c9318cee52e909377c4f96e8b
2010-08-23T15:04:36.844654Z
4034
diff -r fca2657f4aa5 -r eeebe205a056 app/views/journals/.svn/prop-base/diff.html.erb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/journals/.svn/prop-base/diff.html.erb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 app/views/journals/.svn/text-base/diff.html.erb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/journals/.svn/text-base/diff.html.erb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,10 @@
+<%=h @issue.tracker %> #<%= @issue.id %>
+<%= authoring @journal.created_on, @journal.user, :label => :label_updated_time_by %>
+
+
+<%= simple_format_without_paragraph @diff.to_html %>
+
+
+<%= link_to l(:button_back), issue_path(@issue), :onclick => 'history.back(); return false;' %>
+
+<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/journals/diff.html.erb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/journals/diff.html.erb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,10 @@
+<%=h @issue.tracker %> #<%= @issue.id %>
+<%= authoring @journal.created_on, @journal.user, :label => :label_updated_time_by %>
+
+
+<%= simple_format_without_paragraph @diff.to_html %>
+
+
+<%= link_to l(:button_back), issue_path(@issue), :onclick => 'history.back(); return false;' %>
+
+<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/layouts/.svn/all-wcprops
--- a/app/views/layouts/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/layouts/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,13 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 42
-/svn/!svn/ver/4731/trunk/app/views/layouts
+/svn/!svn/ver/4965/trunk/app/views/layouts
END
base.rhtml
K 25
svn:wc:ra_dav:version-url
V 53
-/svn/!svn/ver/4731/trunk/app/views/layouts/base.rhtml
+/svn/!svn/ver/4965/trunk/app/views/layouts/base.rhtml
END
mailer.text.plain.erb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 app/views/layouts/.svn/entries
--- a/app/views/layouts/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/layouts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/app/views/layouts
http://redmine.rubyforge.org/svn
-2011-01-16T16:36:58.753919Z
-4731
+2011-02-28T16:44:02.921792Z
+4965
jplang
@@ -32,10 +32,10 @@
-2011-01-19T15:03:32.000000Z
-0bc162aa0af44b46e02548061da67700
-2011-01-16T16:36:58.753919Z
-4731
+2011-03-03T11:40:18.000000Z
+be984c02903b5fdba04df41a14c73242
+2011-02-28T16:44:02.921792Z
+4965
jplang
has-props
@@ -58,7 +58,7 @@
-2927
+2912
mailer.text.plain.erb
file
@@ -66,7 +66,7 @@
-2010-11-19T13:04:48.184855Z
+2011-03-03T11:05:10.000000Z
490231bbc42932a0f9e1735a94d06260
2010-11-02T19:00:36.834304Z
4362
@@ -100,7 +100,7 @@
-2010-11-19T13:04:48.184855Z
+2011-03-03T11:05:10.000000Z
5073a425d4e7896c725996f9cf35f74b
2010-11-02T19:00:36.834304Z
4362
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.583752Z
+2011-03-03T11:05:10.000000Z
cc6ca08e56314fb510561e8eeb4ede46
2009-12-17T18:21:02.630202Z
3176
diff -r fca2657f4aa5 -r eeebe205a056 app/views/layouts/.svn/text-base/base.rhtml.svn-base
--- a/app/views/layouts/.svn/text-base/base.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/layouts/.svn/text-base/base.rhtml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -8,7 +8,7 @@
<%= favicon %>
<%= stylesheet_link_tag 'application', :media => 'all' %>
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
-<%= javascript_include_tag :defaults %>
+<%= javascript_heads %>
<%= heads_for_theme %>
<%= heads_for_wiki_formatter %>
<%= yield :header_tags -%>
-
+
diff -r fca2657f4aa5 -r eeebe205a056 app/views/time_entry_reports/.svn/entries
--- a/app/views/time_entry_reports/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/time_entry_reports/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/time_entry_reports
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/time_entry_reports
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:10.000000Z
d896f5cf56b2a3cd64887f239e584fdc
2010-10-07T15:51:09.349542Z
4239
@@ -66,7 +66,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:10.000000Z
5fa73daf0a67b2a39fd10320bcd7ab45
2010-10-05T16:07:17.015270Z
4232
diff -r fca2657f4aa5 -r eeebe205a056 app/views/timelog/.svn/entries
--- a/app/views/timelog/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/timelog/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:10.000000Z
128d8975cacb0db79fc14a461544db09
2010-10-12T15:55:21.984670Z
4250
@@ -66,7 +66,7 @@
-2010-11-19T13:04:48.784870Z
+2011-03-03T11:05:10.000000Z
404d6b75c96def01a9a6bf86a6f58697
2010-10-07T15:51:09.349542Z
4239
@@ -100,7 +100,7 @@
-2011-01-13T14:09:16.000000Z
+2011-03-03T11:05:10.000000Z
9faa66f4b89685010b3683f26c387512
2010-12-04T17:43:39.823144Z
4466
@@ -134,7 +134,7 @@
-2010-11-19T13:04:48.784870Z
+2011-03-03T11:05:10.000000Z
3bb82a2517a120b7a44add17f3369082
2010-10-11T15:31:42.953914Z
4248
@@ -168,7 +168,7 @@
-2010-11-19T13:04:48.784870Z
+2011-03-03T11:05:10.000000Z
43628f95cde9503c20744c3b9fe9dfcd
2010-10-06T18:23:45.014848Z
4235
@@ -202,7 +202,7 @@
-2011-01-13T14:09:16.000000Z
+2011-03-03T11:05:10.000000Z
5838cace900e781466a5826ba75b9f44
2010-12-04T17:43:39.823144Z
4466
diff -r fca2657f4aa5 -r eeebe205a056 app/views/trackers/.svn/entries
--- a/app/views/trackers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/trackers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/trackers
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/trackers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
952031a6216d1b67897c30936b8c656c
2010-02-15T16:41:27.289923Z
3437
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
0b8a4f0aead4d21c20c9cc8dd29141e5
2009-12-12T15:23:22.060140Z
3162
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
ac4b0e11130741048a5f7c7405bff3de
2009-12-09T11:03:55.646494Z
3146
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
cf313c286d40c5c44da29ad261b01421
2009-12-09T11:03:55.646494Z
3146
diff -r fca2657f4aa5 -r eeebe205a056 app/views/users/.svn/all-wcprops
--- a/app/views/users/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/users/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 40
-/svn/!svn/ver/4729/trunk/app/views/users
+/svn/!svn/ver/4900/trunk/app/views/users
END
_general.rhtml
K 25
@@ -51,18 +51,18 @@
V 52
/svn/!svn/ver/4493/trunk/app/views/users/_form.rhtml
END
+_preferences.html.erb
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/4900/trunk/app/views/users/_preferences.html.erb
+END
edit.rhtml
K 25
svn:wc:ra_dav:version-url
V 51
/svn/!svn/ver/4729/trunk/app/views/users/edit.rhtml
END
-_preferences.html.erb
-K 25
-svn:wc:ra_dav:version-url
-V 62
-/svn/!svn/ver/4223/trunk/app/views/users/_preferences.html.erb
-END
index.rhtml
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 app/views/users/.svn/entries
--- a/app/views/users/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/users/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/app/views/users
http://redmine.rubyforge.org/svn
-2011-01-16T15:23:11.666065Z
-4729
+2011-02-21T09:53:29.844413Z
+4900
jplang
@@ -32,7 +32,7 @@
-2010-11-19T13:04:49.388892Z
+2011-03-03T11:05:10.000000Z
27e27971f72ee72e276157b29606a4f8
2010-10-11T20:34:33.692909Z
4249
@@ -66,7 +66,7 @@
-2011-01-13T14:09:24.000000Z
+2011-03-03T11:05:10.000000Z
82d8afa73a30d32a1df6dbf0a6ec9ccc
2010-12-12T21:21:57.860671Z
4508
@@ -100,7 +100,7 @@
-2010-11-19T13:04:49.388892Z
+2011-03-03T11:05:10.000000Z
f19cc195f524459954b4b4be5bfdcff5
2010-09-30T18:22:46.611444Z
4230
@@ -134,7 +134,7 @@
-2010-11-19T13:04:49.388892Z
+2011-03-03T11:05:10.000000Z
488647d93840c1ffa5834cc45817c1c3
2010-09-29T16:00:45.891709Z
4229
@@ -168,7 +168,7 @@
-2011-01-13T14:09:24.000000Z
+2011-03-03T11:05:10.000000Z
e6086313266e733c482de5431e85f7a1
2010-12-12T14:25:23.262992Z
4497
@@ -202,7 +202,7 @@
-2011-01-13T14:09:24.000000Z
+2011-03-03T11:05:10.000000Z
2232eeac9e0dea5001f5c7dbd9156a79
2010-12-11T13:13:49.013705Z
4489
@@ -236,7 +236,7 @@
-2010-11-19T13:04:49.388892Z
+2011-03-03T11:05:10.000000Z
1914aa4c363a1dab0cdba1e49ccc13ff
2010-11-07T14:15:01.891476Z
4382
@@ -270,7 +270,7 @@
-2011-01-13T14:09:24.000000Z
+2011-03-03T11:05:10.000000Z
35c46993d584ac75dd129b95ac411a10
2010-12-12T13:39:55.171678Z
4493
@@ -298,13 +298,47 @@
1644
+_preferences.html.erb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+819ceb2599cdb65121387da777ec7454
+2011-02-21T09:53:29.844413Z
+4900
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+502
+
edit.rhtml
file
-2011-01-19T15:03:32.000000Z
+2011-03-03T11:05:10.000000Z
334693af38532eb4e5c8801223e2c718
2011-01-16T15:23:11.666065Z
4729
@@ -332,47 +366,13 @@
523
-_preferences.html.erb
-file
-
-
-
-
-2010-11-19T13:04:49.392852Z
-ebc1d625f2d6809ea491e7303f758e7a
-2010-09-28T22:13:06.534232Z
-4223
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-441
-
index.rhtml
file
-2011-01-19T15:03:32.000000Z
+2011-03-03T11:05:10.000000Z
82f2de0e0ade1e3dc2c39d3415d5580c
2011-01-16T15:23:11.666065Z
4729
@@ -406,7 +406,7 @@
-2011-01-13T14:09:24.000000Z
+2011-03-03T11:05:10.000000Z
5af24df58230f005be3a6814c6f53e33
2010-12-11T10:19:11.273304Z
4486
diff -r fca2657f4aa5 -r eeebe205a056 app/views/users/.svn/text-base/_preferences.html.erb.svn-base
--- a/app/views/users/.svn/text-base/_preferences.html.erb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/users/.svn/text-base/_preferences.html.erb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -2,5 +2,6 @@
<%= pref_fields.check_box :hide_mail %>
<%= pref_fields.select :time_zone, ActiveSupport::TimeZone.all.collect {|z| [ z.to_s, z.name ]}, :include_blank => true %>
<%= pref_fields.select :comments_sorting, [[l(:label_chronological_order), 'asc'], [l(:label_reverse_chronological_order), 'desc']] %>
+ <%= pref_fields.check_box :warn_on_leaving_unsaved %>
<% end %>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/users/_preferences.html.erb
--- a/app/views/users/_preferences.html.erb Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/users/_preferences.html.erb Thu Mar 03 12:02:03 2011 +0000
@@ -2,5 +2,6 @@
<%= pref_fields.check_box :hide_mail %>
<%= pref_fields.select :time_zone, ActiveSupport::TimeZone.all.collect {|z| [ z.to_s, z.name ]}, :include_blank => true %>
<%= pref_fields.select :comments_sorting, [[l(:label_chronological_order), 'asc'], [l(:label_reverse_chronological_order), 'desc']] %>
+ <%= pref_fields.check_box :warn_on_leaving_unsaved %>
<% end %>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/versions/.svn/entries
--- a/app/views/versions/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/versions/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/versions
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/versions
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:10.000000Z
a50c2acc01c8d25be8e2c8cd082a2272
2010-09-11T14:00:23.147923Z
4082
@@ -66,7 +66,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:10.000000Z
d53190d87d1c24abce0fc949f816a706
2010-09-17T15:55:08.377083Z
4097
@@ -100,7 +100,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:10.000000Z
ae897448ea943e1856633a3683c17a79
2010-10-29T22:40:02.439890Z
4307
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
acf01b501fb1e345fd7abf572233ead9
2009-12-06T10:28:20.099964Z
3123
@@ -168,7 +168,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:10.000000Z
b5364f2d6f4cb92d1f747cd3dda5098f
2010-09-17T16:11:43.740142Z
4098
@@ -202,7 +202,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
6e68f24a6d6571388df3018bc915d37a
2009-11-15T15:22:55.021661Z
3064
@@ -236,7 +236,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:10.000000Z
85ddc3502659176221220bebef002d6c
2010-09-17T15:55:08.377083Z
4097
diff -r fca2657f4aa5 -r eeebe205a056 app/views/watchers/.svn/entries
--- a/app/views/watchers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/watchers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/watchers
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/watchers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
7ece4fb161c765ac7e63c30883733d99
2010-03-13T17:45:41.194736Z
3579
diff -r fca2657f4aa5 -r eeebe205a056 app/views/welcome/.svn/entries
--- a/app/views/welcome/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/welcome/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/welcome
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/welcome
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T12:46:09.000000Z
+2011-03-03T11:05:10.000000Z
df32441c6802182ffb9a205c97ec8f3b
2010-08-27T14:05:54.014502Z
4047
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:10.000000Z
dbe04ed0b787a5470a99a1f286c0685e
2009-01-27T17:27:50.299725Z
2319
diff -r fca2657f4aa5 -r eeebe205a056 app/views/wiki/.svn/all-wcprops
--- a/app/views/wiki/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/.svn/all-wcprops Thu Mar 03 12:02:03 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/4953/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
@@ -55,7 +55,7 @@
K 25
svn:wc:ra_dav:version-url
V 50
-/svn/!svn/ver/4551/trunk/app/views/wiki/diff.rhtml
+/svn/!svn/ver/4953/trunk/app/views/wiki/diff.rhtml
END
_content.rhtml
K 25
@@ -69,15 +69,15 @@
V 54
/svn/!svn/ver/4296/trunk/app/views/wiki/annotate.rhtml
END
+date_index.html.erb
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/4303/trunk/app/views/wiki/date_index.html.erb
+END
destroy.rhtml
K 25
svn:wc:ra_dav:version-url
V 53
/svn/!svn/ver/4296/trunk/app/views/wiki/destroy.rhtml
END
-date_index.html.erb
-K 25
-svn:wc:ra_dav:version-url
-V 59
-/svn/!svn/ver/4303/trunk/app/views/wiki/date_index.html.erb
-END
diff -r fca2657f4aa5 -r eeebe205a056 app/views/wiki/.svn/entries
--- a/app/views/wiki/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/app/views/wiki
http://redmine.rubyforge.org/svn
-2011-01-06T21:24:32.739169Z
-4651
+2011-02-27T12:50:47.369941Z
+4953
jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.719778Z
+2011-03-03T11:05:11.000000Z
071f00658656d063a029ff9efcfda553
2009-11-11T11:10:03.406528Z
3026
@@ -66,7 +66,7 @@
-2010-11-19T13:04:50.809800Z
+2011-03-03T11:05:11.000000Z
d47125b655bae6af3af29514ca23ec15
2010-10-25T16:16:46.309025Z
4290
@@ -100,7 +100,7 @@
-2010-11-19T13:04:50.809800Z
+2011-03-03T11:05:11.000000Z
1ebc19864533a067dc46a3bc6f3e9b22
2010-10-28T21:25:38.778234Z
4303
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.719778Z
+2011-03-03T11:05:11.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-03-03T11:05:11.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-03-03T11:05:11.000000Z
cc9828c34998619dbd4b4925bf511be8
2010-10-28T21:25:38.778234Z
4303
@@ -236,7 +236,7 @@
-2010-11-19T13:04:50.812967Z
+2011-03-03T11:05:11.000000Z
b45d32467f7beb06dbe055ecf7fdb247
2010-11-06T14:30:32.528294Z
4375
@@ -270,7 +270,7 @@
-2010-11-19T13:04:50.812967Z
+2011-03-03T11:05:11.000000Z
619db9d2a58a28c4b5c4baeaee88cc41
2010-10-27T16:27:06.240747Z
4296
@@ -304,10 +304,10 @@
-2011-01-13T14:09:29.000000Z
-da40592a7819a8786e7e436b2ecff8b1
-2010-12-20T22:33:44.015948Z
-4551
+2011-03-03T11:40:18.000000Z
+954230b09809d40bbd6f6514fb1fcc59
+2011-02-27T12:50:47.369941Z
+4953
jplang
has-props
@@ -330,7 +330,7 @@
-879
+931
_content.rhtml
file
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.719778Z
+2011-03-03T11:05:11.000000Z
8705c97ebf1405603afbbd8614ee9d2b
2007-11-12T14:36:33.182682Z
897
@@ -372,7 +372,7 @@
-2010-11-19T13:04:50.812967Z
+2011-03-03T11:05:11.000000Z
36a354ea1a705ec4843972e520ce2bd6
2010-10-27T16:27:06.240747Z
4296
@@ -400,13 +400,47 @@
1212
+date_index.html.erb
+file
+
+
+
+
+2011-03-03T11:05:11.000000Z
+5edb3698546c4aad9913945d39005221
+2010-10-28T21:25:38.778234Z
+4303
+edavis10
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1117
+
destroy.rhtml
file
-2010-11-19T13:04:50.812967Z
+2011-03-03T11:05:11.000000Z
5f032c821889bfc8bf9e6eeca1023f58
2010-10-27T16:27:06.240747Z
4296
@@ -434,37 +468,3 @@
908
-date_index.html.erb
-file
-
-
-
-
-2010-11-19T13:04:50.812967Z
-5edb3698546c4aad9913945d39005221
-2010-10-28T21:25:38.778234Z
-4303
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1117
-
diff -r fca2657f4aa5 -r eeebe205a056 app/views/wiki/.svn/text-base/diff.rhtml.svn-base
--- a/app/views/wiki/.svn/text-base/diff.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/.svn/text-base/diff.rhtml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -12,6 +12,6 @@
(<%= @diff.content_to.author ? @diff.content_to.author.name : "anonyme" %>, <%= format_time(@diff.content_to.updated_on) %>)
-
-
-<%= html_diff(@diff) %>
+
+<%= simple_format_without_paragraph @diff.to_html %>
+
diff -r fca2657f4aa5 -r eeebe205a056 app/views/wiki/.svn/text-base/history.rhtml.svn-base
--- a/app/views/wiki/.svn/text-base/history.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/.svn/text-base/history.rhtml.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 app/views/wiki/diff.rhtml
--- a/app/views/wiki/diff.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/diff.rhtml Thu Mar 03 12:02:03 2011 +0000
@@ -12,6 +12,6 @@
(<%= @diff.content_to.author ? @diff.content_to.author.name : "anonyme" %>, <%= format_time(@diff.content_to.updated_on) %>)
-
-
-<%= html_diff(@diff) %>
+
+<%= simple_format_without_paragraph @diff.to_html %>
+
diff -r fca2657f4aa5 -r eeebe205a056 app/views/wiki/history.rhtml
--- a/app/views/wiki/history.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wiki/history.rhtml Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 app/views/wikis/.svn/entries
--- a/app/views/wikis/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/wikis/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/app/views/wikis
+4993
+http://redmine.rubyforge.org/svn/trunk/app/views/wikis
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
6edeee3130b12027d4d8dbfeca809abb
2007-09-14T11:34:08.234701Z
725
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/all-wcprops
--- a/app/views/workflows/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/4428/trunk/app/views/workflows
+/svn/!svn/ver/4895/trunk/app/views/workflows
END
copy.rhtml
K 25
@@ -19,11 +19,17 @@
K 25
svn:wc:ra_dav:version-url
V 55
-/svn/!svn/ver/3694/trunk/app/views/workflows/edit.rhtml
+/svn/!svn/ver/4895/trunk/app/views/workflows/edit.rhtml
END
index.rhtml
K 25
svn:wc:ra_dav:version-url
V 56
-/svn/!svn/ver/4428/trunk/app/views/workflows/index.rhtml
+/svn/!svn/ver/4890/trunk/app/views/workflows/index.rhtml
END
+_form.html.erb
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/4895/trunk/app/views/workflows/_form.html.erb
+END
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/entries
--- a/app/views/workflows/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/app/views/workflows
http://redmine.rubyforge.org/svn
-2010-11-27T09:54:16.602477Z
-4428
+2011-02-20T15:38:07.840581Z
+4895
jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.727733Z
+2011-03-03T11:05:10.000000Z
d7c2b6481788394f541fe6af5dadd598
2009-12-12T10:06:07.860865Z
3154
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.727733Z
+2011-03-03T11:05:10.000000Z
2457a85600aa051fcf9edf06010e6fcc
2009-12-12T10:06:07.860865Z
3154
@@ -100,10 +100,10 @@
-2010-09-23T14:37:44.727733Z
-ee551cfe66cd8df0fbd5bc7bac081200
-2010-04-27T17:54:27.767853Z
-3694
+2011-03-03T11:40:18.000000Z
+f52bc187d855a23aea0bc36061a8d179
+2011-02-20T15:38:07.840581Z
+4895
jplang
has-props
@@ -126,7 +126,7 @@
-2474
+2211
index.rhtml
file
@@ -134,10 +134,10 @@
-2011-01-13T14:09:10.000000Z
-40709e258d1a829cf73046d8e1b5d7f3
-2010-11-27T09:54:16.602477Z
-4428
+2011-03-03T11:40:18.000000Z
+0943677a780ac0d9c0ba1a7000148f13
+2011-02-20T13:13:10.623157Z
+4890
jplang
has-props
@@ -162,3 +162,37 @@
851
+_form.html.erb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+a2442c53d709a008d9026746d5f3cfd3
+2011-02-20T15:38:07.840581Z
+4895
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1673
+
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/prop-base/_form.html.erb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/workflows/.svn/prop-base/_form.html.erb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/text-base/_form.html.erb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/workflows/.svn/text-base/_form.html.erb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,40 @@
+
+
+
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+ <%=l(:label_current_status)%>
+ |
+ <%=l(:label_new_statuses_allowed)%> |
+
+
+ |
+ <% for new_status in @statuses %>
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.new-status-#{new_status.id}')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+ <%=h new_status.name %>
+ |
+ <% end %>
+
+
+
+ <% for old_status in @statuses %>
+ ">
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.old-status-#{old_status.id}')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+
+ <%=h old_status.name %>
+ |
+ <% for new_status in @statuses -%>
+
+ <%= check_box_tag "issue_status[#{ old_status.id }][#{new_status.id}][]", name, workflows.detect {|w| w.old_status_id == old_status.id && w.new_status_id == new_status.id},
+ :class => "old-status-#{old_status.id} new-status-#{new_status.id}" %>
+ |
+ <% end -%>
+
+ <% end %>
+
+
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/text-base/edit.rhtml.svn-base
--- a/app/views/workflows/.svn/text-base/edit.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/.svn/text-base/edit.rhtml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -20,54 +20,31 @@
<% end %>
-
<% if @tracker && @role && @statuses.any? %>
-<% form_tag({}, :id => 'workflow_form' ) do %>
-<%= hidden_field_tag 'tracker_id', @tracker.id %>
-<%= hidden_field_tag 'role_id', @role.id %>
-
-<%= check_all_links 'workflow_form' %>
-
-<%= submit_tag l(:button_save) %>
-<% end %>
+ <% form_tag({}, :id => 'workflow_form' ) do %>
+ <%= hidden_field_tag 'tracker_id', @tracker.id %>
+ <%= hidden_field_tag 'role_id', @role.id %>
+
+ <%= submit_tag l(:button_save) %>
+ <% end %>
<% end %>
<% html_title(l(:label_workflow)) -%>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/.svn/text-base/index.rhtml.svn-base
--- a/app/views/workflows/.svn/text-base/index.rhtml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/.svn/text-base/index.rhtml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -24,7 +24,7 @@
<%= h tracker %> |
<% roles.each do |role, count| -%>
- <%= link_to((count > 1 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
+ <%= link_to((count > 0 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
|
<% end -%>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/_form.html.erb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/views/workflows/_form.html.erb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,40 @@
+
+
+
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+ <%=l(:label_current_status)%>
+ |
+ <%=l(:label_new_statuses_allowed)%> |
+
+
+ |
+ <% for new_status in @statuses %>
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.new-status-#{new_status.id}')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+ <%=h new_status.name %>
+ |
+ <% end %>
+
+
+
+ <% for old_status in @statuses %>
+ ">
+
+ <%= link_to_function(image_tag('toggle_check.png'), "toggleCheckboxesBySelector('table.transitions-#{name} input.old-status-#{old_status.id}')",
+ :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}") %>
+
+ <%=h old_status.name %>
+ |
+ <% for new_status in @statuses -%>
+
+ <%= check_box_tag "issue_status[#{ old_status.id }][#{new_status.id}][]", name, workflows.detect {|w| w.old_status_id == old_status.id && w.new_status_id == new_status.id},
+ :class => "old-status-#{old_status.id} new-status-#{new_status.id}" %>
+ |
+ <% end -%>
+
+ <% end %>
+
+
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/edit.rhtml
--- a/app/views/workflows/edit.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/edit.rhtml Thu Mar 03 12:02:03 2011 +0000
@@ -20,54 +20,31 @@
<% end %>
-
<% if @tracker && @role && @statuses.any? %>
-<% form_tag({}, :id => 'workflow_form' ) do %>
-<%= hidden_field_tag 'tracker_id', @tracker.id %>
-<%= hidden_field_tag 'role_id', @role.id %>
-
-<%= check_all_links 'workflow_form' %>
-
-<%= submit_tag l(:button_save) %>
-<% end %>
+ <% form_tag({}, :id => 'workflow_form' ) do %>
+ <%= hidden_field_tag 'tracker_id', @tracker.id %>
+ <%= hidden_field_tag 'role_id', @role.id %>
+
+ <%= submit_tag l(:button_save) %>
+ <% end %>
<% end %>
<% html_title(l(:label_workflow)) -%>
diff -r fca2657f4aa5 -r eeebe205a056 app/views/workflows/index.rhtml
--- a/app/views/workflows/index.rhtml Thu Jan 20 09:59:02 2011 +0000
+++ b/app/views/workflows/index.rhtml Thu Mar 03 12:02:03 2011 +0000
@@ -24,7 +24,7 @@
<%= h tracker %> |
<% roles.each do |role, count| -%>
- <%= link_to((count > 1 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
+ <%= link_to((count > 0 ? count : image_tag('false.png')), {:action => 'edit', :role_id => role, :tracker_id => tracker}, :title => l(:button_edit)) %>
|
<% end -%>
diff -r fca2657f4aa5 -r eeebe205a056 config/.svn/all-wcprops
--- a/config/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/config/.svn/all-wcprops Thu Mar 03 12:02:03 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/4955/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/4950/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/4904/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 fca2657f4aa5 -r eeebe205a056 config/.svn/dir-prop-base
--- a/config/.svn/dir-prop-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/.svn/dir-prop-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,8 @@
K 10
svn:ignore
-V 23
+V 41
database.yml
email.yml
+configuration.yml
END
diff -r fca2657f4aa5 -r eeebe205a056 config/.svn/entries
--- a/config/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/config/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/config
http://redmine.rubyforge.org/svn
-2011-01-16T15:23:11.666065Z
-4729
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -32,7 +32,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:14.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-03-03T11:40:18.000000Z
+69243d1b5b9b111da631c7034d51ba71
+2011-02-26T13:09:25.657748Z
+4950
+jplang
has-props
@@ -92,7 +92,7 @@
-2120
+4886
locales
dir
@@ -103,7 +103,7 @@
-2011-01-19T15:03:32.000000Z
+2011-03-03T11:05:14.000000Z
b03599e0dc8d0a6b03c3173864eb57bd
2011-01-16T15:23:11.666065Z
4729
@@ -137,7 +137,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:14.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-03-03T11:40:18.000000Z
+cc9c7d7f9a4bd800d2c4a8737147e4c3
+2011-02-21T11:02:18.659691Z
+4904
jplang
has-props
@@ -200,7 +200,7 @@
-2494
+2553
environments
dir
@@ -211,7 +211,7 @@
-2010-09-23T14:37:44.731779Z
+2011-03-03T11:05:14.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-03-03T11:05:14.000000Z
+f33e1e1bf73ba5d10ef3a6f170da3088
+2011-01-23T10:25:48.265995Z
+4753
jplang
has-props
@@ -271,5 +271,5 @@
-750
+755
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 config/.svn/prop-base/email.yml.example.svn-base
--- a/config/.svn/prop-base/email.yml.example.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,147 @@
+# = 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.
+ # Examples:
+ # 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)
+ scm_subversion_command:
+ scm_mercurial_command:
+ scm_git_command:
+ scm_cvs_command:
+ scm_bazaar_command:
+ scm_darcs_command:
+
+ # Key used to encrypt sensitive data in the database (SCM and LDAP passwords).
+ # If you don't want to enable data encryption, just leave it blank.
+ # WARNING: losing/changing this key will make encrypted data unreadable.
+ #
+ # If you want to encrypt existing passwords in your database:
+ # * set the cipher key here in your configuration file
+ # * encrypt data using 'rake db:encrypt RAILS_ENV=production'
+ #
+ # If you have encrypted data and want to change this key, you have to:
+ # * decrypt data using 'rake db:decrypt RAILS_ENV=production' first
+ # * change the cipher key here in your configuration file
+ # * encrypt data using 'rake db:encrypt RAILS_ENV=production'
+ database_cipher_key:
+
+# 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 fca2657f4aa5 -r eeebe205a056 config/.svn/text-base/database.yml.example.svn-base
--- a/config/.svn/text-base/database.yml.example.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/.svn/text-base/database.yml.example.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -36,4 +36,4 @@
test_sqlite3:
adapter: sqlite3
- database: db/test.db
+ database: db/test.sqlite3
diff -r fca2657f4aa5 -r eeebe205a056 config/.svn/text-base/email.yml.example.svn-base
--- a/config/.svn/text-base/email.yml.example.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 config/.svn/text-base/environment.rb.svn-base
--- a/config/.svn/text-base/environment.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/.svn/text-base/environment.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -5,7 +5,7 @@
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
@@ -24,7 +24,7 @@
# config.frameworks -= [ :action_web_service, :action_mailer ]
# Add additional load paths for sweepers
- config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )
+ config.autoload_paths += %W( #{RAILS_ROOT}/app/sweepers )
# Force all environments to use the same logger level
# (by default production uses :info, the others :debug)
@@ -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 fca2657f4aa5 -r eeebe205a056 config/configuration.yml.example
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/configuration.yml.example Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,147 @@
+# = 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.
+ # Examples:
+ # 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)
+ scm_subversion_command:
+ scm_mercurial_command:
+ scm_git_command:
+ scm_cvs_command:
+ scm_bazaar_command:
+ scm_darcs_command:
+
+ # Key used to encrypt sensitive data in the database (SCM and LDAP passwords).
+ # If you don't want to enable data encryption, just leave it blank.
+ # WARNING: losing/changing this key will make encrypted data unreadable.
+ #
+ # If you want to encrypt existing passwords in your database:
+ # * set the cipher key here in your configuration file
+ # * encrypt data using 'rake db:encrypt RAILS_ENV=production'
+ #
+ # If you have encrypted data and want to change this key, you have to:
+ # * decrypt data using 'rake db:decrypt RAILS_ENV=production' first
+ # * change the cipher key here in your configuration file
+ # * encrypt data using 'rake db:encrypt RAILS_ENV=production'
+ database_cipher_key:
+
+# 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 fca2657f4aa5 -r eeebe205a056 config/database.yml.example
--- a/config/database.yml.example Thu Jan 20 09:59:02 2011 +0000
+++ b/config/database.yml.example Thu Mar 03 12:02:03 2011 +0000
@@ -36,4 +36,4 @@
test_sqlite3:
adapter: sqlite3
- database: db/test.db
+ database: db/test.sqlite3
diff -r fca2657f4aa5 -r eeebe205a056 config/email.yml.example
--- a/config/email.yml.example Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 config/environment.rb
--- a/config/environment.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/config/environment.rb Thu Mar 03 12:02:03 2011 +0000
@@ -5,7 +5,7 @@
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
@@ -24,7 +24,7 @@
# config.frameworks -= [ :action_web_service, :action_mailer ]
# Add additional load paths for sweepers
- config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )
+ config.autoload_paths += %W( #{RAILS_ROOT}/app/sweepers )
# Force all environments to use the same logger level
# (by default production uses :info, the others :debug)
@@ -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 fca2657f4aa5 -r eeebe205a056 config/environments/.svn/entries
--- a/config/environments/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/config/environments/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/config/environments
+4993
+http://redmine.rubyforge.org/svn/trunk/config/environments
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:14.000000Z
08b25fdea5e3e041116340c3c3090b18
2010-11-14T15:14:19.280754Z
4405
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
02eadf22aa59353271c702e4865138b1
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
213279c73e8c922d0a9d43f3c1cc6943
2010-02-08T18:53:07.634937Z
3397
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
d08152d4dda4608f254785b23840140a
2007-09-27T22:30:57.196220Z
772
@@ -168,7 +168,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
213279c73e8c922d0a9d43f3c1cc6943
2010-02-08T18:53:07.634937Z
3397
@@ -202,7 +202,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:14.000000Z
17a6fbb168f3951191541f0f5a554454
2010-09-26T16:54:38.112012Z
4182
diff -r fca2657f4aa5 -r eeebe205a056 config/initializers/.svn/all-wcprops
--- a/config/initializers/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/config/initializers/.svn/all-wcprops Thu Mar 03 12:02:03 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/4904/trunk/config/initializers
END
inflections.rb
K 25
@@ -19,7 +19,7 @@
K 25
svn:wc:ra_dav:version-url
V 58
-/svn/!svn/ver/4516/trunk/config/initializers/10-patches.rb
+/svn/!svn/ver/4904/trunk/config/initializers/10-patches.rb
END
backtrace_silencers.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 fca2657f4aa5 -r eeebe205a056 config/initializers/.svn/entries
--- a/config/initializers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/config/initializers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/config/initializers
http://redmine.rubyforge.org/svn
-2011-01-10T18:25:12.105765Z
-4679
+2011-02-21T11:02:18.659691Z
+4904
jplang
has-props
@@ -32,7 +32,7 @@
-2010-09-23T14:37:44.743734Z
+2011-03-03T11:05:14.000000Z
acc71445fc1c65ebe6fdeba695fea714
2009-09-20T14:06:57.257282Z
2895
@@ -66,7 +66,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:14.000000Z
45627c8ad9bafcee93e6ce01b92b57d1
2011-01-10T18:25:12.105765Z
4679
@@ -100,10 +100,10 @@
-2011-01-13T14:09:38.000000Z
-e83154f604f9f3b0307e1b435f9cc95c
-2010-12-17T08:34:29.830642Z
-4516
+2011-03-03T11:40:18.000000Z
+17f5c9eadec957cb8fb2b6d1f07b61ae
+2011-02-21T11:02:18.659691Z
+4904
jplang
has-props
@@ -126,7 +126,7 @@
-3149
+2907
backtrace_silencers.rb
file
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.743734Z
+2011-03-03T11:05:14.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-03-03T11:05:14.000000Z
0005ed7b233f71646e0f75b9994cf219
2008-09-10T18:26:13.133776Z
1797
@@ -236,7 +202,7 @@
-2010-09-23T14:37:44.743734Z
+2011-03-03T11:05:14.000000Z
a7948d8e86bcd799c74945fe91b4a8b1
2009-09-20T14:06:57.257282Z
2895
diff -r fca2657f4aa5 -r eeebe205a056 config/initializers/.svn/prop-base/40-email.rb.svn-base
--- a/config/initializers/.svn/prop-base/40-email.rb.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 config/initializers/.svn/text-base/10-patches.rb.svn-base
--- a/config/initializers/.svn/text-base/10-patches.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/initializers/.svn/text-base/10-patches.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -79,16 +79,12 @@
ActionMailer::Base.send :include, AsynchronousMailer
-# TODO: Hack to support i18n 4.x on Rails 2.3.5. Remove post 2.3.6.
-# See http://www.redmine.org/issues/6428 and http://www.redmine.org/issues/5608
-module I18n
- module Backend
- module Base
- def warn_syntax_deprecation!(*args)
- return if @skip_syntax_deprecation
- warn "The {{key}} interpolation syntax in I18n messages is deprecated and will be removed in Redmine 1.2. Please use %{key} instead, see http://www.redmine.org/issues/7013 for more information."
- @skip_syntax_deprecation = true
- end
+# TMail::Unquoter.convert_to_with_fallback_on_iso_8859_1 introduced in TMail 1.2.7
+# triggers a test failure in test_add_issue_with_japanese_keywords(MailHandlerTest)
+module TMail
+ class Unquoter
+ class << self
+ alias_method :convert_to, :convert_to_without_fallback_on_iso_8859_1
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 config/initializers/.svn/text-base/40-email.rb.svn-base
--- a/config/initializers/.svn/text-base/40-email.rb.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 config/initializers/10-patches.rb
--- a/config/initializers/10-patches.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/config/initializers/10-patches.rb Thu Mar 03 12:02:03 2011 +0000
@@ -79,16 +79,12 @@
ActionMailer::Base.send :include, AsynchronousMailer
-# TODO: Hack to support i18n 4.x on Rails 2.3.5. Remove post 2.3.6.
-# See http://www.redmine.org/issues/6428 and http://www.redmine.org/issues/5608
-module I18n
- module Backend
- module Base
- def warn_syntax_deprecation!(*args)
- return if @skip_syntax_deprecation
- warn "The {{key}} interpolation syntax in I18n messages is deprecated and will be removed in Redmine 1.2. Please use %{key} instead, see http://www.redmine.org/issues/7013 for more information."
- @skip_syntax_deprecation = true
- end
+# TMail::Unquoter.convert_to_with_fallback_on_iso_8859_1 introduced in TMail 1.2.7
+# triggers a test failure in test_add_issue_with_japanese_keywords(MailHandlerTest)
+module TMail
+ class Unquoter
+ class << self
+ alias_method :convert_to, :convert_to_without_fallback_on_iso_8859_1
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 config/initializers/40-email.rb
--- a/config/initializers/40-email.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 config/locales/.svn/all-wcprops
--- a/config/locales/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,263 +1,269 @@
K 25
svn:wc:ra_dav:version-url
V 39
-/svn/!svn/ver/4724/trunk/config/locales
+/svn/!svn/ver/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4954/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/4955/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/4955/trunk/config/locales/cs.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/4955/trunk/config/locales/mk.yml
END
es.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/es.yml
+/svn/!svn/ver/4955/trunk/config/locales/es.yml
END
ko.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/ko.yml
+/svn/!svn/ver/4955/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
+/svn/!svn/ver/4955/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/4955/trunk/config/locales/zh-TW.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/4955/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/4955/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/4955/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/4955/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/4955/trunk/config/locales/uk.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/4955/trunk/config/locales/da.yml
END
sr.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4554/trunk/config/locales/sr.yml
+/svn/!svn/ver/4955/trunk/config/locales/sr.yml
+END
+fa.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4955/trunk/config/locales/fa.yml
+END
+sv.yml
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4955/trunk/config/locales/sv.yml
END
bg.yml
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4656/trunk/config/locales/bg.yml
+/svn/!svn/ver/4955/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/4955/trunk/config/locales/de.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/4955/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/4955/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/4955/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/4955/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/4954/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/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/4955/trunk/config/locales/vi.yml
END
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/entries
--- a/config/locales/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/config/locales
http://redmine.rubyforge.org/svn
-2011-01-15T14:25:11.532146Z
-4724
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -32,10 +32,10 @@
-2011-01-13T14:09:38.000000Z
-04a33a87317c990f209c9e0b23a94dfb
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+3542e97eeeee34df7a3d6d64a4ce0407
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -58,7 +58,7 @@
-43738
+44029
sr-YU.yml
file
@@ -66,10 +66,10 @@
-2011-01-13T14:09:38.000000Z
-c066a5e1a32e5c7141a461819119ca09
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+b05d928becf91c52a78271c93715bb1b
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -92,7 +92,7 @@
-42004
+42299
ro.yml
file
@@ -100,10 +100,10 @@
-2011-01-13T14:09:38.000000Z
-4127de9dda4a292a21188ddb864bdb22
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+dd9fb4aae0fa69165e4f4e1100c3fa26
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -126,7 +126,7 @@
-40126
+40417
lv.yml
file
@@ -134,10 +134,10 @@
-2011-01-13T14:09:38.000000Z
-0b93573ed1b6c4d16c566facc9c51ea3
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+12f9b4e9c849923a86334f56fbb65f1a
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -160,7 +160,7 @@
-42010
+42305
zh.yml
file
@@ -168,10 +168,10 @@
-2011-01-13T14:09:38.000000Z
-dabc9f1dd8c6fe2a6af4e19d03e9ed65
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+dde46f425abed5caa3d8d3afe9049fb7
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -194,7 +194,7 @@
-38012
+38303
pt.yml
file
@@ -202,10 +202,10 @@
-2011-01-13T14:09:38.000000Z
-4c86c4b56c721fac90f5939dd7f5a4ad
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+017dbb90319bfa26bab5a45296b337b3
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -228,7 +228,7 @@
-41486
+41777
ca.yml
file
@@ -236,10 +236,10 @@
-2011-01-13T14:09:38.000000Z
-ee91e7c266c44fdcaee547bf143ba5fe
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+55d3137cb8850d53bce7337a8a0cf720
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -262,7 +262,7 @@
-41935
+42226
pt-BR.yml
file
@@ -270,10 +270,10 @@
-2011-01-13T14:09:38.000000Z
-390265b3732a994f563d7137967e2278
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+0714d61f3439e9e8058f26487eae91b2
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -296,7 +296,7 @@
-41370
+41661
tr.yml
file
@@ -304,10 +304,10 @@
-2011-01-13T14:09:38.000000Z
-f36ff0ac378a574be6bb66ea4340bdfa
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+5bc442cb54c4373e1aeea7dd56e30bd0
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -330,7 +330,7 @@
-40004
+40295
ru.yml
file
@@ -338,10 +338,10 @@
-2011-01-13T14:09:38.000000Z
-b19c21ea18bf2e9d14353dde9f48301b
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+6a3741281160ebb7f27f6d2bb03499c8
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -364,7 +364,7 @@
-61833
+62124
en-GB.yml
file
@@ -372,10 +372,10 @@
-2011-01-13T14:09:38.000000Z
-1c06a4a68ae568c890ae0c1b76477f22
-2010-12-17T09:14:54.583423Z
-4519
+2011-03-03T11:40:18.000000Z
+831604fd1ce5d6f72e64688ce6f62581
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -398,7 +398,7 @@
-39390
+39685
id.yml
file
@@ -406,10 +406,10 @@
-2011-01-13T14:09:38.000000Z
-cee65e2ec68fbd913b617131805cb378
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+eb45d7f2bc3d3e7fd8ab01db1a3041a4
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -432,7 +432,7 @@
-39746
+40037
el.yml
file
@@ -440,10 +440,10 @@
-2011-01-13T14:09:38.000000Z
-762ca0186f8e7567f3038b8ea6f5bb5c
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+98b4f21cce1a0242221eecb23f5fc727
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -466,7 +466,7 @@
-54854
+55145
en.yml
file
@@ -474,10 +474,10 @@
-2011-01-13T14:09:38.000000Z
-9bf57c4bbbe21feffb9b80b1dd359dc0
-2010-12-17T09:14:54.583423Z
-4519
+2011-03-03T11:40:18.000000Z
+4265d626f893cc08f2142d0a254e2ac7
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
@@ -500,7 +500,7 @@
-38492
+38787
gl.yml
file
@@ -508,10 +508,10 @@
-2011-01-13T14:09:38.000000Z
-b3d6b890444008ad69a9b22d6ebbd8ae
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+03aa773b8d01d5bc421b8896fc9c861b
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -534,7 +534,7 @@
-40604
+40895
cs.yml
file
@@ -542,10 +542,10 @@
-2011-01-13T14:09:38.000000Z
-b5d7dae55451b82b6050007739026770
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+85ac61a4067ad6dda83d43acbf874cf6
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -568,7 +568,7 @@
-41330
+41752
mk.yml
file
@@ -576,10 +576,10 @@
-2011-01-13T14:09:38.000000Z
-8a4d25a273edbf55ec8118387a78e386
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+626a66d6d98190418f4a4fd43077734f
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -602,7 +602,7 @@
-49123
+49418
es.yml
file
@@ -610,10 +610,10 @@
-2011-01-13T14:09:38.000000Z
-2a2cc7f9b081a6c28f36452f0df75c3c
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+6ef7d2fb0af3cce0f6afbdea3ff9ab17
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -636,7 +636,75 @@
-43379
+43670
+
+ko.yml
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+1ff250f0b17ecb9465add49dfcf9bb91
+2011-02-27T13:43:18.863191Z
+4955
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+44501
+
+eu.yml
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+b3ba93d14600b4b992e65fbd243759ae
+2011-02-27T13:43:18.863191Z
+4955
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+42568
zh-TW.yml
file
@@ -644,10 +712,10 @@
-2011-01-13T14:09:38.000000Z
-a40f011945cb425a77762a94d6fa4387
-2010-12-30T15:43:02.374736Z
-4593
+2011-03-03T11:40:18.000000Z
+f4c6a612b84e5087ed4d023414dab628
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -670,75 +738,7 @@
-42317
-
-eu.yml
-file
-
-
-
-
-2011-01-13T14:09:38.000000Z
-0272605dbb554b76e81e7d80f1ce376e
-2010-12-22T20:40:56.075532Z
-4554
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-42073
-
-ko.yml
-file
-
-
-
-
-2011-01-13T14:09:38.000000Z
-3e5ad3b8bb49d5d19bbcd4c06d3f6a91
-2010-12-22T20:40:56.075532Z
-4554
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-44210
+42608
mn.yml
file
@@ -746,10 +746,10 @@
-2011-01-13T14:09:38.000000Z
-29ec44faa431f0307ebd9701359928ae
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+b9e2987cb3cbaab826c7388d09b74f75
+2011-02-27T13:43:18.863191Z
+4955
jplang
@@ -772,7 +772,7 @@
-53787
+54082
it.yml
file
@@ -780,10 +780,10 @@
-2011-01-13T14:09:38.000000Z
-a0ea06ad26b6d7dfe722fa0560a8894d
-2011-01-08T10:03:34.099825Z
-4657
+2011-03-03T11:40:18.000000Z
+f80f107e4d9318b8a8cea65b2e13d579
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -806,7 +806,7 @@
-41145
+41436
sk.yml
file
@@ -814,10 +814,10 @@
-2011-01-13T14:09:38.000000Z
-0730abc697f821268506266b6c751713
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+e7901c1e26424f863f96dd86164419c2
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -840,7 +840,7 @@
-41396
+41687
sl.yml
file
@@ -848,10 +848,10 @@
-2011-01-13T14:09:38.000000Z
-b089982aac098938ed2da68ca38cff41
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+808c04baadb112b6be492be9dc78ef89
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -874,7 +874,7 @@
-39572
+39863
uk.yml
file
@@ -882,10 +882,10 @@
-2011-01-13T14:09:38.000000Z
-aeb872b59227da163151d3e953557196
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+430d26c543f2d9d31ffe77c9ef3eb4f8
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -908,7 +908,41 @@
-47150
+47441
+
+da.yml
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+a7ae693463d0d34fb5fd212ccbda0aff
+2011-02-27T13:43:18.863191Z
+4955
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+39983
sr.yml
file
@@ -916,10 +950,10 @@
-2011-01-13T14:09:38.000000Z
-313da32a9af9ee91d2fa5d51d27bdc70
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+adf2619297b8e142957c327c6a76c786
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -942,18 +976,18 @@
-54264
+54555
-da.yml
+fa.yml
file
-2011-01-13T14:09:38.000000Z
-ca814f3069c69727b7a7c8e701386321
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+6f585dcad4e6b03d987ea0f5e7d7e91f
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -976,7 +1010,75 @@
-39692
+51085
+
+bg.yml
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+e0df426fe104bb05be553a362f46610b
+2011-02-27T13:43:18.863191Z
+4955
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+54718
+
+de.yml
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+80e835963312388a9077a8f27452d429
+2011-02-27T13:43:18.863191Z
+4955
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+42574
sv.yml
file
@@ -984,10 +1086,10 @@
-2011-01-13T14:09:38.000000Z
-3cd749fe11dfb32ca3a7f95ee9f27cb4
-2010-12-17T08:50:13.997413Z
-4518
+2011-03-03T11:40:18.000000Z
+59f72f202281205f1ed729183db2a402
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1010,75 +1112,7 @@
-41841
-
-de.yml
-file
-
-
-
-
-2011-01-13T14:09:38.000000Z
-09443567159c66c54aaa5b19b3ab6e6a
-2010-12-30T15:38:41.284110Z
-4592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-42283
-
-bg.yml
-file
-
-
-
-
-2011-01-13T14:09:38.000000Z
-3a0f9832952705d7f032bfe03f53b98a
-2011-01-08T10:01:09.575922Z
-4656
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-54054
+42180
ja.yml
file
@@ -1086,10 +1120,10 @@
-2011-01-13T14:09:38.000000Z
-a5ff4810afb580a1bb2735638fde6bdf
-2010-12-30T15:44:02.412420Z
-4594
+2011-03-03T11:40:18.000000Z
+03fac78c16fdf9c77069f24fec7b2796
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1112,7 +1146,7 @@
-45900
+46191
he.yml
file
@@ -1120,10 +1154,10 @@
-2011-01-13T14:09:38.000000Z
-ece84cb2ec7974a6de73e50e301822c8
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+03045c9539de31b255a14c9207fb8eaa
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1146,7 +1180,7 @@
-45142
+45433
fi.yml
file
@@ -1154,10 +1188,10 @@
-2011-01-13T14:09:38.000000Z
-ec72709b8e1f3730f778ecf48f8a477f
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+18dd7ae78913bad4b75e0d5f16068290
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1180,7 +1214,7 @@
-40650
+40941
bs.yml
file
@@ -1188,10 +1222,10 @@
-2011-01-13T14:09:38.000000Z
-868e34aff97e83b737f1583b26949127
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+0fdc9e453941e547e3b40fee917fcf02
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1214,7 +1248,7 @@
-40587
+40878
fr.yml
file
@@ -1222,10 +1256,10 @@
-2011-01-19T15:03:32.000000Z
-87a842c407ed2a726eeb7c23b10cadb9
-2011-01-15T14:25:11.532146Z
-4724
+2011-03-03T11:40:18.000000Z
+95995431647aa0e13c850df4250a57d0
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
@@ -1248,7 +1282,7 @@
-42743
+43081
nl.yml
file
@@ -1256,10 +1290,10 @@
-2011-01-13T14:09:38.000000Z
-795dcdb14c3b4755c54be2b52b7b0df3
-2011-01-11T20:35:50.950842Z
-4701
+2011-03-03T11:40:18.000000Z
+06358d3f035a3fcc20cde865e7295023
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1282,7 +1316,7 @@
-40142
+40433
hr.yml
file
@@ -1290,10 +1324,10 @@
-2011-01-13T14:09:38.000000Z
-43b90dedeffa52a46acb911eaad02d3f
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+3fbb52f4fa0ba97dfd179ad0c8e020c3
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1316,7 +1350,7 @@
-40250
+40541
pl.yml
file
@@ -1324,10 +1358,10 @@
-2011-01-13T14:09:38.000000Z
-f44541d5733c0a3b474b64151f751080
-2010-12-30T15:49:08.314847Z
-4595
+2011-03-03T11:40:18.000000Z
+afca79760eefe54e70833751f3d9b0bb
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1350,7 +1384,7 @@
-42545
+42836
th.yml
file
@@ -1358,10 +1392,10 @@
-2011-01-13T14:09:38.000000Z
-52810a3efa019c1099e06641996a89b5
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+e9737687144c1c4fd63eacb68f2682f1
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1384,7 +1418,7 @@
-53010
+53301
no.yml
file
@@ -1392,10 +1426,10 @@
-2011-01-13T14:09:38.000000Z
-7b92f62c72c56981439726858c94d19e
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+8fff009aa1fe3602b8b4dff6210f8497
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1418,7 +1452,7 @@
-38453
+38744
hu.yml
file
@@ -1426,10 +1460,10 @@
-2011-01-13T14:09:38.000000Z
-992bb63025a60c01ea886ef5278e6f17
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+5c2041121ebd0cd3bcf252d54e21786b
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1452,7 +1486,7 @@
-42977
+43268
vi.yml
file
@@ -1460,10 +1494,10 @@
-2011-01-13T14:09:38.000000Z
-8ec5b444728e6a8f70e5de5b5d43784a
-2010-12-22T20:40:56.075532Z
-4554
+2011-03-03T11:40:18.000000Z
+37a28f575513649d20833ce31e5fce23
+2011-02-27T13:43:18.863191Z
+4955
jplang
has-props
@@ -1486,5 +1520,5 @@
-43545
+43836
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/prop-base/fa.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/locales/.svn/prop-base/fa.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/bg.yml.svn-base
--- a/config/locales/.svn/text-base/bg.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/bg.yml.svn-base Thu Mar 03 12:02:03 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,25 @@
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: Видим
+ field_warn_on_leaving_unsaved: Предупреди ме, когато напуÑкам Ñтраница Ñ Ð½ÐµÐ·Ð°Ð¿Ð¸Ñано Ñъдържание
setting_app_title: Заглавие
setting_app_subtitle: ОпиÑание
@@ -253,26 +314,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 +448,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 +481,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 +497,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 +507,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 +528,7 @@
label_attachment_new: Ðов файл
label_attachment_delete: Изтриване
label_attachment_plural: Файлове
+ label_file_added: Добавен файл
label_report: Справка
label_report_plural: Справки
label_news: Ðовини
@@ -357,11 +536,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 +569,7 @@
label_new_statuses_allowed: Позволени ÑÑŠÑтоÑниÑ
label_all: вÑички
label_none: никакви
+ label_nobody: никой
label_next: Следващ
label_previous: Предишен
label_used_by: Използва Ñе от
@@ -413,15 +595,26 @@
label_query: ПотребителÑка Ñправка
label_query_plural: ПотребителÑки Ñправки
label_query_new: Ðова заÑвка
+ label_my_queries: Моите заÑвки
label_filter_add: Добави филтър
label_filter_plural: Филтри
label_equals: е
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 +622,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 +666,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 +688,7 @@
label_relation_delete: Изтриване на релациÑ
label_relates_to: Ñвързана ÑÑŠÑ
label_duplicates: дублира
+ label_duplicated_by: дублирана от
label_blocks: блокира
label_blocked_by: блокирана от
label_precedes: предшеÑтва
@@ -501,10 +704,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 +721,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 +803,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 +817,7 @@
button_list: СпиÑък
button_view: Преглед
button_move: ПремеÑтване
+ button_move_and_follow: ПремеÑтване и продължаване
button_back: Ðазад
button_cancel: Отказ
button_activate: ÐктивациÑ
@@ -553,26 +831,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 +881,37 @@
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: ÐамалÑване
+ text_warn_on_leaving_unsaved: Страницата Ñъдържа незапиÑано Ñъдържание, което може да бъде загубено, ако Ñ Ð½Ð°Ð¿ÑƒÑнете.
+
default_role_manager: Мениджър
default_role_developer: Разработчик
default_role_reporter: Публикуващ
@@ -602,333 +933,10 @@
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: МакÑимален брой обекти, които да Ñе показват в мрежов график
+
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/bs.yml.svn-base
--- a/config/locales/.svn/text-base/bs.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/bs.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -950,3 +950,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/ca.yml.svn-base
--- a/config/locales/.svn/text-base/ca.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/ca.yml.svn-base Thu Mar 03 12:02:03 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"
@@ -939,3 +939,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/cs.yml.svn-base
--- a/config/locales/.svn/text-base/cs.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/cs.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,4 +1,9 @@
+# Update to 1.1 by Michal Gebauer
+# Updated by Josef Liška
+# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
+# Based on original CZ translation by Jan KadleÄek
cs:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
@@ -26,7 +31,7 @@
long: "%B %d, %Y %H:%M"
am: "dop."
pm: "odp."
-
+
datetime:
distance_in_words:
half_a_minute: "půl minuty"
@@ -65,24 +70,26 @@
other: "téměř %{count} roky"
number:
+ # Výchozà formát pro ÄÃsla
format:
- separator: "."
+ separator: "."
delimiter: ""
precision: 3
- human:
- format:
+ human:
+ format:
+ delimiter: ""
precision: 1
- delimiter: ""
- storage_units:
+ storage_units:
format: "%n %u"
- units:
- kb: KB
- tb: TB
- gb: GB
- byte:
- one: Byte
- other: Bytes
- mb: MB
+ units:
+ byte:
+ one: "Bajt"
+ other: "Bajtů"
+ kb: "kB"
+ mb: "MB"
+ gb: "GB"
+ tb: "TB"
+
# Used in array.to_sentence.
support:
@@ -94,8 +101,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "1 chyba zabránila uloženà %{model}"
+ other: "%{count} chyb zabránilo uloženà %{model}"
messages:
inclusion: "nenà zahrnuto v seznamu"
exclusion: "je rezervováno"
@@ -122,10 +129,6 @@
circular_dependency: "Tento vztah by vytvořil cyklickou závislost"
cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jednÃm z jeho dÃlÄÃch úkolů"
- # Updated by Josef Liška
- # CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
- # Based on original CZ translation by Jan KadleÄek
-
actionview_instancetag_blank_option: ProsÃm vyberte
general_text_No: 'Ne'
@@ -154,20 +157,40 @@
notice_successful_connection: Úspěšné pÅ™ipojenÃ.
notice_file_not_found: Stránka na kterou se snažÃte zobrazit neexistuje nebo byla smazána.
notice_locking_conflict: Údaje byly změněny jiným uživatelem.
- notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
notice_not_authorized: Nemáte dostateÄná práva pro zobrazenà této stránky.
+ notice_not_authorized_archived_project: Projekt ke kterému se snažÃte pÅ™istupovat byl archivován.
notice_email_sent: "Na adresu %{value} byl odeslán email"
notice_email_error: "PÅ™i odesÃlánà emailu nastala chyba (%{value})"
notice_feeds_access_key_reseted: Váš klÃÄ pro pÅ™Ãstup k RSS byl resetován.
+ notice_api_access_key_reseted: Váš API pÅ™Ãstupový klÃÄ byl resetován.
notice_failed_to_save_issues: "Chyba při uloženà %{count} úkolu(ů) z %{total} vybraných: %{ids}."
+ notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
notice_no_issue_selected: "Nebyl zvolen žádný úkol. ProsÃm, zvolte úkoly, které chcete editovat"
notice_account_pending: "Váš úÄet byl vytvoÅ™en, nynà Äeká na schválenà administrátorem."
notice_default_data_loaded: Výchozà konfigurace úspěšně nahrána.
+ notice_unable_delete_version: Nemohu odstanit verzi
+ notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
+ notice_issue_done_ratios_updated: Koeficienty dokonÄenà úkolu byly aktualizovány.
+ notice_gantt_chart_truncated: Graf byl oÅ™Ãznut, poÄet položek pÅ™esáhl limit pro zobrazenà (%{max})
error_can_t_load_default_data: "Výchozà konfigurace nebyla nahrána: %{value}"
error_scm_not_found: "Položka a/nebo revize neexistujà v repozitáři."
error_scm_command_failed: "PÅ™i pokusu o pÅ™Ãstup k repozitáři doÅ¡lo k chybÄ›: %{value}"
+ error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatřà k tomuto projektu'
+ error_no_tracker_in_project: Žádná fronta nebyla pÅ™iÅ™azena tomuto projektu. ProsÃm zkontroluje nastavenà projektu.
+ error_no_default_issue_status: Nenà nastaven výchozà stav úkolu. ProsÃm zkontrolujte nastavenà ("Administrace -> Stavy úkolů").
+ error_can_not_delete_custom_field: Nelze smazat volitelné pole
+ error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
+ error_can_not_remove_role: Tato role je právÄ› použÃvaná a nelze ji smazat.
+ error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
+ error_can_not_archive_project: Tento projekt nemůže být archivován
+ error_issue_done_ratios_not_updated: Koeficient dokonÄenà úkolu nebyl aktualizován.
+ error_workflow_copy_source: ProsÃm vyberte zdrojovou frontu nebo roly
+ error_workflow_copy_target: ProsÃm vyberte cÃlovou frontu(y) a roly(e)
+ error_unable_delete_issue_status: Nelze smazat stavy úkolů
+ error_unable_to_connect: Nelze se připojit (%{value})
+ warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
mail_subject_lost_password: "Vaše heslo (%{value})"
mail_body_lost_password: 'Pro zmÄ›nu vaÅ¡eho hesla kliknÄ›te na následujÃcà odkaz:'
@@ -177,6 +200,12 @@
mail_body_account_information: Informace o vaÅ¡em úÄtu
mail_subject_account_activation_request: "Aktivace %{value} úÄtu"
mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho úÄtu závisà na vaÅ¡em potvrzenÃ."
+ mail_subject_reminder: "%{count} úkol(ů) má termÃn bÄ›hem nÄ›kolik dnà (%{days})"
+ mail_body_reminder: "%{count} úkol(ů), které máte pÅ™iÅ™azeny má termÃn bÄ›hem nÄ›kolik dnà (%{days}):"
+ mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
+ mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
+ mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
+ mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
gui_validation_error: 1 chyba
gui_validation_error_plural: "%{count} chyb(y)"
@@ -216,6 +245,7 @@
field_priority: Priorita
field_fixed_version: CÃlová verze
field_user: Uživatel
+ field_principal: HlavnÃ
field_role: Role
field_homepage: Domovská stránka
field_is_public: Veřejný
@@ -260,10 +290,23 @@
field_redirect_existing_links: PÅ™esmÄ›rovat stvávajÃcà odkazy
field_estimated_hours: Odhadovaná doba
field_column_names: Sloupce
+ field_time_entries: Zaznamenaný Äas
field_time_zone: Časové pásmo
field_searchable: Umožnit vyhledávánÃ
field_default_value: Výchozà hodnota
field_comments_sorting: Zobrazit komentáře
+ field_parent_title: RodiÄovská stránka
+ field_editable: Editovatelný
+ field_watcher: Sleduje
+ field_identity_url: OpenID URL
+ field_content: Obsah
+ field_group_by: Seskupovat výsledky podle
+ field_sharing: SdÃlenÃ
+ field_parent_issue: RodiÄovský úkol
+ field_member_of_group: Skupina přiřaditele
+ field_assigned_to_role: Role přiřaditele
+ field_text: Textové pole
+ field_visible: Viditelný
setting_app_title: Název aplikace
setting_app_subtitle: Podtitulek aplikace
@@ -275,6 +318,7 @@
setting_issues_export_limit: Limit pro export úkolů
setting_mail_from: OdesÃlat emaily z adresy
setting_bcc_recipients: PÅ™Ãjemci skryté kopie (bcc)
+ setting_plain_text_mail: pouze prostý text (ne HTML)
setting_host_name: Jméno serveru
setting_text_formatting: Formátovánà textu
setting_wiki_compression: Komprese historie Wiki
@@ -290,12 +334,94 @@
setting_cross_project_issue_relations: Povolit vazby úkolů napÅ™ÃÄ projekty
setting_issue_list_default_columns: Výchozà sloupce zobrazené v seznamu úkolů
setting_repositories_encodings: KódovánÃ
+ setting_commit_logs_encoding: Kódovánà zpráv při commitu
+ setting_emails_header: HlaviÄka emailů
setting_emails_footer: PatiÄka emailů
setting_protocol: Protokol
setting_per_page_options: Povolené poÄty řádků na stránce
setting_user_format: Formát zobrazenà uživatele
setting_activity_days_default: Dny zobrazené v Äinnosti projektu
setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavnÃm projektu
+ setting_enabled_scm: Povolené SCM
+ setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
+ setting_mail_handler_api_enabled: Povolit WS pro pÅ™Ãchozà e-maily
+ setting_mail_handler_api_key: API klÃÄ
+ setting_sequential_project_identifiers: Generovat sekvenÄnà identifikátory projektů
+ setting_gravatar_enabled: PoužÃt uživatelské ikony Gravatar
+ setting_gravatar_default: Výchozà Gravatar
+ setting_diff_max_lines_displayed: Maximálnà poÄet zobrazenách řádků rozdÃlů
+ setting_file_max_size_displayed: Maximálnà velikost textových souborů zobrazených pÅ™Ãmo na stránce
+ setting_repository_log_display_limit: Maximálnà poÄet revizà zobrazených v logu souboru
+ setting_openid: Umožnit přihlašovánà a registrace s OpenID
+ setting_password_min_length: Minimálnà délka hesla
+ setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
+ setting_default_projects_modules: Výchozà zapnutné moduly pro nový projekt
+ setting_issue_done_ratio: SpoÄÃtat koeficient dokonÄenà úkolu s
+ setting_issue_done_ratio_issue_field: PoužÃt pole úkolu
+ setting_issue_done_ratio_issue_status: PoužÃt stav úkolu
+ setting_start_of_week: ZaÄÃnat kalendáře
+ setting_rest_api_enabled: Zapnout službu REST
+ setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávacà paměti
+ setting_default_notification_option: Výchozà nastavenà oznámenÃ
+ setting_commit_logtime_enabled: Povolit zapisovánà Äasu
+ setting_commit_logtime_activity_id: Aktivita pro zapsaný Äas
+ setting_gantt_items_limit: Maximálnà poÄet položek zobrazený na ganttovÄ› grafu
+
+ permission_add_project: Vytvořit projekt
+ permission_add_subprojects: Vytvořit podprojekty
+ permission_edit_project: Úprava projektů
+ permission_select_project_modules: Výběr modulů projektu
+ permission_manage_members: Spravovánà ÄlenstvÃ
+ permission_manage_project_activities: Spravovat aktivity projektu
+ permission_manage_versions: Spravovánà verzÃ
+ permission_manage_categories: Spravovánà kategorià úkolů
+ permission_view_issues: Zobrazit úkoly
+ permission_add_issues: Přidávánà úkolů
+ permission_edit_issues: Upravovánà úkolů
+ permission_manage_issue_relations: Spravovánà vztahů mezi úkoly
+ permission_add_issue_notes: Přidávánà poznámek
+ permission_edit_issue_notes: Upravovánà poznámek
+ permission_edit_own_issue_notes: Upravovánà vlastnÃch poznámek
+ permission_move_issues: Přesouvánà úkolů
+ permission_delete_issues: Mazánà úkolů
+ permission_manage_public_queries: Správa veřejných dotazů
+ permission_save_queries: Ukládánà dotazů
+ permission_view_gantt: Zobrazené Ganttova diagramu
+ permission_view_calendar: ProhlÞenà kalendáře
+ permission_view_issue_watchers: Zobrazenà seznamu sledujÃcÃh uživatelů
+ permission_add_issue_watchers: PÅ™idánà sledujÃcÃch uživatelů
+ permission_delete_issue_watchers: Smazat pÅ™ihlÞejÃcÃ
+ permission_log_time: Zaznamenávánà stráveného Äasu
+ permission_view_time_entries: Zobrazenà stráveného Äasu
+ permission_edit_time_entries: Upravovánà záznamů o stráveném Äasu
+ permission_edit_own_time_entries: Upravovánà vlastnÃch zázamů o stráveném Äase
+ permission_manage_news: Spravovánà novinek
+ permission_comment_news: Komentovánà novinek
+ permission_manage_documents: Správa dokumentů
+ permission_view_documents: ProhlÞenà dokumentů
+ permission_manage_files: Spravovánà souborů
+ permission_view_files: ProhlÞenà souborů
+ permission_manage_wiki: Spravovánà Wiki
+ permission_rename_wiki_pages: Přejmenovávánà Wiki stránek
+ permission_delete_wiki_pages: Mazánà stránek na Wiki
+ permission_view_wiki_pages: ProhlÞenà Wiki
+ permission_view_wiki_edits: ProhlÞenà historie Wiki
+ permission_edit_wiki_pages: Upravovánà stránek Wiki
+ permission_delete_wiki_pages_attachments: Mazánà pÅ™Ãloh
+ permission_protect_wiki_pages: ZabezpeÄenà Wiki stránek
+ permission_manage_repository: Spravovánà repozitáře
+ permission_browse_repository: Procházenà repozitáře
+ permission_view_changesets: Zobrazovánà sady změn
+ permission_commit_access: Commit pÅ™Ãstup
+ permission_manage_boards: Správa diskusnÃch fór
+ permission_view_messages: ProhlÞenà zpráv
+ permission_add_messages: PosÃlánà zpráv
+ permission_edit_messages: Upravovánà zpráv
+ permission_edit_own_messages: Upravit vlastnà zprávy
+ permission_delete_messages: Mazánà zpráv
+ permission_delete_own_messages: Smazat vlastnà zprávy
+ permission_export_wiki_pages: Exportovat Wiki stránky
+ permission_manage_subtasks: Spravovat podúkoly
project_module_issue_tracking: Sledovánà úkolů
project_module_time_tracking: Sledovánà Äasu
@@ -305,10 +431,13 @@
project_module_wiki: Wiki
project_module_repository: Repozitář
project_module_boards: Diskuse
+ project_module_calendar: Kalendář
+ project_module_gantt: Gantt
label_user: Uživatel
label_user_plural: Uživatelé
label_user_new: Nový uživatel
+ label_user_anonymous: AnonymnÃ
label_project: Projekt
label_project_new: Nový projekt
label_project_plural: Projekty
@@ -355,11 +484,13 @@
label_information_plural: Informace
label_please_login: ProsÃm pÅ™ihlaÅ¡te se
label_register: Registrovat
+ label_login_with_open_id_option: nebo se přihlašte s OpenID
label_password_lost: Zapomenuté heslo
label_home: ÚvodnÃ
label_my_page: Moje stránka
label_my_account: Můj úÄet
label_my_projects: Moje projekty
+ label_my_page_block: Bloky na mé stránce
label_administration: Administrace
label_login: PÅ™ihlášenÃ
label_logout: OdhlášenÃ
@@ -370,6 +501,7 @@
label_registered_on: Registrován
label_activity: Aktivita
label_overall_activity: Celková aktivita
+ label_user_activity: "Aktivita uživatele: %{value}"
label_new: Nový
label_logged_as: Přihlášen jako
label_environment: ProstÅ™edÃ
@@ -378,6 +510,8 @@
label_auth_source_new: Nový mód autentifikace
label_auth_source_plural: Módy autentifikace
label_subproject_plural: Podprojekty
+ label_subproject_new: Nový podprojekt
+ label_and_its_subprojects: "%{value} a jeho podprojekty"
label_min_max_length: Min - Max délka
label_list: Seznam
label_date: Datum
@@ -411,6 +545,7 @@
label_version: Verze
label_version_new: Nová verze
label_version_plural: Verze
+ label_close_versions: ZavÅ™Ãt dokonÄené verze
label_confirmation: PotvrzenÃ
label_export_to: 'Také k dispozici:'
label_read: NaÄÃtá se...
@@ -469,6 +604,8 @@
label_not_equals: nenÃ
label_in_less_than: je měšà než
label_in_more_than: je většà než
+ label_greater_or_equal: '>='
+ label_less_or_equal: '<='
label_in: v
label_today: dnes
label_all_time: vše
@@ -491,15 +628,21 @@
label_browse: Procházet
label_modification: "%{count} změna"
label_modification_plural: "%{count} změn"
+ label_branch: Větev
+ label_tag: Tag
label_revision: Revize
label_revision_plural: RevizÃ
+ label_revision_id: "Revize %{value}"
label_associated_revisions: SouvisejÃcà verze
label_added: přidáno
label_modified: změněno
+ label_copied: zkopÃrováno
+ label_renamed: přejmenováno
label_deleted: odstraněno
label_latest_revision: Poslednà revize
label_latest_revision_plural: Poslednà revize
label_view_revisions: Zobrazit revize
+ label_view_all_revisions: Zobrazit všechny revize
label_max_size: Maximálnà velikost
label_sort_highest: PÅ™esunout na zaÄátek
label_sort_higher: Přesunout nahoru
@@ -525,6 +668,7 @@
label_changes_details: Detail všech změn
label_issue_tracking: Sledovánà úkolů
label_spent_time: Strávený Äas
+ label_overall_spent_time: Celkem strávený Äas
label_f_hour: "%{value} hodina"
label_f_hour_plural: "%{value} hodin"
label_time_tracking: Sledovánà Äasu
@@ -545,8 +689,9 @@
label_relation_new: Nová souvislost
label_relation_delete: Odstranit souvislost
label_relates_to: souvisejÃcà s
- label_duplicates: duplicity
- label_blocks: bloků
+ label_duplicates: duplikuje
+ label_duplicated_by: zduplikován
+ label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: pÅ™edcházÃ
label_follows: následuje
@@ -561,6 +706,8 @@
label_board: Fórum
label_board_new: Nové fórum
label_board_plural: Fóra
+ label_board_locked: UzamÄeno
+ label_board_sticky: Nálepka
label_topic_plural: Témata
label_message_plural: Zprávy
label_message_last: Poslednà zpráva
@@ -576,9 +723,12 @@
label_language_based: Podle výchozÃho jazyku
label_sort_by: "Seřadit podle %{value}"
label_send_test_email: Poslat testovacà email
+ label_feeds_access_key: PÅ™Ãstupový klÃÄ pro RSS
+ label_missing_feeds_access_key: Postrádá pÅ™Ãstupový klÃÄ pro RSS
label_feeds_access_key_created_on: "PÅ™Ãstupový klÃÄ pro RSS byl vytvoÅ™en pÅ™ed %{value}"
label_module_plural: Moduly
label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
+ label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}"
label_updated_time: "Aktualizováno před %{value}"
label_jump_to_a_project: Vyberte projekt...
label_file_plural: Soubory
@@ -591,6 +741,10 @@
label_search_titles_only: Vyhledávat pouze v názvech
label_user_mail_option_all: "Pro všechny události všech mých projektů"
label_user_mail_option_selected: "Pro všechny události vybraných projektů..."
+ label_user_mail_option_none: "Žádné události"
+ label_user_mail_option_only_my_events: "Jen pro věci co sleduji nebo jsem v nich zapojen"
+ label_user_mail_option_only_assigned: "Jen pro všeci kterým sem přiřazen"
+ label_user_mail_option_only_owner: "Jen pro vÄ›ci které vlastnÃm"
label_user_mail_no_self_notified: "NezasÃlat informace o mnou vytvoÅ™ených zmÄ›nách"
label_registration_activation_by_email: aktivace úÄtu emailem
label_registration_manual_activation: manuálnà aktivace úÄtu
@@ -609,6 +763,40 @@
label_preferences: NastavenÃ
label_chronological_order: V chronologickém poÅ™adÃ
label_reverse_chronological_order: V obrácaném chronologickém poÅ™adÃ
+ label_planning: PlánovánÃ
+ label_incoming_emails: PÅ™Ãchozà e-maily
+ label_generate_key: Generovat klÃÄ
+ label_issue_watchers: SledovánÃ
+ label_example: PÅ™Ãklad
+ label_display: Zobrazit
+ label_sort: ŘazenÃ
+ label_ascending: VzestupnÄ›
+ label_descending: SestupnÄ›
+ label_date_from_to: Od %{start} do %{end}
+ label_wiki_content_added: Wiki stránka přidána
+ label_wiki_content_updated: Wiki stránka aktualizována
+ label_group: Skupina
+ label_group_plural: Skupiny
+ label_group_new: Nová skupina
+ label_time_entry_plural: Strávený Äas
+ label_version_sharing_none: NesdÃleno
+ label_version_sharing_descendants: S podprojekty
+ label_version_sharing_hierarchy: S hierarchià projektu
+ label_version_sharing_tree: Se stromem projektu
+ label_version_sharing_system: Se všemi projekty
+ label_update_issue_done_ratios: Aktualizovat koeficienty dokonÄenà úkolů
+ label_copy_source: Zdroj
+ label_copy_target: CÃl
+ label_copy_same_as_target: Stejný jako cÃl
+ label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
+ label_api_access_key: API pÅ™Ãstupový klÃÄ
+ label_missing_api_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ API
+ label_api_access_key_created_on: API pÅ™Ãstupový klÃÄ vytvoÅ™en %{value}
+ label_profile: Profil
+ label_subtask_plural: Podúkol
+ label_project_copy_notifications: Odeslat email oznámenà v průběhu kopie projektu
+ label_principal_search: "Hledat uživatele nebo skupinu:"
+ label_user_search: "Hledat uživatele:"
button_login: Přihlásit
button_submit: Potvrdit
@@ -617,8 +805,10 @@
button_uncheck_all: Odšrtnout vše
button_delete: Odstranit
button_create: Vytvořit
- button_test: Test
+ button_create_and_continue: VytvoÅ™it a pokraÄovat
+ button_test: Testovat
button_edit: Upravit
+ button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
button_add: Přidat
button_change: Změnit
button_apply: PoužÃt
@@ -629,6 +819,7 @@
button_list: Vypsat
button_view: Zobrazit
button_move: Přesunout
+ button_move_and_follow: Přesunout a následovat
button_back: Zpět
button_cancel: Storno
button_activate: Aktivovat
@@ -640,24 +831,40 @@
button_reply: Odpovědět
button_archive: Archivovat
button_unarchive: Odarchivovat
- button_reset: Reset
+ button_reset: Resetovat
button_rename: Přejmenovat
button_change_password: Změnit heslo
button_copy: KopÃrovat
+ button_copy_and_follow: KopÃrovat a následovat
button_annotate: Komentovat
button_update: Aktualizovat
button_configure: Konfigurovat
+ button_quote: Citovat
+ button_duplicate: Duplikát
+ button_show: Zobrazit
status_active: aktivnÃ
status_registered: registrovaný
status_locked: uzamÄený
+ version_status_open: otevřený
+ version_status_locked: uzamÄený
+ version_status_closed: zavřený
+
+ field_active: AktivnÃ
+
text_select_mail_notifications: Vyberte akci při které bude zasláno upozorněnà emailem.
text_regexp_info: napÅ™. ^[A-Z0-9]+$
text_min_max_length_info: 0 znamená bez limitu
text_project_destroy_confirmation: Jste si jisti, že chcete odstranit tento projekt a vÅ¡echna souvisejÃcà data ?
+ text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
text_workflow_edit: Vyberte roli a frontu k editaci průběhu práce
text_are_you_sure: Jste si jisti?
+ text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
+ text_journal_changed: "%{label} změněn z %{old} na %{new}"
+ text_journal_set_to: "%{label} nastaven na %{value}"
+ text_journal_deleted: "%{label} smazán (%{old})"
+ text_journal_added: "%{label} %{value} přidán"
text_tip_issue_begin_day: úkol zaÄÃná v tento den
text_tip_issue_end_day: úkol konÄà v tento den
text_tip_issue_begin_end_day: úkol zaÄÃná a konÄà v tento den
@@ -668,6 +875,7 @@
text_tracker_no_workflow: Pro tuto frontu nenà definován žádný průběh práce
text_unallowed_characters: Nepovolené znaky
text_comma_separated: Povoleno vÃce hodnot (oddÄ›lÄ›né Äárkou).
+ text_line_separated: VÃce hodnot povoleno (jeden řádek pro každou hodnotu).
text_issues_ref_in_commit_messages: Odkazovánà a opravovánà úkolů ve zprávách commitů
text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
@@ -679,15 +887,31 @@
text_no_configuration_data: "Role, fronty, stavy úkolů ani průbÄ›h práce nebyly zatÃm nakonfigurovány.\nVelice doporuÄujeme nahrát výchozà konfiguraci. Po té si můžete vÅ¡e upravit"
text_load_default_configuration: Nahrát výchozà konfiguraci
text_status_changed_by_changeset: "Použito v changesetu %{value}."
+ text_time_logged_by_changeset: Aplikováno v changesetu %{value}.
text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
text_select_project_modules: 'Aktivnà moduly v tomto projektu:'
text_default_administrator_account_changed: Výchozà nastavenà administrátorského úÄtu zmÄ›nÄ›no
text_file_repository_writable: Povolen zápis do adresáře ukládánà souborů
+ text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
text_rmagick_available: RMagick k dispozici (volitelné)
text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
text_destroy_time_entries: Odstranit evidované hodiny.
text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
+ text_user_wrote: "%{value} napsal:"
+ text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
+ text_enumeration_category_reassign_to: 'Přeřadit je do této:'
+ 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_repository_usernames_mapping: "Vybrat nebo upravit mapovánà mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovanà automaticky."
+ text_diff_truncated: '... RozdÃlový soubor je zkrácen, protože jeho délka pÅ™esahuje max. limit.'
+ text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
+ text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
+ text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
+ text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
+ text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
+ text_own_membership_delete_confirmation: "Chystáte se odebrat si nÄ›která nebo vÅ¡echny svá oprávnÄ›nà a potom již nemusÃte být schopni upravit tento projekt.\nOpravdu chcete pokraÄovat?"
+ text_zoom_in: PřiblÞit
+ text_zoom_out: Oddálit
default_role_manager: Manažer
default_role_developer: Vývojář
@@ -714,225 +938,9 @@
enumeration_issue_priorities: Priority úkolů
enumeration_doc_categories: Kategorie dokumentů
enumeration_activities: Aktivity (sledovánà Äasu)
- error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
- label_planning: PlánovánÃ
- text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
- label_and_its_subprojects: "%{value} a jeho podprojekty"
- mail_body_reminder: "%{count} úkol(ů), které máte pÅ™iÅ™azeny má termÃn bÄ›hem nÄ›kolik dnà (%{days}):"
- mail_subject_reminder: "%{count} úkol(ů) má termÃn bÄ›hem nÄ›kolik dnà (%{days})"
- text_user_wrote: "%{value} napsal:"
- label_duplicated_by: duplikováno od
- setting_enabled_scm: Povolené SCM
- text_enumeration_category_reassign_to: 'Přeřadit je do této:'
- text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
- label_incoming_emails: PÅ™Ãchozà e-maily
- 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."
- field_parent_title: RodiÄovská stránka
- label_issue_watchers: SledovánÃ
- setting_commit_logs_encoding: Kódovánà zpráv při commitu
- button_quote: Citovat
- setting_sequential_project_identifiers: Generovat sekvenÄnà identifikátory projektů
- notice_unable_delete_version: Nemohu odstanit verzi
- label_renamed: přejmenováno
- label_copied: zkopÃrováno
- setting_plain_text_mail: pouze prostý text (ne HTML)
- permission_view_files: ProhlÞenà souborů
- permission_edit_issues: Upravovánà úkolů
- permission_edit_own_time_entries: Upravovánà vlastnÃch zázamů o stráveném Äase
- permission_manage_public_queries: Správa veřejných dotazů
- permission_add_issues: Přidávánà úkolů
- permission_log_time: Zaznamenávánà stráveného Äasu
- permission_view_changesets: Zobrazovánà sady změn
- permission_view_time_entries: Zobrazenà stráveného Äasu
- permission_manage_versions: Spravovánà verzÃ
- permission_manage_wiki: Spravovánà Wiki
- permission_manage_categories: Spravovánà kategorià úkolů
- permission_protect_wiki_pages: ZabezpeÄenà Wiki stránek
- permission_comment_news: Komentovánà novinek
- permission_delete_messages: Mazánà zpráv
- permission_select_project_modules: Výběr modulů projektu
- permission_manage_documents: Správa dokumentů
- permission_edit_wiki_pages: Upravovánà stránek Wiki
- permission_add_issue_watchers: PÅ™idánà sledujÃcÃch uživatelů
- permission_view_gantt: Zobrazené Ganttova diagramu
- permission_move_issues: Přesouvánà úkolů
- permission_manage_issue_relations: Spravovánà vztahů mezi úkoly
- permission_delete_wiki_pages: Mazánà stránek na Wiki
- permission_manage_boards: Správa diskusnÃch fór
- permission_delete_wiki_pages_attachments: Mazánà pÅ™Ãloh
- permission_view_wiki_edits: ProhlÞenà historie Wiki
- permission_add_messages: PosÃlánà zpráv
- permission_view_messages: ProhlÞenà zpráv
- permission_manage_files: Spravovánà souborů
- permission_edit_issue_notes: Upravovánà poznámek
- permission_manage_news: Spravovánà novinek
- permission_view_calendar: ProhlÞenà kalendáře
- permission_manage_members: Spravovánà ÄlenstvÃ
- permission_edit_messages: Upravovánà zpráv
- permission_delete_issues: Mazánà úkolů
- permission_view_issue_watchers: Zobrazenà seznamu sledujÃcÃh uživatelů
- permission_manage_repository: Spravovánà repozitáře
- permission_commit_access: Commit pÅ™Ãstup
- permission_browse_repository: Procházenà repozitáře
- permission_view_documents: ProhlÞenà dokumentů
- permission_edit_project: Úprava projektů
- permission_add_issue_notes: Přidávánà poznámek
- permission_save_queries: Ukládánà dotazů
- permission_view_wiki_pages: ProhlÞenà Wiki
- permission_rename_wiki_pages: Přejmenovávánà Wiki stránek
- permission_edit_time_entries: Upravovánà záznamů o stráveném Äasu
- permission_edit_own_issue_notes: Upravovánà vlastnÃch poznámek
- setting_gravatar_enabled: PoužÃt uživatelské ikony Gravatar
- label_example: PÅ™Ãklad
- text_repository_usernames_mapping: "Vybrat nebo upravit mapovánà mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovanà automaticky."
- permission_edit_own_messages: Upravit vlastnà zprávy
- permission_delete_own_messages: Smazat vlastnà zprávy
- label_user_activity: "Aktivita uživatele: %{value}"
- label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
- text_diff_truncated: '... RozdÃlový soubor je zkrácen, protože jeho délka pÅ™esahuje max. limit.'
- setting_diff_max_lines_displayed: Maximálnà poÄet zobrazenách řádků rozdÃlů
- text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
- warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
- button_create_and_continue: VytvoÅ™it a pokraÄovat
- text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
- label_display: Zobrazit
- field_editable: Editovatelný
- setting_repository_log_display_limit: Maximálnà poÄet revizà zobrazených v logu souboru
- setting_file_max_size_displayed: Maximálnà velikost textových souborů zobrazených pÅ™Ãmo na stránce
- field_watcher: Sleduje
- setting_openid: Umožnit přihlašovánà a registrace s OpenID
- field_identity_url: OpenID URL
- label_login_with_open_id_option: nebo se přihlašte s OpenID
- field_content: Obsah
- label_descending: SestupnÄ›
- label_sort: ŘazenÃ
- label_ascending: VzestupnÄ›
- label_date_from_to: Od %{start} do %{end}
- label_greater_or_equal: ">="
- label_less_or_equal: <=
- text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
- text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
- text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
- text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
- setting_password_min_length: Minimálnà délka hesla
- field_group_by: Seskupovat výsledky podle
- mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
- label_wiki_content_added: Wiki stránka přidána
- mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
- mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
- label_wiki_content_updated: Wiki stránka aktualizována
- mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
- permission_add_project: Vytvořit projekt
- setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
- label_view_all_revisions: Zobrazit všechny revize
- label_tag: Tag
- label_branch: Branch
- error_no_tracker_in_project: Žádná fronta nebyla pÅ™iÅ™azena tomuto projektu. ProsÃm zkontroluje nastavenà projektu.
- error_no_default_issue_status: Nenà nastaven výchozà stav úkolu. ProsÃm zkontrolujte nastavenà ("Administrace -> Stavy úkolů").
- text_journal_changed: "%{label} změněn z %{old} na %{new}"
- text_journal_set_to: "%{label} nastaven na %{value}"
- text_journal_deleted: "%{label} smazán (%{old})"
- label_group_plural: Skupiny
- label_group: Skupina
- label_group_new: Nová skupina
- label_time_entry_plural: Strávený Äas
- text_journal_added: "%{label} %{value} přidán"
- field_active: AktivnÃ
enumeration_system_activity: Systémová aktivita
- permission_delete_issue_watchers: Smazat pÅ™ihlÞejÃcÃ
- version_status_closed: zavřený
- version_status_locked: uzamÄený
- version_status_open: otevřený
- error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
- label_user_anonymous: AnonymnÃ
- button_move_and_follow: Přesunout a následovat
- setting_default_projects_modules: Výchozà zapnutné moduly pro nový projekt
- setting_gravatar_default: Výchozà Gravatar
- field_sharing: SdÃlenÃ
- label_version_sharing_hierarchy: S hierarchià projektu
- label_version_sharing_system: Se všemi projekty
- label_version_sharing_descendants: S podprojekty
- label_version_sharing_tree: Se stromem projektu
- label_version_sharing_none: NesdÃleno
- error_can_not_archive_project: Tento projekt nemůže být archivován
- button_duplicate: Duplikát
- button_copy_and_follow: KopÃrovat a následovat
- label_copy_source: Zdroj
- setting_issue_done_ratio: SpoÄÃtat koeficient dokonÄenà úkolu s
- setting_issue_done_ratio_issue_status: PoužÃt stav úkolu
- error_issue_done_ratios_not_updated: Koeficient dokonÄenà úkolu nebyl aktualizován.
- error_workflow_copy_target: ProsÃm vyberte cÃlovou frontu(y) a roly(e)
- setting_issue_done_ratio_issue_field: PoužÃt pole úkolu
- label_copy_same_as_target: Stejný jako cÃl
- label_copy_target: CÃl
- notice_issue_done_ratios_updated: Koeficienty dokonÄenà úkolu byly aktualizovány.
- error_workflow_copy_source: ProsÃm vyberte zdrojovou frontu nebo roly
- label_update_issue_done_ratios: Aktualizovat koeficienty dokonÄenà úkolů
- setting_start_of_week: ZaÄÃnat kalendáře
- permission_view_issues: Zobrazit úkoly
- label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
- label_revision_id: Revize %{value}
- label_api_access_key: API pÅ™Ãstupový klÃÄ
- label_api_access_key_created_on: API pÅ™Ãstupový klÃÄ vytvoÅ™en %{value}
- label_feeds_access_key: RSS pÅ™Ãstupový klÃÄ
- notice_api_access_key_reseted: Váš API pÅ™Ãstupový klÃÄ byl resetován.
- setting_rest_api_enabled: Zapnout službu REST
- label_missing_api_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ API
- label_missing_feeds_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ RSS
- button_show: Zobrazit
- text_line_separated: VÃce hodnot povoleno (jeden řádek pro každou hodnotu).
- setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
- permission_add_subprojects: Vytvořit podprojekty
- label_subproject_new: Nový podprojekt
- text_own_membership_delete_confirmation: |-
- Chystáte se odebrat si nÄ›která nebo vÅ¡echny svá oprávnÄ›nà a potom již nemusÃte být schopni upravit tento projekt.
- Opravdu chcete pokraÄovat?
- label_close_versions: ZavÅ™Ãt dokonÄené verze
- label_board_sticky: Nálepka
- label_board_locked: UzamÄeno
- permission_export_wiki_pages: Exportovat Wiki stránky
- setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávacà paměti
- permission_manage_project_activities: Spravovat aktivity projektu
- error_unable_delete_issue_status: Nelze smazat stavy úkolů
- label_profile: Profil
- permission_manage_subtasks: Spravovat podúkoly
- field_parent_issue: RodiÄovský úkol
- label_subtask_plural: Podúkol
- label_project_copy_notifications: Odeslat email oznámenà v průběhu kopie projektu
- error_can_not_delete_custom_field: Nelze smazat volitelné pole
- error_unable_to_connect: Nelze se připojit (%{value})
- error_can_not_remove_role: Tato role je právÄ› použÃvaná a nelze ji smazat.
- error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
- field_principal: HlavnÃ
- label_my_page_block: Bloky na mé stránce
- notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
- text_zoom_out: Oddálit
- text_zoom_in: PřiblÞit
- notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
- label_overall_spent_time: CelkovÄ› strávený Äas
- field_time_entries: Zaznamenaný Äas
- project_module_gantt: Gantt
- project_module_calendar: Kalendář
- button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
- text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
- field_text: Textové pole
- label_user_mail_option_only_owner: Only for things I am the owner of
- setting_default_notification_option: Default notification option
- label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
- label_user_mail_option_only_assigned: Only for things I am assigned to
- label_user_mail_option_none: No events
- field_member_of_group: Assignee's group
- field_assigned_to_role: Assignee's role
- notice_not_authorized_archived_project: The project you're trying to access has been archived.
- label_principal_search: "Search for user or group:"
- label_user_search: "Search for user:"
- field_visible: Visible
- setting_emails_header: Emails header
- 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
+
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/da.yml.svn-base
--- a/config/locales/.svn/text-base/da.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/da.yml.svn-base Thu Mar 03 12:02:03 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
@@ -952,3 +952,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/de.yml.svn-base
--- a/config/locales/.svn/text-base/de.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/de.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -953,3 +953,7 @@
setting_commit_logtime_enabled: Aktiviere Zeitlogging
notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max})
setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden.
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/el.yml.svn-base
--- a/config/locales/.svn/text-base/el.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/el.yml.svn-base Thu Mar 03 12:02:03 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: 'Μία γÏαμμή για κάθε τιμή'
@@ -936,3 +936,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/en-GB.yml.svn-base
--- a/config/locales/.svn/text-base/en-GB.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/en-GB.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -940,3 +940,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/en.yml.svn-base
--- a/config/locales/.svn/text-base/en.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/en.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -303,6 +303,7 @@
field_assigned_to_role: "Assignee's role"
field_text: Text field
field_visible: Visible
+ field_warn_on_leaving_unsaved: "Warn me when leaving a page with unsaved text"
setting_app_title: Application title
setting_app_subtitle: Application subtitle
@@ -594,6 +595,7 @@
label_query: Custom query
label_query_plural: Custom queries
label_query_new: New query
+ label_my_queries: My custom queries
label_filter_add: Add filter
label_filter_plural: Filters
label_equals: is
@@ -858,6 +860,7 @@
text_are_you_sure: Are you sure ?
text_are_you_sure_with_children: "Delete issue and all child issues?"
text_journal_changed: "%{label} changed from %{old} to %{new}"
+ text_journal_changed_no_detail: "%{label} updated"
text_journal_set_to: "%{label} set to %{value}"
text_journal_deleted: "%{label} deleted (%{old})"
text_journal_added: "%{label} %{value} added"
@@ -897,7 +900,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'
@@ -908,6 +911,7 @@
text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
text_zoom_in: Zoom in
text_zoom_out: Zoom out
+ text_warn_on_leaving_unsaved: "The current page contains unsaved text that will be lost if you leave this page."
default_role_manager: Manager
default_role_developer: Developer
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/es.yml.svn-base
--- a/config/locales/.svn/text-base/es.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/es.yml.svn-base Thu Mar 03 12:02:03 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
@@ -973,3 +973,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/eu.yml.svn-base
--- a/config/locales/.svn/text-base/eu.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/eu.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -99,8 +99,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "Errore batek %{model} hau godetzea galarazi du."
+ other: "%{count} errorek %{model} hau gordetzea galarazi dute."
messages:
inclusion: "ez dago zerrendan"
exclusion: "erreserbatuta dago"
@@ -125,7 +125,7 @@
greater_than_start_date: "hasiera data baino handiagoa izan behar du"
not_same_project: "ez dago proiektu berdinean"
circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
- cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+ cant_link_an_issue_with_a_descendant: "Zeregin bat ezin da bere azpiataza batekin estekatu."
actionview_instancetag_blank_option: Hautatu mesedez
@@ -277,7 +277,7 @@
field_issue_to: Erlazionatutako zereginak
field_delay: Atzerapena
field_assignable: Arazoak rol honetara esleitu daitezke
- field_redirect_existing_links: Existitzen diren estelak berbideratu
+ field_redirect_existing_links: Existitzen diren estekak berbideratu
field_estimated_hours: Estimatutako denbora
field_column_names: Zutabeak
field_time_zone: Ordu zonaldea
@@ -318,7 +318,7 @@
setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
setting_repositories_encodings: Biltegien kodeketak
- setting_commit_logs_encoding: Commit-en mezuen kodetzea
+ setting_commit_logs_encoding: Commit-en egunkarien kodetzea
setting_emails_footer: Eposten oina
setting_protocol: Protokoloa
setting_per_page_options: Orriko objektuen aukerak
@@ -363,7 +363,7 @@
permission_delete_issues: Zereginak ezabatu
permission_manage_public_queries: Galdera publikoak kudeatu
permission_save_queries: Galderak gorde
- permission_view_gantt: Gantt diagrama ikusi
+ permission_view_gantt: Gantt grafikoa ikusi
permission_view_calendar: Egutegia ikusi
permission_view_issue_watchers: Behatzaileen zerrenda ikusi
permission_add_issue_watchers: Behatzaileak gehitu
@@ -441,7 +441,7 @@
label_tracker: Aztarnaria
label_tracker_plural: Aztarnariak
label_tracker_new: Aztarnari berria
- label_workflow: Workflow
+ label_workflow: Lan-fluxua
label_issue_status: Zeregin egoera
label_issue_status_plural: Zeregin egoerak
label_issue_status_new: Egoera berria
@@ -506,7 +506,7 @@
label_file_added: Fitxategia gehituta
label_report: Berri ematea
label_report_plural: Berri emateak
- label_news: Beria
+ label_news: Berria
label_news_new: Berria gehitu
label_news_plural: Berriak
label_news_latest: Azken berriak
@@ -553,7 +553,7 @@
label_add_note: Oharra gehitu
label_per_page: Orriko
label_calendar: Egutegia
- label_months_from: months from
+ label_months_from: hilabete noiztik
label_gantt: Gantt
label_internal: Barnekoa
label_last_changes: "azken %{count} aldaketak"
@@ -784,7 +784,7 @@
button_cancel: Ezeztatu
button_activate: Gahitu
button_sort: Ordenatu
- button_log_time: Denbora apuntatu
+ button_log_time: Denbora erregistratu
button_rollback: Itzuli bertsio honetara
button_watch: Behatu
button_unwatch: Behatzen utzi
@@ -824,9 +824,9 @@
text_journal_set_to: "%{label}-k %{value} balioa hartu du"
text_journal_deleted: "%{label} ezabatuta (%{old})"
text_journal_added: "%{label} %{value} gehituta"
- text_tip_issue_begin_day: gaur hasten diren atazak
- text_tip_issue_end_day: gaur bukatzen diren atazak
- text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
+ text_tip_issue_begin_day: gaur hasten diren zereginak
+ text_tip_issue_end_day: gaur bukatzen diren zereginak
+ text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren zereginak
text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik. Gorde eta gero identifikadorea ezin da aldatu.'
text_caracters_maximum: "%{count} karaktere gehienez."
text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
@@ -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'
@@ -895,7 +895,7 @@
enumeration_doc_categories: Dokumentu kategoriak
enumeration_activities: Jarduerak (denbora kontrola))
enumeration_system_activity: Sistemako Jarduera
- label_board_sticky: Itxaskorra
+ label_board_sticky: Itsaskorra
label_board_locked: Blokeatuta
permission_export_wiki_pages: Wiki orriak esportatu
setting_cache_formatted_text: Formatudun testua katxeatu
@@ -903,40 +903,44 @@
error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
label_profile: Profila
permission_manage_subtasks: Azpiatazak kudeatu
- field_parent_issue: Guraso ataza
+ field_parent_issue: Zeregin gurasoa
label_subtask_plural: Azpiatazak
label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
- error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
+ error_can_not_delete_custom_field: Ezin da eremu pertsonalizatua ezabatu
error_unable_to_connect: Ezin da konektatu (%{value})
error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
- field_principal: Principal
- label_my_page_block: My page block
- notice_failed_to_save_members: "Failed to save member(s): %{errors}."
- text_zoom_out: Zoom out
- text_zoom_in: Zoom in
- notice_unable_delete_time_entry: Unable to delete time log entry.
- label_overall_spent_time: Overall spent time
- field_time_entries: Log time
+ field_principal: Ekintzaile
+ label_my_page_block: "Nire orriko blokea"
+ notice_failed_to_save_members: "Kidea(k) gordetzean errorea: %{errors}."
+ text_zoom_out: Zooma txikiagotu
+ text_zoom_in: Zooma handiagotu
+ notice_unable_delete_time_entry: "Ezin da hautatutako denbora erregistroa ezabatu."
+ label_overall_spent_time: Igarotako denbora guztira
+ field_time_entries: "Denbora erregistratu"
project_module_gantt: Gantt
- project_module_calendar: Calendar
- button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
- text_are_you_sure_with_children: Delete issue and all child issues?
- field_text: Text field
- label_user_mail_option_only_owner: Only for things I am the owner of
- setting_default_notification_option: Default notification option
- label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
- label_user_mail_option_only_assigned: Only for things I am assigned to
- label_user_mail_option_none: No events
- field_member_of_group: Assignee's group
- field_assigned_to_role: Assignee's role
- notice_not_authorized_archived_project: The project you're trying to access has been archived.
- label_principal_search: "Search for user or group:"
- label_user_search: "Search for user:"
- field_visible: Visible
- setting_emails_header: Emails header
- 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
+ project_module_calendar: Egutegia
+ button_edit_associated_wikipage: "Esleitutako wiki orria editatu: %{page_title}"
+ text_are_you_sure_with_children: "Zeregina eta azpi zeregin guztiak ezabatu?"
+ field_text: Testu eremua
+ label_user_mail_option_only_owner: "Jabea naizen gauzetarako barrarik"
+ setting_default_notification_option: "Lehenetsitako ohartarazpen aukera"
+ label_user_mail_option_only_my_events: "Behatzen ditudan edo partaide naizen gauzetarako bakarrik"
+ label_user_mail_option_only_assigned: "Niri esleitutako gauzentzat bakarrik"
+ label_user_mail_option_none: "Gertakaririk ez"
+ field_member_of_group: "Esleituta duenaren taldea"
+ field_assigned_to_role: "Esleituta duenaren rola"
+ notice_not_authorized_archived_project: "Atzitu nahi duzun proiektua artxibatua izan da."
+ label_principal_search: "Bilatu erabiltzaile edo taldea:"
+ label_user_search: "Erabiltzailea bilatu:"
+ field_visible: Ikusgai
+ setting_emails_header: "Eposten goiburua"
+ setting_commit_logtime_activity_id: "Erregistratutako denboraren jarduera"
+ text_time_logged_by_changeset: "%{value} aldaketan egindakoa."
+ setting_commit_logtime_enabled: "Erregistrutako denbora gaitu"
+ notice_gantt_chart_truncated: Grafikoa moztu da bistara daitekeen elementuen kopuru maximoa gainditu delako (%{max})
+ setting_gantt_items_limit: "Gantt grafikoan bistara daitekeen elementu kopuru maximoa"
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/fa.yml.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/locales/.svn/text-base/fa.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,945 @@
+fa:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
+ direction: rtl
+ 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"
+ short: "%b %d"
+ long: "%B %d, %Y"
+
+ day_names: [یک‌شنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنج‌شنبه, آدینه, شنبه]
+ abbr_day_names: [یک, دو, سه, چهار, پنج, آدینه, شنبه]
+
+ # Don't forget the nil at the beginning; there's no such thing as a 0th month
+ month_names: [~, ژانویه, Ùوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر]
+ abbr_month_names: [~, ژان, Ùور, مار, آور, مه, ژوئن, ژوئیه, اوت, سپت, اکت, نوا, دسا]
+ # Used in date_select and datime_select.
+ order: [ :year, :month, :day ]
+
+ time:
+ formats:
+ default: "%Y/%m/%d %p %I:%M"
+ time: "%p %I:%M"
+ short: "%d %b %H:%M"
+ long: "%B %d, %Y %H:%M"
+ am: "ق.ظ"
+ pm: "ب.ظ"
+
+ datetime:
+ distance_in_words:
+ half_a_minute: "نیم دقیقه"
+ less_than_x_seconds:
+ one: "کمتر از 1 ثانیه"
+ other: "کمتر از %{count} ثانیه"
+ x_seconds:
+ one: "1 ثانیه"
+ other: "%{count} ثانیه"
+ less_than_x_minutes:
+ one: "کمتر از 1 دقیقه"
+ other: "کمتر از %{count} دقیقه"
+ x_minutes:
+ one: "1 دقیقه"
+ other: "%{count} دقیقه"
+ about_x_hours:
+ one: "نزدیک 1 ساعت"
+ other: "نزدیک %{count} ساعت"
+ x_days:
+ one: "1 روز"
+ other: "%{count} روز"
+ about_x_months:
+ one: "نزدیک 1 ماه"
+ other: "نزدیک %{count} ماه"
+ x_months:
+ one: "1 ماه"
+ other: "%{count} ماه"
+ about_x_years:
+ one: "نزدیک 1 سال"
+ other: "نزدیک %{count} سال"
+ over_x_years:
+ one: "بیش از 1 سال"
+ other: "بیش از %{count} سال"
+ almost_x_years:
+ one: "نزدیک 1 سال"
+ other: "نزدیک %{count} سال"
+
+ number:
+ # Default format for numbers
+ format:
+ separator: "Ù«"
+ delimiter: ""
+ precision: 3
+ human:
+ format:
+ delimiter: ""
+ precision: 1
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: "بایت"
+ other: "بایت"
+ kb: "کیلوبایت"
+ mb: "مگابایت"
+ gb: "گیگابایت"
+ tb: "ترابایت"
+
+
+# Used in array.to_sentence.
+ support:
+ array:
+ sentence_connector: "Ùˆ"
+ skip_last_comma: false
+
+ activerecord:
+ errors:
+ template:
+ header:
+ one: "1 ایراد از ذخیره سازی این %{model} جلوگیری کرد"
+ other: "%{count} ایراد از ذخیره سازی این %{model} جلوگیری کرد"
+ messages:
+ inclusion: "در Ùهرست نیامده است"
+ exclusion: "رزرو شده است"
+ invalid: "نادرست است"
+ confirmation: "با بررسی سازگاری ندارد"
+ accepted: "باید Ù¾Ø°ÛŒØ±ÙØªÙ‡ شود"
+ empty: "نمی‌تواند تهی باشد"
+ blank: "نمی‌تواند تهی باشد"
+ too_long: "خیلی بلند است (بیشترین اندازه %{count} نویسه است)"
+ too_short: "خیلی کوتاه است (کمترین اندازه %{count} نویسه است)"
+ wrong_length: "اندازه نادرست است (باید %{count} نویسه باشد)"
+ taken: "پیش از این Ú¯Ø±ÙØªÙ‡ شده است"
+ not_a_number: "شماره درستی نیست"
+ not_a_date: "تاریخ درستی نیست"
+ greater_than: "باید بزرگتر از %{count} باشد"
+ greater_than_or_equal_to: "باید بزرگتر از یا برابر با %{count} باشد"
+ equal_to: "باید برابر با %{count} باشد"
+ less_than: "باید کمتر از %{count} باشد"
+ less_than_or_equal_to: "باید کمتر از یا برابر با %{count} باشد"
+ odd: "باید ÙØ±Ø¯ باشد"
+ even: "باید زوج باشد"
+ greater_than_start_date: "باید از تاریخ آغاز بزرگتر باشد"
+ not_same_project: "به همان پروژه وابسته نیست"
+ circular_dependency: "این وابستگی یک وابستگی دایره وار خواهد ساخت"
+ cant_link_an_issue_with_a_descendant: "یک پیامد نمی‌تواند به یکی از زیر کارهایش پیوند بخورد"
+
+ actionview_instancetag_blank_option: گزینش کنید
+
+ general_text_No: 'خیر'
+ general_text_Yes: 'آری'
+ general_text_no: 'خیر'
+ general_text_yes: 'آری'
+ general_lang_name: 'Persian (پارسی)'
+ general_csv_separator: ','
+ general_csv_decimal_separator: '.'
+ general_csv_encoding: UTF-8
+ general_pdf_encoding: UTF-8
+ general_first_day_of_week: '6'
+
+ notice_account_updated: ØØ³Ø§Ø¨ شما بروز شد.
+ notice_account_invalid_creditentials: نام کاربری یا گذرواژه نادرست است
+ notice_account_password_updated: گذرواژه بروز شد
+ notice_account_wrong_password: گذرواژه نادرست است
+ notice_account_register_done: ØØ³Ø§Ø¨ ساخته شد. برای ÙØ¹Ø§Ù„ نمودن آن، روی پیوندی Ú©Ù‡ به شما ایمیل شده کلیک کنید.
+ notice_account_unknown_email: کاربر شناخته نشد.
+ notice_can_t_change_password: این ØØ³Ø§Ø¨ یک روش شناسایی بیرونی را به کار Ú¯Ø±ÙØªÙ‡ است. گذرواژه را نمی‌توان جایگزین کرد.
+ notice_account_lost_email_sent: یک ایمیل با راهنمایی درباره گزینش گذرواژه تازه برای شما ÙØ±Ø³ØªØ§Ø¯Ù‡ شد.
+ notice_account_activated: ØØ³Ø§Ø¨ شما ÙØ¹Ø§Ù„ شده است. اکنون می‌توانید وارد شوید.
+ notice_successful_create: با موÙقیت ساخته شد.
+ notice_successful_update: با موÙقیت بروز شد.
+ notice_successful_delete: با موÙقیت برداشته شد.
+ notice_successful_connection: با موÙقیت متصل شد.
+ notice_file_not_found: برگه درخواستی شما در دسترس نیست یا پاک شده است.
+ notice_locking_conflict: داده‌ها را کاربر دیگری بروز کرده است.
+ notice_not_authorized: شما به این برگه دسترسی ندارید.
+ notice_not_authorized_archived_project: پروژه درخواستی شما بایگانی شده است.
+ notice_email_sent: "یک ایمیل به %{value} ÙØ±Ø³ØªØ§Ø¯Ù‡ شد."
+ notice_email_error: "یک ایراد در ÙØ±Ø³ØªØ§Ø¯Ù† ایمیل پیش آمد (%{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: زمان گزارش شده را نمی‌توان پاک کرد.
+ 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: 'یک پیگرد یا نقش منبع را برگزینید.'
+ 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: "برگه ویکی «%{id}» Ø§ÙØ²ÙˆØ¯Ù‡ شد"
+ mail_body_wiki_content_added: "برگه ویکی «%{id}» به دست %{author} Ø§ÙØ²ÙˆØ¯Ù‡ شد."
+ mail_subject_wiki_content_updated: "برگه ویکی «%{id}» بروز شد"
+ mail_body_wiki_content_updated: "برگه ویکی «%{id}» به دست %{author} بروز شد."
+
+ gui_validation_error: 1 ایراد
+ gui_validation_error_plural: "%{count} ایراد"
+
+ field_name: نام
+ field_description: توضیØ
+ field_summary: خلاصه
+ field_is_required: الزامی
+ field_firstname: نام کوچک
+ field_lastname: نام خانوادگی
+ field_mail: ایمیل
+ field_filename: پرونده
+ field_filesize: اندازه
+ field_downloads: Ø¯Ø±ÛŒØ§ÙØªâ€ŒÙ‡Ø§
+ field_author: نویسنده
+ field_created_on: ساخته شده در
+ field_updated_on: بروز شده در
+ field_field_format: قالب
+ field_is_for_all: برای همه پروژه‌ها
+ field_possible_values: مقادیر ممکن
+ field_regexp: عبارت منظم
+ field_min_length: کمترین اندازه
+ field_max_length: بیشترین اندازه
+ field_value: مقدار
+ field_category: دسته
+ field_title: عنوان
+ field_project: پروژه
+ field_issue: پیامد
+ field_status: وضعیت
+ field_notes: یادداشت‌ها
+ field_is_closed: پیامد بسته شده
+ field_is_default: مقدار پیش‌گزیده
+ field_tracker: پیگرد
+ field_subject: موضوع
+ field_due_date: زمان سررسید
+ field_assigned_to: واگذار شده به
+ field_priority: برتری
+ field_fixed_version: نگارش هدÙ
+ field_user: کاربر
+ field_principal: دستور دهنده
+ field_role: نقش
+ field_homepage: برگه خانه
+ field_is_public: همگانی
+ field_parent: پروژه پدر
+ field_is_in_roadmap: این پیامدها در نقشه راه نشان داده شوند
+ field_login: ورود
+ field_mail_notification: آگاه سازی‌های ایمیلی
+ field_admin: سرپرست
+ field_last_login_on: آخرین ورود
+ field_language: زبان
+ field_effective_date: تاریخ
+ field_password: گذرواژه
+ field_new_password: گذرواژه تازه
+ field_password_confirmation: بررسی گذرواژه
+ field_version: نگارش
+ field_type: گونه
+ field_host: میزبان
+ field_port: درگاه
+ field_account: ØØ³Ø§Ø¨
+ field_base_dn: DN پایه
+ field_attr_login: نشانه ورود
+ field_attr_firstname: نشانه نام کوچک
+ field_attr_lastname: نشانه نام خانوادگی
+ field_attr_mail: نشانه ایمیل
+ field_onthefly: ساخت کاربر بیدرنگ
+ field_start_date: تاریخ آغاز
+ field_done_ratio: ٪ انجام شده
+ field_auth_source: روش شناسایی
+ field_hide_mail: ایمیل من پنهان شود
+ field_comments: دیدگاه
+ field_url: نشانی
+ field_start_page: برگه آغاز
+ field_subproject: زیر پروژه
+ field_hours: ساعت‌
+ field_activity: ÙØ¹Ø§Ù„یت
+ field_spent_on: در تاریخ
+ field_identifier: شناسه
+ field_is_filter: پالایش پذیر
+ field_issue_to: پیامد وابسته
+ field_delay: دیرکرد
+ field_assignable: پیامدها می‌توانند به این نقش واگذار شوند
+ field_redirect_existing_links: پیوندهای پیشین به پیوند تازه راهنمایی شوند
+ field_estimated_hours: زمان برآورد شده
+ field_column_names: ستون‌ها
+ field_time_entries: زمان نوشتن
+ field_time_zone: پهنه زمانی
+ field_searchable: جستجو پذیر
+ field_default_value: مقدار پیش‌گزیده
+ field_comments_sorting: نمایش دیدگاه‌ها
+ field_parent_title: برگه پدر
+ field_editable: ویرایش پذیر
+ field_watcher: دیده‌بان
+ field_identity_url: نشانی OpenID
+ field_content: Ù…ØØªÙˆØ§
+ field_group_by: دسته بندی با
+ field_sharing: اشتراک گذاری
+ field_parent_issue: کار پدر
+ field_member_of_group: "دسته واگذار شونده"
+ field_assigned_to_role: "نقش واگذار شونده"
+ field_text: Ùیلد متنی
+ field_visible: آشکار
+
+ setting_app_title: نام برنامه
+ setting_app_subtitle: زیرنام برنامه
+ setting_welcome_text: نوشتار خوش‌آمد گویی
+ setting_default_language: زبان پیش‌گزیده
+ setting_login_required: الزامی بودن ورود
+ setting_self_registration: خود نام نویسی
+ setting_attachment_max_size: بیشترین اندازه پیوست
+ setting_issues_export_limit: کرانه صدور پییامدها
+ setting_mail_from: نشانی ÙØ±Ø³ØªÙ†Ø¯Ù‡ ایمیل
+ setting_bcc_recipients: گیرندگان ایمیل دیده نشوند (bcc)
+ setting_plain_text_mail: ایمیل نوشته ساده (بدون HTML)
+ setting_host_name: نام میزبان و نشانی
+ setting_text_formatting: قالب بندی نوشته
+ setting_wiki_compression: ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ پیشینه ویکی
+ setting_feeds_limit: کرانه Ù…ØØªÙˆØ§ÛŒ خوراک
+ setting_default_projects_public: ØØ§Ù„ت پیش‌گزیده پروژه‌های تازه، همگانی است
+ setting_autofetch_changesets: Ø¯Ø±ÛŒØ§ÙØª خودکار تغییرات
+ setting_sys_api_enabled: ÙØ¹Ø§Ù„ سازی وب سرویس برای سرپرستی انباره
+ 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: سرنویس ایمیل‌ها
+ setting_emails_footer: پانویس ایمیل‌ها
+ 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: "بریدن ایمیل‌ها پس از یکی از این ردیÙ‌ها"
+ setting_mail_handler_api_enabled: ÙØ¹Ø§Ù„سازی وب سرویس برای ایمیل‌های آمده
+ setting_mail_handler_api_key: کلید API
+ setting_sequential_project_identifiers: ساخت پشت سر هم شناسه پروژه
+ setting_gravatar_enabled: کاربرد Gravatar برای عکس کاربر
+ setting_gravatar_default: عکس Gravatar پیش‌گزیده
+ setting_diff_max_lines_displayed: بیشترین اندازه ردیÙ‌های ØªÙØ§ÙˆØª نشان داده شده
+ setting_file_max_size_displayed: بیشترین اندازه پرونده‌های نمایش داده شده درون خطی
+ 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
+ setting_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: ذخیره سازی پرس‌وجوها
+ permission_view_gantt: دیدن نمودار گانت
+ permission_view_calendar: دیدن گاهشمار
+ permission_view_issue_watchers: دیدن Ùهرست دیده‌بان‌ها
+ permission_add_issue_watchers: Ø§ÙØ²ÙˆØ¯Ù† دیده‌بان‌ها
+ permission_delete_issue_watchers: پاک کردن دیده‌بان‌ها
+ permission_log_time: نوشتن زمان گذاشته شده
+ permission_view_time_entries: دیدن زمان گذاشته شده
+ permission_edit_time_entries: ویرایش زمان گذاشته شده
+ permission_edit_own_time_entries: ویرایش زمان گذاشته شده خود
+ permission_manage_news: سرپرستی رویدادها
+ permission_comment_news: گذاشتن دیدگاه روی رویدادها
+ permission_manage_documents: سرپرستی نوشتارها
+ permission_view_documents: دیدن نوشتارها
+ permission_manage_files: سرپرستی پرونده‌ها
+ permission_view_files: دیدن پرونده‌ها
+ permission_manage_wiki: سرپرستی ویکی
+ permission_rename_wiki_pages: نامگذاری برگه ویکی
+ permission_delete_wiki_pages: پاک کردن برگه ویکی
+ permission_view_wiki_pages: دیدن ویکی
+ permission_view_wiki_edits: دیدن پیشینه ویکی
+ permission_edit_wiki_pages: ویرایش برگه‌های ویکی
+ permission_delete_wiki_pages_attachments: پاک کردن پیوست‌های برگه ویکی
+ permission_protect_wiki_pages: نگه‌داری برگه‌های ویکی
+ permission_manage_repository: سرپرستی انباره
+ permission_browse_repository: چریدن در انباره
+ permission_view_changesets: دیدن تغییرات
+ permission_commit_access: دسترسی تغییر انباره
+ permission_manage_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: صدور برگه‌های ویکی
+ permission_manage_subtasks: سرپرستی زیرکارها
+
+ project_module_issue_tracking: پیگیری پیامدها
+ project_module_time_tracking: پیگیری زمان
+ project_module_news: رویدادها
+ project_module_documents: نوشتارها
+ project_module_files: پرونده‌ها
+ project_module_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: بدون پروژه
+ one: "1 پروژه"
+ other: "%{count} پروژه"
+ label_project_all: همه پروژه‌ها
+ label_project_latest: آخرین پروژه‌ها
+ label_issue: پیامد
+ 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: نقش تازه
+ label_role_and_permissions: نقش‌ها و پروانه‌ها
+ label_member: عضو
+ label_member_new: عضو تازه
+ label_member_plural: عضو
+ label_tracker: پیگرد
+ label_tracker_plural: پیگرد
+ label_tracker_new: پیگرد تازه
+ label_workflow: گردش کار
+ label_issue_status: وضعیت پیامد
+ label_issue_status_plural: وضعیت پیامد
+ label_issue_status_new: وضعیت تازه
+ label_issue_category: دسته پیامد
+ label_issue_category_plural: دسته پیامد
+ label_issue_category_new: دسته تازه
+ label_custom_field: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ
+ label_custom_field_plural: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ
+ label_custom_field_new: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ تازه
+ label_enumerations: برشمردنی‌ها
+ label_enumeration_new: مقدار تازه
+ label_information: داده
+ 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: خروج
+ label_help: راهنما
+ label_reported_issues: پیامدهای گزارش شده
+ label_assigned_to_me_issues: پیامدهای واگذار شده به من
+ label_last_login: آخرین ورود
+ label_registered_on: نام نویسی شده در
+ label_activity: ÙØ¹Ø§Ù„یت
+ label_overall_activity: ÙØ¹Ø§Ù„یت روی هم Ø±ÙØªÙ‡
+ label_user_activity: "ÙØ¹Ø§Ù„یت %{value}"
+ label_new: تازه
+ label_logged_as: "نام کاربری:"
+ label_environment: Ù…ØÛŒØ·
+ label_authentication: شناسایی
+ label_auth_source: روش شناسایی
+ 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: نوشته بلند
+ label_attribute: نشانه
+ label_attribute_plural: نشانه
+ label_download: "%{count} بار Ø¯Ø±ÛŒØ§ÙØª شده"
+ label_download_plural: "%{count} بار Ø¯Ø±ÛŒØ§ÙØª شده"
+ label_no_data: هیچ داده‌ای برای نمایش نیست
+ label_change_status: جایگزینی وضعیت
+ label_history: پیشینه
+ label_attachment: پرونده
+ label_attachment_new: پرونده تازه
+ label_attachment_delete: پاک کردن پرونده
+ label_attachment_plural: پرونده
+ label_file_added: پرونده Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_report: گزارش
+ label_report_plural: گزارش
+ label_news: رویداد
+ label_news_new: Ø§ÙØ²ÙˆØ¯Ù† رویداد
+ 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: خواندن...
+ label_public_projects: پروژه‌های همگانی
+ label_open_issues: باز
+ label_open_issues_plural: باز
+ label_closed_issues: بسته
+ label_closed_issues_plural: بسته
+ label_x_open_issues_abbr_on_total:
+ zero: 0 باز از %{total}
+ one: 1 باز از %{total}
+ other: "%{count} باز از %{total}"
+ label_x_open_issues_abbr:
+ zero: 0 باز
+ one: 1 باز
+ other: "%{count} باز"
+ label_x_closed_issues_abbr:
+ zero: 0 بسته
+ one: 1 بسته
+ other: "%{count} بسته"
+ label_total: جمله
+ label_permissions: پروانه‌ها
+ label_current_status: وضعیت کنونی
+ label_new_statuses_allowed: وضعیت‌های Ù¾Ø°ÛŒØ±ÙØªÙ†ÛŒ تازه
+ label_all: همه
+ label_none: هیچ
+ label_nobody: هیچکس
+ label_next: پسین
+ label_previous: پیشین
+ label_used_by: به کار Ø±ÙØªÙ‡ در
+ label_details: ریزه‌کاری
+ label_add_note: Ø§ÙØ²ÙˆØ¯Ù† یادداشت
+ label_per_page: ردیÙ‌ها در هر برگه
+ label_calendar: گاهشمار
+ label_months_from: از ماه
+ label_gantt: گانت
+ label_internal: درونی
+ label_last_changes: "%{count} تغییر آخر"
+ label_change_view_all: دیدن همه تغییرات
+ label_personalize_page: Ø³ÙØ§Ø±Ø´ÛŒ نمودن این برگه
+ label_comment: دیدگاه
+ label_comment_plural: دیدگاه
+ label_x_comments:
+ zero: بدون دیدگاه
+ one: 1 دیدگاه
+ other: "%{count} دیدگاه"
+ label_comment_add: Ø§ÙØ²ÙˆØ¯Ù† دیدگاه
+ label_comment_added: دیدگاه Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_comment_delete: پاک کردن دیدگاه‌ها
+ label_query: پرس‌وجوی Ø³ÙØ§Ø±Ø´ÛŒ
+ label_query_plural: پرس‌وجوی Ø³ÙØ§Ø±Ø´ÛŒ
+ label_query_new: پرس‌وجوی تازه
+ label_filter_add: Ø§ÙØ²ÙˆØ¯Ù† پالایه
+ label_filter_plural: پالایه
+ label_equals: برابر است با
+ 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: روز پیشین
+ label_contains: دارد
+ 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: بردن به بالا
+ label_sort_lower: بردن به پایین
+ label_sort_lowest: بردن به پایان
+ label_roadmap: نقشه راه
+ label_roadmap_due_in: "سررسید در %{value}"
+ label_roadmap_overdue: "%{value} دیرکرد"
+ label_roadmap_no_issues: هیچ پیامدی برای این نگارش نیست
+ label_search: جستجو
+ label_result_plural: دست‌آورد
+ label_all_words: همه واژه‌ها
+ label_wiki: ویکی
+ label_wiki_edit: ویرایش ویکی
+ label_wiki_edit_plural: ویرایش ویکی
+ label_wiki_page: برگه ویکی
+ label_wiki_page_plural: برگه ویکی
+ label_index_by_title: شاخص بر اساس نام
+ label_index_by_date: شاخص بر اساس تاریخ
+ label_current_version: نگارش کنونی
+ label_preview: پیش‌نمایش
+ label_feed_plural: خوراک
+ 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: پیگیری زمان
+ label_change_plural: جایگذاری
+ label_statistics: سرشماری
+ label_commits_per_month: تغییر در هر ماه
+ label_commits_per_author: تغییر هر نویسنده
+ label_view_diff: دیدن ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§
+ label_diff_inline: همراستا
+ label_diff_side_by_side: کنار به کنار
+ label_options: گزینه‌ها
+ label_copy_workflow_from: رونویسی گردش کار از روی
+ label_permissions_report: گزارش پروانه‌ها
+ label_watched_issues: پیامدهای دیده‌بانی شده
+ label_related_issues: پیامدهای وابسته
+ label_applied_status: وضعیت به کار Ø±ÙØªÙ‡
+ label_loading: بار گذاری...
+ label_relation_new: وابستگی تازه
+ label_relation_delete: پاک کردن وابستگی
+ label_relates_to: وابسته به
+ label_duplicates: نگارش دیگری از
+ label_duplicated_by: نگارشی دیگر در
+ label_blocks: بازداشت‌ها
+ label_blocked_by: بازداشت به دست
+ label_precedes: جلوتر است از
+ label_follows: پستر است از
+ label_end_to_start: پایان به آغاز
+ label_end_to_end: پایان به پایان
+ label_start_to_start: آغاز به آغاز
+ label_start_to_end: آغاز به پایان
+ label_stay_logged_in: وارد شده بمانید
+ label_disabled: ØºÛŒØ±ÙØ¹Ø§Ù„
+ label_show_completed_versions: نمایش نگارش‌های انجام شده
+ label_me: من
+ label_board: انجمن
+ label_board_new: انجمن تازه
+ label_board_plural: انجمن
+ label_board_locked: Ù‚ÙÙ„ شده
+ label_board_sticky: چسبناک
+ label_topic_plural: Ø³Ø±ÙØµÙ„
+ label_message_plural: پیام
+ label_message_last: آخرین پیام
+ label_message_new: پیام تازه
+ label_message_posted: پیام Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_reply_plural: پاسخ
+ label_send_information: ÙØ±Ø³ØªØ§Ø¯Ù† داده‌های ØØ³Ø§Ø¨ به کاربر
+ label_year: سال
+ label_month: ماه
+ label_week: Ù‡ÙØªÙ‡
+ label_date_from: از
+ label_date_to: تا
+ label_language_based: بر اساس زبان کاربر
+ label_sort_by: "جور کرد با %{value}"
+ label_send_test_email: ÙØ±Ø³ØªØ§Ø¯Ù† ایمیل آزمایشی
+ label_feeds_access_key: کلید دسترسی RSS
+ label_missing_feeds_access_key: کلید دسترسی RSS در دسترس نیست
+ label_feeds_access_key_created_on: "کلید دسترسی RSS %{value} پیش ساخته شده است"
+ 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: ÙØ¹Ø§Ù„سازی ØØ³Ø§Ø¨ با ایمیل
+ 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: Ø¯Ø±ÛŒØ§ÙØª
+ label_optional_description: ØªÙˆØ¶ÛŒØ Ø§Ø®ØªÛŒØ§Ø±ÛŒ
+ label_add_another_file: Ø§ÙØ²ÙˆØ¯Ù† پرونده دیگر
+ label_preferences: پسندها
+ label_chronological_order: به ترتیب تاریخ
+ label_reverse_chronological_order: برعکس ترتیب تاریخ
+ label_planning: برنامه ریزی
+ label_incoming_emails: ایمیل‌های آمده
+ label_generate_key: ساخت کلید
+ label_issue_watchers: دیده‌بان‌ها
+ label_example: نمونه
+ label_display: نمایش
+ label_sort: جور کرد
+ label_ascending: Ø§ÙØ²Ø§ÛŒØ´ÛŒ
+ label_descending: کاهشی
+ label_date_from_to: از %{start} تا %{end}
+ label_wiki_content_added: برگه ویکی Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_wiki_content_updated: برگه ویکی بروز شد
+ 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: در هنگام رونویسی پروژه ایمیل‌های آگاه‌سازی را Ø¨ÙØ±Ø³Øª
+ label_principal_search: "جستجو برای کاربر یا دسته:"
+ label_user_search: "جستجو برای کاربر:"
+
+ button_login: ورود
+ button_submit: واگذاری
+ button_save: نگهداری
+ button_check_all: گزینش همه
+ button_uncheck_all: گزینش هیچ
+ button_delete: پاک
+ button_create: ساخت
+ button_create_and_continue: ساخت و ادامه
+ button_test: آزمایش
+ button_edit: ویرایش
+ button_edit_associated_wikipage: "ویرایش برگه ویکی وابسته: %{page_title}"
+ button_add: Ø§ÙØ²ÙˆØ¯Ù†
+ button_change: ویرایش
+ button_apply: انجام
+ button_clear: پاک
+ button_lock: گذاشتن Ù‚ÙÙ„
+ button_unlock: برداشتن Ù‚ÙÙ„
+ button_download: Ø¯Ø±ÛŒØ§ÙØª
+ button_list: Ùهرست
+ button_view: دیدن
+ button_move: جابجایی
+ button_move_and_follow: جابجایی و ادامه
+ button_back: برگشت
+ button_cancel: بازگشت
+ button_activate: ÙØ¹Ø§Ù„سازی
+ button_sort: جور کرد
+ button_log_time: زمان‌نویسی
+ button_rollback: برگرد به این نگارش
+ button_watch: دیده‌بانی
+ button_unwatch: نا‌دیده‌بانی
+ button_reply: پاسخ
+ button_archive: بایگانی
+ 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: ÙØ±Ù…ان‌هایی Ú©Ù‡ برای آن‌ها باید ایمیل ÙØ±Ø³ØªØ§Ø¯Ù‡ شود را برگزینید.
+ 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_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_task_begin_day: روز آغاز پیامد
+ text_tip_task_end_day: روز پایان پیامد
+ text_tip_task_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} بروز شد."
+ text_wiki_destroy_confirmation: آیا براستی می‌خواهید این ویکی Ùˆ همه Ù…ØØªÙˆØ§ÛŒ آن را پاک کنید؟
+ 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: "Ø¯Ø±ÛŒØ§ÙØª ایمیل پیکربندی نشده است Ùˆ آگاه‌سازی‌ها غیر ÙØ¹Ø§Ù„ هستند.\nکارگزار SMTP خود را در config/email.yml پیکربندی کنید Ùˆ برنامه را بازنشانی کنید تا ÙØ¹Ø§Ù„ شوند."
+ text_repository_usernames_mapping: "کاربر Redmine که به هر نام کاربری پیام‌های انباره نگاشت می‌شود را برگزینید.\nکاربرانی که نام کاربری یا ایمیل همسان دارند، خود به خود نگاشت می‌شوند."
+ text_diff_truncated: '... این ØªÙØ§ÙˆØª بریده شده چون بیشتر از بیشترین اندازه نمایش دادنی است.'
+ text_custom_field_possible_values_info: 'یک خط برای هر مقدار'
+ text_wiki_page_destroy_question: "این برگه %{descendants} زیربرگه دارد.می‌خواهید چه کنید؟"
+ text_wiki_page_nullify_children: "زیربرگه‌ها برگه ریشه شوند"
+ text_wiki_page_destroy_children: "زیربرگه‌ها و زیربرگه‌های آن‌ها پاک شوند"
+ 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: گزارش‌دهنده
+ default_tracker_bug: ایراد
+ default_tracker_feature: ویژگی
+ default_tracker_support: پشتیبانی
+ default_issue_status_new: تازه
+ default_issue_status_in_progress: در گردش
+ default_issue_status_resolved: درست شده
+ default_issue_status_feedback: بازخورد
+ default_issue_status_closed: بسته
+ default_issue_status_rejected: برگشت خورده
+ default_doc_category_user: نوشتار کاربر
+ default_doc_category_tech: نوشتار ÙÙ†ÛŒ
+ default_priority_low: پایین
+ default_priority_normal: میانه
+ default_priority_high: بالا
+ default_priority_urgent: زود
+ default_priority_immediate: بیدرنگ
+ default_activity_design: طراØÛŒ
+ default_activity_development: ساخت
+
+ enumeration_issue_priorities: برتری‌های پیامد
+ enumeration_doc_categories: دسته‌های نوشتار
+ enumeration_activities: ÙØ¹Ø§Ù„یت‌ها (پیگیری زمان)
+ enumeration_system_activity: ÙØ¹Ø§Ù„یت سامانه
+
+ text_tip_issue_begin_day: issue beginning this day
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_tip_issue_begin_end_day: issue beginning and ending this day
+ text_tip_issue_end_day: issue ending this day
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/fi.yml.svn-base
--- a/config/locales/.svn/text-base/fi.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/fi.yml.svn-base Thu Mar 03 12:02:03 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
@@ -957,3 +957,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/fr.yml.svn-base
--- a/config/locales/.svn/text-base/fr.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/fr.yml.svn-base Thu Mar 03 12:02:03 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})"
@@ -307,6 +307,7 @@
field_active: Actif
field_parent_issue: Tâche parente
field_visible: Visible
+ field_warn_on_leaving_unsaved: "M'avertir lorsque je quitte une page contenant du texte non sauvegardé"
setting_app_title: Titre de l'application
setting_app_subtitle: Sous-titre de l'application
@@ -323,11 +324,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 +350,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 +370,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
@@ -596,6 +597,7 @@
label_query: Rapport personnalisé
label_query_plural: Rapports personnalisés
label_query_new: Nouveau rapport
+ label_my_queries: Mes rapports personnalisés
label_filter_add: "Ajouter le filtre "
label_filter_plural: Filtres
label_equals: égal
@@ -859,7 +861,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 +882,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'
@@ -889,6 +891,7 @@
text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
text_own_membership_delete_confirmation: "Vous allez supprimer tout ou partie de vos permissions sur ce projet et ne serez peut-être plus autorisé à modifier ce projet.\nEtes-vous sûr de vouloir continuer ?"
+ text_warn_on_leaving_unsaved: "Cette page contient du texte non sauvegardé qui sera perdu si vous quittez la page."
default_role_manager: "Manager "
default_role_developer: "Développeur "
@@ -923,6 +926,7 @@
error_no_tracker_in_project: "Aucun tracker n'est associé à ce projet. Vérifier la configuration du projet."
error_no_default_issue_status: "Aucun statut de demande n'est défini par défaut. Vérifier votre configuration (Administration -> Statuts de demandes)."
text_journal_changed: "%{label} changé de %{old} à %{new}"
+ text_journal_changed_no_detail: "%{label} mis à jour"
text_journal_set_to: "%{label} mis à %{value}"
text_journal_deleted: "%{label} %{old} supprimé"
text_journal_added: "%{label} %{value} ajouté"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/gl.yml.svn-base
--- a/config/locales/.svn/text-base/gl.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/gl.yml.svn-base Thu Mar 03 12:02:03 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
@@ -948,3 +948,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/he.yml.svn-base
--- a/config/locales/.svn/text-base/he.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/he.yml.svn-base Thu Mar 03 12:02:03 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: שורה ×חת לכל ערך
@@ -941,3 +941,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/hr.yml.svn-base
--- a/config/locales/.svn/text-base/hr.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/hr.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -943,3 +943,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/hu.yml.svn-base
--- a/config/locales/.svn/text-base/hu.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/hu.yml.svn-base Thu Mar 03 12:02:03 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
@@ -955,3 +955,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/id.yml.svn-base
--- a/config/locales/.svn/text-base/id.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/id.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -944,3 +944,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/it.yml.svn-base
--- a/config/locales/.svn/text-base/it.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/it.yml.svn-base Thu Mar 03 12:02:03 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
@@ -937,3 +937,7 @@
setting_commit_logtime_enabled: Abilita registrazione del tempo di collegamento
notice_gantt_chart_truncated: Il grafico è stato troncato perchè eccede il numero di oggetti (%{max}) da visualizzare
setting_gantt_items_limit: Massimo numero di oggetti da visualizzare sul diagramma di gantt
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/ja.yml.svn-base
--- a/config/locales/.svn/text-base/ja.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/ja.yml.svn-base Thu Mar 03 12:02:03 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個ãšã¤è¨˜è¿°ã—ã¦ãã ã•ã„。'
@@ -957,3 +957,7 @@
enumeration_doc_categories: 文書カテゴリ
enumeration_activities: 作æ¥åˆ†é¡ž (時間トラッã‚ング)
enumeration_system_activity: システム作æ¥åˆ†é¡ž
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/ko.yml.svn-base
--- a/config/locales/.svn/text-base/ko.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/ko.yml.svn-base Thu Mar 03 12:02:03 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: 'ê° ê°’ 당 한 줄'
@@ -988,3 +988,7 @@
setting_commit_logtime_enabled: 커밋 시ì ì— ìž‘ì—… 시간 ê¸°ë¡ í™œì„±í™”
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/lt.yml.svn-base
--- a/config/locales/.svn/text-base/lt.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/lt.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -996,3 +996,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/lv.yml.svn-base
--- a/config/locales/.svn/text-base/lv.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/lv.yml.svn-base Thu Mar 03 12:02:03 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Ä'
@@ -931,3 +931,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/mk.yml.svn-base
--- a/config/locales/.svn/text-base/mk.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/mk.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -936,3 +936,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/mn.yml.svn-base
--- a/config/locales/.svn/text-base/mn.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/mn.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -937,3 +937,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/nl.yml.svn-base
--- a/config/locales/.svn/text-base/nl.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/nl.yml.svn-base Thu Mar 03 12:02:03 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
@@ -918,3 +918,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/no.yml.svn-base
--- a/config/locales/.svn/text-base/no.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/no.yml.svn-base Thu Mar 03 12:02:03 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
@@ -923,3 +923,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/pl.yml.svn-base
--- a/config/locales/.svn/text-base/pl.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/pl.yml.svn-base Thu Mar 03 12:02:03 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
@@ -953,3 +953,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/pt-BR.yml.svn-base
--- a/config/locales/.svn/text-base/pt-BR.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/pt-BR.yml.svn-base Thu Mar 03 12:02:03 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
@@ -956,3 +956,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/pt.yml.svn-base
--- a/config/locales/.svn/text-base/pt.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/pt.yml.svn-base Thu Mar 03 12:02:03 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
@@ -940,3 +940,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/ro.yml.svn-base
--- a/config/locales/.svn/text-base/ro.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/ro.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -929,3 +929,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/ru.yml.svn-base
--- a/config/locales/.svn/text-base/ru.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/ru.yml.svn-base Thu Mar 03 12:02:03 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: Хранилище Ñ Ð´Ð¾Ñтупом на запиÑÑŒ
@@ -1049,3 +1049,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/sk.yml.svn-base
--- a/config/locales/.svn/text-base/sk.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/sk.yml.svn-base Thu Mar 03 12:02:03 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
@@ -931,3 +931,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/sl.yml.svn-base
--- a/config/locales/.svn/text-base/sl.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/sl.yml.svn-base Thu Mar 03 12:02:03 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.'
@@ -932,3 +932,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/sr-YU.yml.svn-base
--- a/config/locales/.svn/text-base/sr-YU.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/sr-YU.yml.svn-base Thu Mar 03 12:02:03 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'
@@ -936,3 +936,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/sr.yml.svn-base
--- a/config/locales/.svn/text-base/sr.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/sr.yml.svn-base Thu Mar 03 12:02:03 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: 'Један ред за Ñваку вредноÑÑ‚'
@@ -937,3 +937,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/sv.yml.svn-base
--- a/config/locales/.svn/text-base/sv.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/sv.yml.svn-base Thu Mar 03 12:02:03 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,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/th.yml.svn-base
--- a/config/locales/.svn/text-base/th.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/th.yml.svn-base Thu Mar 03 12:02:03 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
@@ -933,3 +933,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/tr.yml.svn-base
--- a/config/locales/.svn/text-base/tr.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/tr.yml.svn-base Thu Mar 03 12:02:03 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:"
@@ -955,3 +955,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/uk.yml.svn-base
--- a/config/locales/.svn/text-base/uk.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/uk.yml.svn-base Thu Mar 03 12:02:03 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
@@ -932,3 +932,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/vi.yml.svn-base
--- a/config/locales/.svn/text-base/vi.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/vi.yml.svn-base Thu Mar 03 12:02:03 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
@@ -987,3 +987,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/zh-TW.yml.svn-base
--- a/config/locales/.svn/text-base/zh-TW.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/zh-TW.yml.svn-base Thu Mar 03 12:02:03 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: '一列輸入一個值'
@@ -1017,3 +1017,7 @@
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
enumeration_system_activity: 系統活動
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/.svn/text-base/zh.yml.svn-base
--- a/config/locales/.svn/text-base/zh.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/.svn/text-base/zh.yml.svn-base Thu Mar 03 12:02:03 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: 'æ¯é¡¹æ•°å€¼ä¸€è¡Œ'
@@ -950,3 +950,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/bg.yml
--- a/config/locales/bg.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/bg.yml Thu Mar 03 12:02:03 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,25 @@
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: Видим
+ field_warn_on_leaving_unsaved: Предупреди ме, когато напуÑкам Ñтраница Ñ Ð½ÐµÐ·Ð°Ð¿Ð¸Ñано Ñъдържание
setting_app_title: Заглавие
setting_app_subtitle: ОпиÑание
@@ -253,26 +314,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 +448,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,12 +481,14 @@
label_information_plural: ИнформациÑ
label_please_login: Вход
label_register: РегиÑтрациÑ
+ label_login_with_open_id_option: или вход чрез OpenID
label_password_lost: Забравена парола
label_home: Ðачало
label_home_heading: Ðачало
label_my_page: Лична Ñтраница
label_my_account: Профил
label_my_projects: Проекти, в които учаÑтвам
+ label_my_page_block: Блокове в личната Ñтраница
label_administration: ÐдминиÑтрациÑ
label_login: Вход
label_logout: Изход
@@ -325,6 +498,8 @@
label_last_login: ПоÑледно Ñвързване
label_registered_on: РегиÑтрациÑ
label_activity: ДейноÑÑ‚
+ label_overall_activity: ЦÑлоÑтна дейноÑÑ‚
+ label_user_activity: "ÐктивноÑÑ‚ на %{value}"
label_new: Ðов
label_logged_as: Здравейте,
label_environment: Среда
@@ -333,10 +508,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: Дълъг текÑÑ‚
@@ -351,6 +529,7 @@
label_attachment_new: Ðов файл
label_attachment_delete: Изтриване
label_attachment_plural: Файлове
+ label_file_added: Добавен файл
label_report: Справка
label_report_plural: Справки
label_news: Ðовини
@@ -358,11 +537,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...
@@ -389,6 +570,7 @@
label_new_statuses_allowed: Позволени ÑÑŠÑтоÑниÑ
label_all: вÑички
label_none: никакви
+ label_nobody: никой
label_next: Следващ
label_previous: Предишен
label_used_by: Използва Ñе от
@@ -414,15 +596,26 @@
label_query: ПотребителÑка Ñправка
label_query_plural: ПотребителÑки Ñправки
label_query_new: Ðова заÑвка
+ label_my_queries: Моите заÑвки
label_filter_add: Добави филтър
label_filter_plural: Филтри
label_equals: е
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: преди
@@ -430,17 +623,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: ПремеÑти по-горе
@@ -466,6 +667,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: ОтделÑне на време
@@ -487,6 +689,7 @@
label_relation_delete: Изтриване на релациÑ
label_relates_to: Ñвързана ÑÑŠÑ
label_duplicates: дублира
+ label_duplicated_by: дублирана от
label_blocks: блокира
label_blocked_by: блокирана от
label_precedes: предшеÑтва
@@ -502,10 +705,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: Година
@@ -516,12 +722,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: ЗапиÑ
@@ -529,8 +804,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: Приложи
@@ -541,6 +818,7 @@
button_list: СпиÑък
button_view: Преглед
button_move: ПремеÑтване
+ button_move_and_follow: ПремеÑтване и продължаване
button_back: Ðазад
button_cancel: Отказ
button_activate: ÐктивациÑ
@@ -554,26 +832,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})."
@@ -581,7 +882,37 @@
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: ÐамалÑване
+ text_warn_on_leaving_unsaved: Страницата Ñъдържа незапиÑано Ñъдържание, което може да бъде загубено, ако Ñ Ð½Ð°Ð¿ÑƒÑнете.
+
default_role_manager: Мениджър
default_role_developer: Разработчик
default_role_reporter: Публикуващ
@@ -603,333 +934,10 @@
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: МакÑимален брой обекти, които да Ñе показват в мрежов график
+
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/bs.yml
--- a/config/locales/bs.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/bs.yml Thu Mar 03 12:02:03 2011 +0000
@@ -788,7 +788,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'
@@ -951,3 +951,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/ca.yml
--- a/config/locales/ca.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/ca.yml Thu Mar 03 12:02:03 2011 +0000
@@ -881,7 +881,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"
@@ -940,3 +940,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/cs.yml
--- a/config/locales/cs.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/cs.yml Thu Mar 03 12:02:03 2011 +0000
@@ -1,4 +1,9 @@
+# Update to 1.1 by Michal Gebauer
+# Updated by Josef Liška
+# CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
+# Based on original CZ translation by Jan KadleÄek
cs:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
date:
formats:
@@ -26,7 +31,7 @@
long: "%B %d, %Y %H:%M"
am: "dop."
pm: "odp."
-
+
datetime:
distance_in_words:
half_a_minute: "půl minuty"
@@ -65,24 +70,26 @@
other: "téměř %{count} roky"
number:
+ # Výchozà formát pro ÄÃsla
format:
- separator: "."
+ separator: "."
delimiter: ""
precision: 3
- human:
- format:
+ human:
+ format:
+ delimiter: ""
precision: 1
- delimiter: ""
- storage_units:
+ storage_units:
format: "%n %u"
- units:
- kb: KB
- tb: TB
- gb: GB
- byte:
- one: Byte
- other: Bytes
- mb: MB
+ units:
+ byte:
+ one: "Bajt"
+ other: "Bajtů"
+ kb: "kB"
+ mb: "MB"
+ gb: "GB"
+ tb: "TB"
+
# Used in array.to_sentence.
support:
@@ -94,8 +101,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "1 chyba zabránila uloženà %{model}"
+ other: "%{count} chyb zabránilo uloženà %{model}"
messages:
inclusion: "nenà zahrnuto v seznamu"
exclusion: "je rezervováno"
@@ -122,10 +129,6 @@
circular_dependency: "Tento vztah by vytvořil cyklickou závislost"
cant_link_an_issue_with_a_descendant: "Úkol nemůže být spojen s jednÃm z jeho dÃlÄÃch úkolů"
- # Updated by Josef Liška
- # CZ translation by Maxim Krušina | Massimo Filippi, s.r.o. | maxim@mxm.cz
- # Based on original CZ translation by Jan KadleÄek
-
actionview_instancetag_blank_option: ProsÃm vyberte
general_text_No: 'Ne'
@@ -154,20 +157,40 @@
notice_successful_connection: Úspěšné pÅ™ipojenÃ.
notice_file_not_found: Stránka na kterou se snažÃte zobrazit neexistuje nebo byla smazána.
notice_locking_conflict: Údaje byly změněny jiným uživatelem.
- notice_scm_error: Záznam a/nebo revize neexistuje v repozitáři.
notice_not_authorized: Nemáte dostateÄná práva pro zobrazenà této stránky.
+ notice_not_authorized_archived_project: Projekt ke kterému se snažÃte pÅ™istupovat byl archivován.
notice_email_sent: "Na adresu %{value} byl odeslán email"
notice_email_error: "PÅ™i odesÃlánà emailu nastala chyba (%{value})"
notice_feeds_access_key_reseted: Váš klÃÄ pro pÅ™Ãstup k RSS byl resetován.
+ notice_api_access_key_reseted: Váš API pÅ™Ãstupový klÃÄ byl resetován.
notice_failed_to_save_issues: "Chyba při uloženà %{count} úkolu(ů) z %{total} vybraných: %{ids}."
+ notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
notice_no_issue_selected: "Nebyl zvolen žádný úkol. ProsÃm, zvolte úkoly, které chcete editovat"
notice_account_pending: "Váš úÄet byl vytvoÅ™en, nynà Äeká na schválenà administrátorem."
notice_default_data_loaded: Výchozà konfigurace úspěšně nahrána.
+ notice_unable_delete_version: Nemohu odstanit verzi
+ notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
+ notice_issue_done_ratios_updated: Koeficienty dokonÄenà úkolu byly aktualizovány.
+ notice_gantt_chart_truncated: Graf byl oÅ™Ãznut, poÄet položek pÅ™esáhl limit pro zobrazenà (%{max})
error_can_t_load_default_data: "Výchozà konfigurace nebyla nahrána: %{value}"
error_scm_not_found: "Položka a/nebo revize neexistujà v repozitáři."
error_scm_command_failed: "PÅ™i pokusu o pÅ™Ãstup k repozitáři doÅ¡lo k chybÄ›: %{value}"
+ error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
error_issue_not_found_in_project: 'Úkol nebyl nalezen nebo nepatřà k tomuto projektu'
+ error_no_tracker_in_project: Žádná fronta nebyla pÅ™iÅ™azena tomuto projektu. ProsÃm zkontroluje nastavenà projektu.
+ error_no_default_issue_status: Nenà nastaven výchozà stav úkolu. ProsÃm zkontrolujte nastavenà ("Administrace -> Stavy úkolů").
+ error_can_not_delete_custom_field: Nelze smazat volitelné pole
+ error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
+ error_can_not_remove_role: Tato role je právÄ› použÃvaná a nelze ji smazat.
+ error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
+ error_can_not_archive_project: Tento projekt nemůže být archivován
+ error_issue_done_ratios_not_updated: Koeficient dokonÄenà úkolu nebyl aktualizován.
+ error_workflow_copy_source: ProsÃm vyberte zdrojovou frontu nebo roly
+ error_workflow_copy_target: ProsÃm vyberte cÃlovou frontu(y) a roly(e)
+ error_unable_delete_issue_status: Nelze smazat stavy úkolů
+ error_unable_to_connect: Nelze se připojit (%{value})
+ warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
mail_subject_lost_password: "Vaše heslo (%{value})"
mail_body_lost_password: 'Pro zmÄ›nu vaÅ¡eho hesla kliknÄ›te na následujÃcà odkaz:'
@@ -177,6 +200,12 @@
mail_body_account_information: Informace o vaÅ¡em úÄtu
mail_subject_account_activation_request: "Aktivace %{value} úÄtu"
mail_body_account_activation_request: "Byl zaregistrován nový uživatel %{value}. Aktivace jeho úÄtu závisà na vaÅ¡em potvrzenÃ."
+ mail_subject_reminder: "%{count} úkol(ů) má termÃn bÄ›hem nÄ›kolik dnà (%{days})"
+ mail_body_reminder: "%{count} úkol(ů), které máte pÅ™iÅ™azeny má termÃn bÄ›hem nÄ›kolik dnà (%{days}):"
+ mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
+ mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
+ mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
+ mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
gui_validation_error: 1 chyba
gui_validation_error_plural: "%{count} chyb(y)"
@@ -216,6 +245,7 @@
field_priority: Priorita
field_fixed_version: CÃlová verze
field_user: Uživatel
+ field_principal: HlavnÃ
field_role: Role
field_homepage: Domovská stránka
field_is_public: Veřejný
@@ -260,10 +290,23 @@
field_redirect_existing_links: PÅ™esmÄ›rovat stvávajÃcà odkazy
field_estimated_hours: Odhadovaná doba
field_column_names: Sloupce
+ field_time_entries: Zaznamenaný Äas
field_time_zone: Časové pásmo
field_searchable: Umožnit vyhledávánÃ
field_default_value: Výchozà hodnota
field_comments_sorting: Zobrazit komentáře
+ field_parent_title: RodiÄovská stránka
+ field_editable: Editovatelný
+ field_watcher: Sleduje
+ field_identity_url: OpenID URL
+ field_content: Obsah
+ field_group_by: Seskupovat výsledky podle
+ field_sharing: SdÃlenÃ
+ field_parent_issue: RodiÄovský úkol
+ field_member_of_group: Skupina přiřaditele
+ field_assigned_to_role: Role přiřaditele
+ field_text: Textové pole
+ field_visible: Viditelný
setting_app_title: Název aplikace
setting_app_subtitle: Podtitulek aplikace
@@ -275,6 +318,7 @@
setting_issues_export_limit: Limit pro export úkolů
setting_mail_from: OdesÃlat emaily z adresy
setting_bcc_recipients: PÅ™Ãjemci skryté kopie (bcc)
+ setting_plain_text_mail: pouze prostý text (ne HTML)
setting_host_name: Jméno serveru
setting_text_formatting: Formátovánà textu
setting_wiki_compression: Komprese historie Wiki
@@ -290,12 +334,94 @@
setting_cross_project_issue_relations: Povolit vazby úkolů napÅ™ÃÄ projekty
setting_issue_list_default_columns: Výchozà sloupce zobrazené v seznamu úkolů
setting_repositories_encodings: KódovánÃ
+ setting_commit_logs_encoding: Kódovánà zpráv při commitu
+ setting_emails_header: HlaviÄka emailů
setting_emails_footer: PatiÄka emailů
setting_protocol: Protokol
setting_per_page_options: Povolené poÄty řádků na stránce
setting_user_format: Formát zobrazenà uživatele
setting_activity_days_default: Dny zobrazené v Äinnosti projektu
setting_display_subprojects_issues: Automaticky zobrazit úkoly podprojektu v hlavnÃm projektu
+ setting_enabled_scm: Povolené SCM
+ setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
+ setting_mail_handler_api_enabled: Povolit WS pro pÅ™Ãchozà e-maily
+ setting_mail_handler_api_key: API klÃÄ
+ setting_sequential_project_identifiers: Generovat sekvenÄnà identifikátory projektů
+ setting_gravatar_enabled: PoužÃt uživatelské ikony Gravatar
+ setting_gravatar_default: Výchozà Gravatar
+ setting_diff_max_lines_displayed: Maximálnà poÄet zobrazenách řádků rozdÃlů
+ setting_file_max_size_displayed: Maximálnà velikost textových souborů zobrazených pÅ™Ãmo na stránce
+ setting_repository_log_display_limit: Maximálnà poÄet revizà zobrazených v logu souboru
+ setting_openid: Umožnit přihlašovánà a registrace s OpenID
+ setting_password_min_length: Minimálnà délka hesla
+ setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
+ setting_default_projects_modules: Výchozà zapnutné moduly pro nový projekt
+ setting_issue_done_ratio: SpoÄÃtat koeficient dokonÄenà úkolu s
+ setting_issue_done_ratio_issue_field: PoužÃt pole úkolu
+ setting_issue_done_ratio_issue_status: PoužÃt stav úkolu
+ setting_start_of_week: ZaÄÃnat kalendáře
+ setting_rest_api_enabled: Zapnout službu REST
+ setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávacà paměti
+ setting_default_notification_option: Výchozà nastavenà oznámenÃ
+ setting_commit_logtime_enabled: Povolit zapisovánà Äasu
+ setting_commit_logtime_activity_id: Aktivita pro zapsaný Äas
+ setting_gantt_items_limit: Maximálnà poÄet položek zobrazený na ganttovÄ› grafu
+
+ permission_add_project: Vytvořit projekt
+ permission_add_subprojects: Vytvořit podprojekty
+ permission_edit_project: Úprava projektů
+ permission_select_project_modules: Výběr modulů projektu
+ permission_manage_members: Spravovánà ÄlenstvÃ
+ permission_manage_project_activities: Spravovat aktivity projektu
+ permission_manage_versions: Spravovánà verzÃ
+ permission_manage_categories: Spravovánà kategorià úkolů
+ permission_view_issues: Zobrazit úkoly
+ permission_add_issues: Přidávánà úkolů
+ permission_edit_issues: Upravovánà úkolů
+ permission_manage_issue_relations: Spravovánà vztahů mezi úkoly
+ permission_add_issue_notes: Přidávánà poznámek
+ permission_edit_issue_notes: Upravovánà poznámek
+ permission_edit_own_issue_notes: Upravovánà vlastnÃch poznámek
+ permission_move_issues: Přesouvánà úkolů
+ permission_delete_issues: Mazánà úkolů
+ permission_manage_public_queries: Správa veřejných dotazů
+ permission_save_queries: Ukládánà dotazů
+ permission_view_gantt: Zobrazené Ganttova diagramu
+ permission_view_calendar: ProhlÞenà kalendáře
+ permission_view_issue_watchers: Zobrazenà seznamu sledujÃcÃh uživatelů
+ permission_add_issue_watchers: PÅ™idánà sledujÃcÃch uživatelů
+ permission_delete_issue_watchers: Smazat pÅ™ihlÞejÃcÃ
+ permission_log_time: Zaznamenávánà stráveného Äasu
+ permission_view_time_entries: Zobrazenà stráveného Äasu
+ permission_edit_time_entries: Upravovánà záznamů o stráveném Äasu
+ permission_edit_own_time_entries: Upravovánà vlastnÃch zázamů o stráveném Äase
+ permission_manage_news: Spravovánà novinek
+ permission_comment_news: Komentovánà novinek
+ permission_manage_documents: Správa dokumentů
+ permission_view_documents: ProhlÞenà dokumentů
+ permission_manage_files: Spravovánà souborů
+ permission_view_files: ProhlÞenà souborů
+ permission_manage_wiki: Spravovánà Wiki
+ permission_rename_wiki_pages: Přejmenovávánà Wiki stránek
+ permission_delete_wiki_pages: Mazánà stránek na Wiki
+ permission_view_wiki_pages: ProhlÞenà Wiki
+ permission_view_wiki_edits: ProhlÞenà historie Wiki
+ permission_edit_wiki_pages: Upravovánà stránek Wiki
+ permission_delete_wiki_pages_attachments: Mazánà pÅ™Ãloh
+ permission_protect_wiki_pages: ZabezpeÄenà Wiki stránek
+ permission_manage_repository: Spravovánà repozitáře
+ permission_browse_repository: Procházenà repozitáře
+ permission_view_changesets: Zobrazovánà sady změn
+ permission_commit_access: Commit pÅ™Ãstup
+ permission_manage_boards: Správa diskusnÃch fór
+ permission_view_messages: ProhlÞenà zpráv
+ permission_add_messages: PosÃlánà zpráv
+ permission_edit_messages: Upravovánà zpráv
+ permission_edit_own_messages: Upravit vlastnà zprávy
+ permission_delete_messages: Mazánà zpráv
+ permission_delete_own_messages: Smazat vlastnà zprávy
+ permission_export_wiki_pages: Exportovat Wiki stránky
+ permission_manage_subtasks: Spravovat podúkoly
project_module_issue_tracking: Sledovánà úkolů
project_module_time_tracking: Sledovánà Äasu
@@ -305,10 +431,13 @@
project_module_wiki: Wiki
project_module_repository: Repozitář
project_module_boards: Diskuse
+ project_module_calendar: Kalendář
+ project_module_gantt: Gantt
label_user: Uživatel
label_user_plural: Uživatelé
label_user_new: Nový uživatel
+ label_user_anonymous: AnonymnÃ
label_project: Projekt
label_project_new: Nový projekt
label_project_plural: Projekty
@@ -355,12 +484,14 @@
label_information_plural: Informace
label_please_login: ProsÃm pÅ™ihlaÅ¡te se
label_register: Registrovat
+ label_login_with_open_id_option: nebo se přihlašte s OpenID
label_password_lost: Zapomenuté heslo
label_home: ÚvodnÃ
label_home_heading: ÚvodnÃ
label_my_page: Moje stránka
label_my_account: Můj úÄet
label_my_projects: Moje projekty
+ label_my_page_block: Bloky na mé stránce
label_administration: Administrace
label_login: PÅ™ihlášenÃ
label_logout: OdhlášenÃ
@@ -371,6 +502,7 @@
label_registered_on: Registrován
label_activity: Aktivita
label_overall_activity: Celková aktivita
+ label_user_activity: "Aktivita uživatele: %{value}"
label_new: Nový
label_logged_as: Přihlášen jako
label_environment: ProstÅ™edÃ
@@ -379,6 +511,8 @@
label_auth_source_new: Nový mód autentifikace
label_auth_source_plural: Módy autentifikace
label_subproject_plural: Podprojekty
+ label_subproject_new: Nový podprojekt
+ label_and_its_subprojects: "%{value} a jeho podprojekty"
label_min_max_length: Min - Max délka
label_list: Seznam
label_date: Datum
@@ -412,6 +546,7 @@
label_version: Verze
label_version_new: Nová verze
label_version_plural: Verze
+ label_close_versions: ZavÅ™Ãt dokonÄené verze
label_confirmation: PotvrzenÃ
label_export_to: 'Také k dispozici:'
label_read: NaÄÃtá se...
@@ -470,6 +605,8 @@
label_not_equals: nenÃ
label_in_less_than: je měšà než
label_in_more_than: je většà než
+ label_greater_or_equal: '>='
+ label_less_or_equal: '<='
label_in: v
label_today: dnes
label_all_time: vše
@@ -492,15 +629,21 @@
label_browse: Procházet
label_modification: "%{count} změna"
label_modification_plural: "%{count} změn"
+ label_branch: Větev
+ label_tag: Tag
label_revision: Revize
label_revision_plural: RevizÃ
+ label_revision_id: "Revize %{value}"
label_associated_revisions: SouvisejÃcà verze
label_added: přidáno
label_modified: změněno
+ label_copied: zkopÃrováno
+ label_renamed: přejmenováno
label_deleted: odstraněno
label_latest_revision: Poslednà revize
label_latest_revision_plural: Poslednà revize
label_view_revisions: Zobrazit revize
+ label_view_all_revisions: Zobrazit všechny revize
label_max_size: Maximálnà velikost
label_sort_highest: PÅ™esunout na zaÄátek
label_sort_higher: Přesunout nahoru
@@ -526,6 +669,7 @@
label_changes_details: Detail všech změn
label_issue_tracking: Sledovánà úkolů
label_spent_time: Strávený Äas
+ label_overall_spent_time: Celkem strávený Äas
label_f_hour: "%{value} hodina"
label_f_hour_plural: "%{value} hodin"
label_time_tracking: Sledovánà Äasu
@@ -546,8 +690,9 @@
label_relation_new: Nová souvislost
label_relation_delete: Odstranit souvislost
label_relates_to: souvisejÃcà s
- label_duplicates: duplicity
- label_blocks: bloků
+ label_duplicates: duplikuje
+ label_duplicated_by: zduplikován
+ label_blocks: blokuje
label_blocked_by: zablokován
label_precedes: pÅ™edcházÃ
label_follows: následuje
@@ -562,6 +707,8 @@
label_board: Fórum
label_board_new: Nové fórum
label_board_plural: Fóra
+ label_board_locked: UzamÄeno
+ label_board_sticky: Nálepka
label_topic_plural: Témata
label_message_plural: Zprávy
label_message_last: Poslednà zpráva
@@ -577,9 +724,12 @@
label_language_based: Podle výchozÃho jazyku
label_sort_by: "Seřadit podle %{value}"
label_send_test_email: Poslat testovacà email
+ label_feeds_access_key: PÅ™Ãstupový klÃÄ pro RSS
+ label_missing_feeds_access_key: Postrádá pÅ™Ãstupový klÃÄ pro RSS
label_feeds_access_key_created_on: "PÅ™Ãstupový klÃÄ pro RSS byl vytvoÅ™en pÅ™ed %{value}"
label_module_plural: Moduly
label_added_time_by: "Přidáno uživatelem %{author} před %{age}"
+ label_updated_time_by: "Aktualizováno uživatelem %{author} před %{age}"
label_updated_time: "Aktualizováno před %{value}"
label_jump_to_a_project: Vyberte projekt...
label_file_plural: Soubory
@@ -592,6 +742,10 @@
label_search_titles_only: Vyhledávat pouze v názvech
label_user_mail_option_all: "Pro všechny události všech mých projektů"
label_user_mail_option_selected: "Pro všechny události vybraných projektů..."
+ label_user_mail_option_none: "Žádné události"
+ label_user_mail_option_only_my_events: "Jen pro věci co sleduji nebo jsem v nich zapojen"
+ label_user_mail_option_only_assigned: "Jen pro všeci kterým sem přiřazen"
+ label_user_mail_option_only_owner: "Jen pro vÄ›ci které vlastnÃm"
label_user_mail_no_self_notified: "NezasÃlat informace o mnou vytvoÅ™ených zmÄ›nách"
label_registration_activation_by_email: aktivace úÄtu emailem
label_registration_manual_activation: manuálnà aktivace úÄtu
@@ -610,6 +764,40 @@
label_preferences: NastavenÃ
label_chronological_order: V chronologickém poÅ™adÃ
label_reverse_chronological_order: V obrácaném chronologickém poÅ™adÃ
+ label_planning: PlánovánÃ
+ label_incoming_emails: PÅ™Ãchozà e-maily
+ label_generate_key: Generovat klÃÄ
+ label_issue_watchers: SledovánÃ
+ label_example: PÅ™Ãklad
+ label_display: Zobrazit
+ label_sort: ŘazenÃ
+ label_ascending: VzestupnÄ›
+ label_descending: SestupnÄ›
+ label_date_from_to: Od %{start} do %{end}
+ label_wiki_content_added: Wiki stránka přidána
+ label_wiki_content_updated: Wiki stránka aktualizována
+ label_group: Skupina
+ label_group_plural: Skupiny
+ label_group_new: Nová skupina
+ label_time_entry_plural: Strávený Äas
+ label_version_sharing_none: NesdÃleno
+ label_version_sharing_descendants: S podprojekty
+ label_version_sharing_hierarchy: S hierarchià projektu
+ label_version_sharing_tree: Se stromem projektu
+ label_version_sharing_system: Se všemi projekty
+ label_update_issue_done_ratios: Aktualizovat koeficienty dokonÄenà úkolů
+ label_copy_source: Zdroj
+ label_copy_target: CÃl
+ label_copy_same_as_target: Stejný jako cÃl
+ label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
+ label_api_access_key: API pÅ™Ãstupový klÃÄ
+ label_missing_api_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ API
+ label_api_access_key_created_on: API pÅ™Ãstupový klÃÄ vytvoÅ™en %{value}
+ label_profile: Profil
+ label_subtask_plural: Podúkol
+ label_project_copy_notifications: Odeslat email oznámenà v průběhu kopie projektu
+ label_principal_search: "Hledat uživatele nebo skupinu:"
+ label_user_search: "Hledat uživatele:"
button_login: Přihlásit
button_submit: Potvrdit
@@ -618,8 +806,10 @@
button_uncheck_all: Odšrtnout vše
button_delete: Odstranit
button_create: Vytvořit
- button_test: Test
+ button_create_and_continue: VytvoÅ™it a pokraÄovat
+ button_test: Testovat
button_edit: Upravit
+ button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
button_add: Přidat
button_change: Změnit
button_apply: PoužÃt
@@ -630,6 +820,7 @@
button_list: Vypsat
button_view: Zobrazit
button_move: Přesunout
+ button_move_and_follow: Přesunout a následovat
button_back: Zpět
button_cancel: Storno
button_activate: Aktivovat
@@ -641,24 +832,40 @@
button_reply: Odpovědět
button_archive: Archivovat
button_unarchive: Odarchivovat
- button_reset: Reset
+ button_reset: Resetovat
button_rename: Přejmenovat
button_change_password: Změnit heslo
button_copy: KopÃrovat
+ button_copy_and_follow: KopÃrovat a následovat
button_annotate: Komentovat
button_update: Aktualizovat
button_configure: Konfigurovat
+ button_quote: Citovat
+ button_duplicate: Duplikát
+ button_show: Zobrazit
status_active: aktivnÃ
status_registered: registrovaný
status_locked: uzamÄený
+ version_status_open: otevřený
+ version_status_locked: uzamÄený
+ version_status_closed: zavřený
+
+ field_active: AktivnÃ
+
text_select_mail_notifications: Vyberte akci při které bude zasláno upozorněnà emailem.
text_regexp_info: napÅ™. ^[A-Z0-9]+$
text_min_max_length_info: 0 znamená bez limitu
text_project_destroy_confirmation: Jste si jisti, že chcete odstranit tento projekt a vÅ¡echna souvisejÃcà data ?
+ text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
text_workflow_edit: Vyberte roli a frontu k editaci průběhu práce
text_are_you_sure: Jste si jisti?
+ text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
+ text_journal_changed: "%{label} změněn z %{old} na %{new}"
+ text_journal_set_to: "%{label} nastaven na %{value}"
+ text_journal_deleted: "%{label} smazán (%{old})"
+ text_journal_added: "%{label} %{value} přidán"
text_tip_issue_begin_day: úkol zaÄÃná v tento den
text_tip_issue_end_day: úkol konÄà v tento den
text_tip_issue_begin_end_day: úkol zaÄÃná a konÄà v tento den
@@ -669,6 +876,7 @@
text_tracker_no_workflow: Pro tuto frontu nenà definován žádný průběh práce
text_unallowed_characters: Nepovolené znaky
text_comma_separated: Povoleno vÃce hodnot (oddÄ›lÄ›né Äárkou).
+ text_line_separated: VÃce hodnot povoleno (jeden řádek pro každou hodnotu).
text_issues_ref_in_commit_messages: Odkazovánà a opravovánà úkolů ve zprávách commitů
text_issue_added: "Úkol %{id} byl vytvořen uživatelem %{author}."
text_issue_updated: "Úkol %{id} byl aktualizován uživatelem %{author}."
@@ -680,15 +888,31 @@
text_no_configuration_data: "Role, fronty, stavy úkolů ani průbÄ›h práce nebyly zatÃm nakonfigurovány.\nVelice doporuÄujeme nahrát výchozà konfiguraci. Po té si můžete vÅ¡e upravit"
text_load_default_configuration: Nahrát výchozà konfiguraci
text_status_changed_by_changeset: "Použito v changesetu %{value}."
+ text_time_logged_by_changeset: Aplikováno v changesetu %{value}.
text_issues_destroy_confirmation: 'Opravdu si přejete odstranit všechny zvolené úkoly?'
text_select_project_modules: 'Aktivnà moduly v tomto projektu:'
text_default_administrator_account_changed: Výchozà nastavenà administrátorského úÄtu zmÄ›nÄ›no
text_file_repository_writable: Povolen zápis do adresáře ukládánà souborů
+ text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
text_rmagick_available: RMagick k dispozici (volitelné)
text_destroy_time_entries_question: "U úkolů, které chcete odstranit je evidováno %{hours} práce. Co chete udělat?"
text_destroy_time_entries: Odstranit evidované hodiny.
text_assign_time_entries_to_project: Přiřadit evidované hodiny projektu
text_reassign_time_entries: 'Přeřadit evidované hodiny k tomuto úkolu:'
+ text_user_wrote: "%{value} napsal:"
+ text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
+ text_enumeration_category_reassign_to: 'Přeřadit je do této:'
+ 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_repository_usernames_mapping: "Vybrat nebo upravit mapovánà mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovanà automaticky."
+ text_diff_truncated: '... RozdÃlový soubor je zkrácen, protože jeho délka pÅ™esahuje max. limit.'
+ text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
+ text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
+ text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
+ text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
+ text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
+ text_own_membership_delete_confirmation: "Chystáte se odebrat si nÄ›která nebo vÅ¡echny svá oprávnÄ›nà a potom již nemusÃte být schopni upravit tento projekt.\nOpravdu chcete pokraÄovat?"
+ text_zoom_in: PřiblÞit
+ text_zoom_out: Oddálit
default_role_manager: Manažer
default_role_developer: Vývojář
@@ -715,225 +939,9 @@
enumeration_issue_priorities: Priority úkolů
enumeration_doc_categories: Kategorie dokumentů
enumeration_activities: Aktivity (sledovánà Äasu)
- error_scm_annotate: "Položka neexistuje nebo nemůže být komentována."
- label_planning: PlánovánÃ
- text_subprojects_destroy_warning: "Jeho podprojek(y): %{value} budou také smazány."
- label_and_its_subprojects: "%{value} a jeho podprojekty"
- mail_body_reminder: "%{count} úkol(ů), které máte pÅ™iÅ™azeny má termÃn bÄ›hem nÄ›kolik dnà (%{days}):"
- mail_subject_reminder: "%{count} úkol(ů) má termÃn bÄ›hem nÄ›kolik dnà (%{days})"
- text_user_wrote: "%{value} napsal:"
- label_duplicated_by: duplikováno od
- setting_enabled_scm: Povolené SCM
- text_enumeration_category_reassign_to: 'Přeřadit je do této:'
- text_enumeration_destroy_question: "Několik (%{count}) objektů je přiřazeno k této hodnotě."
- label_incoming_emails: PÅ™Ãchozà e-maily
- 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."
- field_parent_title: RodiÄovská stránka
- label_issue_watchers: SledovánÃ
- setting_commit_logs_encoding: Kódovánà zpráv při commitu
- button_quote: Citovat
- setting_sequential_project_identifiers: Generovat sekvenÄnà identifikátory projektů
- notice_unable_delete_version: Nemohu odstanit verzi
- label_renamed: přejmenováno
- label_copied: zkopÃrováno
- setting_plain_text_mail: pouze prostý text (ne HTML)
- permission_view_files: ProhlÞenà souborů
- permission_edit_issues: Upravovánà úkolů
- permission_edit_own_time_entries: Upravovánà vlastnÃch zázamů o stráveném Äase
- permission_manage_public_queries: Správa veřejných dotazů
- permission_add_issues: Přidávánà úkolů
- permission_log_time: Zaznamenávánà stráveného Äasu
- permission_view_changesets: Zobrazovánà sady změn
- permission_view_time_entries: Zobrazenà stráveného Äasu
- permission_manage_versions: Spravovánà verzÃ
- permission_manage_wiki: Spravovánà Wiki
- permission_manage_categories: Spravovánà kategorià úkolů
- permission_protect_wiki_pages: ZabezpeÄenà Wiki stránek
- permission_comment_news: Komentovánà novinek
- permission_delete_messages: Mazánà zpráv
- permission_select_project_modules: Výběr modulů projektu
- permission_manage_documents: Správa dokumentů
- permission_edit_wiki_pages: Upravovánà stránek Wiki
- permission_add_issue_watchers: PÅ™idánà sledujÃcÃch uživatelů
- permission_view_gantt: Zobrazené Ganttova diagramu
- permission_move_issues: Přesouvánà úkolů
- permission_manage_issue_relations: Spravovánà vztahů mezi úkoly
- permission_delete_wiki_pages: Mazánà stránek na Wiki
- permission_manage_boards: Správa diskusnÃch fór
- permission_delete_wiki_pages_attachments: Mazánà pÅ™Ãloh
- permission_view_wiki_edits: ProhlÞenà historie Wiki
- permission_add_messages: PosÃlánà zpráv
- permission_view_messages: ProhlÞenà zpráv
- permission_manage_files: Spravovánà souborů
- permission_edit_issue_notes: Upravovánà poznámek
- permission_manage_news: Spravovánà novinek
- permission_view_calendar: ProhlÞenà kalendáře
- permission_manage_members: Spravovánà ÄlenstvÃ
- permission_edit_messages: Upravovánà zpráv
- permission_delete_issues: Mazánà úkolů
- permission_view_issue_watchers: Zobrazenà seznamu sledujÃcÃh uživatelů
- permission_manage_repository: Spravovánà repozitáře
- permission_commit_access: Commit pÅ™Ãstup
- permission_browse_repository: Procházenà repozitáře
- permission_view_documents: ProhlÞenà dokumentů
- permission_edit_project: Úprava projektů
- permission_add_issue_notes: Přidávánà poznámek
- permission_save_queries: Ukládánà dotazů
- permission_view_wiki_pages: ProhlÞenà Wiki
- permission_rename_wiki_pages: Přejmenovávánà Wiki stránek
- permission_edit_time_entries: Upravovánà záznamů o stráveném Äasu
- permission_edit_own_issue_notes: Upravovánà vlastnÃch poznámek
- setting_gravatar_enabled: PoužÃt uživatelské ikony Gravatar
- label_example: PÅ™Ãklad
- text_repository_usernames_mapping: "Vybrat nebo upravit mapovánà mezi Redmine uživateli a uživatelskými jmény nalezenými v logu repozitáře.\nUživatelé se shodným Redmine uživatelským jménem a uživatelským jménem v repozitáři jsou mapovanà automaticky."
- permission_edit_own_messages: Upravit vlastnà zprávy
- permission_delete_own_messages: Smazat vlastnà zprávy
- label_user_activity: "Aktivita uživatele: %{value}"
- label_updated_time_by: "Akutualizováno: %{author} před: %{age}"
- text_diff_truncated: '... RozdÃlový soubor je zkrácen, protože jeho délka pÅ™esahuje max. limit.'
- setting_diff_max_lines_displayed: Maximálnà poÄet zobrazenách řádků rozdÃlů
- text_plugin_assets_writable: Možnost zápisu do adresáře plugin assets
- warning_attachments_not_saved: "%{count} soubor(ů) nebylo možné uložit."
- button_create_and_continue: VytvoÅ™it a pokraÄovat
- text_custom_field_possible_values_info: 'Každá hodnota na novém řádku'
- label_display: Zobrazit
- field_editable: Editovatelný
- setting_repository_log_display_limit: Maximálnà poÄet revizà zobrazených v logu souboru
- setting_file_max_size_displayed: Maximálnà velikost textových souborů zobrazených pÅ™Ãmo na stránce
- field_watcher: Sleduje
- setting_openid: Umožnit přihlašovánà a registrace s OpenID
- field_identity_url: OpenID URL
- label_login_with_open_id_option: nebo se přihlašte s OpenID
- field_content: Obsah
- label_descending: SestupnÄ›
- label_sort: ŘazenÃ
- label_ascending: VzestupnÄ›
- label_date_from_to: Od %{start} do %{end}
- label_greater_or_equal: ">="
- label_less_or_equal: <=
- text_wiki_page_destroy_question: Tato stránka má %{descendants} podstránek a potomků. Co chcete udělat?
- text_wiki_page_reassign_children: PÅ™iÅ™adit podstránky k tomuto rodiÄi
- text_wiki_page_nullify_children: Ponechat podstránky jako kořenové stránky
- text_wiki_page_destroy_children: Smazat podstránky a všechny jejich potomky
- setting_password_min_length: Minimálnà délka hesla
- field_group_by: Seskupovat výsledky podle
- mail_subject_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována"
- label_wiki_content_added: Wiki stránka přidána
- mail_subject_wiki_content_added: "'%{id}' Wiki stránka byla přidána"
- mail_body_wiki_content_added: "'%{id}' Wiki stránka byla přidána od %{author}."
- label_wiki_content_updated: Wiki stránka aktualizována
- mail_body_wiki_content_updated: "'%{id}' Wiki stránka byla aktualizována od %{author}."
- permission_add_project: Vytvořit projekt
- setting_new_project_user_role_id: Role přiřazená uživateli bez práv administrátora, který projekt vytvořil
- label_view_all_revisions: Zobrazit všechny revize
- label_tag: Tag
- label_branch: Branch
- error_no_tracker_in_project: Žádná fronta nebyla pÅ™iÅ™azena tomuto projektu. ProsÃm zkontroluje nastavenà projektu.
- error_no_default_issue_status: Nenà nastaven výchozà stav úkolu. ProsÃm zkontrolujte nastavenà ("Administrace -> Stavy úkolů").
- text_journal_changed: "%{label} změněn z %{old} na %{new}"
- text_journal_set_to: "%{label} nastaven na %{value}"
- text_journal_deleted: "%{label} smazán (%{old})"
- label_group_plural: Skupiny
- label_group: Skupina
- label_group_new: Nová skupina
- label_time_entry_plural: Strávený Äas
- text_journal_added: "%{label} %{value} přidán"
- field_active: AktivnÃ
enumeration_system_activity: Systémová aktivita
- permission_delete_issue_watchers: Smazat pÅ™ihlÞejÃcÃ
- version_status_closed: zavřený
- version_status_locked: uzamÄený
- version_status_open: otevřený
- error_can_not_reopen_issue_on_closed_version: Úkol přiřazený k uzavřené verzi nemůže být znovu otevřen
- label_user_anonymous: AnonymnÃ
- button_move_and_follow: Přesunout a následovat
- setting_default_projects_modules: Výchozà zapnutné moduly pro nový projekt
- setting_gravatar_default: Výchozà Gravatar
- field_sharing: SdÃlenÃ
- label_version_sharing_hierarchy: S hierarchià projektu
- label_version_sharing_system: Se všemi projekty
- label_version_sharing_descendants: S podprojekty
- label_version_sharing_tree: Se stromem projektu
- label_version_sharing_none: NesdÃleno
- error_can_not_archive_project: Tento projekt nemůže být archivován
- button_duplicate: Duplikát
- button_copy_and_follow: KopÃrovat a následovat
- label_copy_source: Zdroj
- setting_issue_done_ratio: SpoÄÃtat koeficient dokonÄenà úkolu s
- setting_issue_done_ratio_issue_status: PoužÃt stav úkolu
- error_issue_done_ratios_not_updated: Koeficient dokonÄenà úkolu nebyl aktualizován.
- error_workflow_copy_target: ProsÃm vyberte cÃlovou frontu(y) a roly(e)
- setting_issue_done_ratio_issue_field: PoužÃt pole úkolu
- label_copy_same_as_target: Stejný jako cÃl
- label_copy_target: CÃl
- notice_issue_done_ratios_updated: Koeficienty dokonÄenà úkolu byly aktualizovány.
- error_workflow_copy_source: ProsÃm vyberte zdrojovou frontu nebo roly
- label_update_issue_done_ratios: Aktualizovat koeficienty dokonÄenà úkolů
- setting_start_of_week: ZaÄÃnat kalendáře
- permission_view_issues: Zobrazit úkoly
- label_display_used_statuses_only: Zobrazit pouze stavy které jsou použité touto frontou
- label_revision_id: Revize %{value}
- label_api_access_key: API pÅ™Ãstupový klÃÄ
- label_api_access_key_created_on: API pÅ™Ãstupový klÃÄ vytvoÅ™en %{value}
- label_feeds_access_key: RSS pÅ™Ãstupový klÃÄ
- notice_api_access_key_reseted: Váš API pÅ™Ãstupový klÃÄ byl resetován.
- setting_rest_api_enabled: Zapnout službu REST
- label_missing_api_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ API
- label_missing_feeds_access_key: ChybÄ›jÃcà pÅ™Ãstupový klÃÄ RSS
- button_show: Zobrazit
- text_line_separated: VÃce hodnot povoleno (jeden řádek pro každou hodnotu).
- setting_mail_handler_body_delimiters: Zkrátit e-maily po jednom z těchto řádků
- permission_add_subprojects: Vytvořit podprojekty
- label_subproject_new: Nový podprojekt
- text_own_membership_delete_confirmation: |-
- Chystáte se odebrat si nÄ›která nebo vÅ¡echny svá oprávnÄ›nà a potom již nemusÃte být schopni upravit tento projekt.
- Opravdu chcete pokraÄovat?
- label_close_versions: ZavÅ™Ãt dokonÄené verze
- label_board_sticky: Nálepka
- label_board_locked: UzamÄeno
- permission_export_wiki_pages: Exportovat Wiki stránky
- setting_cache_formatted_text: Ukládat formátovaný text do vyrovnávacà paměti
- permission_manage_project_activities: Spravovat aktivity projektu
- error_unable_delete_issue_status: Nelze smazat stavy úkolů
- label_profile: Profil
- permission_manage_subtasks: Spravovat podúkoly
- field_parent_issue: RodiÄovský úkol
- label_subtask_plural: Podúkol
- label_project_copy_notifications: Odeslat email oznámenà v průběhu kopie projektu
- error_can_not_delete_custom_field: Nelze smazat volitelné pole
- error_unable_to_connect: Nelze se připojit (%{value})
- error_can_not_remove_role: Tato role je právÄ› použÃvaná a nelze ji smazat.
- error_can_not_delete_tracker: Tato fronta obsahuje úkoly a nemůže být smazán.
- field_principal: HlavnÃ
- label_my_page_block: Bloky na mé stránce
- notice_failed_to_save_members: "NepodaÅ™ilo se uložit Älena(y): %{errors}."
- text_zoom_out: Oddálit
- text_zoom_in: PřiblÞit
- notice_unable_delete_time_entry: Nelze smazat Äas ze záznamu.
- label_overall_spent_time: CelkovÄ› strávený Äas
- field_time_entries: Zaznamenaný Äas
- project_module_gantt: Gantt
- project_module_calendar: Kalendář
- button_edit_associated_wikipage: "Upravit přiřazenou Wiki stránku: %{page_title}"
- text_are_you_sure_with_children: Smazat úkol vÄetnÄ› vÅ¡ech podúkolů?
- field_text: Textové pole
- label_user_mail_option_only_owner: Only for things I am the owner of
- setting_default_notification_option: Default notification option
- label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
- label_user_mail_option_only_assigned: Only for things I am assigned to
- label_user_mail_option_none: No events
- field_member_of_group: Assignee's group
- field_assigned_to_role: Assignee's role
- notice_not_authorized_archived_project: The project you're trying to access has been archived.
- label_principal_search: "Search for user or group:"
- label_user_search: "Search for user:"
- field_visible: Visible
- setting_emails_header: Emails header
- 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
+
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/da.yml
--- a/config/locales/da.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/da.yml Thu Mar 03 12:02:03 2011 +0000
@@ -754,7 +754,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
@@ -953,3 +953,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/de.yml
--- a/config/locales/de.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/de.yml Thu Mar 03 12:02:03 2011 +0000
@@ -899,7 +899,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'
@@ -954,3 +954,7 @@
setting_commit_logtime_enabled: Aktiviere Zeitlogging
notice_gantt_chart_truncated: Die Grafik ist unvollständig, da das Maximum der anzeigbaren Aufgaben überschritten wurde (%{max})
setting_gantt_items_limit: Maximale Anzahl von Aufgaben die im Gantt-Chart angezeigt werden.
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/el.yml
--- a/config/locales/el.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/el.yml Thu Mar 03 12:02:03 2011 +0000
@@ -799,7 +799,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: 'Μία γÏαμμή για κάθε τιμή'
@@ -937,3 +937,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/en-GB.yml
--- a/config/locales/en-GB.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/en-GB.yml Thu Mar 03 12:02:03 2011 +0000
@@ -1,962 +1,946 @@
-en-GB:
- 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: "%d/%m/%Y"
- short: "%d %b"
- long: "%d %B, %Y"
-
- day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
- abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
-
- # Don't forget the nil at the beginning; there's no such thing as a 0th month
- month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
- abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
- # Used in date_select and datime_select.
- order: [ :year, :month, :day ]
-
- time:
- formats:
- default: "%d/%m/%Y %I:%M %p"
- time: "%I:%M %p"
- short: "%d %b %H:%M"
- long: "%d %B, %Y %H:%M"
- am: "am"
- pm: "pm"
-
- datetime:
- distance_in_words:
- half_a_minute: "half a minute"
- less_than_x_seconds:
- one: "less than 1 second"
- other: "less than %{count} seconds"
- x_seconds:
- one: "1 second"
- other: "%{count} seconds"
- less_than_x_minutes:
- one: "less than a minute"
- other: "less than %{count} minutes"
- x_minutes:
- one: "1 minute"
- other: "%{count} minutes"
- about_x_hours:
- one: "about 1 hour"
- other: "about %{count} hours"
- x_days:
- one: "1 day"
- other: "%{count} days"
- about_x_months:
- one: "about 1 month"
- other: "about %{count} months"
- x_months:
- one: "1 month"
- other: "%{count} months"
- about_x_years:
- one: "about 1 year"
- other: "about %{count} years"
- over_x_years:
- one: "over 1 year"
- other: "over %{count} years"
- almost_x_years:
- one: "almost 1 year"
- other: "almost %{count} years"
-
- number:
- format:
- separator: "."
- delimiter: " "
- precision: 3
-
- currency:
- format:
- format: "%u%n"
- unit: "£"
- human:
- format:
- delimiter: ""
- precision: 1
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "kB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
-
-
-# Used in array.to_sentence.
- support:
- array:
- sentence_connector: "and"
- skip_last_comma: false
-
- activerecord:
- errors:
- template:
- header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
- messages:
- inclusion: "is not included in the list"
- exclusion: "is reserved"
- invalid: "is invalid"
- confirmation: "doesn't match confirmation"
- accepted: "must be accepted"
- empty: "can't be empty"
- blank: "can't be blank"
- too_long: "is too long (maximum is %{count} characters)"
- too_short: "is too short (minimum is %{count} characters)"
- wrong_length: "is the wrong length (should be %{count} characters)"
- taken: "has already been taken"
- not_a_number: "is not a number"
- not_a_date: "is not a valid date"
- greater_than: "must be greater than %{count}"
- greater_than_or_equal_to: "must be greater than or equal to %{count}"
- equal_to: "must be equal to %{count}"
- less_than: "must be less than %{count}"
- less_than_or_equal_to: "must be less than or equal to %{count}"
- odd: "must be odd"
- even: "must be even"
- greater_than_start_date: "must be greater than start date"
- not_same_project: "doesn't belong to the same project"
- circular_dependency: "This relation would create a circular dependency"
- cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
-
- actionview_instancetag_blank_option: Please select
-
- general_text_No: 'No'
- general_text_Yes: 'Yes'
- general_text_no: 'no'
- general_text_yes: 'yes'
- general_lang_name: 'English (British)'
- general_csv_separator: ','
- general_csv_decimal_separator: '.'
- general_csv_encoding: ISO-8859-1
- general_pdf_encoding: ISO-8859-1
- general_first_day_of_week: '1'
-
- notice_account_updated: Account was successfully updated.
- notice_account_invalid_creditentials: Invalid user or password
- notice_account_password_updated: Password was successfully updated.
- notice_account_wrong_password: Wrong password
- notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
- notice_account_unknown_email: Unknown user.
- notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
- notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
- notice_account_activated: Your account has been activated. You can now log in.
- notice_successful_create: Successful creation.
- notice_successful_update: Successful update.
- notice_successful_delete: Successful deletion.
- notice_successful_connection: Successful connection.
- notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
- notice_locking_conflict: Data has been updated by another user.
- notice_not_authorized: You are not authorised to access this page.
- notice_email_sent: "An email was sent to %{value}"
- notice_email_error: "An error occurred while sending mail (%{value})"
- notice_feeds_access_key_reseted: Your RSS access key was reset.
- notice_api_access_key_reseted: Your API access key was reset.
- notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
- notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
- notice_account_pending: "Your account was created and is now pending administrator approval."
- notice_default_data_loaded: Default configuration successfully loaded.
- notice_unable_delete_version: Unable to delete version.
- notice_issue_done_ratios_updated: Issue done ratios updated.
-
- error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
- error_scm_not_found: "The entry or revision was not found in the repository."
- error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
- error_scm_annotate: "The entry does not exist or can not be annotated."
- error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
- error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
- error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
- error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
- error_can_not_archive_project: This project can not be archived
- error_issue_done_ratios_not_updated: "Issue done ratios not updated."
- error_workflow_copy_source: 'Please select a source tracker or role'
- error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
-
- warning_attachments_not_saved: "%{count} file(s) could not be saved."
-
- mail_subject_lost_password: "Your %{value} password"
- mail_body_lost_password: 'To change your password, click on the following link:'
- mail_subject_register: "Your %{value} account activation"
- mail_body_register: 'To activate your account, click on the following link:'
- mail_body_account_information_external: "You can use your %{value} account to log in."
- mail_body_account_information: Your account information
- mail_subject_account_activation_request: "%{value} account activation request"
- mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
- mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
- mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
- mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
- mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
- mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
- mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
-
- gui_validation_error: 1 error
- gui_validation_error_plural: "%{count} errors"
-
- field_ssamr_user_detail:
- description: User Description
- field_name: Name
- field_description: Description
- field_summary: Summary
- field_is_required: Required
- field_firstname: First name
- field_lastname: Last name
- field_mail: Email
- field_filename: File
- field_filesize: Size
- field_downloads: Downloads
- field_author: Author
- field_created_on: Created
- field_updated_on: Updated
- field_field_format: Format
- field_is_for_all: For all projects
- field_possible_values: Possible values
- field_regexp: Regular expression
- field_min_length: Minimum length
- field_max_length: Maximum length
- field_value: Value
- field_category: Category
- field_title: Title
- field_project: Project
- field_issue: Issue
- field_status: Status
- field_notes: Notes
- field_is_closed: Issue closed
- field_is_default: Default value
- field_tracker: Tracker
- field_subject: Subject
- field_due_date: Due date
- field_assigned_to: Assignee
- field_priority: Priority
- field_fixed_version: Target version
- field_user: User
- field_role: Role
- field_homepage: Homepage
- field_is_public: Public
- field_is_private: Private
- field_parent: Subproject of
- field_is_in_roadmap: Issues displayed in roadmap
- field_login: Login
- field_mail_notification: Email notifications
- field_admin: Administrator
- field_last_login_on: Last connection
- field_language: Language
- field_effective_date: Date
- field_password: Password
- field_new_password: New password
- field_password_confirmation: Confirmation
- field_version: Version
- field_type: Type
- field_host: Host
- field_port: Port
- field_account: Account
- field_base_dn: Base DN
- field_attr_login: Login attribute
- field_attr_firstname: Firstname attribute
- field_attr_lastname: Lastname attribute
- field_attr_mail: Email attribute
- field_onthefly: On-the-fly user creation
- field_start_date: Start date
- field_done_ratio: % Done
- field_auth_source: Authentication mode
- field_hide_mail: Hide my email address
- field_comments: Comment
- field_url: URL
- field_start_page: Start page
- field_subproject: Subproject
- field_hours: Hours
- field_activity: Activity
- field_spent_on: Date
- field_identifier: Identifier
- field_is_filter: Used as a filter
- field_issue_to: Related issue
- field_delay: Delay
- field_assignable: Issues can be assigned to this role
- field_redirect_existing_links: Redirect existing links
- field_estimated_hours: Estimated time
- field_column_names: Columns
- field_time_zone: Time zone
- field_searchable: Searchable
- field_default_value: Default value
- field_comments_sorting: Display comments
- field_parent_title: Parent page
- field_editable: Editable
- field_watcher: Watcher
- field_identity_url: OpenID URL
- field_content: Content
- field_group_by: Group results by
- field_sharing: Sharing
-
- setting_app_title: Application title
- setting_app_subtitle: Application subtitle
- setting_welcome_text: Welcome text
- setting_tipoftheday_text: Tip of the Day
- setting_notifications_text: Notifications
- setting_default_language: Default language
- setting_login_required: Authentication required
- setting_self_registration: Self-registration
- setting_attachment_max_size: Attachment max. size
- setting_issues_export_limit: Issues export limit
- setting_mail_from: Emission email address
- setting_bcc_recipients: Blind carbon copy recipients (bcc)
- setting_plain_text_mail: Plain text mail (no HTML)
- setting_host_name: Host name and path
- setting_text_formatting: Text formatting
- setting_wiki_compression: Wiki history compression
- setting_feeds_limit: Feed content limit
- setting_default_projects_public: New projects are public by default
- setting_autofetch_changesets: Autofetch commits
- setting_sys_api_enabled: Enable WS for repository management
- setting_commit_ref_keywords: Referencing keywords
- setting_commit_fix_keywords: Fixing keywords
- setting_autologin: Autologin
- setting_date_format: Date format
- setting_time_format: Time format
- setting_cross_project_issue_relations: Allow cross-project issue relations
- setting_issue_list_default_columns: Default columns displayed on the issue list
- setting_repositories_encodings: Repositories encodings
- setting_commit_logs_encoding: Commit messages encoding
- setting_emails_footer: Emails footer
- setting_protocol: Protocol
- setting_per_page_options: Objects per page options
- setting_user_format: Users display format
- setting_activity_days_default: Days displayed on project activity
- setting_display_subprojects_issues: Display subprojects issues on main projects by default
- setting_enabled_scm: Enabled SCM
- setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
- setting_mail_handler_api_enabled: Enable WS for incoming emails
- setting_mail_handler_api_key: API key
- setting_sequential_project_identifiers: Generate sequential project identifiers
- setting_gravatar_enabled: Use Gravatar user icons
- setting_gravatar_default: Default Gravatar image
- setting_diff_max_lines_displayed: Max number of diff lines displayed
- setting_file_max_size_displayed: Max size of text files displayed inline
- setting_repository_log_display_limit: Maximum number of revisions displayed on file log
- setting_openid: Allow OpenID login and registration
- setting_password_min_length: Minimum password length
- setting_new_project_user_role_id: Role given to a non-admin user who creates a project
- setting_default_projects_modules: Default enabled modules for new projects
- setting_issue_done_ratio: Calculate the issue done ratio with
- setting_issue_done_ratio_issue_field: Use the issue field
- setting_issue_done_ratio_issue_status: Use the issue status
- setting_start_of_week: Start calendars on
- setting_rest_api_enabled: Enable REST web service
- setting_cache_formatted_text: Cache formatted text
-
- permission_add_project: Create project
- permission_add_subprojects: Create subprojects
- permission_edit_project: Edit project
- permission_select_project_modules: Select project modules
- permission_manage_members: Manage members
- permission_manage_project_activities: Manage project activities
- permission_manage_versions: Manage versions
- permission_manage_categories: Manage issue categories
- permission_view_issues: View Issues
- permission_add_issues: Add issues
- permission_edit_issues: Edit issues
- permission_manage_issue_relations: Manage issue relations
- permission_add_issue_notes: Add notes
- permission_edit_issue_notes: Edit notes
- permission_edit_own_issue_notes: Edit own notes
- permission_move_issues: Move issues
- permission_delete_issues: Delete issues
- permission_manage_public_queries: Manage public queries
- permission_save_queries: Save queries
- permission_view_gantt: View gantt chart
- permission_view_calendar: View calendar
- permission_view_issue_watchers: View watchers list
- permission_add_issue_watchers: Add watchers
- permission_delete_issue_watchers: Delete watchers
- permission_log_time: Log spent time
- permission_view_time_entries: View spent time
- permission_edit_time_entries: Edit time logs
- permission_edit_own_time_entries: Edit own time logs
- permission_manage_news: Manage news
- permission_comment_news: Comment news
- permission_manage_documents: Manage documents
- permission_view_documents: View documents
- permission_manage_files: Manage files
- permission_view_files: View files
- permission_manage_wiki: Manage wiki
- permission_rename_wiki_pages: Rename wiki pages
- permission_delete_wiki_pages: Delete wiki pages
- permission_view_wiki_pages: View wiki
- permission_view_wiki_edits: View wiki history
- permission_edit_wiki_pages: Edit wiki pages
- permission_delete_wiki_pages_attachments: Delete attachments
- permission_protect_wiki_pages: Protect wiki pages
- permission_manage_repository: Manage repository
- permission_browse_repository: Browse repository
- permission_view_changesets: View changesets
- permission_commit_access: Commit access
- permission_manage_boards: Manage boards
- permission_view_messages: View messages
- permission_add_messages: Post messages
- permission_edit_messages: Edit messages
- permission_edit_own_messages: Edit own messages
- permission_delete_messages: Delete messages
- permission_delete_own_messages: Delete own messages
- permission_export_wiki_pages: Export wiki pages
-
- project_module_issue_tracking: Issue tracking
- project_module_time_tracking: Time tracking
- project_module_news: News
- project_module_documents: Documents
- project_module_files: Files
- project_module_wiki: Wiki
- project_module_repository: Repository
- project_module_boards: Boards
-
- label_tipoftheday: Tip of the day
- label_notifications: Important Message
- label_ssamr_description: Research description
- label_ssamr_details: Other Details
-
- label_user: User
- label_user_plural: Users
- label_user_new: New user
- label_user_anonymous: Anonymous
- label_project: Project
- label_project_new: New project
- label_project_plural: Projects
- label_my_project_plural: My Projects
- label_other_project_plural: "Everyone Else's Projects"
- label_x_projects:
- zero: no projects
- one: 1 project
- other: "%{count} projects"
- label_project_all: All Projects
- label_project_latest: Latest projects
- label_managers: Managed by
- label_issue: Issue
- label_issue_new: New issue
- label_issue_plural: Issues
- label_issue_view_all: View all issues
- label_issues_by: "Issues by %{value}"
- label_issue_added: Issue added
- label_issue_updated: Issue updated
- label_document: Document
- label_document_new: New document
- label_document_plural: Documents
- label_document_added: Document added
- label_role: Role
- label_role_plural: Roles
- label_role_new: New role
- label_role_and_permissions: Roles and permissions
- label_member: Member
- label_member_new: New member
- label_member_plural: Members
- label_tracker: Tracker
- label_tracker_plural: Trackers
- label_tracker_new: New tracker
- label_workflow: Workflow
- label_issue_status: Issue status
- label_issue_status_plural: Issue statuses
- label_issue_status_new: New status
- label_issue_category: Issue category
- label_issue_category_plural: Issue categories
- label_issue_category_new: New category
- label_custom_field: Custom field
- label_custom_field_plural: Custom fields
- label_custom_field_new: New custom field
- label_enumerations: Enumerations
- label_enumeration_new: New value
- label_information: Information
- label_information_plural: Information
- label_please_login: Please log in
- label_register: Register
- label_login_with_open_id_option: or login with OpenID
- label_password_lost: Lost password
- label_home: Home
- label_home_heading: Welcome!
- label_my_page: My page
- label_my_account: My account
- label_my_projects: My projects
- label_administration: Administration
- label_login: Sign in
- label_logout: Sign out
- label_help: Help
- label_reported_issues: Reported issues
- label_assigned_to_me_issues: Issues assigned to me
- label_last_login: Last connection
- label_registered_on: Registered on
- label_activity: Activity
- label_overall_activity: Overall activity
- label_user_activity: "%{value}'s activity"
- label_new: New
- label_logged_as: Logged in as
- label_environment: Environment
- label_authentication: Authentication
- label_auth_source: Authentication mode
- label_auth_source_new: New authentication mode
- label_auth_source_plural: Authentication modes
- label_subproject_plural: Subprojects
- label_subproject_new: New subproject
- label_and_its_subprojects: "%{value} and its subprojects"
- label_min_max_length: Min - Max length
- label_list: List
- label_date: Date
- label_integer: Integer
- label_float: Float
- label_boolean: Boolean
- label_string: Text
- label_text: Long text
- label_attribute: Attribute
- label_attribute_plural: Attributes
- label_download: "%{count} Download"
- label_download_plural: "%{count} Downloads"
- label_no_data: No data to display
- label_change_status: Change status
- label_history: History
- label_attachment: File
- label_attachment_new: New file
- label_attachment_delete: Delete file
- label_attachment_plural: Files
- label_file_added: File added
- label_report: Report
- label_report_plural: Reports
- label_news: News
- label_news_new: Add news
- label_news_plural: News
- label_news_latest: Latest news
- label_news_view_all: View all news
- label_news_added: News added
- label_settings: Settings
- label_overview: Overview
- label_version: Version
- label_version_new: New version
- label_version_plural: Versions
- label_close_versions: Close completed versions
- label_confirmation: Confirmation
- label_export_to: 'Also available in:'
- label_read: Read...
- label_public_projects: Public projects
- label_open_issues: open
- label_open_issues_plural: open
- label_closed_issues: closed
- label_closed_issues_plural: closed
- label_x_open_issues_abbr_on_total:
- zero: 0 open / %{total}
- one: 1 open / %{total}
- other: "%{count} open / %{total}"
- label_x_open_issues_abbr:
- zero: 0 open
- one: 1 open
- other: "%{count} open"
- label_x_closed_issues_abbr:
- zero: 0 closed
- one: 1 closed
- other: "%{count} closed"
- label_total: Total
- label_permissions: Permissions
- label_current_status: Current status
- label_new_statuses_allowed: New statuses allowed
- label_all: all
- label_none: none
- label_nobody: nobody
- label_next: Next
- label_previous: Previous
- label_used_by: Used by
- label_details: Details
- label_add_note: Add a note
- label_per_page: Per page
- label_calendar: Calendar
- label_months_from: months from
- label_gantt: Gantt
- label_internal: Internal
- label_last_changes: "last %{count} changes"
- label_change_view_all: View all changes
- label_personalize_page: Personalise this page
- label_comment: Comment
- label_comment_plural: Comments
- label_x_comments:
- zero: no comments
- one: 1 comment
- other: "%{count} comments"
- label_comment_add: Add a comment
- label_comment_added: Comment added
- label_comment_delete: Delete comments
- label_query: Custom query
- label_query_plural: Custom queries
- label_query_new: New query
- label_filter_add: Add filter
- label_filter_plural: Filters
- label_equals: is
- label_not_equals: is not
- label_in_less_than: in less than
- label_in_more_than: in more than
- label_greater_or_equal: '>='
- label_less_or_equal: '<='
- label_in: in
- label_today: today
- label_all_time: all time
- label_yesterday: yesterday
- label_this_week: this week
- label_last_week: last week
- label_last_n_days: "last %{count} days"
- label_this_month: this month
- label_last_month: last month
- label_this_year: this year
- label_date_range: Date range
- label_less_than_ago: less than days ago
- label_more_than_ago: more than days ago
- label_ago: days ago
- label_contains: contains
- label_not_contains: doesn't contain
- label_day_plural: days
- label_repository: Repository
- label_repository_plural: Repositories
- label_browse: Browse
- label_modification: "%{count} change"
- label_modification_plural: "%{count} changes"
- label_branch: Branch
- label_tag: Tag
- label_revision: Revision
- label_revision_plural: Revisions
- label_revision_id: "Revision %{value}"
- label_associated_revisions: Associated revisions
- label_added: added
- label_modified: modified
- label_copied: copied
- label_renamed: renamed
- label_deleted: deleted
- label_latest_revision: Latest revision
- label_latest_revision_plural: Latest revisions
- label_view_revisions: View revisions
- label_view_all_revisions: View all revisions
- label_max_size: Maximum size
- label_sort_highest: Move to top
- label_sort_higher: Move up
- label_sort_lower: Move down
- label_sort_lowest: Move to bottom
- label_roadmap: Roadmap
- label_roadmap_due_in: "Due in %{value}"
- label_roadmap_overdue: "%{value} late"
- label_roadmap_no_issues: No issues for this version
- label_search: Search
- label_result_plural: Results
- label_all_words: All words
- label_wiki: Wiki
- label_wiki_edit: Wiki edit
- label_wiki_edit_plural: Wiki edits
- label_wiki_page: Wiki page
- label_wiki_page_plural: Wiki pages
- label_index_by_title: Index by title
- label_index_by_date: Index by date
- label_current_version: Current version
- label_preview: Preview
- label_feed_plural: Feeds
- label_changes_details: Details of all changes
- label_issue_tracking: Issue tracking
- label_spent_time: Spent time
- label_f_hour: "%{value} hour"
- label_f_hour_plural: "%{value} hours"
- label_time_tracking: Time tracking
- label_change_plural: Changes
- label_statistics: Statistics
- label_commits_per_month: Commits per month
- label_commits_per_author: Commits per author
- label_view_diff: View differences
- label_diff_inline: inline
- label_diff_side_by_side: side by side
- label_options: Options
- label_copy_workflow_from: Copy workflow from
- label_permissions_report: Permissions report
- label_watched_issues: Watched issues
- label_related_issues: Related issues
- label_applied_status: Applied status
- label_loading: Loading...
- label_relation_new: New relation
- label_relation_delete: Delete relation
- label_relates_to: related to
- label_duplicates: duplicates
- label_duplicated_by: duplicated by
- label_blocks: blocks
- label_blocked_by: blocked by
- label_precedes: precedes
- label_follows: follows
- label_end_to_start: end to start
- label_end_to_end: end to end
- label_start_to_start: start to start
- label_start_to_end: start to end
- label_stay_logged_in: Stay logged in
- label_disabled: disabled
- label_show_completed_versions: Show completed versions
- label_me: me
- label_board: Forum
- label_board_new: New forum
- label_board_plural: Forums
- label_board_locked: Locked
- label_board_sticky: Sticky
- label_topic_plural: Topics
- label_message_plural: Messages
- label_message_last: Last message
- label_message_new: New message
- label_message_posted: Message added
- label_reply_plural: Replies
- label_send_information: Send account information to the user
- label_year: Year
- label_month: Month
- label_week: Week
- label_date_from: From
- label_date_to: To
- label_language_based: "Based on user's language"
- label_sort_by: "Sort by %{value}"
- label_send_test_email: Send a test email
- label_feeds_access_key: RSS access key
- label_missing_feeds_access_key: Missing a RSS access key
- label_feeds_access_key_created_on: "RSS access key created %{value} ago"
- label_module_plural: Modules
- label_added_time_by: "Added by %{author} %{age} ago"
- label_updated_time_by: "Updated by %{author} %{age} ago"
- label_updated_time: "Updated %{value} ago"
- label_jump_to_a_project: Jump to a project...
- label_file_plural: Files
- label_changeset_plural: Changesets
- label_default_columns: Default columns
- label_no_change_option: (No change)
- label_bulk_edit_selected_issues: Bulk edit selected issues
- label_theme: Theme
- label_default: Default
- label_search_titles_only: Search titles only
- label_user_mail_option_all: "For any event on all my projects"
- label_user_mail_option_selected: "For any event on the selected projects only..."
- label_user_mail_option_none: "No events"
- label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
- label_registration_activation_by_email: account activation by email
- label_registration_manual_activation: manual account activation
- label_registration_automatic_activation: automatic account activation
- label_display_per_page: "Per page: %{value}"
- label_age: Age
- label_change_properties: Change properties
- label_general: General
- label_more: More
- label_scm: SCM
- label_plugins: Plugins
- label_ldap_authentication: LDAP authentication
- label_downloads_abbr: D/L
- label_optional_description: Optional description
- label_add_another_file: Add another file
- label_preferences: Preferences
- label_chronological_order: In chronological order
- label_reverse_chronological_order: In reverse chronological order
- label_planning: Planning
- label_incoming_emails: Incoming emails
- label_generate_key: Generate a key
- label_issue_watchers: Watchers
- label_example: Example
- label_display: Display
- label_sort: Sort
- label_ascending: Ascending
- label_descending: Descending
- label_date_from_to: From %{start} to %{end}
- label_wiki_content_added: Wiki page added
- label_wiki_content_updated: Wiki page updated
- label_group: Group
- label_group_plural: Groups
- label_group_new: New group
- label_time_entry_plural: Spent time
- label_version_sharing_none: Not shared
- label_version_sharing_descendants: With subprojects
- label_version_sharing_hierarchy: With project hierarchy
- label_version_sharing_tree: With project tree
- label_version_sharing_system: With all projects
- label_update_issue_done_ratios: Update issue done ratios
- label_copy_source: Source
- label_copy_target: Target
- label_copy_same_as_target: Same as target
- label_display_used_statuses_only: Only display statuses that are used by this tracker
- label_api_access_key: API access key
- label_missing_api_access_key: Missing an API access key
- label_api_access_key_created_on: "API access key created %{value} ago"
-
- button_login: Login
- button_submit: Submit
- button_save: Save
- button_check_all: Check all
- button_uncheck_all: Uncheck all
- button_delete: Delete
- button_create: Create
- button_create_and_continue: Create and continue
- button_test: Test
- button_edit: Edit
- button_add: Add
- button_change: Change
- button_apply: Apply
- button_clear: Clear
- button_lock: Lock
- button_unlock: Unlock
- button_download: Download
- button_list: List
- button_view: View
- button_move: Move
- button_move_and_follow: Move and follow
- button_back: Back
- button_cancel: Cancel
- button_activate: Activate
- button_sort: Sort
- button_log_time: Log time
- button_rollback: Rollback to this version
- button_watch: Watch
- button_unwatch: Unwatch
- button_reply: Reply
- button_archive: Archive
- button_unarchive: Unarchive
- button_reset: Reset
- button_rename: Rename
- button_change_password: Change password
- button_copy: Copy
- button_copy_and_follow: Copy and follow
- button_annotate: Annotate
- button_update: Update
- button_configure: Configure
- button_quote: Quote
- button_duplicate: Duplicate
- button_show: Show
-
- status_active: active
- status_registered: registered
- status_locked: locked
-
- version_status_open: open
- version_status_locked: locked
- version_status_closed: closed
-
- field_active: Active
-
- text_select_mail_notifications: Select actions for which email notifications should be sent.
- text_regexp_info: eg. ^[A-Z0-9]+$
- text_min_max_length_info: 0 means no restriction
- text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
- text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
- text_workflow_edit: Select a role and a tracker to edit the workflow
- text_are_you_sure: Are you sure?
- text_journal_changed: "%{label} changed from %{old} to %{new}"
- text_journal_set_to: "%{label} set to %{value}"
- text_journal_deleted: "%{label} deleted (%{old})"
- text_journal_added: "%{label} %{value} added"
- text_tip_issue_begin_day: task beginning this day
- text_tip_issue_end_day: task ending this day
- text_tip_issue_begin_end_day: task beginning and ending this day
- text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed. This will be used in all project-related URLs, and as the repository name. Once saved, the identifier can not be changed.'
- text_caracters_maximum: "%{count} characters maximum."
- text_caracters_minimum: "Must be at least %{count} characters long."
- text_length_between: "Length between %{min} and %{max} characters."
- text_project_homepage_info: 'Link to an external project page.'
- text_project_name_info: "This will be the name of your project throughout this site. You can change your project's name at any time, in the project's settings."
- text_project_visibility_info: "If your project is not public, it will only be visible to users that you have added as project members."
- text_user_ssamr_description_info: 'Please describe your current research or development interests, within the fields of audio and music. This information is publicly visible in your profile and you can edit it at any time. It may also be used to establish eligibility for your initial registration.'
- text_issue_parent_issue_info: 'If this is a subtask, please insert its parent task number or write the main task name.'
- text_tracker_no_workflow: No workflow defined for this tracker
- text_unallowed_characters: Unallowed characters
- text_comma_separated: Multiple values allowed (comma separated).
- text_line_separated: Multiple values allowed (one line for each value).
- text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
- text_issue_added: "Issue %{id} has been reported by %{author}."
- text_issue_updated: "Issue %{id} has been updated by %{author}."
- text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
- text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
- text_issue_category_destroy_assignments: Remove category assignments
- text_issue_category_reassign_to: Reassign issues to this category
- text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)."
- text_no_configuration_data: "Roles, trackers, issue statuses and workflow have not been configured yet.\nIt is highly recommended to load the default configuration. You will be able to modify it once loaded."
- text_load_default_configuration: Load the default configuration
- text_status_changed_by_changeset: "Applied in changeset %{value}."
- text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
- text_select_project_modules: 'Select modules to enable for this project:'
- text_default_administrator_account_changed: Default administrator account changed
- text_file_repository_writable: Attachments directory writable
- text_plugin_assets_writable: Plugin assets directory writable
- text_rmagick_available: RMagick available (optional)
- text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?"
- text_destroy_time_entries: Delete reported hours
- text_assign_time_entries_to_project: Assign reported hours to the project
- text_reassign_time_entries: 'Reassign reported hours to this issue:'
- 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_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'
- text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
- text_wiki_page_nullify_children: "Keep child pages as root pages"
- text_wiki_page_destroy_children: "Delete child pages and all their descendants"
- text_wiki_page_reassign_children: "Reassign child pages to this parent page"
- text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
- text_settings_repo_creation: The repository for a project should be set up automatically within a few minutes of the project being created. You should not have to adjust any settings here; please check again in ten minutes.
-
- default_role_manager: Manager
- default_role_developer: Developer
- default_role_reporter: Reporter
- default_tracker_bug: Bug
- default_tracker_feature: Feature
- default_tracker_support: Support
- default_issue_status_new: New
- default_issue_status_in_progress: In Progress
- default_issue_status_resolved: Resolved
- default_issue_status_feedback: Feedback
- default_issue_status_closed: Closed
- default_issue_status_rejected: Rejected
- default_doc_category_user: User documentation
- default_doc_category_tech: Technical documentation
- default_priority_low: Low
- default_priority_normal: Normal
- default_priority_high: High
- default_priority_urgent: Urgent
- default_priority_immediate: Immediate
- default_activity_design: Design
- default_activity_development: Development
-
- enumeration_issue_priorities: Issue priorities
- enumeration_doc_categories: Document categories
- enumeration_activities: Activities (time tracking)
- enumeration_system_activity: System Activity
-
- notice_unable_delete_time_entry: Unable to delete time log entry.
- error_can_not_delete_custom_field: Unable to delete custom field
- permission_manage_subtasks: Manage subtasks
- label_profile: Profile
- error_unable_to_connect: Unable to connect (%{value})
- label_overall_spent_time: Overall spent time
- error_can_not_remove_role: This role is in use and can not be deleted.
- field_principal: Principal
- field_parent_issue: Parent task
- label_my_page_block: My page block
- text_zoom_out: Zoom out
- text_zoom_in: Zoom in
- error_unable_delete_issue_status: Unable to delete issue status
- label_subtask_plural: Subtasks
- error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
- notice_failed_to_save_members: "Failed to save member(s): %{errors}."
- label_project_copy_notifications: Send email notifications during the project copy
- field_time_entries: Log time
- project_module_gantt: Gantt
- project_module_calendar: Calendar
- field_member_of_group: Member of Group
- field_assigned_to_role: Member of Role
- button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
- text_are_you_sure_with_children: Delete issue and all child issues?
- field_text: Text field
- label_user_mail_option_only_owner: Only for things I am the owner of
- setting_default_notification_option: Default notification option
- label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
- label_user_mail_option_only_assigned: Only for things I am assigned to
- notice_not_authorized_archived_project: The project you're trying to access has been archived.
- label_principal_search: "Search by name:"
- label_user_search: "Search for user:"
- field_visible: Visible
- setting_emails_header: Emails header
- 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
+en-GB:
+ 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: "%d/%m/%Y"
+ short: "%d %b"
+ long: "%d %B, %Y"
+
+ day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+ abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+
+ # Don't forget the nil at the beginning; there's no such thing as a 0th month
+ month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+ abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+ # Used in date_select and datime_select.
+ order: [ :year, :month, :day ]
+
+ time:
+ formats:
+ default: "%d/%m/%Y %I:%M %p"
+ time: "%I:%M %p"
+ short: "%d %b %H:%M"
+ long: "%d %B, %Y %H:%M"
+ am: "am"
+ pm: "pm"
+
+ datetime:
+ distance_in_words:
+ half_a_minute: "half a minute"
+ less_than_x_seconds:
+ one: "less than 1 second"
+ other: "less than %{count} seconds"
+ x_seconds:
+ one: "1 second"
+ other: "%{count} seconds"
+ less_than_x_minutes:
+ one: "less than a minute"
+ other: "less than %{count} minutes"
+ x_minutes:
+ one: "1 minute"
+ other: "%{count} minutes"
+ about_x_hours:
+ one: "about 1 hour"
+ other: "about %{count} hours"
+ x_days:
+ one: "1 day"
+ other: "%{count} days"
+ about_x_months:
+ one: "about 1 month"
+ other: "about %{count} months"
+ x_months:
+ one: "1 month"
+ other: "%{count} months"
+ about_x_years:
+ one: "about 1 year"
+ other: "about %{count} years"
+ over_x_years:
+ one: "over 1 year"
+ other: "over %{count} years"
+ almost_x_years:
+ one: "almost 1 year"
+ other: "almost %{count} years"
+
+ number:
+ format:
+ separator: "."
+ delimiter: " "
+ precision: 3
+
+ currency:
+ format:
+ format: "%u%n"
+ unit: "£"
+ human:
+ format:
+ delimiter: ""
+ precision: 1
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: "Byte"
+ other: "Bytes"
+ kb: "kB"
+ mb: "MB"
+ gb: "GB"
+ tb: "TB"
+
+
+# Used in array.to_sentence.
+ support:
+ array:
+ sentence_connector: "and"
+ skip_last_comma: false
+
+ activerecord:
+ errors:
+ template:
+ header:
+ one: "1 error prohibited this %{model} from being saved"
+ other: "%{count} errors prohibited this %{model} from being saved"
+ messages:
+ inclusion: "is not included in the list"
+ exclusion: "is reserved"
+ invalid: "is invalid"
+ confirmation: "doesn't match confirmation"
+ accepted: "must be accepted"
+ empty: "can't be empty"
+ blank: "can't be blank"
+ too_long: "is too long (maximum is %{count} characters)"
+ too_short: "is too short (minimum is %{count} characters)"
+ wrong_length: "is the wrong length (should be %{count} characters)"
+ taken: "has already been taken"
+ not_a_number: "is not a number"
+ not_a_date: "is not a valid date"
+ greater_than: "must be greater than %{count}"
+ greater_than_or_equal_to: "must be greater than or equal to %{count}"
+ equal_to: "must be equal to %{count}"
+ less_than: "must be less than %{count}"
+ less_than_or_equal_to: "must be less than or equal to %{count}"
+ odd: "must be odd"
+ even: "must be even"
+ greater_than_start_date: "must be greater than start date"
+ not_same_project: "doesn't belong to the same project"
+ circular_dependency: "This relation would create a circular dependency"
+ cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+
+ actionview_instancetag_blank_option: Please select
+
+ general_text_No: 'No'
+ general_text_Yes: 'Yes'
+ general_text_no: 'no'
+ general_text_yes: 'yes'
+ general_lang_name: 'English (British)'
+ general_csv_separator: ','
+ general_csv_decimal_separator: '.'
+ general_csv_encoding: ISO-8859-1
+ general_pdf_encoding: ISO-8859-1
+ general_first_day_of_week: '1'
+
+ notice_account_updated: Account was successfully updated.
+ notice_account_invalid_creditentials: Invalid user or password
+ notice_account_password_updated: Password was successfully updated.
+ notice_account_wrong_password: Wrong password
+ notice_account_register_done: Account was successfully created. To activate your account, click on the link that was emailed to you.
+ notice_account_unknown_email: Unknown user.
+ notice_can_t_change_password: This account uses an external authentication source. Impossible to change the password.
+ notice_account_lost_email_sent: An email with instructions to choose a new password has been sent to you.
+ notice_account_activated: Your account has been activated. You can now log in.
+ notice_successful_create: Successful creation.
+ notice_successful_update: Successful update.
+ notice_successful_delete: Successful deletion.
+ notice_successful_connection: Successful connection.
+ notice_file_not_found: The page you were trying to access doesn't exist or has been removed.
+ notice_locking_conflict: Data has been updated by another user.
+ notice_not_authorized: You are not authorised to access this page.
+ notice_email_sent: "An email was sent to %{value}"
+ notice_email_error: "An error occurred while sending mail (%{value})"
+ notice_feeds_access_key_reseted: Your RSS access key was reset.
+ notice_api_access_key_reseted: Your API access key was reset.
+ notice_failed_to_save_issues: "Failed to save %{count} issue(s) on %{total} selected: %{ids}."
+ notice_no_issue_selected: "No issue is selected! Please, check the issues you want to edit."
+ notice_account_pending: "Your account was created and is now pending administrator approval."
+ notice_default_data_loaded: Default configuration successfully loaded.
+ notice_unable_delete_version: Unable to delete version.
+ notice_issue_done_ratios_updated: Issue done ratios updated.
+
+ error_can_t_load_default_data: "Default configuration could not be loaded: %{value}"
+ error_scm_not_found: "The entry or revision was not found in the repository."
+ error_scm_command_failed: "An error occurred when trying to access the repository: %{value}"
+ error_scm_annotate: "The entry does not exist or can not be annotated."
+ error_issue_not_found_in_project: 'The issue was not found or does not belong to this project'
+ error_no_tracker_in_project: 'No tracker is associated to this project. Please check the Project settings.'
+ error_no_default_issue_status: 'No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").'
+ error_can_not_reopen_issue_on_closed_version: 'An issue assigned to a closed version can not be reopened'
+ error_can_not_archive_project: This project can not be archived
+ error_issue_done_ratios_not_updated: "Issue done ratios not updated."
+ error_workflow_copy_source: 'Please select a source tracker or role'
+ error_workflow_copy_target: 'Please select target tracker(s) and role(s)'
+
+ warning_attachments_not_saved: "%{count} file(s) could not be saved."
+
+ mail_subject_lost_password: "Your %{value} password"
+ mail_body_lost_password: 'To change your password, click on the following link:'
+ mail_subject_register: "Your %{value} account activation"
+ mail_body_register: 'To activate your account, click on the following link:'
+ mail_body_account_information_external: "You can use your %{value} account to log in."
+ mail_body_account_information: Your account information
+ mail_subject_account_activation_request: "%{value} account activation request"
+ mail_body_account_activation_request: "A new user (%{value}) has registered. The account is pending your approval:"
+ mail_subject_reminder: "%{count} issue(s) due in the next %{days} days"
+ mail_body_reminder: "%{count} issue(s) that are assigned to you are due in the next %{days} days:"
+ mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+ mail_body_wiki_content_added: "The '%{id}' wiki page has been added by %{author}."
+ mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+ mail_body_wiki_content_updated: "The '%{id}' wiki page has been updated by %{author}."
+
+ gui_validation_error: 1 error
+ gui_validation_error_plural: "%{count} errors"
+
+ field_name: Name
+ field_description: Description
+ field_summary: Summary
+ field_is_required: Required
+ field_firstname: Firstname
+ field_lastname: Lastname
+ field_mail: Email
+ field_filename: File
+ field_filesize: Size
+ field_downloads: Downloads
+ field_author: Author
+ field_created_on: Created
+ field_updated_on: Updated
+ field_field_format: Format
+ field_is_for_all: For all projects
+ field_possible_values: Possible values
+ field_regexp: Regular expression
+ field_min_length: Minimum length
+ field_max_length: Maximum length
+ field_value: Value
+ field_category: Category
+ field_title: Title
+ field_project: Project
+ field_issue: Issue
+ field_status: Status
+ field_notes: Notes
+ field_is_closed: Issue closed
+ field_is_default: Default value
+ field_tracker: Tracker
+ field_subject: Subject
+ field_due_date: Due date
+ field_assigned_to: Assignee
+ field_priority: Priority
+ field_fixed_version: Target version
+ field_user: User
+ field_role: Role
+ field_homepage: Homepage
+ field_is_public: Public
+ field_parent: Subproject of
+ field_is_in_roadmap: Issues displayed in roadmap
+ field_login: Login
+ field_mail_notification: Email notifications
+ field_admin: Administrator
+ field_last_login_on: Last connection
+ field_language: Language
+ field_effective_date: Date
+ field_password: Password
+ field_new_password: New password
+ field_password_confirmation: Confirmation
+ field_version: Version
+ field_type: Type
+ field_host: Host
+ field_port: Port
+ field_account: Account
+ field_base_dn: Base DN
+ field_attr_login: Login attribute
+ field_attr_firstname: Firstname attribute
+ field_attr_lastname: Lastname attribute
+ field_attr_mail: Email attribute
+ field_onthefly: On-the-fly user creation
+ field_start_date: Start date
+ field_done_ratio: % Done
+ field_auth_source: Authentication mode
+ field_hide_mail: Hide my email address
+ field_comments: Comment
+ field_url: URL
+ field_start_page: Start page
+ field_subproject: Subproject
+ field_hours: Hours
+ field_activity: Activity
+ field_spent_on: Date
+ field_identifier: Identifier
+ field_is_filter: Used as a filter
+ field_issue_to: Related issue
+ field_delay: Delay
+ field_assignable: Issues can be assigned to this role
+ field_redirect_existing_links: Redirect existing links
+ field_estimated_hours: Estimated time
+ field_column_names: Columns
+ field_time_zone: Time zone
+ field_searchable: Searchable
+ field_default_value: Default value
+ field_comments_sorting: Display comments
+ field_parent_title: Parent page
+ field_editable: Editable
+ field_watcher: Watcher
+ field_identity_url: OpenID URL
+ field_content: Content
+ field_group_by: Group results by
+ field_sharing: Sharing
+
+ setting_app_title: Application title
+ setting_app_subtitle: Application subtitle
+ setting_welcome_text: Welcome text
+ setting_default_language: Default language
+ setting_login_required: Authentication required
+ setting_self_registration: Self-registration
+ setting_attachment_max_size: Attachment max. size
+ setting_issues_export_limit: Issues export limit
+ setting_mail_from: Emission email address
+ setting_bcc_recipients: Blind carbon copy recipients (bcc)
+ setting_plain_text_mail: Plain text mail (no HTML)
+ setting_host_name: Host name and path
+ setting_text_formatting: Text formatting
+ setting_wiki_compression: Wiki history compression
+ setting_feeds_limit: Feed content limit
+ setting_default_projects_public: New projects are public by default
+ setting_autofetch_changesets: Autofetch commits
+ setting_sys_api_enabled: Enable WS for repository management
+ setting_commit_ref_keywords: Referencing keywords
+ setting_commit_fix_keywords: Fixing keywords
+ setting_autologin: Autologin
+ setting_date_format: Date format
+ setting_time_format: Time format
+ setting_cross_project_issue_relations: Allow cross-project issue relations
+ setting_issue_list_default_columns: Default columns displayed on the issue list
+ setting_repositories_encodings: Repositories encodings
+ setting_commit_logs_encoding: Commit messages encoding
+ setting_emails_footer: Emails footer
+ setting_protocol: Protocol
+ setting_per_page_options: Objects per page options
+ setting_user_format: Users display format
+ setting_activity_days_default: Days displayed on project activity
+ setting_display_subprojects_issues: Display subprojects issues on main projects by default
+ setting_enabled_scm: Enabled SCM
+ setting_mail_handler_body_delimiters: "Truncate emails after one of these lines"
+ setting_mail_handler_api_enabled: Enable WS for incoming emails
+ setting_mail_handler_api_key: API key
+ setting_sequential_project_identifiers: Generate sequential project identifiers
+ setting_gravatar_enabled: Use Gravatar user icons
+ setting_gravatar_default: Default Gravatar image
+ setting_diff_max_lines_displayed: Max number of diff lines displayed
+ setting_file_max_size_displayed: Max size of text files displayed inline
+ setting_repository_log_display_limit: Maximum number of revisions displayed on file log
+ setting_openid: Allow OpenID login and registration
+ setting_password_min_length: Minimum password length
+ setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+ setting_default_projects_modules: Default enabled modules for new projects
+ setting_issue_done_ratio: Calculate the issue done ratio with
+ setting_issue_done_ratio_issue_field: Use the issue field
+ setting_issue_done_ratio_issue_status: Use the issue status
+ setting_start_of_week: Start calendars on
+ setting_rest_api_enabled: Enable REST web service
+ setting_cache_formatted_text: Cache formatted text
+
+ permission_add_project: Create project
+ permission_add_subprojects: Create subprojects
+ permission_edit_project: Edit project
+ permission_select_project_modules: Select project modules
+ permission_manage_members: Manage members
+ permission_manage_project_activities: Manage project activities
+ permission_manage_versions: Manage versions
+ permission_manage_categories: Manage issue categories
+ permission_view_issues: View Issues
+ permission_add_issues: Add issues
+ permission_edit_issues: Edit issues
+ permission_manage_issue_relations: Manage issue relations
+ permission_add_issue_notes: Add notes
+ permission_edit_issue_notes: Edit notes
+ permission_edit_own_issue_notes: Edit own notes
+ permission_move_issues: Move issues
+ permission_delete_issues: Delete issues
+ permission_manage_public_queries: Manage public queries
+ permission_save_queries: Save queries
+ permission_view_gantt: View gantt chart
+ permission_view_calendar: View calendar
+ permission_view_issue_watchers: View watchers list
+ permission_add_issue_watchers: Add watchers
+ permission_delete_issue_watchers: Delete watchers
+ permission_log_time: Log spent time
+ permission_view_time_entries: View spent time
+ permission_edit_time_entries: Edit time logs
+ permission_edit_own_time_entries: Edit own time logs
+ permission_manage_news: Manage news
+ permission_comment_news: Comment news
+ permission_manage_documents: Manage documents
+ permission_view_documents: View documents
+ permission_manage_files: Manage files
+ permission_view_files: View files
+ permission_manage_wiki: Manage wiki
+ permission_rename_wiki_pages: Rename wiki pages
+ permission_delete_wiki_pages: Delete wiki pages
+ permission_view_wiki_pages: View wiki
+ permission_view_wiki_edits: View wiki history
+ permission_edit_wiki_pages: Edit wiki pages
+ permission_delete_wiki_pages_attachments: Delete attachments
+ permission_protect_wiki_pages: Protect wiki pages
+ permission_manage_repository: Manage repository
+ permission_browse_repository: Browse repository
+ permission_view_changesets: View changesets
+ permission_commit_access: Commit access
+ permission_manage_boards: Manage boards
+ permission_view_messages: View messages
+ permission_add_messages: Post messages
+ permission_edit_messages: Edit messages
+ permission_edit_own_messages: Edit own messages
+ permission_delete_messages: Delete messages
+ permission_delete_own_messages: Delete own messages
+ permission_export_wiki_pages: Export wiki pages
+
+ project_module_issue_tracking: Issue tracking
+ project_module_time_tracking: Time tracking
+ project_module_news: News
+ project_module_documents: Documents
+ project_module_files: Files
+ project_module_wiki: Wiki
+ project_module_repository: Repository
+ project_module_boards: Boards
+
+ label_user: User
+ label_user_plural: Users
+ label_user_new: New user
+ label_user_anonymous: Anonymous
+ label_project: Project
+ label_project_new: New project
+ label_project_plural: Projects
+ label_x_projects:
+ zero: no projects
+ one: 1 project
+ other: "%{count} projects"
+ label_project_all: All Projects
+ label_project_latest: Latest projects
+ label_issue: Issue
+ label_issue_new: New issue
+ label_issue_plural: Issues
+ label_issue_view_all: View all issues
+ label_issues_by: "Issues by %{value}"
+ label_issue_added: Issue added
+ label_issue_updated: Issue updated
+ label_document: Document
+ label_document_new: New document
+ label_document_plural: Documents
+ label_document_added: Document added
+ label_role: Role
+ label_role_plural: Roles
+ label_role_new: New role
+ label_role_and_permissions: Roles and permissions
+ label_member: Member
+ label_member_new: New member
+ label_member_plural: Members
+ label_tracker: Tracker
+ label_tracker_plural: Trackers
+ label_tracker_new: New tracker
+ label_workflow: Workflow
+ label_issue_status: Issue status
+ label_issue_status_plural: Issue statuses
+ label_issue_status_new: New status
+ label_issue_category: Issue category
+ label_issue_category_plural: Issue categories
+ label_issue_category_new: New category
+ label_custom_field: Custom field
+ label_custom_field_plural: Custom fields
+ label_custom_field_new: New custom field
+ label_enumerations: Enumerations
+ label_enumeration_new: New value
+ label_information: Information
+ label_information_plural: Information
+ label_please_login: Please log in
+ label_register: Register
+ label_login_with_open_id_option: or login with OpenID
+ label_password_lost: Lost password
+ label_home: Home
+ label_my_page: My page
+ label_my_account: My account
+ label_my_projects: My projects
+ label_administration: Administration
+ label_login: Sign in
+ label_logout: Sign out
+ label_help: Help
+ label_reported_issues: Reported issues
+ label_assigned_to_me_issues: Issues assigned to me
+ label_last_login: Last connection
+ label_registered_on: Registered on
+ label_activity: Activity
+ label_overall_activity: Overall activity
+ label_user_activity: "%{value}'s activity"
+ label_new: New
+ label_logged_as: Logged in as
+ label_environment: Environment
+ label_authentication: Authentication
+ label_auth_source: Authentication mode
+ label_auth_source_new: New authentication mode
+ label_auth_source_plural: Authentication modes
+ label_subproject_plural: Subprojects
+ label_subproject_new: New subproject
+ label_and_its_subprojects: "%{value} and its subprojects"
+ label_min_max_length: Min - Max length
+ label_list: List
+ label_date: Date
+ label_integer: Integer
+ label_float: Float
+ label_boolean: Boolean
+ label_string: Text
+ label_text: Long text
+ label_attribute: Attribute
+ label_attribute_plural: Attributes
+ label_download: "%{count} Download"
+ label_download_plural: "%{count} Downloads"
+ label_no_data: No data to display
+ label_change_status: Change status
+ label_history: History
+ label_attachment: File
+ label_attachment_new: New file
+ label_attachment_delete: Delete file
+ label_attachment_plural: Files
+ label_file_added: File added
+ label_report: Report
+ label_report_plural: Reports
+ label_news: News
+ label_news_new: Add news
+ label_news_plural: News
+ label_news_latest: Latest news
+ label_news_view_all: View all news
+ label_news_added: News added
+ label_settings: Settings
+ label_overview: Overview
+ label_version: Version
+ label_version_new: New version
+ label_version_plural: Versions
+ label_close_versions: Close completed versions
+ label_confirmation: Confirmation
+ label_export_to: 'Also available in:'
+ label_read: Read...
+ label_public_projects: Public projects
+ label_open_issues: open
+ label_open_issues_plural: open
+ label_closed_issues: closed
+ label_closed_issues_plural: closed
+ label_x_open_issues_abbr_on_total:
+ zero: 0 open / %{total}
+ one: 1 open / %{total}
+ other: "%{count} open / %{total}"
+ label_x_open_issues_abbr:
+ zero: 0 open
+ one: 1 open
+ other: "%{count} open"
+ label_x_closed_issues_abbr:
+ zero: 0 closed
+ one: 1 closed
+ other: "%{count} closed"
+ label_total: Total
+ label_permissions: Permissions
+ label_current_status: Current status
+ label_new_statuses_allowed: New statuses allowed
+ label_all: all
+ label_none: none
+ label_nobody: nobody
+ label_next: Next
+ label_previous: Previous
+ label_used_by: Used by
+ label_details: Details
+ label_add_note: Add a note
+ label_per_page: Per page
+ label_calendar: Calendar
+ label_months_from: months from
+ label_gantt: Gantt
+ label_internal: Internal
+ label_last_changes: "last %{count} changes"
+ label_change_view_all: View all changes
+ label_personalize_page: Personalise this page
+ label_comment: Comment
+ label_comment_plural: Comments
+ label_x_comments:
+ zero: no comments
+ one: 1 comment
+ other: "%{count} comments"
+ label_comment_add: Add a comment
+ label_comment_added: Comment added
+ label_comment_delete: Delete comments
+ label_query: Custom query
+ label_query_plural: Custom queries
+ label_query_new: New query
+ label_filter_add: Add filter
+ label_filter_plural: Filters
+ label_equals: is
+ label_not_equals: is not
+ label_in_less_than: in less than
+ label_in_more_than: in more than
+ label_greater_or_equal: '>='
+ label_less_or_equal: '<='
+ label_in: in
+ label_today: today
+ label_all_time: all time
+ label_yesterday: yesterday
+ label_this_week: this week
+ label_last_week: last week
+ label_last_n_days: "last %{count} days"
+ label_this_month: this month
+ label_last_month: last month
+ label_this_year: this year
+ label_date_range: Date range
+ label_less_than_ago: less than days ago
+ label_more_than_ago: more than days ago
+ label_ago: days ago
+ label_contains: contains
+ label_not_contains: doesn't contain
+ label_day_plural: days
+ label_repository: Repository
+ label_repository_plural: Repositories
+ label_browse: Browse
+ label_modification: "%{count} change"
+ label_modification_plural: "%{count} changes"
+ label_branch: Branch
+ label_tag: Tag
+ label_revision: Revision
+ label_revision_plural: Revisions
+ label_revision_id: "Revision %{value}"
+ label_associated_revisions: Associated revisions
+ label_added: added
+ label_modified: modified
+ label_copied: copied
+ label_renamed: renamed
+ label_deleted: deleted
+ label_latest_revision: Latest revision
+ label_latest_revision_plural: Latest revisions
+ label_view_revisions: View revisions
+ label_view_all_revisions: View all revisions
+ label_max_size: Maximum size
+ label_sort_highest: Move to top
+ label_sort_higher: Move up
+ label_sort_lower: Move down
+ label_sort_lowest: Move to bottom
+ label_roadmap: Roadmap
+ label_roadmap_due_in: "Due in %{value}"
+ label_roadmap_overdue: "%{value} late"
+ label_roadmap_no_issues: No issues for this version
+ label_search: Search
+ label_result_plural: Results
+ label_all_words: All words
+ label_wiki: Wiki
+ label_wiki_edit: Wiki edit
+ label_wiki_edit_plural: Wiki edits
+ label_wiki_page: Wiki page
+ label_wiki_page_plural: Wiki pages
+ label_index_by_title: Index by title
+ label_index_by_date: Index by date
+ label_current_version: Current version
+ label_preview: Preview
+ label_feed_plural: Feeds
+ label_changes_details: Details of all changes
+ label_issue_tracking: Issue tracking
+ label_spent_time: Spent time
+ label_f_hour: "%{value} hour"
+ label_f_hour_plural: "%{value} hours"
+ label_time_tracking: Time tracking
+ label_change_plural: Changes
+ label_statistics: Statistics
+ label_commits_per_month: Commits per month
+ label_commits_per_author: Commits per author
+ label_view_diff: View differences
+ label_diff_inline: inline
+ label_diff_side_by_side: side by side
+ label_options: Options
+ label_copy_workflow_from: Copy workflow from
+ label_permissions_report: Permissions report
+ label_watched_issues: Watched issues
+ label_related_issues: Related issues
+ label_applied_status: Applied status
+ label_loading: Loading...
+ label_relation_new: New relation
+ label_relation_delete: Delete relation
+ label_relates_to: related to
+ label_duplicates: duplicates
+ label_duplicated_by: duplicated by
+ label_blocks: blocks
+ label_blocked_by: blocked by
+ label_precedes: precedes
+ label_follows: follows
+ label_end_to_start: end to start
+ label_end_to_end: end to end
+ label_start_to_start: start to start
+ label_start_to_end: start to end
+ label_stay_logged_in: Stay logged in
+ label_disabled: disabled
+ label_show_completed_versions: Show completed versions
+ label_me: me
+ label_board: Forum
+ label_board_new: New forum
+ label_board_plural: Forums
+ label_board_locked: Locked
+ label_board_sticky: Sticky
+ label_topic_plural: Topics
+ label_message_plural: Messages
+ label_message_last: Last message
+ label_message_new: New message
+ label_message_posted: Message added
+ label_reply_plural: Replies
+ label_send_information: Send account information to the user
+ label_year: Year
+ label_month: Month
+ label_week: Week
+ label_date_from: From
+ label_date_to: To
+ label_language_based: Based on user's language
+ label_sort_by: "Sort by %{value}"
+ label_send_test_email: Send a test email
+ label_feeds_access_key: RSS access key
+ label_missing_feeds_access_key: Missing a RSS access key
+ label_feeds_access_key_created_on: "RSS access key created %{value} ago"
+ label_module_plural: Modules
+ label_added_time_by: "Added by %{author} %{age} ago"
+ label_updated_time_by: "Updated by %{author} %{age} ago"
+ label_updated_time: "Updated %{value} ago"
+ label_jump_to_a_project: Jump to a project...
+ label_file_plural: Files
+ label_changeset_plural: Changesets
+ label_default_columns: Default columns
+ label_no_change_option: (No change)
+ label_bulk_edit_selected_issues: Bulk edit selected issues
+ label_theme: Theme
+ label_default: Default
+ label_search_titles_only: Search titles only
+ label_user_mail_option_all: "For any event on all my projects"
+ label_user_mail_option_selected: "For any event on the selected projects only..."
+ label_user_mail_option_none: "No events"
+ label_user_mail_no_self_notified: "I don't want to be notified of changes that I make myself"
+ label_registration_activation_by_email: account activation by email
+ label_registration_manual_activation: manual account activation
+ label_registration_automatic_activation: automatic account activation
+ label_display_per_page: "Per page: %{value}"
+ label_age: Age
+ label_change_properties: Change properties
+ label_general: General
+ label_more: More
+ label_scm: SCM
+ label_plugins: Plugins
+ label_ldap_authentication: LDAP authentication
+ label_downloads_abbr: D/L
+ label_optional_description: Optional description
+ label_add_another_file: Add another file
+ label_preferences: Preferences
+ label_chronological_order: In chronological order
+ label_reverse_chronological_order: In reverse chronological order
+ label_planning: Planning
+ label_incoming_emails: Incoming emails
+ label_generate_key: Generate a key
+ label_issue_watchers: Watchers
+ label_example: Example
+ label_display: Display
+ label_sort: Sort
+ label_ascending: Ascending
+ label_descending: Descending
+ label_date_from_to: From %{start} to %{end}
+ label_wiki_content_added: Wiki page added
+ label_wiki_content_updated: Wiki page updated
+ label_group: Group
+ label_group_plural: Groups
+ label_group_new: New group
+ label_time_entry_plural: Spent time
+ label_version_sharing_none: Not shared
+ label_version_sharing_descendants: With subprojects
+ label_version_sharing_hierarchy: With project hierarchy
+ label_version_sharing_tree: With project tree
+ label_version_sharing_system: With all projects
+ label_update_issue_done_ratios: Update issue done ratios
+ label_copy_source: Source
+ label_copy_target: Target
+ label_copy_same_as_target: Same as target
+ label_display_used_statuses_only: Only display statuses that are used by this tracker
+ label_api_access_key: API access key
+ label_missing_api_access_key: Missing an API access key
+ label_api_access_key_created_on: "API access key created %{value} ago"
+
+ button_login: Login
+ button_submit: Submit
+ button_save: Save
+ button_check_all: Check all
+ button_uncheck_all: Uncheck all
+ button_delete: Delete
+ button_create: Create
+ button_create_and_continue: Create and continue
+ button_test: Test
+ button_edit: Edit
+ button_add: Add
+ button_change: Change
+ button_apply: Apply
+ button_clear: Clear
+ button_lock: Lock
+ button_unlock: Unlock
+ button_download: Download
+ button_list: List
+ button_view: View
+ button_move: Move
+ button_move_and_follow: Move and follow
+ button_back: Back
+ button_cancel: Cancel
+ button_activate: Activate
+ button_sort: Sort
+ button_log_time: Log time
+ button_rollback: Rollback to this version
+ button_watch: Watch
+ button_unwatch: Unwatch
+ button_reply: Reply
+ button_archive: Archive
+ button_unarchive: Unarchive
+ button_reset: Reset
+ button_rename: Rename
+ button_change_password: Change password
+ button_copy: Copy
+ button_copy_and_follow: Copy and follow
+ button_annotate: Annotate
+ button_update: Update
+ button_configure: Configure
+ button_quote: Quote
+ button_duplicate: Duplicate
+ button_show: Show
+
+ status_active: active
+ status_registered: registered
+ status_locked: locked
+
+ version_status_open: open
+ version_status_locked: locked
+ version_status_closed: closed
+
+ field_active: Active
+
+ text_select_mail_notifications: Select actions for which email notifications should be sent.
+ text_regexp_info: eg. ^[A-Z0-9]+$
+ text_min_max_length_info: 0 means no restriction
+ text_project_destroy_confirmation: Are you sure you want to delete this project and related data?
+ text_subprojects_destroy_warning: "Its subproject(s): %{value} will be also deleted."
+ text_workflow_edit: Select a role and a tracker to edit the workflow
+ text_are_you_sure: Are you sure?
+ text_journal_changed: "%{label} changed from %{old} to %{new}"
+ text_journal_set_to: "%{label} set to %{value}"
+ text_journal_deleted: "%{label} deleted (%{old})"
+ text_journal_added: "%{label} %{value} added"
+ text_tip_issue_begin_day: task beginning this day
+ text_tip_issue_end_day: task ending this day
+ text_tip_issue_begin_end_day: task beginning and ending this day
+ text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed. Once saved, the identifier can not be changed.'
+ text_caracters_maximum: "%{count} characters maximum."
+ text_caracters_minimum: "Must be at least %{count} characters long."
+ text_length_between: "Length between %{min} and %{max} characters."
+ text_tracker_no_workflow: No workflow defined for this tracker
+ text_unallowed_characters: Unallowed characters
+ text_comma_separated: Multiple values allowed (comma separated).
+ text_line_separated: Multiple values allowed (one line for each value).
+ text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
+ text_issue_added: "Issue %{id} has been reported by %{author}."
+ text_issue_updated: "Issue %{id} has been updated by %{author}."
+ text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
+ text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
+ text_issue_category_destroy_assignments: Remove category assignments
+ text_issue_category_reassign_to: Reassign issues to this category
+ text_user_mail_option: "For unselected projects, you will only receive notifications about things you watch or you're involved in (eg. issues you're the author or assignee)."
+ text_no_configuration_data: "Roles, trackers, issue statuses and workflow have not been configured yet.\nIt is highly recommended to load the default configuration. You will be able to modify it once loaded."
+ text_load_default_configuration: Load the default configuration
+ text_status_changed_by_changeset: "Applied in changeset %{value}."
+ text_issues_destroy_confirmation: 'Are you sure you want to delete the selected issue(s)?'
+ text_select_project_modules: 'Select modules to enable for this project:'
+ text_default_administrator_account_changed: Default administrator account changed
+ text_file_repository_writable: Attachments directory writable
+ text_plugin_assets_writable: Plugin assets directory writable
+ text_rmagick_available: RMagick available (optional)
+ text_destroy_time_entries_question: "%{hours} hours were reported on the issues you are about to delete. What do you want to do?"
+ text_destroy_time_entries: Delete reported hours
+ text_assign_time_entries_to_project: Assign reported hours to the project
+ text_reassign_time_entries: 'Reassign reported hours to this issue:'
+ 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/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'
+ text_wiki_page_destroy_question: "This page has %{descendants} child page(s) and descendant(s). What do you want to do?"
+ text_wiki_page_nullify_children: "Keep child pages as root pages"
+ text_wiki_page_destroy_children: "Delete child pages and all their descendants"
+ text_wiki_page_reassign_children: "Reassign child pages to this parent page"
+ text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
+
+ default_role_manager: Manager
+ default_role_developer: Developer
+ default_role_reporter: Reporter
+ default_tracker_bug: Bug
+ default_tracker_feature: Feature
+ default_tracker_support: Support
+ default_issue_status_new: New
+ default_issue_status_in_progress: In Progress
+ default_issue_status_resolved: Resolved
+ default_issue_status_feedback: Feedback
+ default_issue_status_closed: Closed
+ default_issue_status_rejected: Rejected
+ default_doc_category_user: User documentation
+ default_doc_category_tech: Technical documentation
+ default_priority_low: Low
+ default_priority_normal: Normal
+ default_priority_high: High
+ default_priority_urgent: Urgent
+ default_priority_immediate: Immediate
+ default_activity_design: Design
+ default_activity_development: Development
+
+ enumeration_issue_priorities: Issue priorities
+ enumeration_doc_categories: Document categories
+ enumeration_activities: Activities (time tracking)
+ enumeration_system_activity: System Activity
+
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ error_can_not_delete_custom_field: Unable to delete custom field
+ permission_manage_subtasks: Manage subtasks
+ label_profile: Profile
+ error_unable_to_connect: Unable to connect (%{value})
+ label_overall_spent_time: Overall spent time
+ error_can_not_remove_role: This role is in use and can not be deleted.
+ field_principal: Principal
+ field_parent_issue: Parent task
+ label_my_page_block: My page block
+ text_zoom_out: Zoom out
+ text_zoom_in: Zoom in
+ error_unable_delete_issue_status: Unable to delete issue status
+ label_subtask_plural: Subtasks
+ error_can_not_delete_tracker: This tracker contains issues and can't be deleted.
+ notice_failed_to_save_members: "Failed to save member(s): %{errors}."
+ label_project_copy_notifications: Send email notifications during the project copy
+ field_time_entries: Log time
+ project_module_gantt: Gantt
+ project_module_calendar: Calendar
+ field_member_of_group: Member of Group
+ field_assigned_to_role: Member of Role
+ button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
+ text_are_you_sure_with_children: Delete issue and all child issues?
+ field_text: Text field
+ label_user_mail_option_only_owner: Only for things I am the owner of
+ setting_default_notification_option: Default notification option
+ label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+ label_user_mail_option_only_assigned: Only for things I am assigned to
+ notice_not_authorized_archived_project: The project you're trying to access has been archived.
+ label_principal_search: "Search for user or group:"
+ label_user_search: "Search for user:"
+ field_visible: Visible
+ setting_emails_header: Emails header
+ 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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/en.yml
--- a/config/locales/en.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/en.yml Thu Mar 03 12:02:03 2011 +0000
@@ -205,15 +205,13 @@
gui_validation_error: 1 error
gui_validation_error_plural: "%{count} errors"
-
- field_ssamr_user_detail:
- description: User Description
+
field_name: Name
field_description: Description
field_summary: Summary
field_is_required: Required
- field_firstname: First name
- field_lastname: Last name
+ field_firstname: Firstname
+ field_lastname: Lastname
field_mail: Email
field_filename: File
field_filesize: Size
@@ -247,7 +245,6 @@
field_role: Role
field_homepage: Homepage
field_is_public: Public
- field_is_private: Private
field_parent: Subproject of
field_is_in_roadmap: Issues displayed in roadmap
field_login: Login
@@ -306,10 +303,8 @@
field_assigned_to_role: "Assignee's role"
field_text: Text field
field_visible: Visible
+ field_warn_on_leaving_unsaved: "Warn me when leaving a page with unsaved text"
- setting_tipoftheday_text: Tip of the Day
- setting_notifications_text: Notifications
- label_ssamr_description: Research description
setting_app_title: Application title
setting_app_subtitle: Application subtitle
setting_welcome_text: Welcome text
@@ -436,8 +431,6 @@
project_module_calendar: Calendar
project_module_gantt: Gantt
- label_tipoftheday: Tip of the day
- label_ssamr_details: Other Details
label_user: User
label_user_plural: Users
label_user_new: New user
@@ -445,15 +438,12 @@
label_project: Project
label_project_new: New project
label_project_plural: Projects
- label_my_project_plural: My Projects
- label_other_project_plural: "Everyone Else's Projects"
label_x_projects:
zero: no projects
one: 1 project
other: "%{count} projects"
label_project_all: All Projects
label_project_latest: Latest projects
- label_managers: Managed by
label_issue: Issue
label_issue_new: New issue
label_issue_plural: Issues
@@ -494,7 +484,6 @@
label_login_with_open_id_option: or login with OpenID
label_password_lost: Lost password
label_home: Home
- label_home_heading: Welcome!
label_my_page: My page
label_my_account: My account
label_my_projects: My projects
@@ -606,6 +595,7 @@
label_query: Custom query
label_query_plural: Custom queries
label_query_new: New query
+ label_my_queries: My custom queries
label_filter_add: Add filter
label_filter_plural: Filters
label_equals: is
@@ -803,7 +793,7 @@
label_profile: Profile
label_subtask_plural: Subtasks
label_project_copy_notifications: Send email notifications during the project copy
- label_principal_search: "Search by name:"
+ label_principal_search: "Search for user or group:"
label_user_search: "Search for user:"
button_login: Login
@@ -870,21 +860,17 @@
text_are_you_sure: Are you sure ?
text_are_you_sure_with_children: "Delete issue and all child issues?"
text_journal_changed: "%{label} changed from %{old} to %{new}"
+ text_journal_changed_no_detail: "%{label} updated"
text_journal_set_to: "%{label} set to %{value}"
text_journal_deleted: "%{label} deleted (%{old})"
text_journal_added: "%{label} %{value} added"
text_tip_issue_begin_day: issue beginning this day
text_tip_issue_end_day: issue ending this day
text_tip_issue_begin_end_day: issue beginning and ending this day
- text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed. This will be used in all project-related URLs, and as the repository name. Once saved, the identifier can not be changed.'
- text_project_name_info: "This will be the name of your project throughout this site. You can change your project's name at any time, in the project's settings."
- text_project_visibility_info: "If your project is not public, it will only be visible to users that you have added as project members."
- text_project_homepage_info: 'Link to an external project page.'
+ text_project_identifier_info: 'Only lower case letters (a-z), numbers and dashes are allowed. Once saved, the identifier can not be changed.'
text_caracters_maximum: "%{count} characters maximum."
text_caracters_minimum: "Must be at least %{count} characters long."
text_length_between: "Length between %{min} and %{max} characters."
- text_user_ssamr_description_info: 'Please describe your current research or development interests, within the fields of audio and music. This information is publicly visible in your profile and you can edit it at any time. It may also be used to establish eligibility for your initial registration.'
- text_issue_parent_issue_info: 'If this is a subtask, please insert its parent task number or write the main task name.'
text_tracker_no_workflow: No workflow defined for this tracker
text_unallowed_characters: Unallowed characters
text_comma_separated: Multiple values allowed (comma separated).
@@ -914,7 +900,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'
@@ -925,7 +911,7 @@
text_own_membership_delete_confirmation: "You are about to remove some or all of your permissions and may no longer be able to edit this project after that.\nAre you sure you want to continue?"
text_zoom_in: Zoom in
text_zoom_out: Zoom out
- text_settings_repo_creation: The repository for a project should be set up automatically within a few minutes of the project being created. You should not have to adjust any settings here. Please check again in ten minutes, and contact us if there is any problem.
+ text_warn_on_leaving_unsaved: "The current page contains unsaved text that will be lost if you leave this page."
default_role_manager: Manager
default_role_developer: Developer
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/es.yml
--- a/config/locales/es.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/es.yml Thu Mar 03 12:02:03 2011 +0000
@@ -796,7 +796,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
@@ -974,3 +974,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/eu.yml
--- a/config/locales/eu.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/eu.yml Thu Mar 03 12:02:03 2011 +0000
@@ -99,8 +99,8 @@
errors:
template:
header:
- one: "1 error prohibited this %{model} from being saved"
- other: "%{count} errors prohibited this %{model} from being saved"
+ one: "Errore batek %{model} hau godetzea galarazi du."
+ other: "%{count} errorek %{model} hau gordetzea galarazi dute."
messages:
inclusion: "ez dago zerrendan"
exclusion: "erreserbatuta dago"
@@ -125,7 +125,7 @@
greater_than_start_date: "hasiera data baino handiagoa izan behar du"
not_same_project: "ez dago proiektu berdinean"
circular_dependency: "Erlazio honek mendekotasun zirkular bat sortuko luke"
- cant_link_an_issue_with_a_descendant: "An issue can not be linked to one of its subtasks"
+ cant_link_an_issue_with_a_descendant: "Zeregin bat ezin da bere azpiataza batekin estekatu."
actionview_instancetag_blank_option: Hautatu mesedez
@@ -277,7 +277,7 @@
field_issue_to: Erlazionatutako zereginak
field_delay: Atzerapena
field_assignable: Arazoak rol honetara esleitu daitezke
- field_redirect_existing_links: Existitzen diren estelak berbideratu
+ field_redirect_existing_links: Existitzen diren estekak berbideratu
field_estimated_hours: Estimatutako denbora
field_column_names: Zutabeak
field_time_zone: Ordu zonaldea
@@ -318,7 +318,7 @@
setting_cross_project_issue_relations: Zereginak proiektuen artean erlazionatzea baimendu
setting_issue_list_default_columns: Zereginen zerrendan defektuz ikusten diren zutabeak
setting_repositories_encodings: Biltegien kodeketak
- setting_commit_logs_encoding: Commit-en mezuen kodetzea
+ setting_commit_logs_encoding: Commit-en egunkarien kodetzea
setting_emails_footer: Eposten oina
setting_protocol: Protokoloa
setting_per_page_options: Orriko objektuen aukerak
@@ -363,7 +363,7 @@
permission_delete_issues: Zereginak ezabatu
permission_manage_public_queries: Galdera publikoak kudeatu
permission_save_queries: Galderak gorde
- permission_view_gantt: Gantt diagrama ikusi
+ permission_view_gantt: Gantt grafikoa ikusi
permission_view_calendar: Egutegia ikusi
permission_view_issue_watchers: Behatzaileen zerrenda ikusi
permission_add_issue_watchers: Behatzaileak gehitu
@@ -441,7 +441,7 @@
label_tracker: Aztarnaria
label_tracker_plural: Aztarnariak
label_tracker_new: Aztarnari berria
- label_workflow: Workflow
+ label_workflow: Lan-fluxua
label_issue_status: Zeregin egoera
label_issue_status_plural: Zeregin egoerak
label_issue_status_new: Egoera berria
@@ -507,7 +507,7 @@
label_file_added: Fitxategia gehituta
label_report: Berri ematea
label_report_plural: Berri emateak
- label_news: Beria
+ label_news: Berria
label_news_new: Berria gehitu
label_news_plural: Berriak
label_news_latest: Azken berriak
@@ -554,7 +554,7 @@
label_add_note: Oharra gehitu
label_per_page: Orriko
label_calendar: Egutegia
- label_months_from: months from
+ label_months_from: hilabete noiztik
label_gantt: Gantt
label_internal: Barnekoa
label_last_changes: "azken %{count} aldaketak"
@@ -785,7 +785,7 @@
button_cancel: Ezeztatu
button_activate: Gahitu
button_sort: Ordenatu
- button_log_time: Denbora apuntatu
+ button_log_time: Denbora erregistratu
button_rollback: Itzuli bertsio honetara
button_watch: Behatu
button_unwatch: Behatzen utzi
@@ -825,9 +825,9 @@
text_journal_set_to: "%{label}-k %{value} balioa hartu du"
text_journal_deleted: "%{label} ezabatuta (%{old})"
text_journal_added: "%{label} %{value} gehituta"
- text_tip_issue_begin_day: gaur hasten diren atazak
- text_tip_issue_end_day: gaur bukatzen diren atazak
- text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren atazak
+ text_tip_issue_begin_day: gaur hasten diren zereginak
+ text_tip_issue_end_day: gaur bukatzen diren zereginak
+ text_tip_issue_begin_end_day: gaur hasi eta bukatzen diren zereginak
text_project_identifier_info: 'Letra xeheak (a-z), zenbakiak eta marrak erabil daitezke bakarrik. Gorde eta gero identifikadorea ezin da aldatu.'
text_caracters_maximum: "%{count} karaktere gehienez."
text_caracters_minimum: "Gutxienez %{count} karaktereetako luzerakoa izan behar du."
@@ -860,7 +860,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'
@@ -896,7 +896,7 @@
enumeration_doc_categories: Dokumentu kategoriak
enumeration_activities: Jarduerak (denbora kontrola))
enumeration_system_activity: Sistemako Jarduera
- label_board_sticky: Itxaskorra
+ label_board_sticky: Itsaskorra
label_board_locked: Blokeatuta
permission_export_wiki_pages: Wiki orriak esportatu
setting_cache_formatted_text: Formatudun testua katxeatu
@@ -904,40 +904,44 @@
error_unable_delete_issue_status: Ezine da zereginaren egoera ezabatu
label_profile: Profila
permission_manage_subtasks: Azpiatazak kudeatu
- field_parent_issue: Guraso ataza
+ field_parent_issue: Zeregin gurasoa
label_subtask_plural: Azpiatazak
label_project_copy_notifications: Proiektua kopiatzen den bitartean eposta jakinarazpenak bidali
- error_can_not_delete_custom_field: Ezin da eremu pertsonallizatua ezabatu
+ error_can_not_delete_custom_field: Ezin da eremu pertsonalizatua ezabatu
error_unable_to_connect: Ezin da konektatu (%{value})
error_can_not_remove_role: Rol hau erabiltzen hari da eta ezin da ezabatu.
error_can_not_delete_tracker: Aztarnari honek zereginak ditu eta ezin da ezabatu.
- field_principal: Principal
- label_my_page_block: My page block
- notice_failed_to_save_members: "Failed to save member(s): %{errors}."
- text_zoom_out: Zoom out
- text_zoom_in: Zoom in
- notice_unable_delete_time_entry: Unable to delete time log entry.
- label_overall_spent_time: Overall spent time
- field_time_entries: Log time
+ field_principal: Ekintzaile
+ label_my_page_block: "Nire orriko blokea"
+ notice_failed_to_save_members: "Kidea(k) gordetzean errorea: %{errors}."
+ text_zoom_out: Zooma txikiagotu
+ text_zoom_in: Zooma handiagotu
+ notice_unable_delete_time_entry: "Ezin da hautatutako denbora erregistroa ezabatu."
+ label_overall_spent_time: Igarotako denbora guztira
+ field_time_entries: "Denbora erregistratu"
project_module_gantt: Gantt
- project_module_calendar: Calendar
- button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
- text_are_you_sure_with_children: Delete issue and all child issues?
- field_text: Text field
- label_user_mail_option_only_owner: Only for things I am the owner of
- setting_default_notification_option: Default notification option
- label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
- label_user_mail_option_only_assigned: Only for things I am assigned to
- label_user_mail_option_none: No events
- field_member_of_group: Assignee's group
- field_assigned_to_role: Assignee's role
- notice_not_authorized_archived_project: The project you're trying to access has been archived.
- label_principal_search: "Search for user or group:"
- label_user_search: "Search for user:"
- field_visible: Visible
- setting_emails_header: Emails header
- 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
+ project_module_calendar: Egutegia
+ button_edit_associated_wikipage: "Esleitutako wiki orria editatu: %{page_title}"
+ text_are_you_sure_with_children: "Zeregina eta azpi zeregin guztiak ezabatu?"
+ field_text: Testu eremua
+ label_user_mail_option_only_owner: "Jabea naizen gauzetarako barrarik"
+ setting_default_notification_option: "Lehenetsitako ohartarazpen aukera"
+ label_user_mail_option_only_my_events: "Behatzen ditudan edo partaide naizen gauzetarako bakarrik"
+ label_user_mail_option_only_assigned: "Niri esleitutako gauzentzat bakarrik"
+ label_user_mail_option_none: "Gertakaririk ez"
+ field_member_of_group: "Esleituta duenaren taldea"
+ field_assigned_to_role: "Esleituta duenaren rola"
+ notice_not_authorized_archived_project: "Atzitu nahi duzun proiektua artxibatua izan da."
+ label_principal_search: "Bilatu erabiltzaile edo taldea:"
+ label_user_search: "Erabiltzailea bilatu:"
+ field_visible: Ikusgai
+ setting_emails_header: "Eposten goiburua"
+ setting_commit_logtime_activity_id: "Erregistratutako denboraren jarduera"
+ text_time_logged_by_changeset: "%{value} aldaketan egindakoa."
+ setting_commit_logtime_enabled: "Erregistrutako denbora gaitu"
+ notice_gantt_chart_truncated: Grafikoa moztu da bistara daitekeen elementuen kopuru maximoa gainditu delako (%{max})
+ setting_gantt_items_limit: "Gantt grafikoan bistara daitekeen elementu kopuru maximoa"
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/fa.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/locales/fa.yml Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,945 @@
+fa:
+ # Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
+ direction: rtl
+ 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"
+ short: "%b %d"
+ long: "%B %d, %Y"
+
+ day_names: [یک‌شنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنج‌شنبه, آدینه, شنبه]
+ abbr_day_names: [یک, دو, سه, چهار, پنج, آدینه, شنبه]
+
+ # Don't forget the nil at the beginning; there's no such thing as a 0th month
+ month_names: [~, ژانویه, Ùوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر]
+ abbr_month_names: [~, ژان, Ùور, مار, آور, مه, ژوئن, ژوئیه, اوت, سپت, اکت, نوا, دسا]
+ # Used in date_select and datime_select.
+ order: [ :year, :month, :day ]
+
+ time:
+ formats:
+ default: "%Y/%m/%d %p %I:%M"
+ time: "%p %I:%M"
+ short: "%d %b %H:%M"
+ long: "%B %d, %Y %H:%M"
+ am: "ق.ظ"
+ pm: "ب.ظ"
+
+ datetime:
+ distance_in_words:
+ half_a_minute: "نیم دقیقه"
+ less_than_x_seconds:
+ one: "کمتر از 1 ثانیه"
+ other: "کمتر از %{count} ثانیه"
+ x_seconds:
+ one: "1 ثانیه"
+ other: "%{count} ثانیه"
+ less_than_x_minutes:
+ one: "کمتر از 1 دقیقه"
+ other: "کمتر از %{count} دقیقه"
+ x_minutes:
+ one: "1 دقیقه"
+ other: "%{count} دقیقه"
+ about_x_hours:
+ one: "نزدیک 1 ساعت"
+ other: "نزدیک %{count} ساعت"
+ x_days:
+ one: "1 روز"
+ other: "%{count} روز"
+ about_x_months:
+ one: "نزدیک 1 ماه"
+ other: "نزدیک %{count} ماه"
+ x_months:
+ one: "1 ماه"
+ other: "%{count} ماه"
+ about_x_years:
+ one: "نزدیک 1 سال"
+ other: "نزدیک %{count} سال"
+ over_x_years:
+ one: "بیش از 1 سال"
+ other: "بیش از %{count} سال"
+ almost_x_years:
+ one: "نزدیک 1 سال"
+ other: "نزدیک %{count} سال"
+
+ number:
+ # Default format for numbers
+ format:
+ separator: "Ù«"
+ delimiter: ""
+ precision: 3
+ human:
+ format:
+ delimiter: ""
+ precision: 1
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: "بایت"
+ other: "بایت"
+ kb: "کیلوبایت"
+ mb: "مگابایت"
+ gb: "گیگابایت"
+ tb: "ترابایت"
+
+
+# Used in array.to_sentence.
+ support:
+ array:
+ sentence_connector: "Ùˆ"
+ skip_last_comma: false
+
+ activerecord:
+ errors:
+ template:
+ header:
+ one: "1 ایراد از ذخیره سازی این %{model} جلوگیری کرد"
+ other: "%{count} ایراد از ذخیره سازی این %{model} جلوگیری کرد"
+ messages:
+ inclusion: "در Ùهرست نیامده است"
+ exclusion: "رزرو شده است"
+ invalid: "نادرست است"
+ confirmation: "با بررسی سازگاری ندارد"
+ accepted: "باید Ù¾Ø°ÛŒØ±ÙØªÙ‡ شود"
+ empty: "نمی‌تواند تهی باشد"
+ blank: "نمی‌تواند تهی باشد"
+ too_long: "خیلی بلند است (بیشترین اندازه %{count} نویسه است)"
+ too_short: "خیلی کوتاه است (کمترین اندازه %{count} نویسه است)"
+ wrong_length: "اندازه نادرست است (باید %{count} نویسه باشد)"
+ taken: "پیش از این Ú¯Ø±ÙØªÙ‡ شده است"
+ not_a_number: "شماره درستی نیست"
+ not_a_date: "تاریخ درستی نیست"
+ greater_than: "باید بزرگتر از %{count} باشد"
+ greater_than_or_equal_to: "باید بزرگتر از یا برابر با %{count} باشد"
+ equal_to: "باید برابر با %{count} باشد"
+ less_than: "باید کمتر از %{count} باشد"
+ less_than_or_equal_to: "باید کمتر از یا برابر با %{count} باشد"
+ odd: "باید ÙØ±Ø¯ باشد"
+ even: "باید زوج باشد"
+ greater_than_start_date: "باید از تاریخ آغاز بزرگتر باشد"
+ not_same_project: "به همان پروژه وابسته نیست"
+ circular_dependency: "این وابستگی یک وابستگی دایره وار خواهد ساخت"
+ cant_link_an_issue_with_a_descendant: "یک پیامد نمی‌تواند به یکی از زیر کارهایش پیوند بخورد"
+
+ actionview_instancetag_blank_option: گزینش کنید
+
+ general_text_No: 'خیر'
+ general_text_Yes: 'آری'
+ general_text_no: 'خیر'
+ general_text_yes: 'آری'
+ general_lang_name: 'Persian (پارسی)'
+ general_csv_separator: ','
+ general_csv_decimal_separator: '.'
+ general_csv_encoding: UTF-8
+ general_pdf_encoding: UTF-8
+ general_first_day_of_week: '6'
+
+ notice_account_updated: ØØ³Ø§Ø¨ شما بروز شد.
+ notice_account_invalid_creditentials: نام کاربری یا گذرواژه نادرست است
+ notice_account_password_updated: گذرواژه بروز شد
+ notice_account_wrong_password: گذرواژه نادرست است
+ notice_account_register_done: ØØ³Ø§Ø¨ ساخته شد. برای ÙØ¹Ø§Ù„ نمودن آن، روی پیوندی Ú©Ù‡ به شما ایمیل شده کلیک کنید.
+ notice_account_unknown_email: کاربر شناخته نشد.
+ notice_can_t_change_password: این ØØ³Ø§Ø¨ یک روش شناسایی بیرونی را به کار Ú¯Ø±ÙØªÙ‡ است. گذرواژه را نمی‌توان جایگزین کرد.
+ notice_account_lost_email_sent: یک ایمیل با راهنمایی درباره گزینش گذرواژه تازه برای شما ÙØ±Ø³ØªØ§Ø¯Ù‡ شد.
+ notice_account_activated: ØØ³Ø§Ø¨ شما ÙØ¹Ø§Ù„ شده است. اکنون می‌توانید وارد شوید.
+ notice_successful_create: با موÙقیت ساخته شد.
+ notice_successful_update: با موÙقیت بروز شد.
+ notice_successful_delete: با موÙقیت برداشته شد.
+ notice_successful_connection: با موÙقیت متصل شد.
+ notice_file_not_found: برگه درخواستی شما در دسترس نیست یا پاک شده است.
+ notice_locking_conflict: داده‌ها را کاربر دیگری بروز کرده است.
+ notice_not_authorized: شما به این برگه دسترسی ندارید.
+ notice_not_authorized_archived_project: پروژه درخواستی شما بایگانی شده است.
+ notice_email_sent: "یک ایمیل به %{value} ÙØ±Ø³ØªØ§Ø¯Ù‡ شد."
+ notice_email_error: "یک ایراد در ÙØ±Ø³ØªØ§Ø¯Ù† ایمیل پیش آمد (%{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: زمان گزارش شده را نمی‌توان پاک کرد.
+ 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: 'یک پیگرد یا نقش منبع را برگزینید.'
+ 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: "برگه ویکی «%{id}» Ø§ÙØ²ÙˆØ¯Ù‡ شد"
+ mail_body_wiki_content_added: "برگه ویکی «%{id}» به دست %{author} Ø§ÙØ²ÙˆØ¯Ù‡ شد."
+ mail_subject_wiki_content_updated: "برگه ویکی «%{id}» بروز شد"
+ mail_body_wiki_content_updated: "برگه ویکی «%{id}» به دست %{author} بروز شد."
+
+ gui_validation_error: 1 ایراد
+ gui_validation_error_plural: "%{count} ایراد"
+
+ field_name: نام
+ field_description: توضیØ
+ field_summary: خلاصه
+ field_is_required: الزامی
+ field_firstname: نام کوچک
+ field_lastname: نام خانوادگی
+ field_mail: ایمیل
+ field_filename: پرونده
+ field_filesize: اندازه
+ field_downloads: Ø¯Ø±ÛŒØ§ÙØªâ€ŒÙ‡Ø§
+ field_author: نویسنده
+ field_created_on: ساخته شده در
+ field_updated_on: بروز شده در
+ field_field_format: قالب
+ field_is_for_all: برای همه پروژه‌ها
+ field_possible_values: مقادیر ممکن
+ field_regexp: عبارت منظم
+ field_min_length: کمترین اندازه
+ field_max_length: بیشترین اندازه
+ field_value: مقدار
+ field_category: دسته
+ field_title: عنوان
+ field_project: پروژه
+ field_issue: پیامد
+ field_status: وضعیت
+ field_notes: یادداشت‌ها
+ field_is_closed: پیامد بسته شده
+ field_is_default: مقدار پیش‌گزیده
+ field_tracker: پیگرد
+ field_subject: موضوع
+ field_due_date: زمان سررسید
+ field_assigned_to: واگذار شده به
+ field_priority: برتری
+ field_fixed_version: نگارش هدÙ
+ field_user: کاربر
+ field_principal: دستور دهنده
+ field_role: نقش
+ field_homepage: برگه خانه
+ field_is_public: همگانی
+ field_parent: پروژه پدر
+ field_is_in_roadmap: این پیامدها در نقشه راه نشان داده شوند
+ field_login: ورود
+ field_mail_notification: آگاه سازی‌های ایمیلی
+ field_admin: سرپرست
+ field_last_login_on: آخرین ورود
+ field_language: زبان
+ field_effective_date: تاریخ
+ field_password: گذرواژه
+ field_new_password: گذرواژه تازه
+ field_password_confirmation: بررسی گذرواژه
+ field_version: نگارش
+ field_type: گونه
+ field_host: میزبان
+ field_port: درگاه
+ field_account: ØØ³Ø§Ø¨
+ field_base_dn: DN پایه
+ field_attr_login: نشانه ورود
+ field_attr_firstname: نشانه نام کوچک
+ field_attr_lastname: نشانه نام خانوادگی
+ field_attr_mail: نشانه ایمیل
+ field_onthefly: ساخت کاربر بیدرنگ
+ field_start_date: تاریخ آغاز
+ field_done_ratio: ٪ انجام شده
+ field_auth_source: روش شناسایی
+ field_hide_mail: ایمیل من پنهان شود
+ field_comments: دیدگاه
+ field_url: نشانی
+ field_start_page: برگه آغاز
+ field_subproject: زیر پروژه
+ field_hours: ساعت‌
+ field_activity: ÙØ¹Ø§Ù„یت
+ field_spent_on: در تاریخ
+ field_identifier: شناسه
+ field_is_filter: پالایش پذیر
+ field_issue_to: پیامد وابسته
+ field_delay: دیرکرد
+ field_assignable: پیامدها می‌توانند به این نقش واگذار شوند
+ field_redirect_existing_links: پیوندهای پیشین به پیوند تازه راهنمایی شوند
+ field_estimated_hours: زمان برآورد شده
+ field_column_names: ستون‌ها
+ field_time_entries: زمان نوشتن
+ field_time_zone: پهنه زمانی
+ field_searchable: جستجو پذیر
+ field_default_value: مقدار پیش‌گزیده
+ field_comments_sorting: نمایش دیدگاه‌ها
+ field_parent_title: برگه پدر
+ field_editable: ویرایش پذیر
+ field_watcher: دیده‌بان
+ field_identity_url: نشانی OpenID
+ field_content: Ù…ØØªÙˆØ§
+ field_group_by: دسته بندی با
+ field_sharing: اشتراک گذاری
+ field_parent_issue: کار پدر
+ field_member_of_group: "دسته واگذار شونده"
+ field_assigned_to_role: "نقش واگذار شونده"
+ field_text: Ùیلد متنی
+ field_visible: آشکار
+
+ setting_app_title: نام برنامه
+ setting_app_subtitle: زیرنام برنامه
+ setting_welcome_text: نوشتار خوش‌آمد گویی
+ setting_default_language: زبان پیش‌گزیده
+ setting_login_required: الزامی بودن ورود
+ setting_self_registration: خود نام نویسی
+ setting_attachment_max_size: بیشترین اندازه پیوست
+ setting_issues_export_limit: کرانه صدور پییامدها
+ setting_mail_from: نشانی ÙØ±Ø³ØªÙ†Ø¯Ù‡ ایمیل
+ setting_bcc_recipients: گیرندگان ایمیل دیده نشوند (bcc)
+ setting_plain_text_mail: ایمیل نوشته ساده (بدون HTML)
+ setting_host_name: نام میزبان و نشانی
+ setting_text_formatting: قالب بندی نوشته
+ setting_wiki_compression: ÙØ´Ø±Ø¯Ù‡â€ŒØ³Ø§Ø²ÛŒ پیشینه ویکی
+ setting_feeds_limit: کرانه Ù…ØØªÙˆØ§ÛŒ خوراک
+ setting_default_projects_public: ØØ§Ù„ت پیش‌گزیده پروژه‌های تازه، همگانی است
+ setting_autofetch_changesets: Ø¯Ø±ÛŒØ§ÙØª خودکار تغییرات
+ setting_sys_api_enabled: ÙØ¹Ø§Ù„ سازی وب سرویس برای سرپرستی انباره
+ 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: سرنویس ایمیل‌ها
+ setting_emails_footer: پانویس ایمیل‌ها
+ 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: "بریدن ایمیل‌ها پس از یکی از این ردیÙ‌ها"
+ setting_mail_handler_api_enabled: ÙØ¹Ø§Ù„سازی وب سرویس برای ایمیل‌های آمده
+ setting_mail_handler_api_key: کلید API
+ setting_sequential_project_identifiers: ساخت پشت سر هم شناسه پروژه
+ setting_gravatar_enabled: کاربرد Gravatar برای عکس کاربر
+ setting_gravatar_default: عکس Gravatar پیش‌گزیده
+ setting_diff_max_lines_displayed: بیشترین اندازه ردیÙ‌های ØªÙØ§ÙˆØª نشان داده شده
+ setting_file_max_size_displayed: بیشترین اندازه پرونده‌های نمایش داده شده درون خطی
+ 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
+ setting_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: ذخیره سازی پرس‌وجوها
+ permission_view_gantt: دیدن نمودار گانت
+ permission_view_calendar: دیدن گاهشمار
+ permission_view_issue_watchers: دیدن Ùهرست دیده‌بان‌ها
+ permission_add_issue_watchers: Ø§ÙØ²ÙˆØ¯Ù† دیده‌بان‌ها
+ permission_delete_issue_watchers: پاک کردن دیده‌بان‌ها
+ permission_log_time: نوشتن زمان گذاشته شده
+ permission_view_time_entries: دیدن زمان گذاشته شده
+ permission_edit_time_entries: ویرایش زمان گذاشته شده
+ permission_edit_own_time_entries: ویرایش زمان گذاشته شده خود
+ permission_manage_news: سرپرستی رویدادها
+ permission_comment_news: گذاشتن دیدگاه روی رویدادها
+ permission_manage_documents: سرپرستی نوشتارها
+ permission_view_documents: دیدن نوشتارها
+ permission_manage_files: سرپرستی پرونده‌ها
+ permission_view_files: دیدن پرونده‌ها
+ permission_manage_wiki: سرپرستی ویکی
+ permission_rename_wiki_pages: نامگذاری برگه ویکی
+ permission_delete_wiki_pages: پاک کردن برگه ویکی
+ permission_view_wiki_pages: دیدن ویکی
+ permission_view_wiki_edits: دیدن پیشینه ویکی
+ permission_edit_wiki_pages: ویرایش برگه‌های ویکی
+ permission_delete_wiki_pages_attachments: پاک کردن پیوست‌های برگه ویکی
+ permission_protect_wiki_pages: نگه‌داری برگه‌های ویکی
+ permission_manage_repository: سرپرستی انباره
+ permission_browse_repository: چریدن در انباره
+ permission_view_changesets: دیدن تغییرات
+ permission_commit_access: دسترسی تغییر انباره
+ permission_manage_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: صدور برگه‌های ویکی
+ permission_manage_subtasks: سرپرستی زیرکارها
+
+ project_module_issue_tracking: پیگیری پیامدها
+ project_module_time_tracking: پیگیری زمان
+ project_module_news: رویدادها
+ project_module_documents: نوشتارها
+ project_module_files: پرونده‌ها
+ project_module_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: بدون پروژه
+ one: "1 پروژه"
+ other: "%{count} پروژه"
+ label_project_all: همه پروژه‌ها
+ label_project_latest: آخرین پروژه‌ها
+ label_issue: پیامد
+ 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: نقش تازه
+ label_role_and_permissions: نقش‌ها و پروانه‌ها
+ label_member: عضو
+ label_member_new: عضو تازه
+ label_member_plural: عضو
+ label_tracker: پیگرد
+ label_tracker_plural: پیگرد
+ label_tracker_new: پیگرد تازه
+ label_workflow: گردش کار
+ label_issue_status: وضعیت پیامد
+ label_issue_status_plural: وضعیت پیامد
+ label_issue_status_new: وضعیت تازه
+ label_issue_category: دسته پیامد
+ label_issue_category_plural: دسته پیامد
+ label_issue_category_new: دسته تازه
+ label_custom_field: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ
+ label_custom_field_plural: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ
+ label_custom_field_new: Ùیلد Ø³ÙØ§Ø±Ø´ÛŒ تازه
+ label_enumerations: برشمردنی‌ها
+ label_enumeration_new: مقدار تازه
+ label_information: داده
+ 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: خروج
+ label_help: راهنما
+ label_reported_issues: پیامدهای گزارش شده
+ label_assigned_to_me_issues: پیامدهای واگذار شده به من
+ label_last_login: آخرین ورود
+ label_registered_on: نام نویسی شده در
+ label_activity: ÙØ¹Ø§Ù„یت
+ label_overall_activity: ÙØ¹Ø§Ù„یت روی هم Ø±ÙØªÙ‡
+ label_user_activity: "ÙØ¹Ø§Ù„یت %{value}"
+ label_new: تازه
+ label_logged_as: "نام کاربری:"
+ label_environment: Ù…ØÛŒØ·
+ label_authentication: شناسایی
+ label_auth_source: روش شناسایی
+ 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: نوشته بلند
+ label_attribute: نشانه
+ label_attribute_plural: نشانه
+ label_download: "%{count} بار Ø¯Ø±ÛŒØ§ÙØª شده"
+ label_download_plural: "%{count} بار Ø¯Ø±ÛŒØ§ÙØª شده"
+ label_no_data: هیچ داده‌ای برای نمایش نیست
+ label_change_status: جایگزینی وضعیت
+ label_history: پیشینه
+ label_attachment: پرونده
+ label_attachment_new: پرونده تازه
+ label_attachment_delete: پاک کردن پرونده
+ label_attachment_plural: پرونده
+ label_file_added: پرونده Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_report: گزارش
+ label_report_plural: گزارش
+ label_news: رویداد
+ label_news_new: Ø§ÙØ²ÙˆØ¯Ù† رویداد
+ 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: خواندن...
+ label_public_projects: پروژه‌های همگانی
+ label_open_issues: باز
+ label_open_issues_plural: باز
+ label_closed_issues: بسته
+ label_closed_issues_plural: بسته
+ label_x_open_issues_abbr_on_total:
+ zero: 0 باز از %{total}
+ one: 1 باز از %{total}
+ other: "%{count} باز از %{total}"
+ label_x_open_issues_abbr:
+ zero: 0 باز
+ one: 1 باز
+ other: "%{count} باز"
+ label_x_closed_issues_abbr:
+ zero: 0 بسته
+ one: 1 بسته
+ other: "%{count} بسته"
+ label_total: جمله
+ label_permissions: پروانه‌ها
+ label_current_status: وضعیت کنونی
+ label_new_statuses_allowed: وضعیت‌های Ù¾Ø°ÛŒØ±ÙØªÙ†ÛŒ تازه
+ label_all: همه
+ label_none: هیچ
+ label_nobody: هیچکس
+ label_next: پسین
+ label_previous: پیشین
+ label_used_by: به کار Ø±ÙØªÙ‡ در
+ label_details: ریزه‌کاری
+ label_add_note: Ø§ÙØ²ÙˆØ¯Ù† یادداشت
+ label_per_page: ردیÙ‌ها در هر برگه
+ label_calendar: گاهشمار
+ label_months_from: از ماه
+ label_gantt: گانت
+ label_internal: درونی
+ label_last_changes: "%{count} تغییر آخر"
+ label_change_view_all: دیدن همه تغییرات
+ label_personalize_page: Ø³ÙØ§Ø±Ø´ÛŒ نمودن این برگه
+ label_comment: دیدگاه
+ label_comment_plural: دیدگاه
+ label_x_comments:
+ zero: بدون دیدگاه
+ one: 1 دیدگاه
+ other: "%{count} دیدگاه"
+ label_comment_add: Ø§ÙØ²ÙˆØ¯Ù† دیدگاه
+ label_comment_added: دیدگاه Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_comment_delete: پاک کردن دیدگاه‌ها
+ label_query: پرس‌وجوی Ø³ÙØ§Ø±Ø´ÛŒ
+ label_query_plural: پرس‌وجوی Ø³ÙØ§Ø±Ø´ÛŒ
+ label_query_new: پرس‌وجوی تازه
+ label_filter_add: Ø§ÙØ²ÙˆØ¯Ù† پالایه
+ label_filter_plural: پالایه
+ label_equals: برابر است با
+ 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: روز پیشین
+ label_contains: دارد
+ 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: بردن به بالا
+ label_sort_lower: بردن به پایین
+ label_sort_lowest: بردن به پایان
+ label_roadmap: نقشه راه
+ label_roadmap_due_in: "سررسید در %{value}"
+ label_roadmap_overdue: "%{value} دیرکرد"
+ label_roadmap_no_issues: هیچ پیامدی برای این نگارش نیست
+ label_search: جستجو
+ label_result_plural: دست‌آورد
+ label_all_words: همه واژه‌ها
+ label_wiki: ویکی
+ label_wiki_edit: ویرایش ویکی
+ label_wiki_edit_plural: ویرایش ویکی
+ label_wiki_page: برگه ویکی
+ label_wiki_page_plural: برگه ویکی
+ label_index_by_title: شاخص بر اساس نام
+ label_index_by_date: شاخص بر اساس تاریخ
+ label_current_version: نگارش کنونی
+ label_preview: پیش‌نمایش
+ label_feed_plural: خوراک
+ 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: پیگیری زمان
+ label_change_plural: جایگذاری
+ label_statistics: سرشماری
+ label_commits_per_month: تغییر در هر ماه
+ label_commits_per_author: تغییر هر نویسنده
+ label_view_diff: دیدن ØªÙØ§ÙˆØªâ€ŒÙ‡Ø§
+ label_diff_inline: همراستا
+ label_diff_side_by_side: کنار به کنار
+ label_options: گزینه‌ها
+ label_copy_workflow_from: رونویسی گردش کار از روی
+ label_permissions_report: گزارش پروانه‌ها
+ label_watched_issues: پیامدهای دیده‌بانی شده
+ label_related_issues: پیامدهای وابسته
+ label_applied_status: وضعیت به کار Ø±ÙØªÙ‡
+ label_loading: بار گذاری...
+ label_relation_new: وابستگی تازه
+ label_relation_delete: پاک کردن وابستگی
+ label_relates_to: وابسته به
+ label_duplicates: نگارش دیگری از
+ label_duplicated_by: نگارشی دیگر در
+ label_blocks: بازداشت‌ها
+ label_blocked_by: بازداشت به دست
+ label_precedes: جلوتر است از
+ label_follows: پستر است از
+ label_end_to_start: پایان به آغاز
+ label_end_to_end: پایان به پایان
+ label_start_to_start: آغاز به آغاز
+ label_start_to_end: آغاز به پایان
+ label_stay_logged_in: وارد شده بمانید
+ label_disabled: ØºÛŒØ±ÙØ¹Ø§Ù„
+ label_show_completed_versions: نمایش نگارش‌های انجام شده
+ label_me: من
+ label_board: انجمن
+ label_board_new: انجمن تازه
+ label_board_plural: انجمن
+ label_board_locked: Ù‚ÙÙ„ شده
+ label_board_sticky: چسبناک
+ label_topic_plural: Ø³Ø±ÙØµÙ„
+ label_message_plural: پیام
+ label_message_last: آخرین پیام
+ label_message_new: پیام تازه
+ label_message_posted: پیام Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_reply_plural: پاسخ
+ label_send_information: ÙØ±Ø³ØªØ§Ø¯Ù† داده‌های ØØ³Ø§Ø¨ به کاربر
+ label_year: سال
+ label_month: ماه
+ label_week: Ù‡ÙØªÙ‡
+ label_date_from: از
+ label_date_to: تا
+ label_language_based: بر اساس زبان کاربر
+ label_sort_by: "جور کرد با %{value}"
+ label_send_test_email: ÙØ±Ø³ØªØ§Ø¯Ù† ایمیل آزمایشی
+ label_feeds_access_key: کلید دسترسی RSS
+ label_missing_feeds_access_key: کلید دسترسی RSS در دسترس نیست
+ label_feeds_access_key_created_on: "کلید دسترسی RSS %{value} پیش ساخته شده است"
+ 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: ÙØ¹Ø§Ù„سازی ØØ³Ø§Ø¨ با ایمیل
+ 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: Ø¯Ø±ÛŒØ§ÙØª
+ label_optional_description: ØªÙˆØ¶ÛŒØ Ø§Ø®ØªÛŒØ§Ø±ÛŒ
+ label_add_another_file: Ø§ÙØ²ÙˆØ¯Ù† پرونده دیگر
+ label_preferences: پسندها
+ label_chronological_order: به ترتیب تاریخ
+ label_reverse_chronological_order: برعکس ترتیب تاریخ
+ label_planning: برنامه ریزی
+ label_incoming_emails: ایمیل‌های آمده
+ label_generate_key: ساخت کلید
+ label_issue_watchers: دیده‌بان‌ها
+ label_example: نمونه
+ label_display: نمایش
+ label_sort: جور کرد
+ label_ascending: Ø§ÙØ²Ø§ÛŒØ´ÛŒ
+ label_descending: کاهشی
+ label_date_from_to: از %{start} تا %{end}
+ label_wiki_content_added: برگه ویکی Ø§ÙØ²ÙˆØ¯Ù‡ شد
+ label_wiki_content_updated: برگه ویکی بروز شد
+ 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: در هنگام رونویسی پروژه ایمیل‌های آگاه‌سازی را Ø¨ÙØ±Ø³Øª
+ label_principal_search: "جستجو برای کاربر یا دسته:"
+ label_user_search: "جستجو برای کاربر:"
+
+ button_login: ورود
+ button_submit: واگذاری
+ button_save: نگهداری
+ button_check_all: گزینش همه
+ button_uncheck_all: گزینش هیچ
+ button_delete: پاک
+ button_create: ساخت
+ button_create_and_continue: ساخت و ادامه
+ button_test: آزمایش
+ button_edit: ویرایش
+ button_edit_associated_wikipage: "ویرایش برگه ویکی وابسته: %{page_title}"
+ button_add: Ø§ÙØ²ÙˆØ¯Ù†
+ button_change: ویرایش
+ button_apply: انجام
+ button_clear: پاک
+ button_lock: گذاشتن Ù‚ÙÙ„
+ button_unlock: برداشتن Ù‚ÙÙ„
+ button_download: Ø¯Ø±ÛŒØ§ÙØª
+ button_list: Ùهرست
+ button_view: دیدن
+ button_move: جابجایی
+ button_move_and_follow: جابجایی و ادامه
+ button_back: برگشت
+ button_cancel: بازگشت
+ button_activate: ÙØ¹Ø§Ù„سازی
+ button_sort: جور کرد
+ button_log_time: زمان‌نویسی
+ button_rollback: برگرد به این نگارش
+ button_watch: دیده‌بانی
+ button_unwatch: نا‌دیده‌بانی
+ button_reply: پاسخ
+ button_archive: بایگانی
+ 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: ÙØ±Ù…ان‌هایی Ú©Ù‡ برای آن‌ها باید ایمیل ÙØ±Ø³ØªØ§Ø¯Ù‡ شود را برگزینید.
+ 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_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_task_begin_day: روز آغاز پیامد
+ text_tip_task_end_day: روز پایان پیامد
+ text_tip_task_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} بروز شد."
+ text_wiki_destroy_confirmation: آیا براستی می‌خواهید این ویکی Ùˆ همه Ù…ØØªÙˆØ§ÛŒ آن را پاک کنید؟
+ 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: "Ø¯Ø±ÛŒØ§ÙØª ایمیل پیکربندی نشده است Ùˆ آگاه‌سازی‌ها غیر ÙØ¹Ø§Ù„ هستند.\nکارگزار SMTP خود را در config/email.yml پیکربندی کنید Ùˆ برنامه را بازنشانی کنید تا ÙØ¹Ø§Ù„ شوند."
+ text_repository_usernames_mapping: "کاربر Redmine که به هر نام کاربری پیام‌های انباره نگاشت می‌شود را برگزینید.\nکاربرانی که نام کاربری یا ایمیل همسان دارند، خود به خود نگاشت می‌شوند."
+ text_diff_truncated: '... این ØªÙØ§ÙˆØª بریده شده چون بیشتر از بیشترین اندازه نمایش دادنی است.'
+ text_custom_field_possible_values_info: 'یک خط برای هر مقدار'
+ text_wiki_page_destroy_question: "این برگه %{descendants} زیربرگه دارد.می‌خواهید چه کنید؟"
+ text_wiki_page_nullify_children: "زیربرگه‌ها برگه ریشه شوند"
+ text_wiki_page_destroy_children: "زیربرگه‌ها و زیربرگه‌های آن‌ها پاک شوند"
+ 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: گزارش‌دهنده
+ default_tracker_bug: ایراد
+ default_tracker_feature: ویژگی
+ default_tracker_support: پشتیبانی
+ default_issue_status_new: تازه
+ default_issue_status_in_progress: در گردش
+ default_issue_status_resolved: درست شده
+ default_issue_status_feedback: بازخورد
+ default_issue_status_closed: بسته
+ default_issue_status_rejected: برگشت خورده
+ default_doc_category_user: نوشتار کاربر
+ default_doc_category_tech: نوشتار ÙÙ†ÛŒ
+ default_priority_low: پایین
+ default_priority_normal: میانه
+ default_priority_high: بالا
+ default_priority_urgent: زود
+ default_priority_immediate: بیدرنگ
+ default_activity_design: طراØÛŒ
+ default_activity_development: ساخت
+
+ enumeration_issue_priorities: برتری‌های پیامد
+ enumeration_doc_categories: دسته‌های نوشتار
+ enumeration_activities: ÙØ¹Ø§Ù„یت‌ها (پیگیری زمان)
+ enumeration_system_activity: ÙØ¹Ø§Ù„یت سامانه
+
+ text_tip_issue_begin_day: issue beginning this day
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_tip_issue_begin_end_day: issue beginning and ending this day
+ text_tip_issue_end_day: issue ending this day
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/fi.yml
--- a/config/locales/fi.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/fi.yml Thu Mar 03 12:02:03 2011 +0000
@@ -751,7 +751,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
@@ -958,3 +958,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/fr.yml
--- a/config/locales/fr.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/fr.yml Thu Mar 03 12:02:03 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})"
@@ -307,6 +307,7 @@
field_active: Actif
field_parent_issue: Tâche parente
field_visible: Visible
+ field_warn_on_leaving_unsaved: "M'avertir lorsque je quitte une page contenant du texte non sauvegardé"
setting_app_title: Titre de l'application
setting_app_subtitle: Sous-titre de l'application
@@ -323,11 +324,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 +350,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 +370,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
@@ -597,6 +598,7 @@
label_query: Rapport personnalisé
label_query_plural: Rapports personnalisés
label_query_new: Nouveau rapport
+ label_my_queries: Mes rapports personnalisés
label_filter_add: "Ajouter le filtre "
label_filter_plural: Filtres
label_equals: égal
@@ -860,7 +862,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)."
@@ -881,7 +883,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'
@@ -890,6 +892,7 @@
text_wiki_page_destroy_children: "Supprimer les sous-pages et toutes leurs descedantes"
text_wiki_page_reassign_children: "Réaffecter les sous-pages à cette page"
text_own_membership_delete_confirmation: "Vous allez supprimer tout ou partie de vos permissions sur ce projet et ne serez peut-être plus autorisé à modifier ce projet.\nEtes-vous sûr de vouloir continuer ?"
+ text_warn_on_leaving_unsaved: "Cette page contient du texte non sauvegardé qui sera perdu si vous quittez la page."
default_role_manager: "Manager "
default_role_developer: "Développeur "
@@ -924,6 +927,7 @@
error_no_tracker_in_project: "Aucun tracker n'est associé à ce projet. Vérifier la configuration du projet."
error_no_default_issue_status: "Aucun statut de demande n'est défini par défaut. Vérifier votre configuration (Administration -> Statuts de demandes)."
text_journal_changed: "%{label} changé de %{old} à %{new}"
+ text_journal_changed_no_detail: "%{label} mis à jour"
text_journal_set_to: "%{label} mis à %{value}"
text_journal_deleted: "%{label} %{old} supprimé"
text_journal_added: "%{label} %{value} ajouté"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/gl.yml
--- a/config/locales/gl.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/gl.yml Thu Mar 03 12:02:03 2011 +0000
@@ -773,7 +773,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
@@ -949,3 +949,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/he.yml
--- a/config/locales/he.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/he.yml Thu Mar 03 12:02:03 2011 +0000
@@ -890,7 +890,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: שורה ×חת לכל ערך
@@ -942,3 +942,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/hr.yml
--- a/config/locales/hr.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/hr.yml Thu Mar 03 12:02:03 2011 +0000
@@ -855,7 +855,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'
@@ -944,3 +944,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/hu.yml
--- a/config/locales/hu.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/hu.yml Thu Mar 03 12:02:03 2011 +0000
@@ -749,7 +749,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
@@ -956,3 +956,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/id.yml
--- a/config/locales/id.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/id.yml Thu Mar 03 12:02:03 2011 +0000
@@ -834,7 +834,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'
@@ -945,3 +945,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/it.yml
--- a/config/locales/it.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/it.yml Thu Mar 03 12:02:03 2011 +0000
@@ -731,7 +731,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
@@ -938,3 +938,7 @@
setting_commit_logtime_enabled: Abilita registrazione del tempo di collegamento
notice_gantt_chart_truncated: Il grafico è stato troncato perchè eccede il numero di oggetti (%{max}) da visualizzare
setting_gantt_items_limit: Massimo numero di oggetti da visualizzare sul diagramma di gantt
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/ja.yml
--- a/config/locales/ja.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/ja.yml Thu Mar 03 12:02:03 2011 +0000
@@ -920,7 +920,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個ãšã¤è¨˜è¿°ã—ã¦ãã ã•ã„。'
@@ -958,3 +958,7 @@
enumeration_doc_categories: 文書カテゴリ
enumeration_activities: 作æ¥åˆ†é¡ž (時間トラッã‚ング)
enumeration_system_activity: システム作æ¥åˆ†é¡ž
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/ko.yml
--- a/config/locales/ko.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/ko.yml Thu Mar 03 12:02:03 2011 +0000
@@ -844,7 +844,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: 'ê° ê°’ 당 한 줄'
@@ -989,3 +989,7 @@
setting_commit_logtime_enabled: 커밋 시ì ì— ìž‘ì—… 시간 ê¸°ë¡ í™œì„±í™”
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/lt.yml
--- a/config/locales/lt.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/lt.yml Thu Mar 03 12:02:03 2011 +0000
@@ -886,7 +886,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'
@@ -997,3 +997,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/lv.yml
--- a/config/locales/lv.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/lv.yml Thu Mar 03 12:02:03 2011 +0000
@@ -855,7 +855,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Ä'
@@ -932,3 +932,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/mk.yml
--- a/config/locales/mk.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/mk.yml Thu Mar 03 12:02:03 2011 +0000
@@ -878,7 +878,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'
@@ -937,3 +937,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/mn.yml
--- a/config/locales/mn.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/mn.yml Thu Mar 03 12:02:03 2011 +0000
@@ -860,7 +860,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'
@@ -938,3 +938,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/nl.yml
--- a/config/locales/nl.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/nl.yml Thu Mar 03 12:02:03 2011 +0000
@@ -743,7 +743,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
@@ -919,3 +919,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/no.yml
--- a/config/locales/no.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/no.yml Thu Mar 03 12:02:03 2011 +0000
@@ -717,7 +717,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
@@ -924,3 +924,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/pl.yml
--- a/config/locales/pl.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/pl.yml Thu Mar 03 12:02:03 2011 +0000
@@ -772,7 +772,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
@@ -954,3 +954,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/pt-BR.yml
--- a/config/locales/pt-BR.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/pt-BR.yml Thu Mar 03 12:02:03 2011 +0000
@@ -729,7 +729,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
@@ -957,3 +957,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/pt.yml
--- a/config/locales/pt.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/pt.yml Thu Mar 03 12:02:03 2011 +0000
@@ -716,7 +716,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
@@ -941,3 +941,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/ro.yml
--- a/config/locales/ro.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/ro.yml Thu Mar 03 12:02:03 2011 +0000
@@ -775,7 +775,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'
@@ -930,3 +930,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/ru.yml
--- a/config/locales/ru.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/ru.yml Thu Mar 03 12:02:03 2011 +0000
@@ -914,7 +914,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: Хранилище Ñ Ð´Ð¾Ñтупом на запиÑÑŒ
@@ -1050,3 +1050,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/sk.yml
--- a/config/locales/sk.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/sk.yml Thu Mar 03 12:02:03 2011 +0000
@@ -724,7 +724,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
@@ -932,3 +932,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/sl.yml
--- a/config/locales/sl.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/sl.yml Thu Mar 03 12:02:03 2011 +0000
@@ -762,7 +762,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.'
@@ -933,3 +933,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/sr-YU.yml
--- a/config/locales/sr-YU.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/sr-YU.yml Thu Mar 03 12:02:03 2011 +0000
@@ -875,7 +875,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'
@@ -937,3 +937,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/sr.yml
--- a/config/locales/sr.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/sr.yml Thu Mar 03 12:02:03 2011 +0000
@@ -875,7 +875,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: 'Један ред за Ñваку вредноÑÑ‚'
@@ -938,3 +938,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/sv.yml
--- a/config/locales/sv.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/sv.yml Thu Mar 03 12:02:03 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
@@ -582,7 +586,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
@@ -667,7 +671,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
@@ -776,10 +780,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
@@ -826,7 +830,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
@@ -922,6 +926,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
@@ -935,14 +940,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
@@ -973,8 +978,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/th.yml
--- a/config/locales/th.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/th.yml Thu Mar 03 12:02:03 2011 +0000
@@ -727,7 +727,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
@@ -934,3 +934,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/tr.yml
--- a/config/locales/tr.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/tr.yml Thu Mar 03 12:02:03 2011 +0000
@@ -742,7 +742,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:"
@@ -956,3 +956,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/uk.yml
--- a/config/locales/uk.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/uk.yml Thu Mar 03 12:02:03 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
@@ -933,3 +933,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/vi.yml
--- a/config/locales/vi.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/vi.yml Thu Mar 03 12:02:03 2011 +0000
@@ -761,7 +761,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
@@ -988,3 +988,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/zh-TW.yml
--- a/config/locales/zh-TW.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/zh-TW.yml Thu Mar 03 12:02:03 2011 +0000
@@ -980,7 +980,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: '一列輸入一個值'
@@ -1018,3 +1018,7 @@
enumeration_doc_categories: 文件分類
enumeration_activities: 活動 (時間追蹤)
enumeration_system_activity: 系統活動
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 config/locales/zh.yml
--- a/config/locales/zh.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/config/locales/zh.yml Thu Mar 03 12:02:03 2011 +0000
@@ -870,7 +870,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: 'æ¯é¡¹æ•°å€¼ä¸€è¡Œ'
@@ -951,3 +951,7 @@
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
+ field_warn_on_leaving_unsaved: Warn me when leaving a page with unsaved text
+ text_warn_on_leaving_unsaved: The current page contains unsaved text that will be lost if you leave this page.
+ label_my_queries: My custom queries
+ text_journal_changed_no_detail: "%{label} updated"
diff -r fca2657f4aa5 -r eeebe205a056 db/.svn/all-wcprops
--- a/db/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/db/.svn/all-wcprops Thu Mar 03 12:02:03 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/4981/trunk/db
END
diff -r fca2657f4aa5 -r eeebe205a056 db/.svn/dir-prop-base
--- a/db/.svn/dir-prop-base Thu Jan 20 09:59:02 2011 +0000
+++ b/db/.svn/dir-prop-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,7 @@
K 10
svn:ignore
-V 26
+V 20
schema.rb
-demo.db
-test.db
+*.sqlite3
END
diff -r fca2657f4aa5 -r eeebe205a056 db/.svn/entries
--- a/db/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/db/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/db
http://redmine.rubyforge.org/svn
-2011-01-01T23:08:49.766359Z
-4610
-jbbarth
+2011-03-01T10:14:47.182368Z
+4981
+tmaruyama
has-props
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/all-wcprops
--- a/db/migrate/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/db/migrate/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 35
-/svn/!svn/ver/4610/trunk/db/migrate
+/svn/!svn/ver/4981/trunk/db/migrate
END
20101107130441_add_custom_fields_visible.rb
K 25
@@ -105,18 +105,18 @@
V 64
/svn/!svn/ver/67/trunk/db/migrate/008_create_user_preferences.rb
END
+025_add_search_permission.rb
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/!svn/ver/674/trunk/db/migrate/025_add_search_permission.rb
+END
023_add_tracker_is_in_roadmap.rb
K 25
svn:wc:ra_dav:version-url
V 67
/svn/!svn/ver/228/trunk/db/migrate/023_add_tracker_is_in_roadmap.rb
END
-025_add_search_permission.rb
-K 25
-svn:wc:ra_dav:version-url
-V 63
-/svn/!svn/ver/674/trunk/db/migrate/025_add_search_permission.rb
-END
20091220183727_add_index_to_settings_name.rb
K 25
svn:wc:ra_dav:version-url
@@ -153,11 +153,11 @@
V 71
/svn/!svn/ver/1814/trunk/db/migrate/096_add_commit_access_permission.rb
END
-024_add_roadmap_permission.rb
+20090401221305_update_enumerations_to_sti.rb
K 25
svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/674/trunk/db/migrate/024_add_roadmap_permission.rb
+V 80
+/svn/!svn/ver/2777/trunk/db/migrate/20090401221305_update_enumerations_to_sti.rb
END
091_change_changesets_revision_to_string.rb
K 25
@@ -165,11 +165,11 @@
V 79
/svn/!svn/ver/1236/trunk/db/migrate/091_change_changesets_revision_to_string.rb
END
-20090401221305_update_enumerations_to_sti.rb
+024_add_roadmap_permission.rb
K 25
svn:wc:ra_dav:version-url
-V 80
-/svn/!svn/ver/2777/trunk/db/migrate/20090401221305_update_enumerations_to_sti.rb
+V 64
+/svn/!svn/ver/674/trunk/db/migrate/024_add_roadmap_permission.rb
END
20091017214720_add_missing_indexes_to_wiki_redirects.rb
K 25
@@ -177,17 +177,23 @@
V 91
/svn/!svn/ver/2928/trunk/db/migrate/20091017214720_add_missing_indexes_to_wiki_redirects.rb
END
+072_add_enumerations_position.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/1623/trunk/db/migrate/072_add_enumerations_position.rb
+END
034_create_changesets.rb
K 25
svn:wc:ra_dav:version-url
V 59
/svn/!svn/ver/479/trunk/db/migrate/034_create_changesets.rb
END
-072_add_enumerations_position.rb
+20090614091200_fix_messages_sticky_null.rb
K 25
svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/1623/trunk/db/migrate/072_add_enumerations_position.rb
+V 78
+/svn/!svn/ver/2787/trunk/db/migrate/20090614091200_fix_messages_sticky_null.rb
END
108_add_identity_url_to_users.rb
K 25
@@ -195,12 +201,6 @@
V 68
/svn/!svn/ver/2440/trunk/db/migrate/108_add_identity_url_to_users.rb
END
-20090614091200_fix_messages_sticky_null.rb
-K 25
-svn:wc:ra_dav:version-url
-V 78
-/svn/!svn/ver/2787/trunk/db/migrate/20090614091200_fix_messages_sticky_null.rb
-END
20091220184736_add_indexes_to_issue_status.rb
K 25
svn:wc:ra_dav:version-url
@@ -249,6 +249,12 @@
V 66
/svn/!svn/ver/674/trunk/db/migrate/012_add_comments_permissions.rb
END
+20110223180953_salt_user_passwords.rb
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/4936/trunk/db/migrate/20110223180953_salt_user_passwords.rb
+END
038_add_custom_field_is_filter.rb
K 25
svn:wc:ra_dav:version-url
@@ -273,6 +279,12 @@
V 77
/svn/!svn/ver/3240/trunk/db/migrate/20091225164732_remove_enumerations_opt.rb
END
+20110220160626_add_workflows_assignee_and_author.rb
+K 25
+svn:wc:ra_dav:version-url
+V 87
+/svn/!svn/ver/4895/trunk/db/migrate/20110220160626_add_workflows_assignee_and_author.rb
+END
030_add_projects_feeds_permissions.rb
K 25
svn:wc:ra_dav:version-url
@@ -285,6 +297,12 @@
V 55
/svn/!svn/ver/864/trunk/db/migrate/045_create_boards.rb
END
+20110228000000_add_repositories_log_encoding.rb
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/svn/!svn/ver/4980/trunk/db/migrate/20110228000000_add_repositories_log_encoding.rb
+END
076_allow_null_position.rb
K 25
svn:wc:ra_dav:version-url
@@ -363,18 +381,18 @@
V 64
/svn/!svn/ver/674/trunk/db/migrate/047_add_boards_permissions.rb
END
+037_add_project_identifier.rb
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/397/trunk/db/migrate/037_add_project_identifier.rb
+END
073_add_enumerations_is_default.rb
K 25
svn:wc:ra_dav:version-url
V 69
/svn/!svn/ver/803/trunk/db/migrate/073_add_enumerations_is_default.rb
END
-037_add_project_identifier.rb
-K 25
-svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/397/trunk/db/migrate/037_add_project_identifier.rb
-END
20100313171051_add_index_on_issues_nested_set.rb
K 25
svn:wc:ra_dav:version-url
@@ -405,18 +423,18 @@
V 77
/svn/!svn/ver/2905/trunk/db/migrate/20091010093521_fix_users_custom_values.rb
END
+001_setup.rb
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/1764/trunk/db/migrate/001_setup.rb
+END
016_add_repositories_permissions.rb
K 25
svn:wc:ra_dav:version-url
V 70
/svn/!svn/ver/674/trunk/db/migrate/016_add_repositories_permissions.rb
END
-001_setup.rb
-K 25
-svn:wc:ra_dav:version-url
-V 48
-/svn/!svn/ver/1764/trunk/db/migrate/001_setup.rb
-END
20100129193813_update_mail_notification_values.rb
K 25
svn:wc:ra_dav:version-url
@@ -429,17 +447,29 @@
V 85
/svn/!svn/ver/2928/trunk/db/migrate/20091017214611_add_missing_indexes_to_journals.rb
END
+041_rename_comment_to_comments.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/482/trunk/db/migrate/041_rename_comment_to_comments.rb
+END
20091017214107_add_missing_indexes_to_custom_fields.rb
K 25
svn:wc:ra_dav:version-url
V 90
/svn/!svn/ver/2928/trunk/db/migrate/20091017214107_add_missing_indexes_to_custom_fields.rb
END
-041_rename_comment_to_comments.rb
+089_add_attachments_description.rb
K 25
svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/482/trunk/db/migrate/041_rename_comment_to_comments.rb
+V 70
+/svn/!svn/ver/1180/trunk/db/migrate/089_add_attachments_description.rb
+END
+067_create_wiki_redirects.rb
+K 25
+svn:wc:ra_dav:version-url
+V 63
+/svn/!svn/ver/720/trunk/db/migrate/067_create_wiki_redirects.rb
END
20091017214750_add_missing_indexes_to_custom_fields_trackers.rb
K 25
@@ -447,41 +477,41 @@
V 99
/svn/!svn/ver/2928/trunk/db/migrate/20091017214750_add_missing_indexes_to_custom_fields_trackers.rb
END
-067_create_wiki_redirects.rb
-K 25
-svn:wc:ra_dav:version-url
-V 63
-/svn/!svn/ver/720/trunk/db/migrate/067_create_wiki_redirects.rb
-END
-089_add_attachments_description.rb
-K 25
-svn:wc:ra_dav:version-url
-V 70
-/svn/!svn/ver/1180/trunk/db/migrate/089_add_attachments_description.rb
-END
103_set_custom_fields_editable.rb
K 25
svn:wc:ra_dav:version-url
V 69
/svn/!svn/ver/2279/trunk/db/migrate/103_set_custom_fields_editable.rb
END
+20110226120132_change_auth_sources_account_password_limit.rb
+K 25
+svn:wc:ra_dav:version-url
+V 96
+/svn/!svn/ver/4950/trunk/db/migrate/20110226120132_change_auth_sources_account_password_limit.rb
+END
094_change_projects_homepage_limit.rb
K 25
svn:wc:ra_dav:version-url
V 73
/svn/!svn/ver/1457/trunk/db/migrate/094_change_projects_homepage_limit.rb
END
+093_add_wiki_pages_protected.rb
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/1415/trunk/db/migrate/093_add_wiki_pages_protected.rb
+END
039_create_watchers.rb
K 25
svn:wc:ra_dav:version-url
V 57
/svn/!svn/ver/454/trunk/db/migrate/039_create_watchers.rb
END
-093_add_wiki_pages_protected.rb
+083_add_messages_sticky.rb
K 25
svn:wc:ra_dav:version-url
-V 67
-/svn/!svn/ver/1415/trunk/db/migrate/093_add_wiki_pages_protected.rb
+V 61
+/svn/!svn/ver/926/trunk/db/migrate/083_add_messages_sticky.rb
END
060_change_changesets_committer_limit.rb
K 25
@@ -489,12 +519,6 @@
V 76
/svn/!svn/ver/1222/trunk/db/migrate/060_change_changesets_committer_limit.rb
END
-083_add_messages_sticky.rb
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/926/trunk/db/migrate/083_add_messages_sticky.rb
-END
069_add_issues_estimated_hours.rb
K 25
svn:wc:ra_dav:version-url
@@ -561,18 +585,18 @@
V 87
/svn/!svn/ver/1938/trunk/db/migrate/099_add_delete_wiki_pages_attachments_permission.rb
END
+098_set_topic_authors_as_watchers.rb
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2415/trunk/db/migrate/098_set_topic_authors_as_watchers.rb
+END
059_add_roles_assignable.rb
K 25
svn:wc:ra_dav:version-url
V 62
/svn/!svn/ver/649/trunk/db/migrate/059_add_roles_assignable.rb
END
-098_set_topic_authors_as_watchers.rb
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/2415/trunk/db/migrate/098_set_topic_authors_as_watchers.rb
-END
013_create_queries.rb
K 25
svn:wc:ra_dav:version-url
@@ -585,18 +609,18 @@
V 74
/svn/!svn/ver/674/trunk/db/migrate/049_add_wiki_destroy_page_permission.rb
END
+040_create_changesets_issues.rb
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/473/trunk/db/migrate/040_create_changesets_issues.rb
+END
048_allow_null_version_effective_date.rb
K 25
svn:wc:ra_dav:version-url
V 76
/svn/!svn/ver/1140/trunk/db/migrate/048_allow_null_version_effective_date.rb
END
-040_create_changesets_issues.rb
-K 25
-svn:wc:ra_dav:version-url
-V 66
-/svn/!svn/ver/473/trunk/db/migrate/040_create_changesets_issues.rb
-END
085_add_role_tracker_old_status_index_to_workflows.rb
K 25
svn:wc:ra_dav:version-url
@@ -621,29 +645,35 @@
V 81
/svn/!svn/ver/1236/trunk/db/migrate/092_change_changes_from_revision_to_string.rb
END
+20110223180944_add_users_salt.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4936/trunk/db/migrate/20110223180944_add_users_salt.rb
+END
20090214190337_add_watchers_user_id_type_index.rb
K 25
svn:wc:ra_dav:version-url
V 85
/svn/!svn/ver/2466/trunk/db/migrate/20090214190337_add_watchers_user_id_type_index.rb
END
+20091017212457_add_missing_indexes_to_custom_fields_projects.rb
+K 25
+svn:wc:ra_dav:version-url
+V 99
+/svn/!svn/ver/2928/trunk/db/migrate/20091017212457_add_missing_indexes_to_custom_fields_projects.rb
+END
054_add_changesets_scmid.rb
K 25
svn:wc:ra_dav:version-url
V 62
/svn/!svn/ver/559/trunk/db/migrate/054_add_changesets_scmid.rb
END
-20091017212457_add_missing_indexes_to_custom_fields_projects.rb
+097_add_view_wiki_edits_permission.rb
K 25
svn:wc:ra_dav:version-url
-V 99
-/svn/!svn/ver/2928/trunk/db/migrate/20091017212457_add_missing_indexes_to_custom_fields_projects.rb
-END
-20091017213716_add_missing_indexes_to_member_roles.rb
-K 25
-svn:wc:ra_dav:version-url
-V 89
-/svn/!svn/ver/2928/trunk/db/migrate/20091017213716_add_missing_indexes_to_member_roles.rb
+V 73
+/svn/!svn/ver/1896/trunk/db/migrate/097_add_view_wiki_edits_permission.rb
END
065_add_settings_updated_on.rb
K 25
@@ -651,11 +681,11 @@
V 65
/svn/!svn/ver/685/trunk/db/migrate/065_add_settings_updated_on.rb
END
-097_add_view_wiki_edits_permission.rb
+20091017213716_add_missing_indexes_to_member_roles.rb
K 25
svn:wc:ra_dav:version-url
-V 73
-/svn/!svn/ver/1896/trunk/db/migrate/097_add_view_wiki_edits_permission.rb
+V 89
+/svn/!svn/ver/2928/trunk/db/migrate/20091017213716_add_missing_indexes_to_member_roles.rb
END
20091108092559_add_versions_status.rb
K 25
@@ -669,6 +699,12 @@
V 85
/svn/!svn/ver/2928/trunk/db/migrate/20091017213228_add_missing_indexes_to_watchers.rb
END
+20110228000100_copy_repositories_log_encoding.rb
+K 25
+svn:wc:ra_dav:version-url
+V 84
+/svn/!svn/ver/4981/trunk/db/migrate/20110228000100_copy_repositories_log_encoding.rb
+END
063_add_roles_permissions.rb
K 25
svn:wc:ra_dav:version-url
@@ -681,17 +717,23 @@
V 73
/svn/!svn/ver/2869/trunk/db/migrate/20090704172350_populate_users_type.rb
END
+20090503121505_populate_member_roles.rb
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/2729/trunk/db/migrate/20090503121505_populate_member_roles.rb
+END
052_add_changes_revision.rb
K 25
svn:wc:ra_dav:version-url
V 62
/svn/!svn/ver/559/trunk/db/migrate/052_add_changes_revision.rb
END
-20090503121505_populate_member_roles.rb
+050_add_wiki_attachments_permissions.rb
K 25
svn:wc:ra_dav:version-url
-V 75
-/svn/!svn/ver/2729/trunk/db/migrate/20090503121505_populate_member_roles.rb
+V 74
+/svn/!svn/ver/674/trunk/db/migrate/050_add_wiki_attachments_permissions.rb
END
062_insert_builtin_roles.rb
K 25
@@ -699,11 +741,11 @@
V 62
/svn/!svn/ver/674/trunk/db/migrate/062_insert_builtin_roles.rb
END
-050_add_wiki_attachments_permissions.rb
+104_add_projects_lft_and_rgt.rb
K 25
svn:wc:ra_dav:version-url
-V 74
-/svn/!svn/ver/674/trunk/db/migrate/050_add_wiki_attachments_permissions.rb
+V 67
+/svn/!svn/ver/2304/trunk/db/migrate/104_add_projects_lft_and_rgt.rb
END
074_add_auth_sources_tls.rb
K 25
@@ -711,12 +753,6 @@
V 62
/svn/!svn/ver/845/trunk/db/migrate/074_add_auth_sources_tls.rb
END
-104_add_projects_lft_and_rgt.rb
-K 25
-svn:wc:ra_dav:version-url
-V 67
-/svn/!svn/ver/2304/trunk/db/migrate/104_add_projects_lft_and_rgt.rb
-END
20091114105931_add_view_issues_permission.rb
K 25
svn:wc:ra_dav:version-url
@@ -729,18 +765,18 @@
V 82
/svn/!svn/ver/2928/trunk/db/migrate/20091017214336_add_missing_indexes_to_users.rb
END
+082_add_messages_locked.rb
+K 25
+svn:wc:ra_dav:version-url
+V 61
+/svn/!svn/ver/926/trunk/db/migrate/082_add_messages_locked.rb
+END
20091017213113_add_missing_indexes_to_enumerations.rb
K 25
svn:wc:ra_dav:version-url
V 89
/svn/!svn/ver/2928/trunk/db/migrate/20091017213113_add_missing_indexes_to_enumerations.rb
END
-082_add_messages_locked.rb
-K 25
-svn:wc:ra_dav:version-url
-V 61
-/svn/!svn/ver/926/trunk/db/migrate/082_add_messages_locked.rb
-END
20091017213444_add_missing_indexes_to_tokens.rb
K 25
svn:wc:ra_dav:version-url
@@ -879,12 +915,24 @@
V 77
/svn/!svn/ver/674/trunk/db/migrate/056_add_repositories_changes_permission.rb
END
+20110224000000_add_repositories_path_encoding.rb
+K 25
+svn:wc:ra_dav:version-url
+V 84
+/svn/!svn/ver/4940/trunk/db/migrate/20110224000000_add_repositories_path_encoding.rb
+END
032_create_time_entries.rb
K 25
svn:wc:ra_dav:version-url
V 61
/svn/!svn/ver/479/trunk/db/migrate/032_create_time_entries.rb
END
+20110226120112_change_repositories_password_limit.rb
+K 25
+svn:wc:ra_dav:version-url
+V 88
+/svn/!svn/ver/4950/trunk/db/migrate/20110226120112_change_repositories_password_limit.rb
+END
068_create_enabled_modules.rb
K 25
svn:wc:ra_dav:version-url
@@ -1059,6 +1107,12 @@
V 57
/svn/!svn/ver/167/trunk/db/migrate/017_create_settings.rb
END
+20110227125750_change_journal_details_values_to_text.rb
+K 25
+svn:wc:ra_dav:version-url
+V 91
+/svn/!svn/ver/4954/trunk/db/migrate/20110227125750_change_journal_details_values_to_text.rb
+END
095_add_wiki_pages_parent_id.rb
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/entries
--- a/db/migrate/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/db/migrate/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/db/migrate
http://redmine.rubyforge.org/svn
-2011-01-01T23:08:49.766359Z
-4610
-jbbarth
+2011-03-01T10:14:47.182368Z
+4981
+tmaruyama
@@ -32,7 +32,7 @@
-2010-11-19T13:04:50.884918Z
+2011-03-03T11:05:12.000000Z
21dc29619a0cfd0f3aa12d77cc5cb132
2010-11-07T14:17:35.749175Z
4383
@@ -66,7 +66,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
e1234fbaef167ddc0013ffe1d3bc67b9
2007-11-04T11:40:17.595469Z
881
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
0b2c38434ec4b25c41f50963a46a3bc6
2007-06-12T20:12:05.590809Z
559
@@ -134,7 +134,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
dba48c03009eb5bcbd2f686a37c42147
2009-10-17T22:23:29.892475Z
2928
@@ -168,7 +168,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
b17611805f3b447ec0f0b703ea8b6d10
2008-11-10T18:59:06.897210Z
2006
@@ -202,7 +202,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
23ebbc94eb59590d0f0b200b4b38289b
2007-08-29T16:52:35.680643Z
674
@@ -236,7 +236,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
ffabca1301a0ade41918ec9d6618fda0
2008-07-04T17:58:14.743502Z
1623
@@ -270,7 +270,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
e6ff0ff9c004d9688e79b550991ec109
2007-08-29T16:52:35.680643Z
674
@@ -304,7 +304,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
39c994e2469a6dfb97fa50cf595439e8
2007-04-25T15:06:20.062636Z
479
@@ -338,7 +338,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
828df977f9e16943bc74595c65774c62
2007-03-10T15:09:49.115269Z
323
@@ -372,7 +372,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
eea8e3f0a1fe28e8c686af190259a3d6
2009-09-12T08:36:46.650954Z
2869
@@ -406,7 +406,7 @@
-2010-11-19T13:04:50.884918Z
+2011-03-03T11:05:12.000000Z
be338f41292d95bb7ba3caa125999de0
2010-11-14T12:33:14.198318Z
4402
@@ -440,7 +440,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
06c8b504bcdd08c2f5dcf14a0b927420
2007-11-20T15:40:16.305800Z
919
@@ -474,7 +474,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
283fb200008f4dae98e0b3d46f0b97aa
2009-10-17T22:23:29.892475Z
2928
@@ -508,7 +508,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
da329a16de705c673418c18119f788d8
2007-08-29T16:52:35.680643Z
674
@@ -542,7 +542,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:12.000000Z
627e34913535f16f767133cbdc5b57f0
2010-11-20T09:55:06.580420Z
4413
@@ -576,7 +576,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
5bb1427a275abe1f2ec4b6b03a087cd8
2006-12-03T19:55:45.161980Z
62
@@ -604,13 +604,47 @@
281
+025_add_search_permission.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+42937036f9c414f7d9b028f629b1ce20
+2007-08-29T16:52:35.680643Z
+674
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+412
+
023_add_tracker_is_in_roadmap.rb
file
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
f4c10807bb47b69af35e9402966089f1
2007-02-04T09:18:40.598564Z
228
@@ -638,47 +672,13 @@
230
-025_add_search_permission.rb
-file
-
-
-
-
-2010-09-23T14:37:44.883725Z
-42937036f9c414f7d9b028f629b1ce20
-2007-08-29T16:52:35.680643Z
-674
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-412
-
20091220183727_add_index_to_settings_name.rb
file
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
c5d86ec3cda95998a3fb590c6f492b6b
2009-12-20T19:13:22.787652Z
3206
@@ -712,7 +712,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
b2f88560d10a9676bdb65e18f9a13d65
2009-10-17T22:23:29.892475Z
2928
@@ -746,7 +746,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
a269e98b11a4d0d865c82328d7af5663
2007-03-25T12:12:15.060977Z
377
@@ -780,7 +780,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
69a42a62536b1f435ce1080ceccb4c75
2009-01-17T11:18:04.652409Z
2276
@@ -814,7 +814,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
84bec26b6eaebc64c437c5a3b4784a94
2009-10-17T22:23:29.892475Z
2928
@@ -848,7 +848,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
53ee6af48c18534db0ffdd4fa5c5df7f
2008-09-13T16:31:11.005265Z
1814
@@ -882,7 +882,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
d343c3ba8f04d1cc71f20c9860d5907b
2009-05-30T23:30:36.923541Z
2777
@@ -916,7 +916,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
611baff063a1d909ba581aa98018cae7
2008-03-12T20:28:49.748698Z
1236
@@ -950,7 +950,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
f1b96e04888c0a48bf29dd0556ba8027
2007-08-29T16:52:35.680643Z
674
@@ -984,7 +984,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
72e8d36a80b63657037f175b368f2e2c
2009-10-17T22:23:29.892475Z
2928
@@ -1018,7 +1018,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
891f793e4f2ab50f57b8488c764ceff1
2008-07-04T17:58:14.743502Z
1623
@@ -1052,7 +1052,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
82595f307b6fe5053151a681b737f063
2007-04-25T15:06:20.062636Z
479
@@ -1080,47 +1080,13 @@
515
-108_add_identity_url_to_users.rb
-file
-
-
-
-
-2010-09-23T14:37:44.915753Z
-b175e6c85c5faf4b5d2f092f65338b10
-2009-02-11T19:06:55.627694Z
-2440
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-187
-
20090614091200_fix_messages_sticky_null.rb
file
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
c460bb38faa03667fc34a3b131ec40df
2009-06-14T09:19:20.900273Z
2787
@@ -1148,13 +1114,47 @@
176
+108_add_identity_url_to_users.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+b175e6c85c5faf4b5d2f092f65338b10
+2009-02-11T19:06:55.627694Z
+2440
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+187
+
20091220184736_add_indexes_to_issue_status.rb
file
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
7aa35de55587b897fea800e8044039a8
2009-12-20T19:13:22.787652Z
3206
@@ -1188,7 +1188,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
e4eff12465b879f063cac04a709438b9
2010-08-22T18:42:00.112555Z
4013
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
0492f13cf6f16f90603fdd82c388bace
2007-05-08T09:26:57.307537Z
518
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
9a69054334fcbc6b72eb8b5ae9957129
2009-12-27T11:57:13.519273Z
3254
@@ -1290,7 +1290,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
b17259dfa6f46844e0f86b110577fbc6
2008-03-09T15:36:47.697904Z
1220
@@ -1324,7 +1324,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
e00a737604d0be6b94c92236e4f378eb
2009-05-10T10:54:31.775505Z
2726
@@ -1358,7 +1358,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
2fb7c5a95c8ed07756c3fbb917c98230
2007-10-22T21:07:13.432482Z
864
@@ -1392,7 +1392,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
1702102b56ee973066c86d659252a366
2007-08-29T16:52:35.680643Z
674
@@ -1420,13 +1420,47 @@
751
+20110223180953_salt_user_passwords.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+f72892b525076a1ffaf1f2548822d560
+2011-02-23T17:27:31.762248Z
+4936
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+384
+
038_add_custom_field_is_filter.rb
file
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
0c630c7ad4fbe9ccbb897363a422efa6
2007-04-17T10:53:20.697217Z
447
@@ -1460,7 +1494,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
6e9fdd6731ba51e864563938c05ed9da
2010-02-21T14:40:00.085842Z
3471
@@ -1494,7 +1528,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
8e58d8ec43e40266d62fd64b4b6a9a09
2007-05-13T17:09:56.765659Z
529
@@ -1528,7 +1562,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
6350cf7f18c7d61d54bf2bfa55e108d3
2009-12-25T17:13:58.090736Z
3240
@@ -1556,13 +1590,47 @@
442
+20110220160626_add_workflows_assignee_and_author.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+8e7a8d0f81e207e3d673703de33fdb69
+2011-02-20T15:38:07.840581Z
+4895
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+495
+
030_add_projects_feeds_permissions.rb
file
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
3216f04b6b84aaa6d29bc0f3e5d8c462
2007-08-29T16:52:35.680643Z
674
@@ -1596,7 +1664,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
fb852fdf1ab4266ab05a36ff105b7ceb
2007-10-22T21:07:13.432482Z
864
@@ -1624,13 +1692,47 @@
607
+20110228000000_add_repositories_log_encoding.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+dbe736040dcb44e3db78219ecfdb3d62
+2011-03-01T09:47:06.578325Z
+4980
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+237
+
076_allow_null_position.rb
file
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
9f0c1dd813015fc37cd47062fe15ef91
2008-02-12T21:11:16.312726Z
1140
@@ -1664,7 +1766,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
e08dfbd6aca488a1513bfe7c59e2da90
2009-10-17T22:23:29.892475Z
2928
@@ -1698,7 +1800,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
767d76b65ff41dd9860747d14bb24ee1
2009-12-20T19:13:22.787652Z
3206
@@ -1732,7 +1834,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
93159e216a0265b8f239566bfb91fd8e
2009-10-17T22:23:29.892475Z
2928
@@ -1766,7 +1868,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
5fa98acba6010a7450722133bfb66962
2010-07-24T00:19:32.307471Z
3860
@@ -1800,7 +1902,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
eeff80bd1cee52d49f1eb78fab035adf
2009-10-17T22:23:29.892475Z
2928
@@ -1834,7 +1936,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
09b6720db5ea81c8e22aff9dd89fc0bd
2009-10-17T22:23:29.892475Z
2928
@@ -1868,7 +1970,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
b392b3c84d6d7b8bba99011778f5b54e
2007-11-20T20:29:03.757553Z
920
@@ -1902,7 +2004,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
2ae2d679057fe2db7b7a8bdabc2cbf6d
2009-10-17T22:23:29.892475Z
2928
@@ -1936,7 +2038,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
01a97aa31f8b9917a84790f23e0e90d1
2009-10-21T22:34:34.183882Z
2947
@@ -1970,7 +2072,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
af4786659f25d96a43468cdc4bcfae44
2009-02-11T19:06:50.454280Z
2439
@@ -2004,7 +2106,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
82e35d32f60c71db17de62592693c737
2007-10-20T12:47:05.860183Z
855
@@ -2038,7 +2140,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
3ac5fb29973ffa0ca94ac90387c73b78
2007-08-29T16:52:35.680643Z
674
@@ -2066,13 +2168,47 @@
895
+037_add_project_identifier.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+e61809aaf1ac8a2a290c4574ed598ff0
+2007-04-02T06:29:09.277122Z
+397
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+202
+
073_add_enumerations_is_default.rb
file
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
db7f5c6597e13933c96cb58cbbd1f0bd
2007-10-05T17:44:15.414646Z
803
@@ -2100,47 +2236,13 @@
236
-037_add_project_identifier.rb
-file
-
-
-
-
-2010-09-23T14:37:44.887754Z
-e61809aaf1ac8a2a290c4574ed598ff0
-2007-04-02T06:29:09.277122Z
-397
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-202
-
20100313171051_add_index_on_issues_nested_set.rb
file
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
243f136f05a508fff7ca52423f65c959
2010-03-13T17:17:10.453825Z
3578
@@ -2174,7 +2276,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
e5f0fe89be9a00fe1f8b246bde88fca1
2007-10-01T08:44:17.920088Z
782
@@ -2208,7 +2310,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
bb79c723b9d9fdabe49ed18ebb8a6caf
2009-12-11T18:48:34.197724Z
3151
@@ -2242,7 +2344,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
b8b7c422c3d666340afaec3a52c5d6a4
2007-10-22T21:07:13.432482Z
864
@@ -2270,81 +2372,13 @@
275
-20100129193813_update_mail_notification_values.rb
-file
-
-
-
-
-2011-01-13T14:09:38.000000Z
-d2251c92048ec4169e2c220f1510d803
-2010-11-20T09:55:06.580420Z
-4413
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-241
-
-001_setup.rb
-file
-
-
-
-
-2010-09-23T14:37:44.875728Z
-b740a77ff87e6390f7ad86eaf0710040
-2008-08-25T16:35:20.899166Z
-1764
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-18072
-
20091010093521_fix_users_custom_values.rb
file
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
55350d451c622488f9358f7bbe12d4de
2009-10-10T10:16:00.250819Z
2905
@@ -2372,13 +2406,47 @@
276
+001_setup.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+b740a77ff87e6390f7ad86eaf0710040
+2008-08-25T16:35:20.899166Z
+1764
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18072
+
016_add_repositories_permissions.rb
file
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
e770aa6387bb4737804d5024e743cd25
2007-08-29T16:52:35.680643Z
674
@@ -2406,13 +2474,47 @@
1658
+20100129193813_update_mail_notification_values.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+d2251c92048ec4169e2c220f1510d803
+2010-11-20T09:55:06.580420Z
+4413
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+241
+
20091017214611_add_missing_indexes_to_journals.rb
file
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
4cedb1faff3054d9be6250b589882b50
2009-10-17T22:23:29.892475Z
2928
@@ -2446,7 +2548,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
4901b560613f6a0ae3e5df5bcf2dd11c
2007-04-25T16:48:01.299251Z
482
@@ -2480,7 +2582,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
0e1e45e51997617f8672e6d0d5ed8e51
2009-10-17T22:23:29.892475Z
2928
@@ -2514,7 +2616,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
f60a0c1f633a6ff65fb2734173b57fe4
2008-02-29T19:46:58.834023Z
1180
@@ -2548,7 +2650,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
31acec69fd7efa0c26dec61f860b0c85
2007-09-09T17:05:38.846724Z
720
@@ -2582,7 +2684,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
871a600c06a6965f52c63177a82fbe15
2009-10-17T22:23:29.892475Z
2928
@@ -2616,7 +2718,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
320b459ced6ed78d09a3743ad60b3200
2009-01-18T10:54:08.545108Z
2279
@@ -2644,13 +2746,47 @@
270
+20110226120132_change_auth_sources_account_password_limit.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+fccbbb0aadf883abb7a337961c2199e4
+2011-02-26T13:09:25.657748Z
+4950
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+298
+
094_change_projects_homepage_limit.rb
file
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
cf04e90903f0d068e4503cb465026ef7
2008-05-25T13:37:29.456358Z
1457
@@ -2684,7 +2820,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
5be8fe0eee7c90901f9ba49030412f40
2008-05-04T15:05:38.117137Z
1415
@@ -2718,7 +2854,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
07bf6636d0acf3ec84b38648bbe2c07a
2007-04-21T12:09:07.794422Z
454
@@ -2752,7 +2888,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
be494b64b18017ebe3ccdff9a34abdbd
2007-11-24T12:25:07.449637Z
926
@@ -2786,7 +2922,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
0abbef63f1f391688df012906a94877b
2008-03-09T18:25:37.323226Z
1222
@@ -2820,7 +2956,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
a574e8a4f8f80a464ca2b8bcbd43287f
2007-09-15T14:54:15.583528Z
731
@@ -2854,7 +2990,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
cd7530e8030bf9e675ca5922c2494d83
2007-03-10T15:09:49.115269Z
323
@@ -2888,7 +3024,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:12.000000Z
7a04693ea608e342b463c73c461b2da0
2011-01-01T23:08:49.766359Z
4610
@@ -2922,7 +3058,7 @@
-2010-09-23T14:37:44.931783Z
+2011-03-03T11:05:12.000000Z
d1a11dec6b93af060f84f9b2a1e36421
2010-03-13T14:56:49.379682Z
3573
@@ -2956,7 +3092,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
f1661157bd19c5fd4f7a4244745571bf
2007-08-29T16:52:35.680643Z
674
@@ -2990,7 +3126,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
8381c8e67d31387ec86e821025f5ae8b
2007-03-09T18:03:31.183366Z
319
@@ -3024,7 +3160,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
f8359b001e33e9508d158589c81f7bee
2007-02-03T12:57:33.179243Z
223
@@ -3058,7 +3194,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
63b0f6e295adf5f1d1eee803e4cc6287
2009-01-24T11:48:38.049684Z
2305
@@ -3092,7 +3228,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
668305a363cf6997eb9f2259d00cc26d
2009-03-19T00:01:24.358528Z
2599
@@ -3126,7 +3262,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
c8a6c8715446f22f6a3f4e2040dd873d
2007-11-19T22:28:43.818228Z
917
@@ -3160,7 +3296,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
7f2d97409681d462705d00de37e78476
2008-10-18T10:07:49.851665Z
1938
@@ -3194,7 +3330,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
d885a13afc268875b79c4cbf9524f3e8
2009-02-08T17:24:39.400993Z
2415
@@ -3228,7 +3364,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
aa67262417630fc088eb57df8d2dd9d3
2007-08-16T17:47:41.639068Z
649
@@ -3262,7 +3398,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
528b6095ca0376cecdd966ddd0b345c4
2006-12-16T13:37:32.633739Z
95
@@ -3296,7 +3432,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
2d559ef99ec458f472f5c22c0a8bf5f4
2007-08-29T16:52:35.680643Z
674
@@ -3330,7 +3466,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
dc28d8674409819b866f6d878b33d288
2007-04-24T13:57:27.960164Z
473
@@ -3364,7 +3500,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
a7d8c7f023a76a8dbb0d0950797c08f8
2008-02-12T21:11:16.312726Z
1140
@@ -3398,7 +3534,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
ba997a6179b5ab0f421b149c54725357
2008-01-15T20:40:59.035860Z
1069
@@ -3432,7 +3568,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
e256cf4a148fd48c409ea6983d569e7d
2009-10-17T22:23:29.892475Z
2928
@@ -3466,7 +3602,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
02bfb0be1b161bd757a75f69bfe79bc7
2008-03-09T18:25:37.323226Z
1222
@@ -3500,7 +3636,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
f77d77e81db6f6ac5bb3844255f8ab33
2008-03-12T20:28:49.748698Z
1236
@@ -3528,13 +3664,47 @@
218
+20110223180944_add_users_salt.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+6dd75e3da92087226c787a4edc76032e
+2011-02-23T17:27:31.762248Z
+4936
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+176
+
20090214190337_add_watchers_user_id_type_index.rb
file
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
5d4b3c5646cc6c136e706ac5d7e0b377
2009-02-14T19:06:44.812480Z
2466
@@ -3568,7 +3738,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
90bb42121a57db140491ecb2a0763d00
2009-10-17T22:23:29.892475Z
2928
@@ -3602,7 +3772,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
b61285ac64245c1571e536a8c7e05a94
2007-06-12T20:12:05.590809Z
559
@@ -3636,7 +3806,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
e00f8e7739afbb2d07a21decd1422a0a
2008-09-21T20:38:36.877257Z
1896
@@ -3670,7 +3840,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
708c039fe82ad86e9930122cac4757b1
2007-08-31T17:45:32.784580Z
685
@@ -3704,7 +3874,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
4bfd0623186217eee4346313f148ea7a
2009-10-17T22:23:29.892475Z
2928
@@ -3738,7 +3908,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
71d997c1a32c4ba3dd4b31a34885fc7a
2009-12-29T14:53:29.047095Z
3259
@@ -3772,7 +3942,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
e8d897645c7176e7fd23f1578b882b5f
2009-10-17T22:23:29.892475Z
2928
@@ -3800,13 +3970,47 @@
308
+20110228000100_copy_repositories_log_encoding.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+22941cc81d233c2602be827d70670c10
+2011-03-01T10:14:47.182368Z
+4981
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+497
+
063_add_roles_permissions.rb
file
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
9ddb69b602d6d3ee5da01f8a9e9f78db
2007-08-29T16:52:35.680643Z
674
@@ -3840,7 +4044,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
055f00efdb87ff8934c36d5eb99b741f
2009-09-12T08:36:46.650954Z
2869
@@ -3874,7 +4078,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
27279bf98b3155975ce59a359d0a29aa
2009-05-10T11:18:09.335765Z
2729
@@ -3908,7 +4112,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
3af07746c4eab3a1716744971ac26ffc
2007-06-12T20:12:05.590809Z
559
@@ -3942,7 +4146,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
67d6e1898c150c8df560cb2ce8a2f2d7
2007-08-29T16:52:35.680643Z
674
@@ -3976,7 +4180,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
596f1acbdbc340c39d19f19f7b4cb6c6
2007-08-29T16:52:35.680643Z
674
@@ -4010,7 +4214,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
46effb13ff7d1a62b7b8c93afc7da9c8
2009-01-24T11:31:15.122844Z
2304
@@ -4044,7 +4248,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
e7e163729c56cd9807450574d2beeda8
2007-10-16T19:19:10.481742Z
845
@@ -4072,13 +4276,47 @@
215
+20091114105931_add_view_issues_permission.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+886411cb32a18ec492acc798194210af
+2009-11-14T12:08:47.175978Z
+3039
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+262
+
082_add_messages_locked.rb
file
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
4ed0fffe6158eeda69a021c362f61157
2007-11-24T12:25:07.449637Z
926
@@ -4112,7 +4350,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
22e6afc0519b7befbae2c4a4433c20f5
2009-10-17T22:23:29.892475Z
2928
@@ -4146,7 +4384,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
8251942eb30b7c709ac6e3dc1ab5eedb
2009-10-17T22:23:29.892475Z
2928
@@ -4174,39 +4412,39 @@
267
-20091114105931_add_view_issues_permission.rb
-file
-
-
-
-
-2010-09-23T14:37:44.927757Z
-886411cb32a18ec492acc798194210af
-2009-11-14T12:08:47.175978Z
-3039
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-262
+20091017213444_add_missing_indexes_to_tokens.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+4c220f0316e1b04fa8350f0309698f24
+2009-10-17T22:23:29.892475Z
+2928
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+172
20090503121501_create_member_roles.rb
file
@@ -4214,7 +4452,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
16792ab92fda3a70516d55a011c01fce
2009-05-10T10:54:31.775505Z
2726
@@ -4242,39 +4480,39 @@
274
-20091017213444_add_missing_indexes_to_tokens.rb
-file
-
-
-
-
-2010-09-23T14:37:44.923753Z
-4c220f0316e1b04fa8350f0309698f24
-2009-10-17T22:23:29.892475Z
-2928
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-172
+057_add_versions_wiki_page_title.rb
+file
+
+
+
+
+2011-03-03T11:05:12.000000Z
+6a4944f1162c00f2405200fb38773886
+2007-06-14T18:26:27.748707Z
+564
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+202
20090323224724_add_type_to_enumerations.rb
file
@@ -4282,7 +4520,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
0c0cee6df5f26eb3378c9b22a1162a5a
2009-05-30T23:30:36.923541Z
2777
@@ -4310,47 +4548,13 @@
185
-057_add_versions_wiki_page_title.rb
-file
-
-
-
-
-2010-09-23T14:37:44.891758Z
-6a4944f1162c00f2405200fb38773886
-2007-06-14T18:26:27.748707Z
-564
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-202
-
004_export_pdf.rb
file
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
6e59569f25a79a0a75797fa4ebb60936
2007-08-29T16:52:35.680643Z
674
@@ -4384,7 +4588,7 @@
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
00a100c0ca092df63e8542fc6d0bc78c
2007-03-18T15:48:05.787958Z
344
@@ -4418,7 +4622,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
ee71a22f869c9dbee6f322ad25f45934
2009-12-06T10:28:20.099964Z
3123
@@ -4452,7 +4656,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
21d40b6390e67409bad1d4525c26accb
2009-10-17T22:23:29.892475Z
2928
@@ -4486,7 +4690,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
1b013e3bbb624874d78eaf3332ccb3d5
2007-03-26T16:41:54.592250Z
383
@@ -4520,7 +4724,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
e658f4ed3c99264bf4c036b87b8cf39f
2007-05-27T17:42:04.537618Z
549
@@ -4554,7 +4758,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
4d0267b0a9d4cb2ec782d10247a4c33f
2009-01-24T11:31:15.122844Z
2304
@@ -4588,7 +4792,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
eef7b68156646d86ea515aed9aa525ed
2009-10-17T22:23:29.892475Z
2928
@@ -4622,7 +4826,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
1567606924d88ae66474e848de86577a
2009-10-21T22:34:28.905707Z
2946
@@ -4656,7 +4860,7 @@
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
ccfd197b34214a0d74d952aa65dcd5a6
2008-03-09T18:25:37.323226Z
1222
@@ -4690,7 +4894,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
f5ae107f30300b547d535ddc5b1b999c
2009-09-12T08:36:46.650954Z
2869
@@ -4724,7 +4928,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
9cef93921160d49f5d3aa4968ecc4eb1
2007-10-22T21:07:13.432482Z
864
@@ -4758,7 +4962,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
6c70abafef3dc834c722ed7135d6a7df
2009-10-17T22:23:29.892475Z
2928
@@ -4792,7 +4996,7 @@
-2010-11-19T13:04:50.888959Z
+2011-03-03T11:05:12.000000Z
0000368c453072e56da62defbc80441e
2010-11-14T12:33:14.198318Z
4402
@@ -4826,7 +5030,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
cf095d9afbc6429b8d759eb737a0781f
2009-10-21T22:34:34.183882Z
2947
@@ -4860,7 +5064,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
9aa91971db6c6f14ddd1ae768085b0a8
2009-10-17T22:23:29.892475Z
2928
@@ -4894,7 +5098,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
3e5f2220de578b306ce323997c495db6
2006-11-12T18:50:30.642587Z
44
@@ -4928,7 +5132,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
0fb07bc55cf61720437b40e4ae244e05
2006-12-03T20:51:17.306207Z
63
@@ -4962,7 +5166,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
417051f45603460a17909e4a5029c779
2007-08-29T16:52:35.680643Z
674
@@ -4990,13 +5194,47 @@
443
+20110224000000_add_repositories_path_encoding.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+7cd80bdf7897357500a46e87ed82b84b
+2011-02-24T05:58:37.876075Z
+4940
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+240
+
032_create_time_entries.rb
file
-2010-09-23T14:37:44.883725Z
+2011-03-03T11:05:12.000000Z
a62243f0bc2f1b1b11a47da172d011a5
2007-04-25T15:06:20.062636Z
479
@@ -5024,13 +5262,47 @@
966
+20110226120112_change_repositories_password_limit.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+e809364786bdcce227961318e7428700
+2011-02-26T13:09:25.657748Z
+4950
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+276
+
068_create_enabled_modules.rb
file
-2010-09-23T14:37:44.895727Z
+2011-03-03T11:05:12.000000Z
96962340557b9a1f70a215d88b07c2c1
2007-09-14T11:34:08.234701Z
725
@@ -5064,7 +5336,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
8ad3f0193d5e3b8d52293bbf2828c2d2
2009-10-17T22:23:29.892475Z
2928
@@ -5098,7 +5370,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
fd6ccbccc44ceccab8de7c3c48696ecc
2009-10-17T22:23:29.892475Z
2928
@@ -5132,7 +5404,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
1798d606a43c6a29029535c28b49beff
2007-09-04T22:07:44.613701Z
702
@@ -5166,7 +5438,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
d714e81a7a9c29b60e405233765cbd33
2007-08-29T16:52:35.680643Z
674
@@ -5200,7 +5472,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
a27ef00d6ec6b3f4dc63ad004181c10e
2008-01-20T23:38:55.025648Z
1091
@@ -5234,7 +5506,7 @@
-2010-09-23T14:37:44.875728Z
+2011-03-03T11:05:12.000000Z
497529b269185b1833b959c98db3c1d1
2007-08-29T16:52:35.680643Z
674
@@ -5268,7 +5540,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
d39d0037e4f06dfb7db18d9082608832
2009-10-17T22:23:29.892475Z
2928
@@ -5302,7 +5574,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
79d11b147c1061901a888d89c3e5029b
2009-10-17T22:23:29.892475Z
2928
@@ -5336,7 +5608,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
1cbe32e981634898d5b0f80b2c63798b
2007-12-14T18:54:55.323993Z
994
@@ -5370,7 +5642,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
717687210dcbeeebff8337561a427e70
2007-05-05T13:22:27.245135Z
506
@@ -5404,7 +5676,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
05c7ea8c5dc45498164a324f7db2887a
2006-12-10T18:35:48.564790Z
81
@@ -5438,7 +5710,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
ce38342dea044adf8b277f6483f1a742
2009-03-12T18:06:54.054174Z
2572
@@ -5472,7 +5744,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
dbeea4ad5a501200711cb4195856597e
2009-10-17T22:23:29.892475Z
2928
@@ -5506,7 +5778,7 @@
-2010-09-23T14:37:44.911755Z
+2011-03-03T11:05:12.000000Z
4c1203f40e8e7b568ddce15af4f3ad9b
2008-11-10T18:59:06.897210Z
2006
@@ -5540,7 +5812,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
c62ac2ca3e59bb91e5bb4e206abdaed1
2007-04-25T15:06:20.062636Z
479
@@ -5574,7 +5846,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
3bb4b5f081354ea7d943f0b7c6f07284
2007-08-29T16:52:35.680643Z
674
@@ -5608,7 +5880,7 @@
-2010-09-23T14:37:44.915753Z
+2011-03-03T11:05:12.000000Z
3460b737f353524921cfd9ac4199fc44
2009-03-12T19:49:39.983871Z
2580
@@ -5642,7 +5914,7 @@
-2010-09-23T14:37:44.887754Z
+2011-03-03T11:05:12.000000Z
560e67e7b88186a0e21a2f614b6d83c7
2007-08-29T16:52:35.680643Z
674
@@ -5676,7 +5948,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
c22348c101d1a03b2d808cb89b3175a5
2007-06-12T20:12:05.590809Z
559
@@ -5710,7 +5982,7 @@
-2010-09-23T14:37:44.927757Z
+2011-03-03T11:05:12.000000Z
87d90f2ce2101811b7aaf0031a74e0c1
2009-10-25T16:56:46.187627Z
2981
@@ -5744,7 +6016,7 @@
-2010-09-23T14:37:44.891758Z
+2011-03-03T11:05:12.000000Z
84fe06ac7cefc2eebba29ac872241d88
2007-06-29T17:21:37.739022Z
577
@@ -5778,7 +6050,7 @@
-2010-09-23T14:37:44.875728Z
+2011-03-03T11:05:12.000000Z
d7a9aad3796f37d70ac2ab4af9c80656
2007-08-29T16:52:35.680643Z
674
@@ -5812,7 +6084,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
defb118deb2deb23648d50da5cf71047
2006-12-24T13:38:45.881735Z
106
@@ -5846,7 +6118,7 @@
-2010-09-23T14:37:44.919754Z
+2011-03-03T11:05:12.000000Z
89cbe3b06f14ba6d9a5cda47f4239f60
2009-04-26T13:09:14.221938Z
2696
@@ -5880,7 +6152,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
f2e06da76555942fd3017134d618bbac
2007-08-29T16:52:35.680643Z
674
@@ -5914,7 +6186,7 @@
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
5ff56d564f2da50c289c1dfd90053a4b
2008-03-05T09:16:19.220849Z
1189
@@ -5948,7 +6220,7 @@
-2010-09-23T14:37:44.923753Z
+2011-03-03T11:05:12.000000Z
0ae6a6924263cf5317b539c81b952f03
2009-10-17T22:23:29.892475Z
2928
@@ -5982,7 +6254,7 @@
-2010-09-23T14:37:44.879727Z
+2011-03-03T11:05:12.000000Z
121548a48360a22daa537af42ee8902b
2007-01-21T11:50:22.864544Z
167
@@ -6010,13 +6282,47 @@
284
+20110227125750_change_journal_details_values_to_text.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+768603dc014def8d2fc0a0bb8d81ef79
+2011-02-27T13:34:41.060565Z
+4954
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+324
+
095_add_wiki_pages_parent_id.rb
file
-2010-09-23T14:37:44.899726Z
+2011-03-03T11:05:12.000000Z
e50cfa8ef5216f0f7d266dac1e38c9da
2008-07-26T11:46:24.917066Z
1698
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110220160626_add_workflows_assignee_and_author.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110220160626_add_workflows_assignee_and_author.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110223180944_add_users_salt.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110223180944_add_users_salt.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110223180953_salt_user_passwords.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110223180953_salt_user_passwords.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110226120112_change_repositories_password_limit.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110226120112_change_repositories_password_limit.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110226120132_change_auth_sources_account_password_limit.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110226120132_change_auth_sources_account_password_limit.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/prop-base/20110227125750_change_journal_details_values_to_text.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/prop-base/20110227125750_change_journal_details_values_to_text.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110220160626_add_workflows_assignee_and_author.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110220160626_add_workflows_assignee_and_author.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+class AddWorkflowsAssigneeAndAuthor < ActiveRecord::Migration
+ def self.up
+ add_column :workflows, :assignee, :boolean, :null => false, :default => false
+ add_column :workflows, :author, :boolean, :null => false, :default => false
+ Workflow.update_all("assignee = #{Workflow.connection.quoted_false}")
+ Workflow.update_all("author = #{Workflow.connection.quoted_false}")
+ end
+
+ def self.down
+ remove_column :workflows, :assignee
+ remove_column :workflows, :author
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110223180944_add_users_salt.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110223180944_add_users_salt.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddUsersSalt < ActiveRecord::Migration
+ def self.up
+ add_column :users, :salt, :string, :limit => 64
+ end
+
+ def self.down
+ remove_column :users, :salt
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110223180953_salt_user_passwords.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110223180953_salt_user_passwords.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+class SaltUserPasswords < ActiveRecord::Migration
+
+ def self.up
+ say_with_time "Salting user passwords, this may take some time..." do
+ User.salt_unsalted_passwords!
+ end
+ end
+
+ def self.down
+ # Unsalted passwords can not be restored
+ raise ActiveRecord::IrreversibleMigration, "Can't decypher salted passwords. This migration can not be rollback'ed."
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110224000000_add_repositories_path_encoding.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110224000000_add_repositories_path_encoding.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddRepositoriesPathEncoding < ActiveRecord::Migration
+ def self.up
+ add_column :repositories, :path_encoding, :string, :limit => 64, :default => nil
+ end
+
+ def self.down
+ remove_column :repositories, :path_encoding
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110226120112_change_repositories_password_limit.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110226120112_change_repositories_password_limit.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class ChangeRepositoriesPasswordLimit < ActiveRecord::Migration
+ def self.up
+ change_column :repositories, :password, :string, :limit => nil, :default => ''
+ end
+
+ def self.down
+ change_column :repositories, :password, :string, :limit => 60, :default => ''
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110226120132_change_auth_sources_account_password_limit.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110226120132_change_auth_sources_account_password_limit.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class ChangeAuthSourcesAccountPasswordLimit < ActiveRecord::Migration
+ def self.up
+ change_column :auth_sources, :account_password, :string, :limit => nil, :default => ''
+ end
+
+ def self.down
+ change_column :auth_sources, :account_password, :string, :limit => 60, :default => ''
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110227125750_change_journal_details_values_to_text.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110227125750_change_journal_details_values_to_text.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,11 @@
+class ChangeJournalDetailsValuesToText < ActiveRecord::Migration
+ def self.up
+ change_column :journal_details, :old_value, :text
+ change_column :journal_details, :value, :text
+ end
+
+ def self.down
+ change_column :journal_details, :old_value, :string
+ change_column :journal_details, :value, :string
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110228000000_add_repositories_log_encoding.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110228000000_add_repositories_log_encoding.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddRepositoriesLogEncoding < ActiveRecord::Migration
+ def self.up
+ add_column :repositories, :log_encoding, :string, :limit => 64, :default => nil
+ end
+
+ def self.down
+ remove_column :repositories, :log_encoding
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/.svn/text-base/20110228000100_copy_repositories_log_encoding.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20110228000100_copy_repositories_log_encoding.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,18 @@
+class CopyRepositoriesLogEncoding < ActiveRecord::Migration
+ def self.up
+ encoding = Setting.commit_logs_encoding.to_s.strip
+ encoding = encoding.blank? ? 'UTF-8' : encoding
+ Repository.find(:all).each do |repo|
+ scm = repo.scm_name
+ case scm
+ when 'Subversion', 'Mercurial', 'Git', 'Filesystem'
+ repo.update_attribute(:log_encoding, nil)
+ else
+ repo.update_attribute(:log_encoding, encoding)
+ end
+ end
+ end
+
+ def self.down
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110220160626_add_workflows_assignee_and_author.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110220160626_add_workflows_assignee_and_author.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+class AddWorkflowsAssigneeAndAuthor < ActiveRecord::Migration
+ def self.up
+ add_column :workflows, :assignee, :boolean, :null => false, :default => false
+ add_column :workflows, :author, :boolean, :null => false, :default => false
+ Workflow.update_all("assignee = #{Workflow.connection.quoted_false}")
+ Workflow.update_all("author = #{Workflow.connection.quoted_false}")
+ end
+
+ def self.down
+ remove_column :workflows, :assignee
+ remove_column :workflows, :author
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110223180944_add_users_salt.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110223180944_add_users_salt.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddUsersSalt < ActiveRecord::Migration
+ def self.up
+ add_column :users, :salt, :string, :limit => 64
+ end
+
+ def self.down
+ remove_column :users, :salt
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110223180953_salt_user_passwords.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110223180953_salt_user_passwords.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+class SaltUserPasswords < ActiveRecord::Migration
+
+ def self.up
+ say_with_time "Salting user passwords, this may take some time..." do
+ User.salt_unsalted_passwords!
+ end
+ end
+
+ def self.down
+ # Unsalted passwords can not be restored
+ raise ActiveRecord::IrreversibleMigration, "Can't decypher salted passwords. This migration can not be rollback'ed."
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110224000000_add_repositories_path_encoding.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110224000000_add_repositories_path_encoding.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddRepositoriesPathEncoding < ActiveRecord::Migration
+ def self.up
+ add_column :repositories, :path_encoding, :string, :limit => 64, :default => nil
+ end
+
+ def self.down
+ remove_column :repositories, :path_encoding
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110226120112_change_repositories_password_limit.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110226120112_change_repositories_password_limit.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class ChangeRepositoriesPasswordLimit < ActiveRecord::Migration
+ def self.up
+ change_column :repositories, :password, :string, :limit => nil, :default => ''
+ end
+
+ def self.down
+ change_column :repositories, :password, :string, :limit => 60, :default => ''
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110226120132_change_auth_sources_account_password_limit.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110226120132_change_auth_sources_account_password_limit.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class ChangeAuthSourcesAccountPasswordLimit < ActiveRecord::Migration
+ def self.up
+ change_column :auth_sources, :account_password, :string, :limit => nil, :default => ''
+ end
+
+ def self.down
+ change_column :auth_sources, :account_password, :string, :limit => 60, :default => ''
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110227125750_change_journal_details_values_to_text.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110227125750_change_journal_details_values_to_text.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,11 @@
+class ChangeJournalDetailsValuesToText < ActiveRecord::Migration
+ def self.up
+ change_column :journal_details, :old_value, :text
+ change_column :journal_details, :value, :text
+ end
+
+ def self.down
+ change_column :journal_details, :old_value, :string
+ change_column :journal_details, :value, :string
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110228000000_add_repositories_log_encoding.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110228000000_add_repositories_log_encoding.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+class AddRepositoriesLogEncoding < ActiveRecord::Migration
+ def self.up
+ add_column :repositories, :log_encoding, :string, :limit => 64, :default => nil
+ end
+
+ def self.down
+ remove_column :repositories, :log_encoding
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 db/migrate/20110228000100_copy_repositories_log_encoding.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/20110228000100_copy_repositories_log_encoding.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,18 @@
+class CopyRepositoriesLogEncoding < ActiveRecord::Migration
+ def self.up
+ encoding = Setting.commit_logs_encoding.to_s.strip
+ encoding = encoding.blank? ? 'UTF-8' : encoding
+ Repository.find(:all).each do |repo|
+ scm = repo.scm_name
+ case scm
+ when 'Subversion', 'Mercurial', 'Git', 'Filesystem'
+ repo.update_attribute(:log_encoding, nil)
+ else
+ repo.update_attribute(:log_encoding, encoding)
+ end
+ end
+ end
+
+ def self.down
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 doc/.svn/all-wcprops
--- a/doc/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/.svn/all-wcprops Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/.svn/entries
--- a/doc/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
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-03-03T11:05:14.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-03-03T11:05:14.000000Z
cc987c3ab1bf29e6ebe5313bef953b5b
2010-02-16T16:40:50.914879Z
3438
@@ -100,7 +100,7 @@
-2010-09-23T14:37:44.939791Z
+2011-03-03T11:05:14.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-03-03T11:05:14.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-03-03T11:05:14.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-03-03T11:05:14.000000Z
751419260aa954499f7abaabaa882bbe
2007-11-04T13:19:42.552822Z
883
@@ -236,7 +236,7 @@
-2010-11-19T14:03:48.248927Z
+2011-03-03T11:05:14.000000Z
cc77650493d11d18eabb058fbdf7ac24
2010-10-22T17:18:11.628381Z
4273
diff -r fca2657f4aa5 -r eeebe205a056 doc/.svn/text-base/CHANGELOG.svn-base
--- a/doc/.svn/text-base/CHANGELOG.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/.svn/text-base/CHANGELOG.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/.svn/text-base/INSTALL.svn-base
--- a/doc/.svn/text-base/INSTALL.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/.svn/text-base/INSTALL.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/.svn/text-base/UPGRADING.svn-base
--- a/doc/.svn/text-base/UPGRADING.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/.svn/text-base/UPGRADING.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/CHANGELOG
--- a/doc/CHANGELOG Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/CHANGELOG Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/INSTALL
--- a/doc/INSTALL Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/INSTALL Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 doc/UPGRADING
--- a/doc/UPGRADING Thu Jan 20 09:59:02 2011 +0000
+++ b/doc/UPGRADING Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 extra/.svn/all-wcprops
--- a/extra/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,5 @@
K 25
svn:wc:ra_dav:version-url
V 30
-/svn/!svn/ver/4725/trunk/extra
+/svn/!svn/ver/4936/trunk/extra
END
diff -r fca2657f4aa5 -r eeebe205a056 extra/.svn/entries
--- a/extra/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra
+4993
+http://redmine.rubyforge.org/svn/trunk/extra
http://redmine.rubyforge.org/svn
-2011-01-15T14:48:33.715032Z
-4725
+2011-02-23T17:27:31.762248Z
+4936
jplang
diff -r fca2657f4aa5 -r eeebe205a056 extra/mail_handler/.svn/entries
--- a/extra/mail_handler/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/mail_handler/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:11.000000Z
f3a0f406bd2e6d3caacb7e7c22079df0
2011-01-15T14:48:33.715032Z
4725
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/.svn/entries
--- a/extra/sample_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin
http://redmine.rubyforge.org/svn
@@ -44,7 +44,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:12.000000Z
cb8636f8b6659a091f3e1f018a64a2f5
2009-07-02T18:40:06.298867Z
2798
@@ -78,7 +78,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:12.000000Z
4d87ae4412bda3ec3b4c9a8bc17fafb6
2009-02-26T16:37:48.671184Z
2530
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/.svn/entries
--- a/extra/sample_plugin/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/controllers/.svn/entries
--- a/extra/sample_plugin/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/controllers
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
9e3b32d475f8b06df8d45b28a2732d76
2009-02-21T11:04:50.579477Z
2493
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/models/.svn/entries
--- a/extra/sample_plugin/app/models/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/models/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/models
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
5161ccc668c61730638ef23bec50232f
2008-07-27T19:18:35.954247Z
1704
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/views/.svn/entries
--- a/extra/sample_plugin/app/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/views/example/.svn/entries
--- a/extra/sample_plugin/app/views/example/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/views/example/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/views/example
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/example
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
674cc3fb92754e41d7e7d5fb7ed0eda7
2007-09-23T18:50:53.732551Z
753
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
cf9e02439886339b70ee199313902c96
2007-09-23T18:50:53.732551Z
753
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/views/my/.svn/entries
--- a/extra/sample_plugin/app/views/my/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/views/my/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/views/my
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/views/my/blocks/.svn/entries
--- a/extra/sample_plugin/app/views/my/blocks/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/views/my/blocks/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/views/my/blocks
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/my/blocks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
e2d729cf488b7b7411cffb259c10559a
2009-02-26T16:36:56.835799Z
2529
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/app/views/settings/.svn/entries
--- a/extra/sample_plugin/app/views/settings/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/app/views/settings/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/app/views/settings
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/app/views/settings
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
065925dde040b66230ae06437114c77f
2009-07-02T18:40:06.298867Z
2798
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/assets/.svn/entries
--- a/extra/sample_plugin/assets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/assets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/assets
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/assets/images/.svn/entries
--- a/extra/sample_plugin/assets/images/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/assets/images/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/assets/images
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
81bcc262c08473fa7cb05cc78176652f
2007-09-23T18:50:53.732551Z
753
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/assets/stylesheets/.svn/entries
--- a/extra/sample_plugin/assets/stylesheets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/assets/stylesheets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/assets/stylesheets
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/assets/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
ced97da84497db69b30e6e17a55c3fb9
2007-09-23T18:50:53.732551Z
753
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/config/.svn/entries
--- a/extra/sample_plugin/config/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/config/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/config
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/config/locales/.svn/entries
--- a/extra/sample_plugin/config/locales/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/config/locales/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/config/locales
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/config/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
c1dc7060239e61ce13e8840b305000c5
2009-02-08T16:13:02.919112Z
2413
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
989492284a42bf9777e2bd0d39b40254
2009-02-08T16:13:02.919112Z
2413
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/db/.svn/entries
--- a/extra/sample_plugin/db/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/db/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/db
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 extra/sample_plugin/db/migrate/.svn/entries
--- a/extra/sample_plugin/db/migrate/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/sample_plugin/db/migrate/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/sample_plugin/db/migrate
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/sample_plugin/db/migrate
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
2316ab57f3d60b7f04b4bdfdebf6fd8e
2008-07-27T19:10:56.352148Z
1703
diff -r fca2657f4aa5 -r eeebe205a056 extra/svn/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/extra/svn/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 34
+/svn/!svn/ver/4936/trunk/extra/svn
+END
+reposman.rb
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/4288/trunk/extra/svn/reposman.rb
+END
+svnserve.wrapper
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/402/trunk/extra/svn/svnserve.wrapper
+END
+Redmine.pm
+K 25
+svn:wc:ra_dav:version-url
+V 45
+/svn/!svn/ver/4936/trunk/extra/svn/Redmine.pm
+END
+create_views.sql
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/396/trunk/extra/svn/create_views.sql
+END
diff -r fca2657f4aa5 -r eeebe205a056 extra/svn/.svn/entries
--- a/extra/svn/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/svn/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/extra/svn
+4993
+http://redmine.rubyforge.org/svn/trunk/extra/svn
http://redmine.rubyforge.org/svn
-2010-10-29T22:55:50.222644Z
-4309
-jbbarth
+2011-02-23T17:27:31.762248Z
+4936
+jplang
@@ -32,7 +32,7 @@
-2011-01-13T12:46:09.000000Z
+2011-03-03T11:05:12.000000Z
a0d169b0fc20459335e531e4f3921ede
2010-10-24T21:00:05.611798Z
4288
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:12.000000Z
f41d78e45e03554626edf5e4e6663d80
2007-04-02T19:01:31.084001Z
402
@@ -100,11 +100,11 @@
-2010-11-30T13:11:53.000000Z
-5ed4546a59c9729cbd9b407ad0996b9b
-2010-10-29T22:55:50.222644Z
-4309
-jbbarth
+2011-03-03T11:40:18.000000Z
+c3d331d6024a3d0f0c250fda387ce052
+2011-02-23T17:27:31.762248Z
+4936
+jplang
has-props
@@ -126,7 +126,7 @@
-10752
+10843
create_views.sql
file
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:12.000000Z
96fdfe0a7a4913dbbfc1b871d7abab02
2007-04-01T19:43:59.029417Z
396
diff -r fca2657f4aa5 -r eeebe205a056 extra/svn/.svn/text-base/Redmine.pm.svn-base
--- a/extra/svn/.svn/text-base/Redmine.pm.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/svn/.svn/text-base/Redmine.pm.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -148,7 +148,7 @@
my ($self, $parms, $arg) = @_;
$self->{RedmineDSN} = $arg;
my $query = "SELECT
- hashed_password, auth_source_id, permissions
+ hashed_password, salt, auth_source_id, permissions
FROM members, projects, users, roles, member_roles
WHERE
projects.id=members.project_id
@@ -316,11 +316,12 @@
$sth->execute($redmine_user, $project_id);
my $ret;
- while (my ($hashed_password, $auth_source_id, $permissions) = $sth->fetchrow_array) {
+ while (my ($hashed_password, $salt, $auth_source_id, $permissions) = $sth->fetchrow_array) {
unless ($auth_source_id) {
- my $method = $r->method;
- if ($hashed_password eq $pass_digest && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) {
+ my $method = $r->method;
+ my $salted_password = Digest::SHA1::sha1_hex($salt.$pass_digest);
+ if ($hashed_password eq $salted_password && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) {
$ret = 1;
last;
}
diff -r fca2657f4aa5 -r eeebe205a056 extra/svn/Redmine.pm
--- a/extra/svn/Redmine.pm Thu Jan 20 09:59:02 2011 +0000
+++ b/extra/svn/Redmine.pm Thu Mar 03 12:02:03 2011 +0000
@@ -148,7 +148,7 @@
my ($self, $parms, $arg) = @_;
$self->{RedmineDSN} = $arg;
my $query = "SELECT
- hashed_password, auth_source_id, permissions
+ hashed_password, salt, auth_source_id, permissions
FROM members, projects, users, roles, member_roles
WHERE
projects.id=members.project_id
@@ -316,11 +316,12 @@
$sth->execute($redmine_user, $project_id);
my $ret;
- while (my ($hashed_password, $auth_source_id, $permissions) = $sth->fetchrow_array) {
+ while (my ($hashed_password, $salt, $auth_source_id, $permissions) = $sth->fetchrow_array) {
unless ($auth_source_id) {
- my $method = $r->method;
- if ($hashed_password eq $pass_digest && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) {
+ my $method = $r->method;
+ my $salted_password = Digest::SHA1::sha1_hex($salt.$pass_digest);
+ if ($hashed_password eq $salted_password && ((defined $read_only_methods{$method} && $permissions =~ /:browse_repository/) || $permissions =~ /:commit_access/) ) {
$ret = 1;
last;
}
diff -r fca2657f4aa5 -r eeebe205a056 files/.svn/entries
--- a/files/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/files/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/files
+4993
+http://redmine.rubyforge.org/svn/trunk/files
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:13.000000Z
ae0415159f2c4dba3fc1a559d4c0f9f5
2006-06-28T18:11:03.549769Z
4
diff -r fca2657f4aa5 -r eeebe205a056 lib/.svn/all-wcprops
--- a/lib/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/.svn/all-wcprops Thu Mar 03 12:02:03 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/4993/trunk/lib
END
faster_csv.rb
K 25
@@ -13,7 +13,7 @@
K 25
svn:wc:ra_dav:version-url
V 39
-/svn/!svn/ver/4466/trunk/lib/redmine.rb
+/svn/!svn/ver/4954/trunk/lib/redmine.rb
END
tabular_form_builder.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 lib/.svn/entries
--- a/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-03-03T05:51:46.224821Z
+4993
tmaruyama
@@ -38,7 +38,7 @@
-2010-09-23T14:37:44.983792Z
+2011-03-03T11:05:14.000000Z
1657561b457dadfa5d004a393bdd1a2e
2009-11-04T13:22:26.440808Z
3007
@@ -78,10 +78,10 @@
-2011-01-13T14:11:09.000000Z
-a25bf842b86584d0d77844d95b6ab907
-2010-12-04T17:43:39.823144Z
-4466
+2011-03-03T11:40:18.000000Z
+931d36182ff7c72cf9e133581a6e1822
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
@@ -104,7 +104,7 @@
-12841
+12850
tabular_form_builder.rb
file
@@ -112,7 +112,7 @@
-2010-09-23T14:37:45.055767Z
+2011-03-03T11:05:14.000000Z
9d8fb5ede85fd780f018b74b36a83034
2010-06-20T19:03:09.888571Z
3804
@@ -149,7 +149,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
d76edcf3565b73d5e63e37d3e1c72512
2010-12-05T10:09:18.457497Z
4468
@@ -183,7 +183,7 @@
-2010-09-23T14:37:44.983792Z
+2011-03-03T11:05:14.000000Z
55e7cfa4fcb3619e9939d29336ecdf02
2008-03-11T19:33:38.611682Z
1227
@@ -217,7 +217,7 @@
-2010-09-23T14:37:44.983792Z
+2011-03-03T11:05:14.000000Z
1ecc6c4c4ae6aa3e75600673b4b78add
2009-08-15T22:41:40.505056Z
2840
diff -r fca2657f4aa5 -r eeebe205a056 lib/.svn/text-base/redmine.rb.svn-base
--- a/lib/.svn/text-base/redmine.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/.svn/text-base/redmine.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -62,7 +62,7 @@
:auto_complete => [:issues],
:context_menus => [:issues],
:versions => [:index, :show, :status_by],
- :journals => :index,
+ :journals => [:index, :diff],
:queries => :index,
:reports => [:issue_report, :issue_report_details]}
map.permission :add_issues, {:issues => [:new, :create, :update_form]}
diff -r fca2657f4aa5 -r eeebe205a056 lib/SVG/.svn/entries
--- a/lib/SVG/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/SVG/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/SVG
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/SVG
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
393a5ca445f6965873eca0259a17f833
2007-03-25T17:11:46.804742Z
380
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
072cf60873854a186c6eba9b74dbe389
2007-03-25T17:11:46.804742Z
380
diff -r fca2657f4aa5 -r eeebe205a056 lib/SVG/Graph/.svn/entries
--- a/lib/SVG/Graph/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/SVG/Graph/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/SVG/Graph
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/SVG/Graph
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
0a49ed37717b08c6bccdc843a03a333d
2009-03-30T19:58:17.407192Z
2642
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
55ff835de5a0fb0fd2d6a236b1c5c436
2009-03-30T19:58:17.407192Z
2642
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
a39e9963eaae7bb913b6d8d2dfe0506f
2009-03-30T19:58:17.407192Z
2642
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
184772c0f1732eadf12b0e8bc9e172f7
2009-03-30T19:58:17.407192Z
2642
@@ -168,7 +168,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
fad5865539cbd7ba3433fd6d47b9d3f2
2009-11-07T10:40:54.677820Z
3017
@@ -202,7 +202,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
cc9051d7617dfe6dd6cc47fe83fd6ec4
2009-03-30T19:58:17.407192Z
2642
@@ -236,7 +236,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
f092a4b0f16876381bc9283058eeb48c
2007-03-25T17:11:46.804742Z
380
@@ -270,7 +270,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
73dbcb4a1cba46b4e46a81881d24ff1a
2009-03-30T19:58:17.407192Z
2642
@@ -304,7 +304,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
d8e95d0e507a02a74a5ac3435560d3bd
2007-03-25T17:11:46.804742Z
380
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/.svn/entries
--- a/lib/generators/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin/.svn/entries
--- a/lib/generators/redmine_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
334056a407de9091bb8774ba986c53f9
2009-06-10T03:39:02.884087Z
2785
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
be5d60ef31ac822cd5650ab976dcc543
2009-06-10T03:39:02.884087Z
2785
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin/templates/.svn/entries
--- a/lib/generators/redmine_plugin/templates/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin/templates
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
2d39c559d341be440cb60911ef125dd9
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
d97a21936cfb77543031f7d9a5d5131a
2008-10-25T04:37:31.779636Z
1949
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
d14592489e5b7d34b33d2487f4770b7d
2008-10-25T04:37:31.779636Z
1949
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ab791ada26df5c9c1a13b771e988a36f
2009-06-10T03:39:02.884087Z
2785
@@ -168,7 +168,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
39cb16a49db6c72cdd7a63447d5b188f
2010-06-17T19:02:13.409991Z
3771
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin_controller/.svn/entries
--- a/lib/generators/redmine_plugin_controller/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin_controller/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin_controller
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
60c1792566a450d246dd66ff274ae06c
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
23b15404071adb39cb140a6113057f15
2010-02-28T12:15:47.320153Z
3514
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin_controller/templates/.svn/entries
--- a/lib/generators/redmine_plugin_controller/templates/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin_controller/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin_controller/templates
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_controller/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
0ae9d2e8e624fef815f60164d47b6464
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
e8491aac2379dbba3d3ddadc30f6db07
2008-10-25T09:35:51.426668Z
1951
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
2fdd792e6b6825b4f1802ba4767e0435
2008-10-25T09:35:51.426668Z
1951
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
22e765f47aacc324789509219797d087
2010-06-17T19:02:07.893033Z
3770
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin_model/.svn/entries
--- a/lib/generators/redmine_plugin_model/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin_model/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin_model
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ca5ffbd9dfb099b2f38ca21c030ffea0
2008-09-05T10:31:06.632668Z
1786
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ba0c0092c69cca4c21b1b26027f7472b
2010-02-28T12:15:47.320153Z
3514
diff -r fca2657f4aa5 -r eeebe205a056 lib/generators/redmine_plugin_model/templates/.svn/entries
--- a/lib/generators/redmine_plugin_model/templates/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/generators/redmine_plugin_model/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/generators/redmine_plugin_model/templates
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/generators/redmine_plugin_model/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ce0817700ec27f10f7d07f998bff6991
2008-10-25T09:35:51.426668Z
1951
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
a4081d31f6d22e7655b4f6e9fb894a03
2009-10-17T21:08:33.644420Z
2926
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
115e77dae670747c95b5ff22c01d4174
2008-09-05T10:31:06.632668Z
1786
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
3a783571ccc96a2f639329700dda677b
2010-06-17T19:02:07.893033Z
3770
diff -r fca2657f4aa5 -r eeebe205a056 lib/plugins/.svn/entries
--- a/lib/plugins/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/plugins/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/plugins
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/plugins
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine.rb
--- a/lib/redmine.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine.rb Thu Mar 03 12:02:03 2011 +0000
@@ -62,7 +62,7 @@
:auto_complete => [:issues],
:context_menus => [:issues],
:versions => [:index, :show, :status_by],
- :journals => :index,
+ :journals => [:index, :diff],
:queries => :index,
:reports => [:issue_report, :issue_report_details]}
map.permission :add_issues, {:issues => [:new, :create, :update_form]}
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/all-wcprops
--- a/lib/redmine/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,19 +1,19 @@
K 25
svn:wc:ra_dav:version-url
V 36
-/svn/!svn/ver/4688/trunk/lib/redmine
+/svn/!svn/ver/4993/trunk/lib/redmine
END
i18n.rb
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/4516/trunk/lib/redmine/i18n.rb
+/svn/!svn/ver/4894/trunk/lib/redmine/i18n.rb
END
pop3.rb
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
safe_attributes.rb
K 25
@@ -43,7 +43,7 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4619/trunk/lib/redmine/version.rb
+/svn/!svn/ver/4784/trunk/lib/redmine/version.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,12 +117,24 @@
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/4949/trunk/lib/redmine/configuration.rb
+END
core_ext.rb
K 25
svn:wc:ra_dav:version-url
V 48
/svn/!svn/ver/1361/trunk/lib/redmine/core_ext.rb
END
+ciphering.rb
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/4950/trunk/lib/redmine/ciphering.rb
+END
about.rb
K 25
svn:wc:ra_dav:version-url
@@ -139,7 +151,7 @@
K 25
svn:wc:ra_dav:version-url
V 52
-/svn/!svn/ver/3028/trunk/lib/redmine/unified_diff.rb
+/svn/!svn/ver/4929/trunk/lib/redmine/unified_diff.rb
END
notifiable.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/entries
--- a/lib/redmine/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/redmine
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-03-03T05:51:46.224821Z
+4993
tmaruyama
@@ -35,10 +35,10 @@
-2010-09-23T14:37:45.031809Z
-7905a0773e7d2f6b468fc5b9e107db4d
-2010-01-17T13:53:13.544777Z
-3330
+2011-03-03T11:05:14.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-03-03T11:05:14.000000Z
23fd3a13b8bcd6b3e2547e913d5fae18
2010-12-22T21:41:08.746858Z
4559
@@ -103,7 +103,7 @@
-2010-09-23T14:37:45.031809Z
+2011-03-03T11:05:14.000000Z
caeedebd5c05aede1d232510d03ad136
2008-12-31T14:56:30.439880Z
2220
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.031809Z
+2011-03-03T11:05:14.000000Z
ddadcd03b97455adae2451a2140afbf6
2009-05-30T23:00:22.602473Z
2776
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.015759Z
+2011-03-03T11:05:14.000000Z
41c2852d003d94cb23c231f06be62d12
2008-01-20T13:07:19.003764Z
1081
@@ -202,13 +202,16 @@
1160
+helpers
+dir
+
utils.rb
file
-2010-09-23T14:37:45.047759Z
+2011-03-03T11:05:14.000000Z
d04b071ce8f05b44ca6993c56fea9b1f
2009-01-04T17:09:25.896068Z
2234
@@ -236,16 +239,13 @@
1466
-helpers
-dir
-
access_control.rb
file
-2010-09-23T14:37:45.015759Z
+2011-03-03T11:05:14.000000Z
e7e4c44515553e36bffa6e8f8960080b
2008-09-25T18:51:03.022592Z
1907
@@ -279,7 +279,7 @@
-2010-09-23T14:37:45.043748Z
+2011-03-03T11:05:14.000000Z
6f968bcc4f81562e9cbddb02ebc62601
2010-02-17T20:05:51.124365Z
3444
@@ -310,13 +310,47 @@
core_ext
dir
+configuration.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+2f47dda69333c012a55496a3792c369e
+2011-02-25T14:30:05.998365Z
+4949
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3639
+
about.rb
file
-2010-09-23T14:37:45.015759Z
+2011-03-03T11:05:14.000000Z
91ed592a8419f1bec48ba880c7a86e29
2009-05-25T19:10:26.065563Z
2766
@@ -350,7 +384,7 @@
-2010-09-23T14:37:45.043748Z
+2011-03-03T11:05:14.000000Z
4a40844a6cd11aa7409bc8f4e9a2c74e
2010-03-28T11:30:48.135356Z
3619
@@ -384,7 +418,7 @@
-2010-11-19T13:04:51.416932Z
+2011-03-03T11:05:14.000000Z
cfdd5556d40422dd9610d2124a2fefac
2010-09-28T21:09:06.467392Z
4222
@@ -418,10 +452,10 @@
-2011-01-13T14:09:39.000000Z
-009b7a9ada5c3e83d6a7a26256c34951
-2010-12-17T08:34:29.830642Z
-4516
+2011-03-03T11:40:18.000000Z
+cc684405103aabd5f4aea0c21fd7c732
+2011-02-20T14:56:37.399906Z
+4894
jplang
has-props
@@ -444,18 +478,52 @@
-2315
+2255
scm
dir
+safe_attributes.rb
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+7f659c02de1ea89806beda1772dc4d36
+2010-12-12T13:11:53.259618Z
+4491
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2579
+
platform.rb
file
-2010-09-23T14:37:45.031809Z
+2011-03-03T11:05:14.000000Z
68165c83be56d3204c582958d933ff0a
2008-08-25T11:01:37.715099Z
1753
@@ -483,50 +551,16 @@
1009
-safe_attributes.rb
-file
-
-
-
-
-2011-01-13T14:09:39.000000Z
-7f659c02de1ea89806beda1772dc4d36
-2010-12-12T13:11:53.259618Z
-4491
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2579
-
version.rb
file
-2011-01-13T14:09:39.000000Z
-599c6a070c34c23117d1176bf811988d
-2011-01-02T12:16:40.859443Z
-4619
+2011-03-03T11:05:14.000000Z
+c6c19bce5ff3b4298316ffb112478868
+2011-01-30T14:37:23.564601Z
+4784
jplang
has-props
@@ -557,7 +591,7 @@
-2010-09-23T14:37:45.023772Z
+2011-03-03T11:05:14.000000Z
7fd1fcfb204480b0e9903fd03c53a563
2010-04-16T15:34:05.970144Z
3675
@@ -591,7 +625,7 @@
-2010-09-23T14:37:45.031809Z
+2011-03-03T11:05:14.000000Z
dbfad515b1d5c277d2f8e9d67233185e
2009-12-29T13:28:30.604471Z
3258
@@ -631,7 +665,7 @@
-2010-09-23T14:37:45.015759Z
+2011-03-03T11:05:14.000000Z
88435997a6d77548eab82526df38caf1
2008-07-27T18:38:31.746909Z
1702
@@ -665,7 +699,7 @@
-2010-09-23T14:37:45.047759Z
+2011-03-03T11:05:14.000000Z
648c40cc515e97d063d2c2f218cbbc23
2010-02-17T20:47:50.603139Z
3446
@@ -693,13 +727,47 @@
4431
+plugin.rb
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+81bc46012d5a0067e18e08bada197d8c
+2010-10-25T23:32:01.793182Z
+4293
+edavis10
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+11219
+
menu_manager.rb
file
-2010-11-19T13:04:51.412966Z
+2011-03-03T11:05:14.000000Z
7f3739a749929e1f65efb292620d361b
2010-11-14T16:24:21.989522Z
4406
@@ -727,47 +795,13 @@
15303
-plugin.rb
-file
-
-
-
-
-2010-11-19T13:04:51.412966Z
-81bc46012d5a0067e18e08bada197d8c
-2010-10-25T23:32:01.793182Z
-4293
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-11219
-
hook.rb
file
-2010-11-19T13:04:51.416932Z
+2011-03-03T11:05:14.000000Z
dfacee092edce74d74e8ea7d7a54aeba
2010-11-14T16:24:21.989522Z
4406
@@ -801,7 +835,7 @@
-2010-09-23T14:37:45.019747Z
+2011-03-03T11:05:14.000000Z
7632bcee464a923f5aa7c9eba29f8081
2008-04-26T11:59:51.889210Z
1361
@@ -829,6 +863,40 @@
77
+ciphering.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+763ba2f765c62f378371f2472679c464
+2011-02-26T13:09:25.657748Z
+4950
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2933
+
default_data
dir
@@ -838,11 +906,11 @@
-2010-09-23T14:37:45.047759Z
-69c22a4064f90e2ce460a0c9013c7cd0
-2009-11-11T13:25:53.648186Z
-3028
-jplang
+2011-03-03T11:40:18.000000Z
+561d23da6665fb790120f9d59962fb78
+2011-02-23T07:03:45.049119Z
+4929
+tmaruyama
has-props
@@ -864,5 +932,5 @@
-5259
+5678
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/prop-base/ciphering.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/prop-base/ciphering.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/text-base/ciphering.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/.svn/text-base/ciphering.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,95 @@
+# 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 Ciphering
+ def self.included(base)
+ base.extend ClassMethods
+ end
+
+ class << self
+ def encrypt_text(text)
+ if cipher_key.blank?
+ text
+ else
+ c = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
+ iv = c.random_iv
+ c.encrypt
+ c.key = cipher_key
+ c.iv = iv
+ e = c.update(text.to_s)
+ e << c.final
+ "aes-256-cbc:" + [e, iv].map {|v| Base64.encode64(v).strip}.join('--')
+ end
+ end
+
+ def decrypt_text(text)
+ if text && match = text.match(/\Aaes-256-cbc:(.+)\Z/)
+ text = match[1]
+ c = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
+ e, iv = text.split("--").map {|s| Base64.decode64(s)}
+ c.decrypt
+ c.key = cipher_key
+ c.iv = iv
+ d = c.update(e)
+ d << c.final
+ else
+ text
+ end
+ end
+
+ def cipher_key
+ key = Redmine::Configuration['database_cipher_key'].to_s
+ key.blank? ? nil : Digest::SHA256.hexdigest(key)
+ end
+ end
+
+ module ClassMethods
+ def encrypt_all(attribute)
+ transaction do
+ all.each do |object|
+ clear = object.send(attribute)
+ object.send "#{attribute}=", clear
+ raise(ActiveRecord::Rollback) unless object.save(false)
+ end
+ end ? true : false
+ end
+
+ def decrypt_all(attribute)
+ transaction do
+ all.each do |object|
+ clear = object.send(attribute)
+ object.write_attribute attribute, clear
+ raise(ActiveRecord::Rollback) unless object.save(false)
+ end
+ end
+ end ? true : false
+ end
+
+ private
+
+ # Returns the value of the given ciphered attribute
+ def read_ciphered_attribute(attribute)
+ Redmine::Ciphering.decrypt_text(read_attribute(attribute))
+ end
+
+ # Sets the value of the given ciphered attribute
+ def write_ciphered_attribute(attribute, value)
+ write_attribute(attribute, Redmine::Ciphering.encrypt_text(value))
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,107 @@
+# 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
+
+ # Yields a block with the specified hash configuration settings
+ def with(settings)
+ settings.stringify_keys!
+ load unless @config
+ was = settings.keys.inject({}) {|h,v| h[v] = @config[v]; h}
+ @config.merge! settings
+ yield if block_given?
+ @config.merge! was
+ 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/text-base/i18n.rb.svn-base
--- a/lib/redmine/.svn/text-base/i18n.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/text-base/i18n.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -45,8 +45,8 @@
time = time.to_time if time.is_a?(String)
zone = User.current.time_zone
local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
- Setting.time_format.blank? ? ::I18n.l(local, :format => (include_date ? :default : :time)) :
- ((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}")
+ (include_date ? "#{format_date(local)} " : "") +
+ (Setting.time_format.blank? ? ::I18n.l(local, :format => :time) : local.strftime(Setting.time_format))
end
def day_name(day)
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/text-base/pop3.rb.svn-base
--- a/lib/redmine/.svn/text-base/pop3.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/text-base/pop3.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/text-base/unified_diff.rb.svn-base
--- a/lib/redmine/.svn/text-base/unified_diff.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/text-base/unified_diff.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -22,13 +22,21 @@
options.assert_valid_keys(:type, :max_lines)
diff = diff.split("\n") if diff.is_a?(String)
diff_type = options[:type] || 'inline'
-
lines = 0
@truncated = false
diff_table = DiffTable.new(diff_type)
diff.each do |line|
+ line_encoding = nil
+ if line.respond_to?(:force_encoding)
+ line_encoding = line.encoding
+ # TODO: UTF-16 and Japanese CP932 which is imcompatible with ASCII
+ # In Japan, diffrence between file path encoding
+ # and file contents encoding is popular.
+ line.force_encoding('ASCII-8BIT')
+ end
unless diff_table.add_line line
- self << diff_table if diff_table.length > 1
+ line.force_encoding(line_encoding) if line_encoding
+ self << diff_table if diff_table.length > 0
diff_table = DiffTable.new(diff_type)
end
lines += 1
@@ -40,7 +48,7 @@
self << diff_table unless diff_table.empty?
self
end
-
+
def truncated?; @truncated; end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/.svn/text-base/version.rb.svn-base
--- a/lib/redmine/.svn/text-base/version.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/.svn/text-base/version.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,7 @@
module VERSION #:nodoc:
MAJOR = 1
MINOR = 1
- TINY = 0
+ TINY = 1
# Branch values:
# * official release: nil
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/activity/.svn/entries
--- a/lib/redmine/activity/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/activity/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/activity
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/activity
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
20597949bb74e98a3ffc97bc8a3ead7d
2010-07-06T02:22:03.226147Z
3829
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/ciphering.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/ciphering.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,95 @@
+# 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 Ciphering
+ def self.included(base)
+ base.extend ClassMethods
+ end
+
+ class << self
+ def encrypt_text(text)
+ if cipher_key.blank?
+ text
+ else
+ c = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
+ iv = c.random_iv
+ c.encrypt
+ c.key = cipher_key
+ c.iv = iv
+ e = c.update(text.to_s)
+ e << c.final
+ "aes-256-cbc:" + [e, iv].map {|v| Base64.encode64(v).strip}.join('--')
+ end
+ end
+
+ def decrypt_text(text)
+ if text && match = text.match(/\Aaes-256-cbc:(.+)\Z/)
+ text = match[1]
+ c = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
+ e, iv = text.split("--").map {|s| Base64.decode64(s)}
+ c.decrypt
+ c.key = cipher_key
+ c.iv = iv
+ d = c.update(e)
+ d << c.final
+ else
+ text
+ end
+ end
+
+ def cipher_key
+ key = Redmine::Configuration['database_cipher_key'].to_s
+ key.blank? ? nil : Digest::SHA256.hexdigest(key)
+ end
+ end
+
+ module ClassMethods
+ def encrypt_all(attribute)
+ transaction do
+ all.each do |object|
+ clear = object.send(attribute)
+ object.send "#{attribute}=", clear
+ raise(ActiveRecord::Rollback) unless object.save(false)
+ end
+ end ? true : false
+ end
+
+ def decrypt_all(attribute)
+ transaction do
+ all.each do |object|
+ clear = object.send(attribute)
+ object.write_attribute attribute, clear
+ raise(ActiveRecord::Rollback) unless object.save(false)
+ end
+ end
+ end ? true : false
+ end
+
+ private
+
+ # Returns the value of the given ciphered attribute
+ def read_ciphered_attribute(attribute)
+ Redmine::Ciphering.decrypt_text(read_attribute(attribute))
+ end
+
+ # Sets the value of the given ciphered attribute
+ def write_ciphered_attribute(attribute, value)
+ write_attribute(attribute, Redmine::Ciphering.encrypt_text(value))
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/configuration.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/configuration.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,107 @@
+# 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
+
+ # Yields a block with the specified hash configuration settings
+ def with(settings)
+ settings.stringify_keys!
+ load unless @config
+ was = settings.keys.inject({}) {|h,v| h[v] = @config[v]; h}
+ @config.merge! settings
+ yield if block_given?
+ @config.merge! was
+ 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/core_ext/.svn/entries
--- a/lib/redmine/core_ext/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/core_ext/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/core_ext
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
fcafa1cc4149d3a5de82816c61b7fa02
2009-08-17T16:32:24.020380Z
2844
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/core_ext/string/.svn/entries
--- a/lib/redmine/core_ext/string/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/core_ext/string/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/core_ext/string
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/core_ext/string
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
e614ecdb2fac85cd9f8808e7cff7f9de
2009-08-17T16:32:24.020380Z
2844
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
1cc26c5de967944da3a6b07331512637
2009-10-10T15:09:19.510095Z
2912
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/default_data/.svn/entries
--- a/lib/redmine/default_data/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/default_data/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/default_data
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/default_data
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
41958e843a8ba03548eed089e8002549
2010-06-30T01:55:44.694582Z
3820
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/export/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/export/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svn/!svn/ver/4736/trunk/lib/redmine/export
+END
+pdf.rb
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/4736/trunk/lib/redmine/export/pdf.rb
+END
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/export/.svn/entries
--- a/lib/redmine/export/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/export/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/export
+4993
+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-10-01T15:15:02.000000Z
-aa6093490555bdd119ba8f1d34cab080
-2010-09-20T02:55:20.180218Z
-4104
-edavis10
+2011-03-03T11:05:14.000000Z
+b8bd24e9575d51f0c49f8245a5d593a2
+2011-01-22T11:57:02.732751Z
+4736
+jplang
has-props
@@ -58,5 +58,5 @@
-10771
+10786
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/export/.svn/text-base/pdf.rb.svn-base
--- a/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/export/.svn/text-base/pdf.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/export/pdf.rb
--- a/lib/redmine/export/pdf.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/export/pdf.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/.svn/all-wcprops
--- a/lib/redmine/helpers/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/helpers/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,13 +1,19 @@
K 25
svn:wc:ra_dav:version-url
V 44
-/svn/!svn/ver/4584/trunk/lib/redmine/helpers
+/svn/!svn/ver/4968/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/4968/trunk/lib/redmine/helpers/gantt.rb
+END
+diff.rb
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4953/trunk/lib/redmine/helpers/diff.rb
END
calendar.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/.svn/entries
--- a/lib/redmine/helpers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/helpers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/redmine/helpers
http://redmine.rubyforge.org/svn
-2010-12-30T15:04:08.033097Z
-4584
+2011-02-28T20:23:28.847227Z
+4968
jplang
@@ -32,10 +32,10 @@
-2011-01-13T14:09:38.000000Z
-2c61985f04e8f13965fd9880ff9ad5dc
-2010-12-30T15:04:08.033097Z
-4584
+2011-03-03T11:40:18.000000Z
+b06b1d003a56093679e3004b619b0e04
+2011-02-28T20:23:28.847227Z
+4968
jplang
has-props
@@ -58,7 +58,41 @@
-32266
+32380
+
+diff.rb
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+a3487dfca2baab10aacea141b7c0fc5f
+2011-02-27T12:50:47.369941Z
+4953
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2408
calendar.rb
file
@@ -66,7 +100,7 @@
-2010-09-23T14:37:45.027790Z
+2011-03-03T11:05:14.000000Z
0a7d81755cf7c1519d4b4c1d84712139
2009-12-13T04:06:55.726600Z
3166
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/.svn/prop-base/diff.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/helpers/.svn/prop-base/diff.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/.svn/text-base/diff.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/helpers/.svn/text-base/diff.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,72 @@
+# 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 Helpers
+ class Diff
+ include ERB::Util
+ include ActionView::Helpers::TagHelper
+ include ActionView::Helpers::TextHelper
+ attr_reader :diff, :words
+
+ def initialize(content_to, content_from)
+ @words = content_to.to_s.split(/(\s+)/)
+ @words = @words.select {|word| word != ' '}
+ words_from = content_from.to_s.split(/(\s+)/)
+ words_from = words_from.select {|word| word != ' '}
+ @diff = words_from.diff @words
+ end
+
+ def to_html
+ words = self.words.collect{|word| h(word)}
+ words_add = 0
+ words_del = 0
+ dels = 0
+ del_off = 0
+ diff.diffs.each do |diff|
+ add_at = nil
+ add_to = nil
+ del_at = nil
+ deleted = ""
+ diff.each do |change|
+ pos = change[1]
+ if change[0] == "+"
+ add_at = pos + dels unless add_at
+ add_to = pos + dels
+ words_add += 1
+ else
+ del_at = pos unless del_at
+ deleted << ' ' + h(change[2])
+ words_del += 1
+ end
+ end
+ if add_at
+ words[add_at] = '' + words[add_at]
+ words[add_to] = words[add_to] + ''
+ end
+ if del_at
+ words.insert del_at - del_off + dels + words_add, '' + deleted + ''
+ dels += 1
+ del_off += words_del
+ words_del = 0
+ end
+ end
+ words.join(' ')
+ end
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base
--- a/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/helpers/.svn/text-base/gantt.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -353,11 +353,11 @@
subject = ""
if issue.assigned_to.present?
assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
- subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
+ subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string).to_s
end
subject << view.link_to_issue(issue)
subject << ''
- html_subject(options, subject, :css => "issue-subject") + "\n"
+ html_subject(options, subject, :css => "issue-subject", :title => issue.subject) + "\n"
when :image
image_subject(options, issue.subject)
when :pdf
@@ -709,9 +709,10 @@
end
def html_subject(params, subject, options={})
- output = ""
- output << subject
- output << " "
+ style = "position: absolute;top:#{params[:top]}px;left:#{params[:indent]}px;"
+ style << "width:#{params[:subject_width] - params[:indent]}px;" if params[:subject_width]
+
+ output = view.content_tag 'div', subject, :class => options[:css], :style => style, :title => options[:title]
@subjects << output
output
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/diff.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/helpers/diff.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,72 @@
+# 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 Helpers
+ class Diff
+ include ERB::Util
+ include ActionView::Helpers::TagHelper
+ include ActionView::Helpers::TextHelper
+ attr_reader :diff, :words
+
+ def initialize(content_to, content_from)
+ @words = content_to.to_s.split(/(\s+)/)
+ @words = @words.select {|word| word != ' '}
+ words_from = content_from.to_s.split(/(\s+)/)
+ words_from = words_from.select {|word| word != ' '}
+ @diff = words_from.diff @words
+ end
+
+ def to_html
+ words = self.words.collect{|word| h(word)}
+ words_add = 0
+ words_del = 0
+ dels = 0
+ del_off = 0
+ diff.diffs.each do |diff|
+ add_at = nil
+ add_to = nil
+ del_at = nil
+ deleted = ""
+ diff.each do |change|
+ pos = change[1]
+ if change[0] == "+"
+ add_at = pos + dels unless add_at
+ add_to = pos + dels
+ words_add += 1
+ else
+ del_at = pos unless del_at
+ deleted << ' ' + h(change[2])
+ words_del += 1
+ end
+ end
+ if add_at
+ words[add_at] = '' + words[add_at]
+ words[add_to] = words[add_to] + ''
+ end
+ if del_at
+ words.insert del_at - del_off + dels + words_add, '' + deleted + ''
+ dels += 1
+ del_off += words_del
+ words_del = 0
+ end
+ end
+ words.join(' ')
+ end
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/helpers/gantt.rb
--- a/lib/redmine/helpers/gantt.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/helpers/gantt.rb Thu Mar 03 12:02:03 2011 +0000
@@ -353,11 +353,11 @@
subject = ""
if issue.assigned_to.present?
assigned_string = l(:field_assigned_to) + ": " + issue.assigned_to.name
- subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string)
+ subject << view.avatar(issue.assigned_to, :class => 'gravatar icon-gravatar', :size => 10, :title => assigned_string).to_s
end
subject << view.link_to_issue(issue)
subject << ''
- html_subject(options, subject, :css => "issue-subject") + "\n"
+ html_subject(options, subject, :css => "issue-subject", :title => issue.subject) + "\n"
when :image
image_subject(options, issue.subject)
when :pdf
@@ -709,9 +709,10 @@
end
def html_subject(params, subject, options={})
- output = ""
- output << subject
- output << " "
+ style = "position: absolute;top:#{params[:top]}px;left:#{params[:indent]}px;"
+ style << "width:#{params[:subject_width] - params[:indent]}px;" if params[:subject_width]
+
+ output = view.content_tag 'div', subject, :class => options[:css], :style => style, :title => options[:title]
@subjects << output
output
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/i18n.rb
--- a/lib/redmine/i18n.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/i18n.rb Thu Mar 03 12:02:03 2011 +0000
@@ -45,8 +45,8 @@
time = time.to_time if time.is_a?(String)
zone = User.current.time_zone
local = zone ? time.in_time_zone(zone) : (time.utc? ? time.localtime : time)
- Setting.time_format.blank? ? ::I18n.l(local, :format => (include_date ? :default : :time)) :
- ((include_date ? "#{format_date(time)} " : "") + "#{local.strftime(Setting.time_format)}")
+ (include_date ? "#{format_date(local)} " : "") +
+ (Setting.time_format.blank? ? ::I18n.l(local, :format => :time) : local.strftime(Setting.time_format))
end
def day_name(day)
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/pop3.rb
--- a/lib/redmine/pop3.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/pop3.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/.svn/all-wcprops
--- a/lib/redmine/scm/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/.svn/all-wcprops Thu Mar 03 12:02:03 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/4993/trunk/lib/redmine/scm
END
base.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/.svn/entries
--- a/lib/redmine/scm/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-03-03T05:51:46.224821Z
+4993
tmaruyama
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.043748Z
+2011-03-03T11:05:14.000000Z
3a053c03d210decd9105a24ff5e1aa8f
2010-02-16T22:41:59.625572Z
3440
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/.svn/all-wcprops
--- a/lib/redmine/scm/adapters/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,53 +1,53 @@
K 25
svn:wc:ra_dav:version-url
V 49
-/svn/!svn/ver/4688/trunk/lib/redmine/scm/adapters
+/svn/!svn/ver/4993/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/4993/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/4992/trunk/lib/redmine/scm/adapters/bazaar_adapter.rb
END
abstract_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 69
-/svn/!svn/ver/4613/trunk/lib/redmine/scm/adapters/abstract_adapter.rb
+/svn/!svn/ver/4959/trunk/lib/redmine/scm/adapters/abstract_adapter.rb
END
git_adapter.rb
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/4992/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/4993/trunk/lib/redmine/scm/adapters/mercurial_adapter.rb
END
filesystem_adapter.rb
K 25
svn:wc:ra_dav:version-url
V 71
-/svn/!svn/ver/1510/trunk/lib/redmine/scm/adapters/filesystem_adapter.rb
+/svn/!svn/ver/4941/trunk/lib/redmine/scm/adapters/filesystem_adapter.rb
END
cvs_adapter.rb
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/4992/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/4992/trunk/lib/redmine/scm/adapters/darcs_adapter.rb
END
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/.svn/entries
--- a/lib/redmine/scm/adapters/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:35.993532Z
-4688
+2011-03-03T05:51:46.224821Z
+4993
tmaruyama
@@ -32,11 +32,11 @@
-2011-01-13T14:09:38.000000Z
-a388eb02c3afb298abad571f6f059c6b
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-03-03T11:40:18.000000Z
+7e0b7e8a12996f271854b48e2d7611e4
+2011-03-03T05:51:46.224821Z
+4993
+tmaruyama
@@ -58,7 +58,7 @@
-10741
+11535
bazaar_adapter.rb
file
@@ -66,11 +66,11 @@
-2011-01-13T14:09:38.000000Z
-a8512f631e43683c18d08d5ff0c8f2a3
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-03-03T11:40:18.000000Z
+2614557fb37905301939071ec226fe16
+2011-03-03T05:32:33.802461Z
+4992
+tmaruyama
has-props
@@ -92,7 +92,7 @@
-7352
+8274
mercurial
dir
@@ -103,10 +103,10 @@
-2011-01-13T14:09:38.000000Z
-b63a1e9ae95a7fb7c053bc363cf6672b
-2011-01-02T09:45:05.291687Z
-4613
+2011-03-03T11:40:18.000000Z
+5cc0323dd42df9a3377099b0fdf9e95f
+2011-02-28T04:46:42.639929Z
+4959
tmaruyama
has-props
@@ -129,7 +129,7 @@
-9889
+9832
git_adapter.rb
file
@@ -137,10 +137,10 @@
-2011-01-13T14:09:38.000000Z
-eb7d9805e215f174c53d2806a94ce1ea
-2011-01-03T10:45:00.658370Z
-4624
+2011-03-03T11:40:18.000000Z
+ba10ae64fed2363f2533aa558752be37
+2011-03-03T05:32:33.802461Z
+4992
tmaruyama
has-props
@@ -163,7 +163,7 @@
-10102
+11905
mercurial_adapter.rb
file
@@ -171,10 +171,10 @@
-2011-01-13T14:09:38.000000Z
-c084fab581021c9e215c54af6815d6c9
-2011-01-11T08:41:35.993532Z
-4688
+2011-03-03T11:40:18.000000Z
+fe99380d7b29fe936554e10293751813
+2011-03-03T05:51:46.224821Z
+4993
tmaruyama
has-props
@@ -197,7 +197,7 @@
-8611
+11159
filesystem_adapter.rb
file
@@ -205,11 +205,11 @@
-2010-09-23T14:37:45.039790Z
-5f311f051bcb17a87475757807f8a63e
-2008-06-08T15:44:23.440995Z
-1510
-jplang
+2011-03-03T11:40:18.000000Z
+4acd04cfa5dac0e54a35b8ef4a565217
+2011-02-24T05:58:59.661399Z
+4941
+tmaruyama
has-props
@@ -231,7 +231,7 @@
-3509
+4266
cvs_adapter.rb
file
@@ -239,11 +239,11 @@
-2011-01-13T14:09:38.000000Z
-f7675b9449831276c8816fc5669245a1
-2011-01-01T11:13:33.540439Z
-4601
-jplang
+2011-03-03T11:40:18.000000Z
+a3914eff33df4b5a05a108945137360b
+2011-03-03T05:32:33.802461Z
+4992
+tmaruyama
has-props
@@ -265,7 +265,7 @@
-13521
+14573
darcs_adapter.rb
file
@@ -273,11 +273,11 @@
-2011-01-13T14:09:38.000000Z
-39ef0c99d6e5d7839059713e93624e2c
-2010-12-18T18:12:12.584764Z
-4539
-jplang
+2011-03-03T11:40:18.000000Z
+23725596dd2797f4dcdd5336e715c59a
+2011-03-03T05:32:33.802461Z
+4992
+tmaruyama
has-props
@@ -299,5 +299,5 @@
-7575
+8925
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/abstract_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -19,25 +19,29 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class CommandFailed < StandardError #:nodoc:
end
-
+
class AbstractAdapter #:nodoc:
class << self
+ def client_command
+ ""
+ end
+
# Returns the version of the scm client
# Eg: [1, 5, 0] or [] if unknown
def client_version
[]
end
-
+
# Returns the version string of the scm client
# Eg: '1.5.0' or 'Unknown version' if unknown
def client_version_string
v = client_version || 'Unknown version'
v.is_a?(Array) ? v.join('.') : v.to_s
end
-
+
# Returns true if the current client version is above
# or equals the given one
# If option is :unknown is set to true, it will return
@@ -45,19 +49,32 @@
def client_version_above?(v, options={})
((client_version <=> v) >= 0) || (client_version.empty? && options[:unknown])
end
+
+ def client_available
+ true
+ end
+
+ def shell_quote(str)
+ if Redmine::Platform.mswin?
+ '"' + str.gsub(/"/, '\\"') + '"'
+ else
+ "'" + str.gsub(/'/, "'\"'\"'") + "'"
+ end
+ end
end
-
- def initialize(url, root_url=nil, login=nil, password=nil)
+
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@login = login if login && !login.empty?
@password = (password || "") if @login
@root_url = root_url.blank? ? retrieve_root_url : root_url
end
-
+
def adapter_name
'Abstract'
end
-
+
def supports_cat?
true
end
@@ -65,11 +82,11 @@
def supports_annotate?
respond_to?('annotate')
end
-
+
def root_url
@root_url
end
-
+
def url
@url
end
@@ -138,7 +155,7 @@
path ||= ''
(path[-1,1] == "/") ? path : "#{path}/"
end
-
+
def without_leading_slash(path)
path ||= ''
path.gsub(%r{^/+}, '')
@@ -148,13 +165,9 @@
path ||= ''
(path[-1,1] == "/") ? path[0..-2] : path
end
-
+
def shell_quote(str)
- if Redmine::Platform.mswin?
- '"' + str.gsub(/"/, '\\"') + '"'
- else
- "'" + str.gsub(/'/, "'\"'\"'") + "'"
- end
+ self.class.shell_quote(str)
end
private
@@ -168,19 +181,19 @@
base = path.match(/^\//) ? root_url : url
shell_quote("#{base}/#{path}".gsub(/[?<>\*]/, ''))
end
-
+
def logger
self.class.logger
end
-
+
def shellout(cmd, &block)
self.class.shellout(cmd, &block)
end
-
+
def self.logger
RAILS_DEFAULT_LOGGER
end
-
+
def self.shellout(cmd, &block)
logger.debug "Shelling out: #{strip_credential(cmd)}" if logger && logger.debug?
if Rails.env == 'development'
@@ -188,7 +201,12 @@
cmd = "#{cmd} 2>>#{RAILS_ROOT}/log/scm.stderr.log"
end
begin
- IO.popen(cmd, "r+") do |io|
+ if RUBY_VERSION < '1.9'
+ mode = "r+"
+ else
+ mode = "r+:ASCII-8BIT"
+ end
+ IO.popen(cmd, mode) do |io|
io.close_write
block.call(io) if block_given?
end
@@ -198,8 +216,8 @@
logger.error("SCM command failed, make sure that your SCM binary (eg. svn) is in PATH (#{ENV['PATH']}): #{strip_credential(cmd)}\n with: #{msg}")
raise CommandFailed.new(msg)
end
- end
-
+ end
+
# Hides username/password in a given command
def self.strip_credential(cmd)
q = (Redmine::Platform.mswin? ? '"' : "'")
@@ -209,8 +227,19 @@
def strip_credential(cmd)
self.class.strip_credential(cmd)
end
+
+ def scm_iconv(to, from, str)
+ return nil if str.nil?
+ return str if to == from
+ begin
+ Iconv.conv(to, from, str)
+ rescue Iconv::Failure => err
+ logger.error("failed to convert from #{from} to #{to}. #{err}")
+ nil
+ end
+ end
end
-
+
class Entries < Array
def sort_by_name
sort {|x,y|
@@ -219,7 +248,7 @@
else
x.kind <=> y.kind
end
- }
+ }
end
def revisions
@@ -295,29 +324,8 @@
def format_identifier
identifier
end
+ end
- def save(repo)
- Changeset.transaction do
- changeset = Changeset.new(
- :repository => repo,
- :revision => identifier,
- :scmid => scmid,
- :committer => author,
- :committed_on => time,
- :comments => message)
-
- if changeset.save
- paths.each do |file|
- Change.create(
- :changeset => changeset,
- :action => file[:action],
- :path => file[:path])
- end
- end
- end
- end
- end
-
class Annotate
attr_reader :lines, :revisions
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/bazaar_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -19,15 +19,47 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class BazaarAdapter < AbstractAdapter
-
+
# Bazaar executable name
- BZR_BIN = "bzr"
-
+ BZR_BIN = Redmine::Configuration['scm_bazaar_command'] || "bzr"
+
+ class << self
+ def client_command
+ @@bin ||= BZR_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(BZR_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ !client_version.empty?
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
+ end
+ end
+
# Get info about the repository
def info
- cmd = "#{BZR_BIN} revno #{target('')}"
+ cmd = "#{self.class.sq_bin} revno #{target('')}"
info = nil
shellout(cmd) do |io|
if io.read =~ %r{^(\d+)\r?$}
@@ -43,13 +75,13 @@
rescue CommandFailed
return nil
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path ||= ''
entries = Entries.new
- cmd = "#{BZR_BIN} ls -v --show-ids"
+ cmd = "#{self.class.sq_bin} ls -v --show-ids"
identifier = -1 unless identifier && identifier.to_i > 0
cmd << " -r#{identifier.to_i}"
cmd << " #{target(path)}"
@@ -71,13 +103,13 @@
logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
entries.sort_by_name
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path ||= ''
identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : 'last:1'
identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
revisions = Revisions.new
- cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
+ cmd = "#{self.class.sq_bin} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
shellout(cmd) do |io|
revision = nil
parsing = nil
@@ -132,7 +164,7 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil)
path ||= ''
if identifier_to
@@ -143,7 +175,7 @@
if identifier_from
identifier_from = identifier_from.to_i
end
- cmd = "#{BZR_BIN} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
+ cmd = "#{self.class.sq_bin} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
diff = []
shellout(cmd) do |io|
io.each_line do |line|
@@ -153,9 +185,9 @@
#return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
- cmd = "#{BZR_BIN} cat"
+ cmd = "#{self.class.sq_bin} cat"
cmd << " -r#{identifier.to_i}" if identifier && identifier.to_i > 0
cmd << " #{target(path)}"
cat = nil
@@ -166,9 +198,9 @@
return nil if $? && $?.exitstatus != 0
cat
end
-
+
def annotate(path, identifier=nil)
- cmd = "#{BZR_BIN} annotate --all"
+ cmd = "#{self.class.sq_bin} annotate --all"
cmd << " -r#{identifier.to_i}" if identifier && identifier.to_i > 0
cmd << " #{target(path)}"
blame = Annotate.new
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/cvs_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -23,14 +23,47 @@
class CvsAdapter < AbstractAdapter
# CVS executable name
- CVS_BIN = "cvs"
-
+ CVS_BIN = Redmine::Configuration['scm_cvs_command'] || "cvs"
+
+ class << self
+ def client_command
+ @@bin ||= CVS_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(CVS_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ client_version_above?([1, 12])
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)}m)
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
+ end
+ end
+
# Guidelines for the input:
# url -> the project-path, relative to the cvsroot (eg. module name)
# root_url -> the good old, sometimes damned, CVSROOT
# login -> unnecessary
# password -> unnecessary too
- def initialize(url, root_url=nil, login=nil, password=nil)
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@login = login if login && !login.empty?
@password = (password || "") if @login
@@ -38,24 +71,24 @@
raise CommandFailed if root_url.blank?
@root_url = root_url
end
-
+
def root_url
@root_url
end
-
+
def url
@url
end
-
+
def info
logger.debug " info"
Info.new({:root_url => @root_url, :lastrev => nil})
end
-
+
def get_previous_revision(revision)
CvsRevisionHelper.new(revision).prevRev
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
# this method is used by the repository-browser (aka LIST)
@@ -63,14 +96,14 @@
logger.debug " entries '#{path}' with identifier '#{identifier}'"
path_with_project="#{url}#{with_leading_slash(path)}"
entries = Entries.new
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rls -e"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rls -e"
cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
io.each_line(){|line|
fields=line.chop.split('/',-1)
logger.debug(">>InspectLine #{fields.inspect}")
-
+
if fields[0]!="D"
entries << Entry.new({:name => fields[-5],
#:path => fields[-4].include?(path)?fields[-4]:(path + "/"+ fields[-4]),
@@ -96,20 +129,20 @@
end
return nil if $? && $?.exitstatus != 0
entries.sort_by_name
- end
+ end
STARTLOG="----------------------------"
ENDLOG ="============================================================================="
-
+
# Returns all revisions found between identifier_from and identifier_to
# in the repository. both identifier have to be dates or nil.
# these method returns nothing but yield every result in block
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={}, &block)
logger.debug " revisions path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
-
+
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 = "#{self.class.sq_bin} -d #{shell_quote root_url} rlog"
+ cmd << " -d\">#{time_to_cvstime_rlog(identifier_from)}\"" if identifier_from
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
state="entry_start"
@@ -123,7 +156,7 @@
file_state=nil
branch_map=nil
- io.each_line() do |line|
+ io.each_line() do |line|
if state!="revision" && /^#{ENDLOG}/ =~ line
commit_log=String.new
@@ -162,9 +195,9 @@
end
next
elsif state=="revision"
- if /^#{ENDLOG}/ =~ line || /^#{STARTLOG}/ =~ line
+ if /^#{ENDLOG}/ =~ line || /^#{STARTLOG}/ =~ line
if revision
-
+
revHelper=CvsRevisionHelper.new(revision)
revBranch="HEAD"
@@ -176,7 +209,7 @@
logger.debug("********** YIELD Revision #{revision}::#{revBranch}")
- yield Revision.new({
+ yield Revision.new({
:time => date,
:author => author,
:message=>commit_log.chomp,
@@ -188,9 +221,9 @@
:kind=>'file',
:action=>file_state
}]
- })
+ })
end
-
+
commit_log=String.new
revision=nil
@@ -199,7 +232,7 @@
end
next
end
-
+
if /^branches: (.+)$/ =~ line
#TODO: version.branch = $1
elsif /^revision (\d+(?:\.\d+)+).*$/ =~ line
@@ -216,20 +249,20 @@
# version.line_minus = linechanges[2]
# else
# version.line_plus = 0
- # version.line_minus = 0
- # end
- else
+ # version.line_minus = 0
+ # end
+ else
commit_log << line unless line =~ /^\*\*\* empty log message \*\*\*/
- end
- end
+ end
+ end
end
end
- end
-
+ end
+
def diff(path, identifier_from, identifier_to=nil)
logger.debug " diff path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
diff = []
shellout(cmd) do |io|
io.each_line do |line|
@@ -238,28 +271,29 @@
end
return nil if $? && $?.exitstatus != 0
diff
- end
-
+ end
+
def cat(path, identifier=nil)
identifier = (identifier) ? identifier : "HEAD"
logger.debug " cat path:'#{path}',identifier #{identifier}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} co"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} co"
cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
cmd << " -p #{shell_quote path_with_project}"
cat = nil
shellout(cmd) do |io|
+ io.binmode
cat = io.read
end
return nil if $? && $?.exitstatus != 0
cat
- end
+ end
def annotate(path, identifier=nil)
identifier = (identifier) ? identifier.to_i : "HEAD"
logger.debug " annotate path:'#{path}',identifier #{identifier}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
blame = Annotate.new
shellout(cmd) do |io|
io.each_line do |line|
@@ -270,9 +304,9 @@
return nil if $? && $?.exitstatus != 0
blame
end
-
+
private
-
+
# Returns the root url without the connexion string
# :pserver:anonymous@foo.bar:/path => /path
# :ext:cvsservername:/path => /path
@@ -290,6 +324,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\//,''))
@@ -339,7 +379,11 @@
private
def buildRevision(rev)
if rev== 0
- @base
+ if @branchid.nil?
+ @base+".0"
+ else
+ @base
+ end
elsif @branchid.nil?
@base+"."+rev.to_s
else
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/darcs_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -20,31 +20,45 @@
module Redmine
module Scm
- module Adapters
- class DarcsAdapter < AbstractAdapter
+ module Adapters
+ class DarcsAdapter < AbstractAdapter
# Darcs executable name
- DARCS_BIN = "darcs"
-
+ DARCS_BIN = Redmine::Configuration['scm_darcs_command'] || "darcs"
+
class << self
+ def client_command
+ @@bin ||= DARCS_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(DARCS_BIN)
+ end
+
def client_version
@@client_version ||= (darcs_binary_version || [])
end
-
+
+ def client_available
+ !client_version.empty?
+ 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.dup
+ if darcsversion.respond_to?(:force_encoding)
+ darcsversion.force_encoding('ASCII-8BIT')
end
- return nil if $? && $?.exitstatus != 0
- version
+ if m = darcsversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def darcs_binary_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
end
- def initialize(url, root_url=nil, login=nil, password=nil)
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@root_url = url
end
@@ -59,14 +73,16 @@
rev = revisions(nil,nil,nil,{:limit => 1})
rev ? Info.new({:root_url => @url, :lastrev => rev.last}) : nil
end
-
+
# Returns an Entries collection
# 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?
- entries = Entries.new
- cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
+ if path.blank?
+ path = ( self.class.client_version_above?([2, 2, 0]) ? @url : '.' )
+ end
+ entries = Entries.new
+ cmd = "#{self.class.sq_bin} annotate --repodir #{shell_quote @url} --xml-output"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
cmd << " #{shell_quote path}"
shellout(cmd) do |io|
@@ -86,11 +102,11 @@
return nil if $? && $?.exitstatus != 0
entries.compact.sort_by_name
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path = '.' if path.blank?
revisions = Revisions.new
- cmd = "#{DARCS_BIN} changes --repodir #{shell_quote @url} --xml-output"
+ cmd = "#{self.class.sq_bin} changes --repodir #{shell_quote @url} --xml-output"
cmd << " --from-match #{shell_quote("hash #{identifier_from}")}" if identifier_from
cmd << " --last #{options[:limit].to_i}" if options[:limit]
shellout(cmd) do |io|
@@ -113,10 +129,10 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil)
path = '*' if path.blank?
- cmd = "#{DARCS_BIN} diff --repodir #{shell_quote @url}"
+ cmd = "#{self.class.sq_bin} diff --repodir #{shell_quote @url}"
if identifier_to.nil?
cmd << " --match #{shell_quote("hash #{identifier_from}")}"
else
@@ -133,9 +149,9 @@
return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
- cmd = "#{DARCS_BIN} show content --repodir #{shell_quote @url}"
+ cmd = "#{self.class.sq_bin} show content --repodir #{shell_quote @url}"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
cmd << " #{shell_quote path}"
cat = nil
@@ -148,7 +164,7 @@
end
private
-
+
# Returns an Entry from the given XML element
# or nil if the entry was deleted
def entry_from_xml(element, path_prefix)
@@ -156,7 +172,7 @@
if modified_element.elements['modified_how'].text.match(/removed/)
return nil
end
-
+
Entry.new({:name => element.attributes['name'],
:path => path_prefix + element.attributes['name'],
:kind => element.name == 'file' ? 'file' : 'dir',
@@ -165,12 +181,41 @@
:identifier => nil,
:scmid => modified_element.elements['patch'].attributes['hash']
})
- })
+ })
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)
- cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
+ def get_paths_for_patch_raw(hash)
+ cmd = "#{self.class.sq_bin} annotate --repodir #{shell_quote @url} --summary --xml-output"
cmd << " --match #{shell_quote("hash #{hash}")} "
paths = []
shellout(cmd) do |io|
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter.rb.svn-base
--- a/lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/filesystem_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -23,12 +23,19 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class FilesystemAdapter < AbstractAdapter
-
- def initialize(url, root_url=nil, login=nil, password=nil)
+ class << self
+ def client_available
+ true
+ end
+ end
+
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = with_trailling_slash(url)
+ @path_encoding = path_encoding || 'UTF-8'
end
def format_path_ends(path, leading=true, trailling=true)
@@ -46,47 +53,59 @@
rescue CommandFailed
return nil
end
-
+
def entries(path="", identifier=nil)
entries = Entries.new
- Dir.new(target(path)).each do |e|
- relative_path = format_path_ends((format_path_ends(path,
- false,
- true) + e),
- false,false)
- target = target(relative_path)
- entries <<
- Entry.new({ :name => File.basename(e),
+ trgt_utf8 = target(path)
+ trgt = scm_iconv(@path_encoding, 'UTF-8', trgt_utf8)
+ Dir.new(trgt).each do |e1|
+ e_utf8 = scm_iconv('UTF-8', @path_encoding, e1)
+ relative_path_utf8 = format_path_ends((format_path_ends(path,false,true) + e_utf8),false,false)
+ t1_utf8 = target(relative_path_utf8)
+ t1 = scm_iconv(@path_encoding, 'UTF-8', t1_utf8)
+ relative_path = scm_iconv(@path_encoding, 'UTF-8', relative_path_utf8)
+ e1 = scm_iconv(@path_encoding, 'UTF-8', e_utf8)
+ if File.exist?(t1) and # paranoid test
+ %w{file directory}.include?(File.ftype(t1)) and # avoid special types
+ not File.basename(e1).match(/^\.+$/) # avoid . and ..
+ p1 = File.readable?(t1) ? relative_path : ""
+ utf_8_path = scm_iconv('UTF-8', @path_encoding, p1)
+ entries <<
+ Entry.new({ :name => scm_iconv('UTF-8', @path_encoding, File.basename(e1)),
# below : list unreadable files, but dont link them.
- :path => File.readable?(target) ? relative_path : "",
- :kind => (File.directory?(target) ? 'dir' : 'file'),
- :size => (File.directory?(target) ? nil : [File.size(target)].pack('l').unpack('L').first),
+ :path => utf_8_path,
+ :kind => (File.directory?(t1) ? 'dir' : 'file'),
+ :size => (File.directory?(t1) ? nil : [File.size(t1)].pack('l').unpack('L').first),
:lastrev =>
- Revision.new({:time => (File.mtime(target)).localtime,
- })
- }) if File.exist?(target) and # paranoid test
- %w{file directory}.include?(File.ftype(target)) and # avoid special types
- not File.basename(e).match(/^\.+$/) # avoid . and ..
+ Revision.new({:time => (File.mtime(t1)) })
+ })
+ end
end
entries.sort_by_name
+ rescue => err
+ logger.error "scm: filesystem: error: #{err.message}"
+ raise CommandFailed.new(err.message)
end
-
+
def cat(path, identifier=nil)
- File.new(target(path), "rb").read
+ p = scm_iconv(@path_encoding, 'UTF-8', target(path))
+ File.new(p, "rb").read
+ rescue => err
+ logger.error "scm: filesystem: error: #{err.message}"
+ raise CommandFailed.new(err.message)
end
private
-
+
# AbstractAdapter::target is implicitly made to quote paths.
# Here we do not shell-out, so we do not want quotes.
def target(path=nil)
- #Prevent the use of ..
+ # Prevent the use of ..
if path and !path.match(/(^|\/)\.\.(\/|$)/)
return "#{self.url}#{without_leading_slash(path)}"
end
return self.url
end
-
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/git_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -19,10 +19,53 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class GitAdapter < AbstractAdapter
+
+ SCM_GIT_REPORT_LAST_COMMIT = true
+
# Git executable name
- GIT_BIN = "git"
+ GIT_BIN = Redmine::Configuration['scm_git_command'] || "git"
+
+ # raised if scm command exited with error, e.g. unknown revision.
+ class ScmCommandAborted < CommandFailed; end
+
+ class << self
+ def client_command
+ @@bin ||= GIT_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(GIT_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ !client_version.empty?
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version --no-color") { |io| io.read }.to_s
+ end
+ end
+
+ def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil)
+ super
+ @flag_report_last_commit = SCM_GIT_REPORT_LAST_COMMIT
+ end
def info
begin
@@ -35,7 +78,7 @@
def branches
return @branches if @branches
@branches = []
- cmd = "#{GIT_BIN} --git-dir #{target('')} branch --no-color"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} branch --no-color"
shellout(cmd) do |io|
io.each_line do |line|
@branches << line.match('\s*\*?\s*(.*)$')[1]
@@ -46,20 +89,20 @@
def tags
return @tags if @tags
- cmd = "#{GIT_BIN} --git-dir #{target('')} tag"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} tag"
shellout(cmd) do |io|
@tags = io.readlines.sort!.map{|t| t.strip}
end
end
def default_branch
- branches.include?('master') ? 'master' : branches.first
+ branches.include?('master') ? 'master' : branches.first
end
-
+
def entries(path=nil, identifier=nil)
path ||= ''
entries = Entries.new
- cmd = "#{GIT_BIN} --git-dir #{target('')} ls-tree -l "
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} ls-tree -l "
cmd << shell_quote("HEAD:" + path) if identifier.nil?
cmd << shell_quote(identifier + ":" + path) if identifier
shellout(cmd) do |io|
@@ -75,7 +118,7 @@
:path => full_path,
:kind => (type == "tree") ? 'dir' : 'file',
:size => (type == "tree") ? nil : size,
- :lastrev => lastrev(full_path,identifier)
+ :lastrev => @flag_report_last_commit ? lastrev(full_path,identifier) : Revision.new
}) unless entries.detect{|entry| entry.name == name}
end
end
@@ -84,18 +127,17 @@
entries.sort_by_name
end
- def lastrev(path,rev)
+ def lastrev(path, rev)
return nil if path.nil?
- cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --date=iso --pretty=fuller --no-merges -n 1 "
- cmd << " #{shell_quote rev} " if rev
- cmd << "-- #{shell_quote path} " unless path.empty?
+ cmd_args = %w|log --no-color --encoding=UTF-8 --date=iso --pretty=fuller --no-merges -n 1|
+ cmd_args << rev if rev
+ cmd_args << "--" << path unless path.empty?
lines = []
- shellout(cmd) { |io| lines = io.readlines }
- return nil if $? && $?.exitstatus != 0
+ scm_cmd(*cmd_args) { |io| lines = io.readlines }
begin
id = lines[0].split[1]
author = lines[1].match('Author:\s+(.*)$')[1]
- time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1]).localtime
+ time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1])
Revision.new({
:identifier => id,
@@ -104,26 +146,29 @@
:time => time,
:message => nil,
:paths => nil
- })
+ })
rescue NoMethodError => e
logger.error("The revision '#{path}' has a wrong format")
return nil
end
+ rescue ScmCommandAborted
+ nil
end
def revisions(path, identifier_from, identifier_to, options={})
revisions = Revisions.new
+ cmd_args = %w|log --no-color --encoding=UTF-8 --raw --date=iso --pretty=fuller|
+ cmd_args << "--reverse" if options[:reverse]
+ cmd_args << "--all" if options[:all]
+ cmd_args << "-n" << "#{options[:limit].to_i}" if options[:limit]
+ from_to = ""
+ from_to << "#{identifier_from}.." if identifier_from
+ from_to << "#{identifier_to}" if identifier_to
+ cmd_args << from_to if !from_to.empty?
+ cmd_args << "--since=#{options[:since].strftime("%Y-%m-%d %H:%M:%S")}" if options[:since]
+ cmd_args << "--" << path if path && !path.empty?
- cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --raw --date=iso --pretty=fuller "
- cmd << " --reverse " if options[:reverse]
- cmd << " --all " if options[:all]
- cmd << " -n #{options[:limit].to_i} " if options[:limit]
- cmd << "#{shell_quote(identifier_from + '..')}" if identifier_from
- cmd << "#{shell_quote identifier_to}" if identifier_to
- cmd << " --since=#{shell_quote(options[:since].strftime("%Y-%m-%d %H:%M:%S"))}" if options[:since]
- cmd << " -- #{shell_quote path}" if path && !path.empty?
-
- shellout(cmd) do |io|
+ scm_cmd *cmd_args do |io|
files=[]
changeset = {}
parsing_descr = 0 #0: not parsing desc or files, 1: parsing desc, 2: parsing files
@@ -200,8 +245,8 @@
end
end
end
-
- return nil if $? && $?.exitstatus != 0
+ revisions
+ rescue ScmCommandAborted
revisions
end
@@ -209,9 +254,9 @@
path ||= ''
if identifier_to
- cmd = "#{GIT_BIN} --git-dir #{target('')} diff --no-color #{shell_quote identifier_to} #{shell_quote identifier_from}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} diff --no-color #{shell_quote identifier_to} #{shell_quote identifier_from}"
else
- cmd = "#{GIT_BIN} --git-dir #{target('')} show --no-color #{shell_quote identifier_from}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} show --no-color #{shell_quote identifier_from}"
end
cmd << " -- #{shell_quote path}" unless path.empty?
@@ -227,7 +272,7 @@
def annotate(path, identifier=nil)
identifier = 'HEAD' if identifier.blank?
- cmd = "#{GIT_BIN} --git-dir #{target('')} blame -p #{shell_quote identifier} -- #{shell_quote path}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} blame -p #{shell_quote identifier} -- #{shell_quote path}"
blame = Annotate.new
content = nil
shellout(cmd) { |io| io.binmode; content = io.read }
@@ -250,12 +295,12 @@
end
blame
end
-
+
def cat(path, identifier=nil)
if identifier.nil?
identifier = 'HEAD'
end
- cmd = "#{GIT_BIN} --git-dir #{target('')} show --no-color #{shell_quote(identifier + ':' + path)}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} show --no-color #{shell_quote(identifier + ':' + path)}"
cat = nil
shellout(cmd) do |io|
io.binmode
@@ -271,6 +316,18 @@
identifier[0,8]
end
end
+
+ def scm_cmd(*args, &block)
+ repo_path = root_url || url
+ full_args = [GIT_BIN, '--git-dir', repo_path]
+ full_args += args
+ ret = shellout(full_args.map { |e| shell_quote e.to_s }.join(' '), &block)
+ if $? && $?.exitstatus != 0
+ raise ScmCommandAborted, "git exited with non-zero status: #{$?.exitstatus}"
+ end
+ ret
+ end
+ private :scm_cmd
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -20,32 +20,51 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class MercurialAdapter < AbstractAdapter
# Mercurial executable name
- HG_BIN = "hg"
- TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
+ HG_BIN = Redmine::Configuration['scm_mercurial_command'] || "hg"
+ HELPERS_DIR = File.dirname(__FILE__) + "/mercurial"
+ HG_HELPER_EXT = "#{HELPERS_DIR}/redminehelper.py"
TEMPLATE_NAME = "hg-template"
TEMPLATE_EXTENSION = "tmpl"
+ # raised if hg command exited with error, e.g. unknown revision.
+ class HgCommandAborted < CommandFailed; end
+
class << self
+ def client_command
+ @@bin ||= HG_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(HG_BIN)
+ end
+
def client_version
@@client_version ||= (hgversion || [])
end
- def hgversion
+ def client_available
+ !client_version.empty?
+ end
+
+ def hgversion
# The hg version is expressed either as a
# release number (eg 0.9.5 or 1.0) or as a revision
# id composed of 12 hexa characters.
- theversion = hgversion_from_command_line
+ theversion = hgversion_from_command_line.dup
+ if theversion.respond_to?(:force_encoding)
+ theversion.force_encoding('ASCII-8BIT')
+ end
if m = theversion.match(%r{\A(.*?)((\d+\.)+\d+)})
m[2].scan(%r{\d+}).collect(&:to_i)
end
end
def hgversion_from_command_line
- shellout("#{HG_BIN} --version") { |io| io.read }.to_s
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
def template_path
@@ -58,153 +77,193 @@
else
ver = "0.9.5"
end
- "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
+ "#{HELPERS_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
end
end
- def info
- cmd = "#{HG_BIN} -R #{target('')} root"
- root_url = nil
- shellout(cmd) do |io|
- root_url = io.read
- end
- return nil if $? && $?.exitstatus != 0
- info = Info.new({:root_url => root_url.chomp,
- :lastrev => revisions(nil,nil,nil,{:limit => 1}).last
- })
- info
- rescue CommandFailed
- return nil
+ def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil)
+ super
+ @path_encoding = path_encoding || 'UTF-8'
end
- def entries(path=nil, identifier=nil)
- path ||= ''
- entries = Entries.new
- cmd = "#{HG_BIN} -R #{target('')} --cwd #{target('')} locate"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " " + shell_quote("path:#{path}") unless path.empty?
- shellout(cmd) do |io|
- io.each_line do |line|
- # HG uses antislashs as separator on Windows
- line = line.gsub(/\\/, "/")
- if path.empty? or e = line.gsub!(%r{^#{with_trailling_slash(path)}},'')
- e ||= line
- e = e.chomp.split(%r{[\/\\]})
- entries << Entry.new({:name => e.first,
- :path => (path.nil? or path.empty? ? e.first : "#{with_trailling_slash(path)}#{e.first}"),
- :kind => (e.size > 1 ? 'dir' : 'file'),
- :lastrev => Revision.new
- }) unless e.empty? || entries.detect{|entry| entry.name == e.first}
- end
+ def info
+ tip = summary['repository']['tip']
+ Info.new(:root_url => CGI.unescape(summary['repository']['root']),
+ :lastrev => Revision.new(:revision => tip['revision'],
+ :scmid => tip['node']))
+ end
+
+ def tags
+ as_ary(summary['repository']['tag']).map { |e| e['name'] }
+ end
+
+ # Returns map of {'tag' => 'nodeid', ...}
+ def tagmap
+ alist = as_ary(summary['repository']['tag']).map do |e|
+ e.values_at('name', 'node')
+ end
+ Hash[*alist.flatten]
+ end
+
+ def branches
+ as_ary(summary['repository']['branch']).map { |e| e['name'] }
+ end
+
+ # Returns map of {'branch' => 'nodeid', ...}
+ def branchmap
+ alist = as_ary(summary['repository']['branch']).map do |e|
+ e.values_at('name', 'node')
+ end
+ Hash[*alist.flatten]
+ end
+
+ def summary
+ return @summary if @summary
+ hg 'rhsummary' do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
+ begin
+ @summary = ActiveSupport::XmlMini.parse(output)['rhsummary']
+ rescue
end
end
- return nil if $? && $?.exitstatus != 0
- entries.sort_by_name
+ end
+ private :summary
+
+ def entries(path=nil, identifier=nil)
+ p1 = scm_iconv(@path_encoding, 'UTF-8', path)
+ manifest = hg('rhmanifest', '-r', CGI.escape(hgrev(identifier)),
+ CGI.escape(without_leading_slash(p1.to_s))) do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
+ begin
+ ActiveSupport::XmlMini.parse(output)['rhmanifest']['repository']['manifest']
+ rescue
+ end
+ end
+ path_prefix = path.blank? ? '' : with_trailling_slash(path)
+
+ entries = Entries.new
+ as_ary(manifest['dir']).each do |e|
+ n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name']))
+ p = "#{path_prefix}#{n}"
+ entries << Entry.new(:name => n, :path => p, :kind => 'dir')
+ end
+
+ as_ary(manifest['file']).each do |e|
+ n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name']))
+ p = "#{path_prefix}#{n}"
+ lr = Revision.new(:revision => e['revision'], :scmid => e['node'],
+ :identifier => e['node'],
+ :time => Time.at(e['time'].to_i))
+ entries << Entry.new(:name => n, :path => p, :kind => 'file',
+ :size => e['size'].to_i, :lastrev => lr)
+ end
+
+ entries
+ rescue HgCommandAborted
+ nil # means not found
end
- # Fetch the revisions by using a template file that
+ def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
+ revs = Revisions.new
+ each_revision(path, identifier_from, identifier_to, options) { |e| revs << e }
+ revs
+ end
+
+ # Iterates the revisions by using a template file that
# makes Mercurial produce a xml output.
- def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
- revisions = Revisions.new
- cmd = "#{HG_BIN} --debug --encoding utf8 -R #{target('')} log -C --style #{shell_quote self.class.template_path}"
- if identifier_from && identifier_to
- cmd << " -r #{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
- elsif identifier_from
- cmd << " -r #{hgrev(identifier_from)}:"
- end
- cmd << " --limit #{options[:limit].to_i}" if options[:limit]
- cmd << " #{shell_quote path}" unless path.blank?
- shellout(cmd) do |io|
+ def each_revision(path=nil, identifier_from=nil, identifier_to=nil, options={})
+ hg_args = ['log', '--debug', '-C', '--style', self.class.template_path]
+ hg_args << '-r' << "#{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
+ hg_args << '--limit' << options[:limit] if options[:limit]
+ hg_args << hgtarget(path) unless path.blank?
+ log = hg(*hg_args) do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
- # HG doesn't close the XML Document...
- doc = REXML::Document.new(io.read << "")
- doc.elements.each("log/logentry") do |logentry|
- paths = []
- copies = logentry.get_elements('paths/path-copied')
- logentry.elements.each("paths/path") do |path|
- # Detect if the added file is a copy
- if path.attributes['action'] == 'A' and c = copies.find{ |e| e.text == path.text }
- from_path = c.attributes['copyfrom-path']
- from_rev = logentry.attributes['revision']
- end
- paths << {:action => path.attributes['action'],
- :path => "/#{CGI.unescape(path.text)}",
- :from_path => from_path ? "/#{CGI.unescape(from_path)}" : nil,
- :from_revision => from_rev ? from_rev : nil
- }
- end
- paths.sort! { |x,y| x[:path] <=> y[:path] }
-
- revisions << Revision.new({:identifier => logentry.attributes['revision'],
- :scmid => logentry.attributes['node'],
- :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
- :time => Time.parse(logentry.elements['date'].text).localtime,
- :message => logentry.elements['msg'].text,
- :paths => paths
- })
- end
+ # Mercurial < 1.5 does not support footer template for ''
+ ActiveSupport::XmlMini.parse("#{output}")['log']
rescue
- logger.debug($!)
end
end
- return nil if $? && $?.exitstatus != 0
- revisions
+
+ as_ary(log['logentry']).each do |le|
+ cpalist = as_ary(le['paths']['path-copied']).map do |e|
+ [e['__content__'], e['copyfrom-path']].map { |s| CGI.unescape(s) }
+ end
+ cpmap = Hash[*cpalist.flatten]
+
+ paths = as_ary(le['paths']['path']).map do |e|
+ p = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['__content__']) )
+ {:action => e['action'], :path => with_leading_slash(p),
+ :from_path => (cpmap.member?(p) ? with_leading_slash(cpmap[p]) : nil),
+ :from_revision => (cpmap.member?(p) ? le['revision'] : nil)}
+ end.sort { |a, b| a[:path] <=> b[:path] }
+
+ yield Revision.new(:revision => le['revision'],
+ :scmid => le['node'],
+ :author => (le['author']['__content__'] rescue ''),
+ :time => Time.parse(le['date']['__content__']).localtime,
+ :message => le['msg']['__content__'],
+ :paths => paths)
+ end
+ self
end
def diff(path, identifier_from, identifier_to=nil)
- path ||= ''
- diff_args = ''
+ hg_args = %w|rhdiff|
+ if identifier_to
+ hg_args << '-r' << hgrev(identifier_to) << '-r' << hgrev(identifier_from)
+ else
+ hg_args << '-c' << hgrev(identifier_from)
+ end
+ unless path.blank?
+ p = scm_iconv(@path_encoding, 'UTF-8', path)
+ hg_args << CGI.escape(hgtarget(p))
+ end
diff = []
- if identifier_to
- diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}"
- else
- if self.class.client_version_above?([1, 2])
- diff_args = "-c #{hgrev(identifier_from)}"
- else
- return []
- end
- end
- cmd = "#{HG_BIN} -R #{target('')} --config diff.git=false diff --nodates #{diff_args}"
- cmd << " -I #{target(path)}" unless path.empty?
- shellout(cmd) do |io|
+ hg *hg_args do |io|
io.each_line do |line|
diff << line
end
end
- return nil if $? && $?.exitstatus != 0
diff
+ rescue HgCommandAborted
+ nil # means not found
end
def cat(path, identifier=nil)
- cmd = "#{HG_BIN} -R #{target('')} cat"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " #{target(path)}"
- cat = nil
- shellout(cmd) do |io|
+ p = CGI.escape(scm_iconv(@path_encoding, 'UTF-8', path))
+ hg 'rhcat', '-r', hgrev(identifier), hgtarget(p) do |io|
io.binmode
- cat = io.read
+ io.read
end
- return nil if $? && $?.exitstatus != 0
- cat
+ rescue HgCommandAborted
+ nil # means not found
end
def annotate(path, identifier=nil)
- path ||= ''
- cmd = "#{HG_BIN} -R #{target('')}"
- cmd << " annotate -ncu"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " #{target(path)}"
+ p = CGI.escape(scm_iconv(@path_encoding, 'UTF-8', path))
blame = Annotate.new
- shellout(cmd) do |io|
+ hg 'rhannotate', '-ncu', '-r', hgrev(identifier), hgtarget(p) do |io|
io.each_line do |line|
+ line.force_encoding('ASCII-8BIT') if line.respond_to?(:force_encoding)
next unless line =~ %r{^([^:]+)\s(\d+)\s([0-9a-f]+):\s(.*)$}
r = Revision.new(:author => $1.strip, :revision => $2, :scmid => $3,
:identifier => $3)
blame.add_line($4.rstrip, r)
end
end
- return nil if $? && $?.exitstatus != 0
blame
+ rescue HgCommandAborted
+ nil # means not found or cannot be annotated
end
class Revision < Redmine::Scm::Adapters::Revision
@@ -214,11 +273,40 @@
end
end
+ # Runs 'hg' command with the given args
+ def hg(*args, &block)
+ repo_path = root_url || url
+ full_args = [HG_BIN, '-R', repo_path, '--encoding', 'utf-8']
+ full_args << '--config' << "extensions.redminehelper=#{HG_HELPER_EXT}"
+ full_args << '--config' << 'diff.git=false'
+ full_args += args
+ ret = shellout(full_args.map { |e| shell_quote e.to_s }.join(' '), &block)
+ if $? && $?.exitstatus != 0
+ raise HgCommandAborted, "hg exited with non-zero status: #{$?.exitstatus}"
+ end
+ ret
+ end
+ private :hg
+
# Returns correct revision identifier
- def hgrev(identifier)
- shell_quote(identifier.blank? ? 'tip' : identifier.to_s)
+ def hgrev(identifier, sq=false)
+ rev = identifier.blank? ? 'tip' : identifier.to_s
+ rev = shell_quote(rev) if sq
+ rev
end
private :hgrev
+
+ def hgtarget(path)
+ path ||= ''
+ root_url + '/' + without_leading_slash(path)
+ end
+ private :hgtarget
+
+ def as_ary(o)
+ return [] unless o
+ o.is_a?(Array) ? o : Array[o]
+ end
+ private :as_ary
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -20,38 +20,54 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class SubversionAdapter < AbstractAdapter
-
+
# SVN executable name
- SVN_BIN = "svn"
-
+ SVN_BIN = Redmine::Configuration['scm_subversion_command'] || "svn"
+
class << self
+ def client_command
+ @@bin ||= SVN_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(SVN_BIN)
+ end
+
def client_version
@@client_version ||= (svn_binary_version || [])
end
-
+
+ def client_available
+ !client_version.empty?
+ end
+
def svn_binary_version
- cmd = "#{SVN_BIN} --version"
- version = nil
- shellout(cmd) do |io|
- # Read svn version in first returned line
- if m = io.read.to_s.match(%r{\A(.*?)((\d+\.)+\d+)})
- version = m[2].scan(%r{\d+}).collect(&:to_i)
- end
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
end
- return nil if $? && $?.exitstatus != 0
- version
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
end
-
+
# Get info about the svn repository
def info
- cmd = "#{SVN_BIN} info --xml #{target}"
+ cmd = "#{self.class.sq_bin} info --xml #{target}"
cmd << credentials_string
info = nil
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
#root_url = doc.elements["info/entry/repository/root"].text
@@ -70,17 +86,20 @@
rescue CommandFailed
return nil
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path ||= ''
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
entries = Entries.new
- cmd = "#{SVN_BIN} list --xml #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} list --xml #{target(path)}@#{identifier}"
cmd << credentials_string
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['lists']['list'], 'entry') do |entry|
@@ -110,17 +129,20 @@
logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
entries.sort_by_name
end
-
+
def properties(path, identifier=nil)
# proplist xml output supported in svn 1.5.0 and higher
return nil unless self.class.client_version_above?([1, 5, 0])
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} proplist --verbose --xml #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} proplist --verbose --xml #{target(path)}@#{identifier}"
cmd << credentials_string
properties = {}
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['properties']['target'], 'property') do |property|
@@ -132,19 +154,22 @@
return nil if $? && $?.exitstatus != 0
properties
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path ||= ''
identifier_from = (identifier_from && identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
identifier_to = (identifier_to && identifier_to.to_i > 0) ? identifier_to.to_i : 1
revisions = Revisions.new
- cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
+ cmd = "#{self.class.sq_bin} log --xml -r #{identifier_from}:#{identifier_to}"
cmd << credentials_string
cmd << " --verbose " if options[:with_paths]
cmd << " --limit #{options[:limit].to_i}" if options[:limit]
cmd << ' ' + target(path)
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['log'], 'logentry') do |logentry|
@@ -171,13 +196,14 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil, type="inline")
path ||= ''
identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : ''
+
identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : (identifier_from.to_i - 1)
-
- cmd = "#{SVN_BIN} diff -r "
+
+ cmd = "#{self.class.sq_bin} diff -r "
cmd << "#{identifier_to}:"
cmd << "#{identifier_from}"
cmd << " #{target(path)}@#{identifier_from}"
@@ -191,10 +217,10 @@
return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} cat #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} cat #{target(path)}@#{identifier}"
cmd << credentials_string
cat = nil
shellout(cmd) do |io|
@@ -204,10 +230,10 @@
return nil if $? && $?.exitstatus != 0
cat
end
-
+
def annotate(path, identifier=nil)
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} blame #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} blame #{target(path)}@#{identifier}"
cmd << credentials_string
blame = Annotate.new
shellout(cmd) do |io|
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/abstract_adapter.rb
--- a/lib/redmine/scm/adapters/abstract_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/abstract_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -19,25 +19,29 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class CommandFailed < StandardError #:nodoc:
end
-
+
class AbstractAdapter #:nodoc:
class << self
+ def client_command
+ ""
+ end
+
# Returns the version of the scm client
# Eg: [1, 5, 0] or [] if unknown
def client_version
[]
end
-
+
# Returns the version string of the scm client
# Eg: '1.5.0' or 'Unknown version' if unknown
def client_version_string
v = client_version || 'Unknown version'
v.is_a?(Array) ? v.join('.') : v.to_s
end
-
+
# Returns true if the current client version is above
# or equals the given one
# If option is :unknown is set to true, it will return
@@ -45,19 +49,32 @@
def client_version_above?(v, options={})
((client_version <=> v) >= 0) || (client_version.empty? && options[:unknown])
end
+
+ def client_available
+ true
+ end
+
+ def shell_quote(str)
+ if Redmine::Platform.mswin?
+ '"' + str.gsub(/"/, '\\"') + '"'
+ else
+ "'" + str.gsub(/'/, "'\"'\"'") + "'"
+ end
+ end
end
-
- def initialize(url, root_url=nil, login=nil, password=nil)
+
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@login = login if login && !login.empty?
@password = (password || "") if @login
@root_url = root_url.blank? ? retrieve_root_url : root_url
end
-
+
def adapter_name
'Abstract'
end
-
+
def supports_cat?
true
end
@@ -65,11 +82,11 @@
def supports_annotate?
respond_to?('annotate')
end
-
+
def root_url
@root_url
end
-
+
def url
@url
end
@@ -138,7 +155,7 @@
path ||= ''
(path[-1,1] == "/") ? path : "#{path}/"
end
-
+
def without_leading_slash(path)
path ||= ''
path.gsub(%r{^/+}, '')
@@ -148,13 +165,9 @@
path ||= ''
(path[-1,1] == "/") ? path[0..-2] : path
end
-
+
def shell_quote(str)
- if Redmine::Platform.mswin?
- '"' + str.gsub(/"/, '\\"') + '"'
- else
- "'" + str.gsub(/'/, "'\"'\"'") + "'"
- end
+ self.class.shell_quote(str)
end
private
@@ -168,19 +181,19 @@
base = path.match(/^\//) ? root_url : url
shell_quote("#{base}/#{path}".gsub(/[?<>\*]/, ''))
end
-
+
def logger
self.class.logger
end
-
+
def shellout(cmd, &block)
self.class.shellout(cmd, &block)
end
-
+
def self.logger
RAILS_DEFAULT_LOGGER
end
-
+
def self.shellout(cmd, &block)
logger.debug "Shelling out: #{strip_credential(cmd)}" if logger && logger.debug?
if Rails.env == 'development'
@@ -188,7 +201,12 @@
cmd = "#{cmd} 2>>#{RAILS_ROOT}/log/scm.stderr.log"
end
begin
- IO.popen(cmd, "r+") do |io|
+ if RUBY_VERSION < '1.9'
+ mode = "r+"
+ else
+ mode = "r+:ASCII-8BIT"
+ end
+ IO.popen(cmd, mode) do |io|
io.close_write
block.call(io) if block_given?
end
@@ -198,8 +216,8 @@
logger.error("SCM command failed, make sure that your SCM binary (eg. svn) is in PATH (#{ENV['PATH']}): #{strip_credential(cmd)}\n with: #{msg}")
raise CommandFailed.new(msg)
end
- end
-
+ end
+
# Hides username/password in a given command
def self.strip_credential(cmd)
q = (Redmine::Platform.mswin? ? '"' : "'")
@@ -209,8 +227,19 @@
def strip_credential(cmd)
self.class.strip_credential(cmd)
end
+
+ def scm_iconv(to, from, str)
+ return nil if str.nil?
+ return str if to == from
+ begin
+ Iconv.conv(to, from, str)
+ rescue Iconv::Failure => err
+ logger.error("failed to convert from #{from} to #{to}. #{err}")
+ nil
+ end
+ end
end
-
+
class Entries < Array
def sort_by_name
sort {|x,y|
@@ -219,7 +248,7 @@
else
x.kind <=> y.kind
end
- }
+ }
end
def revisions
@@ -295,29 +324,8 @@
def format_identifier
identifier
end
+ end
- def save(repo)
- Changeset.transaction do
- changeset = Changeset.new(
- :repository => repo,
- :revision => identifier,
- :scmid => scmid,
- :committer => author,
- :committed_on => time,
- :comments => message)
-
- if changeset.save
- paths.each do |file|
- Change.create(
- :changeset => changeset,
- :action => file[:action],
- :path => file[:path])
- end
- end
- end
- end
- end
-
class Annotate
attr_reader :lines, :revisions
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/bazaar_adapter.rb
--- a/lib/redmine/scm/adapters/bazaar_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/bazaar_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -19,15 +19,47 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class BazaarAdapter < AbstractAdapter
-
+
# Bazaar executable name
- BZR_BIN = "bzr"
-
+ BZR_BIN = Redmine::Configuration['scm_bazaar_command'] || "bzr"
+
+ class << self
+ def client_command
+ @@bin ||= BZR_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(BZR_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ !client_version.empty?
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
+ end
+ end
+
# Get info about the repository
def info
- cmd = "#{BZR_BIN} revno #{target('')}"
+ cmd = "#{self.class.sq_bin} revno #{target('')}"
info = nil
shellout(cmd) do |io|
if io.read =~ %r{^(\d+)\r?$}
@@ -43,13 +75,13 @@
rescue CommandFailed
return nil
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path ||= ''
entries = Entries.new
- cmd = "#{BZR_BIN} ls -v --show-ids"
+ cmd = "#{self.class.sq_bin} ls -v --show-ids"
identifier = -1 unless identifier && identifier.to_i > 0
cmd << " -r#{identifier.to_i}"
cmd << " #{target(path)}"
@@ -71,13 +103,13 @@
logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
entries.sort_by_name
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path ||= ''
identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : 'last:1'
identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : 1
revisions = Revisions.new
- cmd = "#{BZR_BIN} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
+ cmd = "#{self.class.sq_bin} log -v --show-ids -r#{identifier_to}..#{identifier_from} #{target(path)}"
shellout(cmd) do |io|
revision = nil
parsing = nil
@@ -132,7 +164,7 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil)
path ||= ''
if identifier_to
@@ -143,7 +175,7 @@
if identifier_from
identifier_from = identifier_from.to_i
end
- cmd = "#{BZR_BIN} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
+ cmd = "#{self.class.sq_bin} diff -r#{identifier_to}..#{identifier_from} #{target(path)}"
diff = []
shellout(cmd) do |io|
io.each_line do |line|
@@ -153,9 +185,9 @@
#return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
- cmd = "#{BZR_BIN} cat"
+ cmd = "#{self.class.sq_bin} cat"
cmd << " -r#{identifier.to_i}" if identifier && identifier.to_i > 0
cmd << " #{target(path)}"
cat = nil
@@ -166,9 +198,9 @@
return nil if $? && $?.exitstatus != 0
cat
end
-
+
def annotate(path, identifier=nil)
- cmd = "#{BZR_BIN} annotate --all"
+ cmd = "#{self.class.sq_bin} annotate --all"
cmd << " -r#{identifier.to_i}" if identifier && identifier.to_i > 0
cmd << " #{target(path)}"
blame = Annotate.new
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/cvs_adapter.rb
--- a/lib/redmine/scm/adapters/cvs_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/cvs_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -23,14 +23,47 @@
class CvsAdapter < AbstractAdapter
# CVS executable name
- CVS_BIN = "cvs"
-
+ CVS_BIN = Redmine::Configuration['scm_cvs_command'] || "cvs"
+
+ class << self
+ def client_command
+ @@bin ||= CVS_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(CVS_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ client_version_above?([1, 12])
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)}m)
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
+ end
+ end
+
# Guidelines for the input:
# url -> the project-path, relative to the cvsroot (eg. module name)
# root_url -> the good old, sometimes damned, CVSROOT
# login -> unnecessary
# password -> unnecessary too
- def initialize(url, root_url=nil, login=nil, password=nil)
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@login = login if login && !login.empty?
@password = (password || "") if @login
@@ -38,24 +71,24 @@
raise CommandFailed if root_url.blank?
@root_url = root_url
end
-
+
def root_url
@root_url
end
-
+
def url
@url
end
-
+
def info
logger.debug " info"
Info.new({:root_url => @root_url, :lastrev => nil})
end
-
+
def get_previous_revision(revision)
CvsRevisionHelper.new(revision).prevRev
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
# this method is used by the repository-browser (aka LIST)
@@ -63,14 +96,14 @@
logger.debug " entries '#{path}' with identifier '#{identifier}'"
path_with_project="#{url}#{with_leading_slash(path)}"
entries = Entries.new
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rls -e"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rls -e"
cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
io.each_line(){|line|
fields=line.chop.split('/',-1)
logger.debug(">>InspectLine #{fields.inspect}")
-
+
if fields[0]!="D"
entries << Entry.new({:name => fields[-5],
#:path => fields[-4].include?(path)?fields[-4]:(path + "/"+ fields[-4]),
@@ -96,20 +129,20 @@
end
return nil if $? && $?.exitstatus != 0
entries.sort_by_name
- end
+ end
STARTLOG="----------------------------"
ENDLOG ="============================================================================="
-
+
# Returns all revisions found between identifier_from and identifier_to
# in the repository. both identifier have to be dates or nil.
# these method returns nothing but yield every result in block
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={}, &block)
logger.debug " revisions path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
-
+
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 = "#{self.class.sq_bin} -d #{shell_quote root_url} rlog"
+ cmd << " -d\">#{time_to_cvstime_rlog(identifier_from)}\"" if identifier_from
cmd << " #{shell_quote path_with_project}"
shellout(cmd) do |io|
state="entry_start"
@@ -123,7 +156,7 @@
file_state=nil
branch_map=nil
- io.each_line() do |line|
+ io.each_line() do |line|
if state!="revision" && /^#{ENDLOG}/ =~ line
commit_log=String.new
@@ -162,9 +195,9 @@
end
next
elsif state=="revision"
- if /^#{ENDLOG}/ =~ line || /^#{STARTLOG}/ =~ line
+ if /^#{ENDLOG}/ =~ line || /^#{STARTLOG}/ =~ line
if revision
-
+
revHelper=CvsRevisionHelper.new(revision)
revBranch="HEAD"
@@ -176,7 +209,7 @@
logger.debug("********** YIELD Revision #{revision}::#{revBranch}")
- yield Revision.new({
+ yield Revision.new({
:time => date,
:author => author,
:message=>commit_log.chomp,
@@ -188,9 +221,9 @@
:kind=>'file',
:action=>file_state
}]
- })
+ })
end
-
+
commit_log=String.new
revision=nil
@@ -199,7 +232,7 @@
end
next
end
-
+
if /^branches: (.+)$/ =~ line
#TODO: version.branch = $1
elsif /^revision (\d+(?:\.\d+)+).*$/ =~ line
@@ -216,20 +249,20 @@
# version.line_minus = linechanges[2]
# else
# version.line_plus = 0
- # version.line_minus = 0
- # end
- else
+ # version.line_minus = 0
+ # end
+ else
commit_log << line unless line =~ /^\*\*\* empty log message \*\*\*/
- end
- end
+ end
+ end
end
end
- end
-
+ end
+
def diff(path, identifier_from, identifier_to=nil)
logger.debug " diff path:'#{path}',identifier_from #{identifier_from}, identifier_to #{identifier_to}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
diff = []
shellout(cmd) do |io|
io.each_line do |line|
@@ -238,28 +271,29 @@
end
return nil if $? && $?.exitstatus != 0
diff
- end
-
+ end
+
def cat(path, identifier=nil)
identifier = (identifier) ? identifier : "HEAD"
logger.debug " cat path:'#{path}',identifier #{identifier}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} co"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} co"
cmd << " -D \"#{time_to_cvstime(identifier)}\"" if identifier
cmd << " -p #{shell_quote path_with_project}"
cat = nil
shellout(cmd) do |io|
+ io.binmode
cat = io.read
end
return nil if $? && $?.exitstatus != 0
cat
- end
+ end
def annotate(path, identifier=nil)
identifier = (identifier) ? identifier.to_i : "HEAD"
logger.debug " annotate path:'#{path}',identifier #{identifier}"
path_with_project="#{url}#{with_leading_slash(path)}"
- cmd = "#{CVS_BIN} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
+ cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rannotate -r#{identifier} #{shell_quote path_with_project}"
blame = Annotate.new
shellout(cmd) do |io|
io.each_line do |line|
@@ -270,9 +304,9 @@
return nil if $? && $?.exitstatus != 0
blame
end
-
+
private
-
+
# Returns the root url without the connexion string
# :pserver:anonymous@foo.bar:/path => /path
# :ext:cvsservername:/path => /path
@@ -290,6 +324,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\//,''))
@@ -339,7 +379,11 @@
private
def buildRevision(rev)
if rev== 0
- @base
+ if @branchid.nil?
+ @base+".0"
+ else
+ @base
+ end
elsif @branchid.nil?
@base+"."+rev.to_s
else
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/darcs_adapter.rb
--- a/lib/redmine/scm/adapters/darcs_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/darcs_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -20,31 +20,45 @@
module Redmine
module Scm
- module Adapters
- class DarcsAdapter < AbstractAdapter
+ module Adapters
+ class DarcsAdapter < AbstractAdapter
# Darcs executable name
- DARCS_BIN = "darcs"
-
+ DARCS_BIN = Redmine::Configuration['scm_darcs_command'] || "darcs"
+
class << self
+ def client_command
+ @@bin ||= DARCS_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(DARCS_BIN)
+ end
+
def client_version
@@client_version ||= (darcs_binary_version || [])
end
-
+
+ def client_available
+ !client_version.empty?
+ 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.dup
+ if darcsversion.respond_to?(:force_encoding)
+ darcsversion.force_encoding('ASCII-8BIT')
end
- return nil if $? && $?.exitstatus != 0
- version
+ if m = darcsversion.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def darcs_binary_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
end
- def initialize(url, root_url=nil, login=nil, password=nil)
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = url
@root_url = url
end
@@ -59,14 +73,16 @@
rev = revisions(nil,nil,nil,{:limit => 1})
rev ? Info.new({:root_url => @url, :lastrev => rev.last}) : nil
end
-
+
# Returns an Entries collection
# 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?
- entries = Entries.new
- cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --xml-output"
+ if path.blank?
+ path = ( self.class.client_version_above?([2, 2, 0]) ? @url : '.' )
+ end
+ entries = Entries.new
+ cmd = "#{self.class.sq_bin} annotate --repodir #{shell_quote @url} --xml-output"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
cmd << " #{shell_quote path}"
shellout(cmd) do |io|
@@ -86,11 +102,11 @@
return nil if $? && $?.exitstatus != 0
entries.compact.sort_by_name
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path = '.' if path.blank?
revisions = Revisions.new
- cmd = "#{DARCS_BIN} changes --repodir #{shell_quote @url} --xml-output"
+ cmd = "#{self.class.sq_bin} changes --repodir #{shell_quote @url} --xml-output"
cmd << " --from-match #{shell_quote("hash #{identifier_from}")}" if identifier_from
cmd << " --last #{options[:limit].to_i}" if options[:limit]
shellout(cmd) do |io|
@@ -113,10 +129,10 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil)
path = '*' if path.blank?
- cmd = "#{DARCS_BIN} diff --repodir #{shell_quote @url}"
+ cmd = "#{self.class.sq_bin} diff --repodir #{shell_quote @url}"
if identifier_to.nil?
cmd << " --match #{shell_quote("hash #{identifier_from}")}"
else
@@ -133,9 +149,9 @@
return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
- cmd = "#{DARCS_BIN} show content --repodir #{shell_quote @url}"
+ cmd = "#{self.class.sq_bin} show content --repodir #{shell_quote @url}"
cmd << " --match #{shell_quote("hash #{identifier}")}" if identifier
cmd << " #{shell_quote path}"
cat = nil
@@ -148,7 +164,7 @@
end
private
-
+
# Returns an Entry from the given XML element
# or nil if the entry was deleted
def entry_from_xml(element, path_prefix)
@@ -156,7 +172,7 @@
if modified_element.elements['modified_how'].text.match(/removed/)
return nil
end
-
+
Entry.new({:name => element.attributes['name'],
:path => path_prefix + element.attributes['name'],
:kind => element.name == 'file' ? 'file' : 'dir',
@@ -165,12 +181,41 @@
:identifier => nil,
:scmid => modified_element.elements['patch'].attributes['hash']
})
- })
+ })
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)
- cmd = "#{DARCS_BIN} annotate --repodir #{shell_quote @url} --summary --xml-output"
+ def get_paths_for_patch_raw(hash)
+ cmd = "#{self.class.sq_bin} annotate --repodir #{shell_quote @url} --summary --xml-output"
cmd << " --match #{shell_quote("hash #{hash}")} "
paths = []
shellout(cmd) do |io|
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/filesystem_adapter.rb
--- a/lib/redmine/scm/adapters/filesystem_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/filesystem_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -23,12 +23,19 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class FilesystemAdapter < AbstractAdapter
-
- def initialize(url, root_url=nil, login=nil, password=nil)
+ class << self
+ def client_available
+ true
+ end
+ end
+
+ def initialize(url, root_url=nil, login=nil, password=nil,
+ path_encoding=nil)
@url = with_trailling_slash(url)
+ @path_encoding = path_encoding || 'UTF-8'
end
def format_path_ends(path, leading=true, trailling=true)
@@ -46,47 +53,59 @@
rescue CommandFailed
return nil
end
-
+
def entries(path="", identifier=nil)
entries = Entries.new
- Dir.new(target(path)).each do |e|
- relative_path = format_path_ends((format_path_ends(path,
- false,
- true) + e),
- false,false)
- target = target(relative_path)
- entries <<
- Entry.new({ :name => File.basename(e),
+ trgt_utf8 = target(path)
+ trgt = scm_iconv(@path_encoding, 'UTF-8', trgt_utf8)
+ Dir.new(trgt).each do |e1|
+ e_utf8 = scm_iconv('UTF-8', @path_encoding, e1)
+ relative_path_utf8 = format_path_ends((format_path_ends(path,false,true) + e_utf8),false,false)
+ t1_utf8 = target(relative_path_utf8)
+ t1 = scm_iconv(@path_encoding, 'UTF-8', t1_utf8)
+ relative_path = scm_iconv(@path_encoding, 'UTF-8', relative_path_utf8)
+ e1 = scm_iconv(@path_encoding, 'UTF-8', e_utf8)
+ if File.exist?(t1) and # paranoid test
+ %w{file directory}.include?(File.ftype(t1)) and # avoid special types
+ not File.basename(e1).match(/^\.+$/) # avoid . and ..
+ p1 = File.readable?(t1) ? relative_path : ""
+ utf_8_path = scm_iconv('UTF-8', @path_encoding, p1)
+ entries <<
+ Entry.new({ :name => scm_iconv('UTF-8', @path_encoding, File.basename(e1)),
# below : list unreadable files, but dont link them.
- :path => File.readable?(target) ? relative_path : "",
- :kind => (File.directory?(target) ? 'dir' : 'file'),
- :size => (File.directory?(target) ? nil : [File.size(target)].pack('l').unpack('L').first),
+ :path => utf_8_path,
+ :kind => (File.directory?(t1) ? 'dir' : 'file'),
+ :size => (File.directory?(t1) ? nil : [File.size(t1)].pack('l').unpack('L').first),
:lastrev =>
- Revision.new({:time => (File.mtime(target)).localtime,
- })
- }) if File.exist?(target) and # paranoid test
- %w{file directory}.include?(File.ftype(target)) and # avoid special types
- not File.basename(e).match(/^\.+$/) # avoid . and ..
+ Revision.new({:time => (File.mtime(t1)) })
+ })
+ end
end
entries.sort_by_name
+ rescue => err
+ logger.error "scm: filesystem: error: #{err.message}"
+ raise CommandFailed.new(err.message)
end
-
+
def cat(path, identifier=nil)
- File.new(target(path), "rb").read
+ p = scm_iconv(@path_encoding, 'UTF-8', target(path))
+ File.new(p, "rb").read
+ rescue => err
+ logger.error "scm: filesystem: error: #{err.message}"
+ raise CommandFailed.new(err.message)
end
private
-
+
# AbstractAdapter::target is implicitly made to quote paths.
# Here we do not shell-out, so we do not want quotes.
def target(path=nil)
- #Prevent the use of ..
+ # Prevent the use of ..
if path and !path.match(/(^|\/)\.\.(\/|$)/)
return "#{self.url}#{without_leading_slash(path)}"
end
return self.url
end
-
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/git_adapter.rb
--- a/lib/redmine/scm/adapters/git_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/git_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -19,10 +19,53 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class GitAdapter < AbstractAdapter
+
+ SCM_GIT_REPORT_LAST_COMMIT = true
+
# Git executable name
- GIT_BIN = "git"
+ GIT_BIN = Redmine::Configuration['scm_git_command'] || "git"
+
+ # raised if scm command exited with error, e.g. unknown revision.
+ class ScmCommandAborted < CommandFailed; end
+
+ class << self
+ def client_command
+ @@bin ||= GIT_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(GIT_BIN)
+ end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ !client_version.empty?
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
+ end
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version --no-color") { |io| io.read }.to_s
+ end
+ end
+
+ def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil)
+ super
+ @flag_report_last_commit = SCM_GIT_REPORT_LAST_COMMIT
+ end
def info
begin
@@ -35,7 +78,7 @@
def branches
return @branches if @branches
@branches = []
- cmd = "#{GIT_BIN} --git-dir #{target('')} branch --no-color"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} branch --no-color"
shellout(cmd) do |io|
io.each_line do |line|
@branches << line.match('\s*\*?\s*(.*)$')[1]
@@ -46,20 +89,20 @@
def tags
return @tags if @tags
- cmd = "#{GIT_BIN} --git-dir #{target('')} tag"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} tag"
shellout(cmd) do |io|
@tags = io.readlines.sort!.map{|t| t.strip}
end
end
def default_branch
- branches.include?('master') ? 'master' : branches.first
+ branches.include?('master') ? 'master' : branches.first
end
-
+
def entries(path=nil, identifier=nil)
path ||= ''
entries = Entries.new
- cmd = "#{GIT_BIN} --git-dir #{target('')} ls-tree -l "
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} ls-tree -l "
cmd << shell_quote("HEAD:" + path) if identifier.nil?
cmd << shell_quote(identifier + ":" + path) if identifier
shellout(cmd) do |io|
@@ -75,7 +118,7 @@
:path => full_path,
:kind => (type == "tree") ? 'dir' : 'file',
:size => (type == "tree") ? nil : size,
- :lastrev => lastrev(full_path,identifier)
+ :lastrev => @flag_report_last_commit ? lastrev(full_path,identifier) : Revision.new
}) unless entries.detect{|entry| entry.name == name}
end
end
@@ -84,18 +127,17 @@
entries.sort_by_name
end
- def lastrev(path,rev)
+ def lastrev(path, rev)
return nil if path.nil?
- cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --date=iso --pretty=fuller --no-merges -n 1 "
- cmd << " #{shell_quote rev} " if rev
- cmd << "-- #{shell_quote path} " unless path.empty?
+ cmd_args = %w|log --no-color --encoding=UTF-8 --date=iso --pretty=fuller --no-merges -n 1|
+ cmd_args << rev if rev
+ cmd_args << "--" << path unless path.empty?
lines = []
- shellout(cmd) { |io| lines = io.readlines }
- return nil if $? && $?.exitstatus != 0
+ scm_cmd(*cmd_args) { |io| lines = io.readlines }
begin
id = lines[0].split[1]
author = lines[1].match('Author:\s+(.*)$')[1]
- time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1]).localtime
+ time = Time.parse(lines[4].match('CommitDate:\s+(.*)$')[1])
Revision.new({
:identifier => id,
@@ -104,26 +146,29 @@
:time => time,
:message => nil,
:paths => nil
- })
+ })
rescue NoMethodError => e
logger.error("The revision '#{path}' has a wrong format")
return nil
end
+ rescue ScmCommandAborted
+ nil
end
def revisions(path, identifier_from, identifier_to, options={})
revisions = Revisions.new
+ cmd_args = %w|log --no-color --encoding=UTF-8 --raw --date=iso --pretty=fuller|
+ cmd_args << "--reverse" if options[:reverse]
+ cmd_args << "--all" if options[:all]
+ cmd_args << "-n" << "#{options[:limit].to_i}" if options[:limit]
+ from_to = ""
+ from_to << "#{identifier_from}.." if identifier_from
+ from_to << "#{identifier_to}" if identifier_to
+ cmd_args << from_to if !from_to.empty?
+ cmd_args << "--since=#{options[:since].strftime("%Y-%m-%d %H:%M:%S")}" if options[:since]
+ cmd_args << "--" << path if path && !path.empty?
- cmd = "#{GIT_BIN} --git-dir #{target('')} log --no-color --raw --date=iso --pretty=fuller "
- cmd << " --reverse " if options[:reverse]
- cmd << " --all " if options[:all]
- cmd << " -n #{options[:limit].to_i} " if options[:limit]
- cmd << "#{shell_quote(identifier_from + '..')}" if identifier_from
- cmd << "#{shell_quote identifier_to}" if identifier_to
- cmd << " --since=#{shell_quote(options[:since].strftime("%Y-%m-%d %H:%M:%S"))}" if options[:since]
- cmd << " -- #{shell_quote path}" if path && !path.empty?
-
- shellout(cmd) do |io|
+ scm_cmd *cmd_args do |io|
files=[]
changeset = {}
parsing_descr = 0 #0: not parsing desc or files, 1: parsing desc, 2: parsing files
@@ -200,8 +245,8 @@
end
end
end
-
- return nil if $? && $?.exitstatus != 0
+ revisions
+ rescue ScmCommandAborted
revisions
end
@@ -209,9 +254,9 @@
path ||= ''
if identifier_to
- cmd = "#{GIT_BIN} --git-dir #{target('')} diff --no-color #{shell_quote identifier_to} #{shell_quote identifier_from}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} diff --no-color #{shell_quote identifier_to} #{shell_quote identifier_from}"
else
- cmd = "#{GIT_BIN} --git-dir #{target('')} show --no-color #{shell_quote identifier_from}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} show --no-color #{shell_quote identifier_from}"
end
cmd << " -- #{shell_quote path}" unless path.empty?
@@ -227,7 +272,7 @@
def annotate(path, identifier=nil)
identifier = 'HEAD' if identifier.blank?
- cmd = "#{GIT_BIN} --git-dir #{target('')} blame -p #{shell_quote identifier} -- #{shell_quote path}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} blame -p #{shell_quote identifier} -- #{shell_quote path}"
blame = Annotate.new
content = nil
shellout(cmd) { |io| io.binmode; content = io.read }
@@ -250,12 +295,12 @@
end
blame
end
-
+
def cat(path, identifier=nil)
if identifier.nil?
identifier = 'HEAD'
end
- cmd = "#{GIT_BIN} --git-dir #{target('')} show --no-color #{shell_quote(identifier + ':' + path)}"
+ cmd = "#{self.class.sq_bin} --git-dir #{target('')} show --no-color #{shell_quote(identifier + ':' + path)}"
cat = nil
shellout(cmd) do |io|
io.binmode
@@ -271,6 +316,18 @@
identifier[0,8]
end
end
+
+ def scm_cmd(*args, &block)
+ repo_path = root_url || url
+ full_args = [GIT_BIN, '--git-dir', repo_path]
+ full_args += args
+ ret = shellout(full_args.map { |e| shell_quote e.to_s }.join(' '), &block)
+ if $? && $?.exitstatus != 0
+ raise ScmCommandAborted, "git exited with non-zero status: #{$?.exitstatus}"
+ end
+ ret
+ end
+ private :scm_cmd
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial/.svn/all-wcprops
--- a/lib/redmine/scm/adapters/mercurial/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4633/trunk/lib/redmine/scm/adapters/mercurial
+/svn/!svn/ver/4989/trunk/lib/redmine/scm/adapters/mercurial
END
hg-template-0.9.5.tmpl
K 25
@@ -9,6 +9,12 @@
V 82
/svn/!svn/ver/4633/trunk/lib/redmine/scm/adapters/mercurial/hg-template-0.9.5.tmpl
END
+redminehelper.py
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4989/trunk/lib/redmine/scm/adapters/mercurial/redminehelper.py
+END
hg-template-1.0.tmpl
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial/.svn/dir-prop-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/dir-prop-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,7 @@
+K 10
+svn:ignore
+V 36
+redminehelper.pyc
+redminehelper.pyo
+
+END
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial/.svn/entries
--- a/lib/redmine/scm/adapters/mercurial/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,16 +1,16 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/redmine/scm/adapters/mercurial
http://redmine.rubyforge.org/svn
-2011-01-05T15:02:24.961855Z
-4633
+2011-03-02T10:17:36.526269Z
+4989
tmaruyama
-
+has-props
@@ -32,7 +32,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:14.000000Z
961af0eb6ab17203d985cdeac685937e
2011-01-05T15:02:24.961855Z
4633
@@ -60,13 +60,47 @@
824
+redminehelper.py
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+5bf6790a201bf33c17cae96c6a9d75fc
+2011-03-02T10:17:36.526269Z
+4989
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6270
+
hg-template-1.0.tmpl
file
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:14.000000Z
9d5de62ae8cdc141d3f8b970dbba07a0
2011-01-05T15:02:24.961855Z
4633
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial/.svn/text-base/redminehelper.py.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/scm/adapters/mercurial/.svn/text-base/redminehelper.py.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,183 @@
+# redminehelper: Redmine helper extension for Mercurial
+#
+# Copyright 2010 Alessio Franceschelli (alefranz.net)
+# Copyright 2010-2011 Yuya Nishihara
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+"""helper commands for Redmine to reduce the number of hg calls
+
+To test this extension, please try::
+
+ $ hg --config extensions.redminehelper=redminehelper.py rhsummary
+
+I/O encoding:
+
+:file path: urlencoded, raw string
+:tag name: utf-8
+:branch name: utf-8
+:node: 12-digits (short) hex string
+
+Output example of rhsummary::
+
+
+
+
+
+
+
+ ...
+
+
+
+Output example of rhmanifest::
+
+
+
+
+
+
+ ...
+
+ ...
+
+
+
+"""
+import re, time, cgi, urllib
+from mercurial import cmdutil, commands, node, error
+
+_x = cgi.escape
+_u = lambda s: cgi.escape(urllib.quote(s))
+
+def _tip(ui, repo):
+ # see mercurial/commands.py:tip
+ def tiprev():
+ try:
+ return len(repo) - 1
+ except TypeError: # Mercurial < 1.1
+ return repo.changelog.count() - 1
+ tipctx = repo.changectx(tiprev())
+ ui.write('\n'
+ % (tipctx.rev(), _x(node.short(tipctx.node()))))
+
+_SPECIAL_TAGS = ('tip',)
+
+def _tags(ui, repo):
+ # see mercurial/commands.py:tags
+ for t, n in reversed(repo.tagslist()):
+ if t in _SPECIAL_TAGS:
+ continue
+ try:
+ r = repo.changelog.rev(n)
+ except error.LookupError:
+ continue
+ ui.write('\n'
+ % (r, _x(node.short(n)), _x(t)))
+
+def _branches(ui, repo):
+ # see mercurial/commands.py:branches
+ def iterbranches():
+ for t, n in repo.branchtags().iteritems():
+ yield t, n, repo.changelog.rev(n)
+ def branchheads(branch):
+ try:
+ return repo.branchheads(branch, closed=False)
+ except TypeError: # Mercurial < 1.2
+ return repo.branchheads(branch)
+ for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
+ if repo.lookup(r) in branchheads(t):
+ ui.write('\n'
+ % (r, _x(node.short(n)), _x(t)))
+
+def _manifest(ui, repo, path, rev):
+ ctx = repo.changectx(rev)
+ ui.write('\n'
+ % (ctx.rev(), _u(path)))
+
+ known = set()
+ pathprefix = (path.rstrip('/') + '/').lstrip('/')
+ for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
+ if not f.startswith(pathprefix):
+ continue
+ name = re.sub(r'/.*', '/', f[len(pathprefix):])
+ if name in known:
+ continue
+ known.add(name)
+
+ if name.endswith('/'):
+ ui.write('\n'
+ % _x(urllib.quote(name[:-1])))
+ else:
+ fctx = repo.filectx(f, fileid=n)
+ tm, tzoffset = fctx.date()
+ ui.write('\n'
+ % (_u(name), fctx.rev(), _x(node.short(fctx.node())),
+ tm, fctx.size(), ))
+
+ ui.write('\n')
+
+def rhannotate(ui, repo, *pats, **opts):
+ return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+
+def rhcat(ui, repo, file1, *pats, **opts):
+ return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
+
+def rhdiff(ui, repo, *pats, **opts):
+ """diff repository (or selected files)"""
+ change = opts.pop('change', None)
+ if change: # add -c option for Mercurial<1.1
+ base = repo.changectx(change).parents()[0].rev()
+ opts['rev'] = [str(base), change]
+ opts['nodates'] = True
+ return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+
+def rhmanifest(ui, repo, path='', **opts):
+ """output the sub-manifest of the specified directory"""
+ ui.write('\n')
+ ui.write('\n')
+ ui.write('\n' % _u(repo.root))
+ try:
+ _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
+ finally:
+ ui.write('\n')
+ ui.write('\n')
+
+def rhsummary(ui, repo, **opts):
+ """output the summary of the repository"""
+ ui.write('\n')
+ ui.write('\n')
+ ui.write('\n' % _u(repo.root))
+ try:
+ _tip(ui, repo)
+ _tags(ui, repo)
+ _branches(ui, repo)
+ # TODO: bookmarks in core (Mercurial>=1.8)
+ finally:
+ ui.write('\n')
+ ui.write('\n')
+
+# This extension should be compatible with Mercurial 0.9.5.
+# Note that Mercurial 0.9.5 doesn't have extensions.wrapfunction().
+cmdtable = {
+ 'rhannotate': (rhannotate,
+ [('r', 'rev', '', 'revision'),
+ ('u', 'user', None, 'list the author (long with -v)'),
+ ('n', 'number', None, 'list the revision number (default)'),
+ ('c', 'changeset', None, 'list the changeset'),
+ ],
+ 'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...'),
+ 'rhcat': (rhcat,
+ [('r', 'rev', '', 'revision')],
+ 'hg rhcat ([-r REV] ...) FILE...'),
+ 'rhdiff': (rhdiff,
+ [('r', 'rev', [], 'revision'),
+ ('c', 'change', '', 'change made by revision')],
+ 'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...'),
+ 'rhmanifest': (rhmanifest,
+ [('r', 'rev', '', 'show the specified revision')],
+ 'hg rhmanifest [-r REV] [PATH]'),
+ 'rhsummary': (rhsummary, [], 'hg rhsummary'),
+}
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial/redminehelper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,183 @@
+# redminehelper: Redmine helper extension for Mercurial
+#
+# Copyright 2010 Alessio Franceschelli (alefranz.net)
+# Copyright 2010-2011 Yuya Nishihara
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+"""helper commands for Redmine to reduce the number of hg calls
+
+To test this extension, please try::
+
+ $ hg --config extensions.redminehelper=redminehelper.py rhsummary
+
+I/O encoding:
+
+:file path: urlencoded, raw string
+:tag name: utf-8
+:branch name: utf-8
+:node: 12-digits (short) hex string
+
+Output example of rhsummary::
+
+
+
+
+
+
+
+ ...
+
+
+
+Output example of rhmanifest::
+
+
+
+
+
+
+ ...
+
+ ...
+
+
+
+"""
+import re, time, cgi, urllib
+from mercurial import cmdutil, commands, node, error
+
+_x = cgi.escape
+_u = lambda s: cgi.escape(urllib.quote(s))
+
+def _tip(ui, repo):
+ # see mercurial/commands.py:tip
+ def tiprev():
+ try:
+ return len(repo) - 1
+ except TypeError: # Mercurial < 1.1
+ return repo.changelog.count() - 1
+ tipctx = repo.changectx(tiprev())
+ ui.write('\n'
+ % (tipctx.rev(), _x(node.short(tipctx.node()))))
+
+_SPECIAL_TAGS = ('tip',)
+
+def _tags(ui, repo):
+ # see mercurial/commands.py:tags
+ for t, n in reversed(repo.tagslist()):
+ if t in _SPECIAL_TAGS:
+ continue
+ try:
+ r = repo.changelog.rev(n)
+ except error.LookupError:
+ continue
+ ui.write('\n'
+ % (r, _x(node.short(n)), _x(t)))
+
+def _branches(ui, repo):
+ # see mercurial/commands.py:branches
+ def iterbranches():
+ for t, n in repo.branchtags().iteritems():
+ yield t, n, repo.changelog.rev(n)
+ def branchheads(branch):
+ try:
+ return repo.branchheads(branch, closed=False)
+ except TypeError: # Mercurial < 1.2
+ return repo.branchheads(branch)
+ for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
+ if repo.lookup(r) in branchheads(t):
+ ui.write('\n'
+ % (r, _x(node.short(n)), _x(t)))
+
+def _manifest(ui, repo, path, rev):
+ ctx = repo.changectx(rev)
+ ui.write('\n'
+ % (ctx.rev(), _u(path)))
+
+ known = set()
+ pathprefix = (path.rstrip('/') + '/').lstrip('/')
+ for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
+ if not f.startswith(pathprefix):
+ continue
+ name = re.sub(r'/.*', '/', f[len(pathprefix):])
+ if name in known:
+ continue
+ known.add(name)
+
+ if name.endswith('/'):
+ ui.write('\n'
+ % _x(urllib.quote(name[:-1])))
+ else:
+ fctx = repo.filectx(f, fileid=n)
+ tm, tzoffset = fctx.date()
+ ui.write('\n'
+ % (_u(name), fctx.rev(), _x(node.short(fctx.node())),
+ tm, fctx.size(), ))
+
+ ui.write('\n')
+
+def rhannotate(ui, repo, *pats, **opts):
+ return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+
+def rhcat(ui, repo, file1, *pats, **opts):
+ return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
+
+def rhdiff(ui, repo, *pats, **opts):
+ """diff repository (or selected files)"""
+ change = opts.pop('change', None)
+ if change: # add -c option for Mercurial<1.1
+ base = repo.changectx(change).parents()[0].rev()
+ opts['rev'] = [str(base), change]
+ opts['nodates'] = True
+ return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+
+def rhmanifest(ui, repo, path='', **opts):
+ """output the sub-manifest of the specified directory"""
+ ui.write('\n')
+ ui.write('\n')
+ ui.write('\n' % _u(repo.root))
+ try:
+ _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
+ finally:
+ ui.write('\n')
+ ui.write('\n')
+
+def rhsummary(ui, repo, **opts):
+ """output the summary of the repository"""
+ ui.write('\n')
+ ui.write('\n')
+ ui.write('\n' % _u(repo.root))
+ try:
+ _tip(ui, repo)
+ _tags(ui, repo)
+ _branches(ui, repo)
+ # TODO: bookmarks in core (Mercurial>=1.8)
+ finally:
+ ui.write('\n')
+ ui.write('\n')
+
+# This extension should be compatible with Mercurial 0.9.5.
+# Note that Mercurial 0.9.5 doesn't have extensions.wrapfunction().
+cmdtable = {
+ 'rhannotate': (rhannotate,
+ [('r', 'rev', '', 'revision'),
+ ('u', 'user', None, 'list the author (long with -v)'),
+ ('n', 'number', None, 'list the revision number (default)'),
+ ('c', 'changeset', None, 'list the changeset'),
+ ],
+ 'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...'),
+ 'rhcat': (rhcat,
+ [('r', 'rev', '', 'revision')],
+ 'hg rhcat ([-r REV] ...) FILE...'),
+ 'rhdiff': (rhdiff,
+ [('r', 'rev', [], 'revision'),
+ ('c', 'change', '', 'change made by revision')],
+ 'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...'),
+ 'rhmanifest': (rhmanifest,
+ [('r', 'rev', '', 'show the specified revision')],
+ 'hg rhmanifest [-r REV] [PATH]'),
+ 'rhsummary': (rhsummary, [], 'hg rhsummary'),
+}
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/mercurial_adapter.rb
--- a/lib/redmine/scm/adapters/mercurial_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/mercurial_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -20,32 +20,51 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class MercurialAdapter < AbstractAdapter
# Mercurial executable name
- HG_BIN = "hg"
- TEMPLATES_DIR = File.dirname(__FILE__) + "/mercurial"
+ HG_BIN = Redmine::Configuration['scm_mercurial_command'] || "hg"
+ HELPERS_DIR = File.dirname(__FILE__) + "/mercurial"
+ HG_HELPER_EXT = "#{HELPERS_DIR}/redminehelper.py"
TEMPLATE_NAME = "hg-template"
TEMPLATE_EXTENSION = "tmpl"
+ # raised if hg command exited with error, e.g. unknown revision.
+ class HgCommandAborted < CommandFailed; end
+
class << self
+ def client_command
+ @@bin ||= HG_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(HG_BIN)
+ end
+
def client_version
@@client_version ||= (hgversion || [])
end
- def hgversion
+ def client_available
+ !client_version.empty?
+ end
+
+ def hgversion
# The hg version is expressed either as a
# release number (eg 0.9.5 or 1.0) or as a revision
# id composed of 12 hexa characters.
- theversion = hgversion_from_command_line
+ theversion = hgversion_from_command_line.dup
+ if theversion.respond_to?(:force_encoding)
+ theversion.force_encoding('ASCII-8BIT')
+ end
if m = theversion.match(%r{\A(.*?)((\d+\.)+\d+)})
m[2].scan(%r{\d+}).collect(&:to_i)
end
end
def hgversion_from_command_line
- shellout("#{HG_BIN} --version") { |io| io.read }.to_s
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
def template_path
@@ -58,153 +77,193 @@
else
ver = "0.9.5"
end
- "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
+ "#{HELPERS_DIR}/#{TEMPLATE_NAME}-#{ver}.#{TEMPLATE_EXTENSION}"
end
end
- def info
- cmd = "#{HG_BIN} -R #{target('')} root"
- root_url = nil
- shellout(cmd) do |io|
- root_url = io.read
- end
- return nil if $? && $?.exitstatus != 0
- info = Info.new({:root_url => root_url.chomp,
- :lastrev => revisions(nil,nil,nil,{:limit => 1}).last
- })
- info
- rescue CommandFailed
- return nil
+ def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil)
+ super
+ @path_encoding = path_encoding || 'UTF-8'
end
- def entries(path=nil, identifier=nil)
- path ||= ''
- entries = Entries.new
- cmd = "#{HG_BIN} -R #{target('')} --cwd #{target('')} locate"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " " + shell_quote("path:#{path}") unless path.empty?
- shellout(cmd) do |io|
- io.each_line do |line|
- # HG uses antislashs as separator on Windows
- line = line.gsub(/\\/, "/")
- if path.empty? or e = line.gsub!(%r{^#{with_trailling_slash(path)}},'')
- e ||= line
- e = e.chomp.split(%r{[\/\\]})
- entries << Entry.new({:name => e.first,
- :path => (path.nil? or path.empty? ? e.first : "#{with_trailling_slash(path)}#{e.first}"),
- :kind => (e.size > 1 ? 'dir' : 'file'),
- :lastrev => Revision.new
- }) unless e.empty? || entries.detect{|entry| entry.name == e.first}
- end
+ def info
+ tip = summary['repository']['tip']
+ Info.new(:root_url => CGI.unescape(summary['repository']['root']),
+ :lastrev => Revision.new(:revision => tip['revision'],
+ :scmid => tip['node']))
+ end
+
+ def tags
+ as_ary(summary['repository']['tag']).map { |e| e['name'] }
+ end
+
+ # Returns map of {'tag' => 'nodeid', ...}
+ def tagmap
+ alist = as_ary(summary['repository']['tag']).map do |e|
+ e.values_at('name', 'node')
+ end
+ Hash[*alist.flatten]
+ end
+
+ def branches
+ as_ary(summary['repository']['branch']).map { |e| e['name'] }
+ end
+
+ # Returns map of {'branch' => 'nodeid', ...}
+ def branchmap
+ alist = as_ary(summary['repository']['branch']).map do |e|
+ e.values_at('name', 'node')
+ end
+ Hash[*alist.flatten]
+ end
+
+ def summary
+ return @summary if @summary
+ hg 'rhsummary' do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
+ begin
+ @summary = ActiveSupport::XmlMini.parse(output)['rhsummary']
+ rescue
end
end
- return nil if $? && $?.exitstatus != 0
- entries.sort_by_name
+ end
+ private :summary
+
+ def entries(path=nil, identifier=nil)
+ p1 = scm_iconv(@path_encoding, 'UTF-8', path)
+ manifest = hg('rhmanifest', '-r', CGI.escape(hgrev(identifier)),
+ CGI.escape(without_leading_slash(p1.to_s))) do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
+ begin
+ ActiveSupport::XmlMini.parse(output)['rhmanifest']['repository']['manifest']
+ rescue
+ end
+ end
+ path_prefix = path.blank? ? '' : with_trailling_slash(path)
+
+ entries = Entries.new
+ as_ary(manifest['dir']).each do |e|
+ n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name']))
+ p = "#{path_prefix}#{n}"
+ entries << Entry.new(:name => n, :path => p, :kind => 'dir')
+ end
+
+ as_ary(manifest['file']).each do |e|
+ n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name']))
+ p = "#{path_prefix}#{n}"
+ lr = Revision.new(:revision => e['revision'], :scmid => e['node'],
+ :identifier => e['node'],
+ :time => Time.at(e['time'].to_i))
+ entries << Entry.new(:name => n, :path => p, :kind => 'file',
+ :size => e['size'].to_i, :lastrev => lr)
+ end
+
+ entries
+ rescue HgCommandAborted
+ nil # means not found
end
- # Fetch the revisions by using a template file that
+ def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
+ revs = Revisions.new
+ each_revision(path, identifier_from, identifier_to, options) { |e| revs << e }
+ revs
+ end
+
+ # Iterates the revisions by using a template file that
# makes Mercurial produce a xml output.
- def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
- revisions = Revisions.new
- cmd = "#{HG_BIN} --debug --encoding utf8 -R #{target('')} log -C --style #{shell_quote self.class.template_path}"
- if identifier_from && identifier_to
- cmd << " -r #{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
- elsif identifier_from
- cmd << " -r #{hgrev(identifier_from)}:"
- end
- cmd << " --limit #{options[:limit].to_i}" if options[:limit]
- cmd << " #{shell_quote path}" unless path.blank?
- shellout(cmd) do |io|
+ def each_revision(path=nil, identifier_from=nil, identifier_to=nil, options={})
+ hg_args = ['log', '--debug', '-C', '--style', self.class.template_path]
+ hg_args << '-r' << "#{hgrev(identifier_from)}:#{hgrev(identifier_to)}"
+ hg_args << '--limit' << options[:limit] if options[:limit]
+ hg_args << hgtarget(path) unless path.blank?
+ log = hg(*hg_args) do |io|
+ output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
- # HG doesn't close the XML Document...
- doc = REXML::Document.new(io.read << "")
- doc.elements.each("log/logentry") do |logentry|
- paths = []
- copies = logentry.get_elements('paths/path-copied')
- logentry.elements.each("paths/path") do |path|
- # Detect if the added file is a copy
- if path.attributes['action'] == 'A' and c = copies.find{ |e| e.text == path.text }
- from_path = c.attributes['copyfrom-path']
- from_rev = logentry.attributes['revision']
- end
- paths << {:action => path.attributes['action'],
- :path => "/#{CGI.unescape(path.text)}",
- :from_path => from_path ? "/#{CGI.unescape(from_path)}" : nil,
- :from_revision => from_rev ? from_rev : nil
- }
- end
- paths.sort! { |x,y| x[:path] <=> y[:path] }
-
- revisions << Revision.new({:identifier => logentry.attributes['revision'],
- :scmid => logentry.attributes['node'],
- :author => (logentry.elements['author'] ? logentry.elements['author'].text : ""),
- :time => Time.parse(logentry.elements['date'].text).localtime,
- :message => logentry.elements['msg'].text,
- :paths => paths
- })
- end
+ # Mercurial < 1.5 does not support footer template for ''
+ ActiveSupport::XmlMini.parse("#{output}")['log']
rescue
- logger.debug($!)
end
end
- return nil if $? && $?.exitstatus != 0
- revisions
+
+ as_ary(log['logentry']).each do |le|
+ cpalist = as_ary(le['paths']['path-copied']).map do |e|
+ [e['__content__'], e['copyfrom-path']].map { |s| CGI.unescape(s) }
+ end
+ cpmap = Hash[*cpalist.flatten]
+
+ paths = as_ary(le['paths']['path']).map do |e|
+ p = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['__content__']) )
+ {:action => e['action'], :path => with_leading_slash(p),
+ :from_path => (cpmap.member?(p) ? with_leading_slash(cpmap[p]) : nil),
+ :from_revision => (cpmap.member?(p) ? le['revision'] : nil)}
+ end.sort { |a, b| a[:path] <=> b[:path] }
+
+ yield Revision.new(:revision => le['revision'],
+ :scmid => le['node'],
+ :author => (le['author']['__content__'] rescue ''),
+ :time => Time.parse(le['date']['__content__']).localtime,
+ :message => le['msg']['__content__'],
+ :paths => paths)
+ end
+ self
end
def diff(path, identifier_from, identifier_to=nil)
- path ||= ''
- diff_args = ''
+ hg_args = %w|rhdiff|
+ if identifier_to
+ hg_args << '-r' << hgrev(identifier_to) << '-r' << hgrev(identifier_from)
+ else
+ hg_args << '-c' << hgrev(identifier_from)
+ end
+ unless path.blank?
+ p = scm_iconv(@path_encoding, 'UTF-8', path)
+ hg_args << CGI.escape(hgtarget(p))
+ end
diff = []
- if identifier_to
- diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}"
- else
- if self.class.client_version_above?([1, 2])
- diff_args = "-c #{hgrev(identifier_from)}"
- else
- return []
- end
- end
- cmd = "#{HG_BIN} -R #{target('')} --config diff.git=false diff --nodates #{diff_args}"
- cmd << " -I #{target(path)}" unless path.empty?
- shellout(cmd) do |io|
+ hg *hg_args do |io|
io.each_line do |line|
diff << line
end
end
- return nil if $? && $?.exitstatus != 0
diff
+ rescue HgCommandAborted
+ nil # means not found
end
def cat(path, identifier=nil)
- cmd = "#{HG_BIN} -R #{target('')} cat"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " #{target(path)}"
- cat = nil
- shellout(cmd) do |io|
+ p = CGI.escape(scm_iconv(@path_encoding, 'UTF-8', path))
+ hg 'rhcat', '-r', hgrev(identifier), hgtarget(p) do |io|
io.binmode
- cat = io.read
+ io.read
end
- return nil if $? && $?.exitstatus != 0
- cat
+ rescue HgCommandAborted
+ nil # means not found
end
def annotate(path, identifier=nil)
- path ||= ''
- cmd = "#{HG_BIN} -R #{target('')}"
- cmd << " annotate -ncu"
- cmd << " -r #{hgrev(identifier)}"
- cmd << " #{target(path)}"
+ p = CGI.escape(scm_iconv(@path_encoding, 'UTF-8', path))
blame = Annotate.new
- shellout(cmd) do |io|
+ hg 'rhannotate', '-ncu', '-r', hgrev(identifier), hgtarget(p) do |io|
io.each_line do |line|
+ line.force_encoding('ASCII-8BIT') if line.respond_to?(:force_encoding)
next unless line =~ %r{^([^:]+)\s(\d+)\s([0-9a-f]+):\s(.*)$}
r = Revision.new(:author => $1.strip, :revision => $2, :scmid => $3,
:identifier => $3)
blame.add_line($4.rstrip, r)
end
end
- return nil if $? && $?.exitstatus != 0
blame
+ rescue HgCommandAborted
+ nil # means not found or cannot be annotated
end
class Revision < Redmine::Scm::Adapters::Revision
@@ -214,11 +273,40 @@
end
end
+ # Runs 'hg' command with the given args
+ def hg(*args, &block)
+ repo_path = root_url || url
+ full_args = [HG_BIN, '-R', repo_path, '--encoding', 'utf-8']
+ full_args << '--config' << "extensions.redminehelper=#{HG_HELPER_EXT}"
+ full_args << '--config' << 'diff.git=false'
+ full_args += args
+ ret = shellout(full_args.map { |e| shell_quote e.to_s }.join(' '), &block)
+ if $? && $?.exitstatus != 0
+ raise HgCommandAborted, "hg exited with non-zero status: #{$?.exitstatus}"
+ end
+ ret
+ end
+ private :hg
+
# Returns correct revision identifier
- def hgrev(identifier)
- shell_quote(identifier.blank? ? 'tip' : identifier.to_s)
+ def hgrev(identifier, sq=false)
+ rev = identifier.blank? ? 'tip' : identifier.to_s
+ rev = shell_quote(rev) if sq
+ rev
end
private :hgrev
+
+ def hgtarget(path)
+ path ||= ''
+ root_url + '/' + without_leading_slash(path)
+ end
+ private :hgtarget
+
+ def as_ary(o)
+ return [] unless o
+ o.is_a?(Array) ? o : Array[o]
+ end
+ private :as_ary
end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/scm/adapters/subversion_adapter.rb
--- a/lib/redmine/scm/adapters/subversion_adapter.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/scm/adapters/subversion_adapter.rb Thu Mar 03 12:02:03 2011 +0000
@@ -20,38 +20,54 @@
module Redmine
module Scm
- module Adapters
+ module Adapters
class SubversionAdapter < AbstractAdapter
-
+
# SVN executable name
- SVN_BIN = "svn"
-
+ SVN_BIN = Redmine::Configuration['scm_subversion_command'] || "svn"
+
class << self
+ def client_command
+ @@bin ||= SVN_BIN
+ end
+
+ def sq_bin
+ @@sq_bin ||= shell_quote(SVN_BIN)
+ end
+
def client_version
@@client_version ||= (svn_binary_version || [])
end
-
+
+ def client_available
+ !client_version.empty?
+ end
+
def svn_binary_version
- cmd = "#{SVN_BIN} --version"
- version = nil
- shellout(cmd) do |io|
- # Read svn version in first returned line
- if m = io.read.to_s.match(%r{\A(.*?)((\d+\.)+\d+)})
- version = m[2].scan(%r{\d+}).collect(&:to_i)
- end
+ scm_version = scm_version_from_command_line.dup
+ if scm_version.respond_to?(:force_encoding)
+ scm_version.force_encoding('ASCII-8BIT')
end
- return nil if $? && $?.exitstatus != 0
- version
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
end
end
-
+
# Get info about the svn repository
def info
- cmd = "#{SVN_BIN} info --xml #{target}"
+ cmd = "#{self.class.sq_bin} info --xml #{target}"
cmd << credentials_string
info = nil
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
#root_url = doc.elements["info/entry/repository/root"].text
@@ -70,17 +86,20 @@
rescue CommandFailed
return nil
end
-
+
# Returns an Entries collection
# or nil if the given path doesn't exist in the repository
def entries(path=nil, identifier=nil)
path ||= ''
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
entries = Entries.new
- cmd = "#{SVN_BIN} list --xml #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} list --xml #{target(path)}@#{identifier}"
cmd << credentials_string
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['lists']['list'], 'entry') do |entry|
@@ -110,17 +129,20 @@
logger.debug("Found #{entries.size} entries in the repository for #{target(path)}") if logger && logger.debug?
entries.sort_by_name
end
-
+
def properties(path, identifier=nil)
# proplist xml output supported in svn 1.5.0 and higher
return nil unless self.class.client_version_above?([1, 5, 0])
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} proplist --verbose --xml #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} proplist --verbose --xml #{target(path)}@#{identifier}"
cmd << credentials_string
properties = {}
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['properties']['target'], 'property') do |property|
@@ -132,19 +154,22 @@
return nil if $? && $?.exitstatus != 0
properties
end
-
+
def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
path ||= ''
identifier_from = (identifier_from && identifier_from.to_i > 0) ? identifier_from.to_i : "HEAD"
identifier_to = (identifier_to && identifier_to.to_i > 0) ? identifier_to.to_i : 1
revisions = Revisions.new
- cmd = "#{SVN_BIN} log --xml -r #{identifier_from}:#{identifier_to}"
+ cmd = "#{self.class.sq_bin} log --xml -r #{identifier_from}:#{identifier_to}"
cmd << credentials_string
cmd << " --verbose " if options[:with_paths]
cmd << " --limit #{options[:limit].to_i}" if options[:limit]
cmd << ' ' + target(path)
shellout(cmd) do |io|
output = io.read
+ if output.respond_to?(:force_encoding)
+ output.force_encoding('UTF-8')
+ end
begin
doc = ActiveSupport::XmlMini.parse(output)
each_xml_element(doc['log'], 'logentry') do |logentry|
@@ -171,13 +196,14 @@
return nil if $? && $?.exitstatus != 0
revisions
end
-
+
def diff(path, identifier_from, identifier_to=nil, type="inline")
path ||= ''
identifier_from = (identifier_from and identifier_from.to_i > 0) ? identifier_from.to_i : ''
+
identifier_to = (identifier_to and identifier_to.to_i > 0) ? identifier_to.to_i : (identifier_from.to_i - 1)
-
- cmd = "#{SVN_BIN} diff -r "
+
+ cmd = "#{self.class.sq_bin} diff -r "
cmd << "#{identifier_to}:"
cmd << "#{identifier_from}"
cmd << " #{target(path)}@#{identifier_from}"
@@ -191,10 +217,10 @@
return nil if $? && $?.exitstatus != 0
diff
end
-
+
def cat(path, identifier=nil)
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} cat #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} cat #{target(path)}@#{identifier}"
cmd << credentials_string
cat = nil
shellout(cmd) do |io|
@@ -204,10 +230,10 @@
return nil if $? && $?.exitstatus != 0
cat
end
-
+
def annotate(path, identifier=nil)
identifier = (identifier and identifier.to_i > 0) ? identifier.to_i : "HEAD"
- cmd = "#{SVN_BIN} blame #{target(path)}@#{identifier}"
+ cmd = "#{self.class.sq_bin} blame #{target(path)}@#{identifier}"
cmd << credentials_string
blame = Annotate.new
shellout(cmd) do |io|
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/unified_diff.rb
--- a/lib/redmine/unified_diff.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/unified_diff.rb Thu Mar 03 12:02:03 2011 +0000
@@ -22,13 +22,21 @@
options.assert_valid_keys(:type, :max_lines)
diff = diff.split("\n") if diff.is_a?(String)
diff_type = options[:type] || 'inline'
-
lines = 0
@truncated = false
diff_table = DiffTable.new(diff_type)
diff.each do |line|
+ line_encoding = nil
+ if line.respond_to?(:force_encoding)
+ line_encoding = line.encoding
+ # TODO: UTF-16 and Japanese CP932 which is imcompatible with ASCII
+ # In Japan, diffrence between file path encoding
+ # and file contents encoding is popular.
+ line.force_encoding('ASCII-8BIT')
+ end
unless diff_table.add_line line
- self << diff_table if diff_table.length > 1
+ line.force_encoding(line_encoding) if line_encoding
+ self << diff_table if diff_table.length > 0
diff_table = DiffTable.new(diff_type)
end
lines += 1
@@ -40,7 +48,7 @@
self << diff_table unless diff_table.empty?
self
end
-
+
def truncated?; @truncated; end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/version.rb
--- a/lib/redmine/version.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/version.rb Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,7 @@
module VERSION #:nodoc:
MAJOR = 1
MINOR = 1
- TINY = 0
+ TINY = 1
# Branch values:
# * official release: nil
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/views/.svn/entries
--- a/lib/redmine/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:14.000000Z
e0e38b713c41ea63221dd877c6939983
2010-12-03T11:25:21.858858Z
4452
@@ -69,7 +69,7 @@
-2010-09-23T14:37:45.047759Z
+2011-03-03T11:05:14.000000Z
849e9df27c041f540e690c6192939edf
2009-01-29T13:54:44.887081Z
2334
@@ -106,7 +106,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
04feeced33ca55e9fb99099efe2fdcf6
2010-12-03T11:25:21.858858Z
4452
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/views/builders/.svn/entries
--- a/lib/redmine/views/builders/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/views/builders/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:14.000000Z
8816150c9264dfa6e639af165670cbb1
2010-12-11T13:13:49.013705Z
4489
@@ -66,7 +66,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
f9654f4bc43dbb5c01d5be2d6b045dd7
2010-12-11T13:13:49.013705Z
4489
@@ -100,7 +100,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
4b47e2fa5030d1cdad48f3abb5ab7c44
2010-12-03T11:25:21.858858Z
4452
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/views/my_page/.svn/entries
--- a/lib/redmine/views/my_page/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/views/my_page/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/views/my_page
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/views/my_page
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
b06dfe20a85191516f81de5874f37ec6
2009-04-05T13:33:54.194067Z
2659
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/wiki_formatting/.svn/entries
--- a/lib/redmine/wiki_formatting/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/wiki_formatting/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/wiki_formatting
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:14.000000Z
879f8ce24a6bb5e4f5ea3b6f798b7a63
2010-11-06T17:47:27.890964Z
4376
diff -r fca2657f4aa5 -r eeebe205a056 lib/redmine/wiki_formatting/textile/.svn/entries
--- a/lib/redmine/wiki_formatting/textile/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/redmine/wiki_formatting/textile/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/lib/redmine/wiki_formatting/textile
+4993
+http://redmine.rubyforge.org/svn/trunk/lib/redmine/wiki_formatting/textile
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
dec83b1d0d7f682d1ebf1f172fe3c90b
2009-11-11T10:55:19.574870Z
3025
@@ -66,7 +66,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:14.000000Z
b8052f700ecb0991fabdd3a5b684a412
2010-11-06T17:47:27.890964Z
4376
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/all-wcprops
--- a/lib/tasks/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/.svn/all-wcprops Thu Mar 03 12:02:03 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/4950/trunk/lib/tasks
END
deprecated.rake
K 25
@@ -39,6 +39,12 @@
V 52
/svn/!svn/ver/4405/trunk/lib/tasks/initializers.rake
END
+ciphering.rake
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/4950/trunk/lib/tasks/ciphering.rake
+END
permissions.rake
K 25
svn:wc:ra_dav:version-url
@@ -55,7 +61,7 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4687/trunk/lib/tasks/testing.rake
+/svn/!svn/ver/4806/trunk/lib/tasks/testing.rake
END
watchers.rake
K 25
@@ -79,7 +85,7 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4254/trunk/lib/tasks/locales.rake
+/svn/!svn/ver/4937/trunk/lib/tasks/locales.rake
END
migrate_from_trac.rake
K 25
@@ -91,7 +97,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 fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/entries
--- a/lib/tasks/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/lib/tasks
http://redmine.rubyforge.org/svn
-2011-01-11T08:41:11.973101Z
-4687
-tmaruyama
+2011-02-26T13:09:25.657748Z
+4950
+jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
03301be8b264b5cb46d05896861dcc4d
2007-09-02T08:08:10.346505Z
691
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
2ee57ccc06c675e55c38a4153a27c7c3
2010-05-01T09:37:46.451305Z
3721
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
0c57af5536009680bb8c3c3302fc628d
2006-07-29T09:32:58.780216Z
12
@@ -134,7 +134,7 @@
-2010-09-24T12:48:29.799790Z
+2011-03-03T11:05:14.000000Z
07fcf57752978d65a694eb57adcc0851
2010-09-20T23:17:51.402972Z
4167
@@ -162,13 +162,47 @@
1606
+metrics.rake
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+0254f4ee916dee0a2572e63e947f8a1b
+2009-07-27T00:55:43.057910Z
+2825
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+113
+
initializers.rake
file
-2010-11-19T13:04:51.424933Z
+2011-03-03T11:05:14.000000Z
c25b466de7654465538a91e5f5ab32b9
2010-11-14T15:14:19.280754Z
4405
@@ -196,17 +230,18 @@
1343
-metrics.rake
+ciphering.rake
file
-2010-09-23T14:37:45.063748Z
-0254f4ee916dee0a2572e63e947f8a1b
-2009-07-27T00:55:43.057910Z
-2825
-edavis10
+2011-03-03T11:40:18.000000Z
+b522c20249b1fad89c3276d10ccaaf6b
+2011-02-26T13:09:25.657748Z
+4950
+jplang
+has-props
@@ -227,8 +262,7 @@
-
-113
+1409
permissions.rake
file
@@ -236,7 +270,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
010fbb563237ff01803aa47736cf863e
2010-08-18T17:23:23.071766Z
3948
@@ -270,7 +304,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
984c757ee4c8fa78f649f8dd34b715cf
2009-03-15T10:03:56.604709Z
2592
@@ -304,10 +338,10 @@
-2011-01-13T14:11:09.000000Z
-62ce14359d5062666d86230adc5ba695
-2011-01-11T08:41:11.973101Z
-4687
+2011-03-03T11:40:18.000000Z
+ca73c8345daa839f0145c671ad94b91f
+2011-02-11T15:30:45.959165Z
+4806
tmaruyama
@@ -330,7 +364,7 @@
-3280
+3376
watchers.rake
file
@@ -338,7 +372,7 @@
-2010-09-23T14:37:45.067787Z
+2011-03-03T11:05:14.000000Z
16eaf27a5959829a12961ff16e233600
2009-12-13T12:39:22.716082Z
3167
@@ -366,13 +400,47 @@
180
+plugins.rake
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+f27a83cf3f04d7906ac2f3ca40d01a20
+2008-09-05T10:31:06.632668Z
+1786
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1256
+
yardoc.rake
file
-2010-09-23T14:37:45.067787Z
+2011-03-03T11:05:14.000000Z
5c9889bed6f4a4d18dbeb3d904855bb6
2010-08-07T15:11:26.667915Z
3922
@@ -400,51 +468,17 @@
578
-plugins.rake
-file
-
-
-
-
-2010-09-23T14:37:45.067787Z
-f27a83cf3f04d7906ac2f3ca40d01a20
-2008-09-05T10:31:06.632668Z
-1786
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1256
-
locales.rake
file
-2010-11-19T13:04:51.424933Z
-8cb19171aae8528b3149b7efa211fc50
-2010-10-15T22:41:47.658318Z
-4254
-edavis10
+2011-03-03T11:40:18.000000Z
+ceb44040708bb290ad5b62b5a366e823
+2011-02-23T18:03:33.945201Z
+4937
+jplang
has-props
@@ -466,7 +500,7 @@
-3360
+4250
migrate_from_trac.rake
file
@@ -474,7 +508,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
db60f05f7cd325cbdd984f0b6d7b42ea
2010-12-31T15:30:50.544770Z
4599
@@ -508,10 +542,10 @@
-2011-01-13T14:11:09.000000Z
-3155277c35e0978585a77b55a40901fb
-2010-12-31T15:30:50.544770Z
-4599
+2011-03-03T11:05:14.000000Z
+ba7db3c8df92c72d300288ec7276dbad
+2011-01-28T19:45:09.952949Z
+4765
jplang
@@ -534,7 +568,7 @@
-19137
+19166
email.rake
file
@@ -542,7 +576,7 @@
-2010-11-19T13:04:51.424933Z
+2011-03-03T11:05:14.000000Z
7875b7a15307c626a93c284f33757320
2010-10-15T22:50:33.240825Z
4256
@@ -576,7 +610,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
82e0901f7cbdda05ed63c12a764c3614
2007-09-23T17:19:27.414302Z
752
@@ -610,7 +644,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
93f8964aea856c06fb2eaa62ca2023c2
2011-01-06T18:52:37.169690Z
4643
@@ -644,7 +678,7 @@
-2010-09-23T14:37:45.063748Z
+2011-03-03T11:05:14.000000Z
320b77011663b1209247bb809bc43ecb
2008-02-16T16:25:58.204498Z
1155
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/prop-base/ciphering.rake.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/tasks/.svn/prop-base/ciphering.rake.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/text-base/ciphering.rake.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/tasks/.svn/text-base/ciphering.rake.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,35 @@
+# 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.
+
+
+namespace :db do
+ desc 'Encrypts SCM and LDAP passwords in the database.'
+ task :encrypt => :environment do
+ unless (Repository.encrypt_all(:password) &&
+ AuthSource.encrypt_all(:account_password))
+ raise "Some objects could not be saved after encryption, update was rollback'ed."
+ end
+ end
+
+ desc 'Decrypts SCM and LDAP passwords in the database.'
+ task :decrypt => :environment do
+ unless (Repository.decrypt_all(:password) &&
+ AuthSource.decrypt_all(:account_password))
+ raise "Some objects could not be saved after decryption, update was rollback'ed."
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/text-base/locales.rake.svn-base
--- a/lib/tasks/.svn/text-base/locales.rake.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/.svn/text-base/locales.rake.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,3 +1,10 @@
+desc 'Updates and checks locales against en.yml'
+task :locales do
+ %w(locales:update locales:check_interpolation).collect do |task|
+ Rake::Task[task].invoke
+ end
+end
+
namespace :locales do
desc 'Updates language files based on en.yml content (only works for new top level keys).'
task :update do
@@ -28,6 +35,26 @@
lang.close
end
end
+
+ desc 'Checks interpolation arguments in locals against en.yml'
+ task :check_interpolation do
+ dir = ENV['DIR'] || './config/locales'
+ en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en']
+ files = Dir.glob(File.join(dir,'*.{yaml,yml}'))
+ files.each do |file|
+ file_strings = YAML.load(File.read(file))
+ file_strings = file_strings[file_strings.keys.first]
+
+ file_strings.each do |key, string|
+ next unless string.is_a?(String)
+ string.scan /%\{\w+\}/ do |match|
+ unless en_strings[key].nil? || en_strings[key].include?(match)
+ puts "#{file}: #{key} uses #{match} not found in en.yml"
+ end
+ end
+ end
+ end
+ end
desc <<-END_DESC
Removes a translation string from all locale file (only works for top-level childless non-multiline keys, probably doesn\'t work on windows).
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base
--- a/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/.svn/text-base/migrate_from_mantis.rake.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/tasks/.svn/text-base/testing.rake.svn-base
--- a/lib/tasks/.svn/text-base/testing.rake.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/.svn/text-base/testing.rake.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -51,7 +51,8 @@
(supported_scms - [:subversion, :mercurial]).each do |scm|
desc "Creates a test #{scm} repository"
task scm => :create_dir do
- system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+ # system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+ system "tar -xvz -C tmp/test -f test/fixtures/repositories/#{scm}_repository.tar.gz"
end
end
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/ciphering.rake
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/tasks/ciphering.rake Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,35 @@
+# 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.
+
+
+namespace :db do
+ desc 'Encrypts SCM and LDAP passwords in the database.'
+ task :encrypt => :environment do
+ unless (Repository.encrypt_all(:password) &&
+ AuthSource.encrypt_all(:account_password))
+ raise "Some objects could not be saved after encryption, update was rollback'ed."
+ end
+ end
+
+ desc 'Decrypts SCM and LDAP passwords in the database.'
+ task :decrypt => :environment do
+ unless (Repository.decrypt_all(:password) &&
+ AuthSource.decrypt_all(:account_password))
+ raise "Some objects could not be saved after decryption, update was rollback'ed."
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/locales.rake
--- a/lib/tasks/locales.rake Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/locales.rake Thu Mar 03 12:02:03 2011 +0000
@@ -1,3 +1,10 @@
+desc 'Updates and checks locales against en.yml'
+task :locales do
+ %w(locales:update locales:check_interpolation).collect do |task|
+ Rake::Task[task].invoke
+ end
+end
+
namespace :locales do
desc 'Updates language files based on en.yml content (only works for new top level keys).'
task :update do
@@ -28,6 +35,26 @@
lang.close
end
end
+
+ desc 'Checks interpolation arguments in locals against en.yml'
+ task :check_interpolation do
+ dir = ENV['DIR'] || './config/locales'
+ en_strings = YAML.load(File.read(File.join(dir,'en.yml')))['en']
+ files = Dir.glob(File.join(dir,'*.{yaml,yml}'))
+ files.each do |file|
+ file_strings = YAML.load(File.read(file))
+ file_strings = file_strings[file_strings.keys.first]
+
+ file_strings.each do |key, string|
+ next unless string.is_a?(String)
+ string.scan /%\{\w+\}/ do |match|
+ unless en_strings[key].nil? || en_strings[key].include?(match)
+ puts "#{file}: #{key} uses #{match} not found in en.yml"
+ end
+ end
+ end
+ end
+ end
desc <<-END_DESC
Removes a translation string from all locale file (only works for top-level childless non-multiline keys, probably doesn\'t work on windows).
diff -r fca2657f4aa5 -r eeebe205a056 lib/tasks/migrate_from_mantis.rake
--- a/lib/tasks/migrate_from_mantis.rake Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/migrate_from_mantis.rake Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 lib/tasks/testing.rake
--- a/lib/tasks/testing.rake Thu Jan 20 09:59:02 2011 +0000
+++ b/lib/tasks/testing.rake Thu Mar 03 12:02:03 2011 +0000
@@ -51,7 +51,8 @@
(supported_scms - [:subversion, :mercurial]).each do |scm|
desc "Creates a test #{scm} repository"
task scm => :create_dir do
- system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+ # system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test"
+ system "tar -xvz -C tmp/test -f test/fixtures/repositories/#{scm}_repository.tar.gz"
end
end
diff -r fca2657f4aa5 -r eeebe205a056 log/.svn/entries
--- a/log/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/log/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/log
+4993
+http://redmine.rubyforge.org/svn/trunk/log
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:11.000000Z
ae0415159f2c4dba3fc1a559d4c0f9f5
2006-10-15T09:00:05.847811Z
31
diff -r fca2657f4aa5 -r eeebe205a056 public/.htaccess
--- a/public/.htaccess Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# General Apache options
-
- AddHandler fastcgi-script .fcgi
-
-
- AddHandler fcgid-script .fcgi
-
-
- AddHandler cgi-script .cgi
-
-Options +FollowSymLinks +ExecCGI
-
-# If you don't want Rails to look in certain directories,
-# use the following rewrite rules so that Apache won't rewrite certain requests
-#
-# Example:
-# RewriteCond %{REQUEST_URI} ^/notrails.*
-# RewriteRule .* - [L]
-
-# Redirect all requests not available on the filesystem to Rails
-# By default the cgi dispatcher is used which is very slow
-#
-# For better performance replace the dispatcher with the fastcgi one
-#
-# Example:
-# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-RewriteEngine On
-
-# If your Rails application is accessed via an Alias directive,
-# then you MUST also set the RewriteBase in this htaccess file.
-#
-# Example:
-# Alias /myrailsapp /path/to/myrailsapp/public
-# RewriteBase /myrailsapp
-
-RewriteRule ^$ index.html [QSA]
-RewriteRule ^([^.]+)$ $1.html [QSA]
-RewriteCond %{REQUEST_FILENAME} !-f
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
-
-
-# In case Rails experiences terminal errors
-# Instead of displaying this message you can supply a file here which will be rendered instead
-#
-# Example:
-# ErrorDocument 500 /500.html
-
-ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 public/.svn/all-wcprops
--- a/public/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/public/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,47 @@
K 25
svn:wc:ra_dav:version-url
-V 45
-/svn/!svn/ver/4702/trunk/public
+V 31
+/svn/!svn/ver/4954/trunk/public
END
+dispatch.fcgi.example
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/2017/trunk/public/dispatch.fcgi.example
+END
+500.html
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/svn/!svn/ver/419/trunk/public/500.html
+END
+404.html
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/svn/!svn/ver/419/trunk/public/404.html
+END
+dispatch.cgi.example
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/2017/trunk/public/dispatch.cgi.example
+END
+dispatch.rb.example
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/2017/trunk/public/dispatch.rb.example
+END
+favicon.ico
+K 25
+svn:wc:ra_dav:version-url
+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 fca2657f4aa5 -r eeebe205a056 public/.svn/entries
--- a/public/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public
http://redmine.rubyforge.org/svn
-2011-01-11T20:37:31.480170Z
-4702
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.075747Z
+2011-03-03T11:05:14.000000Z
aeefa1552a4af651eadd16f4e0bb1323
2008-11-11T13:54:10.112610Z
2017
@@ -72,7 +72,7 @@
-2010-09-23T14:37:45.071747Z
+2011-03-03T11:05:14.000000Z
b78e2e9e0cd94c786bb9404516e062c4
2007-04-04T18:20:45.423396Z
419
@@ -112,7 +112,7 @@
-2010-09-23T14:37:45.071747Z
+2011-03-03T11:05:14.000000Z
5acfd3818d5f470c26a1af577d06195e
2007-04-04T18:20:45.423396Z
419
@@ -146,7 +146,7 @@
-2010-09-23T14:37:45.071747Z
+2011-03-03T11:05:14.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-03-03T11:05:14.000000Z
5a5128856eb14ac7b3f94099cb504775
2008-11-11T13:54:10.112610Z
2017
@@ -251,7 +217,7 @@
-2010-07-23T14:49:47.756104Z
+2011-03-03T11:05:14.000000Z
6d85758acb4f4baa4d242ba451c91026
2010-07-16T03:45:50.104236Z
3845
@@ -279,3 +245,37 @@
7886
+htaccess.fcgi.example
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+67c99c6ef23adb15d9efed92be959b6e
+2011-01-30T06:31:28.038726Z
+4775
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1632
+
diff -r fca2657f4aa5 -r eeebe205a056 public/.svn/prop-base/.htaccess.svn-base
--- a/public/.svn/prop-base/.htaccess.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 9
+eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/.svn/text-base/.htaccess.svn-base
--- a/public/.svn/text-base/.htaccess.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# General Apache options
-
- AddHandler fastcgi-script .fcgi
-
-
- AddHandler fcgid-script .fcgi
-
-
- AddHandler cgi-script .cgi
-
-Options +FollowSymLinks +ExecCGI
-
-# If you don't want Rails to look in certain directories,
-# use the following rewrite rules so that Apache won't rewrite certain requests
-#
-# Example:
-# RewriteCond %{REQUEST_URI} ^/notrails.*
-# RewriteRule .* - [L]
-
-# Redirect all requests not available on the filesystem to Rails
-# By default the cgi dispatcher is used which is very slow
-#
-# For better performance replace the dispatcher with the fastcgi one
-#
-# Example:
-# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-RewriteEngine On
-
-# If your Rails application is accessed via an Alias directive,
-# then you MUST also set the RewriteBase in this htaccess file.
-#
-# Example:
-# Alias /myrailsapp /path/to/myrailsapp/public
-# RewriteBase /myrailsapp
-
-RewriteRule ^$ index.html [QSA]
-RewriteRule ^([^.]+)$ $1.html [QSA]
-RewriteCond %{REQUEST_FILENAME} !-f
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
-
-
- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
-
-
-# In case Rails experiences terminal errors
-# Instead of displaying this message you can supply a file here which will be rendered instead
-#
-# Example:
-# ErrorDocument 500 /500.html
-
-ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,55 @@
+# General Apache options
+
+ AddHandler fastcgi-script .fcgi
+
+
+ AddHandler fcgid-script .fcgi
+
+
+ AddHandler cgi-script .cgi
+
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 public/favicon.ico
Binary file public/favicon.ico has changed
diff -r fca2657f4aa5 -r eeebe205a056 public/help/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/help/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 36
+/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/4758/trunk/public/help/wiki_syntax_detailed.html
+END
+wiki_syntax.html
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/1803/trunk/public/help/wiki_syntax.html
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/help/.svn/entries
--- a/public/help/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/help/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/help
+4993
+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-30T13:11:53.000000Z
-380699b753ffb01cba5c9504216ff64b
-2010-10-29T22:48:59.506153Z
-4308
-jbbarth
+2011-03-03T11:05:14.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-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
f3c9e77ebd5a0c8e580df191a00bc01c
2008-09-13T09:45:07.868598Z
1803
diff -r fca2657f4aa5 -r eeebe205a056 public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base
--- a/public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/public/help/.svn/text-base/wiki_syntax_detailed.html.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 public/help/wiki_syntax_detailed.html
--- a/public/help/wiki_syntax_detailed.html Thu Jan 20 09:59:02 2011 +0000
+++ b/public/help/wiki_syntax_detailed.html Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 public/htaccess.fcgi.example
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/htaccess.fcgi.example Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,55 @@
+# General Apache options
+
+ AddHandler fastcgi-script .fcgi
+
+
+ AddHandler fcgid-script .fcgi
+
+
+ AddHandler cgi-script .cgi
+
+Options +FollowSymLinks +ExecCGI
+
+# If you don't want Rails to look in certain directories,
+# use the following rewrite rules so that Apache won't rewrite certain requests
+#
+# Example:
+# RewriteCond %{REQUEST_URI} ^/notrails.*
+# RewriteRule .* - [L]
+
+# Redirect all requests not available on the filesystem to Rails
+# By default the cgi dispatcher is used which is very slow
+#
+# For better performance replace the dispatcher with the fastcgi one
+#
+# Example:
+# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+RewriteEngine On
+
+# If your Rails application is accessed via an Alias directive,
+# then you MUST also set the RewriteBase in this htaccess file.
+#
+# Example:
+# Alias /myrailsapp /path/to/myrailsapp/public
+# RewriteBase /myrailsapp
+
+RewriteRule ^$ index.html [QSA]
+RewriteRule ^([^.]+)$ $1.html [QSA]
+RewriteCond %{REQUEST_FILENAME} !-f
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
+
+
+ RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+
+
+# In case Rails experiences terminal errors
+# Instead of displaying this message you can supply a file here which will be rendered instead
+#
+# Example:
+# ErrorDocument 500 /500.html
+
+ErrorDocument 500 "Application errorRails application failed to start properly"
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 public/images/.svn/all-wcprops
--- a/public/images/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/public/images/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -51,12 +51,6 @@
V 50
/svn/!svn/ver/3419/trunk/public/images/warning.png
END
-reload.png
-K 25
-svn:wc:ra_dav:version-url
-V 49
-/svn/!svn/ver/3430/trunk/public/images/reload.png
-END
move.png
K 25
svn:wc:ra_dav:version-url
@@ -69,6 +63,12 @@
V 50
/svn/!svn/ver/3419/trunk/public/images/fav_off.png
END
+reload.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/3430/trunk/public/images/reload.png
+END
project_marker.png
K 25
svn:wc:ra_dav:version-url
@@ -189,18 +189,18 @@
V 52
/svn/!svn/ver/4072/trunk/public/images/task_done.png
END
+bullet_delete.png
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/3419/trunk/public/images/bullet_delete.png
+END
text_list_bullets.png
K 25
svn:wc:ra_dav:version-url
V 60
/svn/!svn/ver/3419/trunk/public/images/text_list_bullets.png
END
-bullet_delete.png
-K 25
-svn:wc:ra_dav:version-url
-V 56
-/svn/!svn/ver/3419/trunk/public/images/bullet_delete.png
-END
bullet_arrow_left.png
K 25
svn:wc:ra_dav:version-url
@@ -381,18 +381,18 @@
V 47
/svn/!svn/ver/3419/trunk/public/images/true.png
END
+arrow_down.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/3419/trunk/public/images/arrow_down.png
+END
2uparrow.png
K 25
svn:wc:ra_dav:version-url
V 51
/svn/!svn/ver/3419/trunk/public/images/2uparrow.png
END
-arrow_down.png
-K 25
-svn:wc:ra_dav:version-url
-V 53
-/svn/!svn/ver/3419/trunk/public/images/arrow_down.png
-END
cancel.png
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 public/images/.svn/entries
--- a/public/images/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/images/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
45d9f8f4b7723c5df684fd6785b40700
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2011-01-13T14:11:09.000000Z
+2011-03-03T11:05:14.000000Z
7042481efe0084860d2a7b176086b306
2010-12-18T16:06:20.343240Z
4534
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
2455a62f4801926d7c69099f5134c867
2010-02-13T09:08:12.698526Z
3419
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
bc6f6e0d67aba9e7689e852dad4977f9
2010-02-13T09:08:12.698526Z
3419
@@ -168,7 +168,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
ecc1979ed435769c700725495428359f
2010-09-10T03:09:02.311267Z
4072
@@ -196,13 +196,47 @@
160
+folder_open_add.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+8ae3a2d9ef884ed73a4157cd9c0465b8
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+375
+
2downarrow.png
file
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
6730b4ea633194233bec98ee5f7a3977
2010-02-13T09:08:12.698526Z
3419
@@ -230,47 +264,13 @@
282
-folder_open_add.png
-file
-
-
-
-
-2010-09-23T14:37:45.139758Z
-8ae3a2d9ef884ed73a4157cd9c0465b8
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-375
-
warning.png
file
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
f1cdd6ad27b9211924dcd8a4c8133f1b
2010-02-13T09:08:12.698526Z
3419
@@ -298,13 +298,47 @@
613
+move.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+0a2ceb01cbc3c01186fdcc25ced8eb0d
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+321
+
fav_off.png
file
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
ff96c02d8f18116bb3f005f2c8b86e91
2010-02-13T09:08:12.698526Z
3419
@@ -332,47 +366,13 @@
211
-move.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-0a2ceb01cbc3c01186fdcc25ced8eb0d
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-321
-
reload.png
file
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
a20844852ce8909ed4a19ccb0f6c6518
2010-02-14T13:13:16.743297Z
3430
@@ -406,7 +406,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
94cfc6b14b69f8eb30909fa1a0d8721d
2010-09-10T03:09:02.311267Z
4072
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
6a0f06b7f2b400d1d7b07180a909fed2
2010-02-13T09:08:12.698526Z
3419
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
91b883d074b727f1a95cd0ce48510a3c
2010-02-13T09:08:12.698526Z
3419
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
acd6a5a422b44466803829ce8a12fd9a
2010-02-13T09:08:12.698526Z
3419
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
63c87d73f46ed17a4ebc2b5a7e6cd6f4
2010-02-13T09:08:12.698526Z
3419
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
45e9710ba200afbac6ba55970bd9d625
2010-02-23T21:10:15.865943Z
3477
@@ -613,7 +613,7 @@
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
7604387e10f9c0be473a497ee5f516b8
2010-02-13T09:08:12.698526Z
3419
@@ -647,7 +647,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
66da3813f290297bc39d289b859c3818
2010-02-13T09:08:12.698526Z
3419
@@ -681,7 +681,7 @@
-2010-09-23T14:37:45.151760Z
+2011-03-03T11:05:14.000000Z
0c32351cd2f92465a51d8da771bd92cb
2010-02-13T09:08:12.698526Z
3419
@@ -715,7 +715,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
59894f5d5656b1f6e2af9c22187e6e86
2010-09-10T03:09:02.311267Z
4072
@@ -749,7 +749,7 @@
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
30a7571b4822a789787f2a8b25ad4808
2010-02-13T09:08:12.698526Z
3419
@@ -783,7 +783,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
80f689a299e7e69fb2512482bca6f5d4
2010-02-13T09:08:12.698526Z
3419
@@ -817,7 +817,7 @@
-2010-09-23T14:37:45.139758Z
+2011-03-03T11:05:14.000000Z
ce8f2e6769f9abc327609dea0ded14e5
2010-02-13T09:08:12.698526Z
3419
@@ -851,7 +851,7 @@
-2010-09-23T14:37:45.151760Z
+2011-03-03T11:05:14.000000Z
242909ef391b4ebc83d53b13b4d90991
2010-02-13T09:08:12.698526Z
3419
@@ -885,7 +885,7 @@
-2010-09-23T14:37:45.139758Z
+2011-03-03T11:05:14.000000Z
cf95da81d3626d67d5f49792341e396a
2010-02-13T09:08:12.698526Z
3419
@@ -919,7 +919,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
62d29dab3c8967d0ca404a25059c3dbd
2010-02-13T09:08:12.698526Z
3419
@@ -953,7 +953,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
eecb8adaaeabcff6c838886809c85f93
2010-02-13T09:08:12.698526Z
3419
@@ -987,7 +987,7 @@
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
898a97e88d0cfc1dd41a6903d0a7cd72
2010-02-13T09:08:12.698526Z
3419
@@ -1021,7 +1021,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
3713155c5afcfeffaf877126d6b942aa
2010-02-13T09:08:12.698526Z
3419
@@ -1055,7 +1055,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
40c58172e0c52eee4deb5227ec37f0cf
2010-09-10T03:09:02.311267Z
4072
@@ -1089,7 +1089,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
fba036d7348ff28f7ab7dacbc52bc32a
2010-02-13T09:08:12.698526Z
3419
@@ -1123,7 +1123,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
01c137e009015642700b935edb321a89
2010-02-13T09:08:12.698526Z
3419
@@ -1157,7 +1157,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
ef1412a13d9113c5e5e85cfcd8300d9d
2010-02-13T09:08:12.698526Z
3419
@@ -1191,7 +1191,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
b2e4e10fb114db28b9245210a5505c44
2010-02-14T11:52:12.027647Z
3426
@@ -1225,7 +1225,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
e0d9ad958faa1c07b84c78c7b7e5ffae
2010-02-13T09:08:12.698526Z
3419
@@ -1259,7 +1259,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
3eb9e517f1a10430f7ec0ed7d30e05d8
2010-02-13T09:08:12.698526Z
3419
@@ -1293,7 +1293,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
e341b581fbbf8a5d038c8432409ceb5f
2010-02-23T21:10:15.865943Z
3477
@@ -1327,7 +1327,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
981a44ce8d3f71125a300dece0cc0f21
2010-02-13T09:08:12.698526Z
3419
@@ -1361,7 +1361,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
c4e01ea1c0ce5a1cd5154dfd2512fb21
2010-02-13T09:08:12.698526Z
3419
@@ -1395,7 +1395,7 @@
-2010-09-23T14:37:45.139758Z
+2011-03-03T11:05:14.000000Z
944495c065d05a9161ad7da534703010
2010-02-13T09:08:12.698526Z
3419
@@ -1423,13 +1423,47 @@
403
+attachment.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+0a35d4eaddb2292fed7062295ee0dcd8
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+939
+
textfield.png
file
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
985a1dadffeaa303ff1eef4ea53ec0f4
2010-02-13T09:08:12.698526Z
3419
@@ -1457,47 +1491,13 @@
100
-attachment.png
-file
-
-
-
-
-2010-09-23T14:37:45.123788Z
-0a35d4eaddb2292fed7062295ee0dcd8
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-939
-
false.png
file
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
f0c51de3ba403e552c8ab6e8084448a4
2010-02-13T09:08:12.698526Z
3419
@@ -1525,13 +1525,47 @@
459
+bullet_toggle_plus.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+06cbf5da7daca348a87a6299a4112d71
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+217
+
unlock.png
file
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
fa1be48a747127ee34d4fae020b825d4
2010-02-14T13:13:16.743297Z
3430
@@ -1559,47 +1593,13 @@
448
-bullet_toggle_plus.png
-file
-
-
-
-
-2010-09-23T14:37:45.127811Z
-06cbf5da7daca348a87a6299a4112d71
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-217
-
group.png
file
-2010-09-23T14:37:45.139758Z
+2011-03-03T11:05:14.000000Z
8e1056421acf9e61af00f0dcb83fef12
2010-02-13T09:08:12.698526Z
3419
@@ -1627,13 +1627,115 @@
700
+plugin.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+e019855b07d30f1ce1baf59b9df27125
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+538
+
+loading.gif
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+03ce3dcc84af110e9da8699a841e5200
+2006-12-03T19:55:45.161980Z
+62
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1553
+
+bullet_blue.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+3363f60299360fb5539b769d089e145f
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+241
+
save.png
file
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
9e64db8f4905a17e3a6f68792cd5e199
2010-02-13T09:08:12.698526Z
3419
@@ -1661,115 +1763,13 @@
440
-bullet_blue.png
-file
-
-
-
-
-2010-09-23T14:37:45.123788Z
-3363f60299360fb5539b769d089e145f
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-241
-
-loading.gif
-file
-
-
-
-
-2010-09-23T14:37:45.151760Z
-03ce3dcc84af110e9da8699a841e5200
-2006-12-03T19:55:45.161980Z
-62
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1553
-
-plugin.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-e019855b07d30f1ce1baf59b9df27125
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-538
-
bullet_add.png
file
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
848b802c0ce8e051f98f086f6e31c8cd
2010-02-13T09:08:12.698526Z
3419
@@ -1803,7 +1803,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
eec8605f3797315b2d8397422df1aed3
2010-02-13T09:08:12.698526Z
3419
@@ -1837,7 +1837,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
40c58172e0c52eee4deb5227ec37f0cf
2010-09-10T03:09:02.311267Z
4072
@@ -1871,7 +1871,7 @@
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
7b5dcbdd0de4541b39e1302b6277684d
2010-02-13T09:08:12.698526Z
3419
@@ -1905,7 +1905,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
dca02b582c10127fcdc8af47e94d4e4c
2010-02-13T09:08:12.698526Z
3419
@@ -1933,13 +1933,81 @@
608
+folder.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+59f2dc025632f00403490176e7f42bfc
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+
+report.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+8d8ec49f5773997411ff708a82e40568
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1014
+
zoom_out.png
file
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
42b319d6ad0249fb20833a17d5f373a4
2010-02-13T09:08:12.698526Z
3419
@@ -1967,81 +2035,13 @@
461
-report.png
-file
-
-
-
-
-2010-09-23T14:37:45.155802Z
-8d8ec49f5773997411ff708a82e40568
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1014
-
-folder.png
-file
-
-
-
-
-2010-09-23T14:37:45.139758Z
-59f2dc025632f00403490176e7f42bfc
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-970
-
fav.png
file
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
29feed9e7b5c34854bf9f9f39681e06b
2010-02-13T09:08:12.698526Z
3419
@@ -2075,7 +2075,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
c4c76ce450e3e838afd6aa8f34a8d9a8
2010-02-13T09:08:12.698526Z
3419
@@ -2109,7 +2109,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
97c12039afee2ea9c5a13e74f6fa5c0c
2010-02-13T09:08:12.698526Z
3419
@@ -2143,7 +2143,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
a30b3000c7286879d10ca1fbff06f71d
2010-02-13T09:08:12.698526Z
3419
@@ -2171,13 +2171,47 @@
248
+arrow_down.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+ed9b7ced8e3b6275c14d528dc6909691
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+115
+
2uparrow.png
file
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
afef823014efb32adcd9606b69119562
2010-02-13T09:08:12.698526Z
3419
@@ -2205,47 +2239,13 @@
292
-arrow_down.png
-file
-
-
-
-
-2010-09-23T14:37:45.123788Z
-ed9b7ced8e3b6275c14d528dc6909691
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-115
-
cancel.png
file
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
812bdb688394ba6e2ed3cb7ceb4b7df0
2010-02-13T09:08:12.698526Z
3419
@@ -2279,7 +2279,7 @@
-2010-09-23T14:37:45.139758Z
+2011-03-03T11:05:14.000000Z
7e62689a93d0a23cbd1cf2dd754653e2
2010-02-13T09:08:12.698526Z
3419
@@ -2313,7 +2313,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
9856446e5026c8d31704b84e836dc06e
2010-02-13T09:08:12.698526Z
3419
@@ -2347,7 +2347,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
f94f71deb205f49de993ad9521791ada
2010-02-13T09:08:12.698526Z
3419
@@ -2381,7 +2381,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
3ec32bbf3ad9e052833d05c0d41445f0
2010-02-13T09:08:12.698526Z
3419
@@ -2415,7 +2415,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
980dcfdb816ce626e4d2df5c2a308549
2010-02-13T09:08:12.698526Z
3419
@@ -2449,7 +2449,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
3e9542b5042e280bc2fc0ae98c81529f
2010-02-13T09:08:12.698526Z
3419
@@ -2483,7 +2483,7 @@
-2010-09-23T14:37:45.151760Z
+2011-03-03T11:05:14.000000Z
9a911ac680f354452f13729921e80d21
2010-02-13T09:08:12.698526Z
3419
@@ -2517,7 +2517,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
ea73bd6514b7d5f1d7ea2bd336f9303a
2010-02-13T09:08:12.698526Z
3419
@@ -2551,7 +2551,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
3b0e537dabdfa5385e76ea465c4ea57b
2010-02-13T09:08:12.698526Z
3419
@@ -2585,7 +2585,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
82e11faddb62c05a1ef9701035919c00
2010-02-13T09:08:12.698526Z
3419
@@ -2619,7 +2619,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
cd3890ab38793e53a99227a180616a70
2010-02-13T09:08:12.698526Z
3419
@@ -2653,7 +2653,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
9a73430b658b4e16668b3e3cc7e241b4
2010-02-13T09:08:12.698526Z
3419
@@ -2687,7 +2687,7 @@
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
558c616ebcfa38b1c7b298184e58eb91
2010-02-13T09:08:12.698526Z
3419
@@ -2721,7 +2721,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
2459e5967a6ddd78589ab52970574f3f
2010-02-13T09:08:12.698526Z
3419
@@ -2755,7 +2755,7 @@
-2010-09-23T14:37:45.131805Z
+2011-03-03T11:05:14.000000Z
60f9166d90d7aeb71d0ec9ee337c3f5e
2010-02-13T09:08:12.698526Z
3419
@@ -2792,7 +2792,7 @@
-2010-09-23T14:37:45.127811Z
+2011-03-03T11:05:14.000000Z
cd5b56dff1c089b4e1e3db29b2b7226e
2010-02-13T09:08:12.698526Z
3419
@@ -2826,7 +2826,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
6172a7483daa35983c4ea5a35bd8c64a
2010-07-20T23:50:15.173990Z
3859
@@ -2860,7 +2860,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
6b08128a1b67ecb4b1ed06c9c505ac63
2010-02-13T09:08:12.698526Z
3419
@@ -2894,7 +2894,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
980dcfdb816ce626e4d2df5c2a308549
2010-02-13T09:08:12.698526Z
3419
@@ -2928,7 +2928,7 @@
-2010-09-23T14:37:45.123788Z
+2011-03-03T11:05:14.000000Z
035a9d73627fc55aeaa7b553ac82ae9e
2010-02-13T09:08:12.698526Z
3419
@@ -2962,7 +2962,7 @@
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
06b4b4425c7439fd898cd68e97f75d0f
2010-02-13T09:08:12.698526Z
3419
@@ -2996,7 +2996,7 @@
-2010-09-23T14:37:45.163769Z
+2011-03-03T11:05:14.000000Z
d8ae88af42e1b9d1a4f9397041b17cd8
2010-02-13T09:08:12.698526Z
3419
@@ -3030,7 +3030,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
85089bb401af7c5d7325ee317483ac70
2010-02-13T09:08:12.698526Z
3419
@@ -3064,7 +3064,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
11dc95a35460864fc1e81bd95121cbf4
2010-02-13T09:08:12.698526Z
3419
@@ -3098,7 +3098,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
d8720cf3644e6ae0511c1391fb2ecf07
2009-02-11T19:07:07.158826Z
2442
@@ -3132,7 +3132,7 @@
-2010-09-23T14:37:45.155802Z
+2011-03-03T11:05:14.000000Z
8b706274d81243b3d26fdf06dfc9e533
2010-02-13T09:08:12.698526Z
3419
@@ -3166,7 +3166,7 @@
-2010-09-24T12:48:29.823793Z
+2011-03-03T11:05:14.000000Z
f0626259c107cfa1d1e4cb9d9f6edd34
2010-09-10T03:09:02.311267Z
4072
@@ -3200,7 +3200,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
9265bd26d6ba3d780dcd6fe676352d93
2010-02-13T09:08:12.698526Z
3419
@@ -3234,7 +3234,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
e34a59e24637e7bf462f5a742dbe243f
2010-02-13T09:08:12.698526Z
3419
@@ -3268,7 +3268,7 @@
-2010-09-23T14:37:45.159811Z
+2011-03-03T11:05:14.000000Z
11f086774137d85a5cc6590ec3335ead
2010-02-13T09:08:12.698526Z
3419
diff -r fca2657f4aa5 -r eeebe205a056 public/images/files/.svn/entries
--- a/public/images/files/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/images/files/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/images/files
+4993
+http://redmine.rubyforge.org/svn/trunk/public/images/files
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
136af9d95025ca62a3091a261266e13f
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
c801cf9aa0103de823e53e83459a1ff9
2010-02-13T09:08:12.698526Z
3419
@@ -100,7 +100,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
1e51c81cb33d3d6746d440c1babfe0f5
2010-02-13T09:08:12.698526Z
3419
@@ -134,7 +134,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
db0495227202385c9fce1b73f2d58ff0
2010-02-13T09:08:12.698526Z
3419
@@ -168,7 +168,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
94db8424e52f54d7372a976574c4598e
2010-02-13T09:08:12.698526Z
3419
@@ -202,7 +202,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ad3ed8ec19bb2a3cca8c03e0ea1aa846
2010-02-13T09:08:12.698526Z
3419
@@ -236,7 +236,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
8e05d64f0b9f45f076b41521a8d6a8d1
2010-02-13T09:08:12.698526Z
3419
@@ -270,7 +270,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ea9b5de5353e1cac630021dfed30dba4
2010-02-13T09:08:12.698526Z
3419
@@ -304,7 +304,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
0790c67308754572014015fa90eef406
2010-02-13T09:08:12.698526Z
3419
@@ -338,7 +338,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
e11f9ebff53e8088dce2a0028f0d5190
2010-02-13T09:08:12.698526Z
3419
diff -r fca2657f4aa5 -r eeebe205a056 public/images/jstoolbar/.svn/entries
--- a/public/images/jstoolbar/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/images/jstoolbar/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/images/jstoolbar
+4993
+http://redmine.rubyforge.org/svn/trunk/public/images/jstoolbar
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
c77264aa6d145362b791c99d18f53ace
2010-02-13T09:08:12.698526Z
3419
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
c19bfc8d9620c00cdd8ae322426bc07e
2010-02-13T09:08:12.698526Z
3419
@@ -94,13 +94,81 @@
252
+bt_ol.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+5477ff20be77ab65aa6b75f47778234e
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+248
+
+bt_h3.png
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+cb940b592da5ed0367305cb0514d5684
+2010-02-13T09:08:12.698526Z
+3419
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+261
+
bt_code.png
file
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
ef6624df45946b54e3b23db2a0c6b77b
2010-02-13T09:08:12.698526Z
3419
@@ -128,14 +196,14 @@
927
-bt_h3.png
+bt_strong.png
file
-2010-08-12T15:03:25.000000Z
-cb940b592da5ed0367305cb0514d5684
+2011-03-03T11:05:14.000000Z
+f9d7446ceaa5142a5030e9430b3a2bb4
2010-02-13T09:08:12.698526Z
3419
jplang
@@ -160,41 +228,7 @@
-261
-
-bt_ol.png
-file
-
-
-
-
-2010-08-12T15:03:25.000000Z
-5477ff20be77ab65aa6b75f47778234e
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-248
+244
bt_img.png
file
@@ -202,7 +236,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
04a0e86c9eec7d85d445e7627b5fc8ea
2010-02-13T09:08:12.698526Z
3419
@@ -230,47 +264,13 @@
1027
-bt_strong.png
-file
-
-
-
-
-2010-08-12T15:03:25.000000Z
-f9d7446ceaa5142a5030e9430b3a2bb4
-2010-02-13T09:08:12.698526Z
-3419
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-244
-
bt_bq_remove.png
file
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
123b8289e1bd69a5944cf727a5e39bc9
2010-02-13T09:08:12.698526Z
3419
@@ -304,7 +304,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
15d8f6c0fbf85718123fb7c7da782713
2010-02-13T09:08:12.698526Z
3419
@@ -338,7 +338,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
5a29cb56451be0fd714b99d2b2649bf0
2010-02-13T09:08:12.698526Z
3419
@@ -372,7 +372,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
07234419aecb827f11eef1ebd9b42482
2010-02-13T09:08:12.698526Z
3419
@@ -406,7 +406,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
5042501ddf948fe938ded69a40ef1024
2010-02-13T09:08:12.698526Z
3419
@@ -440,7 +440,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
584fb45fd15d894adc19ff3cf626fae9
2010-02-13T09:08:12.698526Z
3419
@@ -474,7 +474,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
8448f92476ae933bacef7bc30ffd18fd
2010-02-13T09:08:12.698526Z
3419
@@ -508,7 +508,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
38ee94bc0a44b9420854aceeccd2dd59
2010-02-13T09:08:12.698526Z
3419
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/.svn/all-wcprops
--- a/public/javascripts/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 43
-/svn/!svn/ver/4648/trunk/public/javascripts
+/svn/!svn/ver/4947/trunk/public/javascripts
END
prototype.js
K 25
@@ -13,7 +13,7 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4504/trunk/public/javascripts/context_menu.js
+/svn/!svn/ver/4947/trunk/public/javascripts/context_menu.js
END
repository_navigation.js
K 25
@@ -43,7 +43,7 @@
K 25
svn:wc:ra_dav:version-url
V 58
-/svn/!svn/ver/4648/trunk/public/javascripts/application.js
+/svn/!svn/ver/4900/trunk/public/javascripts/application.js
END
controls.js
K 25
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/.svn/entries
--- a/public/javascripts/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public/javascripts
http://redmine.rubyforge.org/svn
-2011-01-06T21:02:19.982329Z
-4648
+2011-02-24T17:56:17.648907Z
+4947
jplang
@@ -35,7 +35,7 @@
-2010-09-23T14:37:45.243754Z
+2011-03-03T11:05:14.000000Z
b5684120e496c310977713be34be4868
2009-02-21T11:04:50.579477Z
2493
@@ -69,10 +69,10 @@
-2011-01-13T14:11:09.000000Z
-d8370dbea2b172789fa1683412c110a5
-2010-12-12T16:26:24.102027Z
-4504
+2011-03-03T11:40:18.000000Z
+3065b1a7ff2aca0c2d6fb394f4fef7fa
+2011-02-24T17:56:17.648907Z
+4947
jplang
has-props
@@ -95,7 +95,7 @@
-7021
+6852
calendar
dir
@@ -106,7 +106,7 @@
-2010-09-23T14:37:45.243754Z
+2011-03-03T11:05:14.000000Z
b868f888ccb92a2e7d3b955f0213078c
2009-08-15T22:41:40.505056Z
2840
@@ -140,7 +140,7 @@
-2010-09-23T14:37:45.207758Z
+2011-03-03T11:05:14.000000Z
a7d95dc040992701ba78fd5b97af950e
2009-02-21T11:04:50.579477Z
2493
@@ -174,7 +174,7 @@
-2010-09-23T14:37:45.243754Z
+2011-03-03T11:05:14.000000Z
d62b158eef2592fbe11ce104e118631c
2009-11-28T11:59:45.246623Z
3106
@@ -208,7 +208,7 @@
-2010-09-23T14:37:45.207758Z
+2011-03-03T11:05:14.000000Z
3aa08ad9af21eb305a120e2e1a47d1af
2009-02-21T11:04:50.579477Z
2493
@@ -242,10 +242,10 @@
-2011-01-13T14:11:09.000000Z
-d9adfbc01d7b99bb5de20d5e9fb145a6
-2011-01-06T21:02:19.982329Z
-4648
+2011-03-03T11:40:18.000000Z
+312c6491eda00cbd741131ab1685a4b9
+2011-02-21T09:53:29.844413Z
+4900
jplang
has-props
@@ -268,7 +268,7 @@
-7727
+8869
controls.js
file
@@ -276,7 +276,7 @@
-2010-09-23T14:37:45.207758Z
+2011-03-03T11:05:14.000000Z
136701e951925f3dcb84f9a231f9326e
2009-02-21T11:04:50.579477Z
2493
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/.svn/text-base/application.js.svn-base
--- a/public/javascripts/.svn/text-base/application.js.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/.svn/text-base/application.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -46,6 +46,12 @@
Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2});
}
+function hideFieldset(el) {
+ var fieldset = Element.up(el, 'fieldset');
+ fieldset.toggleClassName('collapsed');
+ fieldset.down('div').hide();
+}
+
var fileFieldCount = 1;
function addFileField() {
@@ -249,6 +255,49 @@
Event.observe('project_enabled_module_names_issue_tracking', 'change', f);
}
+/*
+ * Class used to warn user when leaving a page with unsaved textarea
+ * Author: mathias.fischer@berlinonline.de
+*/
+
+var WarnLeavingUnsaved = Class.create({
+ observedForms: false,
+ observedElements: false,
+ changedForms: false,
+ message: null,
+
+ initialize: function(message){
+ this.observedForms = $$('form');
+ this.observedElements = $$('textarea');
+ this.message = message;
+
+ this.observedElements.each(this.observeChange.bind(this));
+ this.observedForms.each(this.submitAction.bind(this));
+
+ window.onbeforeunload = this.unload.bind(this);
+ },
+
+ unload: function(){
+ if(this.changedForms)
+ return this.message;
+ },
+
+ setChanged: function(){
+ this.changedForms = true;
+ },
+
+ setUnchanged: function(){
+ this.changedForms = false;
+ },
+
+ observeChange: function(element){
+ element.observe('change',this.setChanged.bindAsEventListener(this));
+ },
+
+ submitAction: function(element){
+ element.observe('submit',this.setUnchanged.bindAsEventListener(this));
+ }
+});
/* shows and hides ajax indicator */
Ajax.Responders.register({
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/.svn/text-base/context_menu.js.svn-base
--- a/public/javascripts/.svn/text-base/context_menu.js.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/.svn/text-base/context_menu.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -11,7 +11,7 @@
if (!observingContextMenuClick) {
Event.observe(document, 'click', this.Click.bindAsEventListener(this));
- Event.observe(document, (window.opera ? 'click' : 'contextmenu'), this.RightClick.bindAsEventListener(this));
+ Event.observe(document, 'contextmenu', this.RightClick.bindAsEventListener(this));
observingContextMenuClick = true;
}
@@ -23,8 +23,6 @@
this.hideMenu();
// do not show the context menu on links
if (Event.element(e).tagName == 'A') { return; }
- // right-click simulated by Alt+Click with Opera
- if (window.opera && !e.altKey) { return; }
var tr = Event.findElement(e, 'tr');
if (tr == document || tr == undefined || !tr.hasClassName('hascontextmenu')) { return; }
Event.stop(e);
@@ -39,7 +37,6 @@
Click: function(e) {
this.hideMenu();
if (Event.element(e).tagName == 'A') { return; }
- if (window.opera && e.altKey) { return; }
if (Event.isLeftClick(e) || (navigator.appVersion.match(/\bMSIE\b/))) {
var tr = Event.findElement(e, 'tr');
if (tr!=null && tr!=document && tr.hasClassName('hascontextmenu')) {
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/application.js
--- a/public/javascripts/application.js Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/application.js Thu Mar 03 12:02:03 2011 +0000
@@ -46,6 +46,12 @@
Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2});
}
+function hideFieldset(el) {
+ var fieldset = Element.up(el, 'fieldset');
+ fieldset.toggleClassName('collapsed');
+ fieldset.down('div').hide();
+}
+
var fileFieldCount = 1;
function addFileField() {
@@ -249,6 +255,49 @@
Event.observe('project_enabled_module_names_issue_tracking', 'change', f);
}
+/*
+ * Class used to warn user when leaving a page with unsaved textarea
+ * Author: mathias.fischer@berlinonline.de
+*/
+
+var WarnLeavingUnsaved = Class.create({
+ observedForms: false,
+ observedElements: false,
+ changedForms: false,
+ message: null,
+
+ initialize: function(message){
+ this.observedForms = $$('form');
+ this.observedElements = $$('textarea');
+ this.message = message;
+
+ this.observedElements.each(this.observeChange.bind(this));
+ this.observedForms.each(this.submitAction.bind(this));
+
+ window.onbeforeunload = this.unload.bind(this);
+ },
+
+ unload: function(){
+ if(this.changedForms)
+ return this.message;
+ },
+
+ setChanged: function(){
+ this.changedForms = true;
+ },
+
+ setUnchanged: function(){
+ this.changedForms = false;
+ },
+
+ observeChange: function(element){
+ element.observe('change',this.setChanged.bindAsEventListener(this));
+ },
+
+ submitAction: function(element){
+ element.observe('submit',this.setUnchanged.bindAsEventListener(this));
+ }
+});
/* shows and hides ajax indicator */
Ajax.Responders.register({
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/calendar/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/4903/trunk/public/javascripts/calendar
+END
+calendar-setup.js
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/3252/trunk/public/javascripts/calendar/calendar-setup.js
+END
+calendar.js
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/3822/trunk/public/javascripts/calendar/calendar.js
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/.svn/entries
--- a/public/javascripts/calendar/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/calendar/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/javascripts/calendar
+4993
+http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar
http://redmine.rubyforge.org/svn
-2010-09-05T11:33:08.614151Z
-4060
-winterheart
+2011-02-21T10:08:59.720731Z
+4903
+jplang
@@ -35,7 +35,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
e9be087e31b69f1e6a29ebd09b878486
2009-12-26T17:17:16.012737Z
3252
@@ -69,7 +69,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
a2dccec0bd70984b17a54239caf0d5e0
2010-06-30T02:54:15.730933Z
3822
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/lang/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/calendar/lang/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,263 @@
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/4903/trunk/public/javascripts/calendar/lang
+END
+calendar-fi.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1186/trunk/public/javascripts/calendar/lang/calendar-fi.js
+END
+calendar-bs.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2629/trunk/public/javascripts/calendar/lang/calendar-bs.js
+END
+calendar-cs.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/764/trunk/public/javascripts/calendar/lang/calendar-cs.js
+END
+calendar-mk.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4049/trunk/public/javascripts/calendar/lang/calendar-mk.js
+END
+calendar-es.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/419/trunk/public/javascripts/calendar/lang/calendar-es.js
+END
+calendar-ko.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2182/trunk/public/javascripts/calendar/lang/calendar-ko.js
+END
+calendar-eu.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/3338/trunk/public/javascripts/calendar/lang/calendar-eu.js
+END
+calendar-no.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1300/trunk/public/javascripts/calendar/lang/calendar-no.js
+END
+calendar-hu.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1452/trunk/public/javascripts/calendar/lang/calendar-hu.js
+END
+calendar-sk.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1998/trunk/public/javascripts/calendar/lang/calendar-sk.js
+END
+calendar-vi.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2493/trunk/public/javascripts/calendar/lang/calendar-vi.js
+END
+calendar-sr-yu.js
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/4003/trunk/public/javascripts/calendar/lang/calendar-sr-yu.js
+END
+calendar-uk.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1149/trunk/public/javascripts/calendar/lang/calendar-uk.js
+END
+calendar-ro.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2630/trunk/public/javascripts/calendar/lang/calendar-ro.js
+END
+calendar-ru.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/907/trunk/public/javascripts/calendar/lang/calendar-ru.js
+END
+calendar-id.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/3227/trunk/public/javascripts/calendar/lang/calendar-id.js
+END
+calendar-en.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/419/trunk/public/javascripts/calendar/lang/calendar-en.js
+END
+calendar-gl.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2296/trunk/public/javascripts/calendar/lang/calendar-gl.js
+END
+calendar-fr.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/748/trunk/public/javascripts/calendar/lang/calendar-fr.js
+END
+calendar-nl.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/539/trunk/public/javascripts/calendar/lang/calendar-nl.js
+END
+calendar-hr.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/3320/trunk/public/javascripts/calendar/lang/calendar-hr.js
+END
+calendar-zh-tw.js
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/1498/trunk/public/javascripts/calendar/lang/calendar-zh-tw.js
+END
+calendar-mn.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/3626/trunk/public/javascripts/calendar/lang/calendar-mn.js
+END
+calendar-pl.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/749/trunk/public/javascripts/calendar/lang/calendar-pl.js
+END
+calendar-th.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1383/trunk/public/javascripts/calendar/lang/calendar-th.js
+END
+calendar-it.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4003/trunk/public/javascripts/calendar/lang/calendar-it.js
+END
+calendar-sl.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2340/trunk/public/javascripts/calendar/lang/calendar-sl.js
+END
+calendar-lt.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1149/trunk/public/javascripts/calendar/lang/calendar-lt.js
+END
+calendar-lv.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/3737/trunk/public/javascripts/calendar/lang/calendar-lv.js
+END
+calendar-zh.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1498/trunk/public/javascripts/calendar/lang/calendar-zh.js
+END
+calendar-pt.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1927/trunk/public/javascripts/calendar/lang/calendar-pt.js
+END
+calendar-ca.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4060/trunk/public/javascripts/calendar/lang/calendar-ca.js
+END
+calendar-pt-br.js
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/1453/trunk/public/javascripts/calendar/lang/calendar-pt-br.js
+END
+calendar-da.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2292/trunk/public/javascripts/calendar/lang/calendar-da.js
+END
+calendar-sr.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4003/trunk/public/javascripts/calendar/lang/calendar-sr.js
+END
+calendar-tr.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1817/trunk/public/javascripts/calendar/lang/calendar-tr.js
+END
+calendar-fa.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/4903/trunk/public/javascripts/calendar/lang/calendar-fa.js
+END
+calendar-bg.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/502/trunk/public/javascripts/calendar/lang/calendar-bg.js
+END
+calendar-de.js
+K 25
+svn:wc:ra_dav:version-url
+V 71
+/svn/!svn/ver/419/trunk/public/javascripts/calendar/lang/calendar-de.js
+END
+calendar-en-gb.js
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/3809/trunk/public/javascripts/calendar/lang/calendar-en-gb.js
+END
+calendar-sv.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2290/trunk/public/javascripts/calendar/lang/calendar-sv.js
+END
+calendar-ja.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1051/trunk/public/javascripts/calendar/lang/calendar-ja.js
+END
+calendar-he.js
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/1478/trunk/public/javascripts/calendar/lang/calendar-he.js
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/lang/.svn/entries
--- a/public/javascripts/calendar/lang/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/calendar/lang/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public/javascripts/calendar/lang
http://redmine.rubyforge.org/svn
-2010-09-05T11:33:08.614151Z
-4060
-winterheart
+2011-02-21T10:08:59.720731Z
+4903
+jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
d89a932075b18af4121f1941175d33d6
2008-03-05T08:54:26.865464Z
1186
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
1f10556f12619006e5cd99bf0e5061cc
2009-03-24T19:16:02.676125Z
2629
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
071917d0ae794b3cb057a0b354cd5105
2007-09-25T16:37:51.755262Z
764
@@ -134,7 +134,7 @@
-2010-09-24T12:48:29.835791Z
+2011-03-03T11:05:14.000000Z
1044fe45dceaa0d72c32aca5c86eea4a
2010-08-29T12:54:04.302020Z
4049
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
5728a3665edb05faed6661f0f77c6eab
2007-04-04T18:20:45.423396Z
419
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
42ef87b559c68d2db63b109f3cb3f3ed
2008-12-24T15:48:59.830167Z
2182
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
3f9bda99497d5c8342d87b4ec6aa44ba
2010-01-25T15:25:46.560119Z
3338
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
4ae334472d40209252da8c69f07eabd5
2008-03-27T19:27:40.125888Z
1300
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
3c66093b97b7d0bb66f04dbc0be4afb3
2008-05-25T12:18:49.439996Z
1452
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
c161d1507fbd65ebddd7ada7c495eb89
2008-11-09T00:29:20.731069Z
1998
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
a85bbd596ff7e03e9434a286edd134fd
2009-02-21T11:04:50.579477Z
2493
@@ -400,13 +400,47 @@
3978
+calendar-sr-yu.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+c48be791f5e8d236624752ce05cd3ed7
+2010-08-19T15:41:09.090282Z
+4003
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3687
+
calendar-uk.js
file
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
46811ee79796d2345bea2308475d1ec9
2008-02-15T17:47:19.829750Z
1149
@@ -434,47 +468,13 @@
3600
-calendar-sr-yu.js
-file
-
-
-
-
-2010-09-23T14:37:45.203758Z
-c48be791f5e8d236624752ce05cd3ed7
-2010-08-19T15:41:09.090282Z
-4003
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3687
-
calendar-ro.js
file
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
7e96487f7e089a48bd61d5e6e8785fe1
2009-03-24T19:20:53.296475Z
2630
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
8555f3d813ca70ecbd2aaecae826549f
2007-11-16T21:24:22.091853Z
907
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
f5a05a0d27c2d22fa8a7bf16be345250
2009-12-23T18:56:03.404741Z
3227
@@ -570,47 +570,13 @@
3845
-calendar-gl.js
-file
-
-
-
-
-2010-09-23T14:37:45.195758Z
-c4f74e36f6a3debcf8ec065bc6886f04
-2009-01-23T15:37:59.406714Z
-2296
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3855
-
calendar-en.js
file
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
46811ee79796d2345bea2308475d1ec9
2007-04-04T18:20:45.423396Z
419
@@ -638,13 +604,47 @@
3600
+calendar-gl.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+c4f74e36f6a3debcf8ec065bc6886f04
+2009-01-23T15:37:59.406714Z
+2296
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3855
+
calendar-fr.js
file
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
0bfaa3ec0b265f9d5a815d9b9b348c96
2007-09-22T14:12:44.830265Z
748
@@ -672,13 +672,81 @@
3870
+calendar-nl.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+c029bd9c4867bb39e86d1d6efada6d58
+2007-05-24T17:29:11.682821Z
+539
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3701
+
+calendar-hr.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+f8d0daa275cf612206c43d4c9be95d08
+2010-01-17T10:33:30.937961Z
+3320
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3646
+
calendar-zh-tw.js
file
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
0bed4c9c046772a12267b4118bf1504a
2008-06-07T09:03:20.687527Z
1498
@@ -706,81 +774,13 @@
3841
-calendar-hr.js
-file
-
-
-
-
-2010-09-23T14:37:45.195758Z
-f8d0daa275cf612206c43d4c9be95d08
-2010-01-17T10:33:30.937961Z
-3320
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3646
-
-calendar-nl.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-c029bd9c4867bb39e86d1d6efada6d58
-2007-05-24T17:29:11.682821Z
-539
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3701
-
calendar-mn.js
file
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
307341352eee53b3ccd1fbec2a4b27f7
2010-04-03T10:49:16.109274Z
3626
@@ -808,13 +808,47 @@
3904
+calendar-pl.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+eabf711c28d30bb9474f3f505766f286
+2007-09-22T14:56:09.057923Z
+749
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3974
+
calendar-th.js
file
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
c8c19e66c3e1099c3e0ecae6462f68da
2008-04-30T08:47:14.770680Z
1383
@@ -842,47 +876,13 @@
4417
-calendar-pl.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-eabf711c28d30bb9474f3f505766f286
-2007-09-22T14:56:09.057923Z
-749
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3974
-
calendar-it.js
file
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
d637b0156da2601e000e16f1ac178768
2010-08-19T15:41:09.090282Z
4003
@@ -916,7 +916,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
cbf1a5c6b271835c701031aacaeaa271
2009-01-31T12:02:37.933490Z
2340
@@ -950,7 +950,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
33bc41a153fc6fb2aa53069fb0f647d6
2008-02-15T17:47:19.829750Z
1149
@@ -978,13 +978,47 @@
3909
+calendar-lv.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+b260d88c13c01ebf4e7c94b9cb022930
+2010-05-14T18:15:41.754813Z
+3737
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3803
+
calendar-zh.js
file
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
02222471f3e701ac1223096737fa5705
2008-06-07T09:03:20.687527Z
1498
@@ -1012,47 +1046,13 @@
3600
-calendar-lv.js
-file
-
-
-
-
-2010-09-23T14:37:45.199778Z
-b260d88c13c01ebf4e7c94b9cb022930
-2010-05-14T18:15:41.754813Z
-3737
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3803
-
calendar-ca.js
file
-2010-09-24T12:48:29.835791Z
+2011-03-03T11:05:14.000000Z
2756627844089652700c203ee91ec6f3
2010-09-05T11:33:08.614151Z
4060
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
67f2807b1ee731af4fe16f358a8d9096
2008-10-06T15:00:56.914741Z
1927
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
c684331ae98de9a0e03db4de8f985e44
2008-05-25T12:42:56.738934Z
1453
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
0d732eaa10604b943c7d600a15c8a651
2009-01-20T16:09:07.993954Z
2292
@@ -1188,7 +1188,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
a26f883ac70499ee0409af2c08156a84
2010-08-19T15:41:09.090282Z
4003
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
8cb3dced137544295b39ef836028433e
2008-09-13T17:25:01.876743Z
1817
@@ -1250,13 +1250,47 @@
3776
+calendar-fa.js
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+79e745b797f9148ac63de8ce583e2282
+2011-02-21T10:08:59.720731Z
+4903
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3977
+
calendar-bg.js
file
-2010-09-23T14:37:45.191758Z
+2011-03-03T11:05:14.000000Z
df1a74fadb5ce5b1cc53aa70034f578b
2007-05-02T19:36:00.768529Z
502
@@ -1290,7 +1324,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
d508459192a856b332d75de94c8d5c6c
2007-04-04T18:20:45.423396Z
419
@@ -1324,7 +1358,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
66418d047f243e10172798af0fb4d927
2010-06-21T19:54:55.180393Z
3809
@@ -1358,7 +1392,7 @@
-2010-09-23T14:37:45.203758Z
+2011-03-03T11:05:14.000000Z
7dc0f35efebbe8b0d078d2c847b43b7c
2009-01-20T15:45:34.332677Z
2290
@@ -1392,7 +1426,7 @@
-2010-09-23T14:37:45.199778Z
+2011-03-03T11:05:14.000000Z
eb66ba69ac2233b24fe200060ec67ab7
2008-01-10T18:34:14.889747Z
1051
@@ -1426,7 +1460,7 @@
-2010-09-23T14:37:45.195758Z
+2011-03-03T11:05:14.000000Z
0c77d7dafe8031971e69a7a57b3dc93e
2008-05-30T15:34:53.673854Z
1478
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/lang/.svn/prop-base/calendar-fa.js.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/calendar/lang/.svn/prop-base/calendar-fa.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/lang/.svn/text-base/calendar-fa.js.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/calendar/lang/.svn/text-base/calendar-fa.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,127 @@
+// ** I18N
+
+// Calendar FA language
+// Author: Behrang Noroozinia, behrangn at g mail
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible. We strongly believe that
+// Unicode is the answer to a real internationalized world. Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("یک‌شنبه",
+ "دوشنبه",
+ "سه‌شنبه",
+ "چهارشنبه",
+ "پنج‌شنبه",
+ "آدینه",
+ "شنبه",
+ "یک‌شنبه");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary. We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+// Calendar._SDN_len = N; // short day name length
+// Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("یک",
+ "دو",
+ "سه",
+ "چهار",
+ "پنج",
+ "آدینه",
+ "شنبه",
+ "یک");
+
+// First day of the week. "0" means display Sunday first, "1" means display
+// Monday first, etc.
+Calendar._FD = 0;
+
+// full month names
+Calendar._MN = new Array
+("ژانویه",
+ "Ùوریه",
+ "مارس",
+ "آوریل",
+ "مه",
+ "ژوئن",
+ "ژوئیه",
+ "اوت",
+ "سپتامبر",
+ "اکتبر",
+ "نوامبر",
+ "دسامبر");
+
+// short month names
+Calendar._SMN = new Array
+("ژان",
+ "Ùور",
+ "مار",
+ "آور",
+ "مه",
+ "ژوئن",
+ "ژوئیه",
+ "اوت",
+ "سپت",
+ "اکت",
+ "نوا",
+ "دسا");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "درباره گاهشمار";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Date selection:\n" +
+"- Use the \xab, \xbb buttons to select year\n" +
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
+"- Hold mouse button on any of the above buttons for faster selection.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Time selection:\n" +
+"- Click on any of the time parts to increase it\n" +
+"- or Shift-click to decrease it\n" +
+"- or click and drag for faster selection.";
+
+Calendar._TT["PREV_YEAR"] = "سال پیشین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["PREV_MONTH"] = "ماه پیشین ( برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["GO_TODAY"] = "برو به امروز";
+Calendar._TT["NEXT_MONTH"] = "ماه پسین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["NEXT_YEAR"] = "سال پسین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["SEL_DATE"] = "گزینش";
+Calendar._TT["DRAG_TO_MOVE"] = "برای جابجایی بکشید";
+Calendar._TT["PART_TODAY"] = " (امروز)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "آغاز Ù‡ÙØªÙ‡ از %s";
+
+// This may be locale-dependent. It specifies the week-end days, as an array
+// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "4,5";
+
+Calendar._TT["CLOSE"] = "بسته";
+Calendar._TT["TODAY"] = "امروز";
+Calendar._TT["TIME_PART"] = "زدن (با Shift) یا کشیدن برای ویرایش";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Ù‡ÙØªÙ‡";
+Calendar._TT["TIME"] = "زمان:";
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/calendar/lang/calendar-fa.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/calendar/lang/calendar-fa.js Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,127 @@
+// ** I18N
+
+// Calendar FA language
+// Author: Behrang Noroozinia, behrangn at g mail
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+
+// For translators: please use UTF-8 if possible. We strongly believe that
+// Unicode is the answer to a real internationalized world. Also please
+// include your contact information in the header, as can be seen above.
+
+// full day names
+Calendar._DN = new Array
+("یک‌شنبه",
+ "دوشنبه",
+ "سه‌شنبه",
+ "چهارشنبه",
+ "پنج‌شنبه",
+ "آدینه",
+ "شنبه",
+ "یک‌شنبه");
+
+// Please note that the following array of short day names (and the same goes
+// for short month names, _SMN) isn't absolutely necessary. We give it here
+// for exemplification on how one can customize the short day names, but if
+// they are simply the first N letters of the full name you can simply say:
+//
+// Calendar._SDN_len = N; // short day name length
+// Calendar._SMN_len = N; // short month name length
+//
+// If N = 3 then this is not needed either since we assume a value of 3 if not
+// present, to be compatible with translation files that were written before
+// this feature.
+
+// short day names
+Calendar._SDN = new Array
+("یک",
+ "دو",
+ "سه",
+ "چهار",
+ "پنج",
+ "آدینه",
+ "شنبه",
+ "یک");
+
+// First day of the week. "0" means display Sunday first, "1" means display
+// Monday first, etc.
+Calendar._FD = 0;
+
+// full month names
+Calendar._MN = new Array
+("ژانویه",
+ "Ùوریه",
+ "مارس",
+ "آوریل",
+ "مه",
+ "ژوئن",
+ "ژوئیه",
+ "اوت",
+ "سپتامبر",
+ "اکتبر",
+ "نوامبر",
+ "دسامبر");
+
+// short month names
+Calendar._SMN = new Array
+("ژان",
+ "Ùور",
+ "مار",
+ "آور",
+ "مه",
+ "ژوئن",
+ "ژوئیه",
+ "اوت",
+ "سپت",
+ "اکت",
+ "نوا",
+ "دسا");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "درباره گاهشمار";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
+"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
+"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Date selection:\n" +
+"- Use the \xab, \xbb buttons to select year\n" +
+"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
+"- Hold mouse button on any of the above buttons for faster selection.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Time selection:\n" +
+"- Click on any of the time parts to increase it\n" +
+"- or Shift-click to decrease it\n" +
+"- or click and drag for faster selection.";
+
+Calendar._TT["PREV_YEAR"] = "سال پیشین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["PREV_MONTH"] = "ماه پیشین ( برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["GO_TODAY"] = "برو به امروز";
+Calendar._TT["NEXT_MONTH"] = "ماه پسین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["NEXT_YEAR"] = "سال پسین (برای Ùهرست Ù†Ú¯Ù‡ دارید)";
+Calendar._TT["SEL_DATE"] = "گزینش";
+Calendar._TT["DRAG_TO_MOVE"] = "برای جابجایی بکشید";
+Calendar._TT["PART_TODAY"] = " (امروز)";
+
+// the following is to inform that "%s" is to be the first day of week
+// %s will be replaced with the day name.
+Calendar._TT["DAY_FIRST"] = "آغاز Ù‡ÙØªÙ‡ از %s";
+
+// This may be locale-dependent. It specifies the week-end days, as an array
+// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
+// means Monday, etc.
+Calendar._TT["WEEKEND"] = "4,5";
+
+Calendar._TT["CLOSE"] = "بسته";
+Calendar._TT["TODAY"] = "امروز";
+Calendar._TT["TIME_PART"] = "زدن (با Shift) یا کشیدن برای ویرایش";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "Ù‡ÙØªÙ‡";
+Calendar._TT["TIME"] = "زمان:";
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/context_menu.js
--- a/public/javascripts/context_menu.js Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/context_menu.js Thu Mar 03 12:02:03 2011 +0000
@@ -11,7 +11,7 @@
if (!observingContextMenuClick) {
Event.observe(document, 'click', this.Click.bindAsEventListener(this));
- Event.observe(document, (window.opera ? 'click' : 'contextmenu'), this.RightClick.bindAsEventListener(this));
+ Event.observe(document, 'contextmenu', this.RightClick.bindAsEventListener(this));
observingContextMenuClick = true;
}
@@ -23,8 +23,6 @@
this.hideMenu();
// do not show the context menu on links
if (Event.element(e).tagName == 'A') { return; }
- // right-click simulated by Alt+Click with Opera
- if (window.opera && !e.altKey) { return; }
var tr = Event.findElement(e, 'tr');
if (tr == document || tr == undefined || !tr.hasClassName('hascontextmenu')) { return; }
Event.stop(e);
@@ -39,7 +37,6 @@
Click: function(e) {
this.hideMenu();
if (Event.element(e).tagName == 'A') { return; }
- if (window.opera && e.altKey) { return; }
if (Event.isLeftClick(e) || (navigator.appVersion.match(/\bMSIE\b/))) {
var tr = Event.findElement(e, 'tr');
if (tr!=null && tr!=document && tr.hasClassName('hascontextmenu')) {
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/jstoolbar/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/4903/trunk/public/javascripts/jstoolbar
+END
+textile.js
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/1955/trunk/public/javascripts/jstoolbar/textile.js
+END
+jstoolbar.js
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/1955/trunk/public/javascripts/jstoolbar/jstoolbar.js
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/.svn/entries
--- a/public/javascripts/jstoolbar/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/jstoolbar/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/javascripts/jstoolbar
+4993
+http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar
http://redmine.rubyforge.org/svn
-2010-08-29T12:54:04.302020Z
-4049
-winterheart
+2011-02-21T10:08:59.720731Z
+4903
+jplang
@@ -35,7 +35,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
277ebc7c66d8c8280bbe729e6cb11529
2008-10-27T11:08:29.901011Z
1955
@@ -69,7 +69,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
2b77f98553b6d5e0d4c405195eebe664
2008-10-27T11:08:29.901011Z
1955
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/lang/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,263 @@
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svn/!svn/ver/4903/trunk/public/javascripts/jstoolbar/lang
+END
+jstoolbar-mk.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4049/trunk/public/javascripts/jstoolbar/lang/jstoolbar-mk.js
+END
+jstoolbar-es.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2033/trunk/public/javascripts/jstoolbar/lang/jstoolbar-es.js
+END
+jstoolbar-ko.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2202/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ko.js
+END
+jstoolbar-eu.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/3338/trunk/public/javascripts/jstoolbar/lang/jstoolbar-eu.js
+END
+jstoolbar-no.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1540/trunk/public/javascripts/jstoolbar/lang/jstoolbar-no.js
+END
+jstoolbar-hu.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-hu.js
+END
+jstoolbar-sk.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1997/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sk.js
+END
+jstoolbar-vi.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2493/trunk/public/javascripts/jstoolbar/lang/jstoolbar-vi.js
+END
+jstoolbar-sr-yu.js
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sr-yu.js
+END
+jstoolbar-uk.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-uk.js
+END
+jstoolbar-ro.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2630/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ro.js
+END
+jstoolbar-ru.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2901/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ru.js
+END
+jstoolbar-id.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/3227/trunk/public/javascripts/jstoolbar/lang/jstoolbar-id.js
+END
+jstoolbar-en.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-en.js
+END
+jstoolbar-gl.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2296/trunk/public/javascripts/jstoolbar/lang/jstoolbar-gl.js
+END
+jstoolbar-fr.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-fr.js
+END
+jstoolbar-nl.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2291/trunk/public/javascripts/jstoolbar/lang/jstoolbar-nl.js
+END
+jstoolbar-hr.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/3320/trunk/public/javascripts/jstoolbar/lang/jstoolbar-hr.js
+END
+jstoolbar-zh-tw.js
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/1498/trunk/public/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js
+END
+jstoolbar-mn.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/3626/trunk/public/javascripts/jstoolbar/lang/jstoolbar-mn.js
+END
+jstoolbar-pl.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1928/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pl.js
+END
+jstoolbar-th.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-th.js
+END
+jstoolbar-it.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar/lang/jstoolbar-it.js
+END
+jstoolbar-sl.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2340/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sl.js
+END
+jstoolbar-lt.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-lt.js
+END
+jstoolbar-lv.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/3737/trunk/public/javascripts/jstoolbar/lang/jstoolbar-lv.js
+END
+jstoolbar-zh.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1498/trunk/public/javascripts/jstoolbar/lang/jstoolbar-zh.js
+END
+jstoolbar-pt.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1927/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pt.js
+END
+jstoolbar-ca.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1865/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ca.js
+END
+jstoolbar-pt-br.js
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-pt-br.js
+END
+jstoolbar-da.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2921/trunk/public/javascripts/jstoolbar/lang/jstoolbar-da.js
+END
+jstoolbar-sr.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4003/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sr.js
+END
+jstoolbar-tr.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1817/trunk/public/javascripts/jstoolbar/lang/jstoolbar-tr.js
+END
+jstoolbar-fa.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/4903/trunk/public/javascripts/jstoolbar/lang/jstoolbar-fa.js
+END
+jstoolbar-bg.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-bg.js
+END
+jstoolbar-de.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-de.js
+END
+jstoolbar-en-gb.js
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/3809/trunk/public/javascripts/jstoolbar/lang/jstoolbar-en-gb.js
+END
+jstoolbar-sv.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2298/trunk/public/javascripts/jstoolbar/lang/jstoolbar-sv.js
+END
+jstoolbar-ja.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2901/trunk/public/javascripts/jstoolbar/lang/jstoolbar-ja.js
+END
+jstoolbar-he.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-he.js
+END
+jstoolbar-fi.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-fi.js
+END
+jstoolbar-bs.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/2629/trunk/public/javascripts/jstoolbar/lang/jstoolbar-bs.js
+END
+jstoolbar-cs.js
+K 25
+svn:wc:ra_dav:version-url
+V 74
+/svn/!svn/ver/1479/trunk/public/javascripts/jstoolbar/lang/jstoolbar-cs.js
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/lang/.svn/entries
--- a/public/javascripts/jstoolbar/lang/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public/javascripts/jstoolbar/lang
http://redmine.rubyforge.org/svn
-2010-08-29T12:54:04.302020Z
-4049
-winterheart
+2011-02-21T10:08:59.720731Z
+4903
+jplang
@@ -32,7 +32,7 @@
-2010-09-24T12:48:29.827791Z
+2011-03-03T11:05:14.000000Z
318952e82ec967a5474a8b8464b66c63
2010-08-29T12:54:04.302020Z
4049
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
21ca3fea9a77d127edb7d2e95b33b8f8
2008-11-14T15:18:13.107466Z
2033
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
7cbd6179e32e9b8ec12a884c820565ca
2008-12-29T18:27:27.433290Z
2202
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
73ba5f511744c07325bc0eae3dce14e6
2010-01-25T15:25:46.560119Z
3338
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
b1cfe765b72f2d904756bf60307c97b7
2008-06-15T09:49:16.794942Z
1540
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
83762b06ef0b9a9756f858357bf11361
2008-05-30T16:35:36.510811Z
1479
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
b27b3e83de7c68c7752703799c0a4cda
2008-11-08T22:34:41.558925Z
1997
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
06a6efe1fa0092d534f1cc403529670b
2009-02-21T11:04:50.579477Z
2493
@@ -298,13 +298,47 @@
783
+jstoolbar-sr-yu.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+bf8f49f26dc22319ff3da721c261c593
+2010-08-19T15:41:09.090282Z
+4003
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+761
+
jstoolbar-uk.js
file
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -332,47 +366,13 @@
722
-jstoolbar-sr-yu.js
-file
-
-
-
-
-2010-09-23T14:37:45.239756Z
-bf8f49f26dc22319ff3da721c261c593
-2010-08-19T15:41:09.090282Z
-4003
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-761
-
jstoolbar-ro.js
file
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
de3d5c4af91e93505e939ccb1ef6b27a
2009-03-24T19:20:53.296475Z
2630
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
9f461eb7e9ab4460155983bd005c3237
2009-09-24T15:03:23.893264Z
2901
@@ -440,7 +440,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
fd6a3f960f0d6e1ce7e6466d592453fe
2009-12-23T18:56:03.404741Z
3227
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
1114856226e757ddfb08a99ab1cac3eb
2009-01-23T15:37:59.406714Z
2296
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
9b432fe2e801ed76abf312a10c643fb8
2008-05-30T16:35:36.510811Z
1479
@@ -570,13 +570,81 @@
753
+jstoolbar-nl.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+b1bc7a04b7b466073845dd2c81bbbf23
+2009-01-20T15:53:09.750096Z
+2291
+winterheart
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+753
+
+jstoolbar-hr.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+f13f0553753c4b53bd96c294ca6ce15e
+2010-01-17T10:33:30.937961Z
+3320
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+721
+
jstoolbar-zh-tw.js
file
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
be45a6e710f3a07e9fab41d795a64030
2008-06-07T09:03:20.687527Z
1498
@@ -604,81 +672,13 @@
716
-jstoolbar-hr.js
-file
-
-
-
-
-2010-09-23T14:37:45.231813Z
-f13f0553753c4b53bd96c294ca6ce15e
-2010-01-17T10:33:30.937961Z
-3320
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-721
-
-jstoolbar-nl.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-b1bc7a04b7b466073845dd2c81bbbf23
-2009-01-20T15:53:09.750096Z
-2291
-winterheart
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-753
-
jstoolbar-mn.js
file
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
e7df0709db363c802a6a5a4913520ac5
2010-04-03T10:49:16.109274Z
3626
@@ -706,13 +706,47 @@
916
+jstoolbar-pl.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+1d2b7d7c66953806ca428f91a95d2eaa
+2008-10-07T17:41:16.515762Z
+1928
+winterheart
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+851
+
jstoolbar-th.js
file
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
3f844a6495d4eebb122b5c7b21696282
2008-05-30T16:35:36.510811Z
1479
@@ -740,47 +774,13 @@
931
-jstoolbar-pl.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-1d2b7d7c66953806ca428f91a95d2eaa
-2008-10-07T17:41:16.515762Z
-1928
-winterheart
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-851
-
jstoolbar-it.js
file
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
c7198fe4acf23cf7df996603e68b492b
2010-08-19T15:41:09.090282Z
4003
@@ -814,7 +814,7 @@
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
a85f4ab1ed887a855f03c2cc8efb0107
2009-01-31T12:02:37.933490Z
2340
@@ -848,7 +848,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
1fbcdee2a48a3d359fd766880b9b606f
2008-05-30T16:35:36.510811Z
1479
@@ -876,13 +876,47 @@
754
+jstoolbar-lv.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+5a44b7a9bd5b7db86d0a7398ee5bc779
+2010-05-14T18:15:41.754813Z
+3737
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+836
+
jstoolbar-zh.js
file
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
fa9b7d27a231a3c85c1a4632f2563ac4
2008-06-07T09:03:20.687527Z
1498
@@ -910,81 +944,13 @@
722
-jstoolbar-lv.js
-file
-
-
-
-
-2010-09-23T14:37:45.235815Z
-5a44b7a9bd5b7db86d0a7398ee5bc779
-2010-05-14T18:15:41.754813Z
-3737
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-836
-
-jstoolbar-ca.js
-file
-
-
-
-
-2010-09-23T14:37:45.231813Z
-6aacb53ed49e6e14831baf8c38096662
-2008-09-15T16:07:30.857601Z
-1865
-winterheart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-763
-
jstoolbar-pt.js
file
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
2479961837e503c00632ff7e6997b10d
2008-10-06T15:00:56.914741Z
1927
@@ -1012,13 +978,47 @@
823
+jstoolbar-ca.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+6aacb53ed49e6e14831baf8c38096662
+2008-09-15T16:07:30.857601Z
+1865
+winterheart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+763
+
jstoolbar-da.js
file
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
4061b38de5e085dac922f77f94bd254a
2009-10-11T09:24:45.635758Z
2921
@@ -1046,13 +1046,47 @@
746
+jstoolbar-sr.js
+file
+
+
+
+
+2011-03-03T11:05:14.000000Z
+fb00cc94dfc8f319dda707b957aae8a6
+2010-08-19T15:41:09.090282Z
+4003
+winterheart
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+912
+
jstoolbar-pt-br.js
file
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
37aed8a5fce8e7f2030ac37e3d635068
2008-05-30T16:35:36.510811Z
1479
@@ -1080,47 +1114,13 @@
819
-jstoolbar-sr.js
-file
-
-
-
-
-2010-09-23T14:37:45.239756Z
-fb00cc94dfc8f319dda707b957aae8a6
-2010-08-19T15:41:09.090282Z
-4003
-winterheart
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-912
-
jstoolbar-tr.js
file
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
c7333a1fd77fe1f7db31810175f8fe8f
2008-09-13T17:25:01.876743Z
1817
@@ -1148,13 +1148,47 @@
662
+jstoolbar-fa.js
+file
+
+
+
+
+2011-03-03T11:40:18.000000Z
+5fde8ac79f7084911ce37f5cdad2052e
+2011-02-21T10:08:59.720731Z
+4903
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+838
+
jstoolbar-bg.js
file
-2010-09-23T14:37:45.227756Z
+2011-03-03T11:05:14.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -1188,7 +1222,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
7c5edef659f90a30330909bc13b0d6fb
2008-05-30T16:35:36.510811Z
1479
@@ -1222,7 +1256,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
c49e65f5c02ababbaa0c9a9968424950
2010-06-21T19:54:55.180393Z
3809
@@ -1256,7 +1290,7 @@
-2010-09-23T14:37:45.239756Z
+2011-03-03T11:05:14.000000Z
7ec48cf15b3d65b2a0994b50b033b4b8
2009-01-23T15:46:22.446544Z
2298
@@ -1290,7 +1324,7 @@
-2010-09-23T14:37:45.235815Z
+2011-03-03T11:05:14.000000Z
06245b4053c38d6bf3ae61d1bf4c7587
2009-09-24T15:03:23.893264Z
2901
@@ -1324,7 +1358,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
c49e65f5c02ababbaa0c9a9968424950
2008-05-30T16:35:36.510811Z
1479
@@ -1358,7 +1392,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
0377fba91478a1df25844aa70609e204
2008-05-30T16:35:36.510811Z
1479
@@ -1392,7 +1426,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
da8e9ced2ea20fedc7bb3204082fc68a
2009-03-24T19:16:02.676125Z
2629
@@ -1426,7 +1460,7 @@
-2010-09-23T14:37:45.231813Z
+2011-03-03T11:05:14.000000Z
8394af79dae7854d27ccdb8b72c3262c
2008-05-30T16:35:36.510811Z
1479
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/lang/.svn/prop-base/jstoolbar-fa.js.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/prop-base/jstoolbar-fa.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/lang/.svn/text-base/jstoolbar-fa.js.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/jstoolbar/lang/.svn/text-base/jstoolbar-fa.js.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,16 @@
+jsToolBar.strings = {};
+jsToolBar.strings['Strong'] = 'پررنگ';
+jsToolBar.strings['Italic'] = 'کج';
+jsToolBar.strings['Underline'] = 'زیرخط';
+jsToolBar.strings['Deleted'] = 'برداشته شده';
+jsToolBar.strings['Code'] = 'کد درون خطی';
+jsToolBar.strings['Heading 1'] = 'سربرگ ۱';
+jsToolBar.strings['Heading 2'] = 'سربرگ ۲';
+jsToolBar.strings['Heading 3'] = 'سربرگ ۳';
+jsToolBar.strings['Unordered list'] = 'Ùهرست بدون شماره';
+jsToolBar.strings['Ordered list'] = 'Ùهرست با شماره';
+jsToolBar.strings['Quote'] = 'تو بردن';
+jsToolBar.strings['Unquote'] = 'بیرون آوردن';
+jsToolBar.strings['Preformatted text'] = 'نوشته قالب بندی شده';
+jsToolBar.strings['Wiki link'] = 'پیوند به برگ ویکی';
+jsToolBar.strings['Image'] = 'عکس';
diff -r fca2657f4aa5 -r eeebe205a056 public/javascripts/jstoolbar/lang/jstoolbar-fa.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/public/javascripts/jstoolbar/lang/jstoolbar-fa.js Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,16 @@
+jsToolBar.strings = {};
+jsToolBar.strings['Strong'] = 'پررنگ';
+jsToolBar.strings['Italic'] = 'کج';
+jsToolBar.strings['Underline'] = 'زیرخط';
+jsToolBar.strings['Deleted'] = 'برداشته شده';
+jsToolBar.strings['Code'] = 'کد درون خطی';
+jsToolBar.strings['Heading 1'] = 'سربرگ ۱';
+jsToolBar.strings['Heading 2'] = 'سربرگ ۲';
+jsToolBar.strings['Heading 3'] = 'سربرگ ۳';
+jsToolBar.strings['Unordered list'] = 'Ùهرست بدون شماره';
+jsToolBar.strings['Ordered list'] = 'Ùهرست با شماره';
+jsToolBar.strings['Quote'] = 'تو بردن';
+jsToolBar.strings['Unquote'] = 'بیرون آوردن';
+jsToolBar.strings['Preformatted text'] = 'نوشته قالب بندی شده';
+jsToolBar.strings['Wiki link'] = 'پیوند به برگ ویکی';
+jsToolBar.strings['Image'] = 'عکس';
diff -r fca2657f4aa5 -r eeebe205a056 public/stylesheets/.svn/all-wcprops
--- a/public/stylesheets/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/.svn/all-wcprops Thu Mar 03 12:02:03 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/4954/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/4954/trunk/public/stylesheets/application.css
END
diff -r fca2657f4aa5 -r eeebe205a056 public/stylesheets/.svn/entries
--- a/public/stylesheets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/public/stylesheets
http://redmine.rubyforge.org/svn
-2011-01-11T20:37:31.480170Z
-4702
+2011-02-27T13:34:41.060565Z
+4954
jplang
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.247783Z
+2011-03-03T11:05:14.000000Z
d4e12d14040f9f048ddc696b1c0adf71
2010-05-01T11:54:40.545656Z
3725
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.247783Z
+2011-03-03T11:05:14.000000Z
ee22ead851abb7d0733ccd46315ccdc2
2010-08-19T01:13:50.846630Z
3950
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.247783Z
+2011-03-03T11:05:14.000000Z
c8ca83463f3cde626ce2e2c3dca08cb2
2010-08-22T19:12:21.015911Z
4014
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.251810Z
+2011-03-03T11:05:14.000000Z
d4a1902945bf7a0faa18be73960030c9
2008-09-17T17:18:05.938945Z
1872
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.251810Z
+2011-03-03T11:05:14.000000Z
cb7655798f97e931ea4992a9dd1afc4f
2010-08-22T19:12:21.015911Z
4014
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.247783Z
+2011-03-03T11:05:14.000000Z
62cab819ebe98bd9fb95415ac7b52e12
2007-12-28T21:58:33.550772Z
1024
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.251810Z
+2011-03-03T11:05:14.000000Z
360ffe5ea0cba43a286c7e42756b463f
2010-03-28T11:30:48.135356Z
3619
@@ -270,10 +270,31 @@
-
-b268a66dce14ef4250f269776b4ddcde
-2011-01-11T20:37:31.480170Z
-4702
+2011-03-03T11:40:18.000000Z
+1c8f6eb0fe9e3708adf095c11bc824bf
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+35897
diff -r fca2657f4aa5 -r eeebe205a056 public/stylesheets/.svn/text-base/application.css.svn-base
--- a/public/stylesheets/.svn/text-base/application.css.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/.svn/text-base/application.css.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -672,6 +672,13 @@
.diff_out { background: #fcc; }
.diff_in { background: #cfc; }
+.text-diff {
+padding: 1em;
+background-color:#f6f6f6;
+color:#505050;
+border: 1px solid #e4e4e4;
+}
+
/***** Wiki *****/
div.wiki table {
border: 1px solid #505050;
@@ -783,6 +790,7 @@
}
.gantt_subjects { font-size: 0.8em; }
+.gantt_subjects div { line-height:1.2em;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
.task {
position: absolute;
diff -r fca2657f4aa5 -r eeebe205a056 public/stylesheets/.svn/tmp/application.css.tmp
--- a/public/stylesheets/.svn/tmp/application.css.tmp Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/.svn/tmp/application.css.tmp Thu Mar 03 12:02:03 2011 +0000
@@ -841,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); }
@@ -914,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 fca2657f4aa5 -r eeebe205a056 public/stylesheets/.svn/tmp/tempfile.tmp
--- a/public/stylesheets/.svn/tmp/tempfile.tmp Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/.svn/tmp/tempfile.tmp Thu Mar 03 12:02:03 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;}
@@ -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; }
@@ -663,6 +666,7 @@
}
#parent_issue_candidates ul li {width: 500px;}
+#related_issue_candidates ul li {width: 500px;}
/***** Diff *****/
.diff_out { background: #fcc; }
@@ -778,6 +782,8 @@
overflow: hidden;
}
+.gantt_subjects { font-size: 0.8em; }
+
.task {
position: absolute;
height:8px;
@@ -790,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;}
@@ -833,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); }
@@ -906,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 fca2657f4aa5 -r eeebe205a056 public/stylesheets/application.css
--- a/public/stylesheets/application.css Thu Jan 20 09:59:02 2011 +0000
+++ b/public/stylesheets/application.css Thu Mar 03 12:02:03 2011 +0000
@@ -350,8 +350,8 @@
ul.projects ul.projects { border-left: 3px solid #e0e0e0; }
ul.projects li.root { list-style-type:none; margin-bottom: 1em; }
ul.projects li.child { list-style-type:none; margin-top: 1em;}
-ul.projects div.root a.project { /* font-family: "Trebuchet MS", Verdana, sans-serif; */ font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
-/* .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; } */
+ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
+.my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }
#tracker_project_ids ul { margin: 0; padding-left: 1em; }
#tracker_project_ids li { list-style-type:none; }
@@ -672,6 +672,13 @@
.diff_out { background: #fcc; }
.diff_in { background: #cfc; }
+.text-diff {
+padding: 1em;
+background-color:#f6f6f6;
+color:#505050;
+border: 1px solid #e4e4e4;
+}
+
/***** Wiki *****/
div.wiki table {
border: 1px solid #505050;
@@ -783,6 +790,7 @@
}
.gantt_subjects { font-size: 0.8em; }
+.gantt_subjects div { line-height:1.2em;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
.task {
position: absolute;
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/.svn/entries
--- a/public/themes/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
5b7a0352b95a67871b90c5a90a226123
2007-10-10T17:17:37.630066Z
818
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/alternate/.svn/entries
--- a/public/themes/alternate/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/alternate/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes/alternate
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes/alternate
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/alternate/stylesheets/.svn/entries
--- a/public/themes/alternate/stylesheets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/alternate/stylesheets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes/alternate/stylesheets
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes/alternate/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
8a47fb469dca292ea631422810927fe3
2009-11-15T21:15:31.339604Z
3069
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/classic/.svn/entries
--- a/public/themes/classic/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/classic/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes/classic
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes/classic
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/classic/images/.svn/entries
--- a/public/themes/classic/images/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/classic/images/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes/classic/images
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes/classic/images
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
a137eb4441860564ce1655357af26de8
2009-12-18T14:10:26.630799Z
3183
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
99bea32e1990e011e870f6c562e87a6a
2009-12-18T14:10:26.630799Z
3183
diff -r fca2657f4aa5 -r eeebe205a056 public/themes/classic/stylesheets/.svn/entries
--- a/public/themes/classic/stylesheets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/public/themes/classic/stylesheets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/public/themes/classic/stylesheets
+4993
+http://redmine.rubyforge.org/svn/trunk/public/themes/classic/stylesheets
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:14.000000Z
1bfaedd3f6b62419367da41a7a9310b2
2009-12-18T14:10:26.630799Z
3183
diff -r fca2657f4aa5 -r eeebe205a056 script/.svn/entries
--- a/script/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/script/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/script
+4993
+http://redmine.rubyforge.org/svn/trunk/script
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
623b2f8265970f73bdb3489872d00eb6
2010-11-02T00:20:21.419252Z
4359
@@ -69,7 +69,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
2ac529bf7a654b9b91b2fea2275aa44e
2010-11-02T00:20:21.419252Z
4359
@@ -103,7 +103,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
ff97a702418dbc85fec089b97506281f
2010-11-02T00:20:21.419252Z
4359
@@ -137,7 +137,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
1fd5fa2d4aeee5b4111a40f62ae85446
2010-11-02T00:20:21.419252Z
4359
@@ -171,7 +171,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
95866cb3b894816b540afd282b952618
2010-11-02T00:20:21.419252Z
4359
@@ -205,7 +205,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
0cccc4eabf129ebd7b571d3eceda8893
2010-11-02T00:20:21.419252Z
4359
@@ -239,7 +239,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
b0aeca2e257a2226502c570e671e1b76
2010-11-02T00:20:21.419252Z
4359
@@ -273,7 +273,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
fb51df9bca94c25a928f40468354700f
2010-11-02T00:20:21.419252Z
4359
@@ -310,7 +310,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
db0dd437d39c21fe52e1fc05a0680163
2010-11-02T00:20:21.419252Z
4359
diff -r fca2657f4aa5 -r eeebe205a056 script/performance/.svn/entries
--- a/script/performance/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/script/performance/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/script/performance
+4993
+http://redmine.rubyforge.org/svn/trunk/script/performance
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
33063b7a3d4dbef12ac8bcb55a5e6e3e
2010-11-02T00:20:21.419252Z
4359
@@ -66,7 +66,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
9d3b872769337c49e648b9fe47e4e280
2010-11-02T00:20:21.419252Z
4359
@@ -100,7 +100,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
b6500710f6029724e44cbd25f80eaaf1
2010-11-02T00:20:21.419252Z
4359
diff -r fca2657f4aa5 -r eeebe205a056 script/process/.svn/entries
--- a/script/process/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/script/process/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/script/process
+4993
+http://redmine.rubyforge.org/svn/trunk/script/process
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
47bf41d8d2c97d220d9f70916e94c651
2010-11-02T00:20:21.419252Z
4359
@@ -66,7 +66,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
9137857ebdaf61d57a3496f7e61fede3
2010-11-02T00:20:21.419252Z
4359
@@ -100,7 +100,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
99af2666610d48d13e2eeceacf487d16
2010-11-02T00:20:21.419252Z
4359
@@ -134,7 +134,7 @@
-2010-11-30T13:11:53.000000Z
+2011-03-03T11:05:13.000000Z
64b5316e88e7555bf827ad04edbce4a6
2010-11-02T00:20:21.419252Z
4359
diff -r fca2657f4aa5 -r eeebe205a056 test/.svn/all-wcprops
--- a/test/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/.svn/all-wcprops Thu Mar 03 12:02:03 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/4991/trunk/test
END
object_daddy_helpers.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/.svn/entries
--- a/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test
http://redmine.rubyforge.org/svn
-2011-01-16T15:36:42.998302Z
-4730
-jplang
+2011-03-03T03:35:13.139305Z
+4991
+tmaruyama
@@ -35,7 +35,7 @@
-2010-09-24T12:48:25.883734Z
+2011-03-03T11:05:09.000000Z
bec9d26a7ae75350529040e7bca36bfa
2010-09-10T19:44:45.405792Z
4078
@@ -72,7 +72,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
07898564890be4ff9e6c039fa6aa9d41
2011-01-01T12:24:18.924489Z
4603
@@ -118,7 +118,7 @@
-2010-09-23T14:37:45.427769Z
+2011-03-03T11:05:09.000000Z
29604d905b321f5bf19b86f7b9797394
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 test/exemplars/.svn/entries
--- a/test/exemplars/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/exemplars/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/exemplars
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
26c766235d2f79490fa33a7ec9c154ae
2010-01-27T18:29:03.119133Z
3340
@@ -66,7 +66,7 @@
-2010-09-23T14:37:45.295820Z
+2011-03-03T11:05:08.000000Z
62261c71ec828fa443bd44e055602e3d
2010-01-27T18:29:03.119133Z
3340
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
0da51e5e074d641e056e5011545571b8
2010-01-27T18:29:03.119133Z
3340
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
5b8b8763d7419d535d1d14d7bfb4f343
2010-01-27T18:29:03.119133Z
3340
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
13a55da47c4b6a61a3dbfd73eea41049
2010-08-19T22:24:42.251508Z
4010
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
26c91af771947fc671b87a08282608b3
2010-04-13T05:57:27.803435Z
3670
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
acf3ae00213d45112f6e13ecce212af1
2010-01-28T19:05:21.831741Z
3342
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
662be883bd5a43d964b868caaf34b276
2010-01-27T18:29:03.119133Z
3340
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.295820Z
+2011-03-03T11:05:08.000000Z
2dc494eb57aee9ee3c3ca5324f61e707
2010-01-27T18:29:03.119133Z
3340
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
06cec6b1adf323a00a75e5c008f73c57
2010-01-27T18:29:03.119133Z
3340
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.295820Z
+2011-03-03T11:05:08.000000Z
e51316252a08488be9aa2878c00c4959
2010-01-27T18:29:03.119133Z
3340
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
e5f24c612cf3bcc7b17aeeafeae0697d
2009-10-20T00:36:51.144135Z
2937
@@ -440,7 +440,7 @@
-2010-11-19T13:04:41.365641Z
+2011-03-03T11:05:08.000000Z
9be3a10325013fa24b00903db30d1ca3
2010-11-14T16:24:21.989522Z
4406
@@ -474,7 +474,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
24d00671cf3c2137d957ee6dac273517
2010-01-28T19:05:21.831741Z
3342
@@ -508,7 +508,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
1f7deb35b057dce8eb5dbc41d9a29019
2010-01-28T19:05:21.831741Z
3342
@@ -542,7 +542,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
575c5f91f698576ec8f6cc88bbcd31d8
2010-01-27T18:29:03.119133Z
3340
@@ -576,7 +576,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
fd5cfe62b2a92441a7cdb5035c4c4897
2009-10-18T22:25:00.956502Z
2930
@@ -610,7 +610,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
faf4bf5a3a3662c361ce668c20c293a4
2010-01-27T18:29:03.119133Z
3340
@@ -644,7 +644,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
91f000c1e57fb0edc16bf90ea8efc6fa
2010-01-28T19:05:21.831741Z
3342
@@ -678,7 +678,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
3b871be1550b1a964324a18f868dabae
2009-12-06T10:28:20.099964Z
3123
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
dfe8cbec2ef3bcffe6b9352e3a3d807c
2009-10-18T22:25:00.956502Z
2930
@@ -746,7 +746,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
a9ebd14814e0885fc096d0702745f30d
2010-01-27T18:29:03.119133Z
3340
@@ -774,13 +774,47 @@
481
+member_role_exemplar.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+d1bdf1810c216ecde56d0750f78bea10
+2010-01-27T18:29:03.119133Z
+3340
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+250
+
issue_exemplar.rb
file
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
92ac53d6b3a2e00ae1a9e0e4bc5d548b
2010-02-08T18:53:12.750770Z
3398
@@ -808,16 +842,16 @@
449
-member_role_exemplar.rb
+tracker_exemplar.rb
file
-2010-09-23T14:37:45.291809Z
-d1bdf1810c216ecde56d0750f78bea10
-2010-01-27T18:29:03.119133Z
-3340
+2011-03-03T11:05:08.000000Z
+94aed9cd40bd95ab8d8c2f51bfc097cf
+2009-10-18T22:25:00.956502Z
+2930
edavis10
@@ -840,7 +874,7 @@
-250
+179
issue_status_exemplar.rb
file
@@ -848,7 +882,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
d17dfd87c9c081965089712a4ce42a6d
2009-10-18T22:25:00.956502Z
2930
@@ -876,14 +910,14 @@
182
-tracker_exemplar.rb
+time_entry_activity.rb
file
-2010-09-23T14:37:45.291809Z
-94aed9cd40bd95ab8d8c2f51bfc097cf
+2011-03-03T11:05:08.000000Z
+74f5207a054732dd9be1b3184340ca77
2009-10-18T22:25:00.956502Z
2930
edavis10
@@ -908,7 +942,7 @@
-179
+236
subversion_repository_exemplar.rb
file
@@ -916,7 +950,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
908d8689f3ff469978b8af8bb55084b4
2010-01-27T18:29:03.119133Z
3340
@@ -944,14 +978,14 @@
235
-time_entry_activity.rb
+role_exemplar.rb
file
-2010-09-23T14:37:45.291809Z
-74f5207a054732dd9be1b3184340ca77
+2011-03-03T11:05:08.000000Z
+9c97ca570fa9b00ab1ecebd226f52f66
2009-10-18T22:25:00.956502Z
2930
edavis10
@@ -976,7 +1010,7 @@
-236
+157
changeset_exemplar.rb
file
@@ -984,7 +1018,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
c01820cc719616bb5a0895cfddb40798
2010-01-27T18:29:03.119133Z
3340
@@ -1012,47 +1046,13 @@
377
-role_exemplar.rb
-file
-
-
-
-
-2010-09-23T14:37:45.291809Z
-9c97ca570fa9b00ab1ecebd226f52f66
-2009-10-18T22:25:00.956502Z
-2930
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-157
-
comment_exemplar.rb
file
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
27218d998d6798365d0cc47ae8d8bb87
2010-01-28T19:05:21.831741Z
3342
@@ -1086,7 +1086,7 @@
-2010-09-23T14:37:45.295820Z
+2011-03-03T11:05:08.000000Z
0b05f7ce166d5bb3695d2fad7e56fc7f
2010-01-27T18:29:03.119133Z
3340
@@ -1120,7 +1120,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
2a6254ddbc381a97b49b17936c25ef78
2010-01-28T19:05:21.831741Z
3342
@@ -1154,7 +1154,7 @@
-2010-09-23T14:37:45.287807Z
+2011-03-03T11:05:08.000000Z
d60529466c1df6db1edcdac71fa1a9d7
2010-04-13T05:57:27.803435Z
3670
@@ -1188,7 +1188,7 @@
-2010-11-19T13:04:41.365641Z
+2011-03-03T11:05:08.000000Z
44278bb3b28eed2566aab063777becf7
2010-09-28T18:22:10.512346Z
4218
@@ -1222,7 +1222,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
0a69ac358346b15717ccb6b0cddba4be
2010-01-27T18:29:03.119133Z
3340
@@ -1256,7 +1256,7 @@
-2010-09-23T14:37:45.291809Z
+2011-03-03T11:05:08.000000Z
19471f6afbec20925ddd6824c1290526
2010-01-27T18:29:03.119133Z
3340
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/.svn/all-wcprops
--- a/test/fixtures/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,19 +1,19 @@
K 25
svn:wc:ra_dav:version-url
V 38
-/svn/!svn/ver/4681/trunk/test/fixtures
+/svn/!svn/ver/4964/trunk/test/fixtures
END
journal_details.yml
K 25
svn:wc:ra_dav:version-url
V 58
-/svn/!svn/ver/3123/trunk/test/fixtures/journal_details.yml
+/svn/!svn/ver/4954/trunk/test/fixtures/journal_details.yml
END
issue_statuses.yml
K 25
svn:wc:ra_dav:version-url
V 57
-/svn/!svn/ver/2895/trunk/test/fixtures/issue_statuses.yml
+/svn/!svn/ver/4895/trunk/test/fixtures/issue_statuses.yml
END
changesets.yml
K 25
@@ -199,7 +199,7 @@
K 25
svn:wc:ra_dav:version-url
V 48
-/svn/!svn/ver/4216/trunk/test/fixtures/users.yml
+/svn/!svn/ver/4936/trunk/test/fixtures/users.yml
END
auth_sources.yml
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/.svn/entries
--- a/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/fixtures
http://redmine.rubyforge.org/svn
-2011-01-10T19:45:20.108166Z
-4681
-jplang
+2011-02-28T14:12:47.115180Z
+4964
+tmaruyama
@@ -35,10 +35,10 @@
-2010-09-23T14:37:45.327799Z
-7f7308fa24fe8015418b4bf81a265389
-2009-12-06T10:28:20.099964Z
-3123
+2011-03-03T11:40:18.000000Z
+c85ec633618360a62da10b17100bbf56
+2011-02-27T13:34:41.060565Z
+4954
jplang
has-props
@@ -61,7 +61,7 @@
-359
+547
ldap
dir
@@ -72,10 +72,10 @@
-2010-09-23T14:37:45.327799Z
-940bc0bea76bc76ba8ef1b224d744eee
-2009-09-20T14:06:57.257282Z
-2895
+2011-03-03T11:40:18.000000Z
+2d31c6b69ca13da5466d1600bae9a2fd
+2011-02-20T15:38:07.840581Z
+4895
jplang
has-props
@@ -98,7 +98,7 @@
-505
+589
changesets.yml
file
@@ -106,7 +106,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
d3a777560e5a963bc848b30547a65d4b
2010-12-05T11:45:09.061840Z
4470
@@ -140,7 +140,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
15f318dd68723b4c4dab1e1ca66dd044
2011-01-06T20:36:31.826591Z
4645
@@ -177,7 +177,7 @@
-2010-09-23T14:37:45.355763Z
+2011-03-03T11:05:09.000000Z
a519d5e75a6d1ac1516064c882aa773c
2009-09-20T14:06:57.257282Z
2895
@@ -205,13 +205,47 @@
165
+time_entries.yml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+5259028ece10055ea04cb1baddadd334
+2009-10-21T22:34:52.412718Z
+2950
+edavis10
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1074
+
projects_trackers.yml
file
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
b7264b0f4d285dc38ba7139feaabafe2
2008-12-29T12:40:56.716698Z
2196
@@ -245,7 +279,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
e9853df4a04648bcb9389127748b24c4
2009-09-20T14:06:57.257282Z
2895
@@ -273,47 +307,13 @@
428
-time_entries.yml
-file
-
-
-
-
-2010-09-23T14:37:45.351765Z
-5259028ece10055ea04cb1baddadd334
-2009-10-21T22:34:52.412718Z
-2950
-edavis10
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1074
-
custom_values.yml
file
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
342c09046e9942f00cced7e066066202
2010-12-11T10:47:00.859736Z
4488
@@ -347,7 +347,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
b72e570a19a6a6297fd0e78a0c15d9a6
2009-09-20T14:06:57.257282Z
2895
@@ -381,7 +381,7 @@
-2010-09-23T14:37:45.327799Z
+2011-03-03T11:05:09.000000Z
e6b2256ffe56fa2baa64e474f5c920d6
2009-09-20T14:06:57.257282Z
2895
@@ -415,7 +415,7 @@
-2010-09-23T14:37:45.319762Z
+2011-03-03T11:05:09.000000Z
7e42308ab41cac587386d54899cfcef5
2009-09-20T14:06:57.257282Z
2895
@@ -449,7 +449,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
ad513155b260eb8a8739d4d13c2823a8
2009-12-19T13:32:21.556847Z
3194
@@ -483,7 +483,7 @@
-2010-09-23T14:37:45.327799Z
+2011-03-03T11:05:09.000000Z
1cdfea6614ecba6cddecb3d4524c38ba
2009-12-26T16:14:55.591181Z
3250
@@ -517,7 +517,7 @@
-2010-09-23T14:37:45.319762Z
+2011-03-03T11:05:09.000000Z
159394b420966c9e2f5ab0e31cb93b41
2009-11-27T20:32:28.228739Z
3099
@@ -554,7 +554,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.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-03-03T11:05:09.000000Z
909e55408711ba1774e1c071b162962f
2009-09-20T14:06:57.257282Z
2895
@@ -622,7 +625,7 @@
-2010-09-23T14:37:45.319762Z
+2011-03-03T11:05:09.000000Z
c6789a99aba9f28cf1d31a36b36224c8
2010-01-03T11:18:09.741250Z
3278
@@ -656,7 +659,7 @@
-2010-09-23T14:37:45.323763Z
+2011-03-03T11:05:09.000000Z
bafbddc194242dbdcac1f2bfc550c27b
2010-03-13T14:56:49.379682Z
3573
@@ -693,7 +696,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
86387d627355e1debc04c364c29efe81
2009-12-26T16:14:55.591181Z
3250
@@ -727,7 +730,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
a8c37ca171bb5f39ffbc6cd3ffcf0c52
2010-12-10T11:06:21.419457Z
4482
@@ -761,7 +764,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
b5bafc332d23c9efcc2ef648a9a393b9
2009-11-16T18:07:30.910440Z
3071
@@ -789,13 +792,47 @@
2345
+wiki_contents.yml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+595d0f0964e3c3f8ce7edb4b07941ffa
+2011-01-10T19:45:20.108166Z
+4681
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1953
+
watchers.yml
file
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
9dbcd982c4227d919ea750ce4fde79a7
2009-02-12T17:35:57.542817Z
2456
@@ -823,47 +860,13 @@
219
-wiki_contents.yml
-file
-
-
-
-
-2011-01-13T14:09:10.000000Z
-595d0f0964e3c3f8ce7edb4b07941ffa
-2011-01-10T19:45:20.108166Z
-4681
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1953
-
wiki_pages.yml
file
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
8d80a417fe13f7041cdec04f3206169e
2011-01-10T18:32:04.408692Z
4680
@@ -897,7 +900,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
c1fe3d9f5bbcbf5cf73c684b744d0c7a
2010-12-12T17:00:52.100205Z
4505
@@ -931,7 +934,7 @@
-2010-09-23T14:37:45.315821Z
+2011-03-03T11:05:09.000000Z
0cb04e10717d1de94f328dd92f2e9f8c
2009-09-20T14:06:57.257282Z
2895
@@ -965,7 +968,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
fcf009196cf46bc9d64e947e8275e51f
2009-09-20T14:06:57.257282Z
2895
@@ -1002,7 +1005,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
a12098ae3dcc7df2fffdc5aabc036445
2009-12-26T16:14:55.591181Z
3250
@@ -1039,7 +1042,7 @@
-2010-09-23T14:37:45.327799Z
+2011-03-03T11:05:09.000000Z
0f791723030addfd84aeb8e8478b4373
2009-12-06T10:28:20.099964Z
3123
@@ -1073,7 +1076,7 @@
-2010-09-23T14:37:45.355763Z
+2011-03-03T11:05:09.000000Z
be9ed58ec8ae1a4d2e1608c712c480be
2009-09-20T14:06:57.257282Z
2895
@@ -1107,7 +1110,7 @@
-2010-09-23T14:37:45.319762Z
+2011-03-03T11:05:09.000000Z
28c83450d87eb6a49fe3d920f05e16b7
2010-01-14T20:00:17.463579Z
3313
@@ -1141,11 +1144,11 @@
-2010-11-19T13:04:46.864726Z
-f590d477ec468a76d8d31d5ed99de0e6
-2010-09-28T18:22:00.231301Z
-4216
-edavis10
+2011-03-03T11:40:18.000000Z
+4bc8168f868eb01690365ddcb82e8841
+2011-02-23T17:27:31.762248Z
+4936
+jplang
has-props
@@ -1167,7 +1170,7 @@
-3294
+3500
auth_sources.yml
file
@@ -1175,7 +1178,7 @@
-2010-09-23T14:37:45.315821Z
+2011-03-03T11:05:09.000000Z
f299e9e4f8b4310d276f3cc0bd4573a2
2010-02-26T08:42:40.283735Z
3490
@@ -1209,7 +1212,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
f41152c0bbe67b30733fb44c847c0c28
2009-12-13T12:39:22.716082Z
3167
@@ -1243,7 +1246,7 @@
-2010-09-23T14:37:45.327799Z
+2011-03-03T11:05:09.000000Z
14b2db45f35ee3e6f8c2a8a05b94c82b
2009-11-07T08:44:56.035544Z
3013
@@ -1277,7 +1280,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
0670d0dee081a5f922aa2d3ff7af9764
2009-12-06T10:28:20.099964Z
3123
@@ -1311,7 +1314,7 @@
-2010-09-23T14:37:45.315821Z
+2011-03-03T11:05:09.000000Z
c3c2ab815b9af7fb01ccafc5fc881f87
2009-10-25T11:23:46.266302Z
2976
@@ -1345,7 +1348,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
c91798950ab5d71a04f10a60ad9e5259
2011-01-01T13:40:36.520874Z
4604
@@ -1379,7 +1382,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
3106fd060b768ea17e35b5ea975e0aca
2010-12-12T17:00:52.100205Z
4505
@@ -1413,7 +1416,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
644bd85c22127195b9f31217cce0595e
2009-09-20T14:06:57.257282Z
2895
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/.svn/text-base/issue_statuses.yml.svn-base
--- a/test/fixtures/.svn/text-base/issue_statuses.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/.svn/text-base/issue_statuses.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,31 +1,37 @@
---
+issue_statuses_001:
+ id: 1
+ name: New
+ is_default: true
+ is_closed: false
+ position: 1
+issue_statuses_002:
+ id: 2
+ name: Assigned
+ is_default: false
+ is_closed: false
+ position: 2
+issue_statuses_003:
+ id: 3
+ name: Resolved
+ is_default: false
+ is_closed: false
+ position: 3
+issue_statuses_004:
+ name: Feedback
+ id: 4
+ is_default: false
+ is_closed: false
+ position: 4
+issue_statuses_005:
+ id: 5
+ name: Closed
+ is_default: false
+ is_closed: true
+ position: 5
issue_statuses_006:
+ id: 6
name: Rejected
is_default: false
is_closed: true
- id: 6
-issue_statuses_001:
- name: New
- is_default: true
- is_closed: false
- id: 1
-issue_statuses_002:
- name: Assigned
- is_default: false
- is_closed: false
- id: 2
-issue_statuses_003:
- name: Resolved
- is_default: false
- is_closed: false
- id: 3
-issue_statuses_004:
- name: Feedback
- is_default: false
- is_closed: false
- id: 4
-issue_statuses_005:
- name: Closed
- is_default: false
- is_closed: true
- id: 5
+ position: 6
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/.svn/text-base/journal_details.yml.svn-base
--- a/test/fixtures/.svn/text-base/journal_details.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/.svn/text-base/journal_details.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -20,3 +20,10 @@
value: "6"
prop_key: fixed_version_id
journal_id: 4
+journal_details_004:
+ old_value: "This word was removed and an other was"
+ property: attr
+ id: 4
+ value: "This word was and an other was added"
+ prop_key: description
+ journal_id: 3
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/.svn/text-base/users.yml.svn-base
--- a/test/fixtures/.svn/text-base/users.yml.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/.svn/text-base/users.yml.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,9 @@
status: 1
last_login_on:
language: en
- hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
+ # password = foo
+ salt: 3126f764c3c5ac61cbfc103f25f934cf
+ hashed_password: 9e4dd7eeb172c12a0691a6d9d3a269f7e9fe671b
updated_on: 2006-07-19 19:34:07 +02:00
admin: false
mail: rhill@somenet.foo
@@ -20,7 +22,9 @@
status: 1
last_login_on: 2006-07-19 22:57:52 +02:00
language: en
- hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
+ # password = admin
+ salt: 82090c953c4a0000a7db253b0691a6b4
+ hashed_password: b5b6ff9543bf1387374cdfa27a54c96d236a7150
updated_on: 2006-07-19 22:57:52 +02:00
admin: true
mail: admin@somenet.foo
@@ -36,7 +40,9 @@
status: 1
last_login_on: 2006-07-19 22:42:15 +02:00
language: en
- hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
+ # password = jsmith
+ salt: 67eb4732624d5a7753dcea7ce0bb7d7d
+ hashed_password: bfbe06043353a677d0215b26a5800d128d5413bc
updated_on: 2006-07-19 22:42:15 +02:00
admin: false
mail: jsmith@somenet.foo
@@ -52,7 +58,9 @@
status: 1
last_login_on:
language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ # password = foo
+ salt: 7599f9963ec07b5a3b55b354407120c0
+ hashed_password: 8f659c8d7c072f189374edacfa90d6abbc26d8ed
updated_on: 2006-07-19 19:33:19 +02:00
admin: false
mail: dlopper@somenet.foo
@@ -70,7 +78,7 @@
status: 3
last_login_on:
language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ hashed_password: 1
updated_on: 2006-07-19 19:33:19 +02:00
admin: false
mail: dlopper2@somenet.foo
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/all-wcprops Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,164 @@
+10
+
+dir
+4993
+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-03-03T11:05:09.000000Z
+3c3b944decf7592dd335fc1d536985e7
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64
+
+overrides.yml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+0b2286bdf8e49e063fb511553d63d73b
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+83
+
+default.yml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+8f9245a8cde919ad5693021c5eb8e67e
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+64
+
+empty.yml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+f807b10f3b740dafc7ebfd848048a587
+2011-01-23T10:22:00.456857Z
+4752
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+43
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,8 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,7 @@
+default:
+
+production:
+
+development:
+
+test:
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,8 @@
+default:
+
+production:
+
+development:
+
+test:
+ somesetting: foo
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
+ somesetting: bar
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/default.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/default.yml Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,8 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/empty.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/empty.yml Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,7 @@
+default:
+
+production:
+
+development:
+
+test:
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/no_default.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/no_default.yml Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,8 @@
+default:
+
+production:
+
+development:
+
+test:
+ somesetting: foo
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/configuration/overrides.yml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/configuration/overrides.yml Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,9 @@
+default:
+ somesetting: foo
+
+production:
+
+development:
+
+test:
+ somesetting: bar
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/diffs/.svn/entries
--- a/test/fixtures/diffs/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/diffs/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/fixtures/diffs
+4993
+http://redmine.rubyforge.org/svn/trunk/test/fixtures/diffs
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:09.000000Z
64527b211202fbff696792d538e2b14e
2008-12-07T15:21:40.165860Z
2112
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/encoding/.svn/entries
--- a/test/fixtures/encoding/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/encoding/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/fixtures/encoding
+4993
+http://redmine.rubyforge.org/svn/trunk/test/fixtures/encoding
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:09.000000Z
eee83cf374737071543358b83f85f75b
2010-02-20T11:24:41.988635Z
3466
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/.svn/entries
--- a/test/fixtures/files/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/files/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:09.000000Z
8ab69915b7f66c8199e6d137073d9ffe
2011-01-01T13:40:36.520874Z
4604
@@ -66,7 +66,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
69b7e1bc8546406b1ddc3719d879254c
2011-01-01T13:40:36.520874Z
4604
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.323763Z
+2011-03-03T11:05:09.000000Z
8b4167c6b87869174dd17db0694ef2e1
2008-06-09T18:40:59.518583Z
1520
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.323763Z
+2011-03-03T11:05:09.000000Z
c72c8a9a0de99c39f9e6d712c13b7624
2008-06-09T18:40:59.518583Z
1520
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.323763Z
+2011-03-03T11:05:09.000000Z
1478adae0d4eb06d35897518540e25d6
2008-12-02T17:57:13.240321Z
2085
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/.svn/prop-base/060719210727_changeset_iso8859-1.diff.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/files/.svn/prop-base/060719210727_changeset_iso8859-1.diff.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/.svn/text-base/060719210727_changeset_iso8859-1.diff.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/files/.svn/text-base/060719210727_changeset_iso8859-1.diff.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+Index: trunk/app/controllers/issues_controller.rb
+===================================================================
+--- trunk/app/controllers/issues_controller.rb (révision 1483)
++++ trunk/app/controllers/issues_controller.rb (révision 1484)
+@@ -149,7 +149,7 @@
+ attach_files(@issue, params[:attachments])
+ flash[:notice] = 'Demande créée avec succès'
+ Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
+- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
++ redirect_to :controller => 'issues', :action => 'show', :id => @issue
+ return
+ end
+ end
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/.svn/text-base/060719210727_changeset_utf8.diff.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/files/.svn/text-base/060719210727_changeset_utf8.diff.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+Index: trunk/app/controllers/issues_controller.rb
+===================================================================
+--- trunk/app/controllers/issues_controller.rb (révision 1483)
++++ trunk/app/controllers/issues_controller.rb (révision 1484)
+@@ -149,7 +149,7 @@
+ attach_files(@issue, params[:attachments])
+ flash[:notice] = 'Demande créée avec succès'
+ Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
+- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
++ redirect_to :controller => 'issues', :action => 'show', :id => @issue
+ return
+ end
+ end
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/060719210727_changeset_iso8859-1.diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/files/060719210727_changeset_iso8859-1.diff Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+Index: trunk/app/controllers/issues_controller.rb
+===================================================================
+--- trunk/app/controllers/issues_controller.rb (révision 1483)
++++ trunk/app/controllers/issues_controller.rb (révision 1484)
+@@ -149,7 +149,7 @@
+ attach_files(@issue, params[:attachments])
+ flash[:notice] = 'Demande créée avec succès'
+ Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
+- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
++ redirect_to :controller => 'issues', :action => 'show', :id => @issue
+ return
+ end
+ end
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/files/060719210727_changeset_utf8.diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/fixtures/files/060719210727_changeset_utf8.diff Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,13 @@
+Index: trunk/app/controllers/issues_controller.rb
+===================================================================
+--- trunk/app/controllers/issues_controller.rb (révision 1483)
++++ trunk/app/controllers/issues_controller.rb (révision 1484)
+@@ -149,7 +149,7 @@
+ attach_files(@issue, params[:attachments])
+ flash[:notice] = 'Demande créée avec succès'
+ Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added')
+- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project
++ redirect_to :controller => 'issues', :action => 'show', :id => @issue
+ return
+ end
+ end
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/issue_statuses.yml
--- a/test/fixtures/issue_statuses.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/issue_statuses.yml Thu Mar 03 12:02:03 2011 +0000
@@ -1,31 +1,37 @@
---
+issue_statuses_001:
+ id: 1
+ name: New
+ is_default: true
+ is_closed: false
+ position: 1
+issue_statuses_002:
+ id: 2
+ name: Assigned
+ is_default: false
+ is_closed: false
+ position: 2
+issue_statuses_003:
+ id: 3
+ name: Resolved
+ is_default: false
+ is_closed: false
+ position: 3
+issue_statuses_004:
+ name: Feedback
+ id: 4
+ is_default: false
+ is_closed: false
+ position: 4
+issue_statuses_005:
+ id: 5
+ name: Closed
+ is_default: false
+ is_closed: true
+ position: 5
issue_statuses_006:
+ id: 6
name: Rejected
is_default: false
is_closed: true
- id: 6
-issue_statuses_001:
- name: New
- is_default: true
- is_closed: false
- id: 1
-issue_statuses_002:
- name: Assigned
- is_default: false
- is_closed: false
- id: 2
-issue_statuses_003:
- name: Resolved
- is_default: false
- is_closed: false
- id: 3
-issue_statuses_004:
- name: Feedback
- is_default: false
- is_closed: false
- id: 4
-issue_statuses_005:
- name: Closed
- is_default: false
- is_closed: true
- id: 5
+ position: 6
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/journal_details.yml
--- a/test/fixtures/journal_details.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/journal_details.yml Thu Mar 03 12:02:03 2011 +0000
@@ -20,3 +20,10 @@
value: "6"
prop_key: fixed_version_id
journal_id: 4
+journal_details_004:
+ old_value: "This word was removed and an other was"
+ property: attr
+ id: 4
+ value: "This word was and an other was added"
+ prop_key: description
+ journal_id: 3
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/ldap/.svn/entries
--- a/test/fixtures/ldap/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/ldap/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/fixtures/ldap
+4993
+http://redmine.rubyforge.org/svn/trunk/test/fixtures/ldap
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:09.000000Z
acbef41cb6cf252c83489cc3344e2604
2010-02-26T08:31:36.418866Z
3489
@@ -66,7 +66,7 @@
-2010-08-12T15:03:25.000000Z
+2011-03-03T11:05:09.000000Z
f1b10e6d96dd658e563d4ba74d52e87b
2010-02-26T08:31:36.418866Z
3489
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/mail_handler/.svn/all-wcprops
--- a/test/fixtures/mail_handler/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/mail_handler/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -3,36 +3,36 @@
V 51
/svn/!svn/ver/4575/trunk/test/fixtures/mail_handler
END
+ticket_html_only.eml
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/2136/trunk/test/fixtures/mail_handler/ticket_html_only.eml
+END
message_reply_by_subject.eml
K 25
svn:wc:ra_dav:version-url
V 80
/svn/!svn/ver/2294/trunk/test/fixtures/mail_handler/message_reply_by_subject.eml
END
-ticket_html_only.eml
-K 25
-svn:wc:ra_dav:version-url
-V 72
-/svn/!svn/ver/2136/trunk/test/fixtures/mail_handler/ticket_html_only.eml
-END
issue_update_with_multiple_quoted_reply_above.eml
K 25
svn:wc:ra_dav:version-url
V 101
/svn/!svn/ver/4361/trunk/test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml
END
+ticket_with_localized_attributes.eml
+K 25
+svn:wc:ra_dav:version-url
+V 88
+/svn/!svn/ver/4395/trunk/test/fixtures/mail_handler/ticket_with_localized_attributes.eml
+END
ticket_with_spaces_between_attribute_and_separator.eml
K 25
svn:wc:ra_dav:version-url
V 106
/svn/!svn/ver/2838/trunk/test/fixtures/mail_handler/ticket_with_spaces_between_attribute_and_separator.eml
END
-ticket_with_localized_attributes.eml
-K 25
-svn:wc:ra_dav:version-url
-V 88
-/svn/!svn/ver/4395/trunk/test/fixtures/mail_handler/ticket_with_localized_attributes.eml
-END
ticket_with_long_subject.eml
K 25
svn:wc:ra_dav:version-url
@@ -105,18 +105,18 @@
V 92
/svn/!svn/ver/4361/trunk/test/fixtures/mail_handler/issue_update_with_quoted_reply_above.eml
END
+ticket_with_custom_fields.eml
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/svn/!svn/ver/2211/trunk/test/fixtures/mail_handler/ticket_with_custom_fields.eml
+END
ticket_reply.eml
K 25
svn:wc:ra_dav:version-url
V 68
/svn/!svn/ver/2288/trunk/test/fixtures/mail_handler/ticket_reply.eml
END
-ticket_with_custom_fields.eml
-K 25
-svn:wc:ra_dav:version-url
-V 81
-/svn/!svn/ver/2211/trunk/test/fixtures/mail_handler/ticket_with_custom_fields.eml
-END
message_reply.eml
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/mail_handler/.svn/entries
--- a/test/fixtures/mail_handler/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/mail_handler/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/fixtures/mail_handler
http://redmine.rubyforge.org/svn
@@ -26,47 +26,13 @@
e93f8b46-1217-0410-a6f0-8f06a7374b81
-issue_update_with_multiple_quoted_reply_above.eml
-file
-
-
-
-
-2010-11-19T13:04:46.204713Z
-ef4c0db9f76d81792292785d2ae9cb6a
-2010-11-02T19:00:31.177706Z
-4361
-edavis10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2018
-
ticket_html_only.eml
file
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
5e24af78a4534798611158a3d81efb34
2008-12-14T17:10:16.292262Z
2136
@@ -100,7 +66,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
09130a1100cb410ed07fdff5564b2993
2009-01-21T18:22:30.765588Z
2294
@@ -128,13 +94,47 @@
410
+issue_update_with_multiple_quoted_reply_above.eml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+ef4c0db9f76d81792292785d2ae9cb6a
+2010-11-02T19:00:31.177706Z
+4361
+edavis10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2018
+
ticket_with_localized_attributes.eml
file
-2010-11-19T13:04:46.204713Z
+2011-03-03T11:05:09.000000Z
8ac895d880e6f19fc21333c4003babaf
2010-11-12T12:29:35.878777Z
4395
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
4fbec91f5454b84077ae1290fba0bc8e
2009-08-13T16:57:36.259313Z
2838
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
ed7adca07ce64c4d15f3e638a222e38d
2010-06-20T16:22:36.211973Z
3801
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
0c3b0545575d405416f585f8d5910bcb
2009-11-08T13:51:53.384956Z
3022
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
40927905de0187dc52a9adb3e4a2c252
2008-11-30T16:00:45.142894Z
2077
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
d276c2037b0bf277b66f921379695c35
2008-07-06T16:26:25.352975Z
1643
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.335799Z
+2011-03-03T11:05:09.000000Z
1fc46fd2b0b8dcdaf67dfde24d0e8b89
2010-01-17T11:00:54.196987Z
3322
@@ -372,7 +372,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
4d85674ea94930e7f1c8e288f03a57b8
2008-06-22T10:45:03.753412Z
1568
@@ -406,7 +406,7 @@
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
9dbf54ce4376f62447ef0696fe9b3a79
2010-06-19T19:24:17.380627Z
3783
@@ -434,13 +434,47 @@
485
+ticket_by_unknown_user.eml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+0979c01baf02b924bd8a6db3980c59c9
+2009-06-14T14:48:34.287541Z
+2789
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+526
+
ticket_with_invalid_attributes.eml
file
-2010-11-19T13:04:46.204713Z
+2011-03-03T11:05:09.000000Z
605f28e31469b6897f33cf34bbc1ad0a
2010-11-14T13:48:01.671461Z
4404
@@ -468,47 +502,13 @@
2028
-ticket_by_unknown_user.eml
-file
-
-
-
-
-2010-09-23T14:37:45.339796Z
-0979c01baf02b924bd8a6db3980c59c9
-2009-06-14T14:48:34.287541Z
-2789
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-526
-
ticket_reply_with_status.eml
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:09.000000Z
f1b76e664d73fd54d9e346c2329d94a9
2010-12-29T17:36:01.998670Z
4575
@@ -542,7 +542,7 @@
-2010-11-19T13:04:46.204713Z
+2011-03-03T11:05:09.000000Z
af7f3e5f9caddc2cad5fba0ba9d73882
2010-11-12T11:34:53.754717Z
4394
@@ -576,7 +576,7 @@
-2010-11-19T13:04:46.204713Z
+2011-03-03T11:05:09.000000Z
977375e727ce2d63ce878f877d692c62
2010-11-02T19:00:31.177706Z
4361
@@ -604,47 +604,13 @@
1979
-ticket_reply.eml
-file
-
-
-
-
-2010-09-23T14:37:45.339796Z
-4bd4decc00f83404fdd1a835809e4552
-2009-01-19T18:29:07.726757Z
-2288
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2012
-
ticket_with_custom_fields.eml
file
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
4ef77e6337f95c7a8362c4a51c09d0af
2008-12-30T14:57:33.008940Z
2211
@@ -672,13 +638,47 @@
1887
+ticket_reply.eml
+file
+
+
+
+
+2011-03-03T11:05:09.000000Z
+4bd4decc00f83404fdd1a835809e4552
+2009-01-19T18:29:07.726757Z
+2288
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2012
+
message_reply.eml
file
-2010-09-23T14:37:45.339796Z
+2011-03-03T11:05:09.000000Z
c174d0c5bbb339ef9361c45aab58b2bb
2009-01-19T19:03:53.393843Z
2289
@@ -712,7 +712,7 @@
-2010-09-23T14:37:45.343799Z
+2011-03-03T11:05:09.000000Z
7bc2d83ee5c078a264dd66ec75f35c77
2009-03-06T18:25:19.434505Z
2553
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/mailer/.svn/entries
--- a/test/fixtures/mailer/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/mailer/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/fixtures/mailer
+4993
+http://redmine.rubyforge.org/svn/trunk/test/fixtures/mailer
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/repositories/.svn/all-wcprops
--- a/test/fixtures/repositories/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/repositories/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 51
-/svn/!svn/ver/4676/trunk/test/fixtures/repositories
+/svn/!svn/ver/4964/trunk/test/fixtures/repositories
END
darcs_repository.tar.gz
K 25
@@ -31,7 +31,7 @@
K 25
svn:wc:ra_dav:version-url
V 73
-/svn/!svn/ver/4310/trunk/test/fixtures/repositories/git_repository.tar.gz
+/svn/!svn/ver/4964/trunk/test/fixtures/repositories/git_repository.tar.gz
END
filesystem_repository.tar.gz
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/repositories/.svn/entries
--- a/test/fixtures/repositories/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/repositories/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/fixtures/repositories
http://redmine.rubyforge.org/svn
-2011-01-10T17:43:01.353336Z
-4676
-jplang
+2011-02-28T14:12:47.115180Z
+4964
+tmaruyama
@@ -32,7 +32,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
0553391b55404e8ff509358b388f085b
2008-03-12T20:28:49.748698Z
1236
@@ -66,7 +66,7 @@
-2011-01-13T14:09:10.000000Z
+2011-03-03T11:05:09.000000Z
2436fc3d3aefeb07b291d5660396ca8d
2011-01-10T17:43:01.353336Z
4676
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
bd13c11517bf083e83846aeccff745f1
2010-06-20T16:08:26.745839Z
3800
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.347765Z
+2011-03-03T11:05:09.000000Z
fa70d4aeca5639d750d94281ad664957
2007-12-03T19:19:36.156779Z
951
@@ -168,11 +168,11 @@
-2010-11-19T13:04:46.860726Z
-300e21b10239e2fa28df3111924b8328
-2010-10-29T23:21:57.240368Z
-4310
-jbbarth
+2011-03-03T11:40:18.000000Z
+a520f027eaf4a4548dfbc85e8d7e71c5
+2011-02-28T14:12:47.115180Z
+4964
+tmaruyama
has-props
@@ -194,7 +194,7 @@
-20730
+15432
filesystem_repository.tar.gz
file
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
9fbee7c5669de84f0767597eb41af9f7
2008-06-08T15:40:24.603157Z
1508
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.351765Z
+2011-03-03T11:05:09.000000Z
0c4730bd5eb192e094531f218b7a3119
2007-12-13T18:52:09.073829Z
987
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/repositories/.svn/text-base/git_repository.tar.gz.svn-base
Binary file test/fixtures/repositories/.svn/text-base/git_repository.tar.gz.svn-base has changed
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/repositories/git_repository.tar.gz
Binary file test/fixtures/repositories/git_repository.tar.gz has changed
diff -r fca2657f4aa5 -r eeebe205a056 test/fixtures/users.yml
--- a/test/fixtures/users.yml Thu Jan 20 09:59:02 2011 +0000
+++ b/test/fixtures/users.yml Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,9 @@
status: 1
last_login_on:
language: en
- hashed_password: 4e4aeb7baaf0706bd670263fef42dad15763b608
+ # password = foo
+ salt: 3126f764c3c5ac61cbfc103f25f934cf
+ hashed_password: 9e4dd7eeb172c12a0691a6d9d3a269f7e9fe671b
updated_on: 2006-07-19 19:34:07 +02:00
admin: false
mail: rhill@somenet.foo
@@ -20,7 +22,9 @@
status: 1
last_login_on: 2006-07-19 22:57:52 +02:00
language: en
- hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
+ # password = admin
+ salt: 82090c953c4a0000a7db253b0691a6b4
+ hashed_password: b5b6ff9543bf1387374cdfa27a54c96d236a7150
updated_on: 2006-07-19 22:57:52 +02:00
admin: true
mail: admin@somenet.foo
@@ -36,7 +40,9 @@
status: 1
last_login_on: 2006-07-19 22:42:15 +02:00
language: en
- hashed_password: a9a653d4151fa2c081ba1ffc2c2726f3b80b7d7d
+ # password = jsmith
+ salt: 67eb4732624d5a7753dcea7ce0bb7d7d
+ hashed_password: bfbe06043353a677d0215b26a5800d128d5413bc
updated_on: 2006-07-19 22:42:15 +02:00
admin: false
mail: jsmith@somenet.foo
@@ -52,7 +58,9 @@
status: 1
last_login_on:
language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ # password = foo
+ salt: 7599f9963ec07b5a3b55b354407120c0
+ hashed_password: 8f659c8d7c072f189374edacfa90d6abbc26d8ed
updated_on: 2006-07-19 19:33:19 +02:00
admin: false
mail: dlopper@somenet.foo
@@ -70,7 +78,7 @@
status: 3
last_login_on:
language: en
- hashed_password: 7feb7657aa7a7bf5aef3414a5084875f27192415
+ hashed_password: 1
updated_on: 2006-07-19 19:33:19 +02:00
admin: false
mail: dlopper2@somenet.foo
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/.svn/all-wcprops
--- a/test/functional/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/all-wcprops Thu Mar 03 12:02:03 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/4982/trunk/test/functional
END
issues_controller_test.rb
K 25
@@ -69,18 +69,18 @@
V 65
/svn/!svn/ver/4509/trunk/test/functional/admin_controller_test.rb
END
-welcome_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 67
-/svn/!svn/ver/4509/trunk/test/functional/welcome_controller_test.rb
-END
context_menus_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 73
/svn/!svn/ver/4673/trunk/test/functional/context_menus_controller_test.rb
END
+welcome_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/4900/trunk/test/functional/welcome_controller_test.rb
+END
account_controller_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -93,6 +93,12 @@
V 69
/svn/!svn/ver/4509/trunk/test/functional/calendars_controller_test.rb
END
+journals_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4954/trunk/test/functional/journals_controller_test.rb
+END
time_entry_reports_controller_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -103,13 +109,7 @@
K 25
svn:wc:ra_dav:version-url
V 69
-/svn/!svn/ver/4509/trunk/test/functional/workflows_controller_test.rb
-END
-journals_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/4535/trunk/test/functional/journals_controller_test.rb
+/svn/!svn/ver/4895/trunk/test/functional/workflows_controller_test.rb
END
project_enumerations_controller_test.rb
K 25
@@ -139,7 +139,7 @@
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/4982/trunk/test/functional/repositories_cvs_controller_test.rb
END
application_controller_test.rb
K 25
@@ -165,18 +165,18 @@
V 66
/svn/!svn/ver/4509/trunk/test/functional/search_controller_test.rb
END
-repositories_bazaar_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-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
+repositories_bazaar_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4982/trunk/test/functional/repositories_bazaar_controller_test.rb
+END
attachments_controller_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -225,23 +225,23 @@
V 68
/svn/!svn/ver/4647/trunk/test/functional/projects_controller_test.rb
END
-repositories_git_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 76
-/svn/!svn/ver/4713/trunk/test/functional/repositories_git_controller_test.rb
-END
members_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 67
/svn/!svn/ver/4509/trunk/test/functional/members_controller_test.rb
END
+repositories_git_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 76
+/svn/!svn/ver/4734/trunk/test/functional/repositories_git_controller_test.rb
+END
repositories_mercurial_controller_test.rb
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/4855/trunk/test/functional/repositories_mercurial_controller_test.rb
END
issue_categories_controller_test.rb
K 25
@@ -289,7 +289,7 @@
K 25
svn:wc:ra_dav:version-url
V 78
-/svn/!svn/ver/4509/trunk/test/functional/repositories_darcs_controller_test.rb
+/svn/!svn/ver/4982/trunk/test/functional/repositories_darcs_controller_test.rb
END
wiki_controller_test.rb
K 25
@@ -297,29 +297,29 @@
V 64
/svn/!svn/ver/4509/trunk/test/functional/wiki_controller_test.rb
END
+previews_controller_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4509/trunk/test/functional/previews_controller_test.rb
+END
auth_sources_controller_test.rb
K 25
svn:wc:ra_dav:version-url
V 72
/svn/!svn/ver/4509/trunk/test/functional/auth_sources_controller_test.rb
END
-previews_controller_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 68
-/svn/!svn/ver/4509/trunk/test/functional/previews_controller_test.rb
-END
repositories_subversion_controller_test.rb
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/4896/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 fca2657f4aa5 -r eeebe205a056 test/functional/.svn/entries
--- a/test/functional/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/functional
http://redmine.rubyforge.org/svn
-2011-01-16T15:23:11.666065Z
-4729
-jplang
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
1831ada3aea1c4ecb568cb55a718eec9
2010-12-18T13:40:50.641112Z
4530
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
b42af2a4997da321fbe322b3d4ef47da
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
60c22807824b3989da92a03d4be0a1e6
2010-12-12T23:24:34.194336Z
4509
@@ -134,7 +134,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f7c1328f2c586830c64233c2db054f0a
2010-12-12T23:24:34.194336Z
4509
@@ -168,7 +168,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
e6efbfdb394b5a3d4c8f5430c202a5b0
2010-12-12T23:24:34.194336Z
4509
@@ -202,7 +202,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
145c16cdb388cc98a1223c6f6dd6fb17
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +236,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
69809abf0a26741f5ca07db44aa223c0
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
cc837387e8b85884334a89e8bf935118
2010-12-12T23:24:34.194336Z
4509
@@ -304,7 +304,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
b68039337f934e7e49f4a06cda5e2b12
2010-12-12T23:24:34.194336Z
4509
@@ -338,7 +338,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
0798c1198c6db7754d04c79144c449c0
2010-12-12T23:24:34.194336Z
4509
@@ -372,7 +372,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
744fc8a1d2a4cdf6e8aa3ad0caa0fe4a
2010-12-12T23:24:34.194336Z
4509
@@ -400,47 +400,13 @@
4086
-welcome_controller_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-bf75948e1edceb4241e67a84731477f6
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2379
-
context_menus_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
d3363951aa9a6c2a59c32d83d2483226
2011-01-09T21:01:40.583303Z
4673
@@ -468,13 +434,47 @@
6411
+welcome_controller_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+99cada623881a6be69cdf13119cc1de7
+2011-02-21T09:53:29.844413Z
+4900
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3015
+
account_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f6ad0bbad8d30d8ea41eb0b7ecaf32b6
2010-12-12T23:24:34.194336Z
4509
@@ -508,7 +508,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
a7eb2ff041caaed4c7c09ad8f9fe3719
2010-12-12T23:24:34.194336Z
4509
@@ -536,13 +536,47 @@
2390
+journals_controller_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+aa7254e0715b3701554945deb5d98998
+2011-02-27T13:34:41.060565Z
+4954
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3099
+
time_entry_reports_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
e21197e1c3590e65b300103bf8e16efe
2010-12-12T23:24:34.194336Z
4509
@@ -570,16 +604,16 @@
5424
-journals_controller_test.rb
+workflows_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
-04e54620db6899c02b7e7a9e2645d0a6
-2010-12-18T17:11:41.680297Z
-4535
+2011-03-03T11:40:17.000000Z
+843e1eb3b5d05f3cb16580fe88d1baf5
+2011-02-20T15:38:07.840581Z
+4895
jplang
has-props
@@ -602,41 +636,7 @@
-2783
-
-workflows_controller_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-e99e1deab48be8515101e664af4d55da
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6673
+7860
project_enumerations_controller_test.rb
file
@@ -644,7 +644,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
11b0d808c1b8f003db130d54022dbab0
2010-12-31T15:45:35.200558Z
4600
@@ -678,7 +678,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
b1aac6fc8fdaa84c3e3652849721bfa5
2010-12-12T23:24:34.194336Z
4509
@@ -706,13 +706,47 @@
2663
+issue_moves_controller_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+539d0852190ec556b2284bfe678e8523
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5131
+
users_controller_test.rb
file
-2011-01-19T15:03:31.000000Z
+2011-03-03T11:05:08.000000Z
067fe08ee66949066dd0db8fa2741f5e
2011-01-16T15:23:11.666065Z
4729
@@ -740,51 +774,17 @@
9068
-issue_moves_controller_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-539d0852190ec556b2284bfe678e8523
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5131
-
repositories_cvs_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
-1d8cb0fdead69e39081ca4d0f7c68e51
-2010-12-29T17:46:47.689075Z
-4577
-jplang
+2011-03-03T11:40:17.000000Z
+1802113ecf354a24583d7c5a8db750b6
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
has-props
@@ -806,7 +806,7 @@
-6662
+8336
application_controller_test.rb
file
@@ -814,7 +814,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
278a104110d269c64def6c487219db07
2010-12-23T13:33:01.454946Z
4571
@@ -848,7 +848,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
10667cf5e4dc66eea96b196643c93a42
2010-12-12T23:24:34.194336Z
4509
@@ -882,7 +882,7 @@
-2010-09-23T14:37:45.387766Z
+2011-03-03T11:05:08.000000Z
d6759c42ae866d7210c7006911e82a42
2010-05-23T03:16:31.304135Z
3744
@@ -916,7 +916,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
ce03a18446664d9bc073791097735811
2010-12-12T23:24:34.194336Z
4509
@@ -944,47 +944,13 @@
4680
-repositories_bazaar_controller_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-c7a720bd5851fd9afe177432179cd921
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5059
-
messages_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
887437d272f8b8eba93dbf8bd5645868
2010-12-12T23:24:34.194336Z
4509
@@ -1012,13 +978,47 @@
5047
+repositories_bazaar_controller_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+138b8dc8d1e30b2a8f5eda76b0f905b6
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5177
+
attachments_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
00941bda584b7f5b7b636e48635d83dd
2011-01-01T13:40:36.520874Z
4604
@@ -1052,7 +1052,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
893a5cfefe3652680d241de9a657652c
2010-12-12T23:24:34.194336Z
4509
@@ -1086,7 +1086,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
39db66894beef1baa1696d6aee75f45d
2010-12-12T23:24:34.194336Z
4509
@@ -1120,7 +1120,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
c8fa245738b58d9f87afc40fc1b71f94
2010-12-12T23:24:34.194336Z
4509
@@ -1154,7 +1154,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
d50a042e5cc7e5d43cbb9be02b82aaf6
2010-12-12T23:24:34.194336Z
4509
@@ -1188,7 +1188,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
3ed28603b2a3697d060e06d90dd7b118
2010-12-12T23:24:34.194336Z
4509
@@ -1222,7 +1222,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f5552cd43c853f04daaadb5d6c7bf159
2010-12-12T23:24:34.194336Z
4509
@@ -1256,7 +1256,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
dbbc4feeecbff202aa7569d4a17beaa1
2011-01-06T20:57:17.003359Z
4647
@@ -1290,7 +1290,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.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-03-03T11:05:08.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-03-03T11:40:17.000000Z
+c737d31340fe167746054c6975d86b18
+2011-02-16T11:18:18.909794Z
+4855
tmaruyama
has-props
@@ -1384,7 +1384,7 @@
-7534
+7919
issue_categories_controller_test.rb
file
@@ -1392,7 +1392,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
eff59ff8c4c616a1773223454b960363
2010-12-12T23:24:34.194336Z
4509
@@ -1426,7 +1426,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
d91b8b56b5bd1fd602e96842dfabab72
2010-12-12T23:24:34.194336Z
4509
@@ -1460,7 +1460,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
df6f548bb7fbdaeb235c5e8d3c1be576
2010-12-12T23:24:34.194336Z
4509
@@ -1494,7 +1494,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f3101a3b1343baa274ce471911aa0e96
2010-12-12T23:24:34.194336Z
4509
@@ -1528,7 +1528,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
00f79a248e4bf77814823526e38ee630
2010-12-14T18:29:24.891563Z
4511
@@ -1562,7 +1562,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
8c664ac03cac7930264318af932f46e0
2010-12-12T23:24:34.194336Z
4509
@@ -1596,7 +1596,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
190cbeea6f926cc615d6d2918a50e909
2010-12-12T23:24:34.194336Z
4509
@@ -1630,11 +1630,11 @@
-2011-01-13T14:09:08.000000Z
-ac4fd4943d72406872230aa7bad0213c
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-03-03T11:40:17.000000Z
+a05a557c98b400ffe59662be78e31270
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
has-props
@@ -1656,7 +1656,7 @@
-3844
+4268
wiki_controller_test.rb
file
@@ -1664,7 +1664,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
33e64585bc7591ba6089135bbadb817e
2010-12-12T23:24:34.194336Z
4509
@@ -1692,13 +1692,47 @@
17903
+previews_controller_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+c262b8203846b82045458a273da221fc
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1106
+
auth_sources_controller_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
017010de8f7353d064e6b866e9dbb0c3
2010-12-12T23:24:34.194336Z
4509
@@ -1726,51 +1760,17 @@
1961
-previews_controller_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-c262b8203846b82045458a273da221fc
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1106
-
repositories_subversion_controller_test.rb
file
-2011-01-19T15:03:31.000000Z
-9ffab3723a0facfd46dabe5efe813d30
-2011-01-14T20:22:36.080461Z
-4710
-jplang
+2011-03-03T11:40:17.000000Z
+d6a450e274753a0903a76b51c16eae7b
+2011-02-21T03:59:30.193463Z
+4896
+tmaruyama
has-props
@@ -1792,7 +1792,7 @@
-9276
+11247
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-03-03T11:05:08.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-03-03T11:05:08.000000Z
2e73f89630c087f8170f62f3f79079c0
2010-12-12T23:24:34.194336Z
4509
@@ -1868,7 +1868,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
4194cdc2f733e6e1a38bedb7a6af05c8
2010-12-12T23:24:34.194336Z
4509
@@ -1902,7 +1902,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
770100e7a7049e202c8a1ea476659a30
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/issue_relations_controller_test.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/functional/.svn/text-base/journals_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/journals_controller_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/journals_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2008 Jean-Philippe Lang
+# 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
@@ -38,6 +38,19 @@
assert_equal 'application/atom+xml', @response.content_type
end
+ def test_diff
+ get :diff, :id => 3, :detail_id => 4
+ assert_response :success
+ assert_template 'diff'
+
+ assert_tag 'span',
+ :attributes => {:class => 'diff_out'},
+ :content => /removed/
+ assert_tag 'span',
+ :attributes => {:class => 'diff_in'},
+ :content => /added/
+ end
+
def test_reply_to_issue
@request.session[:user_id] = 2
get :new, :id => 6
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_bazaar_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -32,9 +32,13 @@
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
- Repository::Bazaar.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Bazaar.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_show
get :show, :id => 3
@@ -43,7 +47,7 @@
assert_not_nil assigns(:entries)
assert_not_nil assigns(:changesets)
end
-
+
def test_browse_root
get :show, :id => 3
assert_response :success
@@ -53,7 +57,7 @@
assert assigns(:entries).detect {|e| e.name == 'directory' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'doc-mkdir.txt' && e.kind == 'file'}
end
-
+
def test_browse_directory
get :show, :id => 3, :path => ['directory']
assert_response :success
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_cvs_controller_test.rb.svn-base Thu Mar 03 12:02:03 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,19 @@
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,
+ :log_encoding => 'UTF-8')
+ 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 +58,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 +74,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 +88,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 +98,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 +109,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 +120,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 +145,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' },
@@ -134,10 +155,29 @@
assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
:content => /watched.remove_all_watcher/
end
+
+ def test_diff_new_files
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 1, :type => 'inline'
+ assert_response :success
+ assert_template 'diff'
+ assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
+ :content => /watched.remove_watcher/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/README/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/images\/delete.png /
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/images\/edit.png/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/sources\/watchers_controller.rb/
+ 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 fca2657f4aa5 -r eeebe205a056 test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_darcs_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -26,26 +26,35 @@
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
+ PRJ_ID = 3
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
- Repository::Darcs.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Darcs.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_show
- get :show, :id => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_not_nil assigns(:changesets)
end
-
+
def test_browse_root
- get :show, :id => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -54,9 +63,11 @@
assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
end
-
+
def test_browse_directory
- get :show, :id => 3, :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)
@@ -66,27 +77,31 @@
assert_equal 'file', entry.kind
assert_equal 'images/edit.png', entry.path
end
-
+
def test_browse_at_given_revision
- Project.find(3).repository.fetch_changesets
- get :show, :id => 3, :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)
assert_equal ['delete.png'], assigns(:entries).collect(&:name)
end
-
+
def test_changes
- get :changes, :id => 3, :path => ['images', 'edit.png']
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
assert_response :success
assert_template 'changes'
assert_tag :tag => 'h2', :content => 'edit.png'
end
-
+
def test_diff
- Project.find(3).repository.fetch_changesets
+ @repository.fetch_changesets
+ @repository.reload
# Full diff of changeset 5
- get :diff, :id => 3, :rev => 5
+ get :diff, :id => PRJ_ID, :rev => 5
assert_response :success
assert_template 'diff'
# Line 22 removed
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_git_controller_test.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_mercurial_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -34,6 +34,7 @@
User.current = nil
@repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
assert @repository
+ @diff_c_support = true
end
if File.directory?(REPOSITORY_PATH)
@@ -137,7 +138,7 @@
assert_response :success
assert_template 'diff'
- if @repository.scm.class.client_version_above?([1, 2])
+ if @diff_c_support
# Line 22 removed
assert_tag :tag => 'th',
:content => '22',
@@ -196,6 +197,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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/repositories_subversion_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -26,17 +26,26 @@
:repositories, :issues, :issue_statuses, :changesets, :changes,
:issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
+ PRJ_ID = 3
+
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
Setting.default_language = 'en'
User.current = nil
+
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Subversion.create(:project => @project,
+ :url => "file://#{self.class.repository_path('subversion')}")
+ assert @repository
end
if repository_configured?('subversion')
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)
@@ -44,7 +53,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)
@@ -53,7 +64,9 @@
end
def test_browse_directory
- get :show, :id => 1, :path => ['subversion_test']
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['subversion_test']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -65,7 +78,9 @@
end
def test_browse_at_given_revision
- get :show, :id => 1, :path => ['subversion_test'], :rev => 4
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['subversion_test'], :rev => 4
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -73,7 +88,9 @@
end
def test_file_changes
- get :changes, :id => 1, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
assert_response :success
assert_template 'changes'
@@ -93,7 +110,9 @@
end
def test_directory_changes
- get :changes, :id => 1, :path => ['subversion_test', 'folder' ]
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
assert_response :success
assert_template 'changes'
@@ -103,15 +122,19 @@
end
def test_entry
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template 'entry'
end
def test_entry_should_send_if_too_big
+ @repository.fetch_changesets
+ @repository.reload
# no files in the test repo is larger than 1KB...
with_settings :file_max_size_displayed => 0 do
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template ''
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
@@ -119,7 +142,9 @@
end
def test_entry_at_given_revision
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
assert_response :success
assert_template 'entry'
# this line was removed in r3 and file was moved in r6
@@ -128,27 +153,36 @@
end
def test_entry_not_found
- get :entry, :id => 1, :path => ['subversion_test', 'zzz.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', '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 => ['subversion_test', 'helloworld.c'], :format => 'raw'
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
assert_response :success
assert_template ''
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
end
def test_directory_entry
- get :entry, :id => 1, :path => ['subversion_test', 'folder']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entry)
assert_equal 'folder', assigns(:entry).name
end
+ # TODO: this test needs fixtures.
def test_revision
+ @repository.fetch_changesets
+ @repository.reload
get :revision, :id => 1, :rev => 2
assert_response :success
assert_template 'revision'
@@ -167,19 +201,30 @@
end
def test_invalid_revision
- get :revision, :id => 1, :rev => 'something_weird'
+ @repository.fetch_changesets
+ @repository.reload
+ get :revision, :id => PRJ_ID, :rev => 'something_weird'
+ assert_response 404
+ assert_error_tag :content => /was not found/
+ end
+
+ def test_invalid_revision_diff
+ get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
assert_response 404
assert_error_tag :content => /was not found/
end
def test_empty_revision
+ @repository.fetch_changesets
+ @repository.reload
['', ' ', nil].each do |r|
- get :revision, :id => 1, :rev => r
+ get :revision, :id => PRJ_ID, :rev => r
assert_response 404
assert_error_tag :content => /was not found/
end
end
+ # TODO: this test needs fixtures.
def test_revision_with_repository_pointing_to_a_subdirectory
r = Project.find(1).repository
# Changes repository url to a subdirectory
@@ -203,7 +248,9 @@
end
def test_revision_diff
- get :diff, :id => 1, :rev => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 3
assert_response :success
assert_template 'diff'
@@ -211,7 +258,9 @@
end
def test_directory_diff
- get :diff, :id => 1, :rev => 6, :rev_to => 2, :path => ['subversion_test', 'folder']
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2, :path => ['subversion_test', 'folder']
assert_response :success
assert_template 'diff'
@@ -224,10 +273,21 @@
end
def test_annotate
- get :annotate, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template 'annotate'
end
+
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :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 fca2657f4aa5 -r eeebe205a056 test/functional/.svn/text-base/welcome_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/welcome_controller_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/welcome_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -67,4 +67,28 @@
assert_equal 'text/plain', @response.content_type
assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$})
end
+
+ def test_warn_on_leaving_unsaved_turn_on
+ user = User.find(2)
+ user.pref.warn_on_leaving_unsaved = '1'
+ user.pref.save!
+ @request.session[:user_id] = 2
+
+ get :index
+ assert_tag 'script',
+ :attributes => {:type => "text/javascript"},
+ :content => %r{new WarnLeavingUnsaved}
+ end
+
+ def test_warn_on_leaving_unsaved_turn_off
+ user = User.find(2)
+ user.pref.warn_on_leaving_unsaved = '0'
+ user.pref.save!
+ @request.session[:user_id] = 2
+
+ get :index
+ assert_no_tag 'script',
+ :attributes => {:type => "text/javascript"},
+ :content => %r{new WarnLeavingUnsaved}
+ end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/.svn/text-base/workflows_controller_test.rb.svn-base
--- a/test/functional/.svn/text-base/workflows_controller_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/.svn/text-base/workflows_controller_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -65,17 +65,17 @@
# allowed transitions
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[3][]',
- :value => '5',
+ :name => 'issue_status[3][5][]',
+ :value => 'always',
:checked => 'checked' }
# not allowed
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[3][]',
- :value => '2',
+ :name => 'issue_status[3][2][]',
+ :value => 'always',
:checked => nil }
# unused
assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[4][]' }
+ :name => 'issue_status[1][1][]' }
end
def test_get_edit_with_role_and_tracker_and_all_statuses
@@ -89,13 +89,17 @@
assert_equal IssueStatus.count, assigns(:statuses).size
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[1][]',
- :value => '1',
+ :name => 'issue_status[1][1][]',
+ :value => 'always',
:checked => nil }
end
def test_post_edit
- post :edit, :role_id => 2, :tracker_id => 1, :issue_status => {'4' => ['5'], '3' => ['1', '2']}
+ post :edit, :role_id => 2, :tracker_id => 1,
+ :issue_status => {
+ '4' => {'5' => ['always']},
+ '3' => {'1' => ['always'], '2' => ['always']}
+ }
assert_redirected_to '/workflows/edit?role_id=2&tracker_id=1'
assert_equal 3, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2})
@@ -103,6 +107,30 @@
assert_nil Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 5, :new_status_id => 4})
end
+ def test_post_edit_with_additional_transitions
+ post :edit, :role_id => 2, :tracker_id => 1,
+ :issue_status => {
+ '4' => {'5' => ['always']},
+ '3' => {'1' => ['author'], '2' => ['assignee'], '4' => ['author', 'assignee']}
+ }
+ assert_redirected_to '/workflows/edit?role_id=2&tracker_id=1'
+
+ assert_equal 4, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2})
+
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 4, :new_status_id => 5})
+ assert ! w.author
+ assert ! w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 1})
+ assert w.author
+ assert ! w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 2})
+ assert ! w.author
+ assert w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 4})
+ assert w.author
+ assert w.assignee
+ end
+
def test_clear_workflow
assert Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2}) > 0
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/issue_relations_controller_test.rb
--- a/test/functional/issue_relations_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/issue_relations_controller_test.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/functional/journals_controller_test.rb
--- a/test/functional/journals_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/journals_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2008 Jean-Philippe Lang
+# 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
@@ -38,6 +38,19 @@
assert_equal 'application/atom+xml', @response.content_type
end
+ def test_diff
+ get :diff, :id => 3, :detail_id => 4
+ assert_response :success
+ assert_template 'diff'
+
+ assert_tag 'span',
+ :attributes => {:class => 'diff_out'},
+ :content => /removed/
+ assert_tag 'span',
+ :attributes => {:class => 'diff_in'},
+ :content => /added/
+ end
+
def test_reply_to_issue
@request.session[:user_id] = 2
get :new, :id => 6
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/repositories_bazaar_controller_test.rb
--- a/test/functional/repositories_bazaar_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_bazaar_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -32,9 +32,13 @@
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
- Repository::Bazaar.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Bazaar.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_show
get :show, :id => 3
@@ -43,7 +47,7 @@
assert_not_nil assigns(:entries)
assert_not_nil assigns(:changesets)
end
-
+
def test_browse_root
get :show, :id => 3
assert_response :success
@@ -53,7 +57,7 @@
assert assigns(:entries).detect {|e| e.name == 'directory' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'doc-mkdir.txt' && e.kind == 'file'}
end
-
+
def test_browse_directory
get :show, :id => 3, :path => ['directory']
assert_response :success
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/repositories_cvs_controller_test.rb
--- a/test/functional/repositories_cvs_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_cvs_controller_test.rb Thu Mar 03 12:02:03 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,19 @@
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,
+ :log_encoding => 'UTF-8')
+ 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 +58,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 +74,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 +88,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 +98,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 +109,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 +120,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 +145,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' },
@@ -134,10 +155,29 @@
assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
:content => /watched.remove_all_watcher/
end
+
+ def test_diff_new_files
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 1, :type => 'inline'
+ assert_response :success
+ assert_template 'diff'
+ assert_tag :tag => 'td', :attributes => { :class => 'line-code diff_in' },
+ :content => /watched.remove_watcher/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/README/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/images\/delete.png /
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/images\/edit.png/
+ assert_tag :tag => 'th', :attributes => { :class => 'filename' },
+ :content => /test\/sources\/watchers_controller.rb/
+ 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 fca2657f4aa5 -r eeebe205a056 test/functional/repositories_darcs_controller_test.rb
--- a/test/functional/repositories_darcs_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_darcs_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -26,26 +26,35 @@
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
+ PRJ_ID = 3
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
- Repository::Darcs.create(:project => Project.find(3), :url => REPOSITORY_PATH)
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Darcs.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_show
- get :show, :id => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_not_nil assigns(:changesets)
end
-
+
def test_browse_root
- get :show, :id => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -54,9 +63,11 @@
assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
end
-
+
def test_browse_directory
- get :show, :id => 3, :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)
@@ -66,27 +77,31 @@
assert_equal 'file', entry.kind
assert_equal 'images/edit.png', entry.path
end
-
+
def test_browse_at_given_revision
- Project.find(3).repository.fetch_changesets
- get :show, :id => 3, :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)
assert_equal ['delete.png'], assigns(:entries).collect(&:name)
end
-
+
def test_changes
- get :changes, :id => 3, :path => ['images', 'edit.png']
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
assert_response :success
assert_template 'changes'
assert_tag :tag => 'h2', :content => 'edit.png'
end
-
+
def test_diff
- Project.find(3).repository.fetch_changesets
+ @repository.fetch_changesets
+ @repository.reload
# Full diff of changeset 5
- get :diff, :id => 3, :rev => 5
+ get :diff, :id => PRJ_ID, :rev => 5
assert_response :success
assert_template 'diff'
# Line 22 removed
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/repositories_git_controller_test.rb
--- a/test/functional/repositories_git_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_git_controller_test.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/functional/repositories_mercurial_controller_test.rb
--- a/test/functional/repositories_mercurial_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_mercurial_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -34,6 +34,7 @@
User.current = nil
@repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH)
assert @repository
+ @diff_c_support = true
end
if File.directory?(REPOSITORY_PATH)
@@ -137,7 +138,7 @@
assert_response :success
assert_template 'diff'
- if @repository.scm.class.client_version_above?([1, 2])
+ if @diff_c_support
# Line 22 removed
assert_tag :tag => 'th',
:content => '22',
@@ -196,6 +197,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 fca2657f4aa5 -r eeebe205a056 test/functional/repositories_subversion_controller_test.rb
--- a/test/functional/repositories_subversion_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/repositories_subversion_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -26,17 +26,26 @@
:repositories, :issues, :issue_statuses, :changesets, :changes,
:issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
+ PRJ_ID = 3
+
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
Setting.default_language = 'en'
User.current = nil
+
+ @project = Project.find(PRJ_ID)
+ @repository = Repository::Subversion.create(:project => @project,
+ :url => "file://#{self.class.repository_path('subversion')}")
+ assert @repository
end
if repository_configured?('subversion')
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)
@@ -44,7 +53,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)
@@ -53,7 +64,9 @@
end
def test_browse_directory
- get :show, :id => 1, :path => ['subversion_test']
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['subversion_test']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -65,7 +78,9 @@
end
def test_browse_at_given_revision
- get :show, :id => 1, :path => ['subversion_test'], :rev => 4
+ @repository.fetch_changesets
+ @repository.reload
+ get :show, :id => PRJ_ID, :path => ['subversion_test'], :rev => 4
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
@@ -73,7 +88,9 @@
end
def test_file_changes
- get :changes, :id => 1, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder', 'helloworld.rb' ]
assert_response :success
assert_template 'changes'
@@ -93,7 +110,9 @@
end
def test_directory_changes
- get :changes, :id => 1, :path => ['subversion_test', 'folder' ]
+ @repository.fetch_changesets
+ @repository.reload
+ get :changes, :id => PRJ_ID, :path => ['subversion_test', 'folder' ]
assert_response :success
assert_template 'changes'
@@ -103,15 +122,19 @@
end
def test_entry
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template 'entry'
end
def test_entry_should_send_if_too_big
+ @repository.fetch_changesets
+ @repository.reload
# no files in the test repo is larger than 1KB...
with_settings :file_max_size_displayed => 0 do
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template ''
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
@@ -119,7 +142,9 @@
end
def test_entry_at_given_revision
- get :entry, :id => 1, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
assert_response :success
assert_template 'entry'
# this line was removed in r3 and file was moved in r6
@@ -128,27 +153,36 @@
end
def test_entry_not_found
- get :entry, :id => 1, :path => ['subversion_test', 'zzz.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', '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 => ['subversion_test', 'helloworld.c'], :format => 'raw'
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
assert_response :success
assert_template ''
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
end
def test_directory_entry
- get :entry, :id => 1, :path => ['subversion_test', 'folder']
+ @repository.fetch_changesets
+ @repository.reload
+ get :entry, :id => PRJ_ID, :path => ['subversion_test', 'folder']
assert_response :success
assert_template 'show'
assert_not_nil assigns(:entry)
assert_equal 'folder', assigns(:entry).name
end
+ # TODO: this test needs fixtures.
def test_revision
+ @repository.fetch_changesets
+ @repository.reload
get :revision, :id => 1, :rev => 2
assert_response :success
assert_template 'revision'
@@ -167,19 +201,30 @@
end
def test_invalid_revision
- get :revision, :id => 1, :rev => 'something_weird'
+ @repository.fetch_changesets
+ @repository.reload
+ get :revision, :id => PRJ_ID, :rev => 'something_weird'
+ assert_response 404
+ assert_error_tag :content => /was not found/
+ end
+
+ def test_invalid_revision_diff
+ get :diff, :id => PRJ_ID, :rev => '1', :rev_to => 'something_weird'
assert_response 404
assert_error_tag :content => /was not found/
end
def test_empty_revision
+ @repository.fetch_changesets
+ @repository.reload
['', ' ', nil].each do |r|
- get :revision, :id => 1, :rev => r
+ get :revision, :id => PRJ_ID, :rev => r
assert_response 404
assert_error_tag :content => /was not found/
end
end
+ # TODO: this test needs fixtures.
def test_revision_with_repository_pointing_to_a_subdirectory
r = Project.find(1).repository
# Changes repository url to a subdirectory
@@ -203,7 +248,9 @@
end
def test_revision_diff
- get :diff, :id => 1, :rev => 3
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 3
assert_response :success
assert_template 'diff'
@@ -211,7 +258,9 @@
end
def test_directory_diff
- get :diff, :id => 1, :rev => 6, :rev_to => 2, :path => ['subversion_test', 'folder']
+ @repository.fetch_changesets
+ @repository.reload
+ get :diff, :id => PRJ_ID, :rev => 6, :rev_to => 2, :path => ['subversion_test', 'folder']
assert_response :success
assert_template 'diff'
@@ -224,10 +273,21 @@
end
def test_annotate
- get :annotate, :id => 1, :path => ['subversion_test', 'helloworld.c']
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :path => ['subversion_test', 'helloworld.c']
assert_response :success
assert_template 'annotate'
end
+
+ def test_annotate_at_given_revision
+ @repository.fetch_changesets
+ @repository.reload
+ get :annotate, :id => PRJ_ID, :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 fca2657f4aa5 -r eeebe205a056 test/functional/welcome_controller_test.rb
--- a/test/functional/welcome_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/welcome_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -67,4 +67,28 @@
assert_equal 'text/plain', @response.content_type
assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$})
end
+
+ def test_warn_on_leaving_unsaved_turn_on
+ user = User.find(2)
+ user.pref.warn_on_leaving_unsaved = '1'
+ user.pref.save!
+ @request.session[:user_id] = 2
+
+ get :index
+ assert_tag 'script',
+ :attributes => {:type => "text/javascript"},
+ :content => %r{new WarnLeavingUnsaved}
+ end
+
+ def test_warn_on_leaving_unsaved_turn_off
+ user = User.find(2)
+ user.pref.warn_on_leaving_unsaved = '0'
+ user.pref.save!
+ @request.session[:user_id] = 2
+
+ get :index
+ assert_no_tag 'script',
+ :attributes => {:type => "text/javascript"},
+ :content => %r{new WarnLeavingUnsaved}
+ end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/functional/workflows_controller_test.rb
--- a/test/functional/workflows_controller_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/functional/workflows_controller_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -65,17 +65,17 @@
# allowed transitions
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[3][]',
- :value => '5',
+ :name => 'issue_status[3][5][]',
+ :value => 'always',
:checked => 'checked' }
# not allowed
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[3][]',
- :value => '2',
+ :name => 'issue_status[3][2][]',
+ :value => 'always',
:checked => nil }
# unused
assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[4][]' }
+ :name => 'issue_status[1][1][]' }
end
def test_get_edit_with_role_and_tracker_and_all_statuses
@@ -89,13 +89,17 @@
assert_equal IssueStatus.count, assigns(:statuses).size
assert_tag :tag => 'input', :attributes => { :type => 'checkbox',
- :name => 'issue_status[1][]',
- :value => '1',
+ :name => 'issue_status[1][1][]',
+ :value => 'always',
:checked => nil }
end
def test_post_edit
- post :edit, :role_id => 2, :tracker_id => 1, :issue_status => {'4' => ['5'], '3' => ['1', '2']}
+ post :edit, :role_id => 2, :tracker_id => 1,
+ :issue_status => {
+ '4' => {'5' => ['always']},
+ '3' => {'1' => ['always'], '2' => ['always']}
+ }
assert_redirected_to '/workflows/edit?role_id=2&tracker_id=1'
assert_equal 3, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2})
@@ -103,6 +107,30 @@
assert_nil Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 5, :new_status_id => 4})
end
+ def test_post_edit_with_additional_transitions
+ post :edit, :role_id => 2, :tracker_id => 1,
+ :issue_status => {
+ '4' => {'5' => ['always']},
+ '3' => {'1' => ['author'], '2' => ['assignee'], '4' => ['author', 'assignee']}
+ }
+ assert_redirected_to '/workflows/edit?role_id=2&tracker_id=1'
+
+ assert_equal 4, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2})
+
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 4, :new_status_id => 5})
+ assert ! w.author
+ assert ! w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 1})
+ assert w.author
+ assert ! w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 2})
+ assert ! w.author
+ assert w.assignee
+ w = Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 4})
+ assert w.author
+ assert w.assignee
+ end
+
def test_clear_workflow
assert Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2}) > 0
diff -r fca2657f4aa5 -r eeebe205a056 test/integration/.svn/entries
--- a/test/integration/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/integration/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/integration
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
b828e87474858f965d2048f5f15f8e4b
2010-12-12T23:24:34.194336Z
4509
@@ -63,13 +63,16 @@
lib
dir
+api_test
+dir
+
routing_test.rb
file
-2011-01-19T15:03:31.000000Z
+2011-03-03T11:05:08.000000Z
7e4b62197ce8e1dfe456477ae9ee384f
2011-01-16T15:23:11.666065Z
4729
@@ -97,16 +100,13 @@
28869
-api_test
-dir
-
admin_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
fbd4d2a8c15f4ec209250f3395903604
2010-12-12T23:24:34.194336Z
4509
@@ -140,7 +140,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
4b83660bc635b651f2e1d2d8ee50b84b
2010-12-12T23:24:34.194336Z
4509
@@ -174,7 +174,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
09fa9e6798468c9b7fda21b438e16c5e
2010-12-12T23:24:34.194336Z
4509
@@ -208,7 +208,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
5cdf08841a7442b774036772bb1fc1a7
2010-12-12T23:24:34.194336Z
4509
@@ -242,7 +242,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
ff949103a3bdac892a3372cfb71047f0
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/integration/api_test/.svn/entries
--- a/test/integration/api_test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/integration/api_test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
7d38bb393dfe949c081c7e9ee2ea0caa
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-19T15:03:31.000000Z
+2011-03-03T11:05:08.000000Z
5cca5d3e833a26e12978491298f55859
2011-01-16T15:23:11.666065Z
4729
@@ -100,7 +100,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
1704d0f93701094c0ebf95183e078b5f
2010-12-12T23:24:34.194336Z
4509
@@ -134,7 +134,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
92abe10e190b64c60afc90866336aa7c
2010-12-12T23:24:34.194336Z
4509
@@ -168,7 +168,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
31d08ba85b57fcdb41e06c1f367de87e
2011-01-06T20:36:31.826591Z
4645
@@ -202,7 +202,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
a4c38f734c93d99d52de27d41a380756
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +236,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
445e18c4a9d648b99d948eac4e750480
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
bee85bcaab5d8fb5f90a64ad4ac32e3c
2010-12-12T23:24:34.194336Z
4509
@@ -304,7 +304,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
24e8e5b1544016befedeea49b8fb5cb5
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/integration/lib/.svn/entries
--- a/test/integration/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/integration/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/integration/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/test/integration/lib
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 test/integration/lib/redmine/.svn/entries
--- a/test/integration/lib/redmine/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/integration/lib/redmine/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
302d4ea0c07530cc9d48b971849df66d
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
782f5d377a79dea8a580dcd902121b37
2010-12-23T09:42:33.439630Z
4560
diff -r fca2657f4aa5 -r eeebe205a056 test/mocks/.svn/entries
--- a/test/mocks/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/mocks/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/mocks
+4993
+http://redmine.rubyforge.org/svn/trunk/test/mocks
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:09.000000Z
c73745cf74166bf38552d6469b74b190
2009-09-20T14:06:57.257282Z
2895
diff -r fca2657f4aa5 -r eeebe205a056 test/mocks/development/.svn/entries
--- a/test/mocks/development/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/mocks/development/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/mocks/development
+4993
+http://redmine.rubyforge.org/svn/trunk/test/mocks/development
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 test/mocks/test/.svn/entries
--- a/test/mocks/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/mocks/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/test/mocks/test
+4993
+http://redmine.rubyforge.org/svn/trunk/test/mocks/test
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/all-wcprops
--- a/test/unit/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/all-wcprops Thu Mar 03 12:02:03 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/4991/trunk/test/unit
END
document_test.rb
K 25
@@ -19,13 +19,13 @@
K 25
svn:wc:ra_dav:version-url
V 57
-/svn/!svn/ver/4703/trunk/test/unit/repository_git_test.rb
+/svn/!svn/ver/4986/trunk/test/unit/repository_git_test.rb
END
repository_mercurial_test.rb
K 25
svn:wc:ra_dav:version-url
V 63
-/svn/!svn/ver/4704/trunk/test/unit/repository_mercurial_test.rb
+/svn/!svn/ver/4991/trunk/test/unit/repository_mercurial_test.rb
END
issue_relation_test.rb
K 25
@@ -55,13 +55,13 @@
K 25
svn:wc:ra_dav:version-url
V 48
-/svn/!svn/ver/4723/trunk/test/unit/issue_test.rb
+/svn/!svn/ver/4958/trunk/test/unit/issue_test.rb
END
issue_status_test.rb
K 25
svn:wc:ra_dav:version-url
V 55
-/svn/!svn/ver/4509/trunk/test/unit/issue_status_test.rb
+/svn/!svn/ver/4895/trunk/test/unit/issue_status_test.rb
END
time_entry_activity_test.rb
K 25
@@ -79,13 +79,13 @@
K 25
svn:wc:ra_dav:version-url
V 64
-/svn/!svn/ver/4703/trunk/test/unit/repository_subversion_test.rb
+/svn/!svn/ver/4987/trunk/test/unit/repository_subversion_test.rb
END
repository_bazaar_test.rb
K 25
svn:wc:ra_dav:version-url
V 60
-/svn/!svn/ver/4613/trunk/test/unit/repository_bazaar_test.rb
+/svn/!svn/ver/4982/trunk/test/unit/repository_bazaar_test.rb
END
role_test.rb
K 25
@@ -97,7 +97,7 @@
K 25
svn:wc:ra_dav:version-url
V 52
-/svn/!svn/ver/4613/trunk/test/unit/changeset_test.rb
+/svn/!svn/ver/4984/trunk/test/unit/changeset_test.rb
END
comment_test.rb
K 25
@@ -139,7 +139,7 @@
K 25
svn:wc:ra_dav:version-url
V 47
-/svn/!svn/ver/4730/trunk/test/unit/user_test.rb
+/svn/!svn/ver/4936/trunk/test/unit/user_test.rb
END
mail_handler_test.rb
K 25
@@ -151,7 +151,7 @@
K 25
svn:wc:ra_dav:version-url
V 53
-/svn/!svn/ver/4726/trunk/test/unit/repository_test.rb
+/svn/!svn/ver/4982/trunk/test/unit/repository_test.rb
END
time_entry_test.rb
K 25
@@ -165,17 +165,23 @@
V 52
/svn/!svn/ver/4509/trunk/test/unit/principal_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
+END
auth_source_ldap_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
+repository_filesystem_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,11 +189,11 @@
V 61
/svn/!svn/ver/4650/trunk/test/unit/project_nested_set_test.rb
END
-repository_filesystem_test.rb
+message_test.rb
K 25
svn:wc:ra_dav:version-url
-V 64
-/svn/!svn/ver/4509/trunk/test/unit/repository_filesystem_test.rb
+V 50
+/svn/!svn/ver/4509/trunk/test/unit/message_test.rb
END
wiki_redirect_test.rb
K 25
@@ -195,12 +201,6 @@
V 56
/svn/!svn/ver/4509/trunk/test/unit/wiki_redirect_test.rb
END
-message_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 50
-/svn/!svn/ver/4509/trunk/test/unit/message_test.rb
-END
issue_category_test.rb
K 25
svn:wc:ra_dav:version-url
@@ -223,13 +223,13 @@
K 25
svn:wc:ra_dav:version-url
V 57
-/svn/!svn/ver/4509/trunk/test/unit/repository_cvs_test.rb
+/svn/!svn/ver/4982/trunk/test/unit/repository_cvs_test.rb
END
repository_darcs_test.rb
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4608/trunk/test/unit/repository_darcs_test.rb
+/svn/!svn/ver/4982/trunk/test/unit/repository_darcs_test.rb
END
activity_test.rb
K 25
@@ -271,13 +271,13 @@
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
svn:wc:ra_dav:version-url
V 48
-/svn/!svn/ver/4553/trunk/test/unit/query_test.rb
+/svn/!svn/ver/4888/trunk/test/unit/query_test.rb
END
search_test.rb
K 25
@@ -285,18 +285,18 @@
V 49
/svn/!svn/ver/4509/trunk/test/unit/search_test.rb
END
+custom_value_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/4509/trunk/test/unit/custom_value_test.rb
+END
project_test.rb
K 25
svn:wc:ra_dav:version-url
V 50
/svn/!svn/ver/4615/trunk/test/unit/project_test.rb
END
-custom_value_test.rb
-K 25
-svn:wc:ra_dav:version-url
-V 55
-/svn/!svn/ver/4509/trunk/test/unit/custom_value_test.rb
-END
member_test.rb
K 25
svn:wc:ra_dav:version-url
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/entries
--- a/test/unit/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/unit
http://redmine.rubyforge.org/svn
-2011-01-16T15:36:42.998302Z
-4730
-jplang
+2011-03-03T03:35:13.139305Z
+4991
+tmaruyama
@@ -32,7 +32,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
31100b89782bb9004a5f162375b5192b
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
e89c6342d99d8e32ca9c9d3399641b96
2010-12-12T23:24:34.194336Z
4509
@@ -100,10 +100,10 @@
-2011-01-13T14:08:14.000000Z
-f95988379d5f7fa7f341954a886c6a3e
-2011-01-13T12:04:30.962313Z
-4703
+2011-03-03T11:40:17.000000Z
+47242b5b6c39be0674556191a42a70ff
+2011-03-02T05:12:39.499704Z
+4986
tmaruyama
has-props
@@ -126,7 +126,7 @@
-4415
+5437
repository_mercurial_test.rb
file
@@ -134,10 +134,10 @@
-2011-01-13T14:08:14.000000Z
-37d81db20cb50110ac1f7fa44e5ecb40
-2011-01-13T12:04:51.838288Z
-4704
+2011-03-03T11:40:17.000000Z
+df5148d6503c41188684ca42c8fb1563
+2011-03-03T03:35:13.139305Z
+4991
tmaruyama
has-props
@@ -160,7 +160,7 @@
-6345
+7231
issue_relation_test.rb
file
@@ -168,7 +168,7 @@
-2011-01-19T15:03:31.000000Z
+2011-03-03T11:05:08.000000Z
c121bfc1afd3428c1c63ffc8e4c9441e
2011-01-15T14:03:39.071238Z
4721
@@ -202,7 +202,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
9aa8e8e5f5ef4c0c74c9fcdaba7ada60
2010-12-31T11:16:03.020751Z
4597
@@ -236,7 +236,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
01227adbe16fcf333a7e99f9a7bcc0f6
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +270,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
afdfda5a2d9285920afb8815085ad0ee
2010-12-12T23:24:34.194336Z
4509
@@ -304,10 +304,10 @@
-2011-01-19T15:03:31.000000Z
-a8c280ae08bee271010554106ded8aa0
-2011-01-15T14:12:18.630628Z
-4723
+2011-03-03T11:40:17.000000Z
+103def744f4a7e87035c40962f5f4b9f
+2011-02-27T15:51:10.736814Z
+4958
jplang
has-props
@@ -330,7 +330,7 @@
-30795
+32944
issue_status_test.rb
file
@@ -338,11 +338,11 @@
-2011-01-13T14:08:14.000000Z
-46bccc51b3aa0bd4b3826318f662f587
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-03-03T11:40:17.000000Z
+927e020ce867263e6cf5af443bfaecd8
+2011-02-20T15:38:07.840581Z
+4895
+jplang
has-props
@@ -364,7 +364,7 @@
-3236
+4757
time_entry_activity_test.rb
file
@@ -372,7 +372,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
41183297c9b098b67d368c45289eb47f
2010-12-12T23:24:34.194336Z
4509
@@ -406,7 +406,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
32e8c8fd522283c8008b2dac1de383dd
2010-12-12T23:24:34.194336Z
4509
@@ -440,10 +440,10 @@
-2011-01-13T14:08:14.000000Z
-fb0636f5bb4d94047ed14879e88f7df7
-2011-01-13T12:04:30.962313Z
-4703
+2011-03-03T11:40:17.000000Z
+428e976e05c3c4bffbc9885ef1272fc7
+2011-03-02T07:10:39.633104Z
+4987
tmaruyama
has-props
@@ -466,7 +466,7 @@
-5506
+7066
repository_bazaar_test.rb
file
@@ -474,10 +474,10 @@
-2011-01-13T14:08:14.000000Z
-b0c66b65fc51cdbf6f9885dddbfe5a23
-2011-01-02T09:45:05.291687Z
-4613
+2011-03-03T11:40:17.000000Z
+562f1297bf47e2199e1f04ccd1733f49
+2011-03-01T10:27:30.170724Z
+4982
tmaruyama
has-props
@@ -500,10 +500,41 @@
-3125
+2704
-helpers
-dir
+changeset_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+ee5c9c8f3cf4814a73673fe693faf697
+2011-03-01T15:35:27.747088Z
+4984
+tmaruyama
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10123
role_test.rb
file
@@ -511,7 +542,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
54e0d5b5ac94a5a9a0649b2af1b030e4
2010-12-12T23:24:34.194336Z
4509
@@ -539,39 +570,8 @@
3054
-changeset_test.rb
-file
-
-
-
-
-2011-01-13T14:08:14.000000Z
-c3cb358e85c7a5ddde50a50e8e8395d9
-2011-01-02T09:45:05.291687Z
-4613
-tmaruyama
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7938
+helpers
+dir
comment_test.rb
file
@@ -579,7 +579,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
d279aa9cdae195412ec42a41d76bc999
2010-12-12T23:24:34.194336Z
4509
@@ -613,7 +613,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
fe66a05a1301e78c21ab94a101fda6af
2011-01-10T18:32:04.408692Z
4680
@@ -650,7 +650,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
fadeda4795465dbbbf5873729ddba30a
2010-12-12T23:24:34.194336Z
4509
@@ -684,7 +684,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
93378a65c9f444ca160b6681b7435610
2010-12-12T23:24:34.194336Z
4509
@@ -718,7 +718,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
621cee22436f207cb82915edfe609d42
2010-12-12T23:24:34.194336Z
4509
@@ -752,7 +752,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.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-03-03T11:40:17.000000Z
+93a08b69d91fdc8222483cbb6d20563d
+2011-02-23T17:27:31.762248Z
+4936
jplang
has-props
@@ -812,7 +812,75 @@
-24597
+26161
+
+mail_handler_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+ccd63941c3776cd520a713f27ed01d08
+2010-12-29T17:38:57.772516Z
+4576
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+18979
+
+repository_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+71ee0e9aa37fb046390f5774895ef623
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6540
time_entry_test.rb
file
@@ -820,7 +888,7 @@
-2011-01-19T15:03:31.000000Z
+2011-03-03T11:05:08.000000Z
ab1c1db4414427c710071842f98a5685
2011-01-14T18:45:28.811697Z
4709
@@ -848,73 +916,73 @@
4317
-repository_test.rb
+principal_test.rb
file
-2011-01-19T15:03:31.000000Z
-759b702e56d17ca338fcead30d8cfcbe
-2011-01-16T14:27:02.047144Z
-4726
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6554
+2011-03-03T11:05:08.000000Z
+69e70ceb20c56bbb25155e8120146aa3
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2078
-mail_handler_test.rb
+journal_observer_test.rb
file
-2011-01-13T14:09:08.000000Z
-ccd63941c3776cd520a713f27ed01d08
-2010-12-29T17:38:57.772516Z
-4576
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-18979
+2011-03-03T11:05:08.000000Z
+0a054ecc047ebca7e0cb9fe8aadf51eb
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3959
auth_source_ldap_test.rb
file
@@ -922,7 +990,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
4de167441793151c86bc376e671cc3c1
2010-12-12T23:24:34.194336Z
4509
@@ -950,73 +1018,39 @@
2793
-principal_test.rb
+project_nested_set_test.rb
file
-2011-01-13T14:09:08.000000Z
-69e70ceb20c56bbb25155e8120146aa3
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2078
-
-journal_observer_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-0a054ecc047ebca7e0cb9fe8aadf51eb
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3959
+2011-03-03T11:05:08.000000Z
+47282cfa59c0817a7936d60b0ac3e16c
+2011-01-06T21:17:08.355137Z
+4650
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4027
repository_filesystem_test.rb
file
@@ -1024,7 +1058,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
8d990ac10b1aeee25c74ee1f5cdc9d18
2010-12-12T23:24:34.194336Z
4509
@@ -1052,47 +1086,13 @@
1940
-project_nested_set_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-47282cfa59c0817a7936d60b0ac3e16c
-2011-01-06T21:17:08.355137Z
-4650
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4027
-
message_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
6b620c2638af1111d237a35ecba5107d
2010-12-12T23:24:34.194336Z
4509
@@ -1126,7 +1126,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f4be42a1985df0fc471331477246eea7
2010-12-12T23:24:34.194336Z
4509
@@ -1160,7 +1160,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
fb1799532feba53a1df0355271636ce7
2010-12-12T23:24:34.194336Z
4509
@@ -1194,7 +1194,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
e8fef8d0f3de527136fabe2c2195be9e
2010-12-31T15:24:42.140175Z
4598
@@ -1228,7 +1228,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.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-03-03T11:40:17.000000Z
+a2d7bc3feefa89da466f5ead9e4da18d
+2011-03-01T10:27:30.170724Z
+4982
+tmaruyama
has-props
@@ -1288,7 +1288,7 @@
-2542
+3909
repository_darcs_test.rb
file
@@ -1296,10 +1296,10 @@
-2011-01-13T14:09:08.000000Z
-ae2d97f344e9c59bb09648e9e333db84
-2011-01-01T22:01:28.805978Z
-4608
+2011-03-03T11:40:17.000000Z
+44a11577927a86290e2887c1e0c0dd24
+2011-03-01T10:27:30.170724Z
+4982
tmaruyama
has-props
@@ -1322,7 +1322,7 @@
-2596
+2723
activity_test.rb
file
@@ -1330,7 +1330,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
f2227b773374d5366d6ee7e26f7f977e
2010-12-12T23:24:34.194336Z
4509
@@ -1364,7 +1364,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
50cc3fd88223d69f74e1b11991989bbc
2010-12-12T23:24:34.194336Z
4509
@@ -1398,7 +1398,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
3665052c1291d40753ee1ab4c61cd237
2010-12-12T23:24:34.194336Z
4509
@@ -1432,7 +1432,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
5f0c8e09595f6c8f6a95def9d4ff3833
2010-12-12T23:24:34.194336Z
4509
@@ -1466,7 +1466,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
870052407719f2a360e8e95f0498130f
2010-12-12T23:24:34.194336Z
4509
@@ -1500,7 +1500,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.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-03-03T11:05:08.000000Z
+a9a2a1d3497b65464c17a71858f15278
+2011-01-22T11:46:15.415880Z
+4735
+jplang
has-props
@@ -1560,7 +1560,7 @@
-13662
+14804
query_test.rb
file
@@ -1568,10 +1568,10 @@
-2011-01-13T14:09:08.000000Z
-25fe3c9e8b257bd7f2ce5b8a28f8f508
-2010-12-21T21:46:54.984442Z
-4553
+2011-03-03T11:40:17.000000Z
+1cf7133fc93cd35e36b828afe1abdd35
+2011-02-20T13:03:32.835478Z
+4888
jplang
has-props
@@ -1594,7 +1594,7 @@
-20770
+21925
search_test.rb
file
@@ -1602,7 +1602,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
7c10ed0c6e700b4bfe67499ced7f9129
2010-12-12T23:24:34.194336Z
4509
@@ -1630,13 +1630,47 @@
4661
+custom_value_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+e012f89814e1a9ddec5e1fd550c6b5e1
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3677
+
project_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
d50e8af60d440f2f3c60a31031b79830
2011-01-02T11:38:35.152085Z
4615
@@ -1664,47 +1698,13 @@
39071
-custom_value_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-e012f89814e1a9ddec5e1fd550c6b5e1
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3677
-
member_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
ef906b6b6bdeaa8d627ff66390dd31ab
2010-12-12T23:24:34.194336Z
4509
@@ -1738,7 +1738,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
2f98e8acd7868617728cd08702411096
2010-12-12T23:24:34.194336Z
4509
@@ -1772,7 +1772,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
759e3cea9ff889147937b83bcc137e4b
2010-12-12T23:24:34.194336Z
4509
@@ -1806,7 +1806,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
eab02ac34d43f18f1bc929dd62d6ee9a
2010-12-12T23:24:34.194336Z
4509
@@ -1840,7 +1840,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
59b08ad686160723b5b83df2cb5f8ee1
2010-12-12T23:24:34.194336Z
4509
@@ -1874,7 +1874,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
8a4fd1977e88faed5d7ebca9ac40d037
2010-12-12T23:24:34.194336Z
4509
@@ -1908,7 +1908,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
8f6032e2276c7077ad1716c67634c17e
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/changeset_test.rb.svn-base
--- a/test/unit/.svn/text-base/changeset_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/changeset_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -72,24 +72,40 @@
Setting.commit_ref_keywords = '*'
Setting.commit_logtime_enabled = '1'
- c = Changeset.new(:repository => Project.find(1).repository,
- :committed_on => 24.hours.ago,
- :comments => 'Worked on this issue #1 @2h',
- :revision => '520',
- :user => User.find(2))
- assert_difference 'TimeEntry.count' do
- c.scan_comment_for_issue_ids
+ {
+ '2' => 2.0,
+ '2h' => 2.0,
+ '2hours' => 2.0,
+ '15m' => 0.25,
+ '15min' => 0.25,
+ '3h15' => 3.25,
+ '3h15m' => 3.25,
+ '3h15min' => 3.25,
+ '3:15' => 3.25,
+ '3.25' => 3.25,
+ '3.25h' => 3.25,
+ '3,25' => 3.25,
+ '3,25h' => 3.25,
+ }.each do |syntax, expected_hours|
+ c = Changeset.new(:repository => Project.find(1).repository,
+ :committed_on => 24.hours.ago,
+ :comments => "Worked on this issue #1 @#{syntax}",
+ :revision => '520',
+ :user => User.find(2))
+ assert_difference 'TimeEntry.count' do
+ c.scan_comment_for_issue_ids
+ end
+ assert_equal [1], c.issue_ids.sort
+
+ time = TimeEntry.first(:order => 'id desc')
+ assert_equal 1, time.issue_id
+ assert_equal 1, time.project_id
+ assert_equal 2, time.user_id
+ assert_equal expected_hours, time.hours, "@#{syntax} should be logged as #{expected_hours} hours but was #{time.hours}"
+ assert_equal Date.yesterday, time.spent_on
+ assert time.activity.is_default?
+ assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
end
- assert_equal [1], c.issue_ids.sort
-
- time = TimeEntry.first(:order => 'id desc')
- assert_equal 1, time.issue_id
- assert_equal 1, time.project_id
- assert_equal 2, time.user_id
- assert_equal 2.0, time.hours
- assert_equal Date.yesterday, time.spent_on
- assert time.activity.is_default?
- assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
end
def test_ref_keywords_closing_with_timelog
@@ -100,7 +116,7 @@
c = Changeset.new(:repository => Project.find(1).repository,
:committed_on => Time.now,
- :comments => 'This is a comment. Fixes #1 @2.5, #2 @1',
+ :comments => 'This is a comment. Fixes #1 @4.5, #2 @1',
:user => User.find(2))
assert_difference 'TimeEntry.count', 2 do
c.scan_comment_for_issue_ids
@@ -169,12 +185,12 @@
assert_equal [2], c.issue_ids.sort
assert c.issues.first.project != c.project
end
-
+
def test_text_tag_revision
c = Changeset.new(:revision => '520')
assert_equal 'r520', c.text_tag
end
-
+
def test_text_tag_hash
c = Changeset.new(:scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518')
assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
@@ -204,19 +220,67 @@
changeset = Changeset.find_by_revision('10')
assert_nil changeset.next
end
-
+
def test_comments_should_be_converted_to_utf8
- with_settings :commit_logs_encoding => 'ISO-8859-1' do
- c = Changeset.new
- c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ proj = Project.find(3)
+ str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'ISO-8859-1' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => str)
+ assert( c.save )
assert_equal "Texte encodé en ISO-8859-1.", c.comments
- end
end
-
+
def test_invalid_utf8_sequences_in_comments_should_be_stripped
- c = Changeset.new
- c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
- assert_equal "Texte encod en ISO-8859-1.", c.comments
+ proj = Project.find(3)
+ str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'UTF-8' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => str)
+ assert( c.save )
+ if str.respond_to?(:force_encoding)
+ assert_equal "Texte encod? en ISO-8859-1.", c.comments
+ else
+ assert_equal "Texte encod en ISO-8859-1.", c.comments
+ end
+ end
+
+ def test_comments_should_be_converted_all_latin1_to_utf8
+ s1 = "\xC2\x80"
+ s2 = "\xc3\x82\xc2\x80"
+ if s1.respond_to?(:force_encoding)
+ s3 = s1
+ s4 = s2
+ s1.force_encoding('ASCII-8BIT')
+ s2.force_encoding('ASCII-8BIT')
+ s3.force_encoding('ISO-8859-1')
+ s4.force_encoding('UTF-8')
+ assert_equal s3.encode('UTF-8'), s4
+ end
+ proj = Project.find(3)
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'ISO-8859-1' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => s1)
+ assert( c.save )
+ assert_equal s2, c.comments
end
def test_identifier
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/issue_nested_set_test.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/issue_status_test.rb.svn-base
--- a/test/unit/.svn/text-base/issue_status_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/issue_status_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -18,7 +18,7 @@
require File.expand_path('../../test_helper', __FILE__)
class IssueStatusTest < ActiveSupport::TestCase
- fixtures :issue_statuses, :issues
+ fixtures :issue_statuses, :issues, :roles, :trackers
def test_create
status = IssueStatus.new :name => "Assigned"
@@ -68,6 +68,30 @@
status.reload
assert status.is_default?
end
+
+ def test_new_statuses_allowed_to
+ Workflow.delete_all
+
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+ status = IssueStatus.find(1)
+ role = Role.find(1)
+ tracker = Tracker.find(1)
+
+ assert_equal [2], status.new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+ assert_equal [2], status.find_new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+
+ assert_equal [2, 3], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+ assert_equal [2, 3], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+
+ assert_equal [2, 4], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+ assert_equal [2, 4], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+
+ assert_equal [2, 3, 4, 5], status.new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ assert_equal [2, 3, 4, 5], status.find_new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ end
context "#update_done_ratios" do
setup do
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/issue_test.rb.svn-base
--- a/test/unit/.svn/text-base/issue_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/issue_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
+# 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
@@ -210,6 +210,33 @@
assert_equal IssueCategory.find(1).assigned_to, issue.assigned_to
end
+
+
+ def test_new_statuses_allowed_to
+ Workflow.delete_all
+
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+ status = IssueStatus.find(1)
+ role = Role.find(1)
+ tracker = Tracker.find(1)
+ user = User.find(2)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1)
+ assert_equal [1, 2], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user)
+ assert_equal [1, 2, 3], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :assigned_to => user)
+ assert_equal [1, 2, 4], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user, :assigned_to => user)
+ assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
+ end
+
def test_copy
issue = Issue.new.copy_from(1)
assert issue.save
@@ -594,6 +621,29 @@
assert ActionMailer::Base.deliveries.empty?
end
+ def test_journalized_description
+ IssueCustomField.delete_all
+
+ i = Issue.first
+ old_description = i.description
+ new_description = "This is the new description"
+
+ i.init_journal(User.find(2))
+ i.description = new_description
+ assert_difference 'Journal.count', 1 do
+ assert_difference 'JournalDetail.count', 1 do
+ i.save!
+ end
+ end
+
+ detail = JournalDetail.first(:order => 'id DESC')
+ assert_equal i, detail.journal.journalized
+ assert_equal 'attr', detail.property
+ assert_equal 'description', detail.prop_key
+ assert_equal old_description, detail.old_value
+ assert_equal new_description, detail.value
+ end
+
def test_saving_twice_should_not_duplicate_journal_details
i = Issue.find(:first)
i.init_journal(User.find(2), 'Some notes')
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/query_test.rb.svn-base
--- a/test/unit/.svn/text-base/query_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/query_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -484,7 +484,6 @@
# Users not in a group
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')"
assert_find_issues_with_query_is_successful @query
-
end
should "search assigned to any group member (all)" do
@@ -494,7 +493,22 @@
# Only users in a group
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')"
assert_find_issues_with_query_is_successful @query
-
+ end
+
+ should "return an empty set with = empty group" do
+ @empty_group = Group.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '=', [@empty_group.id.to_s])
+
+ assert_equal [], find_issues_with_query(@query)
+ end
+
+ should "return issues with ! empty group" do
+ @empty_group = Group.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '!', [@empty_group.id.to_s])
+
+ assert_find_issues_with_query_is_successful @query
end
end
@@ -540,6 +554,22 @@
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')"
assert_find_issues_with_query_is_successful @query
end
+
+ should "return an empty set with empty role" do
+ @empty_role = Role.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s])
+
+ assert_equal [], find_issues_with_query(@query)
+ end
+
+ should "return issues with ! empty role" do
+ @empty_role = Role.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '!', [@empty_role.id.to_s])
+
+ assert_find_issues_with_query_is_successful @query
+ end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_bazaar_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -19,16 +19,19 @@
class RepositoryBazaarTest < ActiveSupport::TestCase
fixtures :projects
-
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
REPOSITORY_PATH.gsub!(/\/+/, '/')
def setup
- @project = Project.find(1)
- assert @repository = Repository::Bazaar.create(:project => @project, :url => "file:///#{REPOSITORY_PATH}")
+ @project = Project.find(3)
+ @repository = Repository::Bazaar.create(
+ :project => @project, :url => "file:///#{REPOSITORY_PATH}",
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@@ -38,7 +41,7 @@
assert_equal 9, @repository.changes.count
assert_equal 'Initial import', @repository.changesets.find_by_revision('1').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 5
@@ -49,7 +52,7 @@
@repository.fetch_changesets
assert_equal 4, @repository.changesets.count
end
-
+
def test_entries
entries = @repository.entries
assert_equal 2, entries.size
@@ -68,19 +71,6 @@
assert_equal 'file', entries.last.kind
assert_equal 'edit.png', entries.last.name
end
-
- def test_cat
- cat = @repository.scm.cat('directory/document.txt')
- assert cat =~ /Write the contents of a file as of a given revision to standard output/
- end
-
- def test_annotate
- annotate = @repository.scm.annotate('doc-mkdir.txt')
- assert_equal 17, annotate.lines.size
- assert_equal '1', annotate.revisions[0].identifier
- assert_equal 'jsmith@', annotate.revisions[0].author
- assert_equal 'mkdir', annotate.lines[0]
- end
else
puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_cvs_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_cvs_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -27,34 +27,64 @@
MODULE_NAME = 'test'
def setup
- @project = Project.find(1)
- assert @repository = Repository::Cvs.create(:project => @project,
- :root_url => REPOSITORY_PATH,
- :url => MODULE_NAME)
+ @project = Project.find(3)
+ @repository = Repository::Cvs.create(:project => @project,
+ :root_url => REPOSITORY_PATH,
+ :url => MODULE_NAME,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
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 fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_darcs_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_darcs_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_darcs_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -19,25 +19,28 @@
class RepositoryDarcsTest < ActiveSupport::TestCase
fixtures :projects
-
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
-
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Darcs.create(:project => @project, :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Darcs.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
+
assert_equal 6, @repository.changesets.count
assert_equal 13, @repository.changes.count
assert_equal "Initial commit.", @repository.changesets.find_by_revision('1').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 3
@@ -48,8 +51,10 @@
@repository.fetch_changesets
assert_equal 6, @repository.changesets.count
end
-
+
def test_deleted_files_should_not_be_listed
+ @repository.fetch_changesets
+ @repository.reload
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 fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_git_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_git_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_git_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -18,25 +18,29 @@
require File.expand_path('../../test_helper', __FILE__)
class RepositoryGitTest < ActiveSupport::TestCase
- fixtures :projects, :repositories, :enabled_modules, :users, :roles
-
+ fixtures :projects, :repositories, :enabled_modules, :users, :roles
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
-
+
+ FELIX_HEX = "Felix Sch\xC3\xA4fer"
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Git.create(:project => @project, :url => REPOSITORY_PATH)
+ Setting.commit_logs_encoding = 'UTF-8'
+ @project = Project.find(3)
+ @repository = Repository::Git.create(:project => @project, :url => REPOSITORY_PATH)
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
- assert_equal 15, @repository.changesets.count
- assert_equal 24, @repository.changes.count
-
+
+ assert_equal 16, @repository.changesets.count
+ assert_equal 25, @repository.changes.count
+
commit = @repository.changesets.find(:first, :order => 'committed_on ASC')
assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments
assert_equal "jsmith ", commit.committer
@@ -57,10 +61,20 @@
# Remove the 3 latest changesets
@repository.changesets.find(:all, :order => 'committed_on DESC', :limit => 3).each(&:destroy)
@repository.reload
- assert_equal 12, @repository.changesets.count
-
+ cs1 = @repository.changesets
+ assert_equal 13, cs1.count
+
+ rev_a_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal '4f26664364207fa8b1af9f8722647ab2d4ac5d43', rev_a_commit.revision
+ # Mon Jul 5 22:34:26 2010 +0200
+ rev_a_committed_on = Time.gm(2010, 7, 5, 20, 34, 26)
+ assert_equal '4f26664364207fa8b1af9f8722647ab2d4ac5d43', rev_a_commit.scmid
+ assert_equal rev_a_committed_on, rev_a_commit.committed_on
+ latest_rev = @repository.latest_changeset
+ assert_equal rev_a_committed_on, latest_rev.committed_on
+
@repository.fetch_changesets
- assert_equal 15, @repository.changesets.count
+ assert_equal 16, @repository.changesets.count
end
def test_find_changeset_by_name
@@ -103,6 +117,17 @@
assert c.event_title.include?('abc7234c:')
assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
end
+
+ def test_log_utf8
+ @repository.fetch_changesets
+ @repository.reload
+ str_felix_hex = FELIX_HEX
+ if str_felix_hex.respond_to?(:force_encoding)
+ str_felix_hex.force_encoding('UTF-8')
+ end
+ c = @repository.changesets.find_by_revision('ed5bb786bbda2dee66a2d50faf51429dbc043a7b')
+ assert_equal "#{str_felix_hex} ", c.committer
+ end
else
puts "Git test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -22,23 +22,23 @@
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
-
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
assert_equal 17, @repository.changesets.count
assert_equal 25, @repository.changes.count
assert_equal "Initial import.\nThe repository contains 3 files.",
@repository.changesets.find_by_revision('0').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 2
@@ -49,19 +49,6 @@
@repository.fetch_changesets
assert_equal 17, @repository.changesets.count
end
-
- def test_entries
- assert_equal 2, @repository.entries("sources", 2).size
- assert_equal 2, @repository.entries("sources", '400bb8672109').size
- assert_equal 1, @repository.entries("sources", 3).size
- assert_equal 1, @repository.entries("sources", 'b3a615152df8').size
- end
-
- def test_locate_on_outdated_repository
- assert_equal 1, @repository.entries("images", 0).size
- assert_equal 2, @repository.entries("images").size
- assert_equal 2, @repository.entries("images", 2).size
- end
def test_isodatesec
# Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
@@ -171,6 +158,43 @@
assert c.event_title.include?('123:abc400bb8672:')
assert_equal 'abc400bb8672', c.event_url[:rev]
end
+
+ def test_latest_changesets_with_limit
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('', nil, 2)
+ assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
+ end
+
+ def test_latest_changesets_with_filepath
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('README', nil)
+ assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
+
+ path = 'sql_escape/percent%dir/percent%file1.txt'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+ path = 'sql_escape/underscore_dir/understrike_file.txt'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|12 9|, changesets.collect(&:revision)
+ end
+
+ def test_latest_changesets_with_dirpath
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('images', nil)
+ assert_equal %w|1 0|, changesets.collect(&:revision)
+
+ path = 'sql_escape/percent%dir'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|13 11 10 9|, changesets.collect(&:revision)
+
+ path = 'sql_escape/underscore_dir'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|13 12 9|, changesets.collect(&:revision)
+ end
else
puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_subversion_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_subversion_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_subversion_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -21,8 +21,9 @@
fixtures :projects, :repositories, :enabled_modules, :users, :roles
def setup
- @project = Project.find(1)
- assert @repository = Repository::Subversion.create(:project => @project, :url => "file:///#{self.class.repository_path('subversion')}")
+ @project = Project.find(3)
+ assert @repository = Repository::Subversion.create(:project => @project,
+ :url => "file://#{self.class.repository_path('subversion')}")
end
if repository_configured?('subversion')
@@ -74,7 +75,7 @@
end
def test_directory_listing_with_square_brackets_in_base
- @project = Project.find(1)
+ @project = Project.find(3)
@repository = Repository::Subversion.create(:project => @project, :url => "file:///#{self.class.repository_path('subversion')}/subversion_test/[folder_with_brackets]")
@repository.fetch_changesets
@@ -136,6 +137,56 @@
assert c.event_title.include?('123456789:')
assert_equal '123456789', c.event_url[:rev]
end
+
+ def test_log_encoding_ignore_setting
+ with_settings :commit_logs_encoding => 'windows-1252' do
+ s1 = "\xC2\x80"
+ s2 = "\xc3\x82\xc2\x80"
+ if s1.respond_to?(:force_encoding)
+ s3 = s1
+ s4 = s2
+ s1.force_encoding('ASCII-8BIT')
+ s2.force_encoding('ASCII-8BIT')
+ s3.force_encoding('ISO-8859-1')
+ s4.force_encoding('UTF-8')
+ assert_equal s3.encode('UTF-8'), s4
+ end
+ c = Changeset.new(:repository => @repository,
+ :comments=>s2,
+ :revision=>'123',
+ :committed_on => Time.now)
+ assert c.save
+ assert_equal s2, c.comments
+ end
+ end
+
+ def test_previous
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('3')
+ assert_equal @repository.find_changeset_by_name('2'), changeset.previous
+ end
+
+ def test_previous_nil
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('1')
+ assert_nil changeset.previous
+ end
+
+ def test_next
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('2')
+ assert_equal @repository.find_changeset_by_name('3'), changeset.next
+ end
+
+ def test_next_nil
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('11')
+ assert_nil changeset.next
+ end
else
puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/repository_test.rb.svn-base
--- a/test/unit/.svn/text-base/repository_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/repository_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -125,16 +125,19 @@
assert_not_equal( comment, changeset.comments )
assert_equal( 'This is a loooooooooooooooooooooooooooong comment', changeset.comments )
end
-
+
def test_for_urls_strip
- repository = Repository::Cvs.create(:project => Project.find(4), :url => ' :pserver:login:password@host:/path/to/the/repository',
- :root_url => 'foo ')
+ repository = Repository::Cvs.create(
+ :project => Project.find(4),
+ :url => ' :pserver:login:password@host:/path/to/the/repository',
+ :root_url => 'foo ',
+ :log_encoding => 'UTF-8')
assert repository.save
repository.reload
assert_equal ':pserver:login:password@host:/path/to/the/repository', repository.url
assert_equal 'foo', repository.root_url
end
-
+
def test_manual_user_mapping
assert_no_difference "Changeset.count(:conditions => 'user_id <> 2')" do
c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 100, :comments => 'Committed by foo.')
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/.svn/text-base/user_test.rb.svn-base
--- a/test/unit/.svn/text-base/user_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/.svn/text-base/user_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -361,7 +361,6 @@
user = User.try_to_login("admin", "hello")
assert_kind_of User, user
assert_equal "admin", user.login
- assert_equal User.hash_password("hello"), user.hashed_password
end
def test_name_format
@@ -383,6 +382,22 @@
assert_equal nil, user
end
+ context ".try_to_login" do
+ context "with good credentials" do
+ should "return the user" do
+ user = User.try_to_login("admin", "admin")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ end
+ end
+
+ context "with wrong credentials" do
+ should "return nil" do
+ assert_nil User.try_to_login("admin", "foo")
+ end
+ end
+ end
+
if ldap_configured?
context "#try_to_login using LDAP" do
context "with failed connection to the LDAP server" do
@@ -672,6 +687,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,12 +720,45 @@
@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
should 'be added and tested'
end
end
+
+ def test_salt_unsalted_passwords
+ # Restore a user with an unsalted password
+ user = User.find(1)
+ user.salt = nil
+ user.hashed_password = User.hash_password("unsalted")
+ user.save!
+
+ User.salt_unsalted_passwords!
+
+ user.reload
+ # Salt added
+ assert !user.salt.blank?
+ # Password still valid
+ assert user.check_password?("unsalted")
+ assert_equal user, User.try_to_login(user.login, "unsalted")
+ end
if Object.const_defined?(:OpenID)
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/changeset_test.rb
--- a/test/unit/changeset_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/changeset_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -72,24 +72,40 @@
Setting.commit_ref_keywords = '*'
Setting.commit_logtime_enabled = '1'
- c = Changeset.new(:repository => Project.find(1).repository,
- :committed_on => 24.hours.ago,
- :comments => 'Worked on this issue #1 @2h',
- :revision => '520',
- :user => User.find(2))
- assert_difference 'TimeEntry.count' do
- c.scan_comment_for_issue_ids
+ {
+ '2' => 2.0,
+ '2h' => 2.0,
+ '2hours' => 2.0,
+ '15m' => 0.25,
+ '15min' => 0.25,
+ '3h15' => 3.25,
+ '3h15m' => 3.25,
+ '3h15min' => 3.25,
+ '3:15' => 3.25,
+ '3.25' => 3.25,
+ '3.25h' => 3.25,
+ '3,25' => 3.25,
+ '3,25h' => 3.25,
+ }.each do |syntax, expected_hours|
+ c = Changeset.new(:repository => Project.find(1).repository,
+ :committed_on => 24.hours.ago,
+ :comments => "Worked on this issue #1 @#{syntax}",
+ :revision => '520',
+ :user => User.find(2))
+ assert_difference 'TimeEntry.count' do
+ c.scan_comment_for_issue_ids
+ end
+ assert_equal [1], c.issue_ids.sort
+
+ time = TimeEntry.first(:order => 'id desc')
+ assert_equal 1, time.issue_id
+ assert_equal 1, time.project_id
+ assert_equal 2, time.user_id
+ assert_equal expected_hours, time.hours, "@#{syntax} should be logged as #{expected_hours} hours but was #{time.hours}"
+ assert_equal Date.yesterday, time.spent_on
+ assert time.activity.is_default?
+ assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
end
- assert_equal [1], c.issue_ids.sort
-
- time = TimeEntry.first(:order => 'id desc')
- assert_equal 1, time.issue_id
- assert_equal 1, time.project_id
- assert_equal 2, time.user_id
- assert_equal 2.0, time.hours
- assert_equal Date.yesterday, time.spent_on
- assert time.activity.is_default?
- assert time.comments.include?('r520'), "r520 was expected in time_entry comments: #{time.comments}"
end
def test_ref_keywords_closing_with_timelog
@@ -100,7 +116,7 @@
c = Changeset.new(:repository => Project.find(1).repository,
:committed_on => Time.now,
- :comments => 'This is a comment. Fixes #1 @2.5, #2 @1',
+ :comments => 'This is a comment. Fixes #1 @4.5, #2 @1',
:user => User.find(2))
assert_difference 'TimeEntry.count', 2 do
c.scan_comment_for_issue_ids
@@ -169,12 +185,12 @@
assert_equal [2], c.issue_ids.sort
assert c.issues.first.project != c.project
end
-
+
def test_text_tag_revision
c = Changeset.new(:revision => '520')
assert_equal 'r520', c.text_tag
end
-
+
def test_text_tag_hash
c = Changeset.new(:scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518', :revision => '7234cb2750b63f47bff735edc50a1c0a433c2518')
assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
@@ -204,19 +220,67 @@
changeset = Changeset.find_by_revision('10')
assert_nil changeset.next
end
-
+
def test_comments_should_be_converted_to_utf8
- with_settings :commit_logs_encoding => 'ISO-8859-1' do
- c = Changeset.new
- c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ proj = Project.find(3)
+ str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'ISO-8859-1' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => str)
+ assert( c.save )
assert_equal "Texte encodé en ISO-8859-1.", c.comments
- end
end
-
+
def test_invalid_utf8_sequences_in_comments_should_be_stripped
- c = Changeset.new
- c.comments = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
- assert_equal "Texte encod en ISO-8859-1.", c.comments
+ proj = Project.find(3)
+ str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'UTF-8' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => str)
+ assert( c.save )
+ if str.respond_to?(:force_encoding)
+ assert_equal "Texte encod? en ISO-8859-1.", c.comments
+ else
+ assert_equal "Texte encod en ISO-8859-1.", c.comments
+ end
+ end
+
+ def test_comments_should_be_converted_all_latin1_to_utf8
+ s1 = "\xC2\x80"
+ s2 = "\xc3\x82\xc2\x80"
+ if s1.respond_to?(:force_encoding)
+ s3 = s1
+ s4 = s2
+ s1.force_encoding('ASCII-8BIT')
+ s2.force_encoding('ASCII-8BIT')
+ s3.force_encoding('ISO-8859-1')
+ s4.force_encoding('UTF-8')
+ assert_equal s3.encode('UTF-8'), s4
+ end
+ proj = Project.find(3)
+ r = Repository::Bazaar.create!(
+ :project => proj, :url => '/tmp/test/bazaar',
+ :log_encoding => 'ISO-8859-1' )
+ assert r
+ c = Changeset.new(:repository => r,
+ :committed_on => Time.now,
+ :revision => '123',
+ :scmid => '12345',
+ :comments => s1)
+ assert( c.save )
+ assert_equal s2, c.comments
end
def test_identifier
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/helpers/.svn/all-wcprops
--- a/test/unit/helpers/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/helpers/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 42
-/svn/!svn/ver/4696/trunk/test/unit/helpers
+/svn/!svn/ver/4982/trunk/test/unit/helpers
+END
+repository_helper_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 68
+/svn/!svn/ver/4932/trunk/test/unit/helpers/repository_helper_test.rb
END
custom_fields_helper_test.rb
K 25
@@ -25,7 +31,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/4982/trunk/test/unit/helpers/application_helper_test.rb
END
search_helper_test.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/helpers/.svn/entries
--- a/test/unit/helpers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/helpers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/unit/helpers
http://redmine.rubyforge.org/svn
-2011-01-11T16:03:24.486964Z
-4696
+2011-03-01T10:27:30.170724Z
+4982
tmaruyama
@@ -26,13 +26,47 @@
e93f8b46-1217-0410-a6f0-8f06a7374b81
+repository_helper_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+657e0f9ae00af3978571139525631dcc
+2011-02-23T07:04:52.071012Z
+4932
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2288
+
custom_fields_helper_test.rb
file
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
0091346b4a944910faf5733e2ed88a76
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +100,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
ac087c4ae8e6354c77ef7189351ce220
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +134,7 @@
-2010-09-23T14:37:45.483825Z
+2011-03-03T11:05:08.000000Z
2c72db60f744a7dec4600df692c40766
2010-08-11T14:42:10.119704Z
3936
@@ -134,10 +168,10 @@
-2011-01-13T14:08:13.000000Z
-29c11d5b78186bda781c09791622a62f
-2011-01-11T16:03:24.486964Z
-4696
+2011-03-03T11:40:17.000000Z
+1f311492ce81d8708bef3193e684f98d
+2011-03-01T10:27:30.170724Z
+4982
tmaruyama
has-props
@@ -160,7 +194,7 @@
-33335
+35024
search_helper_test.rb
file
@@ -168,7 +202,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
9eb29557d249537fed237c15e1b1b65b
2010-12-12T23:24:34.194336Z
4509
@@ -202,7 +236,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
fd65c7c018eb59b2d8697ebeb6b7ba71
2010-12-12T23:24:34.194336Z
4509
@@ -236,7 +270,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
93f6f6ca679f5c32988254776b6d09ae
2010-12-12T23:24:34.194336Z
4509
@@ -270,7 +304,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
b26d2e82551d9f01c0394400ffd85136
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/helpers/.svn/text-base/application_helper_test.rb.svn-base Thu Mar 03 12:02:03 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',
@@ -263,7 +292,9 @@
'commit:20080308225258-98289-abcd456efg.gz' => changeset_link,
}
@project = Project.find(3)
- r = Repository::Darcs.create!(:project => @project, :url => '/tmp/test/darcs')
+ r = Repository::Darcs.create!(
+ :project => @project, :url => '/tmp/test/darcs',
+ :log_encoding => 'UTF-8')
assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/helpers/.svn/text-base/repository_helper_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/helpers/.svn/text-base/repository_helper_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,68 @@
+# 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 RepositoryHelperTest < HelperTestCase
+ include RepositoriesHelper
+
+ def test_from_latin1_to_utf8
+ with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
+ s1 = "Texte encod\xc3\xa9"
+ s2 = "Texte encod\xe9"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+
+ def test_from_euc_jp_to_utf8
+ with_settings :repositories_encodings => 'UTF-8,EUC-JP' do
+ s1 = "\xe3\x83\xac\xe3\x83\x83\xe3\x83\x89\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xb3"
+ s2 = "\xa5\xec\xa5\xc3\xa5\xc9\xa5\xde\xa5\xa4\xa5\xf3"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+
+ def test_to_utf8_should_be_converted_all_latin1_to_utf8
+ with_settings :repositories_encodings => 'ISO-8859-1' do
+ s1 = "\xc3\x82\xc2\x80"
+ s2 = "\xC2\x80"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+end
+
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/helpers/application_helper_test.rb
--- a/test/unit/helpers/application_helper_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/helpers/application_helper_test.rb Thu Mar 03 12:02:03 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',
@@ -263,7 +292,9 @@
'commit:20080308225258-98289-abcd456efg.gz' => changeset_link,
}
@project = Project.find(3)
- r = Repository::Darcs.create!(:project => @project, :url => '/tmp/test/darcs')
+ r = Repository::Darcs.create!(
+ :project => @project, :url => '/tmp/test/darcs',
+ :log_encoding => 'UTF-8')
assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/helpers/repository_helper_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/helpers/repository_helper_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,68 @@
+# 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 RepositoryHelperTest < HelperTestCase
+ include RepositoriesHelper
+
+ def test_from_latin1_to_utf8
+ with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
+ s1 = "Texte encod\xc3\xa9"
+ s2 = "Texte encod\xe9"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+
+ def test_from_euc_jp_to_utf8
+ with_settings :repositories_encodings => 'UTF-8,EUC-JP' do
+ s1 = "\xe3\x83\xac\xe3\x83\x83\xe3\x83\x89\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xb3"
+ s2 = "\xa5\xec\xa5\xc3\xa5\xc9\xa5\xde\xa5\xa4\xa5\xf3"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+
+ def test_to_utf8_should_be_converted_all_latin1_to_utf8
+ with_settings :repositories_encodings => 'ISO-8859-1' do
+ s1 = "\xc3\x82\xc2\x80"
+ s2 = "\xC2\x80"
+ s3 = s2
+ if s1.respond_to?(:force_encoding)
+ s1.force_encoding("UTF-8")
+ s2.force_encoding("ASCII-8BIT")
+ s3.force_encoding("UTF-8")
+ end
+ assert_equal s1, to_utf8(s2)
+ assert_equal s1, to_utf8(s3)
+ end
+ end
+end
+
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/issue_nested_set_test.rb
--- a/test/unit/issue_nested_set_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/issue_nested_set_test.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/unit/issue_status_test.rb
--- a/test/unit/issue_status_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/issue_status_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -18,7 +18,7 @@
require File.expand_path('../../test_helper', __FILE__)
class IssueStatusTest < ActiveSupport::TestCase
- fixtures :issue_statuses, :issues
+ fixtures :issue_statuses, :issues, :roles, :trackers
def test_create
status = IssueStatus.new :name => "Assigned"
@@ -68,6 +68,30 @@
status.reload
assert status.is_default?
end
+
+ def test_new_statuses_allowed_to
+ Workflow.delete_all
+
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+ status = IssueStatus.find(1)
+ role = Role.find(1)
+ tracker = Tracker.find(1)
+
+ assert_equal [2], status.new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+ assert_equal [2], status.find_new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+
+ assert_equal [2, 3], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+ assert_equal [2, 3], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+
+ assert_equal [2, 4], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+ assert_equal [2, 4], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+
+ assert_equal [2, 3, 4, 5], status.new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ assert_equal [2, 3, 4, 5], status.find_new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+ end
context "#update_done_ratios" do
setup do
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/issue_test.rb
--- a/test/unit/issue_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/issue_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
+# 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
@@ -210,6 +210,33 @@
assert_equal IssueCategory.find(1).assigned_to, issue.assigned_to
end
+
+
+ def test_new_statuses_allowed_to
+ Workflow.delete_all
+
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+ Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+ status = IssueStatus.find(1)
+ role = Role.find(1)
+ tracker = Tracker.find(1)
+ user = User.find(2)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1)
+ assert_equal [1, 2], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user)
+ assert_equal [1, 2, 3], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :assigned_to => user)
+ assert_equal [1, 2, 4], issue.new_statuses_allowed_to(user).map(&:id)
+
+ issue = Issue.generate!(:tracker => tracker, :status => status, :project_id => 1, :author => user, :assigned_to => user)
+ assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
+ end
+
def test_copy
issue = Issue.new.copy_from(1)
assert issue.save
@@ -594,6 +621,29 @@
assert ActionMailer::Base.deliveries.empty?
end
+ def test_journalized_description
+ IssueCustomField.delete_all
+
+ i = Issue.first
+ old_description = i.description
+ new_description = "This is the new description"
+
+ i.init_journal(User.find(2))
+ i.description = new_description
+ assert_difference 'Journal.count', 1 do
+ assert_difference 'JournalDetail.count', 1 do
+ i.save!
+ end
+ end
+
+ detail = JournalDetail.first(:order => 'id DESC')
+ assert_equal i, detail.journal.journalized
+ assert_equal 'attr', detail.property
+ assert_equal 'description', detail.prop_key
+ assert_equal old_description, detail.old_value
+ assert_equal new_description, detail.value
+ end
+
def test_saving_twice_should_not_duplicate_journal_details
i = Issue.find(:first)
i.init_journal(User.find(2), 'Some notes')
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/.svn/all-wcprops
--- a/test/unit/lib/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/.svn/all-wcprops Thu Mar 03 12:02:03 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/4964/trunk/test/unit/lib
END
redmine_test.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/.svn/entries
--- a/test/unit/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/unit/lib
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-28T14:12:47.115180Z
+4964
tmaruyama
@@ -35,7 +35,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
eec42202798f1936d0e12c27f43f9add
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/all-wcprops
--- a/test/unit/lib/redmine/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,13 @@
K 25
svn:wc:ra_dav:version-url
V 46
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine
+/svn/!svn/ver/4964/trunk/test/unit/lib/redmine
+END
+wiki_formatting.rb
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting.rb
END
menu_manager_test.rb
K 25
@@ -15,17 +21,11 @@
V 61
/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/plugin_test.rb
END
-wiki_formatting.rb
-K 25
-svn:wc:ra_dav:version-url
-V 65
-/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/wiki_formatting.rb
-END
i18n_test.rb
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4679/trunk/test/unit/lib/redmine/i18n_test.rb
+/svn/!svn/ver/4894/trunk/test/unit/lib/redmine/i18n_test.rb
END
hook_test.rb
K 25
@@ -51,17 +51,29 @@
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/4949/trunk/test/unit/lib/redmine/configuration_test.rb
+END
mime_type_test.rb
K 25
svn:wc:ra_dav:version-url
V 64
/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/mime_type_test.rb
END
+ciphering_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 64
+/svn/!svn/ver/4950/trunk/test/unit/lib/redmine/ciphering_test.rb
+END
unified_diff_test.rb
K 25
svn:wc:ra_dav:version-url
V 67
-/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/unified_diff_test.rb
+/svn/!svn/ver/4929/trunk/test/unit/lib/redmine/unified_diff_test.rb
END
notifiable_test.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/entries
--- a/test/unit/lib/redmine/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine
http://redmine.rubyforge.org/svn
-2011-01-13T12:05:11.734883Z
-4705
+2011-02-28T14:12:47.115180Z
+4964
tmaruyama
@@ -32,10 +32,10 @@
-2011-01-13T14:08:14.000000Z
-9aeca8ed785b33fdf901312133798b8b
-2011-01-10T18:25:12.105765Z
-4679
+2011-03-03T11:40:17.000000Z
+4368129679eec86fab2cd631de3b8cc5
+2011-02-20T14:56:37.399906Z
+4894
jplang
has-props
@@ -58,7 +58,7 @@
-4202
+4952
scm
dir
@@ -69,7 +69,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
761d6ebcd277ba4a1d0a2216a7fe8925
2010-12-12T23:24:34.194336Z
4509
@@ -103,7 +103,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
2e952466cca65bea9ea095ad2ec01811
2010-12-12T23:24:34.194336Z
4509
@@ -137,7 +137,7 @@
-2011-01-13T14:08:14.000000Z
+2011-03-03T11:05:08.000000Z
161e4b78a0d1cdfd67d5bd54f6480726
2010-12-12T23:24:34.194336Z
4509
@@ -174,13 +174,81 @@
menu_manager
dir
+plugin_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+d2f2e4457ed4eda1b5efb8a41a3de255
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4168
+
+menu_manager_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+1a6043d0994b5fb4a09f3962ab5542ce
+2010-12-12T23:24:34.194336Z
+4509
+jbbarth
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1044
+
wiki_formatting.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
22afe4f1981d3d856beef3275f95f243
2010-12-12T23:24:34.194336Z
4509
@@ -208,81 +276,13 @@
1966
-plugin_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-d2f2e4457ed4eda1b5efb8a41a3de255
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4168
-
-menu_manager_test.rb
-file
-
-
-
-
-2011-01-13T14:09:08.000000Z
-1a6043d0994b5fb4a09f3962ab5542ce
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1044
-
hook_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
6b610cfc1e3e51f457eea06a6e6fb9a0
2010-12-12T23:24:34.194336Z
4509
@@ -310,16 +310,13 @@
5741
-helpers
-dir
-
access_control_test.rb
file
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
6682bde90d30369ef1d27b806391134f
2010-12-12T23:24:34.194336Z
4509
@@ -347,17 +344,88 @@
1801
+helpers
+dir
+
+configuration_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+d96ffe5035b073e1dffdb3f01fe8e06e
+2011-02-25T14:30:05.998365Z
+4949
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1877
+
+ciphering_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+c2c353211cdd7cf9a87b9102e26b8d14
+2011-02-26T13:09:25.657748Z
+4950
+jplang
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3125
+
unified_diff_test.rb
file
-2011-01-13T14:09:08.000000Z
-247766b1dcc53d063207850027e6f78d
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-03-03T11:40:17.000000Z
+6b58d3612b430c0757566b1cd6bfcda0
+2011-02-23T07:03:45.049119Z
+4929
+tmaruyama
has-props
@@ -379,7 +447,7 @@
-1923
+2455
notifiable_test.rb
file
@@ -387,7 +455,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
562f9308fbaa71c0ef605a5cfe24d3a5
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/prop-base/ciphering_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/prop-base/ciphering_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 13
+svn:eol-style
+V 6
+native
+END
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/text-base/ciphering_test.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/ciphering_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,84 @@
+# 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::CipheringTest < ActiveSupport::TestCase
+
+ def test_password_should_be_encrypted
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert r.read_attribute(:password).match(/\Aaes-256-cbc:.+\Z/)
+ end
+ end
+
+ def test_password_should_be_clear_with_blank_key
+ Redmine::Configuration.with 'database_cipher_key' => '' do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert_equal 'foo', r.read_attribute(:password)
+ end
+ end
+
+ def test_password_should_be_clear_with_nil_key
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert_equal 'foo', r.read_attribute(:password)
+ end
+ end
+
+ def test_unciphered_password_should_be_readable
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ r = Repository::Subversion.generate!(:password => 'clear')
+ end
+
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'clear', r.password
+ end
+ end
+
+ def test_encrypt_all
+ Repository.delete_all
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ Repository::Subversion.generate!(:password => 'foo')
+ Repository::Subversion.generate!(:password => 'bar')
+ end
+
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ assert Repository.encrypt_all(:password)
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'bar', r.password
+ assert r.read_attribute(:password).match(/\Aaes-256-cbc:.+\Z/)
+ end
+ end
+
+ def test_decrypt_all
+ Repository.delete_all
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ Repository::Subversion.generate!(:password => 'foo')
+ Repository::Subversion.generate!(:password => 'bar')
+
+ assert Repository.decrypt_all(:password)
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'bar', r.password
+ assert_equal 'bar', r.read_attribute(:password)
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,61 @@
+# 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
+
+ def test_with
+ load_conf('default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ @conf.with 'somesetting' => 'bar' do
+ assert_equal 'bar', @conf['somesetting']
+ end
+ assert_equal 'foo', @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 fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base
--- a/test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/i18n_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -58,13 +58,36 @@
end
end
+ def test_time_format
+ set_language_if_valid 'en'
+ now = Time.parse('2011-02-20 15:45:22')
+ with_settings :time_format => '%H:%M' do
+ with_settings :date_format => '' do
+ assert_equal '02/20/2011 15:45', format_time(now)
+ assert_equal '15:45', format_time(now, false)
+ end
+
+ with_settings :date_format => '%Y-%m-%d' do
+ assert_equal '2011-02-20 15:45', format_time(now)
+ assert_equal '15:45', format_time(now, false)
+ end
+ end
+ end
+
def test_time_format_default
set_language_if_valid 'en'
- now = Time.now
- Setting.date_format = ''
- Setting.time_format = ''
- assert_equal I18n.l(now), format_time(now)
- assert_equal I18n.l(now, :format => :time), format_time(now, false)
+ now = Time.parse('2011-02-20 15:45:22')
+ with_settings :time_format => '' do
+ with_settings :date_format => '' do
+ assert_equal '02/20/2011 03:45 pm', format_time(now)
+ assert_equal '03:45 pm', format_time(now, false)
+ end
+
+ with_settings :date_format => '%Y-%m-%d' do
+ assert_equal '2011-02-20 03:45 pm', format_time(now)
+ assert_equal '03:45 pm', format_time(now, false)
+ end
+ end
end
def test_time_format
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base
--- a/test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/.svn/text-base/unified_diff_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -60,8 +60,39 @@
assert_equal 1, diff.size
end
+ def test_one_line_new_files
+ diff = Redmine::UnifiedDiff.new(<<-DIFF
+diff -r 000000000000 -r ea98b14f75f0 README1
+--- /dev/null
++++ b/README1
+@@ -0,0 +1,1 @@
++test1
+diff -r 000000000000 -r ea98b14f75f0 README2
+--- /dev/null
++++ b/README2
+@@ -0,0 +1,1 @@
++test2
+diff -r 000000000000 -r ea98b14f75f0 README3
+--- /dev/null
++++ b/README3
+@@ -0,0 +1,3 @@
++test4
++test5
++test6
+diff -r 000000000000 -r ea98b14f75f0 README4
+--- /dev/null
++++ b/README4
+@@ -0,0 +1,3 @@
++test4
++test5
++test6
+DIFF
+ )
+ assert_equal 4, diff.size
+ end
+
private
-
+
def read_diff_fixture(filename)
File.new(File.join(File.dirname(__FILE__), '/../../../fixtures/diffs', filename)).read
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/ciphering_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/ciphering_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,84 @@
+# 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::CipheringTest < ActiveSupport::TestCase
+
+ def test_password_should_be_encrypted
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert r.read_attribute(:password).match(/\Aaes-256-cbc:.+\Z/)
+ end
+ end
+
+ def test_password_should_be_clear_with_blank_key
+ Redmine::Configuration.with 'database_cipher_key' => '' do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert_equal 'foo', r.read_attribute(:password)
+ end
+ end
+
+ def test_password_should_be_clear_with_nil_key
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ r = Repository::Subversion.generate!(:password => 'foo')
+ assert_equal 'foo', r.password
+ assert_equal 'foo', r.read_attribute(:password)
+ end
+ end
+
+ def test_unciphered_password_should_be_readable
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ r = Repository::Subversion.generate!(:password => 'clear')
+ end
+
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'clear', r.password
+ end
+ end
+
+ def test_encrypt_all
+ Repository.delete_all
+ Redmine::Configuration.with 'database_cipher_key' => nil do
+ Repository::Subversion.generate!(:password => 'foo')
+ Repository::Subversion.generate!(:password => 'bar')
+ end
+
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ assert Repository.encrypt_all(:password)
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'bar', r.password
+ assert r.read_attribute(:password).match(/\Aaes-256-cbc:.+\Z/)
+ end
+ end
+
+ def test_decrypt_all
+ Repository.delete_all
+ Redmine::Configuration.with 'database_cipher_key' => 'secret' do
+ Repository::Subversion.generate!(:password => 'foo')
+ Repository::Subversion.generate!(:password => 'bar')
+
+ assert Repository.decrypt_all(:password)
+ r = Repository.first(:order => 'id DESC')
+ assert_equal 'bar', r.password
+ assert_equal 'bar', r.read_attribute(:password)
+ end
+ end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,61 @@
+# 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
+
+ def test_with
+ load_conf('default.yml', 'test')
+ assert_equal 'foo', @conf['somesetting']
+ @conf.with 'somesetting' => 'bar' do
+ assert_equal 'bar', @conf['somesetting']
+ end
+ assert_equal 'foo', @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 fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/helpers/.svn/entries
--- a/test/unit/lib/redmine/helpers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/helpers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
1d6b4373836fef676ab3a28235c140b8
2010-12-29T20:29:42.467534Z
4582
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/i18n_test.rb
--- a/test/unit/lib/redmine/i18n_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/i18n_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -58,13 +58,36 @@
end
end
+ def test_time_format
+ set_language_if_valid 'en'
+ now = Time.parse('2011-02-20 15:45:22')
+ with_settings :time_format => '%H:%M' do
+ with_settings :date_format => '' do
+ assert_equal '02/20/2011 15:45', format_time(now)
+ assert_equal '15:45', format_time(now, false)
+ end
+
+ with_settings :date_format => '%Y-%m-%d' do
+ assert_equal '2011-02-20 15:45', format_time(now)
+ assert_equal '15:45', format_time(now, false)
+ end
+ end
+ end
+
def test_time_format_default
set_language_if_valid 'en'
- now = Time.now
- Setting.date_format = ''
- Setting.time_format = ''
- assert_equal I18n.l(now), format_time(now)
- assert_equal I18n.l(now, :format => :time), format_time(now, false)
+ now = Time.parse('2011-02-20 15:45:22')
+ with_settings :time_format => '' do
+ with_settings :date_format => '' do
+ assert_equal '02/20/2011 03:45 pm', format_time(now)
+ assert_equal '03:45 pm', format_time(now, false)
+ end
+
+ with_settings :date_format => '%Y-%m-%d' do
+ assert_equal '2011-02-20 03:45 pm', format_time(now)
+ assert_equal '03:45 pm', format_time(now, false)
+ end
+ end
end
def test_time_format
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/menu_manager/.svn/entries
--- a/test/unit/lib/redmine/menu_manager/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/menu_manager/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
fdf6a6902bb3de694d7a4fabbdfe2798
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:07.000000Z
+2011-03-03T11:05:08.000000Z
fdde38850555e88b18c742d7d15be035
2010-12-12T23:24:34.194336Z
4509
@@ -100,7 +100,7 @@
-2011-01-13T14:09:07.000000Z
+2011-03-03T11:05:08.000000Z
18c96ac64de73c38eb9d766226b34ca7
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/.svn/all-wcprops
--- a/test/unit/lib/redmine/scm/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/.svn/all-wcprops Thu Mar 03 12:02:03 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/4964/trunk/test/unit/lib/redmine/scm
END
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/.svn/entries
--- a/test/unit/lib/redmine/scm/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
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-28T14:12:47.115180Z
+4964
tmaruyama
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/.svn/all-wcprops
--- a/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,25 +1,31 @@
K 25
svn:wc:ra_dav:version-url
V 59
-/svn/!svn/ver/4705/trunk/test/unit/lib/redmine/scm/adapters
+/svn/!svn/ver/4964/trunk/test/unit/lib/redmine/scm/adapters
END
subversion_adapter_test.rb
K 25
svn:wc:ra_dav:version-url
V 86
-/svn/!svn/ver/4509/trunk/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
+/svn/!svn/ver/4825/trunk/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
+END
+bazaar_adapter_test.rb
+K 25
+svn:wc:ra_dav:version-url
+V 82
+/svn/!svn/ver/4836/trunk/test/unit/lib/redmine/scm/adapters/bazaar_adapter_test.rb
END
git_adapter_test.rb
K 25
svn:wc:ra_dav:version-url
V 79
-/svn/!svn/ver/4510/trunk/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
+/svn/!svn/ver/4964/trunk/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
END
mercurial_adapter_test.rb
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/4875/trunk/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
END
filesystem_adapter_test.rb
K 25
@@ -27,3 +33,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/4832/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 fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/.svn/entries
--- a/test/unit/lib/redmine/scm/adapters/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
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-28T14:12:47.115180Z
+4964
tmaruyama
@@ -32,11 +32,11 @@
-2011-01-13T14:08:13.000000Z
-765ef194c70144742d0b8bfcb99f6627
-2010-12-12T23:24:34.194336Z
-4509
-jbbarth
+2011-03-03T11:40:17.000000Z
+f0de1284b35555e358dcb810fff1e7e5
+2011-02-15T02:12:39.628343Z
+4825
+tmaruyama
has-props
@@ -58,7 +58,41 @@
-1221
+2221
+
+bazaar_adapter_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+2f30e1187cf8e155707fdf3ff7925f55
+2011-02-15T11:05:33.284244Z
+4836
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1755
git_adapter_test.rb
file
@@ -66,11 +100,11 @@
-2011-01-13T14:08:13.000000Z
-2e3d6f99dd454ee396770a707ea169db
-2010-12-12T23:24:45.195624Z
-4510
-jbbarth
+2011-03-03T11:40:17.000000Z
+3d2db23c9a95bf5342365aa4580873c7
+2011-02-28T14:12:47.115180Z
+4964
+tmaruyama
has-props
@@ -92,7 +126,7 @@
-3016
+4592
mercurial_adapter_test.rb
file
@@ -100,10 +134,10 @@
-2011-01-13T14:08:13.000000Z
-7af2ec05aa23ebf083f7aa58bca43f95
-2011-01-13T12:05:11.734883Z
-4705
+2011-03-03T11:40:17.000000Z
+20194ed3de36e9107b3279bb4ae596e9
+2011-02-18T07:15:58.762873Z
+4875
tmaruyama
has-props
@@ -126,7 +160,7 @@
-6096
+10201
filesystem_adapter_test.rb
file
@@ -134,7 +168,7 @@
-2011-01-13T14:08:13.000000Z
+2011-03-03T11:05:08.000000Z
61cf9f9a3628f6766845641d99adaa83
2010-12-12T23:24:34.194336Z
4509
@@ -162,3 +196,71 @@
1449
+cvs_adapter_test.rb
+file
+
+
+
+
+2011-03-03T11:40:17.000000Z
+ddf3ab1a187f29d3e377f684c2c0f18c
+2011-02-15T08:04:11.026838Z
+4832
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1844
+
+darcs_adapter_test.rb
+file
+
+
+
+
+2011-03-03T11:05:08.000000Z
+3a836e9a54b113ed5fe6490ce88ebebe
+2011-01-23T04:17:03.473127Z
+4748
+tmaruyama
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1649
+
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/.svn/text-base/bazaar_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/bazaar_adapter_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,54 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class BazaarAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
+ REPOSITORY_PATH.gsub!(/\/+/, '/')
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::BazaarAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "Bazaar (bzr) 2.1.2\n" => [2,1,2],
+ "2.1.1\n1.7\n1.8" => [2,1,1],
+ "2.0.1\r\n1.8.1\r\n1.9.1" => [2,0,1]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ def test_cat
+ cat = @adapter.cat('directory/document.txt')
+ assert cat =~ /Write the contents of a file as of a given revision to standard output/
+ end
+
+ def test_annotate
+ annotate = @adapter.annotate('doc-mkdir.txt')
+ assert_equal 17, annotate.lines.size
+ assert_equal '1', annotate.revisions[0].identifier
+ assert_equal 'jsmith@', annotate.revisions[0].author
+ assert_equal 'mkdir', annotate.lines[0]
+ end
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ end
+ else
+ puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class BazaarMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,59 @@
+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'
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
+ MODULE_NAME = 'test'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "\nConcurrent Versions System (CVS) 1.12.13 (client/server)\n" => [1,12,13],
+ "\r\n1.12.12\r\n1.12.11" => [1,12,12],
+ "1.12.11\r\n1.12.10\r\n" => [1,12,11]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ 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
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/git_adapter_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -1,71 +1,120 @@
# encoding: utf-8
+# This file includes UTF-8 "Felix Schäfer".
+# We need to consider Ruby 1.9 compatibility.
+
require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
-class GitAdapterTest < ActiveSupport::TestCase
- REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
+ class GitAdapterTest < ActiveSupport::TestCase
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
- if File.directory?(REPOSITORY_PATH)
- def setup
- @adapter = Redmine::Scm::Adapters::GitAdapter.new(REPOSITORY_PATH)
+ FELIX_UTF8 = "Felix Schäfer"
+ FELIX_HEX = "Felix Sch\xC3\xA4fer"
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::GitAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "git version 1.7.3.4\n" => [1,7,3,4],
+ "1.6.1\n1.7\n1.8" => [1,6,1],
+ "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ def test_branches
+ assert_equal @adapter.branches, ['master', 'test-latin-1', 'test_branch']
+ end
+
+ def test_getting_all_revisions
+ assert_equal 16, @adapter.revisions('',nil,nil,:all => true).length
+ end
+
+ def test_getting_certain_revisions
+ assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
+ end
+
+ def test_getting_revisions_with_spaces_in_filename
+ assert_equal 1, @adapter.revisions("filemane with spaces.txt",
+ nil, nil, :all => true).length
+ end
+
+ def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
+ assert_equal " filename with a leading space.txt ",
+ @adapter.revisions(" filename with a leading space.txt ",
+ nil, nil, :all => true)[0].paths[0][:path]
+ end
+
+ def test_getting_entries_with_leading_and_trailing_spaces_in_filename
+ assert_equal " filename with a leading space.txt ",
+ @adapter.entries('',
+ '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
+ end
+
+ def test_annotate
+ annotate = @adapter.annotate('sources/watchers_controller.rb')
+ assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
+ assert_equal 41, annotate.lines.size
+ assert_equal "# This program is free software; you can redistribute it and/or", annotate.lines[4].strip
+ assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
+ annotate.revisions[4].identifier
+ assert_equal "jsmith", annotate.revisions[4].author
+ end
+
+ def test_annotate_moved_file
+ annotate = @adapter.annotate('renamed_test.txt')
+ assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
+ assert_equal 2, annotate.lines.size
+ end
+
+ def test_last_rev
+ last_rev = @adapter.lastrev("README",
+ "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
+ assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
+ assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
+ assert_equal "Adam Soltys ", last_rev.author
+ assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
+ end
+
+ def test_last_rev_with_spaces_in_filename
+ last_rev = @adapter.lastrev("filemane with spaces.txt",
+ "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
+ str_felix_utf8 = FELIX_UTF8
+ str_felix_hex = FELIX_HEX
+ last_rev_author = last_rev.author
+ if last_rev_author.respond_to?(:force_encoding)
+ last_rev_author.force_encoding('UTF-8')
+ end
+ assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
+ assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
+ assert_equal "#{str_felix_utf8} ",
+ last_rev.author
+ assert_equal "#{str_felix_hex} ",
+ last_rev.author
+ assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
+ end
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ end
+
+ else
+ puts "Git test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
end
+ end
- def test_branches
- assert_equal @adapter.branches, ['master', 'test_branch']
- end
-
- def test_getting_all_revisions
- assert_equal 15, @adapter.revisions('',nil,nil,:all => true).length
- end
-
- def test_getting_certain_revisions
- assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
- end
-
- def test_getting_revisions_with_spaces_in_filename
- assert_equal 1, @adapter.revisions("filemane with spaces.txt", nil, nil, :all => true).length
- end
-
- def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
- assert_equal " filename with a leading space.txt ", @adapter.revisions(" filename with a leading space.txt ", nil, nil, :all => true)[0].paths[0][:path]
- end
-
- def test_getting_entries_with_leading_and_trailing_spaces_in_filename
- assert_equal " filename with a leading space.txt ", @adapter.entries('', '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
- end
-
- def test_annotate
- annotate = @adapter.annotate('sources/watchers_controller.rb')
- assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
- assert_equal 41, annotate.lines.size
- assert_equal "# This program is free software; you can redistribute it and/or", annotate.lines[4].strip
- assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518", annotate.revisions[4].identifier
- assert_equal "jsmith", annotate.revisions[4].author
- end
-
- def test_annotate_moved_file
- annotate = @adapter.annotate('renamed_test.txt')
- assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
- assert_equal 2, annotate.lines.size
- end
-
- def test_last_rev
- last_rev = @adapter.lastrev("README", "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
- assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
- assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
- assert_equal "Adam Soltys ", last_rev.author
- assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
- end
-
- def test_last_rev_with_spaces_in_filename
- last_rev = @adapter.lastrev("filemane with spaces.txt", "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
- assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
- assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
- assert_equal "Felix Schäfer ", last_rev.author
- assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
- end
- else
- puts "Git test repository NOT FOUND. Skipping unit tests !!!"
- def test_fake; assert true end
+rescue LoadError
+ class GitMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
end
end
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/mercurial_adapter_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,7 @@
class MercurialAdapterTest < ActiveSupport::TestCase
- TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
+ HELPERS_DIR = Redmine::Scm::Adapters::MercurialAdapter::HELPERS_DIR
TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION
@@ -13,6 +13,7 @@
if File.directory?(REPOSITORY_PATH)
def setup
@adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
+ @diff_c_support = true
end
def test_hgversion
@@ -42,6 +43,31 @@
end
end
+ def test_info
+ [REPOSITORY_PATH, REPOSITORY_PATH + "/",
+ REPOSITORY_PATH + "//"].each do |repo|
+ adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo)
+ repo_path = adp.info.root_url.gsub(/\\/, "/")
+ assert_equal REPOSITORY_PATH, repo_path
+ assert_equal '16', adp.info.lastrev.revision
+ assert_equal '4cddb4e45f52',adp.info.lastrev.scmid
+ end
+ end
+
+ def test_revisions
+ revisions = @adapter.revisions(nil, 2, 4)
+ assert_equal 3, revisions.size
+ assert_equal '2', revisions[0].revision
+ assert_equal '400bb8672109', revisions[0].scmid
+ assert_equal '4', revisions[2].revision
+ assert_equal 'def6d2f1254a', revisions[2].scmid
+
+ revisions = @adapter.revisions(nil, 2, 4, {:limit => 2})
+ assert_equal 2, revisions.size
+ assert_equal '2', revisions[0].revision
+ assert_equal '400bb8672109', revisions[0].scmid
+ end
+
def test_diff
if @adapter.class.client_version_above?([1, 2])
assert_nil @adapter.diff(nil, '100000')
@@ -49,7 +75,7 @@
assert_nil @adapter.diff(nil, '100000', '200000')
[2, '400bb8672109', '400', 400].each do |r1|
diff1 = @adapter.diff(nil, r1)
- if @adapter.class.client_version_above?([1, 2])
+ if @diff_c_support
assert_equal 28, diff1.size
buf = diff1[24].gsub(/\r\n|\r|\n/, "")
assert_equal "+ return true unless klass.respond_to?('watched_by')", buf
@@ -69,6 +95,17 @@
end
end
+ def test_diff_made_by_revision
+ if @diff_c_support
+ [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)
@@ -93,9 +130,12 @@
end
end
- # TODO filesize etc.
def test_entries
assert_nil @adapter.entries(nil, '100000')
+
+ assert_equal 1, @adapter.entries("sources", 3).size
+ assert_equal 1, @adapter.entries("sources", 'b3a615152df8').size
+
[2, '400bb8672109', '400', 400].each do |r|
entries1 = @adapter.entries(nil, r)
assert entries1
@@ -103,9 +143,15 @@
assert_equal 'sources', entries1[1].name
assert_equal 'sources', entries1[1].path
assert_equal 'dir', entries1[1].kind
- assert_equal 'README', entries1[2].name
- assert_equal 'README', entries1[2].path
- assert_equal 'file', entries1[2].kind
+ readme = entries1[2]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 27, readme.size
+ assert_equal '1', readme.lastrev.revision
+ assert_equal '9d5b5b004199', readme.lastrev.identifier
+ # 2007-12-14 10:24:01 +0100
+ assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
entries2 = @adapter.entries('sources', r)
assert entries2
@@ -119,6 +165,48 @@
end
end
+ def test_entries_tag
+ entries1 = @adapter.entries(nil, 'tag_test.00')
+ assert entries1
+ assert_equal 3, entries1.size
+ assert_equal 'sources', entries1[1].name
+ assert_equal 'sources', entries1[1].path
+ assert_equal 'dir', entries1[1].kind
+ readme = entries1[2]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 21, readme.size
+ assert_equal '0', readme.lastrev.revision
+ assert_equal '0885933ad4f6', readme.lastrev.identifier
+ # 2007-12-14 10:22:52 +0100
+ assert_equal Time.gm(2007, 12, 14, 9, 22, 52), readme.lastrev.time
+ end
+
+ def test_entries_branch
+ entries1 = @adapter.entries(nil, 'test-branch-00')
+ assert entries1
+ assert_equal 5, entries1.size
+ assert_equal 'sql_escape', entries1[2].name
+ assert_equal 'sql_escape', entries1[2].path
+ assert_equal 'dir', entries1[2].kind
+ readme = entries1[4]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 365, readme.size
+ assert_equal '8', readme.lastrev.revision
+ assert_equal 'c51f5bb613cd', readme.lastrev.identifier
+ # 2001-02-01 00:00:00 -0900
+ assert_equal Time.gm(2001, 2, 1, 9, 0, 0), readme.lastrev.time
+ end
+
+ def test_locate_on_outdated_repository
+ assert_equal 1, @adapter.entries("images", 0).size
+ assert_equal 2, @adapter.entries("images").size
+ assert_equal 2, @adapter.entries("images", 2).size
+ end
+
def test_access_by_nodeid
path = 'sources/welcome_controller.rb'
assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400bb8672109')
@@ -130,6 +218,28 @@
assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400')
end
+ def test_tags
+ assert_equal ['tag_test.00', 'tag-init-revision'], @adapter.tags
+ end
+
+ def test_tagmap
+ tm = { 'tag_test.00' => '6987191f453a',
+ 'tag-init-revision' => '0885933ad4f6' }
+ assert_equal tm, @adapter.tagmap
+ end
+
+ def test_branches
+ assert_equal ['default', 'branch (1)[2]&,%.-3_4', 'test-branch-00'],
+ @adapter.branches
+ end
+
+ def test_branchmap
+ bm = { 'default' => '4cddb4e45f52',
+ 'branch (1)[2]&,%.-3_4' => '933ca60293d7',
+ 'test-branch-00' => '3a330eb32958' }
+ assert_equal bm, @adapter.branchmap
+ end
+
private
def test_hgversion_for(hgversion, version)
@@ -138,7 +248,7 @@
end
def test_template_path_for(version, template)
- assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
+ assert_equal "#{HELPERS_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
@adapter.class.template_path_for(version)
assert File.exist?(@adapter.class.template_path_for(version))
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base
--- a/test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/.svn/text-base/subversion_adapter_test.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -17,15 +17,47 @@
require File.expand_path('../../../../../../test_helper', __FILE__)
-class SubversionAdapterTest < ActiveSupport::TestCase
+begin
+ require 'mocha'
+
+ class SubversionAdapterTest < ActiveSupport::TestCase
- if repository_configured?('subversion')
- def test_client_version
- v = Redmine::Scm::Adapters::SubversionAdapter.client_version
- assert v.is_a?(Array)
+ if repository_configured?('subversion')
+ def setup
+ repo_path = "file://#{self.class.repository_path('subversion')}"
+ @adapter = Redmine::Scm::Adapters::SubversionAdapter.new(repo_path)
+ end
+
+ def test_client_version
+ v = Redmine::Scm::Adapters::SubversionAdapter.client_version
+ assert v.is_a?(Array)
+ end
+
+ def test_scm_version
+ to_test = { "svn, version 1.6.13 (r1002816)\n" => [1,6,13],
+ "svn, versione 1.6.13 (r1002816)\n" => [1,6,13],
+ "1.6.1\n1.7\n1.8" => [1,6,1],
+ "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ private
+
+ def test_scm_version_for(scm_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_version)
+ assert_equal version, @adapter.class.svn_binary_version
+ end
+
+ else
+ puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
end
- else
- puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
- def test_fake; assert true end
+ end
+
+rescue LoadError
+ class SubversionMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/bazaar_adapter_test.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unit/lib/redmine/scm/adapters/bazaar_adapter_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,54 @@
+require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
+
+ class BazaarAdapterTest < ActiveSupport::TestCase
+
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
+ REPOSITORY_PATH.gsub!(/\/+/, '/')
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::BazaarAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "Bazaar (bzr) 2.1.2\n" => [2,1,2],
+ "2.1.1\n1.7\n1.8" => [2,1,1],
+ "2.0.1\r\n1.8.1\r\n1.9.1" => [2,0,1]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ def test_cat
+ cat = @adapter.cat('directory/document.txt')
+ assert cat =~ /Write the contents of a file as of a given revision to standard output/
+ end
+
+ def test_annotate
+ annotate = @adapter.annotate('doc-mkdir.txt')
+ assert_equal 17, annotate.lines.size
+ assert_equal '1', annotate.revisions[0].identifier
+ assert_equal 'jsmith@', annotate.revisions[0].author
+ assert_equal 'mkdir', annotate.lines[0]
+ end
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ end
+ else
+ puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
+ end
+ end
+
+rescue LoadError
+ class BazaarMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
+ end
+end
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,59 @@
+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'
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
+ MODULE_NAME = 'test'
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::CvsAdapter.new(MODULE_NAME, REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "\nConcurrent Versions System (CVS) 1.12.13 (client/server)\n" => [1,12,13],
+ "\r\n1.12.12\r\n1.12.11" => [1,12,12],
+ "1.12.11\r\n1.12.10\r\n" => [1,12,11]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ 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
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/git_adapter_test.rb
--- a/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -1,71 +1,120 @@
# encoding: utf-8
+# This file includes UTF-8 "Felix Schäfer".
+# We need to consider Ruby 1.9 compatibility.
+
require File.expand_path('../../../../../../test_helper', __FILE__)
+begin
+ require 'mocha'
-class GitAdapterTest < ActiveSupport::TestCase
- REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
+ class GitAdapterTest < ActiveSupport::TestCase
+ REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
- if File.directory?(REPOSITORY_PATH)
- def setup
- @adapter = Redmine::Scm::Adapters::GitAdapter.new(REPOSITORY_PATH)
+ FELIX_UTF8 = "Felix Schäfer"
+ FELIX_HEX = "Felix Sch\xC3\xA4fer"
+
+ if File.directory?(REPOSITORY_PATH)
+ def setup
+ @adapter = Redmine::Scm::Adapters::GitAdapter.new(REPOSITORY_PATH)
+ end
+
+ def test_scm_version
+ to_test = { "git version 1.7.3.4\n" => [1,7,3,4],
+ "1.6.1\n1.7\n1.8" => [1,6,1],
+ "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ def test_branches
+ assert_equal @adapter.branches, ['master', 'test-latin-1', 'test_branch']
+ end
+
+ def test_getting_all_revisions
+ assert_equal 16, @adapter.revisions('',nil,nil,:all => true).length
+ end
+
+ def test_getting_certain_revisions
+ assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
+ end
+
+ def test_getting_revisions_with_spaces_in_filename
+ assert_equal 1, @adapter.revisions("filemane with spaces.txt",
+ nil, nil, :all => true).length
+ end
+
+ def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
+ assert_equal " filename with a leading space.txt ",
+ @adapter.revisions(" filename with a leading space.txt ",
+ nil, nil, :all => true)[0].paths[0][:path]
+ end
+
+ def test_getting_entries_with_leading_and_trailing_spaces_in_filename
+ assert_equal " filename with a leading space.txt ",
+ @adapter.entries('',
+ '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
+ end
+
+ def test_annotate
+ annotate = @adapter.annotate('sources/watchers_controller.rb')
+ assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
+ assert_equal 41, annotate.lines.size
+ assert_equal "# This program is free software; you can redistribute it and/or", annotate.lines[4].strip
+ assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
+ annotate.revisions[4].identifier
+ assert_equal "jsmith", annotate.revisions[4].author
+ end
+
+ def test_annotate_moved_file
+ annotate = @adapter.annotate('renamed_test.txt')
+ assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
+ assert_equal 2, annotate.lines.size
+ end
+
+ def test_last_rev
+ last_rev = @adapter.lastrev("README",
+ "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
+ assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
+ assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
+ assert_equal "Adam Soltys ", last_rev.author
+ assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
+ end
+
+ def test_last_rev_with_spaces_in_filename
+ last_rev = @adapter.lastrev("filemane with spaces.txt",
+ "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
+ str_felix_utf8 = FELIX_UTF8
+ str_felix_hex = FELIX_HEX
+ last_rev_author = last_rev.author
+ if last_rev_author.respond_to?(:force_encoding)
+ last_rev_author.force_encoding('UTF-8')
+ end
+ assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
+ assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
+ assert_equal "#{str_felix_utf8} ",
+ last_rev.author
+ assert_equal "#{str_felix_hex} ",
+ last_rev.author
+ assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
+ end
+
+ private
+
+ def test_scm_version_for(scm_command_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
+ assert_equal version, @adapter.class.scm_command_version
+ end
+
+ else
+ puts "Git test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
end
+ end
- def test_branches
- assert_equal @adapter.branches, ['master', 'test_branch']
- end
-
- def test_getting_all_revisions
- assert_equal 15, @adapter.revisions('',nil,nil,:all => true).length
- end
-
- def test_getting_certain_revisions
- assert_equal 1, @adapter.revisions('','899a15d^','899a15d').length
- end
-
- def test_getting_revisions_with_spaces_in_filename
- assert_equal 1, @adapter.revisions("filemane with spaces.txt", nil, nil, :all => true).length
- end
-
- def test_getting_revisions_with_leading_and_trailing_spaces_in_filename
- assert_equal " filename with a leading space.txt ", @adapter.revisions(" filename with a leading space.txt ", nil, nil, :all => true)[0].paths[0][:path]
- end
-
- def test_getting_entries_with_leading_and_trailing_spaces_in_filename
- assert_equal " filename with a leading space.txt ", @adapter.entries('', '83ca5fd546063a3c7dc2e568ba3355661a9e2b2c')[3].name
- end
-
- def test_annotate
- annotate = @adapter.annotate('sources/watchers_controller.rb')
- assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
- assert_equal 41, annotate.lines.size
- assert_equal "# This program is free software; you can redistribute it and/or", annotate.lines[4].strip
- assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518", annotate.revisions[4].identifier
- assert_equal "jsmith", annotate.revisions[4].author
- end
-
- def test_annotate_moved_file
- annotate = @adapter.annotate('renamed_test.txt')
- assert_kind_of Redmine::Scm::Adapters::Annotate, annotate
- assert_equal 2, annotate.lines.size
- end
-
- def test_last_rev
- last_rev = @adapter.lastrev("README", "4f26664364207fa8b1af9f8722647ab2d4ac5d43")
- assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.scmid
- assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", last_rev.identifier
- assert_equal "Adam Soltys ", last_rev.author
- assert_equal "2009-06-24 05:27:38".to_time, last_rev.time
- end
-
- def test_last_rev_with_spaces_in_filename
- last_rev = @adapter.lastrev("filemane with spaces.txt", "ed5bb786bbda2dee66a2d50faf51429dbc043a7b")
- assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.scmid
- assert_equal "ed5bb786bbda2dee66a2d50faf51429dbc043a7b", last_rev.identifier
- assert_equal "Felix Schäfer ", last_rev.author
- assert_equal "2010-09-18 19:59:46".to_time, last_rev.time
- end
- else
- puts "Git test repository NOT FOUND. Skipping unit tests !!!"
- def test_fake; assert true end
+rescue LoadError
+ class GitMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
end
end
+
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb
--- a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -4,7 +4,7 @@
class MercurialAdapterTest < ActiveSupport::TestCase
- TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
+ HELPERS_DIR = Redmine::Scm::Adapters::MercurialAdapter::HELPERS_DIR
TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION
@@ -13,6 +13,7 @@
if File.directory?(REPOSITORY_PATH)
def setup
@adapter = Redmine::Scm::Adapters::MercurialAdapter.new(REPOSITORY_PATH)
+ @diff_c_support = true
end
def test_hgversion
@@ -42,6 +43,31 @@
end
end
+ def test_info
+ [REPOSITORY_PATH, REPOSITORY_PATH + "/",
+ REPOSITORY_PATH + "//"].each do |repo|
+ adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo)
+ repo_path = adp.info.root_url.gsub(/\\/, "/")
+ assert_equal REPOSITORY_PATH, repo_path
+ assert_equal '16', adp.info.lastrev.revision
+ assert_equal '4cddb4e45f52',adp.info.lastrev.scmid
+ end
+ end
+
+ def test_revisions
+ revisions = @adapter.revisions(nil, 2, 4)
+ assert_equal 3, revisions.size
+ assert_equal '2', revisions[0].revision
+ assert_equal '400bb8672109', revisions[0].scmid
+ assert_equal '4', revisions[2].revision
+ assert_equal 'def6d2f1254a', revisions[2].scmid
+
+ revisions = @adapter.revisions(nil, 2, 4, {:limit => 2})
+ assert_equal 2, revisions.size
+ assert_equal '2', revisions[0].revision
+ assert_equal '400bb8672109', revisions[0].scmid
+ end
+
def test_diff
if @adapter.class.client_version_above?([1, 2])
assert_nil @adapter.diff(nil, '100000')
@@ -49,7 +75,7 @@
assert_nil @adapter.diff(nil, '100000', '200000')
[2, '400bb8672109', '400', 400].each do |r1|
diff1 = @adapter.diff(nil, r1)
- if @adapter.class.client_version_above?([1, 2])
+ if @diff_c_support
assert_equal 28, diff1.size
buf = diff1[24].gsub(/\r\n|\r|\n/, "")
assert_equal "+ return true unless klass.respond_to?('watched_by')", buf
@@ -69,6 +95,17 @@
end
end
+ def test_diff_made_by_revision
+ if @diff_c_support
+ [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)
@@ -93,9 +130,12 @@
end
end
- # TODO filesize etc.
def test_entries
assert_nil @adapter.entries(nil, '100000')
+
+ assert_equal 1, @adapter.entries("sources", 3).size
+ assert_equal 1, @adapter.entries("sources", 'b3a615152df8').size
+
[2, '400bb8672109', '400', 400].each do |r|
entries1 = @adapter.entries(nil, r)
assert entries1
@@ -103,9 +143,15 @@
assert_equal 'sources', entries1[1].name
assert_equal 'sources', entries1[1].path
assert_equal 'dir', entries1[1].kind
- assert_equal 'README', entries1[2].name
- assert_equal 'README', entries1[2].path
- assert_equal 'file', entries1[2].kind
+ readme = entries1[2]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 27, readme.size
+ assert_equal '1', readme.lastrev.revision
+ assert_equal '9d5b5b004199', readme.lastrev.identifier
+ # 2007-12-14 10:24:01 +0100
+ assert_equal Time.gm(2007, 12, 14, 9, 24, 1), readme.lastrev.time
entries2 = @adapter.entries('sources', r)
assert entries2
@@ -119,6 +165,48 @@
end
end
+ def test_entries_tag
+ entries1 = @adapter.entries(nil, 'tag_test.00')
+ assert entries1
+ assert_equal 3, entries1.size
+ assert_equal 'sources', entries1[1].name
+ assert_equal 'sources', entries1[1].path
+ assert_equal 'dir', entries1[1].kind
+ readme = entries1[2]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 21, readme.size
+ assert_equal '0', readme.lastrev.revision
+ assert_equal '0885933ad4f6', readme.lastrev.identifier
+ # 2007-12-14 10:22:52 +0100
+ assert_equal Time.gm(2007, 12, 14, 9, 22, 52), readme.lastrev.time
+ end
+
+ def test_entries_branch
+ entries1 = @adapter.entries(nil, 'test-branch-00')
+ assert entries1
+ assert_equal 5, entries1.size
+ assert_equal 'sql_escape', entries1[2].name
+ assert_equal 'sql_escape', entries1[2].path
+ assert_equal 'dir', entries1[2].kind
+ readme = entries1[4]
+ assert_equal 'README', readme.name
+ assert_equal 'README', readme.path
+ assert_equal 'file', readme.kind
+ assert_equal 365, readme.size
+ assert_equal '8', readme.lastrev.revision
+ assert_equal 'c51f5bb613cd', readme.lastrev.identifier
+ # 2001-02-01 00:00:00 -0900
+ assert_equal Time.gm(2001, 2, 1, 9, 0, 0), readme.lastrev.time
+ end
+
+ def test_locate_on_outdated_repository
+ assert_equal 1, @adapter.entries("images", 0).size
+ assert_equal 2, @adapter.entries("images").size
+ assert_equal 2, @adapter.entries("images", 2).size
+ end
+
def test_access_by_nodeid
path = 'sources/welcome_controller.rb'
assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400bb8672109')
@@ -130,6 +218,28 @@
assert_equal @adapter.cat(path, 2), @adapter.cat(path, '400')
end
+ def test_tags
+ assert_equal ['tag_test.00', 'tag-init-revision'], @adapter.tags
+ end
+
+ def test_tagmap
+ tm = { 'tag_test.00' => '6987191f453a',
+ 'tag-init-revision' => '0885933ad4f6' }
+ assert_equal tm, @adapter.tagmap
+ end
+
+ def test_branches
+ assert_equal ['default', 'branch (1)[2]&,%.-3_4', 'test-branch-00'],
+ @adapter.branches
+ end
+
+ def test_branchmap
+ bm = { 'default' => '4cddb4e45f52',
+ 'branch (1)[2]&,%.-3_4' => '933ca60293d7',
+ 'test-branch-00' => '3a330eb32958' }
+ assert_equal bm, @adapter.branchmap
+ end
+
private
def test_hgversion_for(hgversion, version)
@@ -138,7 +248,7 @@
end
def test_template_path_for(version, template)
- assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
+ assert_equal "#{HELPERS_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}",
@adapter.class.template_path_for(version)
assert File.exist?(@adapter.class.template_path_for(version))
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
--- a/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -17,15 +17,47 @@
require File.expand_path('../../../../../../test_helper', __FILE__)
-class SubversionAdapterTest < ActiveSupport::TestCase
+begin
+ require 'mocha'
+
+ class SubversionAdapterTest < ActiveSupport::TestCase
- if repository_configured?('subversion')
- def test_client_version
- v = Redmine::Scm::Adapters::SubversionAdapter.client_version
- assert v.is_a?(Array)
+ if repository_configured?('subversion')
+ def setup
+ repo_path = "file://#{self.class.repository_path('subversion')}"
+ @adapter = Redmine::Scm::Adapters::SubversionAdapter.new(repo_path)
+ end
+
+ def test_client_version
+ v = Redmine::Scm::Adapters::SubversionAdapter.client_version
+ assert v.is_a?(Array)
+ end
+
+ def test_scm_version
+ to_test = { "svn, version 1.6.13 (r1002816)\n" => [1,6,13],
+ "svn, versione 1.6.13 (r1002816)\n" => [1,6,13],
+ "1.6.1\n1.7\n1.8" => [1,6,1],
+ "1.6.2\r\n1.8.1\r\n1.9.1" => [1,6,2]}
+ to_test.each do |s, v|
+ test_scm_version_for(s, v)
+ end
+ end
+
+ private
+
+ def test_scm_version_for(scm_version, version)
+ @adapter.class.expects(:scm_version_from_command_line).returns(scm_version)
+ assert_equal version, @adapter.class.svn_binary_version
+ end
+
+ else
+ puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
+ def test_fake; assert true end
end
- else
- puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
- def test_fake; assert true end
+ end
+
+rescue LoadError
+ class SubversionMochaFake < ActiveSupport::TestCase
+ def test_fake; assert(false, "Requires mocha to run those tests") end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/unified_diff_test.rb
--- a/test/unit/lib/redmine/unified_diff_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/unified_diff_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -60,8 +60,39 @@
assert_equal 1, diff.size
end
+ def test_one_line_new_files
+ diff = Redmine::UnifiedDiff.new(<<-DIFF
+diff -r 000000000000 -r ea98b14f75f0 README1
+--- /dev/null
++++ b/README1
+@@ -0,0 +1,1 @@
++test1
+diff -r 000000000000 -r ea98b14f75f0 README2
+--- /dev/null
++++ b/README2
+@@ -0,0 +1,1 @@
++test2
+diff -r 000000000000 -r ea98b14f75f0 README3
+--- /dev/null
++++ b/README3
+@@ -0,0 +1,3 @@
++test4
++test5
++test6
+diff -r 000000000000 -r ea98b14f75f0 README4
+--- /dev/null
++++ b/README4
+@@ -0,0 +1,3 @@
++test4
++test5
++test6
+DIFF
+ )
+ assert_equal 4, diff.size
+ end
+
private
-
+
def read_diff_fixture(filename)
File.new(File.join(File.dirname(__FILE__), '/../../../fixtures/diffs', filename)).read
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/views/.svn/entries
--- a/test/unit/lib/redmine/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/test/unit/lib/redmine/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/views/builders/.svn/entries
--- a/test/unit/lib/redmine/views/builders/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/views/builders/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
0eb241e5c91856b3340cf4d848c39119
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:08.000000Z
+2011-03-03T11:05:08.000000Z
aed14e6bc3e5bb08380fe6954d273a6c
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/lib/redmine/wiki_formatting/.svn/entries
--- a/test/unit/lib/redmine/wiki_formatting/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/lib/redmine/wiki_formatting/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:08.000000Z
5acd95498f8f2e52e8ad2b70961a21ad
2010-12-12T23:24:34.194336Z
4509
@@ -66,7 +66,7 @@
-2011-01-13T14:09:07.000000Z
+2011-03-03T11:05:08.000000Z
41000dcb1febd4ce59305bb36a369cf0
2010-12-12T23:24:34.194336Z
4509
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/query_test.rb
--- a/test/unit/query_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/query_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -484,7 +484,6 @@
# Users not in a group
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')"
assert_find_issues_with_query_is_successful @query
-
end
should "search assigned to any group member (all)" do
@@ -494,7 +493,22 @@
# Only users in a group
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}')"
assert_find_issues_with_query_is_successful @query
-
+ end
+
+ should "return an empty set with = empty group" do
+ @empty_group = Group.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '=', [@empty_group.id.to_s])
+
+ assert_equal [], find_issues_with_query(@query)
+ end
+
+ should "return issues with ! empty group" do
+ @empty_group = Group.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '!', [@empty_group.id.to_s])
+
+ assert_find_issues_with_query_is_successful @query
end
end
@@ -540,6 +554,22 @@
assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@manager.id}','#{@developer.id}','#{@boss.id}')"
assert_find_issues_with_query_is_successful @query
end
+
+ should "return an empty set with empty role" do
+ @empty_role = Role.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s])
+
+ assert_equal [], find_issues_with_query(@query)
+ end
+
+ should "return issues with ! empty role" do
+ @empty_role = Role.generate!
+ @query = Query.new(:name => '_')
+ @query.add_filter('member_of_group', '!', [@empty_role.id.to_s])
+
+ assert_find_issues_with_query_is_successful @query
+ end
end
end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/repository_bazaar_test.rb
--- a/test/unit/repository_bazaar_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_bazaar_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -19,16 +19,19 @@
class RepositoryBazaarTest < ActiveSupport::TestCase
fixtures :projects
-
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
REPOSITORY_PATH.gsub!(/\/+/, '/')
def setup
- @project = Project.find(1)
- assert @repository = Repository::Bazaar.create(:project => @project, :url => "file:///#{REPOSITORY_PATH}")
+ @project = Project.find(3)
+ @repository = Repository::Bazaar.create(
+ :project => @project, :url => "file:///#{REPOSITORY_PATH}",
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@@ -38,7 +41,7 @@
assert_equal 9, @repository.changes.count
assert_equal 'Initial import', @repository.changesets.find_by_revision('1').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 5
@@ -49,7 +52,7 @@
@repository.fetch_changesets
assert_equal 4, @repository.changesets.count
end
-
+
def test_entries
entries = @repository.entries
assert_equal 2, entries.size
@@ -68,19 +71,6 @@
assert_equal 'file', entries.last.kind
assert_equal 'edit.png', entries.last.name
end
-
- def test_cat
- cat = @repository.scm.cat('directory/document.txt')
- assert cat =~ /Write the contents of a file as of a given revision to standard output/
- end
-
- def test_annotate
- annotate = @repository.scm.annotate('doc-mkdir.txt')
- assert_equal 17, annotate.lines.size
- assert_equal '1', annotate.revisions[0].identifier
- assert_equal 'jsmith@', annotate.revisions[0].author
- assert_equal 'mkdir', annotate.lines[0]
- end
else
puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/repository_cvs_test.rb
--- a/test/unit/repository_cvs_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_cvs_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -27,34 +27,64 @@
MODULE_NAME = 'test'
def setup
- @project = Project.find(1)
- assert @repository = Repository::Cvs.create(:project => @project,
- :root_url => REPOSITORY_PATH,
- :url => MODULE_NAME)
+ @project = Project.find(3)
+ @repository = Repository::Cvs.create(:project => @project,
+ :root_url => REPOSITORY_PATH,
+ :url => MODULE_NAME,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
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 fca2657f4aa5 -r eeebe205a056 test/unit/repository_darcs_test.rb
--- a/test/unit/repository_darcs_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_darcs_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -19,25 +19,28 @@
class RepositoryDarcsTest < ActiveSupport::TestCase
fixtures :projects
-
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
-
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Darcs.create(:project => @project, :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Darcs.create(
+ :project => @project, :url => REPOSITORY_PATH,
+ :log_encoding => 'UTF-8')
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
+
assert_equal 6, @repository.changesets.count
assert_equal 13, @repository.changes.count
assert_equal "Initial commit.", @repository.changesets.find_by_revision('1').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 3
@@ -48,8 +51,10 @@
@repository.fetch_changesets
assert_equal 6, @repository.changesets.count
end
-
+
def test_deleted_files_should_not_be_listed
+ @repository.fetch_changesets
+ @repository.reload
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 fca2657f4aa5 -r eeebe205a056 test/unit/repository_git_test.rb
--- a/test/unit/repository_git_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_git_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -18,25 +18,29 @@
require File.expand_path('../../test_helper', __FILE__)
class RepositoryGitTest < ActiveSupport::TestCase
- fixtures :projects, :repositories, :enabled_modules, :users, :roles
-
+ fixtures :projects, :repositories, :enabled_modules, :users, :roles
+
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
-
+
+ FELIX_HEX = "Felix Sch\xC3\xA4fer"
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Git.create(:project => @project, :url => REPOSITORY_PATH)
+ Setting.commit_logs_encoding = 'UTF-8'
+ @project = Project.find(3)
+ @repository = Repository::Git.create(:project => @project, :url => REPOSITORY_PATH)
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
- assert_equal 15, @repository.changesets.count
- assert_equal 24, @repository.changes.count
-
+
+ assert_equal 16, @repository.changesets.count
+ assert_equal 25, @repository.changes.count
+
commit = @repository.changesets.find(:first, :order => 'committed_on ASC')
assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments
assert_equal "jsmith ", commit.committer
@@ -57,10 +61,20 @@
# Remove the 3 latest changesets
@repository.changesets.find(:all, :order => 'committed_on DESC', :limit => 3).each(&:destroy)
@repository.reload
- assert_equal 12, @repository.changesets.count
-
+ cs1 = @repository.changesets
+ assert_equal 13, cs1.count
+
+ rev_a_commit = @repository.changesets.find(:first, :order => 'committed_on DESC')
+ assert_equal '4f26664364207fa8b1af9f8722647ab2d4ac5d43', rev_a_commit.revision
+ # Mon Jul 5 22:34:26 2010 +0200
+ rev_a_committed_on = Time.gm(2010, 7, 5, 20, 34, 26)
+ assert_equal '4f26664364207fa8b1af9f8722647ab2d4ac5d43', rev_a_commit.scmid
+ assert_equal rev_a_committed_on, rev_a_commit.committed_on
+ latest_rev = @repository.latest_changeset
+ assert_equal rev_a_committed_on, latest_rev.committed_on
+
@repository.fetch_changesets
- assert_equal 15, @repository.changesets.count
+ assert_equal 16, @repository.changesets.count
end
def test_find_changeset_by_name
@@ -103,6 +117,17 @@
assert c.event_title.include?('abc7234c:')
assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
end
+
+ def test_log_utf8
+ @repository.fetch_changesets
+ @repository.reload
+ str_felix_hex = FELIX_HEX
+ if str_felix_hex.respond_to?(:force_encoding)
+ str_felix_hex.force_encoding('UTF-8')
+ end
+ c = @repository.changesets.find_by_revision('ed5bb786bbda2dee66a2d50faf51429dbc043a7b')
+ assert_equal "#{str_felix_hex} ", c.committer
+ end
else
puts "Git test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/repository_mercurial_test.rb
--- a/test/unit/repository_mercurial_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_mercurial_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -22,23 +22,23 @@
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
-
+
def setup
- @project = Project.find(1)
- assert @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+ @project = Project.find(3)
+ @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+ assert @repository
end
-
+
if File.directory?(REPOSITORY_PATH)
def test_fetch_changesets_from_scratch
@repository.fetch_changesets
@repository.reload
-
assert_equal 17, @repository.changesets.count
assert_equal 25, @repository.changes.count
assert_equal "Initial import.\nThe repository contains 3 files.",
@repository.changesets.find_by_revision('0').comments
end
-
+
def test_fetch_changesets_incremental
@repository.fetch_changesets
# Remove changesets with revision > 2
@@ -49,19 +49,6 @@
@repository.fetch_changesets
assert_equal 17, @repository.changesets.count
end
-
- def test_entries
- assert_equal 2, @repository.entries("sources", 2).size
- assert_equal 2, @repository.entries("sources", '400bb8672109').size
- assert_equal 1, @repository.entries("sources", 3).size
- assert_equal 1, @repository.entries("sources", 'b3a615152df8').size
- end
-
- def test_locate_on_outdated_repository
- assert_equal 1, @repository.entries("images", 0).size
- assert_equal 2, @repository.entries("images").size
- assert_equal 2, @repository.entries("images", 2).size
- end
def test_isodatesec
# Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
@@ -171,6 +158,43 @@
assert c.event_title.include?('123:abc400bb8672:')
assert_equal 'abc400bb8672', c.event_url[:rev]
end
+
+ def test_latest_changesets_with_limit
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('', nil, 2)
+ assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
+ end
+
+ def test_latest_changesets_with_filepath
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('README', nil)
+ assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
+
+ path = 'sql_escape/percent%dir/percent%file1.txt'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+ path = 'sql_escape/underscore_dir/understrike_file.txt'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|12 9|, changesets.collect(&:revision)
+ end
+
+ def test_latest_changesets_with_dirpath
+ @repository.fetch_changesets
+ @repository.reload
+ changesets = @repository.latest_changesets('images', nil)
+ assert_equal %w|1 0|, changesets.collect(&:revision)
+
+ path = 'sql_escape/percent%dir'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|13 11 10 9|, changesets.collect(&:revision)
+
+ path = 'sql_escape/underscore_dir'
+ changesets = @repository.latest_changesets(path, nil)
+ assert_equal %w|13 12 9|, changesets.collect(&:revision)
+ end
else
puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/repository_subversion_test.rb
--- a/test/unit/repository_subversion_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_subversion_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -21,8 +21,9 @@
fixtures :projects, :repositories, :enabled_modules, :users, :roles
def setup
- @project = Project.find(1)
- assert @repository = Repository::Subversion.create(:project => @project, :url => "file:///#{self.class.repository_path('subversion')}")
+ @project = Project.find(3)
+ assert @repository = Repository::Subversion.create(:project => @project,
+ :url => "file://#{self.class.repository_path('subversion')}")
end
if repository_configured?('subversion')
@@ -74,7 +75,7 @@
end
def test_directory_listing_with_square_brackets_in_base
- @project = Project.find(1)
+ @project = Project.find(3)
@repository = Repository::Subversion.create(:project => @project, :url => "file:///#{self.class.repository_path('subversion')}/subversion_test/[folder_with_brackets]")
@repository.fetch_changesets
@@ -136,6 +137,56 @@
assert c.event_title.include?('123456789:')
assert_equal '123456789', c.event_url[:rev]
end
+
+ def test_log_encoding_ignore_setting
+ with_settings :commit_logs_encoding => 'windows-1252' do
+ s1 = "\xC2\x80"
+ s2 = "\xc3\x82\xc2\x80"
+ if s1.respond_to?(:force_encoding)
+ s3 = s1
+ s4 = s2
+ s1.force_encoding('ASCII-8BIT')
+ s2.force_encoding('ASCII-8BIT')
+ s3.force_encoding('ISO-8859-1')
+ s4.force_encoding('UTF-8')
+ assert_equal s3.encode('UTF-8'), s4
+ end
+ c = Changeset.new(:repository => @repository,
+ :comments=>s2,
+ :revision=>'123',
+ :committed_on => Time.now)
+ assert c.save
+ assert_equal s2, c.comments
+ end
+ end
+
+ def test_previous
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('3')
+ assert_equal @repository.find_changeset_by_name('2'), changeset.previous
+ end
+
+ def test_previous_nil
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('1')
+ assert_nil changeset.previous
+ end
+
+ def test_next
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('2')
+ assert_equal @repository.find_changeset_by_name('3'), changeset.next
+ end
+
+ def test_next_nil
+ @repository.fetch_changesets
+ @repository.reload
+ changeset = @repository.find_changeset_by_name('11')
+ assert_nil changeset.next
+ end
else
puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/repository_test.rb
--- a/test/unit/repository_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/repository_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -125,16 +125,19 @@
assert_not_equal( comment, changeset.comments )
assert_equal( 'This is a loooooooooooooooooooooooooooong comment', changeset.comments )
end
-
+
def test_for_urls_strip
- repository = Repository::Cvs.create(:project => Project.find(4), :url => ' :pserver:login:password@host:/path/to/the/repository',
- :root_url => 'foo ')
+ repository = Repository::Cvs.create(
+ :project => Project.find(4),
+ :url => ' :pserver:login:password@host:/path/to/the/repository',
+ :root_url => 'foo ',
+ :log_encoding => 'UTF-8')
assert repository.save
repository.reload
assert_equal ':pserver:login:password@host:/path/to/the/repository', repository.url
assert_equal 'foo', repository.root_url
end
-
+
def test_manual_user_mapping
assert_no_difference "Changeset.count(:conditions => 'user_id <> 2')" do
c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 100, :comments => 'Committed by foo.')
diff -r fca2657f4aa5 -r eeebe205a056 test/unit/user_test.rb
--- a/test/unit/user_test.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/test/unit/user_test.rb Thu Mar 03 12:02:03 2011 +0000
@@ -361,7 +361,6 @@
user = User.try_to_login("admin", "hello")
assert_kind_of User, user
assert_equal "admin", user.login
- assert_equal User.hash_password("hello"), user.hashed_password
end
def test_name_format
@@ -383,6 +382,22 @@
assert_equal nil, user
end
+ context ".try_to_login" do
+ context "with good credentials" do
+ should "return the user" do
+ user = User.try_to_login("admin", "admin")
+ assert_kind_of User, user
+ assert_equal "admin", user.login
+ end
+ end
+
+ context "with wrong credentials" do
+ should "return nil" do
+ assert_nil User.try_to_login("admin", "foo")
+ end
+ end
+ end
+
if ldap_configured?
context "#try_to_login using LDAP" do
context "with failed connection to the LDAP server" do
@@ -672,6 +687,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,12 +720,45 @@
@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
should 'be added and tested'
end
end
+
+ def test_salt_unsalted_passwords
+ # Restore a user with an unsalted password
+ user = User.find(1)
+ user.salt = nil
+ user.hashed_password = User.hash_password("unsalted")
+ user.save!
+
+ User.salt_unsalted_passwords!
+
+ user.reload
+ # Salt added
+ assert !user.salt.blank?
+ # Password still valid
+ assert user.check_password?("unsalted")
+ assert_equal user, User.try_to_login(user.login, "unsalted")
+ end
if Object.const_defined?(:OpenID)
diff -r fca2657f4aa5 -r eeebe205a056 tmp/.svn/entries
--- a/tmp/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/tmp/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/tmp
+4993
+http://redmine.rubyforge.org/svn/trunk/tmp
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 tmp/cache/.svn/entries
--- a/tmp/cache/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/tmp/cache/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/tmp/cache
+4993
+http://redmine.rubyforge.org/svn/trunk/tmp/cache
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 tmp/sessions/.svn/entries
--- a/tmp/sessions/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/tmp/sessions/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/tmp/sessions
+4993
+http://redmine.rubyforge.org/svn/trunk/tmp/sessions
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 tmp/sockets/.svn/entries
--- a/tmp/sockets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/tmp/sockets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/tmp/sockets
+4993
+http://redmine.rubyforge.org/svn/trunk/tmp/sockets
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 tmp/test/.svn/entries
--- a/tmp/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/tmp/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/tmp/test
+4993
+http://redmine.rubyforge.org/svn/trunk/tmp/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-06-08T02:07:30.275769Z
2784
diff -r fca2657f4aa5 -r eeebe205a056 vendor/.svn/all-wcprops
--- a/vendor/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/.svn/all-wcprops Thu Mar 03 12:02:03 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/4891/trunk/vendor
END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/.svn/entries
--- a/vendor/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/vendor
http://redmine.rubyforge.org/svn
-2011-01-01T11:45:12.617336Z
-4602
+2011-02-20T14:26:23.957459Z
+4891
jplang
has-props
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 36
+/svn/!svn/ver/4739/trunk/vendor/gems
+END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/.svn/entries
--- a/vendor/gems/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/gems/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,15 +1,15 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/gems
+4993
+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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,173 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+071d975e884a936b40eab0b865ea4da1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+26534
+
+Rakefile
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+18ea6850e44c2180fe121b906b0ce27a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+771
+
+lib
+dir
+
+bin
+dir
+
+.specification
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+a3bbd9c0481e784e38ef28afc8aa3242
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4138
+
+FOLDERS
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+f11c3e40d9b35de767926748e7278f47
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1133
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,96 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+b20628204e37bb6fd444b1f1992d2c1a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+93
+
+coderay
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+db4ee9313184e2922a606b55ff92f4f7
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1975
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+require 'coderay'
+
+puts CodeRay::Encoders[:html]::CSS.new.stylesheet
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,4 @@
+#!/usr/bin/env ruby
+require 'coderay'
+
+puts CodeRay::Encoders[:html]::CSS.new.stylesheet
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,99 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+30374cf2e229cc996eaba18502af97c5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10050
+
+README
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+046bf12ae0bcbb0b55fc3c4c993680d2
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5065
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,278 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+4f17211f3874899049db6111ef282a3b
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2287
+
+encoder.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+f0ead48eaa86c8b4d6a5587e9b5450ca
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6565
+
+encoders
+dir
+
+helpers
+dir
+
+style.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+409fa492a5470a8bed5ae969f270decf
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+293
+
+styles
+dir
+
+tokens.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+d45c9094dd69e538d44b7099955b9fda
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10325
+
+duo.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+b33e5b83e354c09655f46d37ae662f64
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2549
+
+scanner.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+ec67701318cc8701d0554802f07ee6e1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8165
+
+scanners
+dir
+
+for_redcloth.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+d216c2f1c7a84a23ce3feff0b1358d60
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3001
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,643 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+f0c5be15265facadc46889fbbc2613f1
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+232
+
+text.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+2914ed90921556a01a79f3fb6d549b09
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+400
+
+filter.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+08591bbd1f20dc7dce67030a294d1636
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1595
+
+debug.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+9e878089035fe9ad88c808bd1a15cf7a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+835
+
+lines_of_code.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+966e154458fb6c665b6d62aa90d07e18
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2395
+
+count.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+c262d84ddbdf37e99ff6bcf6dd6a66c2
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+230
+
+xml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+ada7effba81bbc28f41efeaef69dcc51
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1367
+
+span.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+e4228be45ad0f818a0e125caee838d56
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+236
+
+yaml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+04c428b240ef44de896ad15827cf51df
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+264
+
+html
+dir
+
+html.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+e672d4f425422c57f935f24df3df9a0d
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7995
+
+term.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+422a51cd181de3cc0a55aba7f9915c18
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4324
+
+statistic.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+49017735ef679f73dd65795e30d8e5c7
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1800
+
+comment_filter.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+32f2d1a9db6f58636d3946a43b5a60f0
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+808
+
+json.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+86a2dcae2ef0a971f70386c3b794469f
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1570
+
+null.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+9c9dcf3ba3f2effa5ebd4cd37417db36
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+320
+
+token_class_filter.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+e59791dbcdce328f09240e7e5c8b3d0e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2546
+
+page.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+26da5aef43dc8731fbd63dcffea259bf
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+262
+
+_map.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+964d7ee16d213ab2e41418257f1eb8aa
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+167
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,130 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+8d0cea50dc9e6743bd10a8e0c6f1db17
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5271
+
+numerization.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+a5e204ed674c970d0aea6d1d9dbfd18e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4219
+
+css.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+aa931c09ed5f16abfed3b7c99f0f684d
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1626
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,206 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ # This module is included in the output String from thew HTML Encoder.
+ #
+ # It provides methods like wrap, div, page etc.
+ #
+ # Remember to use #clone instead of #dup to keep the modules the object was
+ # extended with.
+ #
+ # TODO: more doc.
+ module Output
+
+ require 'coderay/encoders/html/numerization.rb'
+
+ attr_accessor :css
+
+ class << self
+
+ # This makes Output look like a class.
+ #
+ # Example:
+ #
+ # a = Output.new 'Code'
+ # a.wrap! :page
+ def new string, css = CSS.new, element = nil
+ output = string.clone.extend self
+ output.wrapped_in = element
+ output.css = css
+ output
+ end
+
+ # Raises an exception if an object that doesn't respond to to_str is extended by Output,
+ # to prevent users from misuse. Use Module#remove_method to disable.
+ def extended o
+ warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
+ end
+
+ def make_stylesheet css, in_tag = false
+ sheet = css.stylesheet
+ sheet = <<-CSS if in_tag
+
+ CSS
+ sheet
+ end
+
+ def page_template_for_css css
+ sheet = make_stylesheet css
+ PAGE.apply 'CSS', sheet
+ end
+
+ # Define a new wrapper. This is meta programming.
+ def wrapper *wrappers
+ wrappers.each do |wrapper|
+ define_method wrapper do |*args|
+ wrap wrapper, *args
+ end
+ define_method "#{wrapper}!".to_sym do |*args|
+ wrap! wrapper, *args
+ end
+ end
+ end
+
+ end
+
+ wrapper :div, :span, :page
+
+ def wrapped_in? element
+ wrapped_in == element
+ end
+
+ def wrapped_in
+ @wrapped_in ||= nil
+ end
+ attr_writer :wrapped_in
+
+ def wrap_in template
+ clone.wrap_in! template
+ end
+
+ def wrap_in! template
+ Template.wrap! self, template, 'CONTENT'
+ self
+ end
+
+ def apply_title! title
+ self.sub!(/()(<\/title>)/) { $1 + title + $2 }
+ self
+ end
+
+ def wrap! element, *args
+ return self if not element or element == wrapped_in
+ case element
+ when :div
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! DIV
+ when :span
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! SPAN
+ when :page
+ wrap! :div if wrapped_in? nil
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
+ wrap_in! Output.page_template_for_css(@css)
+ if args.first.is_a?(Hash) && title = args.first[:title]
+ apply_title! title
+ end
+ self
+ when nil
+ return self
+ else
+ raise "Unknown value %p for :wrap" % element
+ end
+ @wrapped_in = element
+ self
+ end
+
+ def wrap *args
+ clone.wrap!(*args)
+ end
+
+ def stylesheet in_tag = false
+ Output.make_stylesheet @css, in_tag
+ end
+
+ class Template < String
+
+ def self.wrap! str, template, target
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if template =~ target
+ str[0,0] = $`
+ str << $'
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ def apply target, replacement
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if self =~ target
+ Template.new($` + replacement + $')
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ module Simple
+ def ` str #` <-- for stupid editors
+ Template.new str
+ end
+ end
+ end
+
+ extend Template::Simple
+
+#-- don't include the templates in docu
+
+ SPAN = `<%CONTENT%>`
+
+ DIV = <<-`DIV`
+
+ DIV
+
+ TABLE = <<-`TABLE`
+
+ <%LINE_NUMBERS%> |
+ <%CONTENT%> |
+
+ TABLE
+ # title="double click to expand"
+
+ LIST = <<-`LIST`
+
+<%CONTENT%>
+
+ LIST
+
+ PAGE = <<-`PAGE`
+
+
+
+
+
+
+
+
+
+<%CONTENT%>
+
+
+ PAGE
+
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,206 @@
+module CodeRay
+module Encoders
+
+ class HTML
+
+ # This module is included in the output String from thew HTML Encoder.
+ #
+ # It provides methods like wrap, div, page etc.
+ #
+ # Remember to use #clone instead of #dup to keep the modules the object was
+ # extended with.
+ #
+ # TODO: more doc.
+ module Output
+
+ require 'coderay/encoders/html/numerization.rb'
+
+ attr_accessor :css
+
+ class << self
+
+ # This makes Output look like a class.
+ #
+ # Example:
+ #
+ # a = Output.new 'Code'
+ # a.wrap! :page
+ def new string, css = CSS.new, element = nil
+ output = string.clone.extend self
+ output.wrapped_in = element
+ output.css = css
+ output
+ end
+
+ # Raises an exception if an object that doesn't respond to to_str is extended by Output,
+ # to prevent users from misuse. Use Module#remove_method to disable.
+ def extended o
+ warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
+ end
+
+ def make_stylesheet css, in_tag = false
+ sheet = css.stylesheet
+ sheet = <<-CSS if in_tag
+
+ CSS
+ sheet
+ end
+
+ def page_template_for_css css
+ sheet = make_stylesheet css
+ PAGE.apply 'CSS', sheet
+ end
+
+ # Define a new wrapper. This is meta programming.
+ def wrapper *wrappers
+ wrappers.each do |wrapper|
+ define_method wrapper do |*args|
+ wrap wrapper, *args
+ end
+ define_method "#{wrapper}!".to_sym do |*args|
+ wrap! wrapper, *args
+ end
+ end
+ end
+
+ end
+
+ wrapper :div, :span, :page
+
+ def wrapped_in? element
+ wrapped_in == element
+ end
+
+ def wrapped_in
+ @wrapped_in ||= nil
+ end
+ attr_writer :wrapped_in
+
+ def wrap_in template
+ clone.wrap_in! template
+ end
+
+ def wrap_in! template
+ Template.wrap! self, template, 'CONTENT'
+ self
+ end
+
+ def apply_title! title
+ self.sub!(/()(<\/title>)/) { $1 + title + $2 }
+ self
+ end
+
+ def wrap! element, *args
+ return self if not element or element == wrapped_in
+ case element
+ when :div
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! DIV
+ when :span
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
+ wrap_in! SPAN
+ when :page
+ wrap! :div if wrapped_in? nil
+ raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
+ wrap_in! Output.page_template_for_css(@css)
+ if args.first.is_a?(Hash) && title = args.first[:title]
+ apply_title! title
+ end
+ self
+ when nil
+ return self
+ else
+ raise "Unknown value %p for :wrap" % element
+ end
+ @wrapped_in = element
+ self
+ end
+
+ def wrap *args
+ clone.wrap!(*args)
+ end
+
+ def stylesheet in_tag = false
+ Output.make_stylesheet @css, in_tag
+ end
+
+ class Template < String
+
+ def self.wrap! str, template, target
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if template =~ target
+ str[0,0] = $`
+ str << $'
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ def apply target, replacement
+ target = Regexp.new(Regexp.escape("<%#{target}%>"))
+ if self =~ target
+ Template.new($` + replacement + $')
+ else
+ raise "Template target <%%%p%%> not found" % target
+ end
+ end
+
+ module Simple
+ def ` str #` <-- for stupid editors
+ Template.new str
+ end
+ end
+ end
+
+ extend Template::Simple
+
+#-- don't include the templates in docu
+
+ SPAN = `<%CONTENT%>`
+
+ DIV = <<-`DIV`
+
+ DIV
+
+ TABLE = <<-`TABLE`
+
+ <%LINE_NUMBERS%> |
+ <%CONTENT%> |
+
+ TABLE
+ # title="double click to expand"
+
+ LIST = <<-`LIST`
+
+<%CONTENT%>
+
+ LIST
+
+ PAGE = <<-`PAGE`
+
+
+
+
+
+
+
+
+
+<%CONTENT%>
+
+
+ PAGE
+
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,164 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+a8ef4aea22392cc4012ee679fc1d15ba
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7926
+
+file_type.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+107e3d46dc60830e87b1a4ce4d467ce8
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6494
+
+gzip_simple.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+ffacc98651f60a6fe698427bbc3c3c86
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2701
+
+word_list.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+86d05af27cbe342789f28ed543956aa5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3229
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,816 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+a10b4406847a27622a61c041420dab5a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6723
+
+java
+dir
+
+ruby
+dir
+
+java.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+35c0803e396fa14a42c6b8645ca7d557
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5041
+
+python.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+939e009d9b197cb6437646be82c02982
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9190
+
+ruby.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+cb032992b032fd9cbc93500496d0b038
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+15309
+
+cpp.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+afc4a4b0842e5efdafe98f6c5a10810e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6286
+
+c.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+299db2bdce8368d0bc6d90f5839c87ee
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5408
+
+groovy.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+7fc1acca7ff04fa00160349b3a1b543e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+8521
+
+debug.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+94bdd6c948cb9c3d21ef94a5cec19e05
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1281
+
+rhtml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+ff2e0cad09ef6ba12b2da44e90a25367
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1629
+
+php.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+2de3bd0694a6b52343618c14654c5366
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+23747
+
+css.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+d3c931a5468c723bd8458b4a73d44943
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5493
+
+sql.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+917467cab834f202a455ec0e8be68508
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4726
+
+xml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+798309ac45aa9d4ccc159242f3a6f150
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+211
+
+yaml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+f62eab25adbef42e92cad3f5463f91ac
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4261
+
+html.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+1f93d8c4375c7e7b740c42210e0c6edb
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4248
+
+scheme.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+f6c296bbb33704ec2a03725b01e06719
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4939
+
+java_script.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+31360b9ad9e408df15eb2abf84d17c8a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6733
+
+delphi.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+182116a4525447d4faed874dfb790277
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4504
+
+nitro_xhtml.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+f7d82e60f68fe6c9d46b63e63f6ec9f6
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2858
+
+diff.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+c5932e739b44b0e92f093dfb70cf9de4
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3204
+
+plaintext.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+ae16e40b3db78a5d8c793165085f5db9
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+316
+
+json.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+c34c4d83c7c8cb15bc7209bd36da654e
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2793
+
+_map.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+b3eadcc78242cf25ba0ab3205d6a2b61
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+413
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,264 @@
+module CodeRay
+module Scanners
+
+ load :java
+
+ class Groovy < Java
+
+ include Streamable
+ register_for :groovy
+
+ # TODO: Check this!
+ GROOVY_KEYWORDS = %w[
+ as assert def in
+ ]
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case instanceof new return throw typeof while as assert in
+ ]
+ GROOVY_MAGIC_VARIABLES = %w[ it ]
+
+ IDENT_KIND = Java::IDENT_KIND.dup.
+ add(GROOVY_KEYWORDS, :keyword).
+ add(GROOVY_MAGIC_VARIABLES, :local_variable)
+
+ ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
+ REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
+
+ # TODO: interpretation inside ', ", /
+ STRING_CONTENT_PATTERN = {
+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
+ '"' => /[^\\$"\n]+/,
+ "'''" => /(?>[^\\']+|'(?!''))+/,
+ '"""' => /(?>[^\\$"]+|"(?!""))+/,
+ '/' => /[^\\$\/\n]+/,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ inline_block_stack = []
+ inline_block_paren_depth = nil
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token = after_def = false
+ value_expected = true
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ if match.index ?\n
+ import_clause = after_def = false
+ value_expected = true unless value_expected
+ end
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ after_def = false
+ kind = :comment
+
+ elsif bol? && scan(/ \#!.* /x)
+ kind = :doctype
+
+ elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
+ after_def = value_expected = false
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ if last_token == '.'
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ elsif after_def && check(/\s*[({]/)
+ kind = :method
+ after_def = false
+ elsif kind == :ident && last_token != '?' && check(/:/)
+ kind = :key
+ else
+ class_name_follows = true if match == 'class' || (import_clause && match == 'as')
+ import_clause = match == 'import'
+ after_def = true if match == 'def'
+ end
+
+ elsif scan(/;/)
+ import_clause = after_def = false
+ value_expected = true
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = after_def = false
+ value_expected = true
+ kind = :operator
+ if !inline_block_stack.empty?
+ inline_block_paren_depth += 1
+ end
+
+ # TODO: ~'...', ~"..." and ~/.../ style regexps
+ elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
+ && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
+ value_expected = true
+ value_expected = :regexp if match == '~'
+ after_def = false
+ kind = :operator
+
+ elsif match = scan(/ [)\]}] /x)
+ value_expected = after_def = false
+ if !inline_block_stack.empty? && match == '}'
+ inline_block_paren_depth -= 1
+ if inline_block_paren_depth == 0 # closing brace of inline block reached
+ tokens << [match, :inline_delimiter]
+ tokens << [:close, :inline]
+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
+ next
+ end
+ end
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ after_def = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lLgG]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/'''|"""/)
+ after_def = value_expected = false
+ state = :multiline_string
+ tokens << [:open, :string]
+ string_delimiter = match
+ kind = :delimiter
+
+ # TODO: record.'name'
+ elsif match = scan(/["']/)
+ after_def = value_expected = false
+ state = match == '/' ? :regexp : :string
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\//))
+ after_def = value_expected = false
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ after_def = value_expected = false
+ kind = :annotation
+
+ elsif scan(/\//)
+ after_def = false
+ value_expected = true
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :multiline_string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+
+ elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ # TODO: regexp modifiers? s, m, x, i?
+ modifiers = scan(/[ix]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ state = :string if state == :multiline_string
+ tokens << [:close, state]
+ string_delimiter = nil
+ after_def = value_expected = false
+ state = :initial
+ next
+
+ elsif (state == :string || state == :multiline_string) &&
+ (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+
+ elsif match = scan(/ \$ #{IDENT} /mox)
+ tokens << [:open, :inline]
+ tokens << ['$', :inline_delimiter]
+ match = match[1..-1]
+ tokens << [match, IDENT_KIND[match]]
+ tokens << [:close, :inline]
+ next
+ elsif match = scan(/ \$ \{ /x)
+ tokens << [:open, :inline]
+ tokens << ['${', :inline_delimiter]
+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
+ inline_block_paren_depth = 1
+ state = :initial
+ next
+
+ elsif scan(/ \$ /mx)
+ kind = :content
+
+ elsif scan(/ \\. /mx)
+ kind = :content
+
+ elsif scan(/ \\ | \n /x)
+ tokens << [:close, state]
+ kind = :error
+ after_def = value_expected = false
+ state = :initial
+
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match unless [:space, :comment, :doctype].include? kind
+
+ tokens << [match, kind]
+
+ end
+
+ if [:multiline_string, :string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,533 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # Original by Stefan Walk.
+ class PHP < Scanner
+
+ register_for :php
+ file_extension 'php'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ def setup
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ module Words
+
+ # according to http://www.php.net/manual/en/reserved.keywords.php
+ KEYWORDS = %w[
+ abstract and array as break case catch class clone const continue declare default do else elseif
+ enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
+ goto if implements interface instanceof namespace new or private protected public static switch
+ throw try use var while xor
+ cfunction old_function
+ ]
+
+ TYPES = %w[ int integer float double bool boolean string array object resource ]
+
+ LANGUAGE_CONSTRUCTS = %w[
+ die echo empty exit eval include include_once isset list
+ require require_once return print unset
+ ]
+
+ CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
+
+ # according to http://php.net/quickref.php on 2009-04-21;
+ # all functions with _ excluded (module functions) and selected additional functions
+ BUILTIN_FUNCTIONS = %w[
+ abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
+ atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
+ bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
+ calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
+ compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
+ decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
+ ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
+ fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
+ fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
+ fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
+ getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
+ getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
+ gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
+ gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
+ gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
+ implode include intval ip2long iptcembed iptcparse isset
+ jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
+ juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
+ log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
+ natsort next ngettext nl2br nthmac octdec opendir openlog
+ ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
+ prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
+ readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
+ serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
+ snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
+ strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
+ strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
+ strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
+ textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
+ unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
+ array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
+ array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
+ array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
+ array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
+ array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
+ array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
+ array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
+ array_walk_recursive
+ assert_options base_convert base64_decode base64_encode
+ chunk_split class_exists class_implements class_parents
+ count_chars debug_backtrace debug_print_backtrace debug_zval_dump
+ error_get_last error_log error_reporting extension_loaded
+ file_exists file_get_contents file_put_contents load_file
+ func_get_arg func_get_args func_num_args function_exists
+ get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
+ get_current_user get_declared_classes get_declared_interfaces get_defined_constants
+ get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
+ get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
+ get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
+ gc_collect_cycles gc_disable gc_enable gc_enabled
+ halt_compiler headers_list headers_sent highlight_file highlight_string
+ html_entity_decode htmlspecialchars_decode
+ in_array include_once inclued_get_data
+ is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
+ is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
+ is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
+ is_writable is_writeable
+ locale_get_default locale_set_default
+ number_format override_function parse_str parse_url
+ php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
+ php_strip_whitespace php_uname
+ preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
+ preg_replace_callback preg_split print_r
+ require_once register_shutdown_function register_tick_function
+ set_error_handler set_exception_handler set_file_buffer set_include_path
+ set_magic_quotes_runtime set_time_limit shell_exec
+ str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
+ strip_tags substr_compare substr_count substr_replace
+ time_nanosleep time_sleep_until
+ token_get_all token_name trigger_error
+ unregister_tick_function use_soap_error_handler user_error
+ utf8_decode utf8_encode var_dump var_export
+ version_compare
+ zend_logo_guid zend_thread_id zend_version
+ create_function call_user_func_array
+ posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
+ posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
+ posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
+ posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
+ posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
+ posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
+ posix_setuid posix_strerror posix_times posix_ttyname posix_uname
+ pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
+ pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
+ pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
+ pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
+ ]
+ # TODO: more built-in PHP functions?
+
+ EXCEPTIONS = %w[
+ E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
+ E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
+ ]
+
+ CONSTANTS = %w[
+ null true false self parent
+ __LINE__ __DIR__ __FILE__ __LINE__
+ __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
+ PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
+ PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
+ PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
+ PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
+ PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
+ __COMPILER_HALT_OFFSET__
+ EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
+ EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
+ COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
+ CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
+ M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
+ CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
+ HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
+ INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
+ CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
+ STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
+ LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
+ ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
+ ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
+ MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
+ ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
+ POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
+ N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
+ YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
+ LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
+ LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
+ LOG_NDELAY LOG_NOWAIT LOG_PERROR
+ ]
+
+ PREDEFINED = %w[
+ $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
+ $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
+ $argc $argv
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(KEYWORDS, :reserved).
+ add(TYPES, :pre_type).
+ add(LANGUAGE_CONSTRUCTS, :reserved).
+ add(BUILTIN_FUNCTIONS, :predefined).
+ add(CLASSES, :pre_constant).
+ add(EXCEPTIONS, :exception).
+ add(CONSTANTS, :pre_constant)
+
+ VARIABLE_KIND = WordList.new(:local_variable).
+ add(PREDEFINED, :predefined)
+ end
+
+ module RE
+
+ PHP_START = /
+ |
+ \?>
+ !xi
+
+ HTML_INDICATOR = / ]/i
+
+ IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
+ VARIABLE = /\$#{IDENTIFIER}/
+
+ OPERATOR = /
+ \.(?!\d)=? | # dot that is not decimal point, string concatenation
+ && | \|\| | # logic
+ :: | -> | => | # scope, member, dictionary
+ \\(?!\n) | # namespace
+ \+\+ | -- | # increment, decrement
+ [,;?:()\[\]{}] | # simple delimiters
+ [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
+ [~$] | # whatever
+ =& | # reference assignment
+ [=!]=?=? | <> | # comparison and assignment
+ <<=? | >>=? | [<>]=? # comparison and shift
+ /x
+
+ end
+
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::ASCII_8BIT
+ self.string = string.encode Encoding::ASCII_8BIT,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+
+ if check(RE::PHP_START) || # starts with
+ (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
+ exist?(RE::HTML_INDICATOR) ||
+ check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
+ # is HTML with embedded PHP, so start with HTML
+ states = [:initial]
+ else
+ # is just PHP, so start with PHP surrounded by HTML
+ states = [:initial, :php]
+ end
+
+ label_expected = true
+ case_expected = false
+
+ heredoc_delimiter = nil
+ delimiter = nil
+ modifier = nil
+
+ until eos?
+
+ match = nil
+ kind = nil
+
+ case states.last
+
+ when :initial # HTML
+ if scan RE::PHP_START
+ kind = :inline_delimiter
+ label_expected = true
+ states << :php
+ else
+ match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
+ @html_scanner.tokenize match unless match.empty?
+ next
+ end
+
+ when :php
+ if match = scan(/\s+/)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
+ kind = :comment
+
+ elsif match = scan(RE::IDENTIFIER)
+ kind = Words::IDENT_KIND[match]
+ if kind == :ident && label_expected && check(/:(?!:)/)
+ kind = :label
+ label_expected = true
+ else
+ label_expected = false
+ if kind == :ident && match =~ /^[A-Z]/
+ kind = :constant
+ elsif kind == :reserved
+ case match
+ when 'class'
+ states << :class_expected
+ when 'function'
+ states << :function_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ elsif match == 'b' && check(/['"]/) # binary string literal
+ modifier = match
+ next
+ end
+ end
+
+ elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
+ label_expected = false
+ kind = :float
+
+ elsif scan(/0x[0-9a-fA-F]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/\d+/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/'/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ kind = :delimiter
+ states.push :sqstring
+
+ elsif match = scan(/["`]/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ delimiter = match
+ kind = :delimiter
+ states.push :dqstring
+
+ elsif match = scan(RE::VARIABLE)
+ label_expected = false
+ kind = Words::VARIABLE_KIND[match]
+
+ elsif scan(/\{/)
+ kind = :operator
+ label_expected = true
+ states.push :php
+
+ elsif scan(/\}/)
+ if states.size == 1
+ kind = :error
+ else
+ states.pop
+ if states.last.is_a?(::Array)
+ delimiter = states.last[1]
+ states[-1] = states.last[0]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :inline]
+ next
+ else
+ kind = :operator
+ label_expected = true
+ end
+ end
+
+ elsif scan(/@/)
+ label_expected = false
+ kind = :exception
+
+ elsif scan RE::PHP_END
+ kind = :inline_delimiter
+ states = [:initial]
+
+ elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
+ tokens << [:open, :string]
+ warn 'heredoc in heredoc?' if heredoc_delimiter
+ heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
+ kind = :delimiter
+ states.push self[3] ? :sqstring : :dqstring
+ heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
+
+ elsif match = scan(/#{RE::OPERATOR}/o)
+ label_expected = match == ';'
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :sqstring
+ if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
+ kind = :content
+ elsif !heredoc_delimiter && scan(/'/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ end
+
+ when :dqstring
+ if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
+ kind = :content
+ elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
+ kind = :char
+ elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ elsif match = scan(/#{RE::VARIABLE}/o)
+ kind = :local_variable
+ if check(/\[#{RE::IDENTIFIER}\]/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/\[/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [scan(/\]/), :operator]
+ tokens << [:close, :inline]
+ next
+ elsif check(/\[/)
+ match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
+ kind = :error
+ elsif check(/->#{RE::IDENTIFIER}/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/->/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [:close, :inline]
+ next
+ elsif check(/->/)
+ match << scan(/->/)
+ kind = :error
+ end
+ elsif match = scan(/\{/)
+ if check(/\$/)
+ kind = :delimiter
+ states[-1] = [states.last, delimiter]
+ delimiter = nil
+ states.push :php
+ tokens << [:open, :inline]
+ else
+ kind = :string
+ end
+ elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
+ kind = :local_variable
+ elsif scan(/\$/)
+ kind = :content
+ end
+
+ when :class_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :class
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ when :function_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif scan(/&/)
+ kind = :operator
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :function
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state!', tokens, states
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, states
+ end
+ raise_inspect 'Empty token', tokens, states unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,444 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ # This scanner is really complex, since Ruby _is_ a complex language!
+ #
+ # It tries to highlight 100% of all common code,
+ # and 90% of strange codes.
+ #
+ # It is optimized for HTML highlighting, and is not very useful for
+ # parsing or pretty printing.
+ #
+ # For now, I think it's better than the scanners in VIM or Syntax, or
+ # any highlighter I was able to find, except Caleb's RubyLexer.
+ #
+ # I hope it's also better than the rdoc/irb lexer.
+ class Ruby < Scanner
+
+ include Streamable
+
+ register_for :ruby
+ file_extension 'rb'
+
+ helper :patterns
+
+ if not defined? EncodingError
+ EncodingError = Class.new Exception
+ end
+
+ private
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::UTF_8
+ self.string = string.encode Encoding::UTF_8,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ unicode = false
+ else
+ unicode = exist?(/[^\x00-\x7f]/)
+ end
+
+ last_token_dot = false
+ value_expected = true
+ heredocs = nil
+ last_state = nil
+ state = :initial
+ depth = nil
+ inline_block_stack = []
+
+
+ patterns = Patterns # avoid constant lookup
+
+ until eos?
+ match = nil
+ kind = nil
+
+ if state.instance_of? patterns::StringState
+# {{{
+ match = scan_until(state.pattern) || scan_until(/\z/)
+ tokens << [match, :content] unless match.empty?
+ break if eos?
+
+ if state.heredoc and self[1] # end of heredoc
+ match = getch.to_s
+ match << scan_until(/$/) unless eos?
+ tokens << [match, :delimiter]
+ tokens << [:close, state.type]
+ state = state.next_state
+ next
+ end
+
+ case match = getch
+
+ when state.delim
+ if state.paren
+ state.paren_depth -= 1
+ if state.paren_depth > 0
+ tokens << [match, :nesting_delimiter]
+ next
+ end
+ end
+ tokens << [match, :delimiter]
+ if state.type == :regexp and not eos?
+ modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
+ tokens << [modifiers, :modifier] unless modifiers.empty?
+ end
+ tokens << [:close, state.type]
+ value_expected = false
+ state = state.next_state
+
+ when '\\'
+ if state.interpreted
+ if esc = scan(/ #{patterns::ESCAPE} /ox)
+ tokens << [match + esc, :char]
+ else
+ tokens << [match, :error]
+ end
+ else
+ case m = getch
+ when state.delim, '\\'
+ tokens << [match + m, :char]
+ when nil
+ tokens << [match, :error]
+ else
+ tokens << [match + m, :content]
+ end
+ end
+
+ when '#'
+ case peek(1)
+ when '{'
+ inline_block_stack << [state, depth, heredocs]
+ value_expected = true
+ state = :initial
+ depth = 1
+ tokens << [:open, :inline]
+ tokens << [match + getch, :inline_delimiter]
+ when '$', '@'
+ tokens << [match, :escape]
+ last_state = state # scan one token as normal code, then return here
+ state = :initial
+ else
+ raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
+ end
+
+ when state.paren
+ state.paren_depth += 1
+ tokens << [match, :nesting_delimiter]
+
+ when /#{patterns::REGEXP_SYMBOLS}/ox
+ tokens << [match, :function]
+
+ else
+ raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
+
+ end
+ next
+# }}}
+ else
+# {{{
+ if match = scan(/[ \t\f]+/)
+ kind = :space
+ match << scan(/\s*/) unless eos? || heredocs
+ value_expected = true if match.index(?\n)
+ tokens << [match, kind]
+ next
+
+ elsif match = scan(/\\?\n/)
+ kind = :space
+ if match == "\n"
+ value_expected = true
+ state = :initial if state == :undef_comma_expected
+ end
+ if heredocs
+ unscan # heredoc scanning needs \n at start
+ state = heredocs.shift
+ tokens << [:open, state.type]
+ heredocs = nil if heredocs.empty?
+ next
+ else
+ match << scan(/\s*/) unless eos?
+ end
+ tokens << [match, kind]
+ next
+
+ elsif bol? && match = scan(/\#!.*/)
+ tokens << [match, :doctype]
+ next
+
+ elsif match = scan(/\#.*/) or
+ ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
+ kind = :comment
+ tokens << [match, kind]
+ next
+
+ elsif state == :initial
+
+ # IDENTS #
+ if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
+ /#{patterns::METHOD_NAME}/o)
+ if last_token_dot
+ kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
+ else
+ if value_expected != :expect_colon && scan(/:(?= )/)
+ tokens << [match, :key]
+ match = ':'
+ kind = :operator
+ else
+ kind = patterns::IDENT_KIND[match]
+ if kind == :ident
+ if match[/\A[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
+ kind = :constant
+ end
+ elsif kind == :reserved
+ state = patterns::DEF_NEW_STATE[match]
+ value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
+ end
+ end
+ end
+ value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
+
+ elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
+ kind = :ident
+ value_expected = :set if check(unicode ? /#{patterns::VALUE_FOLLOWS}/uo :
+ /#{patterns::VALUE_FOLLOWS}/o)
+
+ # OPERATORS #
+ elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
+ if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
+ value_expected = :set
+ end
+ last_token_dot = :set if self[1]
+ kind = :operator
+ unless inline_block_stack.empty?
+ case match
+ when '{'
+ depth += 1
+ when '}'
+ depth -= 1
+ if depth == 0 # closing brace of inline block reached
+ state, depth, heredocs = inline_block_stack.pop
+ heredocs = nil if heredocs && heredocs.empty?
+ tokens << [match, :inline_delimiter]
+ kind = :inline
+ match = :close
+ end
+ end
+ end
+
+ elsif match = scan(/ ['"] /mx)
+ tokens << [:open, :string]
+ kind = :delimiter
+ state = patterns::StringState.new :string, match == '"', match # important for streaming
+
+ elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo :
+ /#{patterns::INSTANCE_VARIABLE}/o)
+ kind = :instance_variable
+
+ elsif value_expected and match = scan(/\//)
+ tokens << [:open, :regexp]
+ kind = :delimiter
+ interpreted = true
+ state = patterns::StringState.new :regexp, interpreted, match
+
+ # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
+ elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
+ kind = self[1] ? :float : :integer
+
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ else
+ kind = :symbol
+ end
+
+ elsif match = scan(/ -[>=]? | [+!~^]=? | [*|&]{1,2}=? | >>? /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::HEREDOC_OPEN}/uo :
+ /#{patterns::HEREDOC_OPEN}/o)
+ indented = self[1] == '-'
+ quote = self[3]
+ delim = self[quote ? 4 : 2]
+ kind = patterns::QUOTE_TO_TYPE[quote]
+ tokens << [:open, kind]
+ tokens << [match, :delimiter]
+ match = :close
+ heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
+ heredocs ||= [] # create heredocs if empty
+ heredocs << heredoc
+
+ elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
+ kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
+ raise_inspect 'Unknown fancy string: %%%p' % k, tokens
+ end
+ tokens << [:open, kind]
+ state = patterns::StringState.new kind, interpreted, self[2]
+ kind = :delimiter
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::CHARACTER}/uo :
+ /#{patterns::CHARACTER}/o)
+ kind = :integer
+
+ elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif match = scan(/`/)
+ if last_token_dot
+ kind = :operator
+ else
+ tokens << [:open, :shell]
+ kind = :delimiter
+ state = patterns::StringState.new :shell, true, match
+ end
+
+ elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo :
+ /#{patterns::GLOBAL_VARIABLE}/o)
+ kind = :global_variable
+
+ elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo :
+ /#{patterns::CLASS_VARIABLE}/o)
+ kind = :class_variable
+
+ else
+ if !unicode && !string.respond_to?(:encoding)
+ # check for unicode
+ debug, $DEBUG = $DEBUG, false
+ begin
+ if check(/./mu).size > 1
+ # seems like we should try again with unicode
+ unicode = true
+ end
+ rescue
+ # bad unicode char; use getch
+ ensure
+ $DEBUG = debug
+ end
+ next if unicode
+ end
+ kind = :error
+ match = scan(unicode ? /./mu : /./m)
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if scan(/self\./)
+ tokens << ['self', :pre_constant]
+ tokens << ['.', :operator]
+ end
+ if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
+ /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :module_expected
+ if match = scan(/<)
+ kind = :operator
+ else
+ state = :initial
+ if match = scan(unicode ? /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/uo :
+ /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/o)
+ kind = :class
+ else
+ next
+ end
+ end
+
+ elsif state == :undef_expected
+ state = :undef_comma_expected
+ if match = scan(unicode ? /#{patterns::METHOD_NAME_EX}/uo :
+ /#{patterns::METHOD_NAME_EX}/o)
+ kind = :method
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ state.next_state = :undef_comma_expected
+ else
+ kind = :symbol
+ end
+ else
+ state = :initial
+ next
+ end
+
+ elsif state == :alias_expected
+ match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
+ /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
+
+ if match
+ tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
+ tokens << [self[2], :space]
+ tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
+ end
+ state = :initial
+ next
+
+ elsif state == :undef_comma_expected
+ if match = scan(/,/)
+ kind = :operator
+ state = :undef_expected
+ else
+ state = :initial
+ next
+ end
+
+ end
+# }}}
+
+ unless kind == :error
+ if value_expected = value_expected == :set
+ value_expected = :expect_colon if match == '?' || match == 'when'
+ end
+ last_token_dot = last_token_dot == :set
+ end
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ if last_state
+ state = last_state
+ last_state = nil
+ end
+ end
+ end
+
+ inline_block_stack << [state] if state.is_a? patterns::StringState
+ until inline_block_stack.empty?
+ this_block = inline_block_stack.pop
+ tokens << [:close, :inline] if this_block.size > 1
+ state = this_block.first
+ tokens << [:close, state.type]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
+
+# vim:fdm=marker
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,140 @@
+module CodeRay
+module Scanners
+
+ # YAML Scanner
+ #
+ # Based on the YAML scanner from Syntax by Jamis Buck.
+ class YAML < Scanner
+
+ register_for :yaml
+ file_extension 'yml'
+
+ KINDS_NOT_LOC = :all
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ state = :initial
+ key_indent = indent = 0
+
+ until eos?
+
+ kind = nil
+ match = nil
+ key_indent = nil if bol?
+
+ if match = scan(/ +[\t ]*/)
+ kind = :space
+
+ elsif match = scan(/\n+/)
+ kind = :space
+ state = :initial if match.index(?\n)
+
+ elsif match = scan(/#.*/)
+ kind = :comment
+
+ elsif bol? and case
+ when match = scan(/---|\.\.\./)
+ tokens << [:open, :head]
+ tokens << [match, :head]
+ tokens << [:close, :head]
+ next
+ when match = scan(/%.*/)
+ tokens << [match, :doctype]
+ next
+ end
+
+ elsif state == :value and case
+ when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
+ tokens << [:open, :string]
+ tokens << [matched, :delimiter]
+ tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
+ tokens << [matched, :delimiter] if scan(/"/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/[|>][-+]?/)
+ tokens << [:open, :string]
+ tokens << [match, :delimiter]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
+ tokens << [match, :string]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ next
+ end
+
+ elsif case
+ when match = scan(/[-:](?= |$)/)
+ state = :value if state == :colon && (match == ':' || match == '-')
+ state = :value if state == :initial && match == '-'
+ kind = :operator
+ when match = scan(/[,{}\[\]]/)
+ kind = :operator
+ when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
+ kind = :key
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
+ tokens << [:open, :key]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content]
+ tokens << [match[-1,1], :delimiter]
+ tokens << [:close, :key]
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ next
+ when scan(/(![\w\/]+)(:([\w:]+))?/)
+ tokens << [self[1], :type]
+ if self[2]
+ tokens << [':', :operator]
+ tokens << [self[3], :class]
+ end
+ next
+ when scan(/&\S+/)
+ kind = :variable
+ when scan(/\*\w+/)
+ kind = :global_variable
+ when scan(/<)
+ kind = :class_variable
+ when scan(/\d\d:\d\d:\d\d/)
+ kind = :oct
+ when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
+ kind = :oct
+ when scan(/:\w+/)
+ kind = :symbol
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
+ kind = :error
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
+ kind = :error
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/scanners/_map.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/scanners/_map.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,264 @@
+module CodeRay
+module Scanners
+
+ load :java
+
+ class Groovy < Java
+
+ include Streamable
+ register_for :groovy
+
+ # TODO: Check this!
+ GROOVY_KEYWORDS = %w[
+ as assert def in
+ ]
+ KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
+ case instanceof new return throw typeof while as assert in
+ ]
+ GROOVY_MAGIC_VARIABLES = %w[ it ]
+
+ IDENT_KIND = Java::IDENT_KIND.dup.
+ add(GROOVY_KEYWORDS, :keyword).
+ add(GROOVY_MAGIC_VARIABLES, :local_variable)
+
+ ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
+ UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
+ REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
+
+ # TODO: interpretation inside ', ", /
+ STRING_CONTENT_PATTERN = {
+ "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
+ '"' => /[^\\$"\n]+/,
+ "'''" => /(?>[^\\']+|'(?!''))+/,
+ '"""' => /(?>[^\\$"]+|"(?!""))+/,
+ '/' => /[^\\$\/\n]+/,
+ }
+
+ def scan_tokens tokens, options
+
+ state = :initial
+ inline_block_stack = []
+ inline_block_paren_depth = nil
+ string_delimiter = nil
+ import_clause = class_name_follows = last_token = after_def = false
+ value_expected = true
+
+ until eos?
+
+ kind = nil
+ match = nil
+
+ case state
+
+ when :initial
+
+ if match = scan(/ \s+ | \\\n /x)
+ tokens << [match, :space]
+ if match.index ?\n
+ import_clause = after_def = false
+ value_expected = true unless value_expected
+ end
+ next
+
+ elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
+ value_expected = true
+ after_def = false
+ kind = :comment
+
+ elsif bol? && scan(/ \#!.* /x)
+ kind = :doctype
+
+ elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
+ after_def = value_expected = false
+ kind = :include
+
+ elsif match = scan(/ #{IDENT} | \[\] /ox)
+ kind = IDENT_KIND[match]
+ value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
+ if last_token == '.'
+ kind = :ident
+ elsif class_name_follows
+ kind = :class
+ class_name_follows = false
+ elsif after_def && check(/\s*[({]/)
+ kind = :method
+ after_def = false
+ elsif kind == :ident && last_token != '?' && check(/:/)
+ kind = :key
+ else
+ class_name_follows = true if match == 'class' || (import_clause && match == 'as')
+ import_clause = match == 'import'
+ after_def = true if match == 'def'
+ end
+
+ elsif scan(/;/)
+ import_clause = after_def = false
+ value_expected = true
+ kind = :operator
+
+ elsif scan(/\{/)
+ class_name_follows = after_def = false
+ value_expected = true
+ kind = :operator
+ if !inline_block_stack.empty?
+ inline_block_paren_depth += 1
+ end
+
+ # TODO: ~'...', ~"..." and ~/.../ style regexps
+ elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
+ && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
+ value_expected = true
+ value_expected = :regexp if match == '~'
+ after_def = false
+ kind = :operator
+
+ elsif match = scan(/ [)\]}] /x)
+ value_expected = after_def = false
+ if !inline_block_stack.empty? && match == '}'
+ inline_block_paren_depth -= 1
+ if inline_block_paren_depth == 0 # closing brace of inline block reached
+ tokens << [match, :inline_delimiter]
+ tokens << [:close, :inline]
+ state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
+ next
+ end
+ end
+ kind = :operator
+
+ elsif check(/[\d.]/)
+ after_def = value_expected = false
+ if scan(/0[xX][0-9A-Fa-f]+/)
+ kind = :hex
+ elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
+ kind = :oct
+ elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
+ kind = :float
+ elsif scan(/\d+[lLgG]?/)
+ kind = :integer
+ end
+
+ elsif match = scan(/'''|"""/)
+ after_def = value_expected = false
+ state = :multiline_string
+ tokens << [:open, :string]
+ string_delimiter = match
+ kind = :delimiter
+
+ # TODO: record.'name'
+ elsif match = scan(/["']/)
+ after_def = value_expected = false
+ state = match == '/' ? :regexp : :string
+ tokens << [:open, state]
+ string_delimiter = match
+ kind = :delimiter
+
+ elsif value_expected && (match = scan(/\//))
+ after_def = value_expected = false
+ tokens << [:open, :regexp]
+ state = :regexp
+ string_delimiter = '/'
+ kind = :delimiter
+
+ elsif scan(/ @ #{IDENT} /ox)
+ after_def = value_expected = false
+ kind = :annotation
+
+ elsif scan(/\//)
+ after_def = false
+ value_expected = true
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :string, :regexp, :multiline_string
+ if scan(STRING_CONTENT_PATTERN[string_delimiter])
+ kind = :content
+
+ elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
+ tokens << [match, :delimiter]
+ if state == :regexp
+ # TODO: regexp modifiers? s, m, x, i?
+ modifiers = scan(/[ix]+/)
+ tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
+ end
+ state = :string if state == :multiline_string
+ tokens << [:close, state]
+ string_delimiter = nil
+ after_def = value_expected = false
+ state = :initial
+ next
+
+ elsif (state == :string || state == :multiline_string) &&
+ (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
+ if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
+ kind = :content
+ else
+ kind = :char
+ end
+ elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
+ kind = :char
+
+ elsif match = scan(/ \$ #{IDENT} /mox)
+ tokens << [:open, :inline]
+ tokens << ['$', :inline_delimiter]
+ match = match[1..-1]
+ tokens << [match, IDENT_KIND[match]]
+ tokens << [:close, :inline]
+ next
+ elsif match = scan(/ \$ \{ /x)
+ tokens << [:open, :inline]
+ tokens << ['${', :inline_delimiter]
+ inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
+ inline_block_paren_depth = 1
+ state = :initial
+ next
+
+ elsif scan(/ \$ /mx)
+ kind = :content
+
+ elsif scan(/ \\. /mx)
+ kind = :content
+
+ elsif scan(/ \\ | \n /x)
+ tokens << [:close, state]
+ kind = :error
+ after_def = value_expected = false
+ state = :initial
+
+ else
+ raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
+ end
+
+ else
+ raise_inspect 'Unknown state', tokens
+
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ last_token = match unless [:space, :comment, :doctype].include? kind
+
+ tokens << [match, kind]
+
+ end
+
+ if [:multiline_string, :string, :regexp].include? state
+ tokens << [:close, state]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,62 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+2522414597cbbef27fad175c20c8a556
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+41768
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,533 @@
+module CodeRay
+module Scanners
+
+ load :html
+
+ # Original by Stefan Walk.
+ class PHP < Scanner
+
+ register_for :php
+ file_extension 'php'
+
+ KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
+
+ def setup
+ @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
+ end
+
+ def reset_instance
+ super
+ @html_scanner.reset
+ end
+
+ module Words
+
+ # according to http://www.php.net/manual/en/reserved.keywords.php
+ KEYWORDS = %w[
+ abstract and array as break case catch class clone const continue declare default do else elseif
+ enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
+ goto if implements interface instanceof namespace new or private protected public static switch
+ throw try use var while xor
+ cfunction old_function
+ ]
+
+ TYPES = %w[ int integer float double bool boolean string array object resource ]
+
+ LANGUAGE_CONSTRUCTS = %w[
+ die echo empty exit eval include include_once isset list
+ require require_once return print unset
+ ]
+
+ CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
+
+ # according to http://php.net/quickref.php on 2009-04-21;
+ # all functions with _ excluded (module functions) and selected additional functions
+ BUILTIN_FUNCTIONS = %w[
+ abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
+ atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
+ bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
+ calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
+ compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
+ decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
+ ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
+ fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
+ fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
+ fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
+ getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
+ getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
+ gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
+ gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
+ gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
+ implode include intval ip2long iptcembed iptcparse isset
+ jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
+ juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
+ log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
+ natsort next ngettext nl2br nthmac octdec opendir openlog
+ ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
+ prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
+ readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
+ serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
+ snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
+ strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
+ strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
+ strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
+ textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
+ unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
+ array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
+ array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
+ array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
+ array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
+ array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
+ array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
+ array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
+ array_walk_recursive
+ assert_options base_convert base64_decode base64_encode
+ chunk_split class_exists class_implements class_parents
+ count_chars debug_backtrace debug_print_backtrace debug_zval_dump
+ error_get_last error_log error_reporting extension_loaded
+ file_exists file_get_contents file_put_contents load_file
+ func_get_arg func_get_args func_num_args function_exists
+ get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
+ get_current_user get_declared_classes get_declared_interfaces get_defined_constants
+ get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
+ get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
+ get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
+ gc_collect_cycles gc_disable gc_enable gc_enabled
+ halt_compiler headers_list headers_sent highlight_file highlight_string
+ html_entity_decode htmlspecialchars_decode
+ in_array include_once inclued_get_data
+ is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
+ is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
+ is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
+ is_writable is_writeable
+ locale_get_default locale_set_default
+ number_format override_function parse_str parse_url
+ php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
+ php_strip_whitespace php_uname
+ preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
+ preg_replace_callback preg_split print_r
+ require_once register_shutdown_function register_tick_function
+ set_error_handler set_exception_handler set_file_buffer set_include_path
+ set_magic_quotes_runtime set_time_limit shell_exec
+ str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
+ strip_tags substr_compare substr_count substr_replace
+ time_nanosleep time_sleep_until
+ token_get_all token_name trigger_error
+ unregister_tick_function use_soap_error_handler user_error
+ utf8_decode utf8_encode var_dump var_export
+ version_compare
+ zend_logo_guid zend_thread_id zend_version
+ create_function call_user_func_array
+ posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
+ posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
+ posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
+ posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
+ posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
+ posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
+ posix_setuid posix_strerror posix_times posix_ttyname posix_uname
+ pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
+ pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
+ pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
+ pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
+ ]
+ # TODO: more built-in PHP functions?
+
+ EXCEPTIONS = %w[
+ E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
+ E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
+ ]
+
+ CONSTANTS = %w[
+ null true false self parent
+ __LINE__ __DIR__ __FILE__ __LINE__
+ __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
+ PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
+ PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
+ PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
+ PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
+ PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
+ __COMPILER_HALT_OFFSET__
+ EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
+ EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
+ COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
+ CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
+ M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
+ CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
+ HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
+ INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
+ CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
+ STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
+ LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
+ ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
+ ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
+ MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
+ ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
+ POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
+ N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
+ YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
+ LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
+ LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
+ LOG_NDELAY LOG_NOWAIT LOG_PERROR
+ ]
+
+ PREDEFINED = %w[
+ $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
+ $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
+ $argc $argv
+ ]
+
+ IDENT_KIND = CaseIgnoringWordList.new(:ident).
+ add(KEYWORDS, :reserved).
+ add(TYPES, :pre_type).
+ add(LANGUAGE_CONSTRUCTS, :reserved).
+ add(BUILTIN_FUNCTIONS, :predefined).
+ add(CLASSES, :pre_constant).
+ add(EXCEPTIONS, :exception).
+ add(CONSTANTS, :pre_constant)
+
+ VARIABLE_KIND = WordList.new(:local_variable).
+ add(PREDEFINED, :predefined)
+ end
+
+ module RE
+
+ PHP_START = /
+ |
+ \?>
+ !xi
+
+ HTML_INDICATOR = / ]/i
+
+ IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
+ VARIABLE = /\$#{IDENTIFIER}/
+
+ OPERATOR = /
+ \.(?!\d)=? | # dot that is not decimal point, string concatenation
+ && | \|\| | # logic
+ :: | -> | => | # scope, member, dictionary
+ \\(?!\n) | # namespace
+ \+\+ | -- | # increment, decrement
+ [,;?:()\[\]{}] | # simple delimiters
+ [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
+ [~$] | # whatever
+ =& | # reference assignment
+ [=!]=?=? | <> | # comparison and assignment
+ <<=? | >>=? | [<>]=? # comparison and shift
+ /x
+
+ end
+
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::ASCII_8BIT
+ self.string = string.encode Encoding::ASCII_8BIT,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ end
+
+ if check(RE::PHP_START) || # starts with
+ (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
+ exist?(RE::HTML_INDICATOR) ||
+ check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
+ # is HTML with embedded PHP, so start with HTML
+ states = [:initial]
+ else
+ # is just PHP, so start with PHP surrounded by HTML
+ states = [:initial, :php]
+ end
+
+ label_expected = true
+ case_expected = false
+
+ heredoc_delimiter = nil
+ delimiter = nil
+ modifier = nil
+
+ until eos?
+
+ match = nil
+ kind = nil
+
+ case states.last
+
+ when :initial # HTML
+ if scan RE::PHP_START
+ kind = :inline_delimiter
+ label_expected = true
+ states << :php
+ else
+ match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
+ @html_scanner.tokenize match unless match.empty?
+ next
+ end
+
+ when :php
+ if match = scan(/\s+/)
+ tokens << [match, :space]
+ next
+
+ elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
+ kind = :comment
+
+ elsif match = scan(RE::IDENTIFIER)
+ kind = Words::IDENT_KIND[match]
+ if kind == :ident && label_expected && check(/:(?!:)/)
+ kind = :label
+ label_expected = true
+ else
+ label_expected = false
+ if kind == :ident && match =~ /^[A-Z]/
+ kind = :constant
+ elsif kind == :reserved
+ case match
+ when 'class'
+ states << :class_expected
+ when 'function'
+ states << :function_expected
+ when 'case', 'default'
+ case_expected = true
+ end
+ elsif match == 'b' && check(/['"]/) # binary string literal
+ modifier = match
+ next
+ end
+ end
+
+ elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
+ label_expected = false
+ kind = :float
+
+ elsif scan(/0x[0-9a-fA-F]+/)
+ label_expected = false
+ kind = :hex
+
+ elsif scan(/\d+/)
+ label_expected = false
+ kind = :integer
+
+ elsif scan(/'/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ kind = :delimiter
+ states.push :sqstring
+
+ elsif match = scan(/["`]/)
+ tokens << [:open, :string]
+ if modifier
+ tokens << [modifier, :modifier]
+ modifier = nil
+ end
+ delimiter = match
+ kind = :delimiter
+ states.push :dqstring
+
+ elsif match = scan(RE::VARIABLE)
+ label_expected = false
+ kind = Words::VARIABLE_KIND[match]
+
+ elsif scan(/\{/)
+ kind = :operator
+ label_expected = true
+ states.push :php
+
+ elsif scan(/\}/)
+ if states.size == 1
+ kind = :error
+ else
+ states.pop
+ if states.last.is_a?(::Array)
+ delimiter = states.last[1]
+ states[-1] = states.last[0]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :inline]
+ next
+ else
+ kind = :operator
+ label_expected = true
+ end
+ end
+
+ elsif scan(/@/)
+ label_expected = false
+ kind = :exception
+
+ elsif scan RE::PHP_END
+ kind = :inline_delimiter
+ states = [:initial]
+
+ elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
+ tokens << [:open, :string]
+ warn 'heredoc in heredoc?' if heredoc_delimiter
+ heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
+ kind = :delimiter
+ states.push self[3] ? :sqstring : :dqstring
+ heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
+
+ elsif match = scan(/#{RE::OPERATOR}/o)
+ label_expected = match == ';'
+ if case_expected
+ label_expected = true if match == ':'
+ case_expected = false
+ end
+ kind = :operator
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ when :sqstring
+ if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
+ kind = :content
+ elsif !heredoc_delimiter && scan(/'/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ end
+
+ when :dqstring
+ if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
+ kind = :content
+ elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ elsif heredoc_delimiter && match = scan(/\n/)
+ kind = :content
+ if scan heredoc_delimiter
+ tokens << ["\n", :content]
+ tokens << [matched, :delimiter]
+ tokens << [:close, :string]
+ heredoc_delimiter = nil
+ label_expected = false
+ states.pop
+ next
+ end
+ elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
+ kind = :char
+ elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
+ kind = :char
+ elsif scan(/\\./m)
+ kind = :content
+ elsif scan(/\\/)
+ kind = :error
+ elsif match = scan(/#{RE::VARIABLE}/o)
+ kind = :local_variable
+ if check(/\[#{RE::IDENTIFIER}\]/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/\[/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [scan(/\]/), :operator]
+ tokens << [:close, :inline]
+ next
+ elsif check(/\[/)
+ match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
+ kind = :error
+ elsif check(/->#{RE::IDENTIFIER}/o)
+ tokens << [:open, :inline]
+ tokens << [match, :local_variable]
+ tokens << [scan(/->/), :operator]
+ tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
+ tokens << [:close, :inline]
+ next
+ elsif check(/->/)
+ match << scan(/->/)
+ kind = :error
+ end
+ elsif match = scan(/\{/)
+ if check(/\$/)
+ kind = :delimiter
+ states[-1] = [states.last, delimiter]
+ delimiter = nil
+ states.push :php
+ tokens << [:open, :inline]
+ else
+ kind = :string
+ end
+ elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
+ kind = :local_variable
+ elsif scan(/\$/)
+ kind = :content
+ end
+
+ when :class_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :class
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ when :function_expected
+ if scan(/\s+/)
+ kind = :space
+ elsif scan(/&/)
+ kind = :operator
+ elsif match = scan(/#{RE::IDENTIFIER}/o)
+ kind = :function
+ states.pop
+ else
+ states.pop
+ next
+ end
+
+ else
+ raise_inspect 'Unknown state!', tokens, states
+ end
+
+ match ||= matched
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, states
+ end
+ raise_inspect 'Empty token', tokens, states unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,444 @@
+# encoding: utf-8
+module CodeRay
+module Scanners
+
+ # This scanner is really complex, since Ruby _is_ a complex language!
+ #
+ # It tries to highlight 100% of all common code,
+ # and 90% of strange codes.
+ #
+ # It is optimized for HTML highlighting, and is not very useful for
+ # parsing or pretty printing.
+ #
+ # For now, I think it's better than the scanners in VIM or Syntax, or
+ # any highlighter I was able to find, except Caleb's RubyLexer.
+ #
+ # I hope it's also better than the rdoc/irb lexer.
+ class Ruby < Scanner
+
+ include Streamable
+
+ register_for :ruby
+ file_extension 'rb'
+
+ helper :patterns
+
+ if not defined? EncodingError
+ EncodingError = Class.new Exception
+ end
+
+ private
+ def scan_tokens tokens, options
+ if string.respond_to?(:encoding)
+ unless string.encoding == Encoding::UTF_8
+ self.string = string.encode Encoding::UTF_8,
+ :invalid => :replace, :undef => :replace, :replace => '?'
+ end
+ unicode = false
+ else
+ unicode = exist?(/[^\x00-\x7f]/)
+ end
+
+ last_token_dot = false
+ value_expected = true
+ heredocs = nil
+ last_state = nil
+ state = :initial
+ depth = nil
+ inline_block_stack = []
+
+
+ patterns = Patterns # avoid constant lookup
+
+ until eos?
+ match = nil
+ kind = nil
+
+ if state.instance_of? patterns::StringState
+# {{{
+ match = scan_until(state.pattern) || scan_until(/\z/)
+ tokens << [match, :content] unless match.empty?
+ break if eos?
+
+ if state.heredoc and self[1] # end of heredoc
+ match = getch.to_s
+ match << scan_until(/$/) unless eos?
+ tokens << [match, :delimiter]
+ tokens << [:close, state.type]
+ state = state.next_state
+ next
+ end
+
+ case match = getch
+
+ when state.delim
+ if state.paren
+ state.paren_depth -= 1
+ if state.paren_depth > 0
+ tokens << [match, :nesting_delimiter]
+ next
+ end
+ end
+ tokens << [match, :delimiter]
+ if state.type == :regexp and not eos?
+ modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
+ tokens << [modifiers, :modifier] unless modifiers.empty?
+ end
+ tokens << [:close, state.type]
+ value_expected = false
+ state = state.next_state
+
+ when '\\'
+ if state.interpreted
+ if esc = scan(/ #{patterns::ESCAPE} /ox)
+ tokens << [match + esc, :char]
+ else
+ tokens << [match, :error]
+ end
+ else
+ case m = getch
+ when state.delim, '\\'
+ tokens << [match + m, :char]
+ when nil
+ tokens << [match, :error]
+ else
+ tokens << [match + m, :content]
+ end
+ end
+
+ when '#'
+ case peek(1)
+ when '{'
+ inline_block_stack << [state, depth, heredocs]
+ value_expected = true
+ state = :initial
+ depth = 1
+ tokens << [:open, :inline]
+ tokens << [match + getch, :inline_delimiter]
+ when '$', '@'
+ tokens << [match, :escape]
+ last_state = state # scan one token as normal code, then return here
+ state = :initial
+ else
+ raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
+ end
+
+ when state.paren
+ state.paren_depth += 1
+ tokens << [match, :nesting_delimiter]
+
+ when /#{patterns::REGEXP_SYMBOLS}/ox
+ tokens << [match, :function]
+
+ else
+ raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
+
+ end
+ next
+# }}}
+ else
+# {{{
+ if match = scan(/[ \t\f]+/)
+ kind = :space
+ match << scan(/\s*/) unless eos? || heredocs
+ value_expected = true if match.index(?\n)
+ tokens << [match, kind]
+ next
+
+ elsif match = scan(/\\?\n/)
+ kind = :space
+ if match == "\n"
+ value_expected = true
+ state = :initial if state == :undef_comma_expected
+ end
+ if heredocs
+ unscan # heredoc scanning needs \n at start
+ state = heredocs.shift
+ tokens << [:open, state.type]
+ heredocs = nil if heredocs.empty?
+ next
+ else
+ match << scan(/\s*/) unless eos?
+ end
+ tokens << [match, kind]
+ next
+
+ elsif bol? && match = scan(/\#!.*/)
+ tokens << [match, :doctype]
+ next
+
+ elsif match = scan(/\#.*/) or
+ ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
+ kind = :comment
+ tokens << [match, kind]
+ next
+
+ elsif state == :initial
+
+ # IDENTS #
+ if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
+ /#{patterns::METHOD_NAME}/o)
+ if last_token_dot
+ kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
+ else
+ if value_expected != :expect_colon && scan(/:(?= )/)
+ tokens << [match, :key]
+ match = ':'
+ kind = :operator
+ else
+ kind = patterns::IDENT_KIND[match]
+ if kind == :ident
+ if match[/\A[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
+ kind = :constant
+ end
+ elsif kind == :reserved
+ state = patterns::DEF_NEW_STATE[match]
+ value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
+ end
+ end
+ end
+ value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
+
+ elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
+ kind = :ident
+ value_expected = :set if check(unicode ? /#{patterns::VALUE_FOLLOWS}/uo :
+ /#{patterns::VALUE_FOLLOWS}/o)
+
+ # OPERATORS #
+ elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
+ if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
+ value_expected = :set
+ end
+ last_token_dot = :set if self[1]
+ kind = :operator
+ unless inline_block_stack.empty?
+ case match
+ when '{'
+ depth += 1
+ when '}'
+ depth -= 1
+ if depth == 0 # closing brace of inline block reached
+ state, depth, heredocs = inline_block_stack.pop
+ heredocs = nil if heredocs && heredocs.empty?
+ tokens << [match, :inline_delimiter]
+ kind = :inline
+ match = :close
+ end
+ end
+ end
+
+ elsif match = scan(/ ['"] /mx)
+ tokens << [:open, :string]
+ kind = :delimiter
+ state = patterns::StringState.new :string, match == '"', match # important for streaming
+
+ elsif match = scan(unicode ? /#{patterns::INSTANCE_VARIABLE}/uo :
+ /#{patterns::INSTANCE_VARIABLE}/o)
+ kind = :instance_variable
+
+ elsif value_expected and match = scan(/\//)
+ tokens << [:open, :regexp]
+ kind = :delimiter
+ interpreted = true
+ state = patterns::StringState.new :regexp, interpreted, match
+
+ # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
+ elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
+ kind = self[1] ? :float : :integer
+
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ else
+ kind = :symbol
+ end
+
+ elsif match = scan(/ -[>=]? | [+!~^]=? | [*|&]{1,2}=? | >>? /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::HEREDOC_OPEN}/uo :
+ /#{patterns::HEREDOC_OPEN}/o)
+ indented = self[1] == '-'
+ quote = self[3]
+ delim = self[quote ? 4 : 2]
+ kind = patterns::QUOTE_TO_TYPE[quote]
+ tokens << [:open, kind]
+ tokens << [match, :delimiter]
+ match = :close
+ heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
+ heredocs ||= [] # create heredocs if empty
+ heredocs << heredoc
+
+ elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
+ kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
+ raise_inspect 'Unknown fancy string: %%%p' % k, tokens
+ end
+ tokens << [:open, kind]
+ state = patterns::StringState.new kind, interpreted, self[2]
+ kind = :delimiter
+
+ elsif value_expected and match = scan(unicode ? /#{patterns::CHARACTER}/uo :
+ /#{patterns::CHARACTER}/o)
+ kind = :integer
+
+ elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
+ value_expected = :set
+ kind = :operator
+
+ elsif match = scan(/`/)
+ if last_token_dot
+ kind = :operator
+ else
+ tokens << [:open, :shell]
+ kind = :delimiter
+ state = patterns::StringState.new :shell, true, match
+ end
+
+ elsif match = scan(unicode ? /#{patterns::GLOBAL_VARIABLE}/uo :
+ /#{patterns::GLOBAL_VARIABLE}/o)
+ kind = :global_variable
+
+ elsif match = scan(unicode ? /#{patterns::CLASS_VARIABLE}/uo :
+ /#{patterns::CLASS_VARIABLE}/o)
+ kind = :class_variable
+
+ else
+ if !unicode && !string.respond_to?(:encoding)
+ # check for unicode
+ debug, $DEBUG = $DEBUG, false
+ begin
+ if check(/./mu).size > 1
+ # seems like we should try again with unicode
+ unicode = true
+ end
+ rescue
+ # bad unicode char; use getch
+ ensure
+ $DEBUG = debug
+ end
+ next if unicode
+ end
+ kind = :error
+ match = scan(unicode ? /./mu : /./m)
+
+ end
+
+ elsif state == :def_expected
+ state = :initial
+ if scan(/self\./)
+ tokens << ['self', :pre_constant]
+ tokens << ['.', :operator]
+ end
+ if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
+ /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
+ kind = :method
+ else
+ next
+ end
+
+ elsif state == :module_expected
+ if match = scan(/<)
+ kind = :operator
+ else
+ state = :initial
+ if match = scan(unicode ? /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/uo :
+ /(?:#{patterns::IDENT}::)*#{patterns::IDENT}/o)
+ kind = :class
+ else
+ next
+ end
+ end
+
+ elsif state == :undef_expected
+ state = :undef_comma_expected
+ if match = scan(unicode ? /#{patterns::METHOD_NAME_EX}/uo :
+ /#{patterns::METHOD_NAME_EX}/o)
+ kind = :method
+ elsif match = scan(unicode ? /#{patterns::SYMBOL}/uo :
+ /#{patterns::SYMBOL}/o)
+ case delim = match[1]
+ when ?', ?"
+ tokens << [:open, :symbol]
+ tokens << [':', :symbol]
+ match = delim.chr
+ kind = :delimiter
+ state = patterns::StringState.new :symbol, delim == ?", match
+ state.next_state = :undef_comma_expected
+ else
+ kind = :symbol
+ end
+ else
+ state = :initial
+ next
+ end
+
+ elsif state == :alias_expected
+ match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
+ /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
+
+ if match
+ tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
+ tokens << [self[2], :space]
+ tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
+ end
+ state = :initial
+ next
+
+ elsif state == :undef_comma_expected
+ if match = scan(/,/)
+ kind = :operator
+ state = :undef_expected
+ else
+ state = :initial
+ next
+ end
+
+ end
+# }}}
+
+ unless kind == :error
+ if value_expected = value_expected == :set
+ value_expected = :expect_colon if match == '?' || match == 'when'
+ end
+ last_token_dot = last_token_dot == :set
+ end
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens unless match
+
+ tokens << [match, kind]
+
+ if last_state
+ state = last_state
+ last_state = nil
+ end
+ end
+ end
+
+ inline_block_stack << [state] if state.is_a? patterns::StringState
+ until inline_block_stack.empty?
+ this_block = inline_block_stack.pop
+ tokens << [:close, :inline] if this_block.size > 1
+ state = this_block.first
+ tokens << [:close, state.type]
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
+
+# vim:fdm=marker
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,62 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+e9ee13edf8cacf235b977434e09649dc
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7416
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,140 @@
+module CodeRay
+module Scanners
+
+ # YAML Scanner
+ #
+ # Based on the YAML scanner from Syntax by Jamis Buck.
+ class YAML < Scanner
+
+ register_for :yaml
+ file_extension 'yml'
+
+ KINDS_NOT_LOC = :all
+
+ def scan_tokens tokens, options
+
+ value_expected = nil
+ state = :initial
+ key_indent = indent = 0
+
+ until eos?
+
+ kind = nil
+ match = nil
+ key_indent = nil if bol?
+
+ if match = scan(/ +[\t ]*/)
+ kind = :space
+
+ elsif match = scan(/\n+/)
+ kind = :space
+ state = :initial if match.index(?\n)
+
+ elsif match = scan(/#.*/)
+ kind = :comment
+
+ elsif bol? and case
+ when match = scan(/---|\.\.\./)
+ tokens << [:open, :head]
+ tokens << [match, :head]
+ tokens << [:close, :head]
+ next
+ when match = scan(/%.*/)
+ tokens << [match, :doctype]
+ next
+ end
+
+ elsif state == :value and case
+ when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
+ tokens << [:open, :string]
+ tokens << [matched, :delimiter]
+ tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
+ tokens << [matched, :delimiter] if scan(/"/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/[|>][-+]?/)
+ tokens << [:open, :string]
+ tokens << [match, :delimiter]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ tokens << [:close, :string]
+ next
+ when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
+ tokens << [match, :string]
+ string_indent = key_indent || column(pos - match.size - 1)
+ tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
+ next
+ end
+
+ elsif case
+ when match = scan(/[-:](?= |$)/)
+ state = :value if state == :colon && (match == ':' || match == '-')
+ state = :value if state == :initial && match == '-'
+ kind = :operator
+ when match = scan(/[,{}\[\]]/)
+ kind = :operator
+ when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
+ kind = :key
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
+ tokens << [:open, :key]
+ tokens << [match[0,1], :delimiter]
+ tokens << [match[1..-2], :content]
+ tokens << [match[-1,1], :delimiter]
+ tokens << [:close, :key]
+ key_indent = column(pos - match.size - 1)
+ # tokens << [key_indent.inspect, :debug]
+ state = :colon
+ next
+ when scan(/(![\w\/]+)(:([\w:]+))?/)
+ tokens << [self[1], :type]
+ if self[2]
+ tokens << [':', :operator]
+ tokens << [self[3], :class]
+ end
+ next
+ when scan(/&\S+/)
+ kind = :variable
+ when scan(/\*\w+/)
+ kind = :global_variable
+ when scan(/<)
+ kind = :class_variable
+ when scan(/\d\d:\d\d:\d\d/)
+ kind = :oct
+ when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
+ kind = :oct
+ when scan(/:\w+/)
+ kind = :symbol
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
+ kind = :error
+ when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
+ kind = :error
+ end
+
+ else
+ getch
+ kind = :error
+
+ end
+
+ match ||= matched
+
+ if $CODERAY_DEBUG and not kind
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens, state
+ end
+ raise_inspect 'Empty token', tokens, state unless match
+
+ tokens << [match, kind]
+
+ end
+
+ tokens
+ end
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/style.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/style.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 69
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles
+END
+cycnus.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb
+END
+murphy.rb
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb
+END
+_map.rb
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/4739/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb
+END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/entries
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,130 @@
+10
+
+dir
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/coderay-0.9.7/lib/coderay/styles
+http://redmine.rubyforge.org/svn
+
+
+
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e93f8b46-1217-0410-a6f0-8f06a7374b81
+
+cycnus.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+59c9814fd238510473d64b6182ce4b6b
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3820
+
+murphy.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+8d8b1bc00f865483efa1de4ebb6157b3
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3371
+
+_map.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+9b92a72b99db4496e76665edb7b38c00
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57
+
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/_map.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/_map.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,7 @@
+module CodeRay
+module Styles
+
+ default :cycnus
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,152 @@
+module CodeRay
+module Styles
+
+ class Cycnus < Style
+
+ register_for :cycnus
+
+ code_background = '#f8f8f8'
+ numbers_background = '#def'
+ border_color = 'silver'
+ normal_color = '#000'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
+table.CodeRay td { padding: 2px 4px; vertical-align: top }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px }
+.CodeRay .code { width: 100% }
+
+ol.CodeRay { font-size: 10pt }
+ol.CodeRay li { white-space: pre }
+
+.CodeRay .code pre { overflow: auto }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.debug { color:white ! important; background:blue ! important; }
+
+.af { color:#00C }
+.an { color:#007 }
+.at { color:#f08 }
+.av { color:#700 }
+.aw { color:#C00 }
+.bi { color:#509; font-weight:bold }
+.c { color:#888; }
+
+.ch { color:#04D }
+.ch .k { color:#04D }
+.ch .dl { color:#039 }
+
+.cl { color:#B06; font-weight:bold }
+.cm { color:#A08; font-weight:bold }
+.co { color:#036; font-weight:bold }
+.cr { color:#0A0 }
+.cv { color:#369 }
+.de { color:#B0B; }
+.df { color:#099; font-weight:bold }
+.di { color:#088; font-weight:bold }
+.dl { color:black }
+.do { color:#970 }
+.dt { color:#34b }
+.ds { color:#D42; font-weight:bold }
+.e { color:#666; font-weight:bold }
+.en { color:#800; font-weight:bold }
+.er { color:#F00; background-color:#FAA }
+.ex { color:#C00; font-weight:bold }
+.fl { color:#60E; font-weight:bold }
+.fu { color:#06B; font-weight:bold }
+.gv { color:#d70; font-weight:bold }
+.hx { color:#058; font-weight:bold }
+.i { color:#00D; font-weight:bold }
+.ic { color:#B44; font-weight:bold }
+
+.il { background: #ddd; color: black }
+.il .il { background: #ccc }
+.il .il .il { background: #bbb }
+.il .idl { background: #ddd; font-weight: bold; color: #666 }
+.idl { background-color: #bbb; font-weight: bold; color: #666; }
+
+.im { color:#f00; }
+.in { color:#B2B; font-weight:bold }
+.iv { color:#33B }
+.la { color:#970; font-weight:bold }
+.lv { color:#963 }
+.oc { color:#40E; font-weight:bold }
+.of { color:#000; font-weight:bold }
+.op { }
+.pc { color:#038; font-weight:bold }
+.pd { color:#369; font-weight:bold }
+.pp { color:#579; }
+.ps { color:#00C; font-weight:bold }
+.pt { color:#074; font-weight:bold }
+.r, .kw { color:#080; font-weight:bold }
+
+.ke { color: #808; }
+.ke .dl { color: #606; }
+.ke .ch { color: #80f; }
+.vl { color: #088; }
+
+.rx { background-color:#fff0ff }
+.rx .k { color:#808 }
+.rx .dl { color:#404 }
+.rx .mod { color:#C2C }
+.rx .fu { color:#404; font-weight: bold }
+
+.s { background-color:#fff0f0; color: #D20; }
+.s .s { background-color:#ffe0e0 }
+.s .s .s { background-color:#ffd0d0 }
+.s .k { }
+.s .ch { color: #b0b; }
+.s .dl { color: #710; }
+
+.sh { background-color:#f0fff0; color:#2B2 }
+.sh .k { }
+.sh .dl { color:#161 }
+
+.sy { color:#A60 }
+.sy .k { color:#A60 }
+.sy .dl { color:#630 }
+
+.ta { color:#070 }
+.tf { color:#070; font-weight:bold }
+.ts { color:#D70; font-weight:bold }
+.ty { color:#339; font-weight:bold }
+.v { color:#036 }
+.xt { color:#444 }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,134 @@
+module CodeRay
+module Styles
+
+ class Murphy < Style
+
+ register_for :murphy
+
+ code_background = '#001129'
+ numbers_background = code_background
+ border_color = 'silver'
+ normal_color = '#C0C0C0'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px; }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
+table.CodeRay td { padding: 2px 4px; vertical-align: top; }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold; }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px; }
+.CodeRay .code { width: 100%; }
+
+ol.CodeRay { font-size: 10pt; }
+ol.CodeRay li { white-space: pre; }
+
+.CodeRay .code pre { overflow: auto; }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.af { color:#00C; }
+.an { color:#007; }
+.av { color:#700; }
+.aw { color:#C00; }
+.bi { color:#509; font-weight:bold; }
+.c { color:#555; background-color: black; }
+
+.ch { color:#88F; }
+.ch .k { color:#04D; }
+.ch .dl { color:#039; }
+
+.cl { color:#e9e; font-weight:bold; }
+.co { color:#5ED; font-weight:bold; }
+.cr { color:#0A0; }
+.cv { color:#ccf; }
+.df { color:#099; font-weight:bold; }
+.di { color:#088; font-weight:bold; }
+.dl { color:black; }
+.do { color:#970; }
+.ds { color:#D42; font-weight:bold; }
+.e { color:#666; font-weight:bold; }
+.er { color:#F00; background-color:#FAA; }
+.ex { color:#F00; font-weight:bold; }
+.fl { color:#60E; font-weight:bold; }
+.fu { color:#5ed; font-weight:bold; }
+.gv { color:#f84; }
+.hx { color:#058; font-weight:bold; }
+.i { color:#66f; font-weight:bold; }
+.ic { color:#B44; font-weight:bold; }
+.il { }
+.in { color:#B2B; font-weight:bold; }
+.iv { color:#aaf; }
+.la { color:#970; font-weight:bold; }
+.lv { color:#963; }
+.oc { color:#40E; font-weight:bold; }
+.of { color:#000; font-weight:bold; }
+.op { }
+.pc { color:#08f; font-weight:bold; }
+.pd { color:#369; font-weight:bold; }
+.pp { color:#579; }
+.pt { color:#66f; font-weight:bold; }
+.r { color:#5de; font-weight:bold; }
+.r, .kw { color:#5de; font-weight:bold }
+
+.ke { color: #808; }
+
+.rx { background-color:#221133; }
+.rx .k { color:#f8f; }
+.rx .dl { color:#f0f; }
+.rx .mod { color:#f0b; }
+.rx .fu { color:#404; font-weight: bold; }
+
+.s { background-color:#331122; }
+.s .s { background-color:#ffe0e0; }
+.s .s .s { background-color:#ffd0d0; }
+.s .k { color:#F88; }
+.s .dl { color:#f55; }
+
+.sh { background-color:#f0fff0; }
+.sh .k { color:#2B2; }
+.sh .dl { color:#161; }
+
+.sy { color:#Fc8; }
+.sy .k { color:#Fc8; }
+.sy .dl { color:#F84; }
+
+.ta { color:#070; }
+.tf { color:#070; font-weight:bold; }
+.ts { color:#D70; font-weight:bold; }
+.ty { color:#339; font-weight:bold; }
+.v { color:#036; }
+.xt { color:#444; }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/_map.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,7 @@
+module CodeRay
+module Styles
+
+ default :cycnus
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/cycnus.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,152 @@
+module CodeRay
+module Styles
+
+ class Cycnus < Style
+
+ register_for :cycnus
+
+ code_background = '#f8f8f8'
+ numbers_background = '#def'
+ border_color = 'silver'
+ normal_color = '#000'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
+table.CodeRay td { padding: 2px 4px; vertical-align: top }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px }
+.CodeRay .code { width: 100% }
+
+ol.CodeRay { font-size: 10pt }
+ol.CodeRay li { white-space: pre }
+
+.CodeRay .code pre { overflow: auto }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.debug { color:white ! important; background:blue ! important; }
+
+.af { color:#00C }
+.an { color:#007 }
+.at { color:#f08 }
+.av { color:#700 }
+.aw { color:#C00 }
+.bi { color:#509; font-weight:bold }
+.c { color:#888; }
+
+.ch { color:#04D }
+.ch .k { color:#04D }
+.ch .dl { color:#039 }
+
+.cl { color:#B06; font-weight:bold }
+.cm { color:#A08; font-weight:bold }
+.co { color:#036; font-weight:bold }
+.cr { color:#0A0 }
+.cv { color:#369 }
+.de { color:#B0B; }
+.df { color:#099; font-weight:bold }
+.di { color:#088; font-weight:bold }
+.dl { color:black }
+.do { color:#970 }
+.dt { color:#34b }
+.ds { color:#D42; font-weight:bold }
+.e { color:#666; font-weight:bold }
+.en { color:#800; font-weight:bold }
+.er { color:#F00; background-color:#FAA }
+.ex { color:#C00; font-weight:bold }
+.fl { color:#60E; font-weight:bold }
+.fu { color:#06B; font-weight:bold }
+.gv { color:#d70; font-weight:bold }
+.hx { color:#058; font-weight:bold }
+.i { color:#00D; font-weight:bold }
+.ic { color:#B44; font-weight:bold }
+
+.il { background: #ddd; color: black }
+.il .il { background: #ccc }
+.il .il .il { background: #bbb }
+.il .idl { background: #ddd; font-weight: bold; color: #666 }
+.idl { background-color: #bbb; font-weight: bold; color: #666; }
+
+.im { color:#f00; }
+.in { color:#B2B; font-weight:bold }
+.iv { color:#33B }
+.la { color:#970; font-weight:bold }
+.lv { color:#963 }
+.oc { color:#40E; font-weight:bold }
+.of { color:#000; font-weight:bold }
+.op { }
+.pc { color:#038; font-weight:bold }
+.pd { color:#369; font-weight:bold }
+.pp { color:#579; }
+.ps { color:#00C; font-weight:bold }
+.pt { color:#074; font-weight:bold }
+.r, .kw { color:#080; font-weight:bold }
+
+.ke { color: #808; }
+.ke .dl { color: #606; }
+.ke .ch { color: #80f; }
+.vl { color: #088; }
+
+.rx { background-color:#fff0ff }
+.rx .k { color:#808 }
+.rx .dl { color:#404 }
+.rx .mod { color:#C2C }
+.rx .fu { color:#404; font-weight: bold }
+
+.s { background-color:#fff0f0; color: #D20; }
+.s .s { background-color:#ffe0e0 }
+.s .s .s { background-color:#ffd0d0 }
+.s .k { }
+.s .ch { color: #b0b; }
+.s .dl { color: #710; }
+
+.sh { background-color:#f0fff0; color:#2B2 }
+.sh .k { }
+.sh .dl { color:#161 }
+
+.sy { color:#A60 }
+.sy .k { color:#A60 }
+.sy .dl { color:#630 }
+
+.ta { color:#070 }
+.tf { color:#070; font-weight:bold }
+.ts { color:#D70; font-weight:bold }
+.ty { color:#339; font-weight:bold }
+.v { color:#036 }
+.xt { color:#444 }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/styles/murphy.rb Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,134 @@
+module CodeRay
+module Styles
+
+ class Murphy < Style
+
+ register_for :murphy
+
+ code_background = '#001129'
+ numbers_background = code_background
+ border_color = 'silver'
+ normal_color = '#C0C0C0'
+
+ CSS_MAIN_STYLES = <<-MAIN
+.CodeRay {
+ background-color: #{code_background};
+ border: 1px solid #{border_color};
+ font-family: 'Courier New', 'Terminal', monospace;
+ color: #{normal_color};
+}
+.CodeRay pre { margin: 0px; }
+
+div.CodeRay { }
+
+span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
+
+table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
+table.CodeRay td { padding: 2px 4px; vertical-align: top; }
+
+.CodeRay .line_numbers, .CodeRay .no {
+ background-color: #{numbers_background};
+ color: gray;
+ text-align: right;
+}
+.CodeRay .line_numbers tt { font-weight: bold; }
+.CodeRay .line_numbers .highlighted { color: red }
+.CodeRay .line { display: block; float: left; width: 100%; }
+.CodeRay .no { padding: 0px 4px; }
+.CodeRay .code { width: 100%; }
+
+ol.CodeRay { font-size: 10pt; }
+ol.CodeRay li { white-space: pre; }
+
+.CodeRay .code pre { overflow: auto; }
+ MAIN
+
+ TOKEN_COLORS = <<-'TOKENS'
+.af { color:#00C; }
+.an { color:#007; }
+.av { color:#700; }
+.aw { color:#C00; }
+.bi { color:#509; font-weight:bold; }
+.c { color:#555; background-color: black; }
+
+.ch { color:#88F; }
+.ch .k { color:#04D; }
+.ch .dl { color:#039; }
+
+.cl { color:#e9e; font-weight:bold; }
+.co { color:#5ED; font-weight:bold; }
+.cr { color:#0A0; }
+.cv { color:#ccf; }
+.df { color:#099; font-weight:bold; }
+.di { color:#088; font-weight:bold; }
+.dl { color:black; }
+.do { color:#970; }
+.ds { color:#D42; font-weight:bold; }
+.e { color:#666; font-weight:bold; }
+.er { color:#F00; background-color:#FAA; }
+.ex { color:#F00; font-weight:bold; }
+.fl { color:#60E; font-weight:bold; }
+.fu { color:#5ed; font-weight:bold; }
+.gv { color:#f84; }
+.hx { color:#058; font-weight:bold; }
+.i { color:#66f; font-weight:bold; }
+.ic { color:#B44; font-weight:bold; }
+.il { }
+.in { color:#B2B; font-weight:bold; }
+.iv { color:#aaf; }
+.la { color:#970; font-weight:bold; }
+.lv { color:#963; }
+.oc { color:#40E; font-weight:bold; }
+.of { color:#000; font-weight:bold; }
+.op { }
+.pc { color:#08f; font-weight:bold; }
+.pd { color:#369; font-weight:bold; }
+.pp { color:#579; }
+.pt { color:#66f; font-weight:bold; }
+.r { color:#5de; font-weight:bold; }
+.r, .kw { color:#5de; font-weight:bold }
+
+.ke { color: #808; }
+
+.rx { background-color:#221133; }
+.rx .k { color:#f8f; }
+.rx .dl { color:#f0f; }
+.rx .mod { color:#f0b; }
+.rx .fu { color:#404; font-weight: bold; }
+
+.s { background-color:#331122; }
+.s .s { background-color:#ffe0e0; }
+.s .s .s { background-color:#ffd0d0; }
+.s .k { color:#F88; }
+.s .dl { color:#f55; }
+
+.sh { background-color:#f0fff0; }
+.sh .k { color:#2B2; }
+.sh .dl { color:#161; }
+
+.sy { color:#Fc8; }
+.sy .k { color:#Fc8; }
+.sy .dl { color:#F84; }
+
+.ta { color:#070; }
+.tf { color:#070; font-weight:bold; }
+.ts { color:#D70; font-weight:bold; }
+.ty { color:#339; font-weight:bold; }
+.v { color:#036; }
+.xt { color:#444; }
+
+.ins { background: #afa; }
+.del { background: #faa; }
+.chg { color: #aaf; background: #007; }
+.head { color: #f8f; background: #505 }
+
+.ins .ins { color: #080; font-weight:bold }
+.del .del { color: #800; font-weight:bold }
+.chg .chg { color: #66f; }
+.head .head { color: #f4f; }
+ TOKENS
+
+ end
+
+end
+end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/lib/coderay/token_classes.rb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/lib/coderay/token_classes.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,31 @@
+10
+
+dir
+4993
+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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,436 @@
+10
+
+dir
+4993
+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-03-03T11:05:13.000000Z
+060e0137b69ee9015c13d2a7b52f7ba5
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6844
+
+vhdl.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+68592e4216555f25218f67641cd04879
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3508
+
+vhdl.rbc
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+756a012d3c51e759ecf3aba421b79d26
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7459
+
+basic.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+4c2c76c7fec083da0817c917495fe273
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3081
+
+basic.rbc
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+2dc7e681d05b65ad084db2cb31db57a4
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7680
+
+load_plugin_scanner.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+9bb16867dc01035932f0ce2491457d4a
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+231
+
+word_list.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+a1077af2bb080972689e1c7c1b00f5cd
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2167
+
+load_plugin_scanner.rbc
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+a7da576f27c98ef97a1845982ed43fd8
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1145
+
+suite.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+c5ad97b377df804994bb80e0d903a954
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+265
+
+word_list.rbc
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+bb7279f9b4099e57f551ae9992e03128
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5584
+
+for_redcloth.rb
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+dc96a8219c522571f990cfe3702a428f
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3001
+
+suite.rbc
+file
+
+
+
+
+2011-03-03T11:05:13.000000Z
+534ae63cbcff177038141b589f7fd0fa
+2011-01-22T13:18:01.557255Z
+4739
+jplang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1035
+
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,77 @@
+require 'test/unit'
+$:.unshift 'lib'
+require 'coderay'
+
+begin
+ require 'rubygems' unless defined? Gem
+ gem 'RedCloth', '>= 4.0.3' rescue nil
+ require 'redcloth'
+rescue LoadError
+ warn 'RedCloth not found - skipping for_redcloth tests.'
+end
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_for_redcloth
+ require 'coderay/for_redcloth'
+ assert_equal "puts "Hello, World!" ",
+ RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_no_lang
+ require 'coderay/for_redcloth'
+ assert_equal "puts \"Hello, World!\" ",
+ RedCloth.new('@puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_style
+ require 'coderay/for_redcloth'
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_escapes
+ require 'coderay/for_redcloth'
+ assert_equal '> ',
+ RedCloth.new('@[ruby]>@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. &').to_html
+ end
+
+ def test_for_redcloth_escapes2
+ require 'coderay/for_redcloth'
+ assert_equal "#include <test.h> ",
+ RedCloth.new('@[c]#include @').to_html
+ end
+
+ # See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets.
+ def test_for_redcloth_false_positive
+ require 'coderay/for_redcloth'
+ assert_equal '[project]_dff.skjd ',
+ RedCloth.new('@[project]_dff.skjd@').to_html
+ # false positive, but expected behavior / known issue
+ assert_equal "_dff.skjd ",
+ RedCloth.new('@[ruby]_dff.skjd@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+[project]_dff.skjd
+ BLOCKCODE
+ RedCloth.new('bc. [project]_dff.skjd').to_html
+ end
+
+end if defined? RedCloth
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,1708 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+249
+5
+7
+0
+64
+47
+49
+1
+1
+15
+99
+43
+2
+7
+3
+49
+4
+1
+7
+5
+64
+49
+6
+1
+15
+5
+7
+7
+64
+47
+49
+1
+1
+15
+26
+93
+0
+15
+29
+144
+0
+26
+93
+1
+15
+29
+55
+0
+7
+8
+98
+9
+1
+30
+8
+61
+25
+92
+1
+27
+8
+66
+15
+7
+10
+8
+67
+1
+9
+72
+1
+8
+80
+5
+7
+11
+64
+47
+49
+1
+1
+15
+26
+93
+2
+15
+29
+102
+0
+5
+7
+12
+64
+7
+13
+64
+47
+49
+14
+2
+30
+8
+129
+26
+93
+3
+15
+24
+13
+45
+15
+16
+12
+49
+17
+1
+10
+119
+8
+124
+15
+1
+25
+8
+129
+15
+92
+3
+27
+34
+92
+2
+27
+15
+5
+7
+18
+64
+47
+49
+1
+1
+30
+8
+178
+26
+93
+4
+15
+24
+13
+45
+19
+20
+12
+49
+17
+1
+10
+161
+8
+173
+15
+5
+7
+21
+64
+47
+49
+22
+1
+25
+8
+178
+15
+92
+4
+27
+34
+92
+0
+27
+15
+26
+93
+5
+15
+29
+197
+0
+7
+23
+98
+9
+1
+30
+8
+203
+25
+92
+5
+27
+8
+208
+15
+7
+10
+8
+209
+1
+9
+245
+99
+7
+24
+45
+25
+26
+43
+27
+43
+28
+65
+49
+29
+3
+13
+99
+12
+7
+30
+12
+7
+31
+12
+65
+12
+49
+32
+4
+15
+49
+30
+0
+8
+246
+1
+15
+2
+11
+I
+c
+I
+0
+I
+0
+I
+0
+n
+p
+33
+s
+9
+test/unit
+x
+7
+require
+x
+7
+Globals
+x
+2
+$:
+x
+2
+[]
+s
+3
+lib
+x
+2
+<<
+s
+7
+coderay
+x
+3
+Gem
+x
+16
+vm_const_defined
+s
+8
+constant
+s
+8
+rubygems
+s
+8
+RedCloth
+s
+8
+>= 4.0.3
+x
+3
+gem
+x
+13
+StandardError
+n
+x
+3
+===
+s
+8
+redcloth
+x
+9
+LoadError
+n
+s
+49
+RedCloth not found - skipping for_redcloth tests.
+x
+4
+warn
+x
+8
+RedCloth
+x
+9
+BasicTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+9
+BasicTest
+i
+86
+5
+66
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+4
+7
+5
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+6
+7
+7
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+8
+7
+9
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+10
+7
+11
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+12
+7
+13
+65
+67
+49
+2
+0
+49
+3
+4
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+14
+x
+17
+test_for_redcloth
+M
+1
+n
+n
+x
+17
+test_for_redcloth
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+221
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+28
+@[ruby]puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+252
+
+
+x
+5
+chomp
+n
+s
+30
+bc[ruby]. puts "Hello, World!"
+p
+17
+I
+0
+I
+f
+I
+0
+I
+10
+I
+9
+I
+11
+I
+d
+I
+12
+I
+2e
+I
+11
+I
+33
+I
+13
+I
+3a
+I
+18
+I
+5b
+I
+13
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+x
+25
+test_for_redcloth_no_lang
+M
+1
+n
+n
+x
+25
+test_for_redcloth_no_lang
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+40
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+45
+puts "Hello, World!"
+
+x
+5
+chomp
+n
+s
+24
+bc. puts "Hello, World!"
+p
+17
+I
+0
+I
+1b
+I
+0
+I
+1c
+I
+9
+I
+1d
+I
+d
+I
+1e
+I
+2e
+I
+1d
+I
+33
+I
+1f
+I
+3a
+I
+22
+I
+5b
+I
+1f
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+23
+test_for_redcloth_style
+M
+1
+n
+n
+x
+23
+test_for_redcloth_style
+i
+54
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+49
+3
+0
+45
+4
+5
+13
+71
+6
+47
+9
+40
+47
+49
+7
+0
+13
+7
+8
+64
+47
+49
+9
+1
+15
+8
+46
+7
+8
+64
+49
+6
+1
+49
+10
+0
+47
+49
+11
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+85
+puts "Hello, World!"
+
+x
+5
+chomp
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+36
+bc{color: red}. puts "Hello, World!"
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+25
+I
+0
+I
+26
+I
+9
+I
+27
+I
+10
+I
+2a
+I
+31
+I
+27
+I
+36
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+25
+test_for_redcloth_escapes
+M
+1
+n
+n
+x
+25
+test_for_redcloth_escapes
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+52
+>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+9
+@[ruby]>@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+84
+
+
+x
+5
+chomp
+n
+s
+11
+bc[ruby]. &
+p
+17
+I
+0
+I
+2d
+I
+0
+I
+2e
+I
+9
+I
+2f
+I
+d
+I
+30
+I
+2e
+I
+2f
+I
+33
+I
+31
+I
+3a
+I
+36
+I
+5b
+I
+31
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+26
+test_for_redcloth_escapes2
+M
+1
+n
+n
+x
+26
+test_for_redcloth_escapes2
+i
+51
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+11
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+149
+#include <test.h>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@[c]#include @
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+39
+I
+0
+I
+3a
+I
+9
+I
+3b
+I
+d
+I
+3c
+I
+2e
+I
+3b
+I
+33
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+32
+test_for_redcloth_false_positive
+M
+1
+n
+n
+x
+32
+test_for_redcloth_false_positive
+i
+138
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+45
+3
+12
+13
+71
+5
+47
+9
+79
+47
+49
+6
+0
+13
+7
+13
+64
+47
+49
+8
+1
+15
+8
+85
+7
+13
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+14
+64
+49
+15
+0
+45
+3
+16
+13
+71
+5
+47
+9
+124
+47
+49
+6
+0
+13
+7
+17
+64
+47
+49
+8
+1
+15
+8
+130
+7
+17
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+18
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+38
+[project]_dff.skjd
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+20
+@[project]_dff.skjd@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+57
+_dff.skjd
+n
+s
+17
+@[ruby]_dff.skjd@
+s
+43
+[project]_dff.skjd
+
+x
+5
+chomp
+n
+s
+22
+bc. [project]_dff.skjd
+p
+23
+I
+0
+I
+40
+I
+0
+I
+41
+I
+9
+I
+42
+I
+d
+I
+43
+I
+2e
+I
+42
+I
+33
+I
+45
+I
+37
+I
+46
+I
+58
+I
+45
+I
+5d
+I
+47
+I
+64
+I
+4a
+I
+85
+I
+47
+I
+8a
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+p
+13
+I
+2
+I
+f
+I
+10
+I
+1b
+I
+1e
+I
+25
+I
+2c
+I
+2d
+I
+3a
+I
+39
+I
+48
+I
+40
+I
+56
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+13
+attach_method
+p
+23
+I
+0
+I
+1
+I
+9
+I
+2
+I
+18
+I
+3
+I
+21
+I
+6
+I
+51
+I
+7
+I
+85
+I
+8
+I
+95
+I
+9
+I
+a2
+I
+a
+I
+b6
+I
+4d
+I
+d3
+I
+d
+I
+f5
+I
+4d
+I
+f9
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/basic.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/basic.rbc Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,77 @@
+require 'test/unit'
+$:.unshift 'lib'
+require 'coderay'
+
+begin
+ require 'rubygems' unless defined? Gem
+ gem 'RedCloth', '>= 4.0.3' rescue nil
+ require 'redcloth'
+rescue LoadError
+ warn 'RedCloth not found - skipping for_redcloth tests.'
+end
+
+class BasicTest < Test::Unit::TestCase
+
+ def test_for_redcloth
+ require 'coderay/for_redcloth'
+ assert_equal "puts "Hello, World!" ",
+ RedCloth.new('@[ruby]puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_no_lang
+ require 'coderay/for_redcloth'
+ assert_equal "puts \"Hello, World!\" ",
+ RedCloth.new('@puts "Hello, World!"@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_style
+ require 'coderay/for_redcloth'
+ assert_equal <<-BLOCKCODE.chomp,
+puts \"Hello, World!\"
+ BLOCKCODE
+ RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html
+ end
+
+ def test_for_redcloth_escapes
+ require 'coderay/for_redcloth'
+ assert_equal '> ',
+ RedCloth.new('@[ruby]>@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+
+ BLOCKCODE
+ RedCloth.new('bc[ruby]. &').to_html
+ end
+
+ def test_for_redcloth_escapes2
+ require 'coderay/for_redcloth'
+ assert_equal "#include <test.h> ",
+ RedCloth.new('@[c]#include @').to_html
+ end
+
+ # See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets.
+ def test_for_redcloth_false_positive
+ require 'coderay/for_redcloth'
+ assert_equal '[project]_dff.skjd ',
+ RedCloth.new('@[project]_dff.skjd@').to_html
+ # false positive, but expected behavior / known issue
+ assert_equal "_dff.skjd ",
+ RedCloth.new('@[ruby]_dff.skjd@').to_html
+ assert_equal <<-BLOCKCODE.chomp,
+[project]_dff.skjd
+ BLOCKCODE
+ RedCloth.new('bc. [project]_dff.skjd').to_html
+ end
+
+end if defined? RedCloth
\ No newline at end of file
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/for_redcloth.rbc Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,1708 @@
+!RBIX
+0
+x
+M
+1
+n
+n
+x
+10
+__script__
+i
+249
+5
+7
+0
+64
+47
+49
+1
+1
+15
+99
+43
+2
+7
+3
+49
+4
+1
+7
+5
+64
+49
+6
+1
+15
+5
+7
+7
+64
+47
+49
+1
+1
+15
+26
+93
+0
+15
+29
+144
+0
+26
+93
+1
+15
+29
+55
+0
+7
+8
+98
+9
+1
+30
+8
+61
+25
+92
+1
+27
+8
+66
+15
+7
+10
+8
+67
+1
+9
+72
+1
+8
+80
+5
+7
+11
+64
+47
+49
+1
+1
+15
+26
+93
+2
+15
+29
+102
+0
+5
+7
+12
+64
+7
+13
+64
+47
+49
+14
+2
+30
+8
+129
+26
+93
+3
+15
+24
+13
+45
+15
+16
+12
+49
+17
+1
+10
+119
+8
+124
+15
+1
+25
+8
+129
+15
+92
+3
+27
+34
+92
+2
+27
+15
+5
+7
+18
+64
+47
+49
+1
+1
+30
+8
+178
+26
+93
+4
+15
+24
+13
+45
+19
+20
+12
+49
+17
+1
+10
+161
+8
+173
+15
+5
+7
+21
+64
+47
+49
+22
+1
+25
+8
+178
+15
+92
+4
+27
+34
+92
+0
+27
+15
+26
+93
+5
+15
+29
+197
+0
+7
+23
+98
+9
+1
+30
+8
+203
+25
+92
+5
+27
+8
+208
+15
+7
+10
+8
+209
+1
+9
+245
+99
+7
+24
+45
+25
+26
+43
+27
+43
+28
+65
+49
+29
+3
+13
+99
+12
+7
+30
+12
+7
+31
+12
+65
+12
+49
+32
+4
+15
+49
+30
+0
+8
+246
+1
+15
+2
+11
+I
+c
+I
+0
+I
+0
+I
+0
+n
+p
+33
+s
+9
+test/unit
+x
+7
+require
+x
+7
+Globals
+x
+2
+$:
+x
+2
+[]
+s
+3
+lib
+x
+2
+<<
+s
+7
+coderay
+x
+3
+Gem
+x
+16
+vm_const_defined
+s
+8
+constant
+s
+8
+rubygems
+s
+8
+RedCloth
+s
+8
+>= 4.0.3
+x
+3
+gem
+x
+13
+StandardError
+n
+x
+3
+===
+s
+8
+redcloth
+x
+9
+LoadError
+n
+s
+49
+RedCloth not found - skipping for_redcloth tests.
+x
+4
+warn
+x
+8
+RedCloth
+x
+9
+BasicTest
+x
+4
+Test
+n
+x
+4
+Unit
+x
+8
+TestCase
+x
+10
+open_class
+x
+14
+__class_init__
+M
+1
+n
+n
+x
+9
+BasicTest
+i
+86
+5
+66
+99
+7
+0
+7
+1
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+4
+7
+5
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+6
+7
+7
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+8
+7
+9
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+10
+7
+11
+65
+67
+49
+2
+0
+49
+3
+4
+15
+99
+7
+12
+7
+13
+65
+67
+49
+2
+0
+49
+3
+4
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+14
+x
+17
+test_for_redcloth
+M
+1
+n
+n
+x
+17
+test_for_redcloth
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+221
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+28
+@[ruby]puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+252
+
+
+x
+5
+chomp
+n
+s
+30
+bc[ruby]. puts "Hello, World!"
+p
+17
+I
+0
+I
+f
+I
+0
+I
+10
+I
+9
+I
+11
+I
+d
+I
+12
+I
+2e
+I
+11
+I
+33
+I
+13
+I
+3a
+I
+18
+I
+5b
+I
+13
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+17
+method_visibility
+x
+15
+add_defn_method
+x
+25
+test_for_redcloth_no_lang
+M
+1
+n
+n
+x
+25
+test_for_redcloth_no_lang
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+40
+puts "Hello, World!"
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@puts "Hello, World!"@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+45
+puts "Hello, World!"
+
+x
+5
+chomp
+n
+s
+24
+bc. puts "Hello, World!"
+p
+17
+I
+0
+I
+1b
+I
+0
+I
+1c
+I
+9
+I
+1d
+I
+d
+I
+1e
+I
+2e
+I
+1d
+I
+33
+I
+1f
+I
+3a
+I
+22
+I
+5b
+I
+1f
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+23
+test_for_redcloth_style
+M
+1
+n
+n
+x
+23
+test_for_redcloth_style
+i
+54
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+49
+3
+0
+45
+4
+5
+13
+71
+6
+47
+9
+40
+47
+49
+7
+0
+13
+7
+8
+64
+47
+49
+9
+1
+15
+8
+46
+7
+8
+64
+49
+6
+1
+49
+10
+0
+47
+49
+11
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+12
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+85
+puts "Hello, World!"
+
+x
+5
+chomp
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+36
+bc{color: red}. puts "Hello, World!"
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+25
+I
+0
+I
+26
+I
+9
+I
+27
+I
+10
+I
+2a
+I
+31
+I
+27
+I
+36
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+25
+test_for_redcloth_escapes
+M
+1
+n
+n
+x
+25
+test_for_redcloth_escapes
+i
+96
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+49
+12
+0
+45
+3
+13
+13
+71
+5
+47
+9
+82
+47
+49
+6
+0
+13
+7
+14
+64
+47
+49
+8
+1
+15
+8
+88
+7
+14
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+15
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+52
+>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+9
+@[ruby]>@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+84
+
+
+x
+5
+chomp
+n
+s
+11
+bc[ruby]. &
+p
+17
+I
+0
+I
+2d
+I
+0
+I
+2e
+I
+9
+I
+2f
+I
+d
+I
+30
+I
+2e
+I
+2f
+I
+33
+I
+31
+I
+3a
+I
+36
+I
+5b
+I
+31
+I
+60
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+26
+test_for_redcloth_escapes2
+M
+1
+n
+n
+x
+26
+test_for_redcloth_escapes2
+i
+51
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+11
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+149
+#include <test.h>
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+22
+@[c]#include @
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+p
+11
+I
+0
+I
+39
+I
+0
+I
+3a
+I
+9
+I
+3b
+I
+d
+I
+3c
+I
+2e
+I
+3b
+I
+33
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+32
+test_for_redcloth_false_positive
+M
+1
+n
+n
+x
+32
+test_for_redcloth_false_positive
+i
+138
+5
+7
+0
+64
+47
+49
+1
+1
+15
+5
+7
+2
+64
+45
+3
+4
+13
+71
+5
+47
+9
+37
+47
+49
+6
+0
+13
+7
+7
+64
+47
+49
+8
+1
+15
+8
+43
+7
+7
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+11
+64
+45
+3
+12
+13
+71
+5
+47
+9
+79
+47
+49
+6
+0
+13
+7
+13
+64
+47
+49
+8
+1
+15
+8
+85
+7
+13
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+15
+5
+7
+14
+64
+49
+15
+0
+45
+3
+16
+13
+71
+5
+47
+9
+124
+47
+49
+6
+0
+13
+7
+17
+64
+47
+49
+8
+1
+15
+8
+130
+7
+17
+64
+49
+5
+1
+49
+9
+0
+47
+49
+10
+2
+11
+I
+5
+I
+0
+I
+0
+I
+0
+n
+p
+18
+s
+20
+coderay/for_redcloth
+x
+7
+require
+s
+38
+[project]_dff.skjd
+x
+8
+RedCloth
+n
+x
+3
+new
+x
+8
+allocate
+s
+20
+@[project]_dff.skjd@
+x
+10
+initialize
+x
+7
+to_html
+x
+12
+assert_equal
+s
+57
+_dff.skjd
+n
+s
+17
+@[ruby]_dff.skjd@
+s
+43
+[project]_dff.skjd
+
+x
+5
+chomp
+n
+s
+22
+bc. [project]_dff.skjd
+p
+23
+I
+0
+I
+40
+I
+0
+I
+41
+I
+9
+I
+42
+I
+d
+I
+43
+I
+2e
+I
+42
+I
+33
+I
+45
+I
+37
+I
+46
+I
+58
+I
+45
+I
+5d
+I
+47
+I
+64
+I
+4a
+I
+85
+I
+47
+I
+8a
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+p
+13
+I
+2
+I
+f
+I
+10
+I
+1b
+I
+1e
+I
+25
+I
+2c
+I
+2d
+I
+3a
+I
+39
+I
+48
+I
+40
+I
+56
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
+x
+13
+attach_method
+p
+23
+I
+0
+I
+1
+I
+9
+I
+2
+I
+18
+I
+3
+I
+21
+I
+6
+I
+51
+I
+7
+I
+85
+I
+8
+I
+95
+I
+9
+I
+a2
+I
+a
+I
+b6
+I
+4d
+I
+d3
+I
+d
+I
+f5
+I
+4d
+I
+f9
+x
+62
+/Users/murphy/ruby/coderay-0.9/test/functional/for_redcloth.rb
+p
+0
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/load_plugin_scanner.rbc Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/suite.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/suite.rbc Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/vhdl.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/vhdl.rbc Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 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 Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/coderay-0.9.7/test/functional/word_list.rbc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/gems/coderay-0.9.7/test/functional/word_list.rbc Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/gems/rubytree-0.5.2/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/gems/rubytree-0.5.2
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
48b46ff6764d5b76e1ad138669923aff
2009-11-25T05:36:44.792571Z
3090
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
954df52967073c3833d9c565bb4b1ea8
2009-11-25T05:36:44.792571Z
3090
@@ -103,7 +103,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
f3e96d4b9eeb3d0c4d841c7c7ea6259c
2009-11-25T05:36:44.792571Z
3090
@@ -137,7 +137,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
7a9a6ee34490c5d9c4148c7cf8f85034
2009-11-25T05:36:44.792571Z
3090
@@ -171,7 +171,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
82301a43d2504d992ba1cfd7839b2d7e
2009-11-25T05:36:44.792571Z
3090
@@ -208,7 +208,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
b15b8164d281daa7c7028cdda9635950
2009-11-25T05:36:44.792571Z
3090
@@ -242,7 +242,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
25d0fdd6b9633f784544a5c000dc1351
2009-11-25T05:36:44.792571Z
3090
@@ -276,7 +276,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
13d490389c788748b3931b9e09b2b4d4
2009-11-25T05:36:44.792571Z
3090
@@ -310,7 +310,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
5906fb8bdb4197fe19171f795952ed9d
2009-11-25T05:36:44.792571Z
3090
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/rubytree-0.5.2/lib/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/gems/rubytree-0.5.2/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
46e46766767dc3a96b3019d385a5af83
2009-11-25T05:36:44.792571Z
3090
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/lib/tree/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/gems/rubytree-0.5.2/lib/tree
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/lib/tree
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
54320f0ffbb41fa9d99ab2d617636ea1
2009-11-25T05:36:44.792571Z
3090
diff -r fca2657f4aa5 -r eeebe205a056 vendor/gems/rubytree-0.5.2/test/.svn/entries
--- a/vendor/gems/rubytree-0.5.2/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/gems/rubytree-0.5.2/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/gems/rubytree-0.5.2/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/gems/rubytree-0.5.2/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
bd5257614b958bab00916feffc4fa9ae
2009-11-25T05:36:44.792571Z
3090
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
b9b4a1d43e859491e80fb1e2c7499d20
2009-11-25T05:36:44.792571Z
3090
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/.svn/all-wcprops
--- a/vendor/plugins/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/.svn/all-wcprops Thu Mar 03 12:02:03 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/4891/trunk/vendor/plugins
END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/.svn/entries
--- a/vendor/plugins/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/vendor/plugins
http://redmine.rubyforge.org/svn
-2011-01-01T11:45:12.617336Z
-4602
+2011-02-20T14:26:23.957459Z
+4891
jplang
@@ -44,9 +44,6 @@
classic_pagination
dir
-coderay-0.9.2
-dir
-
acts_as_versioned
dir
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_activity_provider/.svn/entries
--- a/vendor/plugins/acts_as_activity_provider/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_activity_provider/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_activity_provider
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
779d73c171dc111df084a0798cca73e2
2008-07-27T17:54:09.197937Z
1701
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_activity_provider/lib/.svn/entries
--- a/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_activity_provider/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_activity_provider/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_activity_provider/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
21fbeb28c4ce556d2534306b96be9497
2008-12-08T18:20:26.452857Z
2114
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_attachable/.svn/entries
--- a/vendor/plugins/acts_as_attachable/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_attachable/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_attachable
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
b215588c95e69b4bb8f91ad91606bfbe
2008-12-09T16:54:46.963649Z
2116
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_attachable/lib/.svn/entries
--- a/vendor/plugins/acts_as_attachable/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_attachable/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_attachable/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_attachable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
982227c44f1fe848c8aeed862ea027f3
2010-03-03T17:05:00.967826Z
3528
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/.svn/all-wcprops
--- a/vendor/plugins/acts_as_customizable/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
K 25
svn:wc:ra_dav:version-url
V 60
-/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable
+/svn/!svn/ver/4891/trunk/vendor/plugins/acts_as_customizable
END
init.rb
K 25
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/.svn/entries
--- a/vendor/plugins/acts_as_customizable/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_customizable
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable
http://redmine.rubyforge.org/svn
-2010-12-10T10:48:16.342425Z
-4481
+2011-02-20T14:26:23.957459Z
+4891
jplang
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
0d1f178b7636d6712b38304954530928
2008-06-27T20:13:56.888432Z
1592
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops
--- a/vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -1,11 +1,11 @@
K 25
svn:wc:ra_dav:version-url
V 64
-/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable/lib
+/svn/!svn/ver/4891/trunk/vendor/plugins/acts_as_customizable/lib
END
acts_as_customizable.rb
K 25
svn:wc:ra_dav:version-url
V 88
-/svn/!svn/ver/4481/trunk/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
+/svn/!svn/ver/4891/trunk/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/lib/.svn/entries
--- a/vendor/plugins/acts_as_customizable/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
+4993
http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_customizable/lib
http://redmine.rubyforge.org/svn
-2010-12-10T10:48:16.342425Z
-4481
+2011-02-20T14:26:23.957459Z
+4891
jplang
@@ -32,10 +32,10 @@
-2011-01-13T14:09:38.000000Z
-cef2f70b94f09391acec6dea08160454
-2010-12-10T10:48:16.342425Z
-4481
+2011-03-03T11:40:18.000000Z
+2a7f0cd4a6b5d7f58a12567604697208
+2011-02-20T14:26:23.957459Z
+4891
jplang
has-props
@@ -58,5 +58,5 @@
-4418
+4469
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base
--- a/vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/.svn/text-base/acts_as_customizable.rb.svn-base Thu Mar 03 12:02:03 2011 +0000
@@ -71,6 +71,7 @@
custom_field_values.each do |custom_value|
custom_value.value = values[custom_value.custom_field_id.to_s] if values.has_key?(custom_value.custom_field_id.to_s)
end if values.is_a?(Hash)
+ self.custom_values = custom_field_values
end
def custom_field_values
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb
--- a/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_customizable/lib/acts_as_customizable.rb Thu Mar 03 12:02:03 2011 +0000
@@ -71,6 +71,7 @@
custom_field_values.each do |custom_value|
custom_value.value = values[custom_value.custom_field_id.to_s] if values.has_key?(custom_value.custom_field_id.to_s)
end if values.is_a?(Hash)
+ self.custom_values = custom_field_values
end
def custom_field_values
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_event/.svn/entries
--- a/vendor/plugins/acts_as_event/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_event/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_event
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
60df7ab698ddd0c3701bb0efbb8233cf
2007-08-29T16:52:35.680643Z
674
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_event/lib/.svn/entries
--- a/vendor/plugins/acts_as_event/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_event/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_event/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_event/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
ca8e33777d59976db870f71defe5f66d
2010-04-30T10:45:21.145380Z
3703
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_list/.svn/entries
--- a/vendor/plugins/acts_as_list/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_list/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_list
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
0bdbdc825f80fda1a94852a82b68ffd4
2007-12-10T17:58:07.273873Z
975
@@ -72,7 +72,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
42212b5cb681c9888d56f9c0f36e1e02
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_list/lib/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_list/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_list/lib/active_record/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_list/lib/active_record
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/lib/active_record
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries
--- a/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_list/lib/active_record/acts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_list/lib/active_record/acts
+4993
+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-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
a3ee41e8bed56868bc2e4ab2cb7df73a
2009-02-26T09:21:41.696815Z
2526
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_list/test/.svn/entries
--- a/vendor/plugins/acts_as_list/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_list/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_list/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_list/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
3d41debf5c631e88295d337507c3b5b6
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_searchable/.svn/entries
--- a/vendor/plugins/acts_as_searchable/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_searchable/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_searchable
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
7512fe68c7dfbb57e956d22b9aa8f8ed
2007-09-27T17:28:22.154371Z
766
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_searchable/lib/.svn/entries
--- a/vendor/plugins/acts_as_searchable/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_searchable/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_searchable/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_searchable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
f282f30a34a9560d7ef3d5883aba5fe9
2010-02-17T20:20:51.097274Z
3445
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/.svn/entries
--- a/vendor/plugins/acts_as_tree/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
77667cb4c41516750075eefb98896a93
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
581c104f87fe90cfe9a7d1d41d77c84f
2007-12-10T17:58:07.273873Z
975
@@ -106,7 +106,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
918c85e850eb84259c178529b9aafd62
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/lib/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/lib/active_record/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree/lib/active_record
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/lib/active_record
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries
--- a/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/lib/active_record/acts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree/lib/active_record/acts
+4993
+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-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
544900d884182d6888334ce14323bef0
2009-04-21T12:19:56.547537Z
2676
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/test/.svn/entries
--- a/vendor/plugins/acts_as_tree/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -137,7 +137,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
7bd3d48984d0e563b9f5e20ca8fdff81
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_tree/test/fixtures/.svn/entries
--- a/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_tree/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_tree/test/fixtures
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_tree/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_versioned/.svn/entries
--- a/vendor/plugins/acts_as_versioned/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_versioned
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
8aae554c93cc60ef98cb3da2dd7c1b4b
2007-03-04T13:40:21.895320Z
290
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
1f57ce7fac2d625797b9ec6d6480cf5b
2008-07-04T17:58:14.743502Z
1623
@@ -103,7 +103,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
1d117218f55938f9c75f1f814a4915d1
2007-03-04T13:40:21.895320Z
290
@@ -140,7 +140,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
3aa6f483cf322e248d4a1281160f8845
2007-03-04T13:40:21.895320Z
290
@@ -174,7 +174,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
e4ba7226e637685b5cca7a9cc5c05af2
2007-03-04T13:40:21.895320Z
290
@@ -208,7 +208,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
06ee73d1b4ad386b681f88b9326a0685
2007-03-04T13:40:21.895320Z
290
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_versioned/lib/.svn/entries
--- a/vendor/plugins/acts_as_versioned/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_versioned/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
474fc02132fce15712540924bb7b22cf
2008-07-04T17:58:14.743502Z
1623
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_versioned/test/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_versioned/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
8a2eaa42c29dc84e0c018e78c99987f1
2008-07-04T17:58:14.743502Z
1623
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
df4118ed0edd4b3a0bae0cbb3b7a8a6b
2007-03-04T13:40:21.895320Z
290
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
99f5a4aa22b79a8f8c7521a0b1e9ec3e
2008-07-04T17:58:14.743502Z
1623
@@ -134,7 +134,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
c5ac373bf98e48576df3a63ab4349883
2007-03-04T13:40:21.895320Z
290
@@ -171,7 +171,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
eb28101ab94f672b3a99998fc03f0d38
2008-07-04T17:58:14.743502Z
1623
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_versioned/test/fixtures
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
6052582a74186e97a71e6d50ff1c3558
2007-03-04T13:40:21.895320Z
290
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
35aca448cc30c958ad2f3a8130903701
2007-03-04T13:40:21.895320Z
290
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
df240cb0129f29834aea167ea97df5c9
2007-03-04T13:40:21.895320Z
290
@@ -134,7 +134,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
3e63e88f04d92531412a5e328670313d
2007-03-04T13:40:21.895320Z
290
@@ -168,7 +168,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
9e0c65a239dc63caf3ba5b61e5acd86b
2007-03-04T13:40:21.895320Z
290
@@ -202,7 +202,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
c9631a233cff08e617f783f2c5d4ebcb
2007-03-04T13:40:21.895320Z
290
@@ -236,7 +236,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
6cbb9a0d4b22160edce9cdd270943fcd
2008-07-04T17:58:14.743502Z
1623
@@ -270,7 +270,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
7845068722476900746d101729c30187
2007-03-04T13:40:21.895320Z
290
@@ -307,7 +307,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
ebfb47357586fa12e4524a65ba0a714a
2007-03-04T13:40:21.895320Z
290
@@ -341,7 +341,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
a93535c95869678b16df898b8de4259f
2007-03-04T13:40:21.895320Z
290
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries
--- a/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_versioned/test/fixtures/migrations/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_versioned/test/fixtures/migrations
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_versioned/test/fixtures/migrations
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
8fca6192aeeba1c8456bd6ac6199839f
2007-03-04T13:40:21.895320Z
290
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_watchable/.svn/entries
--- a/vendor/plugins/acts_as_watchable/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_watchable/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_watchable
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
7051267daa625f991f2b604afde255ff
2007-04-21T12:08:31.130506Z
453
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/acts_as_watchable/lib/.svn/entries
--- a/vendor/plugins/acts_as_watchable/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/acts_as_watchable/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/acts_as_watchable/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/acts_as_watchable/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
30f73616865f02dadce09f9511269b70
2010-06-20T18:41:30.111362Z
3803
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/plugins/awesome_nested_set/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,35 @@
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svn/!svn/ver/4735/trunk/vendor/plugins/awesome_nested_set
+END
+awesome_nested_set.gemspec
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/svn/!svn/ver/2304/trunk/vendor/plugins/awesome_nested_set/awesome_nested_set.gemspec
+END
+Rakefile
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/2304/trunk/vendor/plugins/awesome_nested_set/Rakefile
+END
+README.rdoc
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/2304/trunk/vendor/plugins/awesome_nested_set/README.rdoc
+END
+init.rb
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/2304/trunk/vendor/plugins/awesome_nested_set/init.rb
+END
+MIT-LICENSE
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/2304/trunk/vendor/plugins/awesome_nested_set/MIT-LICENSE
+END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set
+4993
+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-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
c1f9a7c7c81a0c9150d260757c895ab3
2008-12-20T12:22:38.158335Z
2149
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
75ea4a8e8109afdbce9214ac3e9aa40a
2008-12-20T12:22:38.158335Z
2149
@@ -103,7 +103,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
5d897290320b00753c366c59f40b213e
2008-12-20T12:22:38.158335Z
2149
@@ -137,7 +137,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
af5f1806895c92bb03e8855a96d13a64
2008-12-20T12:22:38.158335Z
2149
@@ -174,7 +174,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
ba826ae68593d063b726b4e66dcb1e8f
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/lib/.svn/all-wcprops
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/all-wcprops Thu Mar 03 12:02:03 2011 +0000
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/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/4735/trunk/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
+END
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/lib/.svn/entries
--- a/vendor/plugins/awesome_nested_set/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,14 +1,14 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/lib
+4993
+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-30T13:11:54.000000Z
-e8fd989882fd3a10519da66c2a73e982
-2010-11-14T16:24:21.989522Z
-4406
+2011-03-03T11:05:12.000000Z
+30e0732ab58f6380af97e08261871486
+2011-01-22T11:46:15.415880Z
+4735
jplang
has-props
@@ -58,7 +58,7 @@
-21530
+21619
awesome_nested_set
dir
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/.svn/text-base/awesome_nested_set.rb.svn-base Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb Thu Mar 03 12:02:03 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/lib/awesome_nested_set/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/lib/awesome_nested_set
+4993
+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-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d15393e7ec4757df0e53641d9a8d76f4
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d4a9622144313fa6b56117a6c1f11e61
2008-12-20T12:22:38.158335Z
2149
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
cebe8bf25e6f479251be38c80a246574
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/rails/.svn/entries
--- a/vendor/plugins/awesome_nested_set/rails/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/rails/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/rails
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/rails
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:13.000000Z
d5995cbfa2abdc12b57c44d69dc0085b
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/test/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
41b65aff686211d45ba085c1b0791218
2008-12-20T12:22:38.158335Z
2149
@@ -75,7 +75,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d177339aefb3c4a8f280efff48c974b6
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/awesome_nested_set/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/test/awesome_nested_set
+4993
+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-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
03a414e3247544a5a2334aed005764f3
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/test/db/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/db/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/db/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/test/db
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/db
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
ae23aecda935bb66e29aa4f02ea9de0a
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
359889e11314c2969bdf7e37475bdc62
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries
--- a/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/awesome_nested_set/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/awesome_nested_set/test/fixtures
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/awesome_nested_set/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
460e90d6f219f339e8e4c64aaae0063c
2008-12-20T12:22:38.158335Z
2149
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
4b6a06e11c21a3aadd09e60dee443110
2008-12-20T12:22:38.158335Z
2149
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
e4eb5dbc7f2a2aa2fee79dba9210e769
2008-12-20T12:22:38.158335Z
2149
@@ -134,7 +134,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
e8b507fd94ed89b9997c3f9f137290cf
2008-12-20T12:22:38.158335Z
2149
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/classic_pagination/.svn/entries
--- a/vendor/plugins/classic_pagination/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/classic_pagination/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/classic_pagination
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
b14424b71d2f606a775061237c8226f1
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
181539722e198d92992a94f40310f4fc
2007-12-10T17:58:07.273873Z
975
@@ -106,7 +106,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
3ef206f381b42341342908fcc0001210
2007-12-09T21:53:46.068689Z
966
@@ -140,7 +140,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
1c88d6bc27aa809cd6ef26543c18b1e6
2007-12-10T17:58:07.273873Z
975
@@ -174,7 +174,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
f1df690ff1ea0da74f8fe161f50722ad
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/classic_pagination/lib/.svn/entries
--- a/vendor/plugins/classic_pagination/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/classic_pagination/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/classic_pagination/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
535b7515c14fb3964e97be32c2d36415
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
d770c57066726c423cc9de4ca5b552cd
2008-12-14T15:36:59.418123Z
2134
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/classic_pagination/test/.svn/entries
--- a/vendor/plugins/classic_pagination/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/classic_pagination/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/classic_pagination/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
50c7fabeb3d6728ce24eada59d5b2b67
2007-12-10T17:58:07.273873Z
975
@@ -69,7 +69,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
0a02d28a37b53a8e19af7935db5be1a8
2007-12-10T17:58:07.273873Z
975
@@ -103,7 +103,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
597b7501984a5ecd10242163d06c33e7
2007-12-10T17:58:07.273873Z
975
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/classic_pagination/test/fixtures/.svn/entries
--- a/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/classic_pagination/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/classic_pagination/test/fixtures
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/classic_pagination/test/fixtures
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
4e923be7fd534a67635192bcfcbed5cf
2007-12-10T17:58:07.273873Z
975
@@ -66,7 +66,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
021192cd31a5c3a39cbe7bd14144425a
2007-12-10T17:58:07.273873Z
975
@@ -100,7 +100,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
5953f128689c82c1d5c9ab2709a682e4
2007-12-10T17:58:07.273873Z
975
@@ -134,7 +134,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
cc2715c9793cffccefbac86e97dd5a08
2007-12-10T17:58:07.273873Z
975
@@ -168,7 +168,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
92e8d8a3cd6b419bdabbafc91be07b13
2007-12-10T17:58:07.273873Z
975
@@ -202,7 +202,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
182661632986d51f75c49d74b19df40c
2007-12-10T17:58:07.273873Z
975
@@ -236,7 +236,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
f1bf372057211d4a6d86499e561d903c
2007-12-10T17:58:07.273873Z
975
@@ -270,7 +270,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
98f978d0e16223524ee8dc769136a3c4
2007-12-10T17:58:07.273873Z
975
@@ -304,7 +304,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
3605b2a8f1cf10cbc34343bd7c49330d
2007-12-10T17:58:07.273873Z
975
@@ -338,7 +338,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
dccebb95780c20b896fe26306d904e9d
2007-12-10T17:58:07.273873Z
975
@@ -372,7 +372,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
318c27008dc35148da64e32ff9bf53c7
2007-12-10T17:58:07.273873Z
975
@@ -406,7 +406,7 @@
-2010-08-12T15:03:26.000000Z
+2011-03-03T11:05:12.000000Z
78b664b5dbb72751888e7f6bf4cd12f8
2007-12-09T21:53:46.068689Z
966
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:26.000000Z
-071d975e884a936b40eab0b865ea4da1
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-26534
-
-lib
-dir
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/LICENSE
--- a/vendor/plugins/coderay-0.9.2/LICENSE Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-c736c3ed620d59c1c6799d6fa340b0af
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10050
-
-README
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-0d50df22acd760dc1905c7ef55e509e6
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4998
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/README
--- a/vendor/plugins/coderay-0.9.2/lib/README Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-4f17211f3874899049db6111ef282a3b
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2287
-
-encoder.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-f0ead48eaa86c8b4d6a5587e9b5450ca
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6565
-
-encoders
-dir
-
-helpers
-dir
-
-style.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-409fa492a5470a8bed5ae969f270decf
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-293
-
-styles
-dir
-
-tokens.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-b7662592ff38046174f935548f579ce4
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10153
-
-duo.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-b33e5b83e354c09655f46d37ae662f64
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2549
-
-scanner.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-f75f38c93ee8de3e6df1c08773b62319
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7803
-
-scanners
-dir
-
-for_redcloth.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-d216c2f1c7a84a23ce3feff0b1358d60
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3001
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/duo.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/duo.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoder.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoder.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/.svn/entries Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/_map.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/count.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/count.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/debug.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/debug.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/div.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/div.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/filter.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/filter.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/html.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-8d0cea50dc9e6743bd10a8e0c6f1db17
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-5271
-
-numerization.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-6f9a2f0d033d9af4d4804ecd8751a3f7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4226
-
-css.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-aa931c09ed5f16abfed3b7c99f0f684d
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1626
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- # This module is included in the output String from thew HTML Encoder.
- #
- # It provides methods like wrap, div, page etc.
- #
- # Remember to use #clone instead of #dup to keep the modules the object was
- # extended with.
- #
- # TODO: more doc.
- module Output
-
- require 'coderay/encoders/html/numerization.rb'
-
- attr_accessor :css
-
- class << self
-
- # This makes Output look like a class.
- #
- # Example:
- #
- # a = Output.new ' Code'
- # a.wrap! :page
- def new string, css = CSS.new, element = nil
- output = string.clone.extend self
- output.wrapped_in = element
- output.css = css
- output
- end
-
- # Raises an exception if an object that doesn't respond to to_str is extended by Output,
- # to prevent users from misuse. Use Module#remove_method to disable.
- def extended o
- warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
- end
-
- def make_stylesheet css, in_tag = false
- sheet = css.stylesheet
- sheet = <<-CSS if in_tag
-
- CSS
- sheet
- end
-
- def page_template_for_css css
- sheet = make_stylesheet css
- PAGE.apply 'CSS', sheet
- end
-
- # Define a new wrapper. This is meta programming.
- def wrapper *wrappers
- wrappers.each do |wrapper|
- define_method wrapper do |*args|
- wrap wrapper, *args
- end
- define_method "#{wrapper}!".to_sym do |*args|
- wrap! wrapper, *args
- end
- end
- end
-
- end
-
- wrapper :div, :span, :page
-
- def wrapped_in? element
- wrapped_in == element
- end
-
- def wrapped_in
- @wrapped_in ||= nil
- end
- attr_writer :wrapped_in
-
- def wrap_in template
- clone.wrap_in! template
- end
-
- def wrap_in! template
- Template.wrap! self, template, 'CONTENT'
- self
- end
-
- def apply_title! title
- self.sub!(/( )(<\/title>)/) { $1 + title + $2 }
- self
- end
-
- def wrap! element, *args
- return self if not element or element == wrapped_in
- case element
- when :div
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! DIV
- when :span
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! SPAN
- when :page
- wrap! :div if wrapped_in? nil
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
- wrap_in! Output.page_template_for_css(@css)
- if args.first.is_a?(Hash) && title = args.first[:title]
- apply_title! title
- end
- self
- when nil
- return self
- else
- raise "Unknown value %p for :wrap" % element
- end
- @wrapped_in = element
- self
- end
-
- def wrap *args
- clone.wrap!(*args)
- end
-
- def stylesheet in_tag = false
- Output.make_stylesheet @css, in_tag
- end
-
- class Template < String
-
- def self.wrap! str, template, target
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if template =~ target
- str[0,0] = $`
- str << $'
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- def apply target, replacement
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if self =~ target
- Template.new($` + replacement + $')
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- module Simple
- def ` str #` <-- for stupid editors
- Template.new str
- end
- end
- end
-
- extend Template::Simple
-
-#-- don't include the templates in docu
-
- SPAN = `<%CONTENT%>`
-
- DIV = <<-`DIV`
-
- DIV
-
- TABLE = <<-`TABLE`
-
- <%LINE_NUMBERS%> |
- <%CONTENT%> |
-
- TABLE
- # title="double click to expand"
-
- LIST = <<-`LIST`
-
-<%CONTENT%>
-
- LIST
-
- PAGE = <<-`PAGE`
-
-
-
-
-
-
-
-
-
-<%CONTENT%>
-
-
- PAGE
-
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-module CodeRay
-module Encoders
-
- class HTML
-
- # This module is included in the output String from thew HTML Encoder.
- #
- # It provides methods like wrap, div, page etc.
- #
- # Remember to use #clone instead of #dup to keep the modules the object was
- # extended with.
- #
- # TODO: more doc.
- module Output
-
- require 'coderay/encoders/html/numerization.rb'
-
- attr_accessor :css
-
- class << self
-
- # This makes Output look like a class.
- #
- # Example:
- #
- # a = Output.new 'Code'
- # a.wrap! :page
- def new string, css = CSS.new, element = nil
- output = string.clone.extend self
- output.wrapped_in = element
- output.css = css
- output
- end
-
- # Raises an exception if an object that doesn't respond to to_str is extended by Output,
- # to prevent users from misuse. Use Module#remove_method to disable.
- def extended o
- warn "The Output module is intended to extend instances of String, not #{o.class}." unless o.respond_to? :to_str
- end
-
- def make_stylesheet css, in_tag = false
- sheet = css.stylesheet
- sheet = <<-CSS if in_tag
-
- CSS
- sheet
- end
-
- def page_template_for_css css
- sheet = make_stylesheet css
- PAGE.apply 'CSS', sheet
- end
-
- # Define a new wrapper. This is meta programming.
- def wrapper *wrappers
- wrappers.each do |wrapper|
- define_method wrapper do |*args|
- wrap wrapper, *args
- end
- define_method "#{wrapper}!".to_sym do |*args|
- wrap! wrapper, *args
- end
- end
- end
-
- end
-
- wrapper :div, :span, :page
-
- def wrapped_in? element
- wrapped_in == element
- end
-
- def wrapped_in
- @wrapped_in ||= nil
- end
- attr_writer :wrapped_in
-
- def wrap_in template
- clone.wrap_in! template
- end
-
- def wrap_in! template
- Template.wrap! self, template, 'CONTENT'
- self
- end
-
- def apply_title! title
- self.sub!(/()(<\/title>)/) { $1 + title + $2 }
- self
- end
-
- def wrap! element, *args
- return self if not element or element == wrapped_in
- case element
- when :div
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! DIV
- when :span
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? nil
- wrap_in! SPAN
- when :page
- wrap! :div if wrapped_in? nil
- raise "Can't wrap %p in %p" % [wrapped_in, element] unless wrapped_in? :div
- wrap_in! Output.page_template_for_css(@css)
- if args.first.is_a?(Hash) && title = args.first[:title]
- apply_title! title
- end
- self
- when nil
- return self
- else
- raise "Unknown value %p for :wrap" % element
- end
- @wrapped_in = element
- self
- end
-
- def wrap *args
- clone.wrap!(*args)
- end
-
- def stylesheet in_tag = false
- Output.make_stylesheet @css, in_tag
- end
-
- class Template < String
-
- def self.wrap! str, template, target
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if template =~ target
- str[0,0] = $`
- str << $'
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- def apply target, replacement
- target = Regexp.new(Regexp.escape("<%#{target}%>"))
- if self =~ target
- Template.new($` + replacement + $')
- else
- raise "Template target <%%%p%%> not found" % target
- end
- end
-
- module Simple
- def ` str #` <-- for stupid editors
- Template.new str
- end
- end
- end
-
- extend Template::Simple
-
-#-- don't include the templates in docu
-
- SPAN = `<%CONTENT%>`
-
- DIV = <<-`DIV`
-
- DIV
-
- TABLE = <<-`TABLE`
-
- <%LINE_NUMBERS%> |
- <%CONTENT%> |
-
- TABLE
- # title="double click to expand"
-
- LIST = <<-`LIST`
-
-<%CONTENT%>
-
- LIST
-
- PAGE = <<-`PAGE`
-
-
-
-
-
-
-
-
-
-<%CONTENT%>
-
-
- PAGE
-
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/json.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/json.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/null.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/null.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/page.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/page.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/span.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/span.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/statistic.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/statistic.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/term.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/term.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/text.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/text.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/xml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/xml.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/encoders/yaml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/encoders/yaml.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/for_redcloth.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/for_redcloth.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-a8ef4aea22392cc4012ee679fc1d15ba
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7926
-
-file_type.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-107e3d46dc60830e87b1a4ce4d467ce8
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6494
-
-gzip_simple.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-ffacc98651f60a6fe698427bbc3c3c86
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2701
-
-word_list.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-86d05af27cbe342789f28ed543956aa5
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3229
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/helpers/plugin.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/helpers/plugin.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanner.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanner.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/.svn/entries Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-module CodeRay
-module Scanners
-
- load :java
-
- class Groovy < Java
-
- include Streamable
- register_for :groovy
-
- # TODO: Check this!
- GROOVY_KEYWORDS = %w[
- as assert def in
- ]
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case instanceof new return throw typeof while as assert in
- ]
- GROOVY_MAGIC_VARIABLES = %w[ it ]
-
- IDENT_KIND = Java::IDENT_KIND.dup.
- add(GROOVY_KEYWORDS, :keyword).
- add(GROOVY_MAGIC_VARIABLES, :local_variable)
-
- ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
-
- # TODO: interpretation inside ', ", /
- STRING_CONTENT_PATTERN = {
- "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
- '"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\']+|'(?!''))+/,
- '"""' => /(?>[^\\$"]+|"(?!""))+/,
- '/' => /[^\\$\/\n]+/,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- inline_block_stack = []
- inline_block_paren_depth = nil
- string_delimiter = nil
- import_clause = class_name_follows = last_token = after_def = false
- value_expected = true
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- if match.index ?\n
- import_clause = after_def = false
- value_expected = true unless value_expected
- end
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- after_def = false
- kind = :comment
-
- elsif bol? && scan(/ \#!.* /x)
- kind = :doctype
-
- elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
- after_def = value_expected = false
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token == '.'
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- elsif after_def && check(/\s*[({]/)
- kind = :method
- after_def = false
- elsif kind == :ident && last_token != '?' && check(/:/)
- kind = :key
- else
- class_name_follows = true if match == 'class' || (import_clause && match == 'as')
- import_clause = match == 'import'
- after_def = true if match == 'def'
- end
-
- elsif scan(/;/)
- import_clause = after_def = false
- value_expected = true
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = after_def = false
- value_expected = true
- kind = :operator
- if !inline_block_stack.empty?
- inline_block_paren_depth += 1
- end
-
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
- value_expected = true
- value_expected = :regexp if match == '~'
- after_def = false
- kind = :operator
-
- elsif match = scan(/ [)\]}] /x)
- value_expected = after_def = false
- if !inline_block_stack.empty? && match == '}'
- inline_block_paren_depth -= 1
- if inline_block_paren_depth == 0 # closing brace of inline block reached
- tokens << [match, :inline_delimiter]
- tokens << [:close, :inline]
- state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
- next
- end
- end
- kind = :operator
-
- elsif check(/[\d.]/)
- after_def = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lLgG]?/)
- kind = :integer
- end
-
- elsif match = scan(/'''|"""/)
- after_def = value_expected = false
- state = :multiline_string
- tokens << [:open, :string]
- string_delimiter = match
- kind = :delimiter
-
- # TODO: record.'name'
- elsif match = scan(/["']/)
- after_def = value_expected = false
- state = match == '/' ? :regexp : :string
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\//))
- after_def = value_expected = false
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- after_def = value_expected = false
- kind = :annotation
-
- elsif scan(/\//)
- after_def = false
- value_expected = true
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :multiline_string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
-
- elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- # TODO: regexp modifiers? s, m, x, i?
- modifiers = scan(/[ix]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- state = :string if state == :multiline_string
- tokens << [:close, state]
- string_delimiter = nil
- after_def = value_expected = false
- state = :initial
- next
-
- elsif (state == :string || state == :multiline_string) &&
- (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
-
- elsif match = scan(/ \$ #{IDENT} /mox)
- tokens << [:open, :inline]
- tokens << ['$', :inline_delimiter]
- match = match[1..-1]
- tokens << [match, IDENT_KIND[match]]
- tokens << [:close, :inline]
- next
- elsif match = scan(/ \$ \{ /x)
- tokens << [:open, :inline]
- tokens << ['${', :inline_delimiter]
- inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
- inline_block_paren_depth = 1
- state = :initial
- next
-
- elsif scan(/ \$ /mx)
- kind = :content
-
- elsif scan(/ \\. /mx)
- kind = :content
-
- elsif scan(/ \\ | \n /x)
- tokens << [:close, state]
- kind = :error
- after_def = value_expected = false
- state = :initial
-
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match unless [:space, :comment, :doctype].include? kind
-
- tokens << [match, kind]
-
- end
-
- if [:multiline_string, :string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Original by Stefan Walk.
- class PHP < Scanner
-
- register_for :php
- file_extension 'php'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- def setup
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- module Words
-
- # according to http://www.php.net/manual/en/reserved.keywords.php
- KEYWORDS = %w[
- abstract and array as break case catch class clone const continue declare default do else elseif
- enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
- goto if implements interface instanceof namespace new or private protected public static switch
- throw try use var while xor
- cfunction old_function
- ]
-
- TYPES = %w[ int integer float double bool boolean string array object resource ]
-
- LANGUAGE_CONSTRUCTS = %w[
- die echo empty exit eval include include_once isset list
- require require_once return print unset
- ]
-
- CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
-
- # according to http://php.net/quickref.php on 2009-04-21;
- # all functions with _ excluded (module functions) and selected additional functions
- BUILTIN_FUNCTIONS = %w[
- abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
- atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
- bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
- calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
- compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
- decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
- ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
- fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
- fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
- fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
- getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
- getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
- gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
- gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
- gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
- implode include intval ip2long iptcembed iptcparse isset
- jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
- juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
- log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
- natsort next ngettext nl2br nthmac octdec opendir openlog
- ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
- prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
- readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
- serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
- snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
- strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
- strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
- strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
- textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
- unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
- array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
- array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
- array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
- array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
- array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
- array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
- array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
- array_walk_recursive
- assert_options base_convert base64_decode base64_encode
- chunk_split class_exists class_implements class_parents
- count_chars debug_backtrace debug_print_backtrace debug_zval_dump
- error_get_last error_log error_reporting extension_loaded
- file_exists file_get_contents file_put_contents load_file
- func_get_arg func_get_args func_num_args function_exists
- get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
- get_current_user get_declared_classes get_declared_interfaces get_defined_constants
- get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
- get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
- get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
- gc_collect_cycles gc_disable gc_enable gc_enabled
- halt_compiler headers_list headers_sent highlight_file highlight_string
- html_entity_decode htmlspecialchars_decode
- in_array include_once inclued_get_data
- is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
- is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
- is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
- is_writable is_writeable
- locale_get_default locale_set_default
- number_format override_function parse_str parse_url
- php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
- php_strip_whitespace php_uname
- preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
- preg_replace_callback preg_split print_r
- require_once register_shutdown_function register_tick_function
- set_error_handler set_exception_handler set_file_buffer set_include_path
- set_magic_quotes_runtime set_time_limit shell_exec
- str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
- strip_tags substr_compare substr_count substr_replace
- time_nanosleep time_sleep_until
- token_get_all token_name trigger_error
- unregister_tick_function use_soap_error_handler user_error
- utf8_decode utf8_encode var_dump var_export
- version_compare
- zend_logo_guid zend_thread_id zend_version
- create_function call_user_func_array
- posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
- posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
- posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
- posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
- posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
- posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
- posix_setuid posix_strerror posix_times posix_ttyname posix_uname
- pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
- pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
- pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
- pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
- ]
- # TODO: more built-in PHP functions?
-
- EXCEPTIONS = %w[
- E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
- E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
- ]
-
- CONSTANTS = %w[
- null true false self parent
- __LINE__ __DIR__ __FILE__ __LINE__
- __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
- PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
- PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
- PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
- PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
- PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
- __COMPILER_HALT_OFFSET__
- EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
- EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
- COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
- CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
- M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
- CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
- HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
- INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
- CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
- STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
- LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
- ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
- ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
- MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
- ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
- POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
- N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
- YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
- LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
- LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
- LOG_NDELAY LOG_NOWAIT LOG_PERROR
- ]
-
- PREDEFINED = %w[
- $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
- $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
- $argc $argv
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(KEYWORDS, :reserved).
- add(TYPES, :pre_type).
- add(LANGUAGE_CONSTRUCTS, :reserved).
- add(BUILTIN_FUNCTIONS, :predefined).
- add(CLASSES, :pre_constant).
- add(EXCEPTIONS, :exception).
- add(CONSTANTS, :pre_constant)
-
- VARIABLE_KIND = WordList.new(:local_variable).
- add(PREDEFINED, :predefined)
- end
-
- module RE
-
- PHP_START = /
- |
- \?>
- !xi
-
- HTML_INDICATOR = / ]/i
-
- IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
- VARIABLE = /\$#{IDENTIFIER}/
-
- OPERATOR = /
- \.(?!\d)=? | # dot that is not decimal point, string concatenation
- && | \|\| | # logic
- :: | -> | => | # scope, member, dictionary
- \\(?!\n) | # namespace
- \+\+ | -- | # increment, decrement
- [,;?:()\[\]{}] | # simple delimiters
- [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
- [~$] | # whatever
- =& | # reference assignment
- [=!]=?=? | <> | # comparison and assignment
- <<=? | >>=? | [<>]=? # comparison and shift
- /x
-
- end
-
- def scan_tokens tokens, options
-
- if check(RE::PHP_START) || # starts with
- (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
- exist?(RE::HTML_INDICATOR) ||
- check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
- # is HTML with embedded PHP, so start with HTML
- states = [:initial]
- else
- # is just PHP, so start with PHP surrounded by HTML
- states = [:initial, :php]
- end
-
- label_expected = true
- case_expected = false
-
- heredoc_delimiter = nil
- delimiter = nil
- modifier = nil
-
- until eos?
-
- match = nil
- kind = nil
-
- case states.last
-
- when :initial # HTML
- if scan RE::PHP_START
- kind = :inline_delimiter
- label_expected = true
- states << :php
- else
- match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
- @html_scanner.tokenize match unless match.empty?
- next
- end
-
- when :php
- if match = scan(/\s+/)
- tokens << [match, :space]
- next
-
- elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
- kind = :comment
-
- elsif match = scan(RE::IDENTIFIER)
- kind = Words::IDENT_KIND[match]
- if kind == :ident && label_expected && check(/:(?!:)/)
- kind = :label
- label_expected = true
- else
- label_expected = false
- if kind == :ident && match =~ /^[A-Z]/
- kind = :constant
- elsif kind == :reserved
- case match
- when 'class'
- states << :class_expected
- when 'function'
- states << :function_expected
- when 'case', 'default'
- case_expected = true
- end
- elsif match == 'b' && check(/['"]/) # binary string literal
- modifier = match
- next
- end
- end
-
- elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
- label_expected = false
- kind = :float
-
- elsif scan(/0x[0-9a-fA-F]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/\d+/)
- label_expected = false
- kind = :integer
-
- elsif scan(/'/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- kind = :delimiter
- states.push :sqstring
-
- elsif match = scan(/["`]/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- delimiter = match
- kind = :delimiter
- states.push :dqstring
-
- elsif match = scan(RE::VARIABLE)
- label_expected = false
- kind = Words::VARIABLE_KIND[match]
-
- elsif scan(/\{/)
- kind = :operator
- label_expected = true
- states.push :php
-
- elsif scan(/\}/)
- if states.size == 1
- kind = :error
- else
- states.pop
- if states.last.is_a?(::Array)
- delimiter = states.last[1]
- states[-1] = states.last[0]
- tokens << [matched, :delimiter]
- tokens << [:close, :inline]
- next
- else
- kind = :operator
- label_expected = true
- end
- end
-
- elsif scan(/@/)
- label_expected = false
- kind = :exception
-
- elsif scan RE::PHP_END
- kind = :inline_delimiter
- states = [:initial]
-
- elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
- tokens << [:open, :string]
- warn 'heredoc in heredoc?' if heredoc_delimiter
- heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
- kind = :delimiter
- states.push self[3] ? :sqstring : :dqstring
- heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
-
- elsif match = scan(/#{RE::OPERATOR}/o)
- label_expected = match == ';'
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :sqstring
- if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
- kind = :content
- elsif !heredoc_delimiter && scan(/'/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- end
-
- when :dqstring
- if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
- kind = :content
- elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
- kind = :char
- elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- elsif match = scan(/#{RE::VARIABLE}/o)
- kind = :local_variable
- if check(/\[#{RE::IDENTIFIER}\]/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/\[/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [scan(/\]/), :operator]
- tokens << [:close, :inline]
- next
- elsif check(/\[/)
- match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
- kind = :error
- elsif check(/->#{RE::IDENTIFIER}/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/->/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [:close, :inline]
- next
- elsif check(/->/)
- match << scan(/->/)
- kind = :error
- end
- elsif match = scan(/\{/)
- if check(/\$/)
- kind = :delimiter
- states[-1] = [states.last, delimiter]
- delimiter = nil
- states.push :php
- tokens << [:open, :inline]
- else
- kind = :string
- end
- elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
- kind = :local_variable
- elsif scan(/\$/)
- kind = :content
- end
-
- when :class_expected
- if scan(/\s+/)
- kind = :space
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :class
- states.pop
- else
- states.pop
- next
- end
-
- when :function_expected
- if scan(/\s+/)
- kind = :space
- elsif scan(/&/)
- kind = :operator
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :function
- states.pop
- else
- states.pop
- next
- end
-
- else
- raise_inspect 'Unknown state!', tokens, states
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, states
- end
- raise_inspect 'Empty token', tokens, states unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-module CodeRay
-module Scanners
-
- # This scanner is really complex, since Ruby _is_ a complex language!
- #
- # It tries to highlight 100% of all common code,
- # and 90% of strange codes.
- #
- # It is optimized for HTML highlighting, and is not very useful for
- # parsing or pretty printing.
- #
- # For now, I think it's better than the scanners in VIM or Syntax, or
- # any highlighter I was able to find, except Caleb's RubyLexer.
- #
- # I hope it's also better than the rdoc/irb lexer.
- class Ruby < Scanner
-
- include Streamable
-
- register_for :ruby
- file_extension 'rb'
-
- helper :patterns
-
- if not defined? EncodingError
- EncodingError = Class.new Exception
- end
-
- private
- def scan_tokens tokens, options
- last_token_dot = false
- value_expected = true
- heredocs = nil
- last_state = nil
- state = :initial
- depth = nil
- inline_block_stack = []
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
-
- patterns = Patterns # avoid constant lookup
-
- until eos?
- match = nil
- kind = nil
-
- if state.instance_of? patterns::StringState
-# {{{
- match = scan_until(state.pattern) || scan_until(/\z/)
- tokens << [match, :content] unless match.empty?
- break if eos?
-
- if state.heredoc and self[1] # end of heredoc
- match = getch.to_s
- match << scan_until(/$/) unless eos?
- tokens << [match, :delimiter]
- tokens << [:close, state.type]
- state = state.next_state
- next
- end
-
- case match = getch
-
- when state.delim
- if state.paren
- state.paren_depth -= 1
- if state.paren_depth > 0
- tokens << [match, :nesting_delimiter]
- next
- end
- end
- tokens << [match, :delimiter]
- if state.type == :regexp and not eos?
- modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
- tokens << [modifiers, :modifier] unless modifiers.empty?
- end
- tokens << [:close, state.type]
- value_expected = false
- state = state.next_state
-
- when '\\'
- if state.interpreted
- if esc = scan(/ #{patterns::ESCAPE} /ox)
- tokens << [match + esc, :char]
- else
- tokens << [match, :error]
- end
- else
- case m = getch
- when state.delim, '\\'
- tokens << [match + m, :char]
- when nil
- tokens << [match, :error]
- else
- tokens << [match + m, :content]
- end
- end
-
- when '#'
- case peek(1)
- when '{'
- inline_block_stack << [state, depth, heredocs]
- value_expected = true
- state = :initial
- depth = 1
- tokens << [:open, :inline]
- tokens << [match + getch, :inline_delimiter]
- when '$', '@'
- tokens << [match, :escape]
- last_state = state # scan one token as normal code, then return here
- state = :initial
- else
- raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
- end
-
- when state.paren
- state.paren_depth += 1
- tokens << [match, :nesting_delimiter]
-
- when /#{patterns::REGEXP_SYMBOLS}/ox
- tokens << [match, :function]
-
- else
- raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
-
- end
- next
-# }}}
- else
-# {{{
- if match = scan(/[ \t\f]+/)
- kind = :space
- match << scan(/\s*/) unless eos? || heredocs
- value_expected = true if match.index(?\n)
- tokens << [match, kind]
- next
-
- elsif match = scan(/\\?\n/)
- kind = :space
- if match == "\n"
- value_expected = true
- state = :initial if state == :undef_comma_expected
- end
- if heredocs
- unscan # heredoc scanning needs \n at start
- state = heredocs.shift
- tokens << [:open, state.type]
- heredocs = nil if heredocs.empty?
- next
- else
- match << scan(/\s*/) unless eos?
- end
- tokens << [match, kind]
- next
-
- elsif bol? && match = scan(/\#!.*/)
- tokens << [match, :doctype]
- next
-
- elsif match = scan(/\#.*/) or
- ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
- kind = :comment
- tokens << [match, kind]
- next
-
- elsif state == :initial
-
- # IDENTS #
- if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
- /#{patterns::METHOD_NAME}/o)
- if last_token_dot
- kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
- else
- kind = patterns::IDENT_KIND[match]
- if kind == :ident and match[/^[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
- kind = :constant
- elsif kind == :reserved
- state = patterns::DEF_NEW_STATE[match]
- value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
- end
- end
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
- kind = :ident
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- # OPERATORS #
- elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
- if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
- value_expected = :set
- end
- last_token_dot = :set if self[1]
- kind = :operator
- unless inline_block_stack.empty?
- case match
- when '{'
- depth += 1
- when '}'
- depth -= 1
- if depth == 0 # closing brace of inline block reached
- state, depth, heredocs = inline_block_stack.pop
- heredocs = nil if heredocs && heredocs.empty?
- tokens << [match, :inline_delimiter]
- kind = :inline
- match = :close
- end
- end
- end
-
- elsif match = scan(/ ['"] /mx)
- tokens << [:open, :string]
- kind = :delimiter
- state = patterns::StringState.new :string, match == '"', match # important for streaming
-
- elsif match = scan(/#{patterns::INSTANCE_VARIABLE}/o)
- kind = :instance_variable
-
- elsif value_expected and match = scan(/\//)
- tokens << [:open, :regexp]
- kind = :delimiter
- interpreted = true
- state = patterns::StringState.new :regexp, interpreted, match
-
- # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
- elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
- kind = self[1] ? :float : :integer
-
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- else
- kind = :symbol
- end
-
- elsif match = scan(/ [-+!~^]=? | [*|&]{1,2}=? | >>? /x)
- value_expected = :set
- kind = :operator
-
- elsif value_expected and match = scan(/#{patterns::HEREDOC_OPEN}/o)
- indented = self[1] == '-'
- quote = self[3]
- delim = self[quote ? 4 : 2]
- kind = patterns::QUOTE_TO_TYPE[quote]
- tokens << [:open, kind]
- tokens << [match, :delimiter]
- match = :close
- heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
- heredocs ||= [] # create heredocs if empty
- heredocs << heredoc
-
- elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
- kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
- raise_inspect 'Unknown fancy string: %%%p' % k, tokens
- end
- tokens << [:open, kind]
- state = patterns::StringState.new kind, interpreted, self[2]
- kind = :delimiter
-
- elsif value_expected and match = scan(/#{patterns::CHARACTER}/o)
- kind = :integer
-
- elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
- value_expected = :set
- kind = :operator
-
- elsif match = scan(/`/)
- if last_token_dot
- kind = :operator
- else
- tokens << [:open, :shell]
- kind = :delimiter
- state = patterns::StringState.new :shell, true, match
- end
-
- elsif match = scan(/#{patterns::GLOBAL_VARIABLE}/o)
- kind = :global_variable
-
- elsif match = scan(/#{patterns::CLASS_VARIABLE}/o)
- kind = :class_variable
-
- else
- if !unicode
- # check for unicode
- debug, $DEBUG = $DEBUG, false
- begin
- if check(/./mu).size > 1
- # seems like we should try again with unicode
- unicode = true
- end
- rescue
- # bad unicode char; use getch
- ensure
- $DEBUG = debug
- end
- next if unicode
- end
- kind = :error
- match = getch
-
- end
-
- elsif state == :def_expected
- state = :initial
- if scan(/self\./)
- tokens << ['self', :pre_constant]
- tokens << ['.', :operator]
- end
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- kind = :method
- else
- next
- end
-
- elsif state == :module_expected
- if match = scan(/<)
- kind = :operator
- else
- state = :initial
- if match = scan(/ (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox)
- kind = :class
- else
- next
- end
- end
-
- elsif state == :undef_expected
- state = :undef_comma_expected
- if match = scan(/#{patterns::METHOD_NAME_EX}/o)
- kind = :method
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- state.next_state = :undef_comma_expected
- else
- kind = :symbol
- end
- else
- state = :initial
- next
- end
-
- elsif state == :alias_expected
- match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
- /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
-
- if match
- tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
- tokens << [self[2], :space]
- tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
- end
- state = :initial
- next
-
- elsif state == :undef_comma_expected
- if match = scan(/,/)
- kind = :operator
- state = :undef_expected
- else
- state = :initial
- next
- end
-
- end
-# }}}
-
- unless kind == :error
- value_expected = value_expected == :set
- last_token_dot = last_token_dot == :set
- end
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- if last_state
- state = last_state
- last_state = nil
- end
- end
- end
-
- inline_block_stack << [state] if state.is_a? patterns::StringState
- until inline_block_stack.empty?
- this_block = inline_block_stack.pop
- tokens << [:close, :inline] if this_block.size > 1
- state = this_block.first
- tokens << [:close, state.type]
- end
-
- tokens
- end
-
- end
-
-end
-end
-
-# vim:fdm=marker
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-module CodeRay
-module Scanners
-
- # YAML Scanner
- #
- # Based on the YAML scanner from Syntax by Jamis Buck.
- class YAML < Scanner
-
- register_for :yaml
- file_extension 'yml'
-
- KINDS_NOT_LOC = :all
-
- def scan_tokens tokens, options
-
- value_expected = nil
- state = :initial
- key_indent = indent = 0
-
- until eos?
-
- kind = nil
- match = nil
- key_indent = nil if bol?
-
- if match = scan(/ +[\t ]*/)
- kind = :space
-
- elsif match = scan(/\n+/)
- kind = :space
- state = :initial if match.index(?\n)
-
- elsif match = scan(/#.*/)
- kind = :comment
-
- elsif bol? and case
- when match = scan(/---|\.\.\./)
- tokens << [:open, :head]
- tokens << [match, :head]
- tokens << [:close, :head]
- next
- when match = scan(/%.*/)
- tokens << [match, :doctype]
- next
- end
-
- elsif state == :value and case
- when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
- tokens << [:open, :string]
- tokens << [matched, :delimiter]
- tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
- tokens << [matched, :delimiter] if scan(/"/)
- tokens << [:close, :string]
- next
- when match = scan(/[|>][-+]?/)
- tokens << [:open, :string]
- tokens << [match, :delimiter]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- tokens << [:close, :string]
- next
- when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
- tokens << [match, :string]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- next
- end
-
- elsif case
- when match = scan(/[-:](?= |$)/)
- state = :value if state == :colon && (match == ':' || match == '-')
- state = :value if state == :initial && match == '-'
- kind = :operator
- when match = scan(/[,{}\[\]]/)
- kind = :operator
- when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
- kind = :key
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
- tokens << [:open, :key]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content]
- tokens << [match[-1,1], :delimiter]
- tokens << [:close, :key]
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- next
- when scan(/(![\w\/]+)(:([\w:]+))?/)
- tokens << [self[1], :type]
- if self[2]
- tokens << [':', :operator]
- tokens << [self[3], :class]
- end
- next
- when scan(/&\S+/)
- kind = :variable
- when scan(/\*\w+/)
- kind = :global_variable
- when scan(/<)
- kind = :class_variable
- when scan(/\d\d:\d\d:\d\d/)
- kind = :oct
- when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
- kind = :oct
- when scan(/:\w+/)
- kind = :symbol
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
- kind = :error
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
- kind = :error
- end
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/_map.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/c.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/c.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/cpp.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/cpp.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/css.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/css.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/debug.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/delphi.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/delphi.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/diff.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/diff.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/groovy.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/groovy.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-module CodeRay
-module Scanners
-
- load :java
-
- class Groovy < Java
-
- include Streamable
- register_for :groovy
-
- # TODO: Check this!
- GROOVY_KEYWORDS = %w[
- as assert def in
- ]
- KEYWORDS_EXPECTING_VALUE = WordList.new.add %w[
- case instanceof new return throw typeof while as assert in
- ]
- GROOVY_MAGIC_VARIABLES = %w[ it ]
-
- IDENT_KIND = Java::IDENT_KIND.dup.
- add(GROOVY_KEYWORDS, :keyword).
- add(GROOVY_MAGIC_VARIABLES, :local_variable)
-
- ESCAPE = / [bfnrtv$\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} /x
- UNICODE_ESCAPE = / u[a-fA-F0-9]{4} /x # no 4-byte unicode chars? U[a-fA-F0-9]{8}
- REGEXP_ESCAPE = / [bfnrtv\n\\'"] | x[a-fA-F0-9]{1,2} | [0-7]{1,3} | \d | [bBdDsSwW\/] /x
-
- # TODO: interpretation inside ', ", /
- STRING_CONTENT_PATTERN = {
- "'" => /(?>\\[^\\'\n]+|[^\\'\n]+)+/,
- '"' => /[^\\$"\n]+/,
- "'''" => /(?>[^\\']+|'(?!''))+/,
- '"""' => /(?>[^\\$"]+|"(?!""))+/,
- '/' => /[^\\$\/\n]+/,
- }
-
- def scan_tokens tokens, options
-
- state = :initial
- inline_block_stack = []
- inline_block_paren_depth = nil
- string_delimiter = nil
- import_clause = class_name_follows = last_token = after_def = false
- value_expected = true
-
- until eos?
-
- kind = nil
- match = nil
-
- case state
-
- when :initial
-
- if match = scan(/ \s+ | \\\n /x)
- tokens << [match, :space]
- if match.index ?\n
- import_clause = after_def = false
- value_expected = true unless value_expected
- end
- next
-
- elsif scan(%r! // [^\n\\]* (?: \\. [^\n\\]* )* | /\* (?: .*? \*/ | .* ) !mx)
- value_expected = true
- after_def = false
- kind = :comment
-
- elsif bol? && scan(/ \#!.* /x)
- kind = :doctype
-
- elsif import_clause && scan(/ (?!as) #{IDENT} (?: \. #{IDENT} )* (?: \.\* )? /ox)
- after_def = value_expected = false
- kind = :include
-
- elsif match = scan(/ #{IDENT} | \[\] /ox)
- kind = IDENT_KIND[match]
- value_expected = (kind == :keyword) && KEYWORDS_EXPECTING_VALUE[match]
- if last_token == '.'
- kind = :ident
- elsif class_name_follows
- kind = :class
- class_name_follows = false
- elsif after_def && check(/\s*[({]/)
- kind = :method
- after_def = false
- elsif kind == :ident && last_token != '?' && check(/:/)
- kind = :key
- else
- class_name_follows = true if match == 'class' || (import_clause && match == 'as')
- import_clause = match == 'import'
- after_def = true if match == 'def'
- end
-
- elsif scan(/;/)
- import_clause = after_def = false
- value_expected = true
- kind = :operator
-
- elsif scan(/\{/)
- class_name_follows = after_def = false
- value_expected = true
- kind = :operator
- if !inline_block_stack.empty?
- inline_block_paren_depth += 1
- end
-
- # TODO: ~'...', ~"..." and ~/.../ style regexps
- elsif match = scan(/ \.\. | \*?\.(?!\d)@? | \.& | \?:? | [,?:(\[] | -[->] | \+\+ |
- && | \|\| | \*\*=? | ==?~ | <=?>? | [-+*%^~&|>=!]=? | <<=? | >>>?=? /x)
- value_expected = true
- value_expected = :regexp if match == '~'
- after_def = false
- kind = :operator
-
- elsif match = scan(/ [)\]}] /x)
- value_expected = after_def = false
- if !inline_block_stack.empty? && match == '}'
- inline_block_paren_depth -= 1
- if inline_block_paren_depth == 0 # closing brace of inline block reached
- tokens << [match, :inline_delimiter]
- tokens << [:close, :inline]
- state, string_delimiter, inline_block_paren_depth = inline_block_stack.pop
- next
- end
- end
- kind = :operator
-
- elsif check(/[\d.]/)
- after_def = value_expected = false
- if scan(/0[xX][0-9A-Fa-f]+/)
- kind = :hex
- elsif scan(/(?>0[0-7]+)(?![89.eEfF])/)
- kind = :oct
- elsif scan(/\d+[fFdD]|\d*\.\d+(?:[eE][+-]?\d+)?[fFdD]?|\d+[eE][+-]?\d+[fFdD]?/)
- kind = :float
- elsif scan(/\d+[lLgG]?/)
- kind = :integer
- end
-
- elsif match = scan(/'''|"""/)
- after_def = value_expected = false
- state = :multiline_string
- tokens << [:open, :string]
- string_delimiter = match
- kind = :delimiter
-
- # TODO: record.'name'
- elsif match = scan(/["']/)
- after_def = value_expected = false
- state = match == '/' ? :regexp : :string
- tokens << [:open, state]
- string_delimiter = match
- kind = :delimiter
-
- elsif value_expected && (match = scan(/\//))
- after_def = value_expected = false
- tokens << [:open, :regexp]
- state = :regexp
- string_delimiter = '/'
- kind = :delimiter
-
- elsif scan(/ @ #{IDENT} /ox)
- after_def = value_expected = false
- kind = :annotation
-
- elsif scan(/\//)
- after_def = false
- value_expected = true
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :string, :regexp, :multiline_string
- if scan(STRING_CONTENT_PATTERN[string_delimiter])
- kind = :content
-
- elsif match = scan(state == :multiline_string ? /'''|"""/ : /["'\/]/)
- tokens << [match, :delimiter]
- if state == :regexp
- # TODO: regexp modifiers? s, m, x, i?
- modifiers = scan(/[ix]+/)
- tokens << [modifiers, :modifier] if modifiers && !modifiers.empty?
- end
- state = :string if state == :multiline_string
- tokens << [:close, state]
- string_delimiter = nil
- after_def = value_expected = false
- state = :initial
- next
-
- elsif (state == :string || state == :multiline_string) &&
- (match = scan(/ \\ (?: #{ESCAPE} | #{UNICODE_ESCAPE} ) /mox))
- if string_delimiter[0] == ?' && !(match == "\\\\" || match == "\\'")
- kind = :content
- else
- kind = :char
- end
- elsif state == :regexp && scan(/ \\ (?: #{REGEXP_ESCAPE} | #{UNICODE_ESCAPE} ) /mox)
- kind = :char
-
- elsif match = scan(/ \$ #{IDENT} /mox)
- tokens << [:open, :inline]
- tokens << ['$', :inline_delimiter]
- match = match[1..-1]
- tokens << [match, IDENT_KIND[match]]
- tokens << [:close, :inline]
- next
- elsif match = scan(/ \$ \{ /x)
- tokens << [:open, :inline]
- tokens << ['${', :inline_delimiter]
- inline_block_stack << [state, string_delimiter, inline_block_paren_depth]
- inline_block_paren_depth = 1
- state = :initial
- next
-
- elsif scan(/ \$ /mx)
- kind = :content
-
- elsif scan(/ \\. /mx)
- kind = :content
-
- elsif scan(/ \\ | \n /x)
- tokens << [:close, state]
- kind = :error
- after_def = value_expected = false
- state = :initial
-
- else
- raise_inspect "else case \" reached; %p not handled." % peek(1), tokens
- end
-
- else
- raise_inspect 'Unknown state', tokens
-
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
- end
- raise_inspect 'Empty token', tokens unless match
-
- last_token = match unless [:space, :comment, :doctype].include? kind
-
- tokens << [match, kind]
-
- end
-
- if [:multiline_string, :string, :regexp].include? state
- tokens << [:close, state]
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/html.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/html.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/java.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-2522414597cbbef27fad175c20c8a556
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-41768
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/json.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/json.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/php.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/php.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-module CodeRay
-module Scanners
-
- load :html
-
- # Original by Stefan Walk.
- class PHP < Scanner
-
- register_for :php
- file_extension 'php'
-
- KINDS_NOT_LOC = HTML::KINDS_NOT_LOC
-
- def setup
- @html_scanner = CodeRay.scanner :html, :tokens => @tokens, :keep_tokens => true, :keep_state => true
- end
-
- def reset_instance
- super
- @html_scanner.reset
- end
-
- module Words
-
- # according to http://www.php.net/manual/en/reserved.keywords.php
- KEYWORDS = %w[
- abstract and array as break case catch class clone const continue declare default do else elseif
- enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global
- goto if implements interface instanceof namespace new or private protected public static switch
- throw try use var while xor
- cfunction old_function
- ]
-
- TYPES = %w[ int integer float double bool boolean string array object resource ]
-
- LANGUAGE_CONSTRUCTS = %w[
- die echo empty exit eval include include_once isset list
- require require_once return print unset
- ]
-
- CLASSES = %w[ Directory stdClass __PHP_Incomplete_Class exception php_user_filter Closure ]
-
- # according to http://php.net/quickref.php on 2009-04-21;
- # all functions with _ excluded (module functions) and selected additional functions
- BUILTIN_FUNCTIONS = %w[
- abs acos acosh addcslashes addslashes aggregate array arsort ascii2ebcdic asin asinh asort assert atan atan2
- atanh basename bcadd bccomp bcdiv bcmod bcmul bcpow bcpowmod bcscale bcsqrt bcsub bin2hex bindec
- bindtextdomain bzclose bzcompress bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite
- calculhmac ceil chdir checkdate checkdnsrr chgrp chmod chop chown chr chroot clearstatcache closedir closelog
- compact constant copy cos cosh count crc32 crypt current date dcgettext dcngettext deaggregate decbin dechex
- decoct define defined deg2rad delete dgettext die dirname diskfreespace dl dngettext doubleval each
- ebcdic2ascii echo empty end ereg eregi escapeshellarg escapeshellcmd eval exec exit exp explode expm1 extract
- fclose feof fflush fgetc fgetcsv fgets fgetss file fileatime filectime filegroup fileinode filemtime fileowner
- fileperms filepro filesize filetype floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv
- fputs fread frenchtojd fscanf fseek fsockopen fstat ftell ftok ftruncate fwrite getallheaders getcwd getdate
- getenv gethostbyaddr gethostbyname gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid
- getmyuid getopt getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext
- gettimeofday gettype glob gmdate gmmktime gmstrftime gregoriantojd gzclose gzcompress gzdecode gzdeflate
- gzencode gzeof gzfile gzgetc gzgets gzgetss gzinflate gzopen gzpassthru gzputs gzread gzrewind gzseek gztell
- gzuncompress gzwrite hash header hebrev hebrevc hexdec htmlentities htmlspecialchars hypot iconv idate
- implode include intval ip2long iptcembed iptcparse isset
- jddayofweek jdmonthname jdtofrench jdtogregorian jdtojewish jdtojulian jdtounix jewishtojd join jpeg2wbmp
- juliantojd key krsort ksort lcfirst lchgrp lchown levenshtein link linkinfo list localeconv localtime log
- log10 log1p long2ip lstat ltrim mail main max md5 metaphone mhash microtime min mkdir mktime msql natcasesort
- natsort next ngettext nl2br nthmac octdec opendir openlog
- ord overload pack passthru pathinfo pclose pfsockopen phpcredits phpinfo phpversion pi png2wbmp popen pos pow
- prev print printf putenv quotemeta rad2deg rand range rawurldecode rawurlencode readdir readfile readgzfile
- readline readlink realpath recode rename require reset rewind rewinddir rmdir round rsort rtrim scandir
- serialize setcookie setlocale setrawcookie settype sha1 shuffle signeurlpaiement sin sinh sizeof sleep snmpget
- snmpgetnext snmprealwalk snmpset snmpwalk snmpwalkoid sort soundex split spliti sprintf sqrt srand sscanf stat
- strcasecmp strchr strcmp strcoll strcspn strftime stripcslashes stripos stripslashes stristr strlen
- strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strptime strrchr strrev strripos strrpos strspn
- strstr strtok strtolower strtotime strtoupper strtr strval substr symlink syslog system tan tanh tempnam
- textdomain time tmpfile touch trim uasort ucfirst ucwords uksort umask uniqid unixtojd unlink unpack
- unserialize unset urldecode urlencode usleep usort vfprintf virtual vprintf vsprintf wordwrap
- array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc
- array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip
- array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey
- array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad
- array_pop array_product array_push array_rand array_reduce array_reverse array_search array_shift
- array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect
- array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk
- array_walk_recursive
- assert_options base_convert base64_decode base64_encode
- chunk_split class_exists class_implements class_parents
- count_chars debug_backtrace debug_print_backtrace debug_zval_dump
- error_get_last error_log error_reporting extension_loaded
- file_exists file_get_contents file_put_contents load_file
- func_get_arg func_get_args func_num_args function_exists
- get_browser get_called_class get_cfg_var get_class get_class_methods get_class_vars
- get_current_user get_declared_classes get_declared_interfaces get_defined_constants
- get_defined_functions get_defined_vars get_extension_funcs get_headers get_html_translation_table
- get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime
- get_meta_tags get_object_vars get_parent_class get_required_filesget_resource_type
- gc_collect_cycles gc_disable gc_enable gc_enabled
- halt_compiler headers_list headers_sent highlight_file highlight_string
- html_entity_decode htmlspecialchars_decode
- in_array include_once inclued_get_data
- is_a is_array is_binary is_bool is_buffer is_callable is_dir is_double is_executable is_file is_finite
- is_float is_infinite is_int is_integer is_link is_long is_nan is_null is_numeric is_object is_readable
- is_real is_resource is_scalar is_soap_fault is_string is_subclass_of is_unicode is_uploaded_file
- is_writable is_writeable
- locale_get_default locale_set_default
- number_format override_function parse_str parse_url
- php_check_syntax php_ini_loaded_file php_ini_scanned_files php_logo_guid php_sapi_name
- php_strip_whitespace php_uname
- preg_filter preg_grep preg_last_error preg_match preg_match_all preg_quote preg_replace
- preg_replace_callback preg_split print_r
- require_once register_shutdown_function register_tick_function
- set_error_handler set_exception_handler set_file_buffer set_include_path
- set_magic_quotes_runtime set_time_limit shell_exec
- str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count
- strip_tags substr_compare substr_count substr_replace
- time_nanosleep time_sleep_until
- token_get_all token_name trigger_error
- unregister_tick_function use_soap_error_handler user_error
- utf8_decode utf8_encode var_dump var_export
- version_compare
- zend_logo_guid zend_thread_id zend_version
- create_function call_user_func_array
- posix_access posix_ctermid posix_get_last_error posix_getcwd posix_getegid
- posix_geteuid posix_getgid posix_getgrgid posix_getgrnam posix_getgroups
- posix_getlogin posix_getpgid posix_getpgrp posix_getpid posix_getppid
- posix_getpwnam posix_getpwuid posix_getrlimit posix_getsid posix_getuid
- posix_initgroups posix_isatty posix_kill posix_mkfifo posix_mknod
- posix_setegid posix_seteuid posix_setgid posix_setpgid posix_setsid
- posix_setuid posix_strerror posix_times posix_ttyname posix_uname
- pcntl_alarm pcntl_exec pcntl_fork pcntl_getpriority pcntl_setpriority
- pcntl_signal pcntl_signal_dispatch pcntl_sigprocmask pcntl_sigtimedwait
- pcntl_sigwaitinfo pcntl_wait pcntl_waitpid pcntl_wexitstatus pcntl_wifexited
- pcntl_wifsignaled pcntl_wifstopped pcntl_wstopsig pcntl_wtermsig
- ]
- # TODO: more built-in PHP functions?
-
- EXCEPTIONS = %w[
- E_ERROR E_WARNING E_PARSE E_NOTICE E_CORE_ERROR E_CORE_WARNING E_COMPILE_ERROR E_COMPILE_WARNING
- E_USER_ERROR E_USER_WARNING E_USER_NOTICE E_DEPRECATED E_USER_DEPRECATED E_ALL E_STRICT
- ]
-
- CONSTANTS = %w[
- null true false self parent
- __LINE__ __DIR__ __FILE__ __LINE__
- __CLASS__ __NAMESPACE__ __METHOD__ __FUNCTION__
- PHP_VERSION PHP_MAJOR_VERSION PHP_MINOR_VERSION PHP_RELEASE_VERSION PHP_VERSION_ID PHP_EXTRA_VERSION PHP_ZTS
- PHP_DEBUG PHP_MAXPATHLEN PHP_OS PHP_SAPI PHP_EOL PHP_INT_MAX PHP_INT_SIZE DEFAULT_INCLUDE_PATH
- PEAR_INSTALL_DIR PEAR_EXTENSION_DIR PHP_EXTENSION_DIR PHP_PREFIX PHP_BINDIR PHP_LIBDIR PHP_DATADIR
- PHP_SYSCONFDIR PHP_LOCALSTATEDIR PHP_CONFIG_FILE_PATH PHP_CONFIG_FILE_SCAN_DIR PHP_SHLIB_SUFFIX
- PHP_OUTPUT_HANDLER_START PHP_OUTPUT_HANDLER_CONT PHP_OUTPUT_HANDLER_END
- __COMPILER_HALT_OFFSET__
- EXTR_OVERWRITE EXTR_SKIP EXTR_PREFIX_SAME EXTR_PREFIX_ALL EXTR_PREFIX_INVALID EXTR_PREFIX_IF_EXISTS
- EXTR_IF_EXISTS SORT_ASC SORT_DESC SORT_REGULAR SORT_NUMERIC SORT_STRING CASE_LOWER CASE_UPPER COUNT_NORMAL
- COUNT_RECURSIVE ASSERT_ACTIVE ASSERT_CALLBACK ASSERT_BAIL ASSERT_WARNING ASSERT_QUIET_EVAL CONNECTION_ABORTED
- CONNECTION_NORMAL CONNECTION_TIMEOUT INI_USER INI_PERDIR INI_SYSTEM INI_ALL M_E M_LOG2E M_LOG10E M_LN2 M_LN10
- M_PI M_PI_2 M_PI_4 M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 CRYPT_SALT_LENGTH CRYPT_STD_DES CRYPT_EXT_DES
- CRYPT_MD5 CRYPT_BLOWFISH DIRECTORY_SEPARATOR SEEK_SET SEEK_CUR SEEK_END LOCK_SH LOCK_EX LOCK_UN LOCK_NB
- HTML_SPECIALCHARS HTML_ENTITIES ENT_COMPAT ENT_QUOTES ENT_NOQUOTES INFO_GENERAL INFO_CREDITS
- INFO_CONFIGURATION INFO_MODULES INFO_ENVIRONMENT INFO_VARIABLES INFO_LICENSE INFO_ALL CREDITS_GROUP
- CREDITS_GENERAL CREDITS_SAPI CREDITS_MODULES CREDITS_DOCS CREDITS_FULLPAGE CREDITS_QA CREDITS_ALL STR_PAD_LEFT
- STR_PAD_RIGHT STR_PAD_BOTH PATHINFO_DIRNAME PATHINFO_BASENAME PATHINFO_EXTENSION PATH_SEPARATOR CHAR_MAX
- LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_ALL LC_MESSAGES ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5
- ABDAY_6 ABDAY_7 DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6
- ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9
- MON_10 MON_11 MON_12 AM_STR PM_STR D_T_FMT D_FMT T_FMT T_FMT_AMPM ERA ERA_YEAR ERA_D_T_FMT ERA_D_FMT ERA_T_FMT
- ALT_DIGITS INT_CURR_SYMBOL CURRENCY_SYMBOL CRNCYSTR MON_DECIMAL_POINT MON_THOUSANDS_SEP MON_GROUPING
- POSITIVE_SIGN NEGATIVE_SIGN INT_FRAC_DIGITS FRAC_DIGITS P_CS_PRECEDES P_SEP_BY_SPACE N_CS_PRECEDES
- N_SEP_BY_SPACE P_SIGN_POSN N_SIGN_POSN DECIMAL_POINT RADIXCHAR THOUSANDS_SEP THOUSEP GROUPING YESEXPR NOEXPR
- YESSTR NOSTR CODESET LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG LOG_KERN
- LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_LOCAL0
- LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_PID LOG_CONS LOG_ODELAY
- LOG_NDELAY LOG_NOWAIT LOG_PERROR
- ]
-
- PREDEFINED = %w[
- $GLOBALS $_SERVER $_GET $_POST $_FILES $_REQUEST $_SESSION $_ENV
- $_COOKIE $php_errormsg $HTTP_RAW_POST_DATA $http_response_header
- $argc $argv
- ]
-
- IDENT_KIND = CaseIgnoringWordList.new(:ident).
- add(KEYWORDS, :reserved).
- add(TYPES, :pre_type).
- add(LANGUAGE_CONSTRUCTS, :reserved).
- add(BUILTIN_FUNCTIONS, :predefined).
- add(CLASSES, :pre_constant).
- add(EXCEPTIONS, :exception).
- add(CONSTANTS, :pre_constant)
-
- VARIABLE_KIND = WordList.new(:local_variable).
- add(PREDEFINED, :predefined)
- end
-
- module RE
-
- PHP_START = /
- |
- \?>
- !xi
-
- HTML_INDICATOR = / ]/i
-
- IDENTIFIER = /[a-z_\x7f-\xFF][a-z0-9_\x7f-\xFF]*/i
- VARIABLE = /\$#{IDENTIFIER}/
-
- OPERATOR = /
- \.(?!\d)=? | # dot that is not decimal point, string concatenation
- && | \|\| | # logic
- :: | -> | => | # scope, member, dictionary
- \\(?!\n) | # namespace
- \+\+ | -- | # increment, decrement
- [,;?:()\[\]{}] | # simple delimiters
- [-+*\/%&|^]=? | # ordinary math, binary logic, assignment shortcuts
- [~$] | # whatever
- =& | # reference assignment
- [=!]=?=? | <> | # comparison and assignment
- <<=? | >>=? | [<>]=? # comparison and shift
- /x
-
- end
-
- def scan_tokens tokens, options
-
- if check(RE::PHP_START) || # starts with
- (match?(/\s*<\S/) && exist?(RE::PHP_START)) || # starts with tag and contains
- exist?(RE::HTML_INDICATOR) ||
- check(/.{1,100}#{RE::PHP_START}/om) # PHP start after max 100 chars
- # is HTML with embedded PHP, so start with HTML
- states = [:initial]
- else
- # is just PHP, so start with PHP surrounded by HTML
- states = [:initial, :php]
- end
-
- label_expected = true
- case_expected = false
-
- heredoc_delimiter = nil
- delimiter = nil
- modifier = nil
-
- until eos?
-
- match = nil
- kind = nil
-
- case states.last
-
- when :initial # HTML
- if scan RE::PHP_START
- kind = :inline_delimiter
- label_expected = true
- states << :php
- else
- match = scan_until(/(?=#{RE::PHP_START})/o) || scan_until(/\z/)
- @html_scanner.tokenize match unless match.empty?
- next
- end
-
- when :php
- if match = scan(/\s+/)
- tokens << [match, :space]
- next
-
- elsif scan(%r! (?m: \/\* (?: .*? \*\/ | .* ) ) | (?://|\#) .*? (?=#{RE::PHP_END}|$) !xo)
- kind = :comment
-
- elsif match = scan(RE::IDENTIFIER)
- kind = Words::IDENT_KIND[match]
- if kind == :ident && label_expected && check(/:(?!:)/)
- kind = :label
- label_expected = true
- else
- label_expected = false
- if kind == :ident && match =~ /^[A-Z]/
- kind = :constant
- elsif kind == :reserved
- case match
- when 'class'
- states << :class_expected
- when 'function'
- states << :function_expected
- when 'case', 'default'
- case_expected = true
- end
- elsif match == 'b' && check(/['"]/) # binary string literal
- modifier = match
- next
- end
- end
-
- elsif scan(/(?:\d+\.\d*|\d*\.\d+)(?:e[-+]?\d+)?|\d+e[-+]?\d+/i)
- label_expected = false
- kind = :float
-
- elsif scan(/0x[0-9a-fA-F]+/)
- label_expected = false
- kind = :hex
-
- elsif scan(/\d+/)
- label_expected = false
- kind = :integer
-
- elsif scan(/'/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- kind = :delimiter
- states.push :sqstring
-
- elsif match = scan(/["`]/)
- tokens << [:open, :string]
- if modifier
- tokens << [modifier, :modifier]
- modifier = nil
- end
- delimiter = match
- kind = :delimiter
- states.push :dqstring
-
- elsif match = scan(RE::VARIABLE)
- label_expected = false
- kind = Words::VARIABLE_KIND[match]
-
- elsif scan(/\{/)
- kind = :operator
- label_expected = true
- states.push :php
-
- elsif scan(/\}/)
- if states.size == 1
- kind = :error
- else
- states.pop
- if states.last.is_a?(::Array)
- delimiter = states.last[1]
- states[-1] = states.last[0]
- tokens << [matched, :delimiter]
- tokens << [:close, :inline]
- next
- else
- kind = :operator
- label_expected = true
- end
- end
-
- elsif scan(/@/)
- label_expected = false
- kind = :exception
-
- elsif scan RE::PHP_END
- kind = :inline_delimiter
- states = [:initial]
-
- elsif match = scan(/<<<(?:(#{RE::IDENTIFIER})|"(#{RE::IDENTIFIER})"|'(#{RE::IDENTIFIER})')/o)
- tokens << [:open, :string]
- warn 'heredoc in heredoc?' if heredoc_delimiter
- heredoc_delimiter = Regexp.escape(self[1] || self[2] || self[3])
- kind = :delimiter
- states.push self[3] ? :sqstring : :dqstring
- heredoc_delimiter = /#{heredoc_delimiter}(?=;?$)/
-
- elsif match = scan(/#{RE::OPERATOR}/o)
- label_expected = match == ';'
- if case_expected
- label_expected = true if match == ':'
- case_expected = false
- end
- kind = :operator
-
- else
- getch
- kind = :error
-
- end
-
- when :sqstring
- if scan(heredoc_delimiter ? /[^\\\n]+/ : /[^'\\]+/)
- kind = :content
- elsif !heredoc_delimiter && scan(/'/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(heredoc_delimiter ? /\\\\/ : /\\[\\'\n]/)
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- end
-
- when :dqstring
- if scan(heredoc_delimiter ? /[^${\\\n]+/ : (delimiter == '"' ? /[^"${\\]+/ : /[^`${\\]+/))
- kind = :content
- elsif !heredoc_delimiter && scan(delimiter == '"' ? /"/ : /`/)
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- delimiter = nil
- label_expected = false
- states.pop
- next
- elsif heredoc_delimiter && match = scan(/\n/)
- kind = :content
- if scan heredoc_delimiter
- tokens << ["\n", :content]
- tokens << [matched, :delimiter]
- tokens << [:close, :string]
- heredoc_delimiter = nil
- label_expected = false
- states.pop
- next
- end
- elsif scan(/\\(?:x[0-9A-Fa-f]{1,2}|[0-7]{1,3})/)
- kind = :char
- elsif scan(heredoc_delimiter ? /\\[nrtvf\\$]/ : (delimiter == '"' ? /\\[nrtvf\\$"]/ : /\\[nrtvf\\$`]/))
- kind = :char
- elsif scan(/\\./m)
- kind = :content
- elsif scan(/\\/)
- kind = :error
- elsif match = scan(/#{RE::VARIABLE}/o)
- kind = :local_variable
- if check(/\[#{RE::IDENTIFIER}\]/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/\[/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [scan(/\]/), :operator]
- tokens << [:close, :inline]
- next
- elsif check(/\[/)
- match << scan(/\[['"]?#{RE::IDENTIFIER}?['"]?\]?/o)
- kind = :error
- elsif check(/->#{RE::IDENTIFIER}/o)
- tokens << [:open, :inline]
- tokens << [match, :local_variable]
- tokens << [scan(/->/), :operator]
- tokens << [scan(/#{RE::IDENTIFIER}/o), :ident]
- tokens << [:close, :inline]
- next
- elsif check(/->/)
- match << scan(/->/)
- kind = :error
- end
- elsif match = scan(/\{/)
- if check(/\$/)
- kind = :delimiter
- states[-1] = [states.last, delimiter]
- delimiter = nil
- states.push :php
- tokens << [:open, :inline]
- else
- kind = :string
- end
- elsif scan(/\$\{#{RE::IDENTIFIER}\}/o)
- kind = :local_variable
- elsif scan(/\$/)
- kind = :content
- end
-
- when :class_expected
- if scan(/\s+/)
- kind = :space
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :class
- states.pop
- else
- states.pop
- next
- end
-
- when :function_expected
- if scan(/\s+/)
- kind = :space
- elsif scan(/&/)
- kind = :operator
- elsif match = scan(/#{RE::IDENTIFIER}/o)
- kind = :function
- states.pop
- else
- states.pop
- next
- end
-
- else
- raise_inspect 'Unknown state!', tokens, states
- end
-
- match ||= matched
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, states
- end
- raise_inspect 'Empty token', tokens, states unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/plaintext.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/plaintext.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/python.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/python.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/rhtml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/rhtml.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/ruby.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-module CodeRay
-module Scanners
-
- # This scanner is really complex, since Ruby _is_ a complex language!
- #
- # It tries to highlight 100% of all common code,
- # and 90% of strange codes.
- #
- # It is optimized for HTML highlighting, and is not very useful for
- # parsing or pretty printing.
- #
- # For now, I think it's better than the scanners in VIM or Syntax, or
- # any highlighter I was able to find, except Caleb's RubyLexer.
- #
- # I hope it's also better than the rdoc/irb lexer.
- class Ruby < Scanner
-
- include Streamable
-
- register_for :ruby
- file_extension 'rb'
-
- helper :patterns
-
- if not defined? EncodingError
- EncodingError = Class.new Exception
- end
-
- private
- def scan_tokens tokens, options
- last_token_dot = false
- value_expected = true
- heredocs = nil
- last_state = nil
- state = :initial
- depth = nil
- inline_block_stack = []
- unicode = string.respond_to?(:encoding) && string.encoding.name == 'UTF-8'
-
- patterns = Patterns # avoid constant lookup
-
- until eos?
- match = nil
- kind = nil
-
- if state.instance_of? patterns::StringState
-# {{{
- match = scan_until(state.pattern) || scan_until(/\z/)
- tokens << [match, :content] unless match.empty?
- break if eos?
-
- if state.heredoc and self[1] # end of heredoc
- match = getch.to_s
- match << scan_until(/$/) unless eos?
- tokens << [match, :delimiter]
- tokens << [:close, state.type]
- state = state.next_state
- next
- end
-
- case match = getch
-
- when state.delim
- if state.paren
- state.paren_depth -= 1
- if state.paren_depth > 0
- tokens << [match, :nesting_delimiter]
- next
- end
- end
- tokens << [match, :delimiter]
- if state.type == :regexp and not eos?
- modifiers = scan(/#{patterns::REGEXP_MODIFIERS}/ox)
- tokens << [modifiers, :modifier] unless modifiers.empty?
- end
- tokens << [:close, state.type]
- value_expected = false
- state = state.next_state
-
- when '\\'
- if state.interpreted
- if esc = scan(/ #{patterns::ESCAPE} /ox)
- tokens << [match + esc, :char]
- else
- tokens << [match, :error]
- end
- else
- case m = getch
- when state.delim, '\\'
- tokens << [match + m, :char]
- when nil
- tokens << [match, :error]
- else
- tokens << [match + m, :content]
- end
- end
-
- when '#'
- case peek(1)
- when '{'
- inline_block_stack << [state, depth, heredocs]
- value_expected = true
- state = :initial
- depth = 1
- tokens << [:open, :inline]
- tokens << [match + getch, :inline_delimiter]
- when '$', '@'
- tokens << [match, :escape]
- last_state = state # scan one token as normal code, then return here
- state = :initial
- else
- raise_inspect 'else-case # reached; #%p not handled' % peek(1), tokens
- end
-
- when state.paren
- state.paren_depth += 1
- tokens << [match, :nesting_delimiter]
-
- when /#{patterns::REGEXP_SYMBOLS}/ox
- tokens << [match, :function]
-
- else
- raise_inspect 'else-case " reached; %p not handled, state = %p' % [match, state], tokens
-
- end
- next
-# }}}
- else
-# {{{
- if match = scan(/[ \t\f]+/)
- kind = :space
- match << scan(/\s*/) unless eos? || heredocs
- value_expected = true if match.index(?\n)
- tokens << [match, kind]
- next
-
- elsif match = scan(/\\?\n/)
- kind = :space
- if match == "\n"
- value_expected = true
- state = :initial if state == :undef_comma_expected
- end
- if heredocs
- unscan # heredoc scanning needs \n at start
- state = heredocs.shift
- tokens << [:open, state.type]
- heredocs = nil if heredocs.empty?
- next
- else
- match << scan(/\s*/) unless eos?
- end
- tokens << [match, kind]
- next
-
- elsif bol? && match = scan(/\#!.*/)
- tokens << [match, :doctype]
- next
-
- elsif match = scan(/\#.*/) or
- ( bol? and match = scan(/#{patterns::RUBYDOC_OR_DATA}/o) )
- kind = :comment
- tokens << [match, kind]
- next
-
- elsif state == :initial
-
- # IDENTS #
- if match = scan(unicode ? /#{patterns::METHOD_NAME}/uo :
- /#{patterns::METHOD_NAME}/o)
- if last_token_dot
- kind = if match[/^[A-Z]/] and not match?(/\(/) then :constant else :ident end
- else
- kind = patterns::IDENT_KIND[match]
- if kind == :ident and match[/^[A-Z]/] and not match[/[!?]$/] and not match?(/\(/)
- kind = :constant
- elsif kind == :reserved
- state = patterns::DEF_NEW_STATE[match]
- value_expected = :set if patterns::KEYWORDS_EXPECTING_VALUE[match]
- end
- end
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- elsif last_token_dot and match = scan(/#{patterns::METHOD_NAME_OPERATOR}|\(/o)
- kind = :ident
- value_expected = :set if check(/#{patterns::VALUE_FOLLOWS}/o)
-
- # OPERATORS #
- elsif not last_token_dot and match = scan(/ \.\.\.? | (?:\.|::)() | [,\(\)\[\]\{\}] | ==?=? /x)
- if match !~ / [.\)\]\}] /x or match =~ /\.\.\.?/
- value_expected = :set
- end
- last_token_dot = :set if self[1]
- kind = :operator
- unless inline_block_stack.empty?
- case match
- when '{'
- depth += 1
- when '}'
- depth -= 1
- if depth == 0 # closing brace of inline block reached
- state, depth, heredocs = inline_block_stack.pop
- heredocs = nil if heredocs && heredocs.empty?
- tokens << [match, :inline_delimiter]
- kind = :inline
- match = :close
- end
- end
- end
-
- elsif match = scan(/ ['"] /mx)
- tokens << [:open, :string]
- kind = :delimiter
- state = patterns::StringState.new :string, match == '"', match # important for streaming
-
- elsif match = scan(/#{patterns::INSTANCE_VARIABLE}/o)
- kind = :instance_variable
-
- elsif value_expected and match = scan(/\//)
- tokens << [:open, :regexp]
- kind = :delimiter
- interpreted = true
- state = patterns::StringState.new :regexp, interpreted, match
-
- # elsif match = scan(/[-+]?#{patterns::NUMERIC}/o)
- elsif match = value_expected ? scan(/[-+]?#{patterns::NUMERIC}/o) : scan(/#{patterns::NUMERIC}/o)
- kind = self[1] ? :float : :integer
-
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- else
- kind = :symbol
- end
-
- elsif match = scan(/ [-+!~^]=? | [*|&]{1,2}=? | >>? /x)
- value_expected = :set
- kind = :operator
-
- elsif value_expected and match = scan(/#{patterns::HEREDOC_OPEN}/o)
- indented = self[1] == '-'
- quote = self[3]
- delim = self[quote ? 4 : 2]
- kind = patterns::QUOTE_TO_TYPE[quote]
- tokens << [:open, kind]
- tokens << [match, :delimiter]
- match = :close
- heredoc = patterns::StringState.new kind, quote != '\'', delim, (indented ? :indented : :linestart )
- heredocs ||= [] # create heredocs if empty
- heredocs << heredoc
-
- elsif value_expected and match = scan(/#{patterns::FANCY_START_CORRECT}/o)
- kind, interpreted = *patterns::FancyStringType.fetch(self[1]) do
- raise_inspect 'Unknown fancy string: %%%p' % k, tokens
- end
- tokens << [:open, kind]
- state = patterns::StringState.new kind, interpreted, self[2]
- kind = :delimiter
-
- elsif value_expected and match = scan(/#{patterns::CHARACTER}/o)
- kind = :integer
-
- elsif match = scan(/ [\/%]=? | <(?:<|=>?)? | [?:;] /x)
- value_expected = :set
- kind = :operator
-
- elsif match = scan(/`/)
- if last_token_dot
- kind = :operator
- else
- tokens << [:open, :shell]
- kind = :delimiter
- state = patterns::StringState.new :shell, true, match
- end
-
- elsif match = scan(/#{patterns::GLOBAL_VARIABLE}/o)
- kind = :global_variable
-
- elsif match = scan(/#{patterns::CLASS_VARIABLE}/o)
- kind = :class_variable
-
- else
- if !unicode
- # check for unicode
- debug, $DEBUG = $DEBUG, false
- begin
- if check(/./mu).size > 1
- # seems like we should try again with unicode
- unicode = true
- end
- rescue
- # bad unicode char; use getch
- ensure
- $DEBUG = debug
- end
- next if unicode
- end
- kind = :error
- match = getch
-
- end
-
- elsif state == :def_expected
- state = :initial
- if scan(/self\./)
- tokens << ['self', :pre_constant]
- tokens << ['.', :operator]
- end
- if match = scan(unicode ? /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/uo :
- /(?>#{patterns::METHOD_NAME_EX})(?!\.|::)/o)
- kind = :method
- else
- next
- end
-
- elsif state == :module_expected
- if match = scan(/<)
- kind = :operator
- else
- state = :initial
- if match = scan(/ (?:#{patterns::IDENT}::)* #{patterns::IDENT} /ox)
- kind = :class
- else
- next
- end
- end
-
- elsif state == :undef_expected
- state = :undef_comma_expected
- if match = scan(/#{patterns::METHOD_NAME_EX}/o)
- kind = :method
- elsif match = scan(/#{patterns::SYMBOL}/o)
- case delim = match[1]
- when ?', ?"
- tokens << [:open, :symbol]
- tokens << [':', :symbol]
- match = delim.chr
- kind = :delimiter
- state = patterns::StringState.new :symbol, delim == ?", match
- state.next_state = :undef_comma_expected
- else
- kind = :symbol
- end
- else
- state = :initial
- next
- end
-
- elsif state == :alias_expected
- match = scan(unicode ? /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/uo :
- /(#{patterns::METHOD_NAME_OR_SYMBOL})([ \t]+)(#{patterns::METHOD_NAME_OR_SYMBOL})/o)
-
- if match
- tokens << [self[1], (self[1][0] == ?: ? :symbol : :method)]
- tokens << [self[2], :space]
- tokens << [self[3], (self[3][0] == ?: ? :symbol : :method)]
- end
- state = :initial
- next
-
- elsif state == :undef_comma_expected
- if match = scan(/,/)
- kind = :operator
- state = :undef_expected
- else
- state = :initial
- next
- end
-
- end
-# }}}
-
- unless kind == :error
- value_expected = value_expected == :set
- last_token_dot = last_token_dot == :set
- end
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens unless match
-
- tokens << [match, kind]
-
- if last_state
- state = last_state
- last_state = nil
- end
- end
- end
-
- inline_block_stack << [state] if state.is_a? patterns::StringState
- until inline_block_stack.empty?
- this_block = inline_block_stack.pop
- tokens << [:close, :inline] if this_block.size > 1
- state = this_block.first
- tokens << [:close, state.type]
- end
-
- tokens
- end
-
- end
-
-end
-end
-
-# vim:fdm=marker
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/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-08-12T15:03:27.000000Z
-ae0aca82c4390ffcc5757c97c71bc8f3
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-6903
-
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/scheme.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/scheme.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/sql.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/sql.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/xml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/xml.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/scanners/yaml.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/scanners/yaml.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-module CodeRay
-module Scanners
-
- # YAML Scanner
- #
- # Based on the YAML scanner from Syntax by Jamis Buck.
- class YAML < Scanner
-
- register_for :yaml
- file_extension 'yml'
-
- KINDS_NOT_LOC = :all
-
- def scan_tokens tokens, options
-
- value_expected = nil
- state = :initial
- key_indent = indent = 0
-
- until eos?
-
- kind = nil
- match = nil
- key_indent = nil if bol?
-
- if match = scan(/ +[\t ]*/)
- kind = :space
-
- elsif match = scan(/\n+/)
- kind = :space
- state = :initial if match.index(?\n)
-
- elsif match = scan(/#.*/)
- kind = :comment
-
- elsif bol? and case
- when match = scan(/---|\.\.\./)
- tokens << [:open, :head]
- tokens << [match, :head]
- tokens << [:close, :head]
- next
- when match = scan(/%.*/)
- tokens << [match, :doctype]
- next
- end
-
- elsif state == :value and case
- when !check(/(?:"[^"]*")(?=: |:$)/) && scan(/"/)
- tokens << [:open, :string]
- tokens << [matched, :delimiter]
- tokens << [matched, :content] if scan(/ [^"\\]* (?: \\. [^"\\]* )* /mx)
- tokens << [matched, :delimiter] if scan(/"/)
- tokens << [:close, :string]
- next
- when match = scan(/[|>][-+]?/)
- tokens << [:open, :string]
- tokens << [match, :delimiter]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :content] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- tokens << [:close, :string]
- next
- when match = scan(/(?![!"*&]).+?(?=$|\s+#)/)
- tokens << [match, :string]
- string_indent = key_indent || column(pos - match.size - 1)
- tokens << [matched, :string] if scan(/(?:\n+ {#{string_indent + 1}}.*)+/)
- next
- end
-
- elsif case
- when match = scan(/[-:](?= |$)/)
- state = :value if state == :colon && (match == ':' || match == '-')
- state = :value if state == :initial && match == '-'
- kind = :operator
- when match = scan(/[,{}\[\]]/)
- kind = :operator
- when state == :initial && match = scan(/[\w.() ]*\S(?=: |:$)/)
- kind = :key
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- when match = scan(/(?:"[^"\n]*"|'[^'\n]*')(?=: |:$)/)
- tokens << [:open, :key]
- tokens << [match[0,1], :delimiter]
- tokens << [match[1..-2], :content]
- tokens << [match[-1,1], :delimiter]
- tokens << [:close, :key]
- key_indent = column(pos - match.size - 1)
- # tokens << [key_indent.inspect, :debug]
- state = :colon
- next
- when scan(/(![\w\/]+)(:([\w:]+))?/)
- tokens << [self[1], :type]
- if self[2]
- tokens << [':', :operator]
- tokens << [self[3], :class]
- end
- next
- when scan(/&\S+/)
- kind = :variable
- when scan(/\*\w+/)
- kind = :global_variable
- when scan(/<)
- kind = :class_variable
- when scan(/\d\d:\d\d:\d\d/)
- kind = :oct
- when scan(/\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d(\.\d+)? [-+]\d\d:\d\d/)
- kind = :oct
- when scan(/:\w+/)
- kind = :symbol
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)* .*/)
- kind = :error
- when scan(/[^:\s]+(:(?! |$)[^:\s]*)*/)
- kind = :error
- end
-
- else
- getch
- kind = :error
-
- end
-
- match ||= matched
-
- if $CODERAY_DEBUG and not kind
- raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens, state
- end
- raise_inspect 'Empty token', tokens, state unless match
-
- tokens << [match, kind]
-
- end
-
- tokens
- end
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/style.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/style.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-10
-
-dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/coderay-0.9.2/lib/coderay/styles
-http://redmine.rubyforge.org/svn
-
-
-
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-e93f8b46-1217-0410-a6f0-8f06a7374b81
-
-cycnus.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-e8d4af106543cf30dcc95fd942044e63
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3759
-
-murphy.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-7c7e3c4f8f845a59359649b3221689a7
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3259
-
-_map.rb
-file
-
-
-
-
-2010-08-12T15:03:27.000000Z
-9b92a72b99db4496e76665edb7b38c00
-2010-03-16T20:29:12.319937Z
-3592
-jplang
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-57
-
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/_map.rb.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/cycnus.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/cycnus.rb.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/murphy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/prop-base/murphy.rb.svn-base Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/_map.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/_map.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module CodeRay
-module Styles
-
- default :cycnus
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/cycnus.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-module CodeRay
-module Styles
-
- class Cycnus < Style
-
- register_for :cycnus
-
- code_background = '#f8f8f8'
- numbers_background = '#def'
- border_color = 'silver'
- normal_color = '#000'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
-table.CodeRay td { padding: 2px 4px; vertical-align: top }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold }
-.CodeRay .line_numbers .highlighted { color: red }
-.CodeRay .no { padding: 0px 4px }
-.CodeRay .code { width: 100% }
-
-ol.CodeRay { font-size: 10pt }
-ol.CodeRay li { white-space: pre }
-
-.CodeRay .code pre { overflow: auto }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.debug { color:white ! important; background:blue ! important; }
-
-.af { color:#00C }
-.an { color:#007 }
-.at { color:#f08 }
-.av { color:#700 }
-.aw { color:#C00 }
-.bi { color:#509; font-weight:bold }
-.c { color:#888; }
-
-.ch { color:#04D }
-.ch .k { color:#04D }
-.ch .dl { color:#039 }
-
-.cl { color:#B06; font-weight:bold }
-.cm { color:#A08; font-weight:bold }
-.co { color:#036; font-weight:bold }
-.cr { color:#0A0 }
-.cv { color:#369 }
-.de { color:#B0B; }
-.df { color:#099; font-weight:bold }
-.di { color:#088; font-weight:bold }
-.dl { color:black }
-.do { color:#970 }
-.dt { color:#34b }
-.ds { color:#D42; font-weight:bold }
-.e { color:#666; font-weight:bold }
-.en { color:#800; font-weight:bold }
-.er { color:#F00; background-color:#FAA }
-.ex { color:#C00; font-weight:bold }
-.fl { color:#60E; font-weight:bold }
-.fu { color:#06B; font-weight:bold }
-.gv { color:#d70; font-weight:bold }
-.hx { color:#058; font-weight:bold }
-.i { color:#00D; font-weight:bold }
-.ic { color:#B44; font-weight:bold }
-
-.il { background: #ddd; color: black }
-.il .il { background: #ccc }
-.il .il .il { background: #bbb }
-.il .idl { background: #ddd; font-weight: bold; color: #666 }
-.idl { background-color: #bbb; font-weight: bold; color: #666; }
-
-.im { color:#f00; }
-.in { color:#B2B; font-weight:bold }
-.iv { color:#33B }
-.la { color:#970; font-weight:bold }
-.lv { color:#963 }
-.oc { color:#40E; font-weight:bold }
-.of { color:#000; font-weight:bold }
-.op { }
-.pc { color:#038; font-weight:bold }
-.pd { color:#369; font-weight:bold }
-.pp { color:#579; }
-.ps { color:#00C; font-weight:bold }
-.pt { color:#074; font-weight:bold }
-.r, .kw { color:#080; font-weight:bold }
-
-.ke { color: #808; }
-.ke .dl { color: #606; }
-.ke .ch { color: #80f; }
-.vl { color: #088; }
-
-.rx { background-color:#fff0ff }
-.rx .k { color:#808 }
-.rx .dl { color:#404 }
-.rx .mod { color:#C2C }
-.rx .fu { color:#404; font-weight: bold }
-
-.s { background-color:#fff0f0; color: #D20; }
-.s .s { background-color:#ffe0e0 }
-.s .s .s { background-color:#ffd0d0 }
-.s .k { }
-.s .ch { color: #b0b; }
-.s .dl { color: #710; }
-
-.sh { background-color:#f0fff0; color:#2B2 }
-.sh .k { }
-.sh .dl { color:#161 }
-
-.sy { color:#A60 }
-.sy .k { color:#A60 }
-.sy .dl { color:#630 }
-
-.ta { color:#070 }
-.tf { color:#070; font-weight:bold }
-.ts { color:#D70; font-weight:bold }
-.ty { color:#339; font-weight:bold }
-.v { color:#036 }
-.xt { color:#444 }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/.svn/text-base/murphy.rb.svn-base Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-module CodeRay
-module Styles
-
- class Murphy < Style
-
- register_for :murphy
-
- code_background = '#001129'
- numbers_background = code_background
- border_color = 'silver'
- normal_color = '#C0C0C0'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px; }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
-table.CodeRay td { padding: 2px 4px; vertical-align: top; }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold; }
-.CodeRay .no { padding: 0px 4px; }
-.CodeRay .code { width: 100%; }
-
-ol.CodeRay { font-size: 10pt; }
-ol.CodeRay li { white-space: pre; }
-
-.CodeRay .code pre { overflow: auto; }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.af { color:#00C; }
-.an { color:#007; }
-.av { color:#700; }
-.aw { color:#C00; }
-.bi { color:#509; font-weight:bold; }
-.c { color:#555; background-color: black; }
-
-.ch { color:#88F; }
-.ch .k { color:#04D; }
-.ch .dl { color:#039; }
-
-.cl { color:#e9e; font-weight:bold; }
-.co { color:#5ED; font-weight:bold; }
-.cr { color:#0A0; }
-.cv { color:#ccf; }
-.df { color:#099; font-weight:bold; }
-.di { color:#088; font-weight:bold; }
-.dl { color:black; }
-.do { color:#970; }
-.ds { color:#D42; font-weight:bold; }
-.e { color:#666; font-weight:bold; }
-.er { color:#F00; background-color:#FAA; }
-.ex { color:#F00; font-weight:bold; }
-.fl { color:#60E; font-weight:bold; }
-.fu { color:#5ed; font-weight:bold; }
-.gv { color:#f84; }
-.hx { color:#058; font-weight:bold; }
-.i { color:#66f; font-weight:bold; }
-.ic { color:#B44; font-weight:bold; }
-.il { }
-.in { color:#B2B; font-weight:bold; }
-.iv { color:#aaf; }
-.la { color:#970; font-weight:bold; }
-.lv { color:#963; }
-.oc { color:#40E; font-weight:bold; }
-.of { color:#000; font-weight:bold; }
-.op { }
-.pc { color:#08f; font-weight:bold; }
-.pd { color:#369; font-weight:bold; }
-.pp { color:#579; }
-.pt { color:#66f; font-weight:bold; }
-.r { color:#5de; font-weight:bold; }
-.r, .kw { color:#5de; font-weight:bold }
-
-.ke { color: #808; }
-
-.rx { background-color:#221133; }
-.rx .k { color:#f8f; }
-.rx .dl { color:#f0f; }
-.rx .mod { color:#f0b; }
-.rx .fu { color:#404; font-weight: bold; }
-
-.s { background-color:#331122; }
-.s .s { background-color:#ffe0e0; }
-.s .s .s { background-color:#ffd0d0; }
-.s .k { color:#F88; }
-.s .dl { color:#f55; }
-
-.sh { background-color:#f0fff0; }
-.sh .k { color:#2B2; }
-.sh .dl { color:#161; }
-
-.sy { color:#Fc8; }
-.sy .k { color:#Fc8; }
-.sy .dl { color:#F84; }
-
-.ta { color:#070; }
-.tf { color:#070; font-weight:bold; }
-.ts { color:#D70; font-weight:bold; }
-.ty { color:#339; font-weight:bold; }
-.v { color:#036; }
-.xt { color:#444; }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/_map.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/_map.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module CodeRay
-module Styles
-
- default :cycnus
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/cycnus.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/cycnus.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-module CodeRay
-module Styles
-
- class Cycnus < Style
-
- register_for :cycnus
-
- code_background = '#f8f8f8'
- numbers_background = '#def'
- border_color = 'silver'
- normal_color = '#000'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
-table.CodeRay td { padding: 2px 4px; vertical-align: top }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold }
-.CodeRay .line_numbers .highlighted { color: red }
-.CodeRay .no { padding: 0px 4px }
-.CodeRay .code { width: 100% }
-
-ol.CodeRay { font-size: 10pt }
-ol.CodeRay li { white-space: pre }
-
-.CodeRay .code pre { overflow: auto }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.debug { color:white ! important; background:blue ! important; }
-
-.af { color:#00C }
-.an { color:#007 }
-.at { color:#f08 }
-.av { color:#700 }
-.aw { color:#C00 }
-.bi { color:#509; font-weight:bold }
-.c { color:#888; }
-
-.ch { color:#04D }
-.ch .k { color:#04D }
-.ch .dl { color:#039 }
-
-.cl { color:#B06; font-weight:bold }
-.cm { color:#A08; font-weight:bold }
-.co { color:#036; font-weight:bold }
-.cr { color:#0A0 }
-.cv { color:#369 }
-.de { color:#B0B; }
-.df { color:#099; font-weight:bold }
-.di { color:#088; font-weight:bold }
-.dl { color:black }
-.do { color:#970 }
-.dt { color:#34b }
-.ds { color:#D42; font-weight:bold }
-.e { color:#666; font-weight:bold }
-.en { color:#800; font-weight:bold }
-.er { color:#F00; background-color:#FAA }
-.ex { color:#C00; font-weight:bold }
-.fl { color:#60E; font-weight:bold }
-.fu { color:#06B; font-weight:bold }
-.gv { color:#d70; font-weight:bold }
-.hx { color:#058; font-weight:bold }
-.i { color:#00D; font-weight:bold }
-.ic { color:#B44; font-weight:bold }
-
-.il { background: #ddd; color: black }
-.il .il { background: #ccc }
-.il .il .il { background: #bbb }
-.il .idl { background: #ddd; font-weight: bold; color: #666 }
-.idl { background-color: #bbb; font-weight: bold; color: #666; }
-
-.im { color:#f00; }
-.in { color:#B2B; font-weight:bold }
-.iv { color:#33B }
-.la { color:#970; font-weight:bold }
-.lv { color:#963 }
-.oc { color:#40E; font-weight:bold }
-.of { color:#000; font-weight:bold }
-.op { }
-.pc { color:#038; font-weight:bold }
-.pd { color:#369; font-weight:bold }
-.pp { color:#579; }
-.ps { color:#00C; font-weight:bold }
-.pt { color:#074; font-weight:bold }
-.r, .kw { color:#080; font-weight:bold }
-
-.ke { color: #808; }
-.ke .dl { color: #606; }
-.ke .ch { color: #80f; }
-.vl { color: #088; }
-
-.rx { background-color:#fff0ff }
-.rx .k { color:#808 }
-.rx .dl { color:#404 }
-.rx .mod { color:#C2C }
-.rx .fu { color:#404; font-weight: bold }
-
-.s { background-color:#fff0f0; color: #D20; }
-.s .s { background-color:#ffe0e0 }
-.s .s .s { background-color:#ffd0d0 }
-.s .k { }
-.s .ch { color: #b0b; }
-.s .dl { color: #710; }
-
-.sh { background-color:#f0fff0; color:#2B2 }
-.sh .k { }
-.sh .dl { color:#161 }
-
-.sy { color:#A60 }
-.sy .k { color:#A60 }
-.sy .dl { color:#630 }
-
-.ta { color:#070 }
-.tf { color:#070; font-weight:bold }
-.ts { color:#D70; font-weight:bold }
-.ty { color:#339; font-weight:bold }
-.v { color:#036 }
-.xt { color:#444 }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/styles/murphy.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/styles/murphy.rb Thu Jan 20 09:59:02 2011 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-module CodeRay
-module Styles
-
- class Murphy < Style
-
- register_for :murphy
-
- code_background = '#001129'
- numbers_background = code_background
- border_color = 'silver'
- normal_color = '#C0C0C0'
-
- CSS_MAIN_STYLES = <<-MAIN
-.CodeRay {
- background-color: #{code_background};
- border: 1px solid #{border_color};
- font-family: 'Courier New', 'Terminal', monospace;
- color: #{normal_color};
-}
-.CodeRay pre { margin: 0px; }
-
-div.CodeRay { }
-
-span.CodeRay { white-space: pre; border: 0px; padding: 2px; }
-
-table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; }
-table.CodeRay td { padding: 2px 4px; vertical-align: top; }
-
-.CodeRay .line_numbers, .CodeRay .no {
- background-color: #{numbers_background};
- color: gray;
- text-align: right;
-}
-.CodeRay .line_numbers tt { font-weight: bold; }
-.CodeRay .no { padding: 0px 4px; }
-.CodeRay .code { width: 100%; }
-
-ol.CodeRay { font-size: 10pt; }
-ol.CodeRay li { white-space: pre; }
-
-.CodeRay .code pre { overflow: auto; }
- MAIN
-
- TOKEN_COLORS = <<-'TOKENS'
-.af { color:#00C; }
-.an { color:#007; }
-.av { color:#700; }
-.aw { color:#C00; }
-.bi { color:#509; font-weight:bold; }
-.c { color:#555; background-color: black; }
-
-.ch { color:#88F; }
-.ch .k { color:#04D; }
-.ch .dl { color:#039; }
-
-.cl { color:#e9e; font-weight:bold; }
-.co { color:#5ED; font-weight:bold; }
-.cr { color:#0A0; }
-.cv { color:#ccf; }
-.df { color:#099; font-weight:bold; }
-.di { color:#088; font-weight:bold; }
-.dl { color:black; }
-.do { color:#970; }
-.ds { color:#D42; font-weight:bold; }
-.e { color:#666; font-weight:bold; }
-.er { color:#F00; background-color:#FAA; }
-.ex { color:#F00; font-weight:bold; }
-.fl { color:#60E; font-weight:bold; }
-.fu { color:#5ed; font-weight:bold; }
-.gv { color:#f84; }
-.hx { color:#058; font-weight:bold; }
-.i { color:#66f; font-weight:bold; }
-.ic { color:#B44; font-weight:bold; }
-.il { }
-.in { color:#B2B; font-weight:bold; }
-.iv { color:#aaf; }
-.la { color:#970; font-weight:bold; }
-.lv { color:#963; }
-.oc { color:#40E; font-weight:bold; }
-.of { color:#000; font-weight:bold; }
-.op { }
-.pc { color:#08f; font-weight:bold; }
-.pd { color:#369; font-weight:bold; }
-.pp { color:#579; }
-.pt { color:#66f; font-weight:bold; }
-.r { color:#5de; font-weight:bold; }
-.r, .kw { color:#5de; font-weight:bold }
-
-.ke { color: #808; }
-
-.rx { background-color:#221133; }
-.rx .k { color:#f8f; }
-.rx .dl { color:#f0f; }
-.rx .mod { color:#f0b; }
-.rx .fu { color:#404; font-weight: bold; }
-
-.s { background-color:#331122; }
-.s .s { background-color:#ffe0e0; }
-.s .s .s { background-color:#ffd0d0; }
-.s .k { color:#F88; }
-.s .dl { color:#f55; }
-
-.sh { background-color:#f0fff0; }
-.sh .k { color:#2B2; }
-.sh .dl { color:#161; }
-
-.sy { color:#Fc8; }
-.sy .k { color:#Fc8; }
-.sy .dl { color:#F84; }
-
-.ta { color:#070; }
-.tf { color:#070; font-weight:bold; }
-.ts { color:#D70; font-weight:bold; }
-.ty { color:#339; font-weight:bold; }
-.v { color:#036; }
-.xt { color:#444; }
-
-.ins { background: #afa; }
-.del { background: #faa; }
-.chg { color: #aaf; background: #007; }
-.head { color: #f8f; background: #505 }
-
-.ins .ins { color: #080; font-weight:bold }
-.del .del { color: #800; font-weight:bold }
-.chg .chg { color: #66f; }
-.head .head { color: #f4f; }
- TOKENS
-
- end
-
-end
-end
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/token_classes.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/token_classes.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/coderay-0.9.2/lib/coderay/tokens.rb
--- a/vendor/plugins/coderay-0.9.2/lib/coderay/tokens.rb Thu Jan 20 09:59:02 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 fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/.svn/entries
--- a/vendor/plugins/engines/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
b8328004b1bb94c84d90c0839cd7d41d
2009-09-13T17:14:35.707881Z
2887
@@ -72,7 +72,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
a523ea1465a566ae38fba96a99506ff3
2008-07-12T10:17:14.809831Z
1654
@@ -106,7 +106,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
f653a768811758cee11e21d4de00b381
2009-10-07T16:43:50.656336Z
2904
@@ -140,7 +140,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
e4f81ba26f0b10a838b3336ba263aaa5
2009-09-13T17:14:35.707881Z
2887
@@ -177,7 +177,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
41bb5eeb2864cd46438eefb1cb048c4d
2009-02-21T11:04:50.579477Z
2493
@@ -214,7 +214,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
6e112fd6d07885bef3fd5bd537fc1409
2008-07-12T10:17:14.809831Z
1654
@@ -248,7 +248,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
18cc761cb69b7735ecf0cdb0d9b6d640
2009-09-13T17:14:35.707881Z
2887
@@ -282,7 +282,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
7e25f2cbded59c24735a20510040bb74
2008-07-12T10:17:14.809831Z
1654
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/generators/.svn/entries
--- a/vendor/plugins/engines/generators/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/generators/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/generators
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/generators/plugin_migration/.svn/entries
--- a/vendor/plugins/engines/generators/plugin_migration/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/generators/plugin_migration
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:54.000000Z
+2011-03-03T11:05:12.000000Z
3f4805cb1e4a8b8a3ed180f22d81c285
2010-11-14T16:24:21.989522Z
4406
@@ -66,7 +66,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
d796f61555b36ef9941ea049c94df06b
2008-07-12T10:17:14.809831Z
1654
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries
--- a/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/generators/plugin_migration/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/generators/plugin_migration/templates
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/generators/plugin_migration/templates
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
0b30f95c4244242093ded274caf9e4a8
2008-07-12T10:17:14.809831Z
1654
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/lib/.svn/entries
--- a/vendor/plugins/engines/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
b9128ad79c06e8c2eb2474a7f9edf60d
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/lib/engines/.svn/entries
--- a/vendor/plugins/engines/lib/engines/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/lib/engines
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
f5e61f1312a19bdac20f06b7529eaa98
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
d084e8ccb3edfb9f481f2626ee9e57e1
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
a2cb2f3c517fbe62ab1277e44b0a05ed
2009-02-21T11:04:50.579477Z
2493
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/lib/engines/plugin/.svn/entries
--- a/vendor/plugins/engines/lib/engines/plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/lib/engines/plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/plugin
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
2adca63e7c7d7c38a91953458e893bb2
2008-07-12T10:17:14.809831Z
1654
@@ -66,7 +66,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
21ac938bcf4f86e62ec21e9803cfd76e
2009-02-21T11:04:50.579477Z
2493
@@ -100,7 +100,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
38eaf6e3b113f74daa0669c67261cc72
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
d68941171066743dd63a174b5f270f66
2008-07-12T10:17:14.809831Z
1654
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries
--- a/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/lib/engines/rails_extensions/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/lib/engines/rails_extensions
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/lib/engines/rails_extensions
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
3e26c9fe2cd009cb5e81f6ccea3f012c
2009-02-21T11:04:50.579477Z
2493
@@ -66,7 +66,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:12.000000Z
c5a5e8b469c1e3fefcc5bedca9f4ac82
2010-09-17T04:06:40.671348Z
4094
@@ -100,7 +100,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
6e29697f02c187c9033624422365044a
2009-02-21T11:04:50.579477Z
2493
@@ -134,7 +134,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
f26da6a18ffcc7b846838f038a0abea4
2008-07-12T10:17:14.809831Z
1654
@@ -168,7 +168,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
8f8e408b9f1a72af1cc5232ddb888266
2009-02-21T11:04:50.579477Z
2493
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/tasks/.svn/entries
--- a/vendor/plugins/engines/tasks/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/tasks/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/tasks
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/tasks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
10b9e5aacd9d0673e694f6ababd6ee3b
2009-12-18T14:41:37.649419Z
3186
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/.svn/entries
--- a/vendor/plugins/engines/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/.svn/entries
--- a/vendor/plugins/engines/test/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/controllers
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
8e2adc646126f3962ca1eaf16d663fa7
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/controllers/namespace/.svn/entries
--- a/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/controllers/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/controllers/namespace
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/controllers/namespace
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
ed9f029690f9d77b31e0d68cff2f8ff3
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/helpers/.svn/entries
--- a/vendor/plugins/engines/test/app/helpers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/helpers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/helpers
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/helpers
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
b3286b0384ccf10d15423a78b8a70c3a
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/models/.svn/entries
--- a/vendor/plugins/engines/test/app/models/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/models/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/models
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/models
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
53fd050b6dc2f5da77439ffab6e1dd6e
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
ffba288117364d8379bd2b6788e2fd2f
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/things/.svn/entries
--- a/vendor/plugins/engines/test/app/things/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/things/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/things
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/things
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
aaa0b6b1363b304ca66c8def3c543b13
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/views/.svn/entries
--- a/vendor/plugins/engines/test/app/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries
--- a/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/app_and_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views/app_and_plugin
+4993
+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-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
e6dca36d9e91414f1a520ffddb5202d7
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/views/namespace/.svn/entries
--- a/vendor/plugins/engines/test/app/views/namespace/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views/namespace
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views/namespace/app_and_plugin
+4993
+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-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
e6dca36d9e91414f1a520ffddb5202d7
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/views/notify_mail/.svn/entries
--- a/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/notify_mail/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views/notify_mail
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/notify_mail
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
8e367f8a525da2fddf6b32d5f874c6ba
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
50ed7a6afc64b4a326aa8b681a31b9a3
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
cb0d28ce47ca265d02f252970ac69194
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
5a4f738dec733e5f4ad703495c5eb54a
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-08-12T15:03:27.000000Z
+2011-03-03T11:05:12.000000Z
3b779e7b00bfe0f9b876bfebd7905a4e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries
--- a/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/app/views/plugin_mail/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/app/views/plugin_mail
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/app/views/plugin_mail
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d0e724c594c43b6db39389834f3c26e2
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
317dc13d851c827568f61def9b031803
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/functional/.svn/entries
--- a/vendor/plugins/engines/test/functional/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/functional/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/functional
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/functional
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
53bf916868db17fcb64853aab45ce80b
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
03f318c931cb7d40733445e72a504c95
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
43b6ff22af92cc8988a51d1b50c4c587
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
0ca8b6e7e4b7655c3633b11d4ff61cc6
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
afcc79d3fa1c4f1615b271f65d982d8b
2009-09-13T17:14:35.707881Z
2887
@@ -202,7 +202,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
6bd25b9259dbf37b6d31e69f83a32fe0
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/lib/.svn/entries
--- a/vendor/plugins/engines/test/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
1fde453d5263852d1ba9fc3dd90254fc
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
b00ea9b677cec76cd2fc19b1f66db3e2
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
52fd5b17adc2fec1950be496b5ff3a3d
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/.svn/entries
--- a/vendor/plugins/engines/test/plugins/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
b70de56fa165815bbab14f584b6fbdb4
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
9e56eb4864bc1877cc8a6e69ca873157
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
f9f42ac7db3bb715ff4f055162013aba
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
a24a7b9dd5706d2daef2456b1b1cac4c
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
b1c4a105ad8bfa7add28c583dbd9ef8a
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
43152818b40142db88dffe0192e66582
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/models
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
a661e69f87fead66873ac8cc162da128
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
01ab2dea5fd3e341bd082f2fc507f760
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
ae48cf4ce7068428c1525dba877a880c
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
68deee946f4e81fafcae37d51f2e6bd5
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
3791a6748098d1382b11556ec47b6366
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
eeb9900e088c367d06668e201e4be39e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
3bef9fe54ed08fd7ce454a189b2b3195
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
3bef9fe54ed08fd7ce454a189b2b3195
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
4799f34099980de6af0dc719c7f04845
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
e892323cf7ac415a30ca41b49ab96d1d
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries
--- a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/alpha_plugin/locales
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/alpha_plugin/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
8fb4d64b7ed263c84a6aa2974eb71f25
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
cee45809cc705092eca4e13d3aa204f1
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
6c633d0dcb606e532dd906bd2567bf57
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
df7f8bb84aa9fcbe07534d5aa59e11b8
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
a8bcbb79381d6db75a9ea6e2704828a9
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/models
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
c9a469b003eca7ac6627c41deeda1b4c
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
78db1a7e1a9f6216dfa3671e5d42c81b
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
78db1a7e1a9f6216dfa3671e5d42c81b
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries
--- a/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/beta_plugin/locales
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/beta_plugin/locales
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
277816fa171800daec137e70993e39f6
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/not_a_plugin
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/not_a_plugin
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries
--- a/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/not_a_plugin/public/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/not_a_plugin/public
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/app/controllers
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
ba97b09a04ada07aa57234ea8649c128
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/app/views/assets
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
5c22cfc5b27a3b2b869075baacf530a6
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
8a99331150683df5edbd645cb851de37
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/public
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_assets/public
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets/public/subfolder
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder
+4993
+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-08-12T15:03:28.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_code_mixing
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
cee45809cc705092eca4e13d3aa204f1
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_code_mixing/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_code_mixing/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_code_mixing/app/things
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
3b8cfcd53b03ccc6db1aac5b542abaa4
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_load_path/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_load_path/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_load_path
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_load_path
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_migration/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_migration
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_migration/db
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_migration/db
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_migration/db/migrate
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
ba950e9dc666a42d09029148ae7e3234
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
de937ac5b434955daacc33306a5a1a2d
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
b9241da5bb8308bcea2f4cd5cbd32ff1
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_plugin_mailing
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_plugin_mailing/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
6bfa7a84bb26ae29617568896fec30ae
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
cf207341167ec099c0e0ffbe3935a4d4
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
c54772416c0a8c4f3d46880180299dd5
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
6f32fb0cf1bfbf4dcc8636f350a126e8
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
6f32fb0cf1bfbf4dcc8636f350a126e8
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
ededb32a08ab9582df24ce1572dc2a20
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_routing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_routing
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_routing/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/app
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_routing/app/controllers
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
e5a27666b16bdff58054a3440cf14516
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
515669edfb53126155e911a1ae5149ec
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_routing/config/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_routing/config
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_routing/config
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
47135f279d2e64a431d8604df1402ffb
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_testing/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_testing
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing
http://redmine.rubyforge.org/svn
@@ -38,7 +38,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/app/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_testing/app
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/app
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
9cbac832f86ac5e8cfbbc4c69811910e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_testing/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/plugins/test_testing/test
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_testing/test/fixtures
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d41d8cd98f00b204e9800998ecf8427e
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries
--- a/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/plugins/test_testing/test/unit
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
35e9fbc2fb32c9114a5d6cf531f41e8d
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/unit/.svn/entries
--- a/vendor/plugins/engines/test/unit/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/unit/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/unit
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
6724203a17cf765303c1f1cad440ec45
2009-09-13T17:14:35.707881Z
2887
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
45a0f490d23fbb62bab17f142ba7e3a6
2009-09-13T17:14:35.707881Z
2887
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
061b4ca6bf8ee79b149289ced48c0389
2009-09-13T17:14:35.707881Z
2887
@@ -134,7 +134,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
caf5ed93e20f9675e13260049b591bcb
2009-09-13T17:14:35.707881Z
2887
@@ -168,7 +168,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d48da3c38e3e757d1649f48a25913284
2009-09-13T17:14:35.707881Z
2887
@@ -202,7 +202,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
ba3376b21f9304e1bc6dd06e88fb031f
2009-09-13T17:14:35.707881Z
2887
@@ -236,7 +236,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
7930dc88c66a78e10283af28694f9d75
2009-09-13T17:14:35.707881Z
2887
@@ -273,7 +273,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
da88ee34b7ad92288156f6dc33bc8945
2009-09-13T17:14:35.707881Z
2887
@@ -307,7 +307,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
749dec42d5f8db283afd40fa09a7a323
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/engines/test/unit/test_testing/.svn/entries
--- a/vendor/plugins/engines/test/unit/test_testing/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/engines/test/unit/test_testing/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/engines/test/unit/test_testing
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/engines/test/unit/test_testing
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
55340a07100e4eea865c224b450561d8
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/gravatar/.svn/entries
--- a/vendor/plugins/gravatar/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/gravatar/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/gravatar
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-10-01T15:15:02.000000Z
+2011-03-03T11:05:12.000000Z
dcfa5a7b3c1cc768b2c0e3ad1ab802d0
2010-09-10T03:09:02.311267Z
4072
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
3b03a1f4670e486bfc0a99ea42fcc661
2009-08-02T04:19:44.367555Z
2832
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
cd9b6943fc8fe58cdccef0b0215bf6bb
2009-08-02T04:19:44.367555Z
2832
@@ -134,7 +134,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
7560c41dd1c4891e83f52d2855a6a4e9
2008-10-30T02:58:04.259131Z
1962
@@ -171,7 +171,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
b718f27e16d77b36a24720b5b902328f
2008-10-30T02:58:04.259131Z
1962
@@ -208,7 +208,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
e052390cb0624d4b81b7809e65db85f6
2009-08-02T04:19:44.367555Z
2832
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/gravatar/lib/.svn/entries
--- a/vendor/plugins/gravatar/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/gravatar/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/gravatar/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/lib
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-11-30T13:11:54.000000Z
+2011-03-03T11:05:12.000000Z
a25a3e98e0d582955ee8fd520f424273
2010-11-14T16:24:21.989522Z
4406
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/gravatar/spec/.svn/entries
--- a/vendor/plugins/gravatar/spec/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/gravatar/spec/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/gravatar/spec
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/gravatar/spec
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-10-01T15:15:03.000000Z
+2011-03-03T11:05:12.000000Z
26b23e5e988b11435e121bf53624d934
2010-09-10T03:09:02.311267Z
4072
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/.svn/entries
--- a/vendor/plugins/open_id_authentication/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
b66b372df8374607d104228f41a06671
2009-02-11T19:06:45.087605Z
2438
@@ -72,7 +72,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
22579abfc9dc6a4cf475150e407e9a17
2009-02-12T21:25:50.680468Z
2458
@@ -109,7 +109,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d23f4c2e6c00805d7172c76ad52ebe6f
2009-02-11T19:06:45.087605Z
2438
@@ -146,7 +146,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
45eb3e296a3591fca629d0c8eab71e4c
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/generators/.svn/entries
--- a/vendor/plugins/open_id_authentication/generators/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/generators
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/generators
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
ee799e52b83b842fa2a879431195e9eb
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
352b0b17c079fdf355c028a9b990b3b7
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
f401bfd8b5d2dd3008d16bf79de8c1e4
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
512b6bc6321e15e12a9eb5ef10317b73
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/lib/.svn/entries
--- a/vendor/plugins/open_id_authentication/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-09-10T14:59:25.000000Z
+2011-03-03T11:05:12.000000Z
c72f1bd48e8c2dfe4e84ba232fc40030
2010-08-10T21:12:32.103531Z
3933
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries
--- a/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/lib/open_id_authentication/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/lib/open_id_authentication
+4993
+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-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
1effe2a3ab6ff2cf3a4ffc288222b114
2009-02-11T19:06:45.087605Z
2438
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
9ed2aea6a3f0e76f21a84bf5bdb1bebe
2009-02-11T19:06:45.087605Z
2438
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
4aa743638f54375c2f1f25e62fa50bf3
2009-02-11T19:06:45.087605Z
2438
@@ -134,7 +134,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d05c8725996156d4cc153a2fc0891db8
2009-02-11T19:06:45.087605Z
2438
@@ -168,7 +168,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
6a6fdfddabbc9ae4b8c11f69bc653107
2009-02-11T19:06:45.087605Z
2438
@@ -202,7 +202,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
42863e1d17d5af05e0e896d336def59c
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/tasks/.svn/entries
--- a/vendor/plugins/open_id_authentication/tasks/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/tasks/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/tasks
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/tasks
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
54b595ee92e0adb364a9086340b2af51
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/open_id_authentication/test/.svn/entries
--- a/vendor/plugins/open_id_authentication/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/open_id_authentication/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/open_id_authentication/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/open_id_authentication/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
9448478c6f6c999b3dfae03f9661a7a9
2009-02-11T19:06:45.087605Z
2438
@@ -66,7 +66,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
218b9c429fce5d50a6de37d10d4c626a
2009-02-11T19:06:45.087605Z
2438
@@ -100,7 +100,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
3ffcd8ee621212d3a963257c35cf565c
2009-02-11T19:06:45.087605Z
2438
@@ -134,7 +134,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
26175162cebaa3962614100cac9726fc
2009-02-11T19:06:45.087605Z
2438
@@ -168,7 +168,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
c3e483ae649f9324f093075331c26ed1
2009-02-11T19:06:45.087605Z
2438
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/prepend_engine_views/.svn/entries
--- a/vendor/plugins/prepend_engine_views/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/prepend_engine_views/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/prepend_engine_views
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/prepend_engine_views
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
720c397a2f5ed49f4436f5d9cbe0b5ec
2009-09-13T17:14:35.707881Z
2887
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/rfpdf/.svn/entries
--- a/vendor/plugins/rfpdf/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/rfpdf/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/rfpdf
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
1da9fbada6119233134b3aab6c7d0edf
2008-07-04T17:58:14.743502Z
1623
@@ -72,7 +72,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
275a3dc6407eaf7c40f1d8f4e6b08803
2006-11-21T18:34:04.275680Z
49
@@ -106,7 +106,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
40cf182dab06e3de067375de5bbab322
2006-11-21T18:34:04.275680Z
49
@@ -140,7 +140,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
d58199e83ebcaa5d234764407c238bb2
2006-11-21T18:34:04.275680Z
49
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/rfpdf/lib/.svn/entries
--- a/vendor/plugins/rfpdf/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/rfpdf/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/rfpdf/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/lib
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:29.000000Z
+2011-03-03T11:05:12.000000Z
9667df0ee17c3893ec4025f214d990ee
2006-11-21T18:34:04.275680Z
49
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/rfpdf/lib/rfpdf/.svn/entries
--- a/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/rfpdf/lib/rfpdf/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,7 +1,7 @@
10
dir
-4732
+4993
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-03-03T11:05:12.000000Z
ddaf6868455af432aac221e53aadc10a
2008-06-07T08:39:06.277997Z
1497
@@ -66,7 +66,7 @@
-2011-01-13T14:09:38.000000Z
+2011-03-03T11:05:12.000000Z
a2f702c9c8177f01521aa9eb5d6f9313
2011-01-01T11:45:12.617336Z
4602
@@ -100,7 +100,7 @@
-2010-09-23T14:37:45.855835Z
+2011-03-03T11:05:12.000000Z
61d6e8e3bc2a549b1adf12c8e5148019
2010-02-07T12:30:44.486359Z
3389
@@ -134,7 +134,7 @@
-2010-09-23T14:37:45.855835Z
+2011-03-03T11:05:12.000000Z
f504607d615e4d100eb506daf3dfe038
2006-11-21T18:34:04.275680Z
49
@@ -168,7 +168,7 @@
-2010-09-23T14:37:45.855835Z
+2011-03-03T11:05:12.000000Z
267f469d753d389beda7bb8d39ef5e79
2007-02-18T10:33:22.252239Z
248
@@ -202,7 +202,7 @@
-2010-09-23T14:37:45.851779Z
+2011-03-03T11:05:12.000000Z
8b971319c65229a7075520cf5ce0fb84
2006-11-21T18:34:04.275680Z
49
@@ -236,7 +236,7 @@
-2010-09-23T14:37:45.851779Z
+2011-03-03T11:05:12.000000Z
c11f99560b9b2e12cf9c679f8ef11c37
2006-11-21T18:34:04.275680Z
49
@@ -270,7 +270,7 @@
-2010-09-23T14:37:45.851779Z
+2011-03-03T11:05:12.000000Z
48cd43d67257151aebb2e0aeee6f4cbf
2007-03-01T19:49:04.518842Z
287
@@ -304,7 +304,7 @@
-2010-09-23T14:37:45.855835Z
+2011-03-03T11:05:12.000000Z
9bdec08cb98e4413cfb9c39877f3734d
2008-07-04T17:58:14.743502Z
1623
@@ -338,7 +338,7 @@
-2010-09-23T14:37:45.851779Z
+2011-03-03T11:05:12.000000Z
e759935ac5ac9027073e9a2f3543b231
2006-11-21T18:34:04.275680Z
49
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/rfpdf/test/.svn/entries
--- a/vendor/plugins/rfpdf/test/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/rfpdf/test/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/rfpdf/test
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/rfpdf/test
http://redmine.rubyforge.org/svn
@@ -32,7 +32,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
65b672e3025a6dc9ed22dc2cb1356061
2006-11-21T18:34:04.275680Z
49
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/ruby-net-ldap-0.0.4
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4
http://redmine.rubyforge.org/svn
@@ -35,7 +35,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
100efd8d000514effa3709713ab85acb
2007-01-02T08:48:40.736310Z
134
@@ -72,7 +72,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
e951c712b462c2e6e01f12474d4a23c2
2007-01-02T08:48:40.736310Z
134
@@ -106,7 +106,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
ff6d66271209d878dbe3742d8061151e
2007-01-02T08:48:40.736310Z
134
@@ -140,7 +140,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
365281a5053e3232092adff0636600b3
2007-01-02T08:48:40.736310Z
134
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/ruby-net-ldap-0.0.4/lib
+4993
+http://redmine.rubyforge.org/svn/trunk/vendor/plugins/ruby-net-ldap-0.0.4/lib
http://redmine.rubyforge.org/svn
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/ruby-net-ldap-0.0.4/lib/net
+4993
+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-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
bcd7fbc67923f3cc1491ca301a5c39cb
2007-01-02T08:48:40.736310Z
134
@@ -69,7 +69,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
47d5a9c76d96071a1de184dd49c09194
2007-01-02T08:48:40.736310Z
134
@@ -103,7 +103,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
40f7f978006674f2b916ce341e5ad684
2008-02-15T17:22:21.293943Z
1148
diff -r fca2657f4aa5 -r eeebe205a056 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 Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/ruby-net-ldap-0.0.4/lib/net/ldap
+4993
+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-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
be6b5dd522a4532ceeda4ab5bddcb53e
2007-01-02T08:48:40.736310Z
134
@@ -66,7 +66,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
dce002e156bf793b6219b50e5d4ede3a
2007-01-02T08:48:40.736310Z
134
@@ -100,7 +100,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
39c1aa4a3ff36f2769b6855a4b56faa7
2007-02-18T11:45:55.832750Z
252
@@ -134,7 +134,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
7acdae44250f47d4b177c0367865d5f7
2007-01-02T08:48:40.736310Z
134
@@ -168,7 +168,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
7af528c0721148b904f82e64e523ee74
2007-01-02T08:48:40.736310Z
134
diff -r fca2657f4aa5 -r eeebe205a056 vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries
--- a/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Thu Jan 20 09:59:02 2011 +0000
+++ b/vendor/plugins/ruby-net-ldap-0.0.4/tests/.svn/entries Thu Mar 03 12:02:03 2011 +0000
@@ -1,8 +1,8 @@
10
dir
-4732
-http://redmine.rubyforge.org/svn/branches/1.1-stable/vendor/plugins/ruby-net-ldap-0.0.4/tests
+4993
+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-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
d32a0d5d48658b30de358974dc588b6a
2007-01-02T08:48:40.736310Z
134
@@ -66,7 +66,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
9a4a1de4982131870bcc016b3062b563
2007-01-02T08:48:40.736310Z
134
@@ -100,7 +100,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
07fadb83b55212328945590db904016b
2007-01-02T08:48:40.736310Z
134
@@ -134,7 +134,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
f60b9471933a7a534097d3fd1fe38a18
2007-01-02T08:48:40.736310Z
134
@@ -168,7 +168,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
98e4a39b73665ed7c274457213d8e3d5
2007-01-02T08:48:40.736310Z
134
@@ -202,7 +202,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
a6eed10e89ba06f4ffa2da720bb1752f
2007-01-02T08:48:40.736310Z
134
@@ -236,7 +236,7 @@
-2010-08-12T15:03:30.000000Z
+2011-03-03T11:05:12.000000Z
3dcbc8b4c3717fa97211a1d75a7fab4f
2007-01-02T08:48:40.736310Z
134
| |