mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
only typecast what we need to typecast
This commit is contained in:
@@ -6,8 +6,7 @@ module ActionView #:nodoc:
|
||||
attr_reader :paths
|
||||
|
||||
def initialize(paths = [])
|
||||
@paths = paths
|
||||
typecast!
|
||||
@paths = typecast paths
|
||||
end
|
||||
|
||||
def initialize_copy(other)
|
||||
@@ -19,10 +18,6 @@ module ActionView #:nodoc:
|
||||
paths.dup
|
||||
end
|
||||
|
||||
def +(array)
|
||||
PathSet.new(paths + array)
|
||||
end
|
||||
|
||||
def include?(item)
|
||||
paths.include? item
|
||||
end
|
||||
@@ -35,19 +30,22 @@ module ActionView #:nodoc:
|
||||
paths.size
|
||||
end
|
||||
|
||||
def each(&block)
|
||||
paths.each(&block)
|
||||
end
|
||||
|
||||
def compact
|
||||
PathSet.new paths.compact
|
||||
end
|
||||
|
||||
def each(&block)
|
||||
paths.each(&block)
|
||||
def +(array)
|
||||
PathSet.new(paths + array)
|
||||
end
|
||||
|
||||
%w(<< concat push insert unshift).each do |method|
|
||||
class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
||||
def #{method}(*args)
|
||||
paths.#{method}(*args)
|
||||
typecast!
|
||||
paths.#{method}(*typecast(args))
|
||||
end
|
||||
METHOD
|
||||
end
|
||||
@@ -73,7 +71,7 @@ module ActionView #:nodoc:
|
||||
|
||||
protected
|
||||
|
||||
def typecast!
|
||||
def typecast(paths)
|
||||
paths.each_with_index do |path, i|
|
||||
path = path.to_s if path.is_a?(Pathname)
|
||||
next unless path.is_a?(String)
|
||||
|
||||
Reference in New Issue
Block a user