Sha256: 89afc6a6973fec439fdbc35d9404ebb56c770cbf5c732131d684636f3d7a3cdb

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module Sync
      module Services
        class Document
          attr_accessor :data, :date_expires, :unique_name

          cattr_accessor :documents
          self.documents = []

          def initialize(data: {}, date_expires: '', unique_name: '')
            self.data = data
            self.date_expires = date_expires
            self.unique_name = unique_name
          end

          def create(data: {}, ttl: 0, unique_name: '')
            document = Document.new(
              data: data,
              date_expires: Time.current + ttl,
              unique_name: unique_name
            )
            self.class.documents << document
            document
          end

          def fetch
            matched_document = self.class.documents.detect do |document|
              document.unique_name == unique_name
            end

            raise ArgumentError if matched_document.blank?

            matched_document
          end

          def documents(unique_name = nil)
            Document.new(unique_name || rand(999).to_s)
          end

          def update(params)
            params[:data]
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.11.1101 spec/support/twilio_base/fake/sync/services/document.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/sync/services/document.rb