Code-Generator in Helper einbauen?

ja hallo erstmal,…

ich stehe hier mal wieder vor einem kleinen Anfängerproblem:
In der Anwendung, an der ich arbeite sollen Datumsfelder im europäischen
statt
im amerikanischen Format eingegeben werden.
Dazu wollte ich gerne über einen kleinen Codegenerator virtuelle Attribute
einbauen - der dann aus dem Model aufzurufen wäre. (Analog zu
attr_accessor)
Der Generator (s.u.) an sich scheint ok und funktioniert ganz passabel
(nur
der regexp bock noch ein wenig)
Leider gelingt es mir nich so ganz, dies auch einzubinden.
Mein Ansatz war, die Methode euro_date einfach in den Helper eines
Models zu
kopieren, indem ich die Methode anwenden wollte.
Dies warf jedoch einen
undefined method `euro_date’ for Event:Class zurück, wenn ich versuche
euro_date analog zu attr_accessor aufzurufen.
Woran könnte dies liegen?

Danke,
Keep smiling
yanosz

class Test
def euro_date(symbol)
self.class.send(:attr_accessor, “#{symbol}_euro” )
self.class.send(:define_method,"#{symbol}_euro=") do
|value|
m = /(\d?\d).(\d?\d).(\d\d\d\d)/.match value
day = m[1]
month = m[2]
month = “0” + month.to_i if m[2].to_i < 10
day = “0” + day.to_i if m[1].to_i < 10
year = m[3]
puts “Setze Variablen: @#{symbol}”,
“#{year}-#{month}-#{day}
und: @#{symbol}_euro, #{day}.#{month}.#{year}”
instance_variable_set("@#{symbol}",
“#{year}-#{month}-#{day}”)

instance_variable_set( “@#{symbol}_euro”, “#{day}.#{month}.#{year}”)

            end
    end

end
t = Test.new
t.euro_date “some”
t.some_euro = “11.10.1912”
puts “Teste…”
puts t.some_euro
puts t.some

jap kann ich bestätigen, hab es eben mal ausprobiert und bin bis jetzt
recht zu frieden damit, weil ich auch gar nicht mehrere sprachen
brauche, sondern das zeug einfach in deutsch…

gruß manuel

Hey Jan,

Am Thu, 8 Nov 2007 23:22:57 +0100 schrieb Jan L.
[email protected]:

In der Anwendung, an der ich arbeite sollen Datumsfelder im europäischen statt
im amerikanischen Format eingegeben werden.

da ich gerade zu müde bin, deinen Code nachzuvollziehen, sei hier erneut auf
das wunderbare simple_localization-Plugin verwiesen, für welches meine
Wenigkeit (man verzeihe mir den Mangel an Understatement an dieser
Stelle) eben diese Funktion in Form des
localized_model_attributes-Features beigesteuert hat:
http://simple-localization.arkanis.de/ bzw. für ein paar Code-Beispiele siehe
http://simple-localization.arkanis.de/repository/file/trunk/plugin/lib/features/localized_model_attributes.rb
und
http://simple-localization.arkanis.de/repository/file/trunk/plugin/test/features/localized_model_attributes_test.rb
Du kannst über die Sprachdatei sogar das gewünschte Eingabeformat festlegen. Und
das ganze funktioniert auch für Zahlen, d.h. man kann das Komme als
Dezimalseparator verwenden :slight_smile:

Beste
GrüßeMoritz

ja hallo erstmal,…

Am Freitag, 9. November 2007 schrieb Moritz H.:

Hey Jan,

Am Thu, 8 Nov 2007 23:22:57 +0100 schrieb Jan L.
[email protected]:
ures/localized_model_attributes.rb und
http://simple-localization.arkanis.de/repository/file/trunk/plugin/test/fea
tures/localized_model_attributes_test.rb Du kannst über die Sprachdatei
sogar das gewünschte Eingabeformat festlegen. Und das ganze funktioniert
auch für Zahlen, d.h. man kann das Komme als Dezimalseparator verwenden :slight_smile:

Danke für den Tipp.
An sich würde ich aber - auch für andere Zwecke - gerne verstehen, wie ich
eigene Helper dieser Art definieren kann.

Keep smiling
yanosz