rad_core 0.0.25 → 0.0.26

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