Sha256: ab7c57545d7845ec2961993ff13b3ab9bfd5ba2dbc664decba765e60700879a1

Contents?: true

Size: 821 Bytes

Versions: 3

Compression:

Stored size: 821 Bytes

Contents

require 'parallel'

module TwitterFriendly
  module REST
    module Users
      def verify_credentials(options = {})
        @twitter.verify_credentials({skip_status: true}.merge(options))&.to_hash
      end

      def user?(*args)
        @twitter.user?(*args)
      end

      def user(*args)
        @twitter.user(*args)&.to_hash
      end

      MAX_USERS_PER_REQUEST = 100

      def users(values, options = {})
        if values.size <= MAX_USERS_PER_REQUEST
          @twitter.users(values, options)
        else
          parallel(in_threads: 10) do |batch|
            values.each_slice(MAX_USERS_PER_REQUEST) { |targets| batch.users(targets, options) }
          end.flatten
        end
      end

      def blocked_ids(*args)
        @twitter.blocked_ids(*args)&.attrs&.fetch(:ids)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
twitter_friendly-1.2.0 lib/twitter_friendly/rest/users.rb
twitter_friendly-1.1.0 lib/twitter_friendly/rest/users.rb
twitter_friendly-1.0.0 lib/twitter_friendly/rest/users.rb