Revision ab0cc0a1
Added by Marek Hulán over 8 years ago
app/helpers/filters_helper_overrides.rb | ||
---|---|---|
end
|
||
|
||
def self.can_override?(class_or_engine_name)
|
||
@@overrides.include?(class_or_engine_name.deconstantize)
|
||
@@overrides.include?(deconstantize_name(class_or_engine_name))
|
||
end
|
||
|
||
def self.search_path(class_or_engine_name)
|
||
@@overrides[class_or_engine_name.deconstantize].call(class_or_engine_name)
|
||
@@overrides[deconstantize_name(class_or_engine_name)].call(class_or_engine_name)
|
||
end
|
||
|
||
private
|
||
|
||
def self.deconstantize_name(name)
|
||
name.include?('::') ? name.deconstantize : name
|
||
end
|
||
|
||
def initialize; end
|
||
end
|
test/unit/helpers/filters_helper_test.rb | ||
---|---|---|
FiltersHelperOverrides.override_search_path("TestOverride", ->(resource) { 'test_override/auto_complete_search' } )
|
||
assert_equal "test_override/auto_complete_search", search_path('TestOverride::Resource')
|
||
end
|
||
|
||
def test_no_deconstantization_if_there_is_no_namespace
|
||
FiltersHelperOverrides.override_search_path("TestOverride", ->(resource) { 'test_override/auto_complete_search' } )
|
||
assert_equal "test_override/auto_complete_search", search_path('TestOverride')
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #12827 - deconstantize resource only when needed