Sha256: 7b326975971947c98d694d97162180f33c234ddcf484de05ff47ffac7b074ea2

Contents?: true

Size: 945 Bytes

Versions: 4

Compression:

Stored size: 945 Bytes

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    class Recording
      Recording = Struct.new(:sid, :attributes) do
        def update(attributes)
          self.attributes.merge! attributes

          self
        end
      end

      cattr_accessor :recordings, :sid
      self.recordings = []

      def initialize(sid = nil)
        self.sid = sid || FactoryBot.generate(:recording_sid)
      end

      def create(args = {})
        Recording.new(sid, args).tap do |recording|
          recordings << recording
        end
      end

      def list(attributes = {})
        recordings.select do |recording|
          recording.attributes.slice(*attributes.keys) == attributes
        end
      end

      def fetch
        recordings.detect { |recording| recording.sid == sid }
      end

      def update(attrs = {})
        return fetch.update(attrs) if fetch.present?

        create(attrs)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/fake/recording.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/recording.rb
twilio_base-1.9.0 spec/support/twilio_base/fake/recording.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/recording.rb