# encoding: utf-8
require 'attr_enumerable/attr_enumerable_helper'

# AttrEnumerable
module AttrEnumerable
  private
    def select_attr(attribute, method_name, *args, &block)
      col = collection
      # count = args.size == 0 ? 1 : Integer(args.first)
      fail ArgumentError, "invalid attribute #{attribute}" unless include_attr?(col.first, attribute)
      attrs = col.map { |e|e.send(attribute) }
      attrs.select { |e| yield(e) }
    end
end
