Actions
Feature #8626
openAdd a Set coercion method to the standard lib: Set(possible_set)
Status:
Open
Assignee:
-
Target version:
-
Description
=begin
I'd like to be able to take an object that may already be a Set (or not) and ensure that it is one
For example:
set1 = Set.new
set2 = Set(set1)
set3 = Set(nil)
assert set1.equal?(set2)
assert_instance_of(Set, set3)
This is different from the behavior of Set.new in that it will return the same set rather than creating a new one
set1 = Set.new
set2 = Set.new(set1) # <--- completely new object in memory
set2 = Set(set1) # <--- same object from memory
My thoughts about the implementation are simple:
def Set(possible_set)
possible_set.is_a?(Set) ? possible_set : Set.new(possible_set)
end
I'm not sure if there are edge cases to unexpected behavior that I haven't thought of and I'm wondering if it ought to have a Set.try_convert as well
=end
Updated by saturnflyer (Jim Gay) over 11 years ago
I've created a pull request for MRI here https://github.com/ruby/ruby/pull/359
Updated by saturnflyer (Jim Gay) about 11 years ago
This has been merged into ruby trunk in https://github.com/ruby/ruby/commit/ad78cf4ea8613c7e1790c5e3a2718a35fe32115f
Updated by hsbt (Hiroshi SHIBATA) almost 3 years ago
- Project changed from 14 to Ruby master
Actions
Like0
Like0Like0Like0