rad_core 0.0.25 → 0.0.26

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 (72) hide show
  1. data/Rakefile +3 -1
  2. data/bin/rad +33 -0
  3. data/lib/components/configurators.rb +5 -0
  4. data/lib/components/environment.production.yml +1 -0
  5. data/lib/components/environment.yml +30 -1
  6. data/lib/components/http.yml +12 -1
  7. data/lib/components/web.rb +2 -2
  8. data/lib/rad/_support/active_support/{micelaneous.rb → miscellaneous.rb} +0 -0
  9. data/lib/rad/_support/active_support.rb +1 -1
  10. data/lib/rad/_support/exception.rb +9 -40
  11. data/lib/rad/_support/string.rb +7 -1
  12. data/lib/rad/cli/helper.rb +34 -0
  13. data/lib/rad/configurators/_require.rb +13 -0
  14. data/lib/rad/configurators/abstract.rb +24 -0
  15. data/lib/rad/configurators/runtime.rb +4 -0
  16. data/lib/rad/configurators/web.rb +34 -0
  17. data/lib/rad/controller/_abstract/{micelaneous.rb → miscellaneous.rb} +1 -1
  18. data/lib/rad/controller/_abstract/render.rb +54 -53
  19. data/lib/rad/controller/_abstract.rb +16 -8
  20. data/lib/rad/controller/_context.rb +3 -9
  21. data/lib/rad/controller/_http.rb +22 -17
  22. data/lib/rad/controller/_require.rb +1 -1
  23. data/lib/rad/controller/processors/controller_caller.rb +5 -13
  24. data/lib/rad/controller/processors/controller_error_handling.rb +2 -2
  25. data/lib/rad/environment/_environment.rb +4 -0
  26. data/lib/rad/environment/_logger.rb +5 -5
  27. data/lib/rad/html/_require.rb +1 -1
  28. data/lib/rad/http/_http.rb +8 -4
  29. data/lib/rad/http/_http_adapter.rb +1 -21
  30. data/lib/rad/http/_request.rb +48 -7
  31. data/lib/rad/http/_require.rb +1 -1
  32. data/lib/rad/http/_response.rb +1 -1
  33. data/lib/rad/http/_support/rack/fixes.rb +6 -0
  34. data/lib/rad/http/processors/prepare_params.rb +1 -1
  35. data/lib/rad/mailer/processors/letter_builder.rb +3 -9
  36. data/lib/rad/profiles/web.rb +35 -10
  37. data/lib/rad/router/_router.rb +1 -1
  38. data/lib/rad/router/{micelaneous_router.rb → miscellaneous_router.rb} +0 -0
  39. data/lib/rad/spec/http_controller.rb +15 -11
  40. data/lib/rad/spec/web.rb +7 -0
  41. data/lib/rad/spec.rb +1 -0
  42. data/lib/rad/tasks.rb +15 -0
  43. data/lib/rad/template/_context.rb +0 -4
  44. data/lib/rad/template/_template.rb +1 -1
  45. data/lib/rad/web/_ajax_helper.rb +16 -0
  46. data/lib/rad/{core_web/_controller_micelaneous_helper.rb → web/_controller_miscellaneous_helper.rb} +2 -2
  47. data/lib/rad/web/_ensure_no_www.rb +30 -0
  48. data/lib/rad/web/_protect_from_forgery.rb +71 -0
  49. data/lib/rad/{core_web → web}/_require.rb +13 -4
  50. data/lib/rad/{core_web → web}/_router/abstract_routing_helper.rb +0 -0
  51. data/lib/rad/{core_web → web}/_router/controller_routing_helper.rb +0 -0
  52. data/lib/rad/{core_web → web}/_router/view_routing_helper.rb +0 -0
  53. data/lib/rad.rb +1 -1
  54. data/readme.md +14 -7
  55. data/spec/controller/abstract_spec.rb +2 -2
  56. data/spec/controller/error_handling_spec.rb +1 -1
  57. data/spec/controller/http_spec/views/ViewVariablesSpec/action.erb +2 -0
  58. data/spec/controller/http_spec.rb +18 -1
  59. data/spec/controller/render_spec.rb +13 -13
  60. data/spec/http/http_spec.rb +1 -1
  61. data/spec/http/{micelaneous_spec.rb → miscellaneous_spec.rb} +0 -0
  62. data/spec/router/integration_spec.rb +4 -1
  63. data/spec/router/object_router_spec.rb +1 -1
  64. data/spec/router/persistent_params_spec.rb +1 -1
  65. data/spec/router/restful_router_spec.rb +1 -1
  66. data/spec/web/basic_spec.rb +8 -4
  67. data/spec/web/controller_routing_helper_spec.rb +4 -3
  68. data/spec/web/flash_spec.rb +2 -3
  69. data/spec/web/protect_from_forgery_spec.rb +187 -0
  70. data/spec/web/spec_helper_spec.rb +9 -5
  71. data/spec/web/view_routing_helper_spec.rb +1 -1
  72. metadata +27 -12
@@ -1,6 +1,8 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "Http" do
4
+ with_view_path "#{spec_dir}/views"
5
+
4
6
  isolate :conveyors
5
7
 
6
8
  before do
@@ -18,6 +20,7 @@ describe "Http" do
18
20
  LocationSpec
19
21
  RequestMethod
20
22
  ForbidGetSpec
23
+ ViewVariablesSpec
21
24
  )
22
25
  end
23
26
 
@@ -97,7 +100,7 @@ describe "Http" do
97
100
  class ::RequestMethod
98
101
  inherit Rad::Controller::Http
99
102
  def action
100
- workspace.request.post?.should == true
103
+ request.post?.should == true
101
104
  end
102
105
  end
103
106
 
@@ -121,4 +124,18 @@ describe "Http" do
121
124
  wcall(ForbidGetSpec, :post_action, workspace, {})
122
125
  }.should raise_error(/not allowed/)
123
126
  end
127
+
128
+ it "request and response must be availiable in view" do
129
+ class ::ViewVariablesSpec
130
+ inherit Rad::Controller::Http
131
+
132
+ def action
133
+ @instance_variable = "iv value"
134
+ end
135
+ end
136
+
137
+ wcall(ViewVariablesSpec, :action).should == %(\
138
+ request: true
139
+ response: true)
140
+ end
124
141
  end
@@ -182,19 +182,19 @@ describe "Controller render" do
182
182
  ccall(InlineRenderSpec, :action).should == "content"
183
183
  end
184
184
 
185
- it ":inline option should render without layout" do
186
- class ::InlineWithLayoutSpec
187
- inherit Rad::Controller::Abstract
188
-
189
- layout '/layouts/app'
190
-
191
- def action
192
- render inline: "content"
193
- end
194
- end
195
-
196
- ccall(InlineWithLayoutSpec, :action).should == "content"
197
- end
185
+ # it ":inline option should render without layout" do
186
+ # class ::InlineWithLayoutSpec
187
+ # inherit Rad::Controller::Abstract
188
+ #
189
+ # layout '/layouts/app'
190
+ #
191
+ # def action
192
+ # render inline: "content"
193
+ # end
194
+ # end
195
+ #
196
+ # ccall(InlineWithLayoutSpec, :action).should == "content"
197
+ # end
198
198
 
199
199
  it "should render correct action inside of special 'actions.xxx' template file" do
200
200
  class ::MultipleActions
@@ -17,7 +17,7 @@ describe "Http basics" do
17
17
  it "http call" do
18
18
  workspace = nil
19
19
 
20
- rad.http.call rad.http.mock_environment do |c|
20
+ rad.http.call Rad::Http::Request.stub_environment do |c|
21
21
  c.call
22
22
  workspace = rad.workspace
23
23
  end
@@ -7,7 +7,7 @@ describe "Remote Basic" do
7
7
  end
8
8
  end
9
9
 
10
- isolate :conveyors
10
+ isolate :conveyors, :router
11
11
 
12
12
  after :all do
13
13
  remove_constants %w(AnRemote)
@@ -15,6 +15,9 @@ describe "Remote Basic" do
15
15
 
16
16
  before do
17
17
  rad.conveyors.web.use Rad::Router::Processors::Router, :class_variable, :method_variable
18
+ rad.router.routers = [
19
+ [:simple_router, Rad::Router::SimpleRouter.new]
20
+ ]
18
21
  end
19
22
 
20
23
  def call_router path, params
@@ -133,7 +133,7 @@ describe "ObjectRouter" do
133
133
  end
134
134
  end
135
135
 
136
- describe "micelaneous check" do
136
+ describe "miscellaneous check" do
137
137
  before{@common_options = {default_class_name: 'Blogs'}}
138
138
 
139
139
  # it "should raise if :id and not default class " do
@@ -34,7 +34,7 @@ describe "Persistent Params" do
34
34
  end
35
35
  end
36
36
 
37
- describe "Micelaneous checks" do
37
+ describe "Miscellaneous checks" do
38
38
  it "should not persist special params" do
39
39
  @params.merge! _method: 'get'
40
40
 
@@ -78,7 +78,7 @@ describe "RestfulRouter" do
78
78
  end
79
79
  end
80
80
 
81
- describe "micelaneous check" do
81
+ describe "miscellaneous check" do
82
82
  it "should allow only plural form in resource definition" do
83
83
  lambda{@router.add :blog, class_name: 'BlogController'}.should raise_error(/plural/)
84
84
  @router.add :blogs, class_name: 'BlogController'
@@ -2,10 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  describe "Core" do
4
4
  with_load_path spec_dir
5
- isolate :conveyors, before: :all
5
+ isolate :conveyors, :router, before: :all
6
6
 
7
7
  before :all do
8
- load 'rad/profiles/web.rb'
8
+ rad.web
9
+
10
+ rad.router.routers = [
11
+ [:simple_router, Rad::Router::SimpleRouter.new]
12
+ ]
9
13
  end
10
14
 
11
15
  after :all do
@@ -79,8 +83,8 @@ describe "Core" do
79
83
  def action
80
84
  workspace.should_not == nil
81
85
  workspace.env.should_not == nil
82
- workspace.request.should_not == nil
83
- workspace.request.session.should_not == nil
86
+ request.should_not == nil
87
+ request.session.should_not == nil
84
88
 
85
89
  self.class.request_and_session_passed = true
86
90
 
@@ -1,12 +1,13 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "UrlHelper" do
3
+ describe "UrlHelper" do
4
+ isolate :conveyors, :router, before: :all
5
+
4
6
  before :all do
5
7
  rad.web
6
- rad.reset :conveyors
7
8
 
8
9
  class ControllerStub
9
- inherit Rad::ControllerRoutingHelper, Rad::ControllerMicelaneousHelper
10
+ inherit Rad::ControllerRoutingHelper, Rad::ControllerMiscellaneousHelper
10
11
 
11
12
  def url_for *args
12
13
  args.first
@@ -4,12 +4,11 @@ require 'html/spec_helper'
4
4
  describe "Flash" do
5
5
  with_prepare_params
6
6
 
7
- isolate :conveyors, before: :all
7
+ isolate :conveyors, :router, before: :all
8
8
 
9
9
  before :all do
10
10
  rad.mode = :development, true
11
11
  rad.web
12
- rad.reset :conveyors
13
12
 
14
13
  class MockFlashContext < Rad::MockTemplateContext
15
14
  include Rad::Html::FlashHelper, Rad::ControllerRoutingHelper
@@ -66,7 +65,7 @@ describe "Flash" do
66
65
 
67
66
  def check_flash opt
68
67
  workspace = nil
69
- result = rad.http.call(rad.http.mock_environment, check_flash: opt.to_openobject) do |c|
68
+ result = rad.http.call(Rad::Http::Request.stub_environment, check_flash: opt.to_openobject) do |c|
70
69
  c.call
71
70
  workspace = rad.workspace
72
71
  end
@@ -0,0 +1,187 @@
1
+ require "spec_helper"
2
+
3
+ describe "Forgery protection" do
4
+ with_prepare_params
5
+
6
+ isolate :conveyors, :router, before: :all
7
+
8
+ before :all do
9
+ rad.web
10
+
11
+ class ForgerySpecHelper < Rad::Conveyors::Processor
12
+ def call
13
+ block = workspace.check_forgery.before_request
14
+ block.call workspace if block
15
+ workspace.before_request_done = true
16
+
17
+ next_processor.call
18
+
19
+ block = workspace.check_forgery.after_request
20
+ block.call workspace if block
21
+ workspace.after_request_done = true
22
+ end
23
+ end
24
+
25
+ class ::TheController
26
+ inherit Rad::Controller::Http
27
+
28
+ protect_from_forgery_without_test only: :protected_method
29
+
30
+ def protected_method
31
+ render inline: 'protected result'
32
+ end
33
+
34
+ def method_without_protection
35
+ render inline: 'result'
36
+ end
37
+
38
+ def dumb_method; end
39
+ end
40
+ end
41
+
42
+ after :all do
43
+ remove_constants %w(TheController ForgerySpecHelper)
44
+ end
45
+
46
+ before do
47
+ rad.http.stub(:session).and_return({'key' => 'session_id'})
48
+
49
+ rad.delete :conveyors
50
+ rad.conveyors.web do |web|
51
+ web.use Rad::Http::Processors::PrepareParams
52
+ web.use Rad::Http::Processors::EvaluateFormat
53
+ web.use ForgerySpecHelper
54
+ web.use Rad::Web::Processors::PrepareAutenticityToken
55
+ web.use Rad::Controller::Processors::ControllerCaller
56
+ end
57
+ end
58
+
59
+ def check_forgery opt
60
+ workspace = nil
61
+
62
+ result = rad.http.call(Rad::Http::Request.stub_environment, check_forgery: opt.to_openobject) do |c|
63
+ c.call
64
+ workspace = rad[:workspace]
65
+ end
66
+
67
+ workspace.before_request_done.should be_true
68
+ workspace.after_request_done.should be_true
69
+ workspace
70
+ end
71
+
72
+ it "should set :authenticity_token only for :get and 'html' request" do
73
+ check_forgery(
74
+ before_request: lambda{|workspace|
75
+ workspace.env['REQUEST_METHOD'] = 'GET'
76
+ workspace.env['CONTENT_TYPE'] = 'text/html'
77
+ workspace.class = TheController
78
+ workspace.method_name = :dumb_method
79
+ },
80
+ after_request: lambda{|workspace|
81
+ workspace.request.session['authenticity_token'].should_not be_blank
82
+ }
83
+ )
84
+
85
+ # post
86
+ check_forgery(
87
+ before_request: lambda{|workspace|
88
+ workspace.env['REQUEST_METHOD'] = 'POST'
89
+ workspace.env['CONTENT_TYPE'] = 'text/html'
90
+ workspace.class = TheController
91
+ workspace.method_name = :dumb_method
92
+ },
93
+ after_request: lambda{|workspace|
94
+ workspace.request.session['authenticity_token'].should be_blank
95
+ }
96
+ )
97
+ end
98
+
99
+ it "should check any non :get request with browser's formats for :authenticity_token" do
100
+ lambda{
101
+ check_forgery(
102
+ before_request: lambda{|workspace|
103
+ workspace.env['REQUEST_METHOD'] = 'POST'
104
+ workspace.env['CONTENT_TYPE'] = 'text/html'
105
+ workspace.class = TheController
106
+ workspace.method_name = 'protected_method'
107
+ }
108
+ )
109
+ }.should raise_error(/invalid authenticity token/)
110
+ end
111
+
112
+ it "should pass request with correct authenticity_token" do
113
+ check_forgery(
114
+ before_request: lambda{|workspace|
115
+ workspace.env['REQUEST_METHOD'] = 'POST'
116
+ workspace.env['CONTENT_TYPE'] = 'text/html'
117
+ workspace.request.session['authenticity_token'] = 'secure token'
118
+ workspace.params['authenticity_token'] = 'secure token'
119
+ workspace.class = TheController
120
+ workspace.method_name = 'protected_method'
121
+ },
122
+ after_request: lambda{|workspace|
123
+ workspace.content.should == "protected result"
124
+ }
125
+ )
126
+ end
127
+
128
+ it "should not check request with non-browser content type" do
129
+ check_forgery(
130
+ before_request: lambda{|workspace|
131
+ workspace.env['REQUEST_METHOD'] = 'POST'
132
+ workspace.env['CONTENT_TYPE'] = 'non-browser-format'
133
+ workspace.class = TheController
134
+ workspace.method_name = 'protected_method'
135
+ },
136
+ after_request: lambda{|workspace|
137
+ workspace.content.should == "protected result"
138
+ }
139
+ )
140
+ end
141
+
142
+ # it "should not check request with non-browser format" do
143
+ # check_forgery(
144
+ # before_request: lambda{|workspace|
145
+ # workspace.env['REQUEST_METHOD'] = 'POST'
146
+ # workspace.env['CONTENT_TYPE'] = 'text/html'
147
+ # workspace.params['format'] = 'json'
148
+ # workspace.class = TheController
149
+ # workspace.method_name = 'protected_method'
150
+ # },
151
+ # after_request: lambda{|workspace|
152
+ # workspace.content.should == "protected result"
153
+ # }
154
+ # )
155
+ # end
156
+
157
+ it "should not protect non protected methods" do
158
+ check_forgery(
159
+ before_request: lambda{|workspace|
160
+ workspace.env['REQUEST_METHOD'] = 'POST'
161
+ workspace.env['CONTENT_TYPE'] = 'text/html'
162
+ workspace.class = TheController
163
+ workspace.method_name = 'method_without_protection'
164
+ },
165
+ after_request: lambda{|workspace|
166
+ workspace.content.should == "result"
167
+ }
168
+ )
169
+ end
170
+
171
+ # it "OUTDATED should use :session_authenticity_token from params (for flash support)" do
172
+ # check_forgery(
173
+ # before_request: lambda{|workspace|
174
+ # workspace.env['REQUEST_METHOD'] = 'POST'
175
+ # workspace.params.format = 'text/html'
176
+ # # workspace.params['session_authenticity_token'] = 'secure token'
177
+ # workspace.params['authenticity_token'] = 'secure token'
178
+ # workspace.class = TheController
179
+ # workspace.method_name = 'protected_method'
180
+ # },
181
+ # after_request: lambda{|workspace|
182
+ # workspace.content.should == "protected result"
183
+ # }
184
+ # )
185
+ # end
186
+
187
+ end
@@ -1,12 +1,10 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "spec helper" do
4
- isolate :router, :conveyors
4
+ isolate :conveyors, :router, before: :all
5
5
 
6
6
  before do
7
7
  rad.web
8
- rad.reset :conveyors
9
-
10
8
  load 'rad/profiles/web.rb'
11
9
 
12
10
  class ::Planes
@@ -23,8 +21,14 @@ describe "spec helper" do
23
21
  end
24
22
 
25
23
  describe 'wcall' do
26
- it "basic usage" do
27
- wcall(Planes, :fly).should =~ /all right/
24
+ before do
25
+ rad.router.routers = [
26
+ [:simple_router, Rad::Router::SimpleRouter.new]
27
+ ]
28
+ end
29
+
30
+ it "basic usage" do
31
+ wcall(Planes, :fly).should =~ /all right/
28
32
  wcall('/planes/fly').should =~ /all right/
29
33
  end
30
34
 
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'html/spec_helper'
3
3
 
4
4
  describe "UrlHelper" do
5
- isolate :conveyors
5
+ isolate :conveyors, :router, before: :all
6
6
 
7
7
  before :all do
8
8
  rad.web
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rad_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.26
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-05 00:00:00 +04:00
13
+ date: 2011-07-29 00:00:00 +04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -234,9 +234,11 @@ files:
234
234
  - Rakefile
235
235
  - readme.md
236
236
  - lib/components/config.rb
237
+ - lib/components/configurators.rb
237
238
  - lib/components/controller.rb
238
239
  - lib/components/controller.yml
239
240
  - lib/components/conveyors.rb
241
+ - lib/components/environment.production.yml
240
242
  - lib/components/environment.rb
241
243
  - lib/components/environment.yml
242
244
  - lib/components/flash.rb
@@ -258,7 +260,7 @@ files:
258
260
  - lib/rad/_support/active_support/locales/ru/actionview.yml
259
261
  - lib/rad/_support/active_support/locales/ru/activesupport.yml
260
262
  - lib/rad/_support/active_support/locales/ru/datetime.yml
261
- - lib/rad/_support/active_support/micelaneous.rb
263
+ - lib/rad/_support/active_support/miscellaneous.rb
262
264
  - lib/rad/_support/active_support/time.rb
263
265
  - lib/rad/_support/active_support.rb
264
266
  - lib/rad/_support/addressable.rb
@@ -275,7 +277,12 @@ files:
275
277
  - lib/rad/_support/rson.rb
276
278
  - lib/rad/_support/ruby_ext_with_active_support.rb
277
279
  - lib/rad/_support/string.rb
278
- - lib/rad/controller/_abstract/micelaneous.rb
280
+ - lib/rad/cli/helper.rb
281
+ - lib/rad/configurators/_require.rb
282
+ - lib/rad/configurators/abstract.rb
283
+ - lib/rad/configurators/runtime.rb
284
+ - lib/rad/configurators/web.rb
285
+ - lib/rad/controller/_abstract/miscellaneous.rb
279
286
  - lib/rad/controller/_abstract/render.rb
280
287
  - lib/rad/controller/_abstract/responder.rb
281
288
  - lib/rad/controller/_abstract.rb
@@ -300,11 +307,6 @@ files:
300
307
  - lib/rad/conveyors/processors/conveyor_logger.rb
301
308
  - lib/rad/conveyors/workspace.rb
302
309
  - lib/rad/conveyors.rb
303
- - lib/rad/core_web/_controller_micelaneous_helper.rb
304
- - lib/rad/core_web/_require.rb
305
- - lib/rad/core_web/_router/abstract_routing_helper.rb
306
- - lib/rad/core_web/_router/controller_routing_helper.rb
307
- - lib/rad/core_web/_router/view_routing_helper.rb
308
310
  - lib/rad/environment/_config.rb
309
311
  - lib/rad/environment/_environment.rb
310
312
  - lib/rad/environment/_files_helper.rb
@@ -367,7 +369,7 @@ files:
367
369
  - lib/rad/router/abstract_router.rb
368
370
  - lib/rad/router/alias_router.rb
369
371
  - lib/rad/router/configurator.rb
370
- - lib/rad/router/micelaneous_router.rb
372
+ - lib/rad/router/miscellaneous_router.rb
371
373
  - lib/rad/router/object_router.rb
372
374
  - lib/rad/router/processors/router.rb
373
375
  - lib/rad/router/restful_router.rb
@@ -381,8 +383,10 @@ files:
381
383
  - lib/rad/spec/remote.rb
382
384
  - lib/rad/spec/router.rb
383
385
  - lib/rad/spec/template.rb
386
+ - lib/rad/spec/web.rb
384
387
  - lib/rad/spec/xhtml.rb
385
388
  - lib/rad/spec.rb
389
+ - lib/rad/tasks.rb
386
390
  - lib/rad/template/_context.rb
387
391
  - lib/rad/template/_relative_path_resolver.rb
388
392
  - lib/rad/template/_require.rb
@@ -391,6 +395,14 @@ files:
391
395
  - lib/rad/template/_template.rb
392
396
  - lib/rad/template/template_context.rb
393
397
  - lib/rad/template.rb
398
+ - lib/rad/web/_ajax_helper.rb
399
+ - lib/rad/web/_controller_miscellaneous_helper.rb
400
+ - lib/rad/web/_ensure_no_www.rb
401
+ - lib/rad/web/_protect_from_forgery.rb
402
+ - lib/rad/web/_require.rb
403
+ - lib/rad/web/_router/abstract_routing_helper.rb
404
+ - lib/rad/web/_router/controller_routing_helper.rb
405
+ - lib/rad/web/_router/view_routing_helper.rb
394
406
  - lib/rad.rb
395
407
  - spec/controller/abstract_spec/views/OperationsOrderSpec/action.erb
396
408
  - spec/controller/abstract_spec/views/ViewVariablesSpec/action.erb
@@ -410,6 +422,7 @@ files:
410
422
  - spec/controller/helper_spec/views/HelperMethodSpec/action.erb
411
423
  - spec/controller/helper_spec/views/HelperSpec/action.erb
412
424
  - spec/controller/helper_spec.rb
425
+ - spec/controller/http_spec/views/ViewVariablesSpec/action.erb
413
426
  - spec/controller/http_spec.rb
414
427
  - spec/controller/render_spec/views/already_rendered_spec/action.erb
415
428
  - spec/controller/render_spec/views/already_rendered_spec/custom_template.erb
@@ -452,7 +465,7 @@ files:
452
465
  - spec/html/scoped_params_spec.rb
453
466
  - spec/html/spec_helper.rb
454
467
  - spec/http/http_spec.rb
455
- - spec/http/micelaneous_spec.rb
468
+ - spec/http/miscellaneous_spec.rb
456
469
  - spec/mailer/mail_controller_spec/views/body_template_spec/signup.erb
457
470
  - spec/mailer/mail_controller_spec.rb
458
471
  - spec/mailer/spec_helper.rb
@@ -525,8 +538,10 @@ files:
525
538
  - spec/web/basic_spec.rb
526
539
  - spec/web/controller_routing_helper_spec.rb
527
540
  - spec/web/flash_spec.rb
541
+ - spec/web/protect_from_forgery_spec.rb
528
542
  - spec/web/spec_helper_spec.rb
529
543
  - spec/web/view_routing_helper_spec.rb
544
+ - bin/rad
530
545
  has_rdoc: true
531
546
  homepage: http://github.com/alexeypetrushin/rad_core
532
547
  licenses: []
@@ -554,6 +569,6 @@ rubyforge_project:
554
569
  rubygems_version: 1.5.1
555
570
  signing_key:
556
571
  specification_version: 3
557
- summary: General purposed Web/App Framework
572
+ summary: Simple and highly customizable Web Framework encouraging to build an app as a set of low-coupled components instead of monolith
558
573
  test_files: []
559
574