RubyApp 0.0.91 → 0.2.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 (127) hide show
  1. data/.gitignore +0 -1
  2. data/.rvmrc +56 -1
  3. data/Gemfile.lock +22 -22
  4. data/bin/console.rb +9 -1
  5. data/bin/ruby_app +2 -24
  6. data/features/default.feature +1 -0
  7. data/features/elements/input.feature +2 -0
  8. data/features/elements/page.feature +0 -9
  9. data/features/step_definitions/default_macros.rb +1 -4
  10. data/features/step_definitions/default_steps.rb +1 -1
  11. data/lib/ruby_app.rb +8 -1
  12. data/lib/ruby_app/application.rb +5 -67
  13. data/lib/ruby_app/configuration.rb +2 -3
  14. data/lib/ruby_app/configuration.ru +32 -0
  15. data/lib/ruby_app/configuration.yml +28 -0
  16. data/lib/ruby_app/element.rb +12 -6
  17. data/lib/ruby_app/elements.rb +50 -0
  18. data/lib/ruby_app/elements/base/base_mail.rb +2 -2
  19. data/lib/ruby_app/elements/base/base_page.html.haml +1 -1
  20. data/lib/ruby_app/elements/base/base_page.js.haml +3 -3
  21. data/lib/ruby_app/elements/base/base_page.rb +2 -2
  22. data/lib/ruby_app/elements/dialogs/base/base_ok_dialog.rb +0 -1
  23. data/lib/ruby_app/elements/dialogs/blank_dialog.rb +1 -1
  24. data/lib/ruby_app/elements/dialogs/exception_dialog.rb +1 -2
  25. data/lib/ruby_app/elements/navigation/back_button.rb +1 -1
  26. data/lib/ruby_app/elements/navigation/base/base_breadcrumbs.rb +1 -0
  27. data/lib/ruby_app/elements/navigation/page_link.rb +1 -0
  28. data/lib/ruby_app/elements/pages/authentication/open_id/ax_authentication_page.rb +1 -1
  29. data/lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb +1 -3
  30. data/lib/ruby_app/elements/pages/authentication/open_id/email_authentication_page.rb +1 -1
  31. data/lib/ruby_app/elements/pages/authentication/open_id/sreg_authentication_page.rb +1 -1
  32. data/lib/ruby_app/elements/pages/base/base_blank_page.rb +0 -1
  33. data/lib/ruby_app/elements/pages/default_page.rb +2 -1
  34. data/lib/ruby_app/elements/pages/quit_page.html.haml +0 -3
  35. data/lib/ruby_app/elements/pages/quit_page.rb +0 -2
  36. data/lib/ruby_app/elements/pages/settings_page.rb +2 -1
  37. data/lib/ruby_app/elements/pages/test_pages.rb +9 -0
  38. data/lib/ruby_app/elements/pages/test_pages/button_test_page.rb +3 -5
  39. data/lib/ruby_app/elements/pages/test_pages/default_test_page.rb +10 -15
  40. data/lib/ruby_app/elements/pages/test_pages/dialog_test_page.rb +2 -8
  41. data/lib/ruby_app/elements/pages/test_pages/input_test_page.rb +2 -9
  42. data/lib/ruby_app/elements/pages/test_pages/link_test_page.rb +3 -5
  43. data/lib/ruby_app/elements/pages/test_pages/linked_test_page.rb +1 -2
  44. data/lib/ruby_app/elements/pages/test_pages/list_test_page.rb +4 -8
  45. data/lib/ruby_app/elements/pages/test_pages/markdown_test_page.rb +3 -4
  46. data/lib/ruby_app/elements/pages/test_pages/test_page.rb +3 -8
  47. data/lib/ruby_app/exceptions.rb +2 -0
  48. data/lib/ruby_app/exceptions/base/base_exception.rb +1 -1
  49. data/lib/ruby_app/language.rb +9 -15
  50. data/lib/ruby_app/log.rb +32 -28
  51. data/lib/ruby_app/mixins.rb +7 -0
  52. data/lib/ruby_app/mixins/configuration_mixin.rb +1 -1
  53. data/lib/ruby_app/mixins/delegate_mixin.rb +1 -1
  54. data/lib/ruby_app/mixins/hash_mixin.rb +1 -1
  55. data/lib/ruby_app/mixins/render_mixin.rb +37 -39
  56. data/lib/ruby_app/mixins/route_mixin.rb +1 -5
  57. data/lib/ruby_app/mixins/template_mixin.rb +4 -12
  58. data/lib/ruby_app/mixins/translate_mixin.rb +2 -2
  59. data/lib/ruby_app/rack.rb +8 -0
  60. data/lib/ruby_app/rack/application.rb +9 -5
  61. data/lib/ruby_app/rack/duration.rb +22 -0
  62. data/lib/ruby_app/rack/language.rb +26 -0
  63. data/lib/ruby_app/rack/memory.rb +22 -0
  64. data/lib/ruby_app/rack/request.rb +27 -0
  65. data/lib/ruby_app/rack/response.rb +26 -0
  66. data/lib/ruby_app/rack/route.rb +24 -87
  67. data/lib/ruby_app/rack/session.rb +31 -0
  68. data/lib/ruby_app/request.rb +4 -55
  69. data/lib/ruby_app/response.rb +58 -0
  70. data/lib/ruby_app/session.rb +102 -35
  71. data/lib/ruby_app/templates/application/Rakefile +1 -1
  72. data/lib/ruby_app/templates/application/configuration.ru +41 -0
  73. data/lib/ruby_app/templates/application/configuration.yml +16 -0
  74. data/lib/ruby_app/templates/application/console.rb +15 -10
  75. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_.rb +3 -0
  76. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/application.rb +3 -3
  77. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/elements/pages/default_page.rb +1 -1
  78. data/lib/ruby_app/templates/application/lib/_APPLICATION_DOWNCODE_/session.rb +3 -3
  79. data/lib/ruby_app/templates/application/spec/application_spec.rb +17 -0
  80. data/lib/ruby_app/templates/application/spec/request_spec.rb +18 -0
  81. data/lib/ruby_app/templates/application/spec/support/shared.rb +34 -9
  82. data/lib/ruby_app/themes/mobile.rb +1 -17
  83. data/lib/ruby_app/themes/mobile/base/base_page.html.haml +1 -1
  84. data/lib/ruby_app/translations/en.yml +133 -144
  85. data/lib/ruby_app/version.rb +1 -1
  86. data/rakefile +1 -16
  87. data/spec/application_spec.rb +5 -13
  88. data/spec/elements/base_element.html.haml +5 -0
  89. data/spec/elements/container_element.html.haml +6 -0
  90. data/spec/elements/derived_element.html.haml +5 -0
  91. data/spec/elements/element_spec.rb +101 -0
  92. data/spec/request_spec.rb +6 -13
  93. data/spec/support/shared.rb +14 -6
  94. metadata +95 -125
  95. data/features/elements/pages/quit_page.feature +0 -8
  96. data/lib/ruby_app/config.ru +0 -25
  97. data/lib/ruby_app/config.yml +0 -16
  98. data/lib/ruby_app/elements/pages/test_pages/select_test_page.rb +0 -44
  99. data/lib/ruby_app/templates/application/config.ru +0 -40
  100. data/lib/ruby_app/templates/application/config.yml +0 -1
  101. data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.css.haml +0 -3
  102. data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.html.haml +0 -4
  103. data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.js.haml +0 -3
  104. data/lib/ruby_app/templates/page/_PAGE_DOWNCODE_.rb +0 -14
  105. data/spec/configuration_spec.rb +0 -25
  106. data/spec/element_spec.rb +0 -72
  107. data/spec/elements/navigation/breadcrumbs_spec.rb +0 -62
  108. data/spec/elements/page_spec.rb +0 -20
  109. data/spec/language_spec.rb +0 -25
  110. data/spec/log_spec.rb +0 -25
  111. data/spec/mixins/configuration_mixin_spec.rb +0 -24
  112. data/spec/mixins/delegate_mixin_spec.rb +0 -28
  113. data/spec/mixins/hash_mixin_spec.rb +0 -39
  114. data/spec/mixins/render_mixin_spec.rb +0 -127
  115. data/spec/mixins/route_mixin_spec.rb +0 -60
  116. data/spec/mixins/template_mixin_spec.rb +0 -78
  117. data/spec/mixins/test_a.css.haml +0 -4
  118. data/spec/mixins/test_a.html.haml +0 -2
  119. data/spec/mixins/test_a.js.haml +0 -4
  120. data/spec/mixins/test_b.css.haml +0 -4
  121. data/spec/mixins/test_b.html.haml +0 -3
  122. data/spec/mixins/test_b.js.haml +0 -4
  123. data/spec/mixins/test_c.css.haml +0 -4
  124. data/spec/mixins/test_c.html.haml +0 -2
  125. data/spec/mixins/test_c.js.haml +0 -4
  126. data/spec/mixins/translate_mixin_spec.rb +0 -25
  127. data/spec/session_spec.rb +0 -39
@@ -3,7 +3,7 @@ module RubyApp
3
3
  module Mixins
4
4
 
5
5
  module TranslateMixin
6
- require 'ruby_app/language'
6
+ require 'ruby_app'
7
7
 
8
8
  def translate
9
9
 
@@ -25,7 +25,7 @@ module RubyApp
25
25
  end
26
26
 
27
27
  def localize(*parameters)
28
- RubyApp::Language.l(*parameters)
28
+ return RubyApp::Language.l(*parameters)
29
29
  end
30
30
 
31
31
  end
@@ -0,0 +1,8 @@
1
+ require 'ruby_app/rack/application'
2
+ require 'ruby_app/rack/duration'
3
+ require 'ruby_app/rack/language'
4
+ require 'ruby_app/rack/memory'
5
+ require 'ruby_app/rack/request'
6
+ require 'ruby_app/rack/response'
7
+ require 'ruby_app/rack/session'
8
+ require 'ruby_app/rack/route'
@@ -1,20 +1,24 @@
1
1
  module RubyApp
2
2
 
3
3
  module Rack
4
- require 'ruby_app/application'
5
- require 'ruby_app/log'
6
- require 'ruby_app/request'
4
+ require 'ruby_app'
7
5
 
8
6
  class Application
9
7
 
10
8
  def initialize(application, options = {})
11
9
  @application = application
12
- RubyApp::Application.create!(options)
10
+ RubyApp::Configuration.load!(options[:configuration_paths])
11
+ RubyApp::Log.open!
12
+ RubyApp::Application.create!
13
+ RubyApp::Session.start_thread!
13
14
  end
14
15
 
15
16
  def call(environment)
16
- RubyApp::Request.create!(environment) do
17
+ begin
17
18
  return @application.call(environment)
19
+ rescue Exception => exception
20
+ RubyApp::Log.exception(exception)
21
+ raise exception
18
22
  end
19
23
  end
20
24
 
@@ -0,0 +1,22 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+ require 'ruby_app'
5
+
6
+ class Duration
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Log.duration(RubyApp::Log.prefix(self, __method__)) do
14
+ return @application.call(environment)
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,26 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+ require 'ruby_app'
5
+
6
+ class Language
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Language.load!(RubyApp::Request.language)
14
+ begin
15
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} RubyApp::Language.locale.code=#{RubyApp::Language.locale.code.inspect}")
16
+ return @application.call(environment)
17
+ ensure
18
+ RubyApp::Language.unload!
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -0,0 +1,22 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+ require 'ruby_app'
5
+
6
+ class Memory
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Log.memory(RubyApp::Log.prefix(self, __method__)) do
14
+ return @application.call(environment)
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -0,0 +1,27 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+
5
+ class Request
6
+ require 'ruby_app'
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Request.create!(environment)
14
+ begin
15
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} RubyApp::Request.request_method=#{RubyApp::Request.request_method.inspect}")
16
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} RubyApp::Request.path=#{RubyApp::Request.path.inspect}")
17
+ return @application.call(environment)
18
+ ensure
19
+ RubyApp::Request.destroy!
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,26 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+
5
+ class Response
6
+ require 'ruby_app'
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Response.create!
14
+ begin
15
+ @application.call(environment)
16
+ return RubyApp::Response.finish
17
+ ensure
18
+ RubyApp::Response.destroy!
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -1,129 +1,66 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
- require 'mime/types'
5
4
  require 'yajl'
6
5
 
7
6
  module RubyApp
8
7
 
9
8
  module Rack
10
- require 'ruby_app/element'
11
- require 'ruby_app/elements/exception_element'
12
- require 'ruby_app/elements/pages/quit_page'
13
- require 'ruby_app/exceptions/session_invalid_exception'
14
- require 'ruby_app/log'
15
- require 'ruby_app/mixins/route_mixin'
16
- require 'ruby_app/request'
17
- require 'ruby_app/session'
9
+ require 'ruby_app'
10
+ require 'ruby_app/elements'
11
+ require 'ruby_app/mixins'
18
12
 
19
13
  class Route
20
14
  extend RubyApp::Mixins::RouteMixin
21
15
 
22
16
  def call(environment)
23
- self.class.do_route(RubyApp::Request.request_method, RubyApp::Request.path)
17
+ RubyApp::Rack::Route.do_route(RubyApp::Request.request_method, RubyApp::Request.path)
24
18
  end
25
19
 
26
20
  route(RubyApp::Mixins::RouteMixin::GET, /\/quit/) do |method, path|
27
- begin
28
- [
29
- 200,
30
- {
31
- 'Cache-Control' => 'no-cache',
32
- 'Content-Type' => 'text/html'
33
- },
34
- [ RubyApp::Elements::Pages::QuitPage.new.render(:html) ]
35
- ]
36
- rescue Exception => exception
37
- RubyApp::Log.exception(exception)
38
- raise exception
39
- end
21
+ RubyApp::Log.debug("#{RubyApp::Session.session_id} GET /quit")
22
+ RubyApp::Session.quit!
23
+ RubyApp::Response['Content-Type'] = 'text/html'
24
+ RubyApp::Response.write(RubyApp::Elements::Pages::QuitPage.new.render(:html))
40
25
  end
41
26
 
42
27
  route(RubyApp::Mixins::RouteMixin::GET, /\/elements\/([^\.]+)\.([^\.\?]+)/) do |method, path, element_id, format|
28
+ RubyApp::Response['Content-Type'] = RubyApp::Element.get_content_type(format)
43
29
  begin
44
- [
45
- 200,
46
- {
47
- 'Cache-Control' => 'no-cache',
48
- 'Content-Type' => RubyApp::Rack::Route.get_content_type(format)
49
- },
50
- [ RubyApp::Element.get_element(element_id).render(format.to_sym) ]
51
- ]
30
+ element = RubyApp::Element.get_element(element_id)
31
+ RubyApp::Log.duration("#{RubyApp::Session.session_id} GET #{element.class} #{format}") do
32
+ RubyApp::Response.write(element.render(format.to_sym))
33
+ end
52
34
  rescue Exception => exception
53
- RubyApp::Log.exception(exception)
54
- [
55
- 200,
56
- {
57
- 'Cache-Control' => 'no-cache',
58
- 'Content-Type' => RubyApp::Rack::Route.get_content_type(format)
59
- },
60
- [ RubyApp::Elements::ExceptionElement.new(exception).render(format.to_sym) ]
61
- ]
35
+ RubyApp::Response.write(RubyApp::Elements::ExceptionElement.new(exception).render(format.to_sym))
62
36
  end
63
37
  end
64
38
 
65
39
  route(RubyApp::Mixins::RouteMixin::GET, /\.([^\.\?]+)/) do |method, path, format|
66
- begin
67
- [
68
- 200,
69
- {
70
- 'Cache-Control' => 'no-cache',
71
- 'Content-Type' => RubyApp::Rack::Route.get_content_type(format)
72
- },
73
- [
74
- RubyApp::Log.duration("#{self}.route method=#{method.inspect} path=#{path.inspect} format=#{format.to_sym.inspect} RubyApp::Session.pages.last=#{RubyApp::Session.pages.last.class}") do
75
- RubyApp::Session.pages.last.render(format.to_sym)
76
- end
77
- ]
78
- ]
79
- rescue Exception => exception
80
- RubyApp::Log.exception(exception)
81
- raise exception
40
+ RubyApp::Response['Content-Type'] = RubyApp::Element.get_content_type(format)
41
+ page = RubyApp::Session.pages.last
42
+ RubyApp::Log.duration("#{RubyApp::Session.session_id} GET #{page.class} #{format}") do
43
+ RubyApp::Response.write(page.render(format.to_sym))
82
44
  end
83
45
  end
84
46
 
85
47
  route(RubyApp::Mixins::RouteMixin::GET, /.*/) do |method, path|
86
- RubyApp::Log.debug("#{self}.route method=#{method.inspect} path=#{path.inspect}")
87
- do_route(RubyApp::Mixins::RouteMixin::GET, '/.html')
48
+ RubyApp::Rack::Route.do_route(RubyApp::Mixins::RouteMixin::GET, '/.html')
88
49
  end
89
50
 
90
51
  route(RubyApp::Mixins::RouteMixin::POST, /.*/) do |method, path|
52
+ RubyApp::Response['Content-Type'] = 'application/json'
91
53
  begin
92
- if RubyApp::Session.session_id == RubyApp::Request.POST['session_id']
93
- event = RubyApp::Element::Event.from_hash(RubyApp::Request.POST)
54
+ event = RubyApp::Element::Event.from_hash(RubyApp::Request.POST)
55
+ RubyApp::Log.duration("#{RubyApp::Session.session_id} POST #{event.class}") do
94
56
  event.process!
95
- [
96
- 200,
97
- {
98
- 'Cache-Control' => 'no-cache',
99
- 'Content-Type' => 'application/json'
100
- },
101
- [
102
- RubyApp::Log.duration("#{self}.route method=#{method.inspect} path=#{path.inspect} POST['_class']=#{RubyApp::Request.POST['_class']}") do
103
- Yajl::Encoder.new.encode(event.to_hash)
104
- end
105
- ]
106
- ]
107
- else
108
- raise RubyApp::Exceptions::SessionInvalidException.new(RubyApp::Request.POST['session_id'])
57
+ RubyApp::Response.write(Yajl::Encoder.new.encode(event.to_hash))
109
58
  end
110
59
  rescue Exception => exception
111
- RubyApp::Log.exception(exception)
112
- [
113
- 200,
114
- {
115
- 'Cache-Control' => 'no-cache',
116
- 'Content-Type' => 'application/json'
117
- },
118
- [ Yajl::Encoder.new.encode(RubyApp::Element::ExceptionEvent.new(exception).to_hash) ]
119
- ]
60
+ RubyApp::Response.write(Yajl::Encoder.new.encode(RubyApp::Element::ExceptionEvent.new(exception).to_hash))
120
61
  end
121
62
  end
122
63
 
123
- def self.get_content_type(format)
124
- ( mime_type = MIME::Types.type_for(format)[0] ) ? mime_type.content_type : 'text/plain'
125
- end
126
-
127
64
  end
128
65
 
129
66
  end
@@ -0,0 +1,31 @@
1
+ module RubyApp
2
+
3
+ module Rack
4
+
5
+ class Session
6
+ require 'ruby_app'
7
+
8
+ def initialize(application)
9
+ @application = application
10
+ end
11
+
12
+ def call(environment)
13
+ RubyApp::Session.load!(RubyApp::Request.cookies['_session'])
14
+ begin
15
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} RubyApp::Session.session_id=#{RubyApp::Session.session_id.inspect}")
16
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} RubyApp::Session.expires=#{RubyApp::Session.expires.inspect}")
17
+ #RubyApp::Log.debug("#{RubyApp::Log.prefix(self, __method__)} (now)=#{Time.now.inspect}")
18
+ RubyApp::Response.set_cookie('_session', { :value => RubyApp::Session.session_id,
19
+ :expires => RubyApp::Session.expires,
20
+ :path => '/'})
21
+ return @application.call(environment)
22
+ ensure
23
+ RubyApp::Session.unload!
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -1,22 +1,17 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
- require 'facets/string/interpolate'
5
4
  require 'rack'
6
5
 
7
6
  module RubyApp
8
- require 'ruby_app/application'
9
- require 'ruby_app/language'
10
- require 'ruby_app/mixins/delegate_mixin'
11
- require 'ruby_app/mixins/render_mixin'
12
- require 'ruby_app/session'
7
+ require 'ruby_app/mixins'
13
8
 
14
9
  class Request < ::Rack::Request
15
10
  extend RubyApp::Mixins::DelegateMixin
16
11
 
17
12
  def language
18
13
  self.fullpath =~ /^\/([^\/\?]+)/
19
- $1 || RubyApp::Application.options.default_language
14
+ return $1
20
15
  end
21
16
 
22
17
  def query
@@ -27,26 +22,8 @@ module RubyApp
27
22
  self.params
28
23
  end
29
24
 
30
- def rendered?(template)
31
- @rendered.key?(template)
32
- end
33
-
34
- def rendered(template)
35
- @rendered[template] = true
36
- end
37
-
38
- def content_for(element, name, value = nil, &block)
39
- @content[element] ||= {}
40
- @content[element][name] = block_given? ? block : String.interpolate { value }
41
- end
42
-
43
- def get_content(element, name)
44
- @content[element] ||= {}
45
- return @content[element][name]
46
- end
47
-
48
- def clear_content(element)
49
- @content[element] ||= {}
25
+ def quit?
26
+ self.path =~ /\/quit/
50
27
  end
51
28
 
52
29
  def self.get
@@ -55,32 +32,6 @@ module RubyApp
55
32
 
56
33
  def self.create!(environment = RubyApp::Application.environment)
57
34
  Thread.current[:_request] = RubyApp::Request.new(environment)
58
-
59
- if block_given?
60
- begin
61
- RubyApp::Language.load! do
62
- RubyApp::Session.create! do
63
- return yield
64
- end
65
- end
66
- ensure
67
- self.destroy!
68
- end
69
- else
70
- begin
71
- RubyApp::Language.load!
72
- begin
73
- RubyApp::Session.create!
74
- rescue
75
- RubyApp::Language.unload!
76
- raise
77
- end
78
- rescue
79
- self.destroy!
80
- raise
81
- end
82
- end
83
-
84
35
  end
85
36
 
86
37
  def self.destroy!
@@ -91,8 +42,6 @@ module RubyApp
91
42
 
92
43
  def initialize(environment)
93
44
  super(environment)
94
- @rendered = {}
95
- @content = {}
96
45
  end
97
46
 
98
47
  end