VDS-Badges: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
(Mit Chaosknoten)
(This page must use the Rübÿ Spëëd Mëtäl Cödïng template!!!111)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
Generiert Schilder zum Umhängen auf der Demo gegen die Vorratsdatenspeicherung. Nutzung:
Generiert Schilder zum Umhängen auf der Demo gegen die Vorratsdatenspeicherung. Nutzung:
  ruby vds-badges.rb 23 > vds-badges.fo && fop -fo vds-badges.fo -pdf vds-badges.pdf
  ruby vds-badges.rb 23 > vds-badges.fo && fop -fo vds-badges.fo -pdf vds-badges.pdf
Dabei sollte ''chaosknoten.jpg'' im Verzeichnis liegen.
Dabei sollte ''chaosknoten.jpg'' im Verzeichnis liegen.
<source lang="ruby">
<source lang="ruby">
#!/usr/bin/env ruby
#!/usr/bin/env ruby
require 'cgi'
require 'cgi'
NAMEN = ['Wolfgang Schäuble',
NAMEN = ['Wolfgang Schäuble',
         'Rudolf Seiters',
         'Rudolf Seiters',
Zeile 32: Zeile 28:
namen1 = NAMEN.collect { |n| n.split(' ')[0..-2].join(' ') }
namen1 = NAMEN.collect { |n| n.split(' ')[0..-2].join(' ') }
namen2 = NAMEN.collect { |n| n.split(' ')[-1] }
namen2 = NAMEN.collect { |n| n.split(' ')[-1] }
class Array
class Array
   def any_one
   def any_one
Zeile 38: Zeile 33:
   end
   end
end
end
class Symbol
class Symbol
   def u2m
   def u2m
Zeile 44: Zeile 38:
   end
   end
end
end
 
class Fixnum
  def rjust(*a)
    to_s.rjust(*a)
  end
end
class Builder
class Builder
   def self.print
   def self.print
Zeile 51: Zeile 49:
     puts
     puts
   end
   end
   def initialize(output)
   def initialize(output)
     @o = output
     @o = output
   end
   end
   def method_missing(fname, attrs={})
   def method_missing(fname, attrs={})
     @o << "<#{fname.u2m}"
     @o << "<#{fname.u2m}"
Zeile 66: Zeile 62:
       @o << '/>'
       @o << '/>'
     end
     end
     nil
     nil
   end
   end
end
end
class BadgeMaker
class BadgeMaker
   def initialize(fo)
   def initialize(fo)
     @fo = fo
     @fo = fo
   end
   end
   def make(text)
   def make(text)
     @fo.page_sequence('master-reference' => 'A4') {
     @fo.page_sequence('master-reference' => 'A4') {
Zeile 82: Zeile 75:
                   'margin-right' => '1cm') {
                   'margin-right' => '1cm') {
           @fo.external_graphic('src' => 'url("chaosknoten.jpg")',
           @fo.external_graphic('src' => 'url("chaosknoten.jpg")',
                               'content-width' => '4cm',
                               'content-width' => '3cm',
                               'content-height' => '3cm')
                               'content-height' => '2.75cm')
         }
         }
       }
       }
Zeile 94: Zeile 87:
   end
   end
end
end
n = (ARGV.shift || 1).to_i
n = (ARGV.shift || 1).to_i
XMLNS_FO = 'http://www.w3.org/1999/XSL/Format'
XMLNS_FO = 'http://www.w3.org/1999/XSL/Format'
Builder.print { |fo|
Builder.print { |fo|
Zeile 107: Zeile 98:
                       'display-align' => 'center')
                       'display-align' => 'center')
         fo.region_after('extent' => '4cm',
         fo.region_after('extent' => '4cm',
                         'margin-bottom' => '1cm')
                        'display-align' => 'after',
                         'margin-bottom' => '1.5cm')
       }
       }
     }
     }
     n.times {
     n.times {
       name = namen1.any_one + ' ' + namen2.any_one
       name = namen1.any_one + ' ' + namen2.any_one
       datum = ((rand * 29).to_i + 1).to_s + '.' +
       datum = ((rand * 29).to_i + 1).to_s + '.' +
               ((rand * 12).to_i + 1).to_s + '.' +
               ((rand * 12).to_i + 1).to_s + '.' +
               ((rand * 5).to_i + 2008).to_s
               ((rand * 5).to_i + 2008).to_s + ' um ' +
              (rand * 24).to_i.rjust(2, '0') + ':' +
              (rand * 60).to_i.rjust(2, '0') + ':' +
              (rand * 60).to_i.rjust(2, '0')
       text = case (rand * 5).to_i
       text = case (rand * 5).to_i
             when 0
             when 0
Zeile 133: Zeile 127:
}
}
</source>
</source>
[[Kategorie:Ruby]]


[[Kategorie:Ruby]]
 
 
{{Rübÿ Spëëd Mëtäl Cödïng}}

Aktuelle Version vom 26. Juni 2008, 17:12 Uhr

Generiert Schilder zum Umhängen auf der Demo gegen die Vorratsdatenspeicherung. Nutzung:

ruby vds-badges.rb 23 > vds-badges.fo && fop -fo vds-badges.fo -pdf vds-badges.pdf

Dabei sollte chaosknoten.jpg im Verzeichnis liegen.

#!/usr/bin/env ruby
require 'cgi'
NAMEN = ['Wolfgang Schäuble',
         'Rudolf Seiters',
         'Manfred Kanther',
         'Otto Schily',
         'Wolfgang Schäuble',
         'Heribert Rech',
         'Günther Beckstein',
         'Ehrhart Körting',
         'Jörg Schönbohm',
         'Willi Lemke',
         'Udo Nagel',
         'Volker Bouffier',
         'Lorenz Caffier',
         'Uwe Schünemann',
         'Ingo Wolf',
         'Karl Peter Bruch',
         'Klaus Meiser',
         'Albrecht Buttolo',
         'Holger Hövelmann',
         'Ralf Stegner',
         'Karl Heinz Gasser']
namen1 = NAMEN.collect { |n| n.split(' ')[0..-2].join(' ') }
namen2 = NAMEN.collect { |n| n.split(' ')[-1] }
class Array
  def any_one
    self[(rand * size)]
  end
end
class Symbol
  def u2m
    to_s.gsub('_', '-')
  end
end
class Fixnum
  def rjust(*a)
    to_s.rjust(*a)
  end
end
class Builder
  def self.print
    puts '<?xml version="1.0" encoding="utf-8"?>'
    yield new($stdout)
    puts
  end
  def initialize(output)
    @o = output
  end
  def method_missing(fname, attrs={})
    @o << "<#{fname.u2m}"
    @o << attrs.collect { |k,v| " #{k}=\"#{CGI::escapeHTML(v)}\"" }.to_s
    if block_given?
      @o << '>'
      @o << yield.to_s
      @o << "</#{fname.u2m}>"
    else
      @o << '/>'
    end
    nil
  end
end
class BadgeMaker
  def initialize(fo)
    @fo = fo
  end
  def make(text)
    @fo.page_sequence('master-reference' => 'A4') {
      @fo.static_content('flow-name' => 'xsl-region-after') {
        @fo.block('text-align' => 'right',
                  'margin-right' => '1cm') {
          @fo.external_graphic('src' => 'url("chaosknoten.jpg")',
                               'content-width' => '3cm',
                               'content-height' => '2.75cm')
        }
      }
      @fo.flow('font-size' => '2.5cm',
               'text-align' => 'center',
               'flow-name' => 'xsl-region-body') {
        @fo.block { text }
      }
    }
  end
end
n = (ARGV.shift || 1).to_i
XMLNS_FO = 'http://www.w3.org/1999/XSL/Format'
Builder.print { |fo|
  fo.root('xmlns' => XMLNS_FO) {
    fo.layout_master_set {
      fo.simple_page_master('master-name' => 'A4',
                            'page-width' => '297mm',
                            'page-height' => '210mm') {
        fo.region_body('margin' => '1cm 1cm 1cm 1cm',
                       'display-align' => 'center')
        fo.region_after('extent' => '4cm',
                        'display-align' => 'after',
                        'margin-bottom' => '1.5cm')
      }
    }
    n.times {
      name = namen1.any_one + ' ' + namen2.any_one
      datum = ((rand * 29).to_i + 1).to_s + '.' +
              ((rand * 12).to_i + 1).to_s + '.' +
              ((rand * 5).to_i + 2008).to_s + ' um ' +
              (rand * 24).to_i.rjust(2, '0') + ':' +
              (rand * 60).to_i.rjust(2, '0') + ':' +
              (rand * 60).to_i.rjust(2, '0')
      text = case (rand * 5).to_i
             when 0
               "Hat am #{datum} #{name} angerufen"
             when 1
               "Hat am #{datum} eine E-Mail an #{name} geschrieben"
             when 2
               "Hat am #{datum} das Weblog von #{name} gelesen"
             when 3
               "Hat sich am #{datum} in der Nähe von #{name} aufgehalten"
             when 4
               "Hat am #{datum} eine Kurznachricht an #{name} gesendet"
             end
      BadgeMaker.new(fo).make(text)
    }
  }
}


Rübÿ Spëëd Mëtäl Cödïng
Coders: Astro | Conny | Sven