lib/lite/ruby/enumerable.rb in lite-ruby-1.0.20 vs lib/lite/ruby/enumerable.rb in lite-ruby-1.0.21

- old
+ new

@@ -63,10 +63,17 @@ def exclude?(object) !include?(object) end + def excluding(*elements) + elements.flatten!(1) + reject { |element| elements.include?(element) } + end + + alias without excluding + def expand map { |val| val.is_a?(Enumerable) ? val.expand : val } end def exponential(identity = 0, &block) @@ -87,10 +94,16 @@ def incase?(object) any? { |val| object === val } end # rubocop:enable Style/CaseEquality + def including(*elements) + to_a.including(*elements) + end + + alias with including + # rubocop:disable Metrics/MethodLength def interpose(sep, &block) enum = Enumerator.new do |val| items = each @@ -162,9 +175,17 @@ end result.values.flatten.uniq end # rubocop:enable Metrics/AbcSize, Metrics/MethodLength + + def pluck(*keys) + if keys.many? + map { |element| keys.map { |key| element[key] } } + else + map { |element| element[keys.first] } + end + end def produce(identity = 0, &block) if block_given? map(&block).produce(identity) else