Sha256: 722041fcd67dafbea2404376897670bb390f11103df4ea8dc826d53c7e641d78

Contents?: true

Size: 1.66 KB

Versions: 4

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module Sync
      class Service
        Service = Struct.new(:friendly_name) do
          def sid
            @sid ||= FactoryBot.generate(:sync_service_sid)
          end

          def create(friendly_name: '')
            self.friendly_name = friendly_name
          end

          def documents
            Fake::Sync::Services::Document.new
          end

          def sync_lists
            Fake::Sync::Services::List.new
          end

          def sync_maps
            Fake::Sync::Services::Map.new
          end
        end

        cattr_accessor :services
        self.services = []

        def initialize(sid = nil)
          self.sid = sid
        end

        def create(friendly_name: '')
          service = Service.new(
            friendly_name: friendly_name
          )
          self.class.services << service
          service
        end

        def services(unique_name = nil)
          Service.new(unique_name || rand(999).to_s)
        end

        def documents(document_unique_name = nil)
          Fake::Sync::Services::Document.new(unique_name: document_unique_name)
        end

        def sync_lists(list_unique_name = nil)
          Fake::Sync::Services::List.new(unique_name: list_unique_name)
        end

        def sync_maps(map_unique_name = nil)
          Fake::Sync::Services::Map.new(unique_name: map_unique_name)
        end

        def v1
          self
        end

        private

        attr_accessor :sid

        def method_missing(_name)
          self || super
        end

        def respond_to_missing?(method_name)
          super
        end
      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/sync/service.rb
twilio_base-1.11.11 spec/support/twilio_base/fake/sync/service.rb
twilio_base-1.9.0 spec/support/twilio_base/fake/sync/service.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/sync/service.rb