git-svn-id: svn://devel.enda.eu/svnroot/free_ruby_enda/trunk@141 6d5695c6-a2e0-438d-8b37-c93c90bbf000

Matthias Lüttgert authored on 11/07/2011 13:46:03
Showing 3 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,3 @@
0
+class Db
1
+
2
+end
0 3
new file mode 100644
... ...
@@ -0,0 +1,187 @@
0
+# coding: utf-8 (äüö߀)   vim: ts=2 sw=2 fdm=marker
1
+#
2
+# ENDA Ruby Standard Library XUBetrieb stnd.rb
3
+#
4
+# (c) 2010, 2011 Matthias Lüttgert, ENDA GmbH & Co. KG
5
+#
6
+# This library is free software; you can redistribute it and/or modify it under
7
+# the terms of the GNU General Public License as published by the Free Software
8
+# Foundation; either version 3 of the License, or (at your option) any later
9
+# version.
10
+#
11
+# This library is distributed in the hope that it will be useful, but WITHOUT ANY
12
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
+# PARTICULAR PURPOSE. See the GNU General Public License for more details.
14
+#
15
+# You should have received a copy of the GNU General Public License along with
16
+# this program; if not, see <http://www.gnu.org/licenses/>.
17
+#
18
+# DEUTSCH:
19
+#
20
+# Diese Bibliothek ist freie Software. Sie können sie unter den Bedingungen der GNU
21
+# General Public License, wie von der Free Software Foundation veröffentlicht,
22
+# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
23
+# (nach Ihrer Option) jeder späteren Version.
24
+#
25
+# Die Veröffentlichung dieser Bibliothek erfolgt in der Hoffnung, daß es Ihnen von
26
+# Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite
27
+# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN
28
+# ZWECK. Details finden Sie in der GNU General Public License.
29
+#
30
+# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem
31
+# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.
32
+#
33
+# == Kein Zweck ==
34
+#
35
+# Diese Bibliothek stellt wenige Funktionen zur Ausgabe des Zeitstemples sowie
36
+# numerischer Repräsentationen einzelner Teile des Zeitstempels sowie Test- und
37
+# Konvertierungsfunktionen für Zeit und Zahlen zur Verfügung
38
+# oder tut dies ganz oder teilweise nicht oder anders als erwartet.
39
+#
40
+# == Inbetriebnahme ==
41
+#
42
+# Sie benötigen Ruby Version 1.8.x oder 1.9.x, um diese Bibliothek nutzen zu können.
43
+# Andere Versionen können ebenfalls funktionieren.
44
+# Legen Sie den Bibliotheksordner neben die Anwendung, die diese Bibliothek nutzen
45
+# soll und laden Sie diese Datei z. B. mit
46
+#
47
+# require '../../free_ruby_enda/lib/stnd'
48
+#
49
+
50
+
51
+def now1
52
+  # now1 liegt auf dem global scope und kann nur per Object.now1 gerufen werden
53
+  # und das auch nur, wenn es public gemacht wird
54
+  return Time.now.strftime("%Y-%m-%d %H:%M:%S")
55
+end
56
+public :now1
57
+
58
+# Damit die Monthnames überschrieben werden können:
59
+# public Date
60
+# class Object::Date
61
+#  MONTHNAMES = [nil] + %w(Januar Februar März April Mai Juni Juli August September Oktober November Dezember)
62
+# end
63
+
64
+class Stnd
65
+  def Stnd.now
66
+    return Time.now.strftime("%Y-%m-%d %H:%M:%S")
67
+  end
68
+
69
+  def Stnd.now_date_number
70
+    return Time.now.strftime("%Y%m%d").to_i
71
+  end
72
+
73
+  def Stnd.now_time_number
74
+    return Time.now.strftime("%H%M%S").to_i
75
+  end
76
+
77
+  def Stnd.current_date_number
78
+    return Time.now.strftime("%Y%m%d").to_i
79
+  end
80
+
81
+  def Stnd.current_time_number
82
+    return Time.now.strftime("%H%M%S").to_i
83
+  end
84
+
85
+  def Stnd.test_stuff
86
+    puts "Environment:"
87
+    ENV.each { |key, value| puts "#{key} => #{value}" }
88
+    puts "\nConfiguration:"
89
+    CONFIG.each { |key, value| puts "#{key} => #{value}" }
90
+    puts "\nOperating System is: #{CONFIG['host_os']}"
91
+  end
92
+
93
+  def Stnd.get_bool(text)
94
+    return nil if text.nil?
95
+    text = text.strip
96
+    # J/j/Ja/JA/ja/Y/y/Yes/YES/yes/1 bzw. N/n/Nein/NEIN/nein/NO/no/No/0
97
+    return 1 if text =~ /^[jy1a].*/ui
98
+    return 0 if text =~ /^[n0i].*/ui
99
+    return nil
100
+  end
101
+
102
+  def Stnd.numerical_date( string_date )
103
+    return 0 if string_date.nil? || string_date.empty?
104
+    match = /(\d{1,2})\.(\d{1,2})\.(\d{2,4})\.?/.match(string_date)
105
+    if match
106
+      year = match[3]
107
+      if year.length == 2
108
+        if year.to_i < 30
109
+          year = '20' + year
110
+        else
111
+          year = '19' + year
112
+        end
113
+      end
114
+      return sprintf("%04d%02d%02d", year.to_i, match[2].to_i, match[1].to_i).to_i
115
+    end
116
+    begin
117
+      d = Date.parse(string_date, true)
118
+    rescue
119
+      return 0
120
+    end
121
+    return sprintf("%04d%02d%02d", d.year, d.month, d.day).to_i
122
+  end
123
+
124
+  def Stnd.numerical_time( string_time )
125
+    return 0 if string_time.nil? || string_time.empty?
126
+    match = /(\d{2})\:(\d{2})\:(\d{2}).*/.match(string_time)
127
+    if match
128
+      return match[1].to_i*10000 + match[2].to_i * 100 +match[3].to_i
129
+    end
130
+    msg = "ERROR! string_time <#{string_time}> doesn't match time expression in Stnd class"
131
+    puts msg
132
+    raise ParseException.new, msg
133
+  end
134
+
135
+  def Stnd.date_to_iso( datum )
136
+    if datum.length == 4
137
+      return datum.to_s + "-01-01"
138
+    else
139
+      if datum.length == 7
140
+        date = datum.split('.')
141
+        isodate = date[1] + "-" + date[0]+ "-01"
142
+      else
143
+        date = datum.split('.')
144
+        isodate = date[2] + "-" + date[1] + "-" + date[0]
145
+        return isodate
146
+      end
147
+    end
148
+  end
149
+
150
+  def Stnd.numdate_to_iso( numdat )
151
+    datum = numdat.to_s
152
+    return datum[0,4] + "-" + datum[4,2] + "-" + datum[6,2]
153
+  end
154
+
155
+  def Stnd.is_valid_date( string_date )
156
+    return true if string_date.blank?
157
+    number_date = numerical_date( string_date )
158
+    return false if number_date.to_i == 0
159
+    return true
160
+  end
161
+
162
+  def Stnd.is_valid_float_or_empty(string)
163
+    return true if string.nil? || string.strip.blank?
164
+    if string.to_f == 0.0 && string[0,1] != "0"
165
+      return false
166
+    end
167
+    return true
168
+  end
169
+
170
+  def Stnd.is_valid_int_or_empty(string)
171
+    return true if string.nil? || string.strip.blank?
172
+    if string.to_i == 0 && string.strip != "0"
173
+      return false
174
+    end
175
+    return true
176
+  end
177
+
178
+end
179
+
180
+# Exceptions
181
+# Exception class could have constructor to take arguments evaluated later on rescue
182
+class ParseException < RuntimeError
183
+end
184
+
185
+class NotImplementedYetException < RuntimeError
186
+end
0 187
new file mode 100644
... ...
@@ -0,0 +1,49 @@
0
+= Free ENDA Ruby Library =
1
+
2
+Copyright (C) 2010, 2011 Matthias Lüttgert, ENDA GmbH & Co. KG
3
+
4
+This library is free software; you can redistribute it and/or modify it under
5
+the terms of the GNU General Public License as published by the Free Software
6
+Foundation; either version 3 of the License, or (at your option) any later
7
+version.
8
+
9
+This library is distributed in the hope that it will be useful, but WITHOUT ANY
10
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
12
+
13
+You should have received a copy of the GNU General Public License along with
14
+this program; if not, see <http://www.gnu.org/licenses/>.
15
+
16
+DEUTSCH:
17
+
18
+Diese Bibliothek ist freie Software. Sie können sie unter den Bedingungen der GNU
19
+General Public License, wie von der Free Software Foundation veröffentlicht,
20
+weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
21
+(nach Ihrer Option) jeder späteren Version.
22
+
23
+Die Veröffentlichung dieser Bibliothek erfolgt in der Hoffnung, daß es Ihnen von
24
+Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite
25
+Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN
26
+ZWECK. Details finden Sie in der GNU General Public License.
27
+
28
+Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem
29
+Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>.
30
+
31
+== Kein Zweck ==
32
+
33
+Diese Bibliothek stellt wenige Funktionen zur Ausgabe des Zeitstemples sowie
34
+numerischer Repräsentationen einzelner Teile des Zeitstempels sowie Test- und
35
+Konvertierungsfunktionen für Zeit und Zahlen zur Verfügung
36
+oder tut dies ganz oder teilweise nicht oder anders als erwartet.
37
+
38
+== Inbetriebnahme ==
39
+
40
+Sie benötigen Ruby Version 1.8.x oder 1.9.x, um diese Bibliothek nutzen zu können.
41
+Andere Versionen können ebenfalls funktionieren.
42
+Legen Sie den Bibliotheksordner neben die Anwendung, die diese Bibliothek nutzen
43
+soll und laden Sie diese Datei z. B. mit
44
+
45
+require '../../free_ruby_enda/lib/stnd'
46
+
47
+
48
+M. Lüttgert, ENDA GmbH & Co. KG, 2011-07-11