Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 16:24 
Offline
Novize

Registriert: 26 Okt 2016, 16:17
Beiträge: 16
Hallo!

Ich kenne mich zwar ein wenig mit ruby aus, bin aber ein absoluter Neuling in der RubyMine IDE. Daher vermutlich eine völlig lächerliche Anfängerfrage: Wie kann ich in RM einzelne Klassen je in eine eigene *.rb Datei auslagern, so daß sie in meinem Hauptprogramm erkannt werden.

Ich kann zwar in project->new->rubyclass eine neue *.rb Datei anlegen, aber das erscheint recht sinnlos, wenn die darin enthaltene Klasse dann nirgends bekannt ist.

Danke schonmal!

Eric.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 17:21 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Nun, das hat nicht wirklich etwas mit RubyMine zu tun.

Solange deine Pfade korrekt gesetzt sind, kannst du alles ganz normal über require einbinden.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 17:59 
Offline
Novize

Registriert: 26 Okt 2016, 16:17
Beiträge: 16
Danke erstmal für die Antwort.

Das ist soweit klar, ich hatte halt die Hoffung, daß das RM irgendwie (teil)automatisch macht - sonst ist doch die ganze Klassenverwaltung in RM sinnlos - oder?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 19:25 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
RM ist am Ende nur ein Editor und dein Programm muss auch laufen, wenn es normal aus der Konsole gestartet wird. Deshalb musst du das require einfügen.

Es zwingt dich keiner für jede Klasse eine Datei anzulegen. Du kannst auch alles in eine Datei schreiben. Aber der übersichthalber ist es einfach besser seinen Code gut zu strukturieren.

Dabei untestützt dich RM.

Wonach die suchst ist autolaoding. Ein gem das dies unterstützt ist activesupport, aus dem Rails Universum.

_________________
Grüße
Jack


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 21:56 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
slowjack2k hat geschrieben:
Wonach die suchst ist autolaoding. Ein gem das dies unterstützt ist activesupport, aus dem Rails Universum.


Kernel#autoload und Module#autoload sind Teil von Ruby selbst und haben mit ActiveSupport nichts zu tun. #autoload gehört aber zu den Dingen, die einem Anfänger nicht zu empfehlen sind; man sollte erst einmal den Gebrauch mit #require lernen. Zwischenzeitlich war sogar im Gespräch, #autoload ganz abzuschaffen (weil es wohl Probleme bei Programmen mit mehreren Threads gibt).

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 26 Okt 2016, 22:17 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1906
@Quintus, du kannst Kernel autoload nicht mit activesupports autoload vergleichen. Bei Kernel autoload musst du vorher definieren, in welcher Datei sich welches Model/Klasse befinden, soweit ich weiss.

Rails autoload funktioniert rein über Konventionen. Du gibts nur ein paar Pfade vor, in denen Rails nach deinen Module/Klassen suchen soll und dann werden die ruby files geladen.

Aber ich denke, dass ist dir schon bekannt.

Aus meiner Sicht entspricht das eher einem autoload, als das autoload vom Kernel. Das Kernel autoload würde ich eher als lazy require bezeichnen.

_________________
Grüße
Jack


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 27 Okt 2016, 00:30 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
slowjack2k hat geschrieben:
Rails autoload funktioniert rein über Konventionen. Du gibts nur ein paar Pfade vor, in denen Rails nach deinen Module/Klassen suchen soll und dann werden die ruby files geladen.


Das ist zwar richtig, aber das ist kein Autoload im Ruby-Sinne. Wer im Kontext von Ruby (nicht Rails) von "autoload" spricht, bezieht sich auf die Methode #autoload. Was active_support da macht, ist zwar in der Tat ein automatisches Laden, aber unter der Haube passiert da auch nichts anderes als irgendwo ein #require, #load oder sogar #autoload (habe jetzt nicht reingeguckt), nur halt über einige vorgegebene Pfade.

Intuitiv hätte ich jedenfalls die hier in Frage stehende Funktionalität nicht als "autoload" bezeichnet. Ehrlich gesagt wäre ich nicht mal darauf gekommen, dass ohne explizite Angabe irgendetwas automatisch geladen soll, da das einem reinem Ruby-Kontext fremd ist. Rails ist eben eine andere Nummer. Ich habe die Diskussion offenbar nicht richtig verstanden, mein Fehler.

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 27 Okt 2016, 12:54 
Offline
Novize

Registriert: 26 Okt 2016, 16:17
Beiträge: 16
Alles soweit klar,

ich hatte tatsächlich die naive Annahme, daß RM das entsprechende *.rb File automatisch anzieht, wenn es den gleichen Namen hat, wie die Klasse. Daß das nicht der Fall ist, habe ich jetzt kapiert. Aber immerhin kennt RM die Klasse, wenn die entsprechende Datei mit require angefordert wurde. Daß das ganze nichts mit ruby an sich zu tun hat, ist mir klar.

Vielleicht kann mir ja jemand eine schöne IDE empfehlen, früher (vor 2005) gabs mal rde - aber das wird wohl nicht mehr gepflegt. RM hat mit bisher nicht wirklich überzeugt...


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 27 Okt 2016, 13:03 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Warscheinlich ist es nicht ganz das was du hören willst, aber es gibt nicht wirklich eine überzeugende IDE für Ruby.

Die meisten echten IDEs sind in meinen Augen schlichtweg zu groß und mächtig in ihren Systemanforderungen und dabei relativ träge zu bedienen. Wenn es unbedingt eine sein müsste, würde ich mich wohl für RubyMine entscheiden, weil es von IntelliJ ist und ich da eine Studentenlizenz habe die alles umfasst.

Aber ehrlich gesagt, viel eher würde ich zu Emacs, Atom oder Vi(m) greifen (in dieser Reihenfolge), aber jeder andere Lightweight-Code-Editor dürfte es auch tun.

Gerade bei Ruby stört mich Codevervollständigung extrem. Meistens weiß ich als Entweickler besser welche Klassen ich an dieser Stelle gerade erwarte, bzw was ich für Methoden in der Klasse erwarte, als es jede IDE jemals könnte. Meine Erfahrung ist einfach, dass viele IDEs einfach alles anbieten was gerade irgendwie im Scope ist oder einfach gar nichts. Dann doch lieber Emacs oder Atom, die zwar auch nichts vervollständigen, aber wenigstens keine Denkpause einlegen wärend wie versuchen eine Liste zusammenzustellen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 27 Okt 2016, 13:23 
Offline
Novize

Registriert: 26 Okt 2016, 16:17
Beiträge: 16
@Nobbz

rde fand ich damals ganz gut, aber ich hatte schon befürchtet, daß es derzeit nichts schönes mehr gibt. Dann werde ich wohl erstaml bei RM bleiben...

@Alle

Danke für die Antworten!

Zusatzfrage: Gibts eigentlich irgendwo eine Übersicht 1.8 vs. 2.2 ?


Eric.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 27 Okt 2016, 14:09 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
nerdcraft hat geschrieben:
Zusatzfrage: Gibts eigentlich irgendwo eine Übersicht 1.8 vs. 2.2 ?


Naja, es gibt die changelogs von 1.8 auf 1.9, von 1.9 auf 2.0, von 2.0 auf 2.1 und letztendlich den von 2.1 auf 2.2, wenn du die überfliegst dann weißt du das nötigste.

Im Kern ist ruby ruby geblieben, und solange du darauf achtest in der richtigen Dokumentation nachzuschlagen, sollte es auch nach den ganzen Jahren keine großen Probleme machen den Umstieg zu wagen.

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Klassen in RubyMine
BeitragVerfasst: 01 Nov 2016, 12:40 
Offline
Novize

Registriert: 26 Okt 2016, 16:17
Beiträge: 16
So, mittlerweile komme ich mit RubyMine ganz gut klar. Einiges hätte man besser bzw. intuitiver lösen können - aber es geht schon so.

Viele Grüße


Eric.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron