Sha256: 108867d0496986aec756e173534dcef4d0f7fce0fa8bb3596257e2a42bc40586

Contents?: true

Size: 794 Bytes

Versions: 8

Compression:

Stored size: 794 Bytes

Contents

module Ruboty
  module Ragoon
    class Remind
      include NotifyOnce
      attr_reader :brain, :event

      NOTIFY_BEFORE_EVENT_START = 3 # minutes before start_at

      def initialize(brain)
        @brain = brain
      end

      def retrieve
        now = Time.now.localtime

        @event = Event.new
        @event.filter_events do |event|
          begin
            event_start = Time.parse(event[:start_at]).localtime
            event_start.between?(now, now + NOTIFY_BEFORE_EVENT_START * 60)
          rescue
            false
          end
        end

        new_event_ids = not_notified_ids(@event.events.map { |event| event[:id] })
        @event.filter_events do |event|
          new_event_ids.include?(event[:id])
        end

        @event
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ruboty-ragoon-1.1.0 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-1.0.0 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.8.1 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.8.0 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.7.0 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.6.1 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.6.0 lib/ruboty/ragoon/remind.rb
ruboty-ragoon-0.5.2 lib/ruboty/ragoon/remind.rb