From 5ee15661dbc2da70927f588e310315233aff6eea Mon Sep 17 00:00:00 2001 From: murphy Date: Mon, 10 Apr 2006 03:06:50 +0000 Subject: Large update: Scanners for HTML, RHTML and Nitro-XHTML added. CSS style changes/enhancments (mainly the new background color for inline code, affects all Ruby code.) Demos and tests adjusted. Plugin: new PluginHost::default method. Scanner: - New setup method - ability to re-use a scanner - ability to keep the tokens - minor changes to token caching and string flattening Encoder: Error if token content is neither String nor Symbol. HTML encoder: - more warnings for unclosed tokens - output now UTF-8 Ruby Scanner: - bug: symbols before => now do not include =; {:foo=>bar} is valid Ruby code - try to close all open tokens - constants now all with specific namespace (for speed, I hope) Styles: new :entity/en class. Test suite now gives hinted HTML output. --- bench/bench.rb | 1 + bench/example.rhtml | 561 ++++++++++++++++++++++++++++++++++++++++++++++++++++ bench/example.xhtml | 376 +++++++++++++++++++++++++++++++++++ 3 files changed, 938 insertions(+) create mode 100644 bench/example.rhtml create mode 100644 bench/example.xhtml (limited to 'bench') diff --git a/bench/bench.rb b/bench/bench.rb index 533a893..efda06e 100644 --- a/bench/bench.rb +++ b/bench/bench.rb @@ -69,6 +69,7 @@ Benchmark.bm(20) do |bm| if $dump_input @size = CodeRay::Tokens.load(data).text_size else + raise 'Example file is empty.' if data.empty? unless @size.zero? data += data until data.size >= @size data = data[0, @size] diff --git a/bench/example.rhtml b/bench/example.rhtml new file mode 100644 index 0000000..041bec1 --- /dev/null +++ b/bench/example.rhtml @@ -0,0 +1,561 @@ +<% @title = 'Moderatoren-Interface' %> + +
+
<%= link_to 'Proben', :controller => '/admin/proben' %>
+
Die angesetzten Proben des Orchesters
+
<%= link_to 'Auftritte', :controller => '/admin/proben' %>
+
Die Auftritte des Orchesters
+ <%- if @valid_user and @valid_user.admin? -%> +
<%= link_to 'Benutzer', :controller => '/admin/user' %>
+
Benutzer organisieren (nur für den Admin)
+ <%- end -%> +
+<% @title = 'Anmeldung' %> + +<%= render :partial => 'user_form', :object => @user %> +<% @title = 'Administrator erstellen' %> + +<%= render :partial => 'user_form', :object => @user %> +<%= form_tag %> + + + + + + + + + + + + +
Name:<%= text_field 'user', 'name' %>
Passwort:<%= password_field 'user', 'password' %>
<%= submit_tag 'Anmelden' %>
+<%= end_form_tag %> +<% @title = 'Neuer Benutzer' -%> +<%= error_messages_for :user %> +<%= render :partial => 'form', :object => @user %> +<%= form_tag %> + + + + + + + + + + + + +
Name:<%= text_field 'user', 'name' %>
Passwort:<%= password_field 'user', 'password' %>
<%= submit_tag 'Anlegen' %>
+<%= end_form_tag %> +<% @title = 'Auftritte' %> + + + <%= render :partial => 'head' %> + <%= render :partial => 'day', :collection => @days %> +
+<% day, auftritte = *day -%> +<% + for auftritt in auftritte +-%> + + + + <%= colorize day.to_s(:dots) if day %> + <% if day and day.wday == 6 %>
Samstag<% end %> + + + <%= colorize auftritt.time %> + + + <%= colorize auftritt.program %> + <%= link_to 'E', :controller => 'admin/auftritte', :action => :edit, :id => auftritt %> + + + <%= colorize(auftritt.place, 'Ort: ') + '
' unless auftritt.place.blank? %> + + + +<% + day = nil + end +-%> + + Datum + Zeit + Programm + Ort + +<% @title = "Besetzung - #{@instrument.name}" %> + +

+<%= pluralize(@members.size, 'Schüler spielt', 'Schüler spielen') %> <%= h @instrument.name %>: +

+ + + <%= render :partial => 'member', :collection => @members %> +
+<% @title = 'Besetzung: %d Mitglieder' % Member.count -%> + + + + +<%= render :partial => 'member', :collection => @members %> +
+<% @title = "Besetzung - Instrument wählen" %> + + +<% @title = "Besetzung: #{@member.name}" -%> + +
+ +
Instrument / Aufgabe:
+
<%= link_to_instruments_of @member %>
+ +
Geburtstag:
+
<%= h @member.birthday.to_s(:dots) %>
+ +
Adresse:
+
<%= h @member.street %>
<%= h @member.plz %>
+ +
Telefon:
+
<%= h @member.phone %>
+ +
Email:
+
<%= mail_to @member.email, @member.email, :encode => 'javascript' %>
+ +
+ + <%= link_to member.name, :action => :show, :id => member %>: + <%= link_to_instruments_of member %> + + +<% @title = 'Arbeitsgruppen' -%> +

+ Die Arbeitsgruppen sind verantwortlich für die Organisation und Durchführung verschiedenster Aufgaben: +

+ + +<% @title = 'Chronik' -%> +

+ Das Jugendsinfonieorchester Marzahn-Hellersdorf wurde im Januar 2005 an der + Musikschule Marzahn-Hellersdorf gegründet und gab im Mai 2005 sein erstes + umjubeltes Konzert im FEZ Wuhlheide. Das Orchester umfasst zur Zeit ca. 65 + jugendliche Musiker und soll auf die Größe eines ausgewachsenen + Sinfonieorchesters erweitert werden (80-100 Musiker). +

+ +

+ Als musikalischer Leiter konnte der Dirigent und Echo-Preisträger Jobst + Liebrecht gewonnen werden, der die Musikschule schon aus einer früheren + Zusammenarbeit anlässlich der Kinderoper 'Pollicino' von Hans Werner Henze + kennt. Das Orchester probt wöchentlich. Neben den Tuttiproben finden außerdem + ebenfalls wöchentlich Stimmsatzproben statt, die von Lehrkräften betreut werden. + Das gemeinsame Ziel ist der Aufbau eines leistungsstarken, lebendigen + Klangkörpers, der die Jugendlichen und die Zuhörer ganz neu und direkt für die + Orchestermusik begeistert und diese Musik in den sozialen Brennpunkt Marzahn- + Hellersdorf trägt. +

+ +

+ Im Jahr sind etwa 2-3 Konzertprogramme geplant, mit denen wir in Konzertsälen + auftreten. Das erste Konzert des Jugendsinfonieorchesters Marzahn-Hellersdorf + wurde von DeutschlandRadio Kultur aufgezeichnet und in einer Sendung mit dem + Titel „EINSTAND: Nicht nur auf der Strasse herumhängen” porträtiert. + Wir wollen außerdem vor Ort in Marzahn und Hellersdorf in die Öffentlichkeit + gehen und spielen, um so für die Kultur zu werben und auch weitere Kinder und + Jugendliche für die Musik und fürs Mitmachen zu gewinnen. Durch die Einrichtung + eines zusätzlichen Vororchesters wird längerfristig versucht, die Arbeit auf ein + breites Fundament zu stellen, eine Werkstatt, ein musikalisches Bauhaus zu + gründen. Wenn die Orchesterarbeit erfolgreich angelaufen ist, sollen auch + übergreifende Projekte (Theater, Tanz, Chor) stattfinden. +

+ +

+ Das Orchester will Musik von heute spielen in jedem Sinn, ob es sich um Stücke + aus der sinfonischen Tradition handelt oder um zeitgenössische Musik. Wir kennen + keine Berührungsängste und sind neugierig auf Musik aller Art und möchten diese + Neugierde mit unserem Publikum teilen. +

+<% @title = 'Dirigent - Jobst Liebrecht' -%> +

+ <%= image_tag 'jobstliebrecht.jpg', :alt => 'Jobst Liebrecht', :title => 'Jobst Liebrecht', :class => 'pic_right' %> + Jobst Liebrecht studierte Dirigieren an der Musikhochschule in München und bei Peter Eötvös. Sein spezielles Interesse + für neue Musik führte schnell zur Zusammenarbeit mit renommierten Ensembles auf dem Gebiet wie dem Ensemble Modern, + Frankfurt, dem Klangforum-Ensemble, Wien, dem Ensemble Köln sowie dem Ensemble United Berlin. Aufnahmen entstanden beim + WDR, beim DeutschlandRadio Berlin, beim BR und beim SFB. Er dirigierte u.a. das Rundfunk Sinfonieorchester Berlin, die + Duisburger Philharmoniker und das Münchner Kammerorchester sowie in den Opernhäusern in Halle und Giessen. Tourneen im + Ausland führten ihn nach Argentinien, Georgien, Südkorea und in die USA. +

+ +

+ Zu den Ur- und Erstaufführungen, die er betreut hat, gehören die Opern 'Lunu' von Moritz Eggert, 'Gloria von Jaxtberg' von + HK Gruber sowie in Zusammenarbeit mit dem Regisseur Einar Schleef das Musiktheaterspiel 'Der Golem in Bayreuth' von Ulla + Berkewicz/Lesch Schmidt am Wiener Burgtheater. +

+ +

+ Jobst Liebrecht war mehrere Jahre lang Assistent von Hans Werner Henze und auch immer wieder pädagogisch tätig. Seine + Aufnahme von Henzes Märchenoper 'Pollicino', die als CD bei Wergo erschienen ist, wurde mit dem ECHO-Preis 2004 in der + Sparte 'Klassik für Kinder' ausgezeichnet. +

+ +

+ Als Komponist ist Jobst Liebrecht mit Liedern, Kammermusik sowie Bühnenmusiken an die Öffentlichkeit getreten. +

+<% message, backtrace = session[:boom] -%> +<% @title = 'Fehler in Zeile %d' % [backtrace[/line\s+#(\d+)/,1]] -%> +
+
<%= h message %>
+
+<%= debug backtrace %> +<% cache :action_suffix => (action = params[:action]) do -%> +

+Der Inhalt für die Aktion <%= h action.inspect %> fehlt noch. +

+<% end -%> +<% @title = 'Schulferien Berlin' -%> +

+ Unser Orchester besteht zu einem sehr großen Teil aus Schülern und auch die + Musikschule, der die meisten von uns entstammen, hat in den Schulferien + geschlossen.
+ Deshalb finden innerhalb der Berliner Ferienzeiten keine Proben statt. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zeitraum200620072008
+ Winter + 30.01. - 03.02. + 05.02. - 10.02. + 04.02. - 09.02.
+ Ostern/Frühjahr + 10.04. - 21.04. + 02.04. - 13.04. + 17.03. - 28.03.
+ Himmelf./Pfingsten + 30.04. / 18.05. + 30.04. / 18.05. + 02.05.
+ Sommer + 06.07. - 19.08. + 12.07. - 25.08. + 17.07. - 30.08.
+ Herbst + 02.10. - 14.10. + 15.10. - 27.10. +
+ Weihnachten + 27.12. - 05.01.07 + 24.12. - 04.01.08 +
+<% @title = 'Termine' -%> + + + + + + <%= tag 'meta', :'http-equiv' => 'content-language', :content => 'de' %> + <%= tag 'meta', :'http-equiv' => 'content-type', :content => 'text/html; charset=UTF-8' %> + + + + + + + + + + + + + JSO<%-if @title-%> - <%= h @title %><%- end -%> + <%= stylesheet_link_tag '/rcss/main' %> + <%#= stylesheet_link_tag 'main' %> + <%= javascript_include_tag 'nospam' %> + <%#= javascript_include_tag :defaults %> + + + + + + + + + + + + + + + + + +
+ <%= image_tag 'JSO-Logo.gif', :alt => 'JSO-Logo' %> + + +
jugendsinfonieorchester
+
+<% if valid_user -%> +
    + +
+<% end -%> +<% cache :controller => 'menu', :action => 'main_menu' do -%> + <%= render_component :controller => 'menu', :action => 'index' %> +<% end -%> +
+<% unless @flash.keys.empty? -%> +
+ <%- for kind, msg in @flash -%> +
<%= h msg %>
+ <%- end -%> +
+<% end -%> +<%= content_tag 'h3', h(@title) if @title %> +<%= @content_for_layout %> +
+ +
+ powered by Ruby on Rails <%= Rails::Info.properties.value_for 'Rails version' %> [<%= h RAILS_ENV[/^./] %>] + <%= image_tag 'css.png', :alt => 'valid CSS', :title => 'valid Cascading Style Sheet', :style => 'display: inline; vertical-align: middle' %> + <%= image_tag 'xhtml11.png', :alt => 'valid XHTML 1.1', :title => 'valid eXtensible Hypertext Markup Language 1.1', :style => 'display: inline; vertical-align: middle' %> +
+
+ + + + +<% @title = 'Übersicht' -%> + +

nächste Probe

+ + <%= render :partial => 'proben/head' %> + <%= render :partial => 'proben/day', :object => @next_probe %> +
+

<%= link_to 'weitere Proben...', :controller => 'proben' %>

+ +

nächster Auftritt

+ + <%= render :partial => 'auftritte/head' %> + <%= render :partial => 'auftritte/day', :object => @next_auftritt %> +
+

<%= link_to 'mehr Auftritte...', :controller => 'auftritte' %>

+ +<% @title = 'Probenplan' %> + + + <%= render :partial => 'head' %> + <%= render :partial => 'day', :collection => @days %> +
+ +

+Ort (wenn nicht anders angegeben): Schule am Pappelhof +

+ +<%= render_partial 'raum' %> +<% day, proben = *day -%> +<% + for probe in proben +-%> + + + + <%= colorize day.to_s(:dots) if day %> + <% if day and day.wday == 6 %>
Samstag<% end %> + + + <%= colorize probe.time %> + + + <%= colorize(probe.place, 'Ort: ') + '
' unless probe.place.blank? %> + <%= colorize probe.program %> + <%= link_to 'E', :controller => 'admin/proben', :action => :edit, :id => probe %> + + + <%= h probe.instrumentation %> + + + +<% + day = nil + end +-%> + + Datum + Zeit + Stücke + Besetzung + +

Probenräume

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WerRaumAdresse
StreicherSchule am Pappelhof
(Raum Nr.)
(Anschrifft Pappelhofschule)
BlechbläserMusikschule Marzahn
(Raum Nr.)
(Anschrifft Musikscule Marzahn)
HolzbläserSchule am Pappelhof
(Raum Nr.)
(Anschrifft Pappelhofschule)
...(Ort)
(Raum Nr.)
(Anschrifft)
diff --git a/bench/example.xhtml b/bench/example.xhtml new file mode 100644 index 0000000..a08cf75 --- /dev/null +++ b/bench/example.xhtml @@ -0,0 +1,376 @@ + + + + Error + + + +

Error

+ + + +
Path: #{path}
+
#{CGI.escapeHTML(error.to_s)}
+
+ Reload this page. + Go to the referer or the home page. +
+
+ + In file '#{error.hot_file}' #{error.hot_file =~ /\.xhtml$/ ? '(line numbering is aproximate due to template transformation)' : nil}: +

+ +
#{line}
+ +
#{line}
+ +
+

Stack Trace

+ + + +

Request

+ + +

Response

+ + +

Session

+ + +

+ Powered by Nitro version #{Nitro::Version} + + + + + +

Home > System > #{"%plural%".humanize} > Edit #{"%name%".humanize}

+ + Show editable + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :all => true} + + Show all + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list"} + +
+#{form_for(@%name%)} + + +

#{"%plural%".humanize}

+

New #{"%name%".humanize}

+
+ Search #{"%plural%".humanize}:   +
+ + + + + + + + + + + +
#{obj.to_s}#{obj.update_time.stamp(:db)}editdel
+
+ + +

Home > System > #{"%plural%".humanize}

+ New #{"%name%".humanize} +

+

+ Search #{"%plural%".humanize}:   +
+

+ + + + + + + + + + + +
#(obj.to_s)#{obj.update_time.stamp(:db)}editdel
+
+ #{@pager.navigation} +
+
+ + +

Home > System > #{"%plural%".humanize} > New #{"%name%".humanize}

+ + Show editable + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :all => true, :enctype => "multipart/form-data"} + + Show all + #{form_for @obj, :action => "#{base}/save", :cancel => "#{base}/list", :enctype => "multipart/form-data"} + +
+ + +

Home > System > #{"%plural%".humanize} > Search for '#@query'

+

+

+ Search #{"%plural%".humanize}:   +
+

+ +

Search method is not implemented for this object

+ + + + + + + + + + + + +
#(obj.to_s)#{obj.update_time.stamp(:db)}editdel
+
+ #{@pager.navigation} +
+ +
+ + +

View %name%

+

List of %plural%

+ + #{@obj.to_yaml} + +
+Access denied + + +

Home > System

+ +

Og managed classes

+ + + + + + + + + + + + + + + + + +
ClassCountCleanupProperties
#{c.name}#{c.count}deletedestroy#{c.properties.values.join(', ')}
+ +

System configuration

+ + + + + + + + + + + + + + + + +
NameValueTypeDescription
#{s.owner}.#{s.name}#{s.value.inspect}#{s.type}#{s.options[:doc]}
+
+ + + + + Test + + + + + + + +hello +Hello #{username} + +how do you feel? + +Here is your Token: #{token} + +
+ +

Questions with Tags: #{@tags.join(" ")}

+ + 0 ?> + + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@qtags)} + +
+ +

#{q.question}

+

+ + #{excerpt} +

+

#{q.answers.size.to_i} answers

+ +
+
+ #{@qpager.navigation} +
+ +
+

no question with this/these tag(s) found

+

Ask a question here.

+
+ + + 0 ?> +

Tips with Tags: #{@tags.join(" ")}

+ + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@ttags)} + +
+ +

#{t.title}

+

+ + #{excerpt} +

+ +
+
+ #{@tpager.navigation} +
+ + + 0 ?> +

Tutorials with Tags: #{@tags.join(" ")}

+ + Too many results for that Tag, please reduce the number by using one of the following Tags: + #{cloud_of(@tuttags)} + +
+ +

#{t.title}

+

+ + #{excerpt} +

+ +
+
+ #{@tpager.navigation} +
+ + + + +
+ + + #{t.name} + +
+ +
+ + +
+ + -- cgit v1.2.1