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.
- data/Rakefile +3 -1
- data/bin/rad +33 -0
- data/lib/components/configurators.rb +5 -0
- data/lib/components/environment.production.yml +1 -0
- data/lib/components/environment.yml +30 -1
- data/lib/components/http.yml +12 -1
- data/lib/components/web.rb +2 -2
- data/lib/rad/_support/active_support/{micelaneous.rb → miscellaneous.rb} +0 -0
- data/lib/rad/_support/active_support.rb +1 -1
- data/lib/rad/_support/exception.rb +9 -40
- data/lib/rad/_support/string.rb +7 -1
- data/lib/rad/cli/helper.rb +34 -0
- data/lib/rad/configurators/_require.rb +13 -0
- data/lib/rad/configurators/abstract.rb +24 -0
- data/lib/rad/configurators/runtime.rb +4 -0
- data/lib/rad/configurators/web.rb +34 -0
- data/lib/rad/controller/_abstract/{micelaneous.rb → miscellaneous.rb} +1 -1
- data/lib/rad/controller/_abstract/render.rb +54 -53
- data/lib/rad/controller/_abstract.rb +16 -8
- data/lib/rad/controller/_context.rb +3 -9
- data/lib/rad/controller/_http.rb +22 -17
- data/lib/rad/controller/_require.rb +1 -1
- data/lib/rad/controller/processors/controller_caller.rb +5 -13
- data/lib/rad/controller/processors/controller_error_handling.rb +2 -2
- data/lib/rad/environment/_environment.rb +4 -0
- data/lib/rad/environment/_logger.rb +5 -5
- data/lib/rad/html/_require.rb +1 -1
- data/lib/rad/http/_http.rb +8 -4
- data/lib/rad/http/_http_adapter.rb +1 -21
- data/lib/rad/http/_request.rb +48 -7
- data/lib/rad/http/_require.rb +1 -1
- data/lib/rad/http/_response.rb +1 -1
- data/lib/rad/http/_support/rack/fixes.rb +6 -0
- data/lib/rad/http/processors/prepare_params.rb +1 -1
- data/lib/rad/mailer/processors/letter_builder.rb +3 -9
- data/lib/rad/profiles/web.rb +35 -10
- data/lib/rad/router/_router.rb +1 -1
- data/lib/rad/router/{micelaneous_router.rb → miscellaneous_router.rb} +0 -0
- data/lib/rad/spec/http_controller.rb +15 -11
- data/lib/rad/spec/web.rb +7 -0
- data/lib/rad/spec.rb +1 -0
- data/lib/rad/tasks.rb +15 -0
- data/lib/rad/template/_context.rb +0 -4
- data/lib/rad/template/_template.rb +1 -1
- data/lib/rad/web/_ajax_helper.rb +16 -0
- data/lib/rad/{core_web/_controller_micelaneous_helper.rb → web/_controller_miscellaneous_helper.rb} +2 -2
- data/lib/rad/web/_ensure_no_www.rb +30 -0
- data/lib/rad/web/_protect_from_forgery.rb +71 -0
- data/lib/rad/{core_web → web}/_require.rb +13 -4
- data/lib/rad/{core_web → web}/_router/abstract_routing_helper.rb +0 -0
- data/lib/rad/{core_web → web}/_router/controller_routing_helper.rb +0 -0
- data/lib/rad/{core_web → web}/_router/view_routing_helper.rb +0 -0
- data/lib/rad.rb +1 -1
- data/readme.md +14 -7
- data/spec/controller/abstract_spec.rb +2 -2
- data/spec/controller/error_handling_spec.rb +1 -1
- data/spec/controller/http_spec/views/ViewVariablesSpec/action.erb +2 -0
- data/spec/controller/http_spec.rb +18 -1
- data/spec/controller/render_spec.rb +13 -13
- data/spec/http/http_spec.rb +1 -1
- data/spec/http/{micelaneous_spec.rb → miscellaneous_spec.rb} +0 -0
- data/spec/router/integration_spec.rb +4 -1
- data/spec/router/object_router_spec.rb +1 -1
- data/spec/router/persistent_params_spec.rb +1 -1
- data/spec/router/restful_router_spec.rb +1 -1
- data/spec/web/basic_spec.rb +8 -4
- data/spec/web/controller_routing_helper_spec.rb +4 -3
- data/spec/web/flash_spec.rb +2 -3
- data/spec/web/protect_from_forgery_spec.rb +187 -0
- data/spec/web/spec_helper_spec.rb +9 -5
- data/spec/web/view_routing_helper_spec.rb +1 -1
- 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
|
-
|
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
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
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
|
data/spec/http/http_spec.rb
CHANGED
File without changes
|
@@ -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
|
@@ -78,7 +78,7 @@ describe "RestfulRouter" do
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
-
describe "
|
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'
|
data/spec/web/basic_spec.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
83
|
-
|
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::
|
10
|
+
inherit Rad::ControllerRoutingHelper, Rad::ControllerMiscellaneousHelper
|
10
11
|
|
11
12
|
def url_for *args
|
12
13
|
args.first
|
data/spec/web/flash_spec.rb
CHANGED
@@ -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(
|
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, :
|
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
|
-
|
27
|
-
|
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
|
|
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.
|
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-
|
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/
|
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/
|
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/
|
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/
|
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:
|
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
|
|