From: owen@... Date: 2018-02-23T12:30:59+00:00 Subject: [ruby-core:85772] [Ruby trunk Feature#14473] Add Range#subrange? Issue #14473 has been updated by owst (Owen Stephens). Good questions duerst. I wonder if I should have stuck with the `subrange` naming rather than `subset`, due to the Numeric behaviour. > What e.g. should be the result of (5..10).subset?(5.5..7.9)? The implementation I have used in my patch is equivalent to: ~~~ ruby (5.5..7.9).cover?((5..10).min) && (5.5..7.9).cover?((5..10).max) ~~~ which is false, but means ~~~ruby (6..7).subset?(5.5..8.5) ~~~ is true as both `(5.5..8.5).cover?(6)` and `(5.5..8.5).cover?(7)` are true. I think this result is what I would expect - what do you think? > Or what if we introduce something like Range.new(1, 10, step: 2), which would produce [1, 3, 5, 7, 9] when converted to an Array? Assuming the implementation in terms of `cover?` (and using the `subrange?` naming) I think this would still make sense: ~~~ruby (2..4).subrange?(Range.new(1, 5, step: 2)) # => true ~~~ ---------------------------------------- Feature #14473: Add Range#subrange? https://bugs.ruby-lang.org/issues/14473#change-70619 * Author: greggzst (Grzegorz Jakubiak) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Hi there, I'd like to propose a method that returns true when a range that the method gets called on is a subrange of a range passed in as an argument. Example: ~~~ ruby (2..4).subrange?(1...4) => true (-2..2).subrange?(-1..3) => false ~~~ ---Files-------------------------------- 0001-range.c-add-subset-superset-methods.patch (8.84 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: