Ruby-Programmierung: Bibliotheken

Aus Wikibooks

Wechseln zu: Navigation, Suche

Zurück zu Ruby-Programmierung Hauptmenü

Inhaltsverzeichnis

[Bearbeiten] Programmieren mit REXML-Modul

REXML ist ein in reinem Ruby Code geschriebener XML-Parser.

[Bearbeiten] Übersicht und Gebrauch des REXML-Moduls

Laden des Moduls wird in Ruby mit require "rexml/document" eingeleitet.

Damit wird der Namensraum REXML:: erzeugt.

Einlesen einer XML-Datei
# Laden des REXML-Modul document
require "rexml/document"

# Eine XML-Datei laden
file = File.new( "eineXMLDatei.xml" )

# XML-Datei in eine Variable speichern
doc = REXML::Document.new file

# Ausgabe der XML-Datei
puts doc.to_s
Erzeugen einer XML-Datei
require "rexml/document"
# File-Objekt erzeugen
file = File.new( "make.xml","w" )

# Variable für Erzeugung der XML-Datei zur Verfügung stellen
doc = REXML::Document.new

# XML-Decleration erzeugen und übergeben
doc << REXML::XMLDecl.new(1.0, "ISO-8859-1", "no")

# Root-Tag erzeugen und anhängen
doc.add_element(REXML::Element.new("root"))

# Root-Tag-Attribut erzeugen und anhängen
doc.root.attributes["Attr1"] = "wert1"

# Root Tag Attribut erzeugen und anhängen
doc.root.attributes["Attr2"] = 5

# Variable mit Tag definieren
e = REXML::Element.new( "eintrag")

# Variable mit Wert belegen
e.add_text REXML::Text.new(' bar2')

# An Variable für Erzeugung XML-Datei übergeben
doc.root.add_element(e)
e = REXML::Element.new( "eintrag")
e.add_text REXML::Text.new(' bar')

# Für Variable Attribut erzeugen und anhängen
e.attributes["Attr1"] = 23
doc.root.add_element(e)
e = REXML::Element.new( "eintrag")
e.add_text REXML::Text.new('1 Text ')
e.add_text REXML::Text.new('2 Text ')
e.attributes["c1c"] = 23
doc.root.add_element(e)
e = REXML::Element.new("eintrag")
e.add_text REXML::Text.new('1 Text ')
e.add_text REXML::Text.new('2 Text ')
e.attributes["c1c"] = 23

# Überschreibt 1 Text
e.text = "noch ein Text "
doc.root.add_element(e)

# Einhängen von Tags vor 1. Tag
doc.root[0,0] = REXML::Element.new "davor"
doc.root[0,0] = REXML::Element.new "davor1"

# Ausgabe auf Konsole
doc.write( $stdout, 0 )

# In Datei schreiben
file << doc

# Datei schliessen
file.close
Aussehen der erzeugten XML-Datei
<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?> 
<root Attr1='wert1' Attr2='5'> 
  <davor1/> 
  <davor/> 
  <eintrag> bar2</eintrag> 
  <eintrag Attr1='23'> bar</eintrag> 
  <eintrag c1c='23'>1 Text 2 Text </eintrag> 
  <eintrag c1c='23'>noch ein Text 2 Text </eintrag> 
</root> 

[Bearbeiten] Programmieren mit WXRUBY Modul

[Bearbeiten] Übersicht und Gebrauch des wxRUBY 2 - Moduls

download[[1]]

API[[2]]

Laden des Moduls wird in Ruby mit

 
begin
  require 'wx'
rescue LoadError => no_wx_err
  begin
    require 'rubygems'
    require 'wx'
  rescue LoadError
    raise no_wx_err
  end
end

eingeleitet. einfaches Fenster


class Fenster < Wx::Frame
  def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
    super(nil, -1, title, pos, size, style)

    #Durch die Verwendung des Schlüsselwortes super kannt man
    #Methoden und den Konstruktor der Wx::Frame Klasse aufrufen

    if Wx::PLATFORM == "WXMSW"
      set_icon( Wx::Icon.new(local_icon_file("mondrian.ico"), 
                             Wx::BITMAP_TYPE_ICO) )
    else
      set_icon( Wx::Icon.new(local_icon_file("mondrian.xpm"), 
                             Wx::BITMAP_TYPE_XPM) )
    end

    menu_file = Wx::Menu.new()
    menu_help = Wx::Menu.new()
   
    menu_help.append(Wx::ID_ABOUT, "&About\tF1")
    menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X")
    menu_bar = Wx::MenuBar.new()
    menu_bar.append(menu_file, "&File")
    menu_bar.append(menu_help, "&Help")
    
    set_menu_bar(menu_bar)

    create_status_bar(2)
    set_status_text("einfaches Fenster mit wxRuby!")

    # Verbindung events mit def Funktionen
    # der Übersicht wegen in Funktion ausgelagert

    evt_menu(Wx::ID_EXIT) { on_quit }
    evt_menu(Wx::ID_ABOUT) { on_about }
  end

  #def Funktionen der events
 
  def on_quit
    close()
  end

  
  def on_about
    msg =  sprintf("Dialogfenster.\n" \
                   "mit wxRuby Version %s", Wx::WXRUBY_VERSION)

    
    about_dlg = Wx::MessageDialog.new( self, msg, 'Einfaches Fenster',
                                       Wx::OK|Wx::ICON_INFORMATION )
    about_dlg.show_modal()
        about_dlg.destroy()
  end

  
  def local_icon_file(icon_name)
    File.join( File.dirname(__FILE__), icon_name) 
  end
end

#Wx::App ist für alle wxruby vorgeschrieben ein Vererbung
#stellt dadurch alle Methoden(Funktion) zur Verfügung

class Fensterclass < Wx::App
  def on_init
    frame = Fenster.new("Minimal wxRuby App",
                             Wx::Point.new(50, 50), 
                             Wx::Size.new(450, 340))
   
    frame.show()
  end
  
  
end

#Nun starten der wxruby Anwendung

app = Fensterclass.new

app.main_loop()



Bild:Wikibooks buchseite.svg Zurück zu Inhaltsverzeichnis | Bild:Wikibook.svg Hoch zu Inhaltsverzeichnis | Bild:Wikibooks buchseite.svg Vor zu Inhaltsverzeichnis
Persönliche Werkzeuge