simple_view 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/Rakefile +2 -0
  2. data/lib/CVS/Entries +3 -0
  3. data/lib/CVS/Repository +1 -0
  4. data/lib/CVS/Root +1 -0
  5. data/lib/core-ext/CVS/Entries +5 -0
  6. data/lib/core-ext/CVS/Repository +1 -0
  7. data/lib/core-ext/CVS/Root +1 -0
  8. data/lib/core-ext/array.rb +14 -0
  9. data/lib/core-ext/jopen.rb +43 -0
  10. data/lib/core-ext/nilclass.rb +31 -0
  11. data/lib/core-ext/string.rb +51 -0
  12. data/lib/simple_view/CVS/Entries +11 -0
  13. data/lib/simple_view/CVS/Repository +1 -0
  14. data/lib/simple_view/CVS/RevisionCache/builder_view.rb#1.1.1.1 +42 -0
  15. data/lib/simple_view/CVS/RevisionCache/erb_view.rb#1.1.1.1 +44 -0
  16. data/lib/simple_view/CVS/RevisionCache/file_content.rb#1.1.1.1 +50 -0
  17. data/lib/simple_view/CVS/RevisionCache/io_view.rb#1.1.1.1 +37 -0
  18. data/lib/simple_view/CVS/RevisionCache/poi_view.rb#1.1.1.1 +116 -0
  19. data/lib/simple_view/CVS/RevisionCache/renderable.rb#1.1.1.1 +114 -0
  20. data/lib/simple_view/CVS/RevisionCache/simple_view.rb#1.1.1.1 +214 -0
  21. data/lib/simple_view/CVS/Root +1 -0
  22. data/lib/simple_view/builder_view.rb +42 -0
  23. data/lib/simple_view/erb_view.rb +44 -0
  24. data/lib/simple_view/file_content.rb +50 -0
  25. data/lib/simple_view/haml_view.rb +36 -0
  26. data/lib/simple_view/io_view.rb +37 -0
  27. data/lib/simple_view/java/CVS/Entries +1 -0
  28. data/lib/simple_view/java/CVS/Repository +1 -0
  29. data/lib/simple_view/java/CVS/Root +1 -0
  30. data/lib/simple_view/java/poi/CVS/Entries +6 -0
  31. data/lib/simple_view/java/poi/CVS/Repository +1 -0
  32. data/lib/simple_view/java/poi/CVS/Root +1 -0
  33. data/lib/simple_view/java/poi/poi-3.6-20091214.jar +0 -0
  34. data/lib/simple_view/java/poi/poi-contrib-3.6-20091214.jar +0 -0
  35. data/lib/simple_view/java/poi/poi-ooxml-3.6-20091214.jar +0 -0
  36. data/lib/simple_view/java/poi/poi-ooxml-schemas-3.6-20091214.jar +0 -0
  37. data/lib/simple_view/java/poi/poi-scratchpad-3.6-20091214.jar +0 -0
  38. data/lib/simple_view/poi_view.rb +116 -0
  39. data/lib/simple_view/renderable.rb +114 -0
  40. data/lib/simple_view/simple_view.rb +214 -0
  41. data/lib/simple_view/smartxls.rb +38 -0
  42. data/lib/simple_view/version.rb +3 -0
  43. data/lib/simple_view.rb +5 -0
  44. data/test/CVS/Entries +6 -0
  45. data/test/CVS/Repository +1 -0
  46. data/test/CVS/RevisionCache/test_view.rb#1.1.1.1 +25 -0
  47. data/test/CVS/RevisionCache/test_view_reuse_erb.rb#1.1.1.1 +21 -0
  48. data/test/CVS/Root +1 -0
  49. data/test/helpers/CVS/Entries +3 -0
  50. data/test/helpers/CVS/Repository +1 -0
  51. data/test/helpers/CVS/RevisionCache/test_helper.rb#1.1.1.1 +7 -0
  52. data/test/helpers/CVS/Root +1 -0
  53. data/test/helpers/etat_corbeilles_prc_helper.rb +13 -0
  54. data/test/helpers/test_helper.rb +7 -0
  55. data/test/jtest_view.rb +17 -0
  56. data/test/test_view.rb +25 -0
  57. data/test/test_view_reuse_erb.rb +21 -0
  58. data/test/test_view_sv_debug.rb +16 -0
  59. data/test/views/CVS/Entries +17 -0
  60. data/test/views/CVS/Repository +1 -0
  61. data/test/views/CVS/RevisionCache/test.erb#1.1.1.1 +2 -0
  62. data/test/views/CVS/Root +1 -0
  63. data/test/views/etat_corbeilles_prc-csv.io.rb +40 -0
  64. data/test/views/etat_corbeilles_prc-xls.poi.rb +97 -0
  65. data/test/views/etat_corbeilles_prc-xls2.smartxl.rb +128 -0
  66. data/test/views/etat_corbeilles_prc.html.erb +108 -0
  67. data/test/views/test-builder.builder.rb +1 -0
  68. data/test/views/test-erb.erb +1 -0
  69. data/test/views/test-model.xls +0 -0
  70. data/test/views/test-model.xlsx +0 -0
  71. data/test/views/test-xls.poi.rb +34 -0
  72. data/test/views/test-xls.smartxl.rb +80 -0
  73. data/test/views/test.builder.rb +1 -0
  74. data/test/views/test.erb +2 -0
  75. data/test/views/test.haml +1 -0
  76. data/test/views/test.io.rb +1 -0
  77. data/test/views/test.poi.rb +7 -0
  78. data/test/views/test_error.erb +1 -0
  79. metadata +177 -0
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/lib/CVS/Entries ADDED
@@ -0,0 +1,3 @@
1
+ /simple_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
2
+ D/core-ext////
3
+ D/simple_view////
@@ -0,0 +1 @@
1
+ simple_view/lib
data/lib/CVS/Root ADDED
@@ -0,0 +1 @@
1
+ :pserver:gie\barukh@esvwas51.si.fr:/repositories/aag
@@ -0,0 +1,5 @@
1
+ D
2
+ /array.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
3
+ /jopen.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
4
+ /nilclass.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
5
+ /string.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
@@ -0,0 +1 @@
1
+ simple_view/lib/core-ext
@@ -0,0 +1 @@
1
+ :pserver:gie\barukh@esvwas51.si.fr:/repositories/aag
@@ -0,0 +1,14 @@
1
+ class Array
2
+ # Extracts options from a set of arguments. Removes and returns the last
3
+ # element in the array if it's a hash, otherwise returns a blank hash.
4
+ #
5
+ # def options(*args)
6
+ # args.extract_options!
7
+ # end
8
+ #
9
+ # options(1, 2) # => {}
10
+ # options(1, 2, :a => :b) # => {:a=>:b}
11
+ def extract_options!
12
+ last.is_a?(::Hash) ? pop : {}
13
+ end
14
+ end
@@ -0,0 +1,43 @@
1
+ import java.io.PrintStream
2
+ import java.io.FileOutputStream
3
+ import java.io.InputStreamReader
4
+ import java.io.FileInputStream
5
+
6
+ module Kernel
7
+
8
+ def jopen(filename, mode, encode = "ISO-8859-1")
9
+ stream = nil
10
+ if mode == "r"
11
+ stream = read_stream(filename, encode)
12
+ elsif mode == "w"
13
+ stream = write_stream(filename, encode)
14
+ end
15
+ if block_given?
16
+ begin
17
+ yield stream
18
+ ensure
19
+ stream.close
20
+ end
21
+ else
22
+ return stream
23
+ end
24
+ end
25
+
26
+ def write_stream(filename, encode = "ISO-8859-1")
27
+ PrintStream.new(FileOutputStream.new(filename), false, encode)
28
+ end
29
+
30
+ def read_stream(filename, encode = "ISO-8859-1")
31
+ InputStreamReader.new(FileInputStream.new(filename), encode)
32
+ end
33
+
34
+ end
35
+
36
+ class PrintStream
37
+
38
+ def <<(obj)
39
+ self.print(obj)
40
+ self
41
+ end
42
+
43
+ end
@@ -0,0 +1,31 @@
1
+ # Egocentric nil
2
+ # code by Yohan, slightly edited and comments by me
3
+
4
+ # start ego mode block, usage:
5
+ # catch_nil do
6
+ # if @some_hash[:some_key].to_formatted_array[3]
7
+ # # do something
8
+ # end
9
+ # end
10
+ module Kernel
11
+ def catch_nil(&block)
12
+ # grip methods
13
+ ori_method_missing = NilClass.instance_method(:method_missing)
14
+ catch_method_missing = NilClass.instance_method(:catch_method_missing)
15
+ # activate ego mode
16
+ NilClass.send :define_method, :method_missing, catch_method_missing
17
+ # run code
18
+ yield
19
+ ensure
20
+ # no matter what happens: restore default nil behaviour
21
+ NilClass.send :define_method, :method_missing, ori_method_missing
22
+ end
23
+ end
24
+ #alias :egonil :catch_nil # ;)
25
+
26
+ # this is the ego nil
27
+ class NilClass
28
+ def catch_method_missing(m, *args, &block)
29
+ nil
30
+ end
31
+ end
@@ -0,0 +1,51 @@
1
+ class String
2
+
3
+ # Converts a string to camelcase.
4
+ #
5
+ # By default camelcase leaves the first character of the string as given.
6
+ # If +first_letter+ is set to +:lower+ or +false+, then +#camelcase+ will
7
+ # produce lowerCamelCase. If it is set to +:upper+ or +true+ it will
8
+ # produce UpperCamelCase.
9
+ #
10
+ # +#camelcase+ also converts '/' to '::' which is useful for converting
11
+ # paths to namespaces.
12
+ #
13
+ # Examples
14
+ # "camel_case".camelcase #=> "camelCase"
15
+ # "camel/case".camelcase(true) #=> "Camel::Case"
16
+ # "Camel_case".camelcase(false) #=> "camelCase"
17
+ #
18
+ # TODO: Is this the best approach? Should lowerCamelCase be default instead?
19
+ def camelcase(first_letter=nil)
20
+ case first_letter
21
+ when :upper, true
22
+ upper_camelcase
23
+ when :lower, false
24
+ lower_camelcase
25
+ else
26
+ str = dup
27
+ str.gsub!(/\/(.?)/){ "::#{$1.upcase}" } # NOT SO SURE ABOUT THIS
28
+ str.gsub!(/(?:_+|-+)([a-z])/){ $1.upcase }
29
+ #str.gsub!(/(\A|\s)([a-z])/){ $1 + $2.upcase }
30
+ str
31
+ end
32
+ end
33
+
34
+ def upper_camelcase
35
+ str = dup
36
+ str.gsub!(/\/(.?)/){ "::#{$1.upcase}" } # NOT SO SURE ABOUT THIS
37
+ str.gsub!(/(?:_+|-+)([a-z])/){ $1.upcase }
38
+ str.gsub!(/(\A|\s)([a-z])/){ $1 + $2.upcase }
39
+ str
40
+ end
41
+
42
+ def lower_camelcase
43
+ str = dup
44
+ str.gsub!(/\/(.?)/){ "::#{$1.upcase}" } # NOT SO SURE ABOUT THIS
45
+ str.gsub!(/(?:_+|-+)([a-z])/){ $1.upcase }
46
+ str.gsub!(/(\A|\s)([A-Z])/){ $1 + $2.downcase }
47
+ str
48
+ end
49
+
50
+ end
51
+
@@ -0,0 +1,11 @@
1
+ /builder_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
2
+ /erb_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
3
+ /file_content.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
4
+ /haml_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
5
+ /io_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
6
+ /poi_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
7
+ /renderable.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
8
+ /simple_view.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
9
+ /smartxls.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
10
+ /version.rb/1.1.1.1/Tue Dec 07 12:02:41 2010//
11
+ D/java////
@@ -0,0 +1 @@
1
+ simple_view/lib/simple_view
@@ -0,0 +1,42 @@
1
+ require 'builder'
2
+
3
+ module SimpleView
4
+
5
+ class SimpleViewBuilder < SimpleViewBase
6
+
7
+ EXTENTION = ".builder.rb".freeze unless defined?(EXTENTION)
8
+
9
+ def self.extension
10
+ EXTENTION
11
+ end
12
+
13
+ SimpleViewBase.register(self)
14
+
15
+ def do_rendering(rendable_object, options)
16
+ options = {:indent => 2}.merge(options)
17
+ filename = options.delete(:filename) || '<BUILDER>'
18
+ line = options.delete(:line) || 1
19
+ xml = ::Builder::XmlMarkup.new(options)
20
+ rendable_object.put_locals_objects((options.delete(:builder_name) || :xml).to_sym => xml)
21
+ render_with_helper(rendable_object) do
22
+ eval self.template_content, rendable_object.get_binding, filename, line
23
+ end
24
+ xml.target!
25
+ end
26
+
27
+ end
28
+
29
+
30
+ module Renderable
31
+
32
+ module InstanceMethods
33
+
34
+ def render_builder(template, options = {})
35
+ render_with SimpleViewBuilder, template, options
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
42
+ end
@@ -0,0 +1,44 @@
1
+ require 'erb'
2
+
3
+
4
+ module SimpleView
5
+
6
+ class SimpleViewERB < SimpleViewBase
7
+ EXTENTION = ".erb".freeze unless defined?(EXTENTION)
8
+
9
+ def self.extension
10
+ EXTENTION
11
+ end
12
+
13
+ SimpleViewBase.register(self)
14
+
15
+ def erb
16
+ unless @erb
17
+ @erb = ERB.new(self.template_content, 0, '<%%>')
18
+ @erb.filename = self.file_template
19
+ end
20
+ @erb
21
+ end
22
+
23
+ def do_rendering(rendable_object, options)
24
+ render_with_helper(rendable_object) do
25
+ res = erb.result(rendable_object.get_binding)
26
+ options[:target] << res if options[:target]
27
+ res
28
+ end
29
+ end
30
+ end
31
+
32
+ module Renderable
33
+
34
+ module InstanceMethods
35
+
36
+ def render_erb(template, options = {})
37
+ render_with SimpleViewERB, template, options
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,50 @@
1
+ module SimpleView
2
+ class FileContent
3
+
4
+ NO_READ = :no_read
5
+
6
+ attr_accessor :file, :last_modification
7
+
8
+ def initialize(file)
9
+ self.file = file
10
+ self.last_modification = File.mtime(self.file)
11
+ end
12
+
13
+ def content
14
+ if changed? || @content == NO_READ
15
+ @content = File.read(self.file)
16
+ self.last_modification = File.mtime(self.file)
17
+ end
18
+ @content
19
+ end
20
+
21
+ def changed?
22
+ @content.nil? || (File.mtime(self.file) > self.last_modification)
23
+ end
24
+
25
+ def file(set_content_no_read = false)
26
+ if set_content_no_read
27
+ @content = NO_READ
28
+ end
29
+ @file
30
+ end
31
+
32
+ class << self
33
+
34
+ def files
35
+ @files ||= {}
36
+ end
37
+
38
+ def file(file)
39
+ return nil unless file
40
+ self.files[file] ||= self.new(file)
41
+ end
42
+
43
+ def changed?(file)
44
+ self.file(file).changed?
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+ end
@@ -0,0 +1,37 @@
1
+ module SimpleView
2
+
3
+ class SimpleViewIO < SimpleViewBase
4
+ EXTENTION = ".io.rb".freeze unless defined?(EXTENTION)
5
+
6
+ def self.extension
7
+ EXTENTION
8
+ end
9
+
10
+ SimpleViewBase.register(self)
11
+
12
+ def do_rendering(rendable_object, options)
13
+ options = {:target => $stdout}.merge(options)
14
+ filename = options.delete(:filename) || '<IO>'
15
+ line = options.delete(:line) || 1
16
+ io = options[:target]
17
+ rendable_object.put_locals_objects((options.delete(:io_name) || :io).to_sym => io)
18
+ render_with_helper(rendable_object) do
19
+ eval self.template_content, rendable_object.get_binding, filename, line
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ module Renderable
26
+
27
+ module InstanceMethods
28
+
29
+ def render_io(template, options = {})
30
+ render_with SimpleViewIO, template, options
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,116 @@
1
+ require 'java'
2
+ Dir["#{File.dirname(__FILE__)}/java/poi/*.jar"].each {|jar| require jar}
3
+
4
+ import org.apache.poi.poifs.filesystem.POIFSFileSystem
5
+ import org.apache.poi.hssf.usermodel.HSSFWorkbook
6
+ import org.apache.poi.hssf.usermodel.HSSFChart
7
+ import java.io.FileInputStream
8
+ import java.io.FileOutputStream
9
+
10
+ # D�clarer des s�ries Excel dynamique :
11
+ # 1. D�finir les variables
12
+ # Poids=DECALER(data!$K$1;0;0;NBVAL(data!$K:$K)-1;1)
13
+ # Signatures=DECALER(data!$B$1;0;0;NBVAL(data!$B:$B)-1;1)
14
+ # NbDossiers=DECALER(data!$J$1;0;0;NBVAL(data!$J:$J)-1;1)
15
+
16
+ # NbDossiersD=DECALER(data!$L$1;0;0;NBVAL(data!$L:$L)-1;1)
17
+ # NbDossiersE=DECALER(data!$M$1;0;0;NBVAL(data!$M:$M)-1;1)
18
+ # NbDossiersF=DECALER(data!$N$1;0;0;NBVAL(data!$N:$N)-1;1)
19
+ # NbDossiersH=DECALER(data!$O$1;0;0;NBVAL(data!$O:$O)-1;1)
20
+ # NbDossiersI=DECALER(data!$P$1;0;0;NBVAL(data!$P:$P)-1;1)
21
+ # NbDossiersP=DECALER(data!$Q$1;0;0;NBVAL(data!$Q:$Q)-1;1)
22
+ # NbDossiersR=DECALER(data!$R$1;0;0;NBVAL(data!$R:$R)-1;1)
23
+ # NbDossiersX=DECALER(data!$S$1;0;0;NBVAL(data!$S:$S)-1;1)
24
+
25
+ # 2. Dans les graphes
26
+ # S�rie: =data!Poids
27
+
28
+ module SimpleView
29
+
30
+ class SimpleViewPOI < SimpleViewBase
31
+
32
+ EXTENTION = ".poi.rb".freeze unless defined?(EXTENTION)
33
+
34
+ def self.extension
35
+ EXTENTION
36
+ end
37
+
38
+ SimpleViewBase.register(self)
39
+
40
+ def render(rendable_object, options = {})
41
+ do_rendering(rendable_object, options)
42
+ end
43
+
44
+ def do_rendering(rendable_object, options)
45
+ filename = options.delete(:filename) || '<POI.XLS>'
46
+ line = options.delete(:line) || 1
47
+ model_file = options.delete(:model)
48
+
49
+ xls = model_file ? HSSFWorkbook.new(file(model_file)) : HSSFWorkbook.new
50
+
51
+ rendable_object.put_locals_objects((options.delete(:builder_name) || :xls).to_sym => xls)
52
+ render_with_helper(rendable_object) do
53
+ rendable_object.extend(Helper)
54
+ eval self.template_content, rendable_object.get_binding, filename, line
55
+ end
56
+ if options.key?(:target)
57
+ output = file(options[:target], 'w')
58
+ begin
59
+ xls.write(output)
60
+ ensure
61
+ output.close
62
+ end
63
+ end
64
+ end
65
+
66
+ def file(filename, mode = 'r')
67
+ if mode == 'r'
68
+ POIFSFileSystem.new(FileInputStream.new(filename))
69
+ else
70
+ FileOutputStream.new(filename)
71
+ end
72
+ end
73
+
74
+ module Helper
75
+ def set_cell_value(row, col_index, value)
76
+ cell = row.create_cell(col_index)
77
+ cell.set_cell_value(value)
78
+ cell
79
+ end
80
+
81
+ def get_charts(sheet)
82
+ HSSFChart.get_sheet_charts(sheet)
83
+ end
84
+
85
+ def row_at(sheet, index_line)
86
+ row = sheet.get_row(index_line)
87
+ unless row
88
+ row = sheet.create_row(index_line)
89
+ end
90
+ row
91
+ end
92
+
93
+ def cell_at(row, index_col)
94
+ cell = row.get_cell(index_col)
95
+ unless cell
96
+ cell = row.create_cell(index_col)
97
+ end
98
+ cell
99
+ end
100
+
101
+ end
102
+ end
103
+
104
+ module Renderable
105
+
106
+ module InstanceMethods
107
+
108
+ def render_poi(template, options = {})
109
+ render_with SimpleViewPOI, template, options
110
+ end
111
+
112
+ end
113
+
114
+ end
115
+
116
+ end
@@ -0,0 +1,114 @@
1
+ #
2
+ # class Toto
3
+ # include Renderable
4
+ #
5
+ # attr_accessor :affectations
6
+ #
7
+ # end
8
+ #
9
+ # toto = Toto.new
10
+ # toto.affectations = [1,2,3,4]
11
+ # out = StringIO.new
12
+ #
13
+ # toto.render_erb('test', :titi => [:a, :b, :c])
14
+ #
15
+ # Le fichier 'views/test.erb'
16
+ # ---------------------------
17
+ # affectations = <%= affectations.inspect %>
18
+ # titi = <%= titi.inspect %>
19
+ #
20
+ # toto.render_builder('test', :titi => [:a, :b, :c])
21
+ #
22
+ # Le fichier 'views/test.builder.rb'
23
+ # ----------------------------------
24
+ # xml.instruct!
25
+ # affectation.each {|aff| xml.tag!(aff)}
26
+ # titi.each {|t| xml.tag!(t)}
27
+ #
28
+ #
29
+ module SimpleView
30
+ module Renderable
31
+
32
+ def self.included(mod)
33
+ if Class === mod
34
+ mod.send(:include, InstanceMethods)
35
+ mod.send(:extend, ClassMethods)
36
+ elsif Module === mod
37
+ mod.send(:extend, InstanceMethods)
38
+ end
39
+ end
40
+
41
+ module ClassMethods
42
+
43
+ end
44
+
45
+ module InstanceMethods
46
+
47
+ def _locals_objects
48
+ @_locals_objects ||= {}
49
+ end
50
+
51
+ def put_locals_objects(locals)
52
+ self._locals_objects.merge!(locals)
53
+ locals.each_pair do |name, obj|
54
+ self.instance_eval <<-RUBY
55
+ def #{name}; self._locals_objects[:#{name}]; end
56
+ RUBY
57
+ end
58
+ end
59
+
60
+ def get_binding
61
+ binding
62
+ end
63
+
64
+ def render(template, options = {})
65
+ self.safe_rendering do |object|
66
+ object.put_locals_objects(options[:locals] || {})
67
+ view = SimpleViewBase.find_view(template)
68
+ view.render(object, options)
69
+ end
70
+ end
71
+
72
+ def render_with(renderer, template, options = {})
73
+ self.safe_rendering do |object|
74
+ object.put_locals_objects(options[:locals] || {})
75
+ view = renderer.view(template)
76
+ view.render(object, options)
77
+ end
78
+ end
79
+
80
+ protected
81
+ def safe_rendering #:nodoc:
82
+ shot = RenderingObject === self ? BasicObjectRenderable.new : RenderingObject.new(self)
83
+ yield(shot) if block_given?
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+
90
+ class BasicObjectRenderable
91
+ include ::SimpleView::Renderable
92
+ end
93
+
94
+ class RenderingObject < SimpleDelegator #:nodoc:
95
+ include ::SimpleView::Renderable
96
+
97
+ def initialize(n)
98
+ super
99
+ # puts "RenderingObject for: #{n.inspect}"
100
+ end
101
+
102
+ def to_s
103
+ "RenderingObject(#{__getobj__}){:locals => #{_locals_objects.inspect}}"
104
+ end
105
+
106
+ end
107
+
108
+ # def self.render(template, options = {})
109
+ # BasicObjectRenderable.new.render(template, options)
110
+ # end
111
+
112
+
113
+ include Renderable
114
+ end