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.
- 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
|
|