padrino-core 0.13.2 → 0.13.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/padrino +2 -1
- data/lib/padrino-core/application/flash.rb +1 -1
- data/lib/padrino-core/application/params_protection.rb +1 -7
- data/lib/padrino-core/application/routing.rb +16 -6
- data/lib/padrino-core/cli/base.rb +11 -7
- data/lib/padrino-core/cli/binstub.rb +27 -0
- data/lib/padrino-core/loader.rb +2 -1
- data/lib/padrino-core/path_router.rb +1 -1
- data/lib/padrino-core/path_router/route.rb +2 -2
- data/lib/padrino-core/reloader.rb +8 -2
- data/lib/padrino-core/reloader/storage.rb +1 -1
- data/lib/padrino-core/server.rb +3 -3
- data/lib/padrino-core/version.rb +1 -1
- data/test/fixtures/apps/concerned/app.rb +5 -0
- data/test/fixtures/apps/concerned/models/mixins/badmodule.rb +4 -0
- data/test/fixtures/apps/system.rb +2 -0
- data/test/test_logger.rb +2 -1
- data/test/test_reloader_simple.rb +2 -2
- data/test/test_reloader_storage.rb +52 -0
- data/test/test_reloader_system.rb +16 -0
- data/test/test_routing.rb +10 -0
- metadata +10 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a7babb0beba45716e2ff3af2f78dbc0f6a3e842
|
4
|
+
data.tar.gz: 1a047b4858de0f5c60d42a18289d824cc43b519d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea91c7f77ca7a01beefd69e03288619b142e64696e68ec36b860491dacf18561867b75b3334580841c2c3705b2bfca7bcc834b4834c1d2398402df279bed6549
|
7
|
+
data.tar.gz: dd67394786c89aa8f52584cc933a164e0a221c534de89c2189141797b5d6103abf79c542fe54e6aae55760333185b5de30a9aead6db67f56cef56280fdefa9f0
|
data/bin/padrino
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require '
|
2
|
+
require 'padrino-core/cli/binstub'
|
3
|
+
Padrino.replace_with_binstub('padrino')
|
3
4
|
|
4
5
|
padrino_core_path = File.expand_path('../../lib', __FILE__)
|
5
6
|
$:.unshift(padrino_core_path) if File.directory?(padrino_core_path) && !$:.include?(padrino_core_path)
|
@@ -203,7 +203,7 @@ module Padrino
|
|
203
203
|
# @since 0.10.8
|
204
204
|
# @api public
|
205
205
|
def redirect(url, *args)
|
206
|
-
flashes = args.
|
206
|
+
flashes = args.last.is_a?(Hash) ? args.pop : {}
|
207
207
|
|
208
208
|
flashes.each do |type, message|
|
209
209
|
message = I18n.translate(message) if message.is_a?(Symbol) && defined?(I18n)
|
@@ -1,9 +1,3 @@
|
|
1
|
-
begin
|
2
|
-
require 'active_support/core_ext/object/deep_dup' # AS 4.1
|
3
|
-
rescue LoadError
|
4
|
-
require 'active_support/core_ext/hash/deep_dup' # AS >= 3.1
|
5
|
-
end
|
6
|
-
|
7
1
|
module Padrino
|
8
2
|
##
|
9
3
|
# Padrino application module providing means for mass-assignment protection.
|
@@ -45,7 +39,7 @@ module Padrino
|
|
45
39
|
def params(*allowed_params)
|
46
40
|
allowed_params = prepare_allowed_params(allowed_params)
|
47
41
|
condition do
|
48
|
-
@original_params =
|
42
|
+
@original_params = Utils.deep_dup(params)
|
49
43
|
filter_params!(params, allowed_params)
|
50
44
|
end
|
51
45
|
end
|
@@ -217,10 +217,11 @@ module Padrino
|
|
217
217
|
# @see http://www.padrinorb.com/guides/controllers#route-filters
|
218
218
|
#
|
219
219
|
def construct_filter(*args, &block)
|
220
|
-
options = args.
|
220
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
221
221
|
if except = options.delete(:except)
|
222
222
|
fail "You cannot use :except with other options specified" unless args.empty? && options.empty?
|
223
|
-
|
223
|
+
except = Array(except)
|
224
|
+
options = except.last.is_a?(Hash) ? except.pop : {}
|
224
225
|
end
|
225
226
|
Filter.new(!except, @_controller, options, Array(except || args), &block)
|
226
227
|
end
|
@@ -337,7 +338,7 @@ module Padrino
|
|
337
338
|
# url(:index, :fragment => 'comments')
|
338
339
|
#
|
339
340
|
def url(*args)
|
340
|
-
params = args.
|
341
|
+
params = args.last.is_a?(Hash) ? args.pop : {}
|
341
342
|
fragment = params.delete(:fragment) || params.delete(:anchor)
|
342
343
|
path = make_path_with_params(args, value_to_param(params.symbolize_keys))
|
343
344
|
rebase_url(fragment ? path << '#' << fragment.to_s : path)
|
@@ -401,7 +402,7 @@ module Padrino
|
|
401
402
|
|
402
403
|
# Saves controller options, yields the block, restores controller options.
|
403
404
|
def with_new_options(*args)
|
404
|
-
options = args.
|
405
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
405
406
|
|
406
407
|
CONTROLLER_OPTIONS.each{ |key| replace_instance_variable("@_#{key}", options.delete(key)) }
|
407
408
|
replace_instance_variable(:@_controller, args)
|
@@ -538,7 +539,7 @@ module Padrino
|
|
538
539
|
route.default_values = defaults if defaults
|
539
540
|
end
|
540
541
|
options.delete_if do |option, captures|
|
541
|
-
if route.significant_variable_names.include?(option)
|
542
|
+
if route.significant_variable_names.include?(option.to_s)
|
542
543
|
route.capture[option] = Array(captures).first
|
543
544
|
true
|
544
545
|
end
|
@@ -579,6 +580,7 @@ module Padrino
|
|
579
580
|
# controllers, parents, 'with' parameters, and other options.
|
580
581
|
#
|
581
582
|
def parse_route(path, options, verb)
|
583
|
+
path = path.dup if path.kind_of?(String)
|
582
584
|
route_options = {}
|
583
585
|
|
584
586
|
if options[:params] == true
|
@@ -926,6 +928,10 @@ module Padrino
|
|
926
928
|
end
|
927
929
|
|
928
930
|
def dispatch!
|
931
|
+
unless @params
|
932
|
+
@params = indifferent_params(@request.params)
|
933
|
+
force_encoding(@params)
|
934
|
+
end
|
929
935
|
invoke do
|
930
936
|
static! if settings.static? && (request.get? || request.head?)
|
931
937
|
route!
|
@@ -977,7 +983,11 @@ module Padrino
|
|
977
983
|
@route = request.route_obj = route
|
978
984
|
captured_params = captures_from_params(params)
|
979
985
|
|
980
|
-
|
986
|
+
# Should not overwrite params by given query
|
987
|
+
@params.merge!(params) do |key, original, newval|
|
988
|
+
@route.significant_variable_names.include?(key) ? newval : original
|
989
|
+
end unless params.empty?
|
990
|
+
|
981
991
|
@params[:format] = params[:format] if params[:format]
|
982
992
|
@params[:captures] = captured_params if !captured_params.empty? && route.path.is_a?(Regexp)
|
983
993
|
|
@@ -28,16 +28,20 @@ module Padrino
|
|
28
28
|
def console(*args)
|
29
29
|
prepare :console
|
30
30
|
require File.expand_path("../../version", __FILE__)
|
31
|
-
ARGV.clear
|
32
|
-
require 'irb'
|
33
|
-
begin
|
34
|
-
require "irb/completion"
|
35
|
-
rescue LoadError
|
36
|
-
end
|
37
31
|
require File.expand_path('config/boot.rb')
|
38
32
|
puts "=> Loading #{Padrino.env} console (Padrino v.#{Padrino.version})"
|
39
33
|
require File.expand_path('../console', __FILE__)
|
40
|
-
|
34
|
+
ARGV.clear
|
35
|
+
if defined? Pry
|
36
|
+
Pry.start
|
37
|
+
else
|
38
|
+
require 'irb'
|
39
|
+
begin
|
40
|
+
require "irb/completion"
|
41
|
+
rescue LoadError
|
42
|
+
end
|
43
|
+
IRB.start
|
44
|
+
end
|
41
45
|
end
|
42
46
|
|
43
47
|
desc "generate", "Executes the Padrino generator with given options (alternatively use 'gen' or 'g')."
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Padrino
|
2
|
+
##
|
3
|
+
# Replaces the current process with it's binstub.
|
4
|
+
#
|
5
|
+
def self.replace_with_binstub(executable)
|
6
|
+
begin
|
7
|
+
return if Bundler.definition.missing_specs.empty?
|
8
|
+
rescue NameError, NoMethodError
|
9
|
+
end
|
10
|
+
|
11
|
+
project_root = Dir.pwd
|
12
|
+
until project_root.empty?
|
13
|
+
break if File.file?(File.join(project_root, 'Gemfile'))
|
14
|
+
project_root = project_root.rpartition('/').first
|
15
|
+
end
|
16
|
+
|
17
|
+
if %w(Gemfile .components).all? { |file| File.file?(File.join(project_root, file)) }
|
18
|
+
binstub = File.join(project_root, 'bin', executable)
|
19
|
+
if File.file?(binstub)
|
20
|
+
exec Gem.ruby, binstub, *ARGV
|
21
|
+
else
|
22
|
+
puts 'Please run `bundler install --binstubs` from your project root to generate bundle-specific executables'
|
23
|
+
exit!
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/padrino-core/loader.rb
CHANGED
@@ -143,7 +143,8 @@ module Padrino
|
|
143
143
|
# require_dependencies("#{Padrino.root}/lib/**/*.rb")
|
144
144
|
#
|
145
145
|
def require_dependencies(*paths)
|
146
|
-
options = paths.
|
146
|
+
options = (paths.last.is_a?(Hash) ? paths.pop : {}).merge( :cyclic => true )
|
147
|
+
|
147
148
|
files = paths.flatten.flat_map{ |path| Dir.glob(path).sort_by{ |filename| filename.count('/') } }.uniq
|
148
149
|
|
149
150
|
until files.empty?
|
@@ -55,7 +55,7 @@ module Padrino
|
|
55
55
|
# Finds a path which is matched with conditions from arguments
|
56
56
|
#
|
57
57
|
def path(name, *args)
|
58
|
-
params = args.
|
58
|
+
params = args.last.is_a?(Hash) ? args.pop : {}
|
59
59
|
candidates = @routes.select { |route| route.name == name }
|
60
60
|
fail InvalidRouteException if candidates.empty?
|
61
61
|
route = candidates.sort_by! { |route|
|
@@ -63,9 +63,9 @@ module Padrino
|
|
63
63
|
def significant_variable_names
|
64
64
|
@significant_variable_names ||=
|
65
65
|
if @path.is_a?(String)
|
66
|
-
@path.scan(SIGNIFICANT_VARIABLES_REGEX).map
|
66
|
+
@path.scan(SIGNIFICANT_VARIABLES_REGEX).map(&:last)
|
67
67
|
elsif @path.is_a?(Regexp) and @path.respond_to?(:named_captures)
|
68
|
-
@path.named_captures.keys
|
68
|
+
@path.named_captures.keys
|
69
69
|
else
|
70
70
|
[]
|
71
71
|
end
|
@@ -74,7 +74,7 @@ module Padrino
|
|
74
74
|
#
|
75
75
|
def lock!
|
76
76
|
klasses = Storage.send(:object_classes) do |klass|
|
77
|
-
original_klass_name = klass
|
77
|
+
original_klass_name = constant_name(klass)
|
78
78
|
original_klass_name.split('::').first if original_klass_name
|
79
79
|
end
|
80
80
|
klasses |= Padrino.mounted_apps.map(&:app_class)
|
@@ -244,7 +244,7 @@ module Padrino
|
|
244
244
|
# Tells if a constant should be excluded from Reloader routines.
|
245
245
|
#
|
246
246
|
def constant_excluded?(const)
|
247
|
-
external_constant?(const) || (exclude_constants - include_constants).any?{ |excluded_constant| const.
|
247
|
+
external_constant?(const) || (exclude_constants - include_constants).any?{ |excluded_constant| constant_name(const).start_with?(excluded_constant) }
|
248
248
|
end
|
249
249
|
|
250
250
|
##
|
@@ -310,5 +310,11 @@ module Padrino
|
|
310
310
|
ensure
|
311
311
|
$-v = verbosity_level
|
312
312
|
end
|
313
|
+
|
314
|
+
def constant_name(constant)
|
315
|
+
constant._orig_klass_name
|
316
|
+
rescue NoMethodError
|
317
|
+
constant.name
|
318
|
+
end
|
313
319
|
end
|
314
320
|
end
|
data/lib/padrino-core/server.rb
CHANGED
@@ -110,9 +110,9 @@ module Padrino
|
|
110
110
|
# Detects Host and Port for Rack server.
|
111
111
|
#
|
112
112
|
def self.detect_address(options)
|
113
|
-
address = DEFAULT_ADDRESS.merge options.
|
114
|
-
address[:Host] = options[:host] if options[:host]
|
115
|
-
address[:Port] = options[:port] if options[:port]
|
113
|
+
address = DEFAULT_ADDRESS.merge options.select{ |key| [:Host, :Port].include?(key) }
|
114
|
+
address[:Host] = options[:host] if options[:host]
|
115
|
+
address[:Port] = options[:port] if options[:port]
|
116
116
|
address
|
117
117
|
end
|
118
118
|
end
|
data/lib/padrino-core/version.rb
CHANGED
data/test/test_logger.rb
CHANGED
@@ -102,7 +102,8 @@ describe "PadrinoLogger" do
|
|
102
102
|
@logger.error binary_data
|
103
103
|
@logger.error utf8_data
|
104
104
|
@logger.flush
|
105
|
-
|
105
|
+
assert @log.string.force_encoding(encoding).include?("?\n".encode(encoding))
|
106
|
+
assert @log.string.force_encoding(encoding).include?(utf8_data.encode(encoding))
|
106
107
|
end
|
107
108
|
|
108
109
|
it 'should log an application' do
|
@@ -80,7 +80,7 @@ describe "SimpleReloader" do
|
|
80
80
|
assert ok?
|
81
81
|
last_body = body
|
82
82
|
assert_equal 1, @app.filters[:before].size
|
83
|
-
assert_equal
|
83
|
+
assert_equal 0, @app.errors.reject{ |key, _| [404, Sinatra::NotFound].include? key }.size
|
84
84
|
assert_equal 2, @app.filters[:after].size # app + content-type + padrino-flash
|
85
85
|
assert_equal 0, @app.middleware.size
|
86
86
|
assert_equal 4, @app.routes.size # GET+HEAD of "/" + GET+HEAD of "/rand" = 4
|
@@ -90,7 +90,7 @@ describe "SimpleReloader" do
|
|
90
90
|
get "/rand"
|
91
91
|
refute_equal last_body, body
|
92
92
|
assert_equal 1, @app.filters[:before].size
|
93
|
-
assert_equal
|
93
|
+
assert_equal 0, @app.errors.reject{ |key, _| [404, Sinatra::NotFound].include? key }.size
|
94
94
|
assert_equal 2, @app.filters[:after].size
|
95
95
|
assert_equal 0, @app.middleware.size
|
96
96
|
assert_equal 4, @app.routes.size # GET+HEAD of "/" = 2
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
2
|
+
|
3
|
+
describe "Padrino::Reloader::Storage" do
|
4
|
+
describe "#classes" do
|
5
|
+
it 'should take an snapshot of the current loaded classes' do
|
6
|
+
snapshot = Padrino::Reloader::Storage.send(:object_classes)
|
7
|
+
assert_equal snapshot.include?(Padrino::Logger), true
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should return a Set object' do
|
11
|
+
snapshot = Padrino::Reloader::Storage.send(:object_classes)
|
12
|
+
assert_equal snapshot.kind_of?(Set), true
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should be able to process a the class name given a block' do
|
16
|
+
klasses = Padrino::Reloader::Storage.send(:object_classes) do |klass|
|
17
|
+
next unless klass.respond_to?(:name) # fix JRuby < 1.7.22
|
18
|
+
if klass.name =~ /^Padrino::/
|
19
|
+
klass
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
assert_equal (klasses.size > 1), true
|
24
|
+
klasses.each do |klass|
|
25
|
+
assert_match /^Padrino::/, klass.to_s
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#new_classes" do
|
31
|
+
before do
|
32
|
+
@snapshot = Padrino::Reloader::Storage.send(:object_classes)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should return list of new classes' do
|
36
|
+
skip
|
37
|
+
class OSTest; end
|
38
|
+
module OSTestModule; class B; end; end
|
39
|
+
|
40
|
+
new_classes = Padrino::Reloader::Storage.send(:new_classes, @snapshot)
|
41
|
+
|
42
|
+
assert_equal new_classes.size, 3
|
43
|
+
assert_equal new_classes.include?(OSTest), true
|
44
|
+
assert_equal new_classes.include?(OSTestModule::B), true
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should return a Set object' do
|
48
|
+
new_classes = Padrino::Reloader::Storage.send(:new_classes, @snapshot)
|
49
|
+
assert_equal new_classes.kind_of?(Set), true
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -140,4 +140,20 @@ describe "SystemReloader" do
|
|
140
140
|
assert Padrino::Reloader.changed?, 'Change to custom dependency has not been recognised'
|
141
141
|
end
|
142
142
|
end
|
143
|
+
|
144
|
+
describe 'reloading module constants' do
|
145
|
+
it 'should remove constants of misdesigned modules' do
|
146
|
+
skip
|
147
|
+
Padrino.clear!
|
148
|
+
require File.expand_path(File.dirname(__FILE__) + '/fixtures/apps/concerned/app.rb')
|
149
|
+
@app = SystemConcernedClassDemo
|
150
|
+
Padrino.mount(SystemConcernedClassDemo).to("/")
|
151
|
+
get '/'
|
152
|
+
|
153
|
+
original_value = BadModule.instance_variable_get(:@happy_global_variable)
|
154
|
+
FileUtils.touch File.dirname(__FILE__) + '/fixtures/apps/concerned/models/mixins/badmodule.rb'
|
155
|
+
Padrino.reload!
|
156
|
+
assert_equal original_value, BadModule.instance_variable_get(:@happy_global_variable)
|
157
|
+
end
|
158
|
+
end
|
143
159
|
end
|
data/test/test_routing.rb
CHANGED
@@ -2403,4 +2403,14 @@ describe "Routing" do
|
|
2403
2403
|
get '/update/1?product[title]=test'
|
2404
2404
|
assert_equal 'test==test', body
|
2405
2405
|
end
|
2406
|
+
|
2407
|
+
it "prevent overwriting params by given query" do
|
2408
|
+
mock_app do
|
2409
|
+
get '/prohibit/:id' do
|
2410
|
+
params[:id]
|
2411
|
+
end
|
2412
|
+
end
|
2413
|
+
get '/prohibit/123?id=456'
|
2414
|
+
assert_equal '123', body
|
2415
|
+
end
|
2406
2416
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: padrino-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Padrino Team
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-08-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: padrino-support
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.13.
|
22
|
+
version: 0.13.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.13.
|
29
|
+
version: 0.13.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: sinatra
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- lib/padrino-core/caller.rb
|
124
124
|
- lib/padrino-core/cli/adapter.rb
|
125
125
|
- lib/padrino-core/cli/base.rb
|
126
|
+
- lib/padrino-core/cli/binstub.rb
|
126
127
|
- lib/padrino-core/cli/console.rb
|
127
128
|
- lib/padrino-core/cli/launcher.rb
|
128
129
|
- lib/padrino-core/cli/rake.rb
|
@@ -157,6 +158,8 @@ files:
|
|
157
158
|
- test/fixtures/app_gem/lib/app_gem.rb
|
158
159
|
- test/fixtures/app_gem/lib/app_gem/version.rb
|
159
160
|
- test/fixtures/apps/complex.rb
|
161
|
+
- test/fixtures/apps/concerned/app.rb
|
162
|
+
- test/fixtures/apps/concerned/models/mixins/badmodule.rb
|
160
163
|
- test/fixtures/apps/custom_dependencies/custom_dependencies.rb
|
161
164
|
- test/fixtures/apps/custom_dependencies/my_dependencies/my_dependency.rb
|
162
165
|
- test/fixtures/apps/demo_app.rb
|
@@ -209,6 +212,7 @@ files:
|
|
209
212
|
- test/test_reloader_complex.rb
|
210
213
|
- test/test_reloader_external.rb
|
211
214
|
- test/test_reloader_simple.rb
|
215
|
+
- test/test_reloader_storage.rb
|
212
216
|
- test/test_reloader_system.rb
|
213
217
|
- test/test_restful_routing.rb
|
214
218
|
- test/test_router.rb
|
@@ -234,71 +238,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
238
|
version: 1.3.6
|
235
239
|
requirements: []
|
236
240
|
rubyforge_project: padrino-core
|
237
|
-
rubygems_version: 2.4
|
241
|
+
rubygems_version: 2.6.4
|
238
242
|
signing_key:
|
239
243
|
specification_version: 4
|
240
244
|
summary: The required Padrino core gem
|
241
|
-
test_files:
|
242
|
-
- test/fixtures/app_gem/Gemfile
|
243
|
-
- test/fixtures/app_gem/app/app.rb
|
244
|
-
- test/fixtures/app_gem/app_gem.gemspec
|
245
|
-
- test/fixtures/app_gem/lib/app_gem.rb
|
246
|
-
- test/fixtures/app_gem/lib/app_gem/version.rb
|
247
|
-
- test/fixtures/apps/complex.rb
|
248
|
-
- test/fixtures/apps/custom_dependencies/custom_dependencies.rb
|
249
|
-
- test/fixtures/apps/custom_dependencies/my_dependencies/my_dependency.rb
|
250
|
-
- test/fixtures/apps/demo_app.rb
|
251
|
-
- test/fixtures/apps/demo_demo.rb
|
252
|
-
- test/fixtures/apps/demo_project/api/app.rb
|
253
|
-
- test/fixtures/apps/demo_project/api/lib/api_lib.rb
|
254
|
-
- test/fixtures/apps/demo_project/app.rb
|
255
|
-
- test/fixtures/apps/external_apps/fake_lib.rb
|
256
|
-
- test/fixtures/apps/external_apps/fake_root.rb
|
257
|
-
- test/fixtures/apps/helpers/class_methods_helpers.rb
|
258
|
-
- test/fixtures/apps/helpers/instance_methods_helpers.rb
|
259
|
-
- test/fixtures/apps/helpers/system_helpers.rb
|
260
|
-
- test/fixtures/apps/kiq.rb
|
261
|
-
- test/fixtures/apps/lib/myklass.rb
|
262
|
-
- test/fixtures/apps/lib/myklass/mysubklass.rb
|
263
|
-
- test/fixtures/apps/models/child.rb
|
264
|
-
- test/fixtures/apps/models/parent.rb
|
265
|
-
- test/fixtures/apps/mountable_apps/rack_apps.rb
|
266
|
-
- test/fixtures/apps/mountable_apps/static.html
|
267
|
-
- test/fixtures/apps/precompiled_app.rb
|
268
|
-
- test/fixtures/apps/simple.rb
|
269
|
-
- test/fixtures/apps/static.rb
|
270
|
-
- test/fixtures/apps/stealthy/app.rb
|
271
|
-
- test/fixtures/apps/stealthy/helpers/stealthy_class_helpers.rb
|
272
|
-
- test/fixtures/apps/system.rb
|
273
|
-
- test/fixtures/apps/system_class_methods_demo.rb
|
274
|
-
- test/fixtures/apps/system_instance_methods_demo.rb
|
275
|
-
- test/fixtures/dependencies/a.rb
|
276
|
-
- test/fixtures/dependencies/b.rb
|
277
|
-
- test/fixtures/dependencies/c.rb
|
278
|
-
- test/fixtures/dependencies/circular/e.rb
|
279
|
-
- test/fixtures/dependencies/circular/f.rb
|
280
|
-
- test/fixtures/dependencies/circular/g.rb
|
281
|
-
- test/fixtures/dependencies/d.rb
|
282
|
-
- test/fixtures/reloadable_apps/external/app/app.rb
|
283
|
-
- test/fixtures/reloadable_apps/external/app/controllers/base.rb
|
284
|
-
- test/fixtures/reloadable_apps/main/app.rb
|
285
|
-
- test/helper.rb
|
286
|
-
- test/test_application.rb
|
287
|
-
- test/test_configuration.rb
|
288
|
-
- test/test_core.rb
|
289
|
-
- test/test_csrf_protection.rb
|
290
|
-
- test/test_dependencies.rb
|
291
|
-
- test/test_filters.rb
|
292
|
-
- test/test_flash.rb
|
293
|
-
- test/test_locale.rb
|
294
|
-
- test/test_logger.rb
|
295
|
-
- test/test_mounter.rb
|
296
|
-
- test/test_params_protection.rb
|
297
|
-
- test/test_reloader_complex.rb
|
298
|
-
- test/test_reloader_external.rb
|
299
|
-
- test/test_reloader_simple.rb
|
300
|
-
- test/test_reloader_system.rb
|
301
|
-
- test/test_restful_routing.rb
|
302
|
-
- test/test_router.rb
|
303
|
-
- test/test_routing.rb
|
304
|
-
has_rdoc:
|
245
|
+
test_files: []
|