mirror of
https://github.com/github/rails.git
synced 2026-04-04 03:00:58 -04:00
Partial revert of 2681685 premature TypeArray abstraction
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
module ActionView #:nodoc:
|
||||
class PathSet < ActiveSupport::TypedArray #:nodoc:
|
||||
class PathSet < Array #:nodoc:
|
||||
def self.type_cast(obj)
|
||||
if obj.is_a?(String)
|
||||
if Base.warn_cache_misses && defined?(Rails) && Rails.initialized?
|
||||
@@ -15,6 +15,30 @@ module ActionView #:nodoc:
|
||||
end
|
||||
end
|
||||
|
||||
def initialize(*args)
|
||||
super(*args).map! { |obj| self.class.type_cast(obj) }
|
||||
end
|
||||
|
||||
def <<(obj)
|
||||
super(self.class.type_cast(obj))
|
||||
end
|
||||
|
||||
def concat(array)
|
||||
super(array.map! { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
|
||||
def insert(index, obj)
|
||||
super(index, self.class.type_cast(obj))
|
||||
end
|
||||
|
||||
def push(*objs)
|
||||
super(*objs.map { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
|
||||
def unshift(*objs)
|
||||
super(*objs.map { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
|
||||
class Path #:nodoc:
|
||||
def self.eager_load_templates!
|
||||
@eager_load_templates = true
|
||||
|
||||
@@ -39,7 +39,6 @@ require 'active_support/cache'
|
||||
require 'active_support/dependencies'
|
||||
require 'active_support/deprecation'
|
||||
|
||||
require 'active_support/typed_array'
|
||||
require 'active_support/ordered_hash'
|
||||
require 'active_support/ordered_options'
|
||||
require 'active_support/option_merger'
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
module ActiveSupport
|
||||
class TypedArray < Array
|
||||
def self.type_cast(obj)
|
||||
obj
|
||||
end
|
||||
|
||||
def initialize(*args)
|
||||
super(*args).map! { |obj| self.class.type_cast(obj) }
|
||||
end
|
||||
|
||||
def <<(obj)
|
||||
super(self.class.type_cast(obj))
|
||||
end
|
||||
|
||||
def concat(array)
|
||||
super(array.map! { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
|
||||
def insert(index, obj)
|
||||
super(index, self.class.type_cast(obj))
|
||||
end
|
||||
|
||||
def push(*objs)
|
||||
super(*objs.map { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
|
||||
def unshift(*objs)
|
||||
super(*objs.map { |obj| self.class.type_cast(obj) })
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,51 +0,0 @@
|
||||
require 'abstract_unit'
|
||||
|
||||
class TypedArrayTest < Test::Unit::TestCase
|
||||
class StringArray < ActiveSupport::TypedArray
|
||||
def self.type_cast(obj)
|
||||
obj.to_s
|
||||
end
|
||||
end
|
||||
|
||||
def setup
|
||||
@array = StringArray.new
|
||||
end
|
||||
|
||||
def test_string_array_initialize
|
||||
assert_equal ["1", "2", "3"], StringArray.new([1, "2", :"3"])
|
||||
end
|
||||
|
||||
def test_string_array_append
|
||||
@array << 1
|
||||
@array << "2"
|
||||
@array << :"3"
|
||||
assert_equal ["1", "2", "3"], @array
|
||||
end
|
||||
|
||||
def test_string_array_concat
|
||||
@array.concat([1, "2"])
|
||||
@array.concat([:"3"])
|
||||
assert_equal ["1", "2", "3"], @array
|
||||
end
|
||||
|
||||
def test_string_array_insert
|
||||
@array.insert(0, 1)
|
||||
@array.insert(1, "2")
|
||||
@array.insert(2, :"3")
|
||||
assert_equal ["1", "2", "3"], @array
|
||||
end
|
||||
|
||||
def test_string_array_push
|
||||
@array.push(1)
|
||||
@array.push("2")
|
||||
@array.push(:"3")
|
||||
assert_equal ["1", "2", "3"], @array
|
||||
end
|
||||
|
||||
def test_string_array_unshift
|
||||
@array.unshift(:"3")
|
||||
@array.unshift("2")
|
||||
@array.unshift(1)
|
||||
assert_equal ["1", "2", "3"], @array
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user