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