racket-mvc 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: