Sha256: c943b0d3ab6baca1cfb4ae8c673cb38ef234884d1eba31e05a384db550092a54

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

require './auth'
class PushApi < DataSiftExample
  def initialize
    super
  end

  def run
    begin
      @params = {:output_type => 'pull'}
      puts 'Validating'
      if @datasift.push.valid? @params
        stream = @datasift.compile 'interaction.content contains "music"'
        subscription = create_push(stream[:data][:hash])

        subscription_id = subscription[:data][:id]
        #pull a bunch of interactions from the push queue - only work if we had set the output_type above to pull
        #pull @datasift.pull subscription_id

        puts 'pullinga'
        @datasift.push.pull(subscription_id).each { |e| puts e }

        sleep 10

        puts 'pullingb'
        @datasift.push.pull(subscription_id).each { |e| puts e }

        sleep 10

        puts 'pullingc'
        #passing a lambda is more efficient because it is executed once for each interaction received
        #this saves having to iterate over the array returned so the same iteration isn't done twice
        @datasift.push.pull(subscription_id,20971520,'', lambda{ |e| puts "on_message => #{e}" })

        puts 'pullingdelete'
        @datasift.push.delete subscription_id
      end
        #rescue DataSiftError
    rescue DataSiftError => dse
      puts dse.inspect
    end
  end

end
PushApi.new().run

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datasift-3.0.0.beta4 examples/pull.rb