racket-mvc 0.4.0 → 0.5.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -5
  3. data/lib/racket.rb +25 -7
  4. data/lib/racket/application.rb +70 -136
  5. data/lib/racket/controller.rb +95 -38
  6. data/lib/racket/current.rb +1 -1
  7. data/lib/racket/helpers/file.rb +7 -5
  8. data/lib/racket/helpers/routing.rb +5 -5
  9. data/lib/racket/helpers/sass.rb +11 -11
  10. data/lib/racket/helpers/view.rb +8 -5
  11. data/lib/racket/plugins/base.rb +1 -1
  12. data/lib/racket/plugins/sass.rb +1 -1
  13. data/lib/racket/request.rb +3 -3
  14. data/lib/racket/response.rb +1 -1
  15. data/lib/racket/router.rb +31 -12
  16. data/lib/racket/session.rb +3 -3
  17. data/lib/racket/settings/application.rb +27 -33
  18. data/lib/racket/settings/base.rb +19 -8
  19. data/lib/racket/settings/controller.rb +9 -7
  20. data/lib/racket/settings/defaults.rb +81 -0
  21. data/lib/racket/utils.rb +19 -15
  22. data/lib/racket/utils/application.rb +4 -114
  23. data/lib/racket/utils/application/handler_stack.rb +163 -0
  24. data/lib/racket/utils/application/logger.rb +72 -0
  25. data/lib/racket/utils/application/registry_builder.rb +88 -0
  26. data/lib/racket/utils/application/stateless_services.rb +73 -0
  27. data/lib/racket/utils/exceptions.rb +3 -3
  28. data/lib/racket/utils/file_system.rb +75 -47
  29. data/lib/racket/utils/helpers.rb +35 -13
  30. data/lib/racket/utils/routing.rb +62 -46
  31. data/lib/racket/utils/views.rb +19 -187
  32. data/lib/racket/utils/views/renderer.rb +75 -0
  33. data/lib/racket/utils/views/template_cache.rb +126 -0
  34. data/lib/racket/utils/views/template_locator.rb +83 -0
  35. data/lib/racket/utils/views/template_resolver.rb +112 -0
  36. data/lib/racket/version.rb +2 -2
  37. data/lib/racket/view_manager.rb +12 -4
  38. data/rake/utils.rb +5 -5
  39. data/spec/_custom.rb +69 -19
  40. data/spec/_default.rb +60 -44
  41. data/spec/_plugin.rb +12 -14
  42. data/spec/_template_cache.rb +176 -0
  43. data/spec/racket.rb +10 -13
  44. data/spec/test_custom_app/controllers/sub1/custom_sub_controller_1.rb +1 -1
  45. data/spec/test_custom_app/controllers/sub3/custom_sub_controller_3.rb +19 -1
  46. data/spec/test_custom_app/controllers/sub5/custom_sub_controller_5.rb +8 -0
  47. data/spec/test_custom_app/files/stuff.rb +3 -0
  48. data/spec/test_custom_app/files/triplet.erb +5 -0
  49. data/spec/test_custom_app/templates/sub5/text.erb +3 -0
  50. data/spec/test_default_app/controllers/default_root_controller.rb +3 -0
  51. data/spec/test_default_app/controllers/sub1/default_sub_controller_1.rb +1 -1
  52. metadata +52 -11
@@ -1,6 +1,5 @@
1
1
  require 'simplecov'
2
2
  require 'stringio'
3
- require 'tilt/erb'
4
3
 
5
4
  SimpleCov.start do
6
5
  add_filter 'spec'
@@ -18,6 +17,11 @@ TEST_PLUGIN_APP_DIR = File.join(TEST_DIR, 'test_plugin_app')
18
17
 
19
18
  require 'racket'
20
19
 
20
+ # Force use of ERB (not Erubis) during testing.
21
+ # This is a workaround for Rubinius not finding ERubis.
22
+ # @see https://gist.github.com/jodosha/9662268
23
+ Tilt.register Tilt::ERBTemplate, 'erb'
24
+
21
25
  # Make sure some files that are loaded dynamically get coverage as well.
22
26
  require 'racket/helpers/file.rb'
23
27
 
@@ -27,6 +31,9 @@ require 'bacon'
27
31
  # Method tests should always be run first.
28
32
  require File.join(TEST_DIR, '_request.rb')
29
33
 
34
+ # Next up, tests for Template caching.
35
+ require File.join(TEST_DIR, '_template_cache.rb')
36
+
30
37
  # Application tests.
31
38
  suites = [
32
39
  -> { Dir.chdir(TEST_DEFAULT_APP_DIR) { require File.join(TEST_DIR, '_default.rb') } },
@@ -38,17 +45,7 @@ suites = [
38
45
  # suites.shuffle!
39
46
 
40
47
  # Run application tests.
41
- suites.each do |suite|
42
- # Make sure Racket::Application and Racket::Settings::Application is reset between the suites.
43
- # Racket::Application@application and Racket::Settings::Application must be pristine on each run!
44
- Racket.class_eval { remove_const(:Application) }
45
- Racket::Settings.class_eval { remove_const(:Application) }
46
- load('lib/racket/application.rb')
47
- load('lib/racket/settings/application.rb')
48
-
49
- # Run suite
50
- suite.call
51
- end
48
+ suites.each { |suite| suite.call }
52
49
 
53
50
  # Invalid application test should always be run last.
54
- require File.join(TEST_DIR, '_invalid.rb')
51
+ # require File.join(TEST_DIR, '_invalid.rb')
@@ -15,7 +15,7 @@ class CustomSubController1 < Racket::Controller
15
15
  end
16
16
 
17
17
  def epic_fail
18
- fail 'Epic fail!'
18
+ raise 'Epic fail!'
19
19
  end
20
20
 
21
21
  def send_existing_file_auto_mime
@@ -15,7 +15,7 @@ class CustomSubController3 < Racket::Controller
15
15
  end
16
16
 
17
17
  after :not_so_secret do
18
- fail 'Should not happen!'
18
+ raise 'Should not happen!'
19
19
  end
20
20
 
21
21
  def render_a_file
@@ -23,4 +23,22 @@ class CustomSubController3 < Racket::Controller
23
23
  obj.instance_eval { @secret = 42 }
24
24
  render_template('files/secret.erb', obj)
25
25
  end
26
+
27
+ def render_a_file_with_controller
28
+ @one = 1
29
+ @two = 2
30
+ @three = 3
31
+ render_template('files/triplet.erb', self)
32
+ end
33
+
34
+ def render_a_file_with_settings
35
+ obj = Object.new
36
+ obj.instance_eval do
37
+ @one = 1
38
+ @two = 2
39
+ @three = 3
40
+ end
41
+ settings = { trim: '-' }
42
+ render_template('files/triplet.erb', obj, settings)
43
+ end
26
44
  end
@@ -0,0 +1,8 @@
1
+ # Custom sub controller 4
2
+ class CustomSubController5 < Racket::Controller
3
+ template_setting :trim, '>'
4
+
5
+ def text
6
+ @text = 'Hello World!'
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ def stuff
2
+ 'Stuff That Dreams Are Made of'
3
+ end
@@ -0,0 +1,5 @@
1
+ <% if true %>
2
+ <%=@one%>
3
+ <%=@two%>
4
+ <%=@three%>
5
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% if true %>
2
+ <%= @text %>
3
+ <% end %>
@@ -28,4 +28,7 @@ class DefaultRootController < Racket::Controller
28
28
  def session_strings
29
29
  [session.inspect, session.to_s, session.to_str].to_json
30
30
  end
31
+
32
+ def empty
33
+ end
31
34
  end
@@ -13,6 +13,6 @@ class DefaultSubController1 < Racket::Controller
13
13
  end
14
14
 
15
15
  def epic_fail
16
- fail 'Epic fail!'
16
+ raise 'Epic fail!'
17
17
  end
18
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: racket-mvc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Olsson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-13 00:00:00.000000000 Z
11
+ date: 2016-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http_router
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: racket-registry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: tilt
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +86,28 @@ dependencies:
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 0.0.8
89
+ version: 0.1.5
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 0.0.8
96
+ version: 0.1.5
97
+ - !ruby/object:Gem::Dependency
98
+ name: json
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '2'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "<"
109
+ - !ruby/object:Gem::Version
110
+ version: '2'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: rack-test
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +128,14 @@ dependencies:
100
128
  requirements:
101
129
  - - "~>"
102
130
  - !ruby/object:Gem::Version
103
- version: '10'
131
+ version: '11'
104
132
  type: :development
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
- version: '10'
138
+ version: '11'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: sass
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +156,14 @@ dependencies:
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: '0.10'
159
+ version: '0.11'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: '0.10'
166
+ version: '0.11'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: yard
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -176,13 +204,22 @@ files:
176
204
  - lib/racket/settings/application.rb
177
205
  - lib/racket/settings/base.rb
178
206
  - lib/racket/settings/controller.rb
207
+ - lib/racket/settings/defaults.rb
179
208
  - lib/racket/utils.rb
180
209
  - lib/racket/utils/application.rb
210
+ - lib/racket/utils/application/handler_stack.rb
211
+ - lib/racket/utils/application/logger.rb
212
+ - lib/racket/utils/application/registry_builder.rb
213
+ - lib/racket/utils/application/stateless_services.rb
181
214
  - lib/racket/utils/exceptions.rb
182
215
  - lib/racket/utils/file_system.rb
183
216
  - lib/racket/utils/helpers.rb
184
217
  - lib/racket/utils/routing.rb
185
218
  - lib/racket/utils/views.rb
219
+ - lib/racket/utils/views/renderer.rb
220
+ - lib/racket/utils/views/template_cache.rb
221
+ - lib/racket/utils/views/template_locator.rb
222
+ - lib/racket/utils/views/template_resolver.rb
186
223
  - lib/racket/version.rb
187
224
  - lib/racket/view_manager.rb
188
225
  - rake/utils.rb
@@ -191,22 +228,27 @@ files:
191
228
  - spec/_invalid.rb
192
229
  - spec/_plugin.rb
193
230
  - spec/_request.rb
231
+ - spec/_template_cache.rb
194
232
  - spec/racket.rb
195
233
  - spec/test_custom_app/controllers/sub1/custom_sub_controller_1.rb
196
234
  - spec/test_custom_app/controllers/sub2/custom_sub_controller_2.rb
197
235
  - spec/test_custom_app/controllers/sub3/custom_sub_controller_3.rb
198
236
  - spec/test_custom_app/controllers/sub3/inherited/custom_inherited_controller.rb
199
237
  - spec/test_custom_app/controllers/sub4/custom_sub_controller_4.rb
238
+ - spec/test_custom_app/controllers/sub5/custom_sub_controller_5.rb
200
239
  - spec/test_custom_app/extra/blob.rb
201
240
  - spec/test_custom_app/extra/blob/inner_blob.rb
202
241
  - spec/test_custom_app/files/plain_text.txt
203
242
  - spec/test_custom_app/files/secret.erb
243
+ - spec/test_custom_app/files/stuff.rb
244
+ - spec/test_custom_app/files/triplet.erb
204
245
  - spec/test_custom_app/layouts/sub2/zebra.erb
205
246
  - spec/test_custom_app/layouts/sub4/layout.erb
206
247
  - spec/test_custom_app/templates/sub2/template.erb
207
248
  - spec/test_custom_app/templates/sub4/default.erb
208
249
  - spec/test_custom_app/templates/sub4/mybar.erb
209
250
  - spec/test_custom_app/templates/sub4/myfoo.erb
251
+ - spec/test_custom_app/templates/sub5/text.erb
210
252
  - spec/test_default_app/controllers/default_root_controller.rb
211
253
  - spec/test_default_app/controllers/sub1/default_sub_controller_1.rb
212
254
  - spec/test_default_app/controllers/sub2/default_sub_controller_2.rb
@@ -219,7 +261,7 @@ files:
219
261
  - spec/test_plugin_app/sass/test.scss
220
262
  homepage: https://github.com/lasso/racket
221
263
  licenses:
222
- - GNU AFFERO GENERAL PUBLIC LICENSE, version 3
264
+ - AGPL-3.0
223
265
  metadata: {}
224
266
  post_install_message:
225
267
  rdoc_options: []
@@ -237,9 +279,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
279
  version: '0'
238
280
  requirements: []
239
281
  rubyforge_project:
240
- rubygems_version: 2.4.8
282
+ rubygems_version: 2.5.1
241
283
  signing_key:
242
284
  specification_version: 4
243
285
  summary: Racket - The noisy Rack MVC framework
244
286
  test_files: []
245
- has_rdoc: