mirror of
https://github.com/kaminari/kaminari.git
synced 2022-11-09 13:44:37 -05:00
Put the monkey-patch in a reusable manner so other kaminari-* gems can use this
This commit is contained in:
parent
b47a7f8b85
commit
aa54fbd73a
2 changed files with 19 additions and 24 deletions
|
@ -0,0 +1,19 @@
|
||||||
|
# Monkey-patching test-unit-rails not to raise NameError from triple-nested sub_test_case
|
||||||
|
ActionView::TestCase.class_eval do
|
||||||
|
class << self
|
||||||
|
def sub_test_case(name, &block)
|
||||||
|
parent_test_case = self
|
||||||
|
sub_test_case = Class.new(self) do
|
||||||
|
singleton_class = class << self; self; end
|
||||||
|
singleton_class.__send__(:define_method, :name) do
|
||||||
|
[parent_test_case.name, name].compact.join("::")
|
||||||
|
end
|
||||||
|
singleton_class.__send__(:define_method, :anonymous?) do
|
||||||
|
true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
sub_test_case.class_eval(&block)
|
||||||
|
sub_test_case
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -22,27 +22,3 @@ require 'test/unit/rails/test_help'
|
||||||
# Requires supporting files with custom matchers and macros, etc,
|
# Requires supporting files with custom matchers and macros, etc,
|
||||||
# in ./support/ and its subdirectories.
|
# in ./support/ and its subdirectories.
|
||||||
Dir["#{File.join(Gem.loaded_specs['kaminari-core'].gem_dir, 'test')}/support/**/*.rb"].each {|f| require f}
|
Dir["#{File.join(Gem.loaded_specs['kaminari-core'].gem_dir, 'test')}/support/**/*.rb"].each {|f| require f}
|
||||||
|
|
||||||
# Monkey-patching test-unit-rails not to raise NameError from triple-nested sub_test_case
|
|
||||||
ActionView::TestCase.class_eval do
|
|
||||||
class << self
|
|
||||||
def sub_test_case(name, &block)
|
|
||||||
parent_test_case = self
|
|
||||||
sub_test_case = Class.new(self) do
|
|
||||||
singleton_class = class << self; self; end
|
|
||||||
singleton_class.__send__(:define_method, :name) do
|
|
||||||
[parent_test_case.name, name].compact.join("::")
|
|
||||||
end
|
|
||||||
singleton_class.__send__(:define_method, :default_helper_module!) do
|
|
||||||
begin
|
|
||||||
super()
|
|
||||||
rescue NameError
|
|
||||||
# Anonymous classes generated via sub_test_case may not always follow Ruby module name convention
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
sub_test_case.class_eval(&block)
|
|
||||||
sub_test_case
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
Loading…
Reference in a new issue