Sha256: fccf82e06b30879f074444d88304f7b03880e0f6999ea1dcb4d405f228c1d90c

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module Sync
      module Services
        class Document
          cattr_accessor :documents
          self.documents = []

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

          attr_accessor :data, :ttl, :unique_name

          def create(data: {}, ttl: '', unique_name: '')
            document = Document.new(
              data: data,
              ttl: 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.9.0 spec/support/twilio_base/fake/sync/services/document.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/sync/services/document.rb