simple_view 0.0.1

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 (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