Sha256: 9f0cf70c96f4ef844b9ba12d83dfe500318ea127f492f991ac0309e55820b739

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module Sync
      module Services
        class Map
          cattr_accessor :maps
          self.maps = {}

          attr_accessor :data, :ttl, :unique_name

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

          def create(data: {}, ttl: '', unique_name: '')
            map = Map.new(
              data: data,
              ttl: ttl,
              unique_name: unique_name
            )
            self.class.maps << map
            map
          end

          def fetch
            matched_map = self.class.maps.detect do |map|
              map.unique_name == unique_name
            end

            raise ArgumentError if matched_map.blank?

            matched_map
          end

          def maps(unique_name = nil)
            Map.new(unique_name || rand(999).to_s)
          end

          def sync_map_items
            Fake::Sync::Services::Maps::Item.new
          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/map.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/sync/services/map.rb