rhodes-framework 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. data/.gitignore +2 -0
  2. data/History.txt +37 -0
  3. data/Manifest.txt +66 -0
  4. data/README.rdoc +2 -0
  5. data/Rakefile +50 -0
  6. data/lib/ServeME.rb +7 -0
  7. data/lib/TestServe.rb +9 -0
  8. data/lib/bsearch.rb +120 -0
  9. data/lib/builtinME.rb +626 -0
  10. data/lib/date/format.rb +1339 -0
  11. data/lib/date.rb +1792 -0
  12. data/lib/dateME.rb +24 -0
  13. data/lib/erb.rb +896 -0
  14. data/lib/find.rb +81 -0
  15. data/lib/rational.rb +19 -0
  16. data/lib/rationalME.rb +530 -0
  17. data/lib/rho/render.rb +51 -0
  18. data/lib/rho/rho.rb +255 -0
  19. data/lib/rho/rhoapplication.rb +36 -0
  20. data/lib/rho/rhocontact.rb +110 -0
  21. data/lib/rho/rhocontroller.rb +35 -0
  22. data/lib/rho/rhofsconnector.rb +32 -0
  23. data/lib/rho/rhosupport.rb +146 -0
  24. data/lib/rho/rhoviewhelpers.rb +130 -0
  25. data/lib/rho.rb +1 -0
  26. data/lib/rhodes-framework.rb +2 -0
  27. data/lib/rhodes.rb +9 -0
  28. data/lib/rhoframework.rb +38 -0
  29. data/lib/rhofsconnector.rb +1 -0
  30. data/lib/rhom/rhom.rb +58 -0
  31. data/lib/rhom/rhom_db_adapter.rb +185 -0
  32. data/lib/rhom/rhom_db_adapterME.rb +93 -0
  33. data/lib/rhom/rhom_object.rb +69 -0
  34. data/lib/rhom/rhom_object_factory.rb +309 -0
  35. data/lib/rhom/rhom_source.rb +60 -0
  36. data/lib/rhom.rb +1 -0
  37. data/lib/singleton.rb +137 -0
  38. data/lib/time.rb +489 -0
  39. data/lib/version.rb +8 -0
  40. data/res/sqlite3/constants.rb +49 -0
  41. data/res/sqlite3/database.rb +715 -0
  42. data/res/sqlite3/driver/dl/api.rb +154 -0
  43. data/res/sqlite3/driver/dl/driver.rb +307 -0
  44. data/res/sqlite3/driver/native/driver.rb +257 -0
  45. data/res/sqlite3/errors.rb +68 -0
  46. data/res/sqlite3/pragmas.rb +271 -0
  47. data/res/sqlite3/resultset.rb +176 -0
  48. data/res/sqlite3/sqlite3_api.rb +0 -0
  49. data/res/sqlite3/statement.rb +230 -0
  50. data/res/sqlite3/translator.rb +109 -0
  51. data/res/sqlite3/value.rb +57 -0
  52. data/res/sqlite3/version.rb +14 -0
  53. data/rhodes-framework.gemspec +18 -0
  54. data/rhodes.gemspec +18 -0
  55. data/spec/app_manifest.txt +4 -0
  56. data/spec/configs/account.rb +3 -0
  57. data/spec/configs/case.rb +3 -0
  58. data/spec/configs/employee.rb +3 -0
  59. data/spec/rho_controller_spec.rb +144 -0
  60. data/spec/rho_spec.rb +75 -0
  61. data/spec/rhom_object_factory_spec.rb +372 -0
  62. data/spec/rhom_spec.rb +45 -0
  63. data/spec/spec.opts +1 -0
  64. data/spec/spec_helper.rb +49 -0
  65. data/spec/stubs.rb +39 -0
  66. data/spec/syncdbtest.sqlite +0 -0
  67. metadata +202 -0
data/lib/builtinME.rb ADDED
@@ -0,0 +1,626 @@
1
+ $" = []
2
+ $* = ARGV
3
+ $SAFE = 0
4
+
5
+ TRUE = true
6
+ FALSE = false
7
+ NIL = nil
8
+
9
+ RUBY_VERSION = "1.8.5"
10
+ VERSION = "1.8.5"
11
+
12
+ TOPLEVEL_BINDING = self
13
+
14
+ module Kernel
15
+ def nil?
16
+ false
17
+ end
18
+
19
+ def fork
20
+ raise NotImplementedError, "the fork() function is unimplemented on this machine"
21
+ end
22
+
23
+ def =~ x
24
+ false
25
+ end
26
+
27
+ def singleton_method_added symbol
28
+ end
29
+
30
+ def singleton_method_removed symbol
31
+ end
32
+
33
+ def singleton_method_undefined symbol
34
+ end
35
+
36
+ #private
37
+ def require(file_name)
38
+ return false if ($".include?(file_name) || $".include?(file_name + ".rb"))
39
+
40
+ load(file_name);
41
+ end
42
+
43
+ #private
44
+ def load(file_name)
45
+ if __load_with_reflection__(file_name)
46
+ return true
47
+ end
48
+
49
+ # $:.each do |path|
50
+ # return true if load_rb_file(path, file_name)
51
+ # end
52
+
53
+ raise LoadError, "no such file to load -- " + file_name
54
+ end
55
+
56
+ private
57
+ def method_added symbol
58
+ end
59
+ end
60
+
61
+ class Object
62
+ # def to_a
63
+ # [self]
64
+ # end
65
+
66
+ alias type :class
67
+
68
+ private
69
+ def initialize
70
+ end
71
+ end
72
+
73
+ module Enumerable
74
+ def find_all
75
+ a = []
76
+ each {|x|
77
+ if yield x
78
+ a.push(x)
79
+ end
80
+ }
81
+ return a
82
+ end
83
+
84
+ alias :select :find_all
85
+
86
+ def sort_by &block
87
+ array_of_tuples = []
88
+ each {|x| array_of_tuples.push([x, yield(x)])}
89
+ array_of_tuples = array_of_tuples.sort {|x, y| x[1] <=> y[1]}
90
+ return array_of_tuples.collect {|x| x[0]}
91
+ end
92
+
93
+ def each_with_index
94
+ i = 0;
95
+ each {|x| yield x, i; i = i + 1}
96
+ end
97
+
98
+ def to_a
99
+ arr = []
100
+ each{|obj| arr <<obj}
101
+ return arr
102
+ end
103
+
104
+ alias entries :to_a
105
+
106
+ def sort(&proc)
107
+ #proc = lambda{ |a,b| a<=>b } unless block_given?
108
+ arr = to_a
109
+ arr.sort{|x,y|
110
+ if block_given? then
111
+ proc.call(x,y)
112
+ else
113
+ x<=>y
114
+ end
115
+ }
116
+ end
117
+
118
+ def member?(other)
119
+ each{|obj| return true if obj == other }
120
+ return false
121
+ end
122
+
123
+ alias include? :member?
124
+
125
+ def inject(*args)
126
+ if args.size == 0 then
127
+ vals = to_a
128
+ memo = vals[0]
129
+ vals[1..vals.size-1].each {|obj| memo = yield(memo, obj)}
130
+ return memo
131
+ elsif args.size == 1 then
132
+ memo = args[0]
133
+ each {|obj| memo = yield(memo, obj)}
134
+ return memo
135
+ else
136
+ nil
137
+ end
138
+ end
139
+
140
+ def collect
141
+ arr = []
142
+ each{|obj| arr << yield(obj)}
143
+ return arr
144
+ end
145
+
146
+ alias map :collect
147
+
148
+ def max(&proc)
149
+ proc = lambda { |a, b| a <=> b } unless block_given?
150
+ max = nil
151
+ each {|obj| max = obj if max.nil? || proc.call(max, obj) < 0}
152
+ max
153
+ end
154
+
155
+ def min(&proc)
156
+ proc = lambda { |a, b| a <=> b } unless block_given?
157
+ min = nil
158
+ each {|obj| min = obj if min.nil? || proc.call(min, obj) > 0}
159
+ min
160
+ end
161
+
162
+ end
163
+
164
+ class Array
165
+ alias reject! delete_if
166
+
167
+ def reject
168
+ a = []
169
+ each {|x|
170
+ if !yield x
171
+ a << x
172
+ end
173
+ }
174
+ a
175
+ end
176
+
177
+ # def to_a
178
+ # self
179
+ # end
180
+
181
+ def join(sepString="")
182
+ return to_s if sepString.nil? || sepString == ""
183
+
184
+ result = ""
185
+ (length - 1).times do |index|
186
+ result += (self[index].to_s) + sepString
187
+ end
188
+ result += self[length - 1].to_s if length != 0
189
+ result
190
+ end
191
+
192
+ alias map! collect!
193
+ alias size length
194
+ alias to_ary to_a
195
+
196
+ def inspect
197
+ str = "["
198
+ is_first = true
199
+ self.each() { |x|
200
+ if (!is_first)
201
+ str << ", "
202
+ end
203
+ is_first = false
204
+ str << x.inspect
205
+ }
206
+ str << "]"
207
+ end
208
+
209
+ alias to_s inspect
210
+
211
+ end
212
+
213
+ class File
214
+ SEPARATOR = '/'
215
+
216
+ def File.join *aString
217
+ s = ""
218
+ first = true
219
+ aString.each {|x|
220
+ if !first
221
+ s += File::SEPARATOR
222
+ end
223
+ s+= x
224
+ first = false
225
+ }
226
+ s
227
+ end
228
+ end
229
+
230
+ class IO
231
+ def each
232
+ while !eof
233
+ yield gets
234
+ end
235
+ close
236
+ end
237
+ end
238
+
239
+ class Time
240
+ include Comparable
241
+ end
242
+
243
+ class Hash
244
+ def each
245
+ ks = keys
246
+ ks.each {|k| yield([k, self[k]])}
247
+ end
248
+
249
+ def each_key
250
+ ks = keys
251
+ ks.each {|k| yield(k)}
252
+ end
253
+
254
+ def each_value
255
+ vs = values
256
+ vs.each {|k| yield(k)}
257
+ end
258
+
259
+ def empty?
260
+ length == 0
261
+ end
262
+
263
+ alias each_pair each
264
+
265
+ def to_a
266
+ res = []
267
+ each_pair do |k, v|
268
+ item = []
269
+ item << k
270
+ item << v
271
+ res << item
272
+ end
273
+ res
274
+ end
275
+
276
+ def inspect
277
+ r = '{'
278
+ is_first = true
279
+ each_pair do |k, v|
280
+ if !is_first
281
+ r << ", "
282
+ end
283
+ is_first = false
284
+ r << k.inspect
285
+ r << '=>'
286
+ r << v.inspect
287
+ end
288
+ r << '}'
289
+ end
290
+
291
+ alias to_s inspect
292
+
293
+ def invert
294
+ h = {}
295
+ each {|k, v| h[v] = k}
296
+ h
297
+ end
298
+
299
+ def update other
300
+ other.each {|k, v| self[k] = v}
301
+ self
302
+ end
303
+
304
+ alias merge! update
305
+
306
+ def merge other
307
+ clone.merge!(other)
308
+ end
309
+
310
+ def index value
311
+ each {|k, v| return k if value == v }
312
+ return nil
313
+ end
314
+ end
315
+
316
+ class Symbol
317
+ alias to_s id2name
318
+ end
319
+
320
+ class << self
321
+ def to_s
322
+ return "main"
323
+ end
324
+
325
+ def public
326
+ Object.public
327
+ end
328
+
329
+ def private
330
+ Object.private
331
+ end
332
+
333
+ def protected
334
+ Object.protected
335
+ end
336
+ end
337
+
338
+ class Fixnum
339
+ def is_alpha_numeric
340
+ return (self>=?0 && self<=?9) || (self>=?a && self<=?z) || (self>=?A && self<=?Z)
341
+ end
342
+ end
343
+
344
+ module Comparable
345
+ def >=(value)
346
+ compare = (self <=> value)
347
+ return compare != -1 and compare != nil
348
+ end
349
+
350
+ def ==(value)
351
+ compare = (self <=> value)
352
+ return compare == 0
353
+ end
354
+
355
+ def <=(value)
356
+ compare = (self <=> value)
357
+ return compare != 1 and compare != nil
358
+ end
359
+
360
+ def >(value)
361
+ compare = (self <=> value)
362
+ return compare == 1
363
+ end
364
+
365
+ def <(value)
366
+ compare = (self <=> value)
367
+ return compare == -1
368
+ end
369
+
370
+ def between?(a, b)
371
+ self >= a && self <= b
372
+ end
373
+ end
374
+
375
+ class Numeric
376
+ include Comparable
377
+
378
+ def floor
379
+ self.to_f.floor
380
+ end
381
+
382
+ def abs
383
+ return -self if (self <=> 0) == -1
384
+ self
385
+ end
386
+
387
+ def div value
388
+ (self/value).floor
389
+ end
390
+
391
+ def divmod(value)
392
+ [(self/value).floor, self % value]
393
+ end
394
+
395
+ def integer?
396
+ false
397
+ end
398
+
399
+ alias eql? :==
400
+
401
+ def modulo(value)
402
+ self % value
403
+ end
404
+
405
+ def nonzero?
406
+ return nil if self == 0
407
+ self
408
+ end
409
+
410
+ def zero?
411
+ return true if self == 0
412
+ false
413
+ end
414
+
415
+ def remainder(value)
416
+ self_sign = (self < 0)
417
+ value_sign = (value < 0)
418
+ return self % value if self_sign == value_sign
419
+ self % (-value)
420
+ end
421
+
422
+ end
423
+
424
+ class Integer < Numeric
425
+
426
+ def to_i
427
+ return self
428
+ end
429
+
430
+ alias to_int to_i
431
+
432
+ #Returns the Integer equal to int + 1
433
+ def next
434
+ self + 1
435
+ end
436
+
437
+ #Synonym for Integer#next
438
+ def succ
439
+ self + 1
440
+ end
441
+
442
+ #Always returns true
443
+ def integer?
444
+ true
445
+ end
446
+
447
+ def upto(to)
448
+ a = self
449
+ while a <= to
450
+ yield a
451
+ a += 1
452
+ end
453
+ end
454
+
455
+ def downto(to)
456
+ a = self
457
+ while a >= to
458
+ yield a
459
+ a -= 1
460
+ end
461
+ end
462
+
463
+ def size
464
+ 4
465
+ end
466
+
467
+ def integer?
468
+ true
469
+ end
470
+ end
471
+
472
+ class Fixnum < Integer
473
+ def to_i
474
+ self
475
+ end
476
+
477
+ alias inspect to_s
478
+ end
479
+
480
+ class NilClass
481
+
482
+ #Returns false
483
+ def &(anObject)
484
+ false
485
+ end
486
+
487
+ #Returns false if anObject is nil or false, true otherwise
488
+ def ^(anObject)
489
+ anObject ? true : false
490
+ end
491
+
492
+ #Returns false if anObject is nil or false, true otherwise
493
+ def |(anObject)
494
+ anObject ? true : false
495
+ end
496
+
497
+ #Always returns true
498
+ def nil?
499
+ true
500
+ end
501
+
502
+ #Always returns an empty array
503
+ def to_a
504
+ []
505
+ end
506
+
507
+ #Always returns zero
508
+ def to_i
509
+ 0
510
+ end
511
+
512
+ def to_f
513
+ 0.0
514
+ end
515
+
516
+ #Always returns the empty string
517
+ def to_s
518
+ ""
519
+ end
520
+
521
+ def inspect
522
+ "nil"
523
+ end
524
+ alias to_str to_s
525
+ end
526
+
527
+ class TrueClass
528
+ #Returns false if anObject is nil or false, true otherwise
529
+ def &(anObject)
530
+ anObject ? true : false
531
+ end
532
+
533
+ #Returns true if anObject is nil or false, false otherwise
534
+ def ^(anObject)
535
+ anObject ? false : true
536
+ end
537
+
538
+ #Returns true
539
+ def |(anObject)
540
+ true
541
+ end
542
+
543
+ def to_s
544
+ "true"
545
+ end
546
+
547
+ def inspect
548
+ "true"
549
+ end
550
+ end
551
+
552
+ class FalseClass
553
+
554
+ #Returns false
555
+ def &(anObject)
556
+ false
557
+ end
558
+
559
+ #If anObject is nil or false, returns false; otherwise, returns true
560
+ def ^(anObject)
561
+ anObject ? true : false
562
+ end
563
+
564
+ #Returns false if anObject is nil or false; true otherwise
565
+ def |(anObject)
566
+ anObject ? true : false
567
+ end
568
+
569
+ def to_s
570
+ "false"
571
+ end
572
+
573
+ def inspect
574
+ "false"
575
+ end
576
+ end
577
+
578
+ class String
579
+ include Comparable
580
+
581
+ def to_s
582
+ return self
583
+ end
584
+
585
+ def empty?
586
+ length == 0
587
+ end
588
+
589
+ def inspect
590
+ '"' + to_s + '"'
591
+ end
592
+
593
+ #from rubinius
594
+ # justify left = -1, center = 0, right = 1
595
+ def justify_string(width, str, justify)
596
+ return self if width <= length
597
+ pad = width - length
598
+ out = str.to_str * (pad / str.length)
599
+ out << str[0, pad - out.length] if out.length < pad
600
+ # Left justification
601
+ return self << out if justify == -1
602
+ # Right justification
603
+ return out << self if justify == 1
604
+ # and finially center
605
+ split = (width / 2) - (length / 2)
606
+ return out.insert(split-((width-length)%2), self)
607
+ end
608
+
609
+ #from rubinius
610
+ def rjust(width, str=" ")
611
+ justify_string(width, str, 1)
612
+ end
613
+
614
+ #from rubinius
615
+ def ljust(width, str=" ")
616
+ justify_string(width, str, -1)
617
+ end
618
+
619
+ #from rubinius
620
+ def center(width, str=" ")
621
+ justify_string(width, str, 0)
622
+ end
623
+
624
+ alias to_str to_s
625
+ alias size length
626
+ end