common-data-caching 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/README.md +88 -0
 - data/lib/common-data-caching.rb +1 -0
 - data/lib/common_data_caching/callbacks.rb +27 -0
 - data/lib/common_data_caching/capistrano/tasks/common_data_caching.rake +12 -0
 - data/lib/common_data_caching/capistrano.rb +1 -0
 - data/lib/common_data_caching/class_methods.rb +46 -0
 - data/lib/common_data_caching/rake_tasks.rb +24 -0
 - data/lib/common_data_caching.rb +33 -0
 - metadata +65 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 3807a5c6b09ddd98dfcb3b476defd965be5b6c158577c212284eb2f1521197e3
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 6a715c0d8a1f00ed3efab75ad5b4f5fba86d346804e0dc8aab776df35363f002
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: d5a7cedbb2265e339fb3b022fdd54b37b878a0c3bb16d873a3b84bdc5394f993e07a42ed13055c5d2fb9e3e07f13f4ba2ff24931871dffdc75b9b80b31550d90
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e9d850897b225c517d8edea7f939d3359f7cb0297ee26e42efc205ab58f81e1c58966df858a8714922f67fd929d23cc096ccf9727c0b6e2ae3dd86e80f5609d5
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,88 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Common Data Caching
         
     | 
| 
      
 2 
     | 
    
         
            +
            [](https://badge.fury.io/rb/common-data-caching)
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            Гем для кеширования общих данных Rails.
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Часто в проектах Rails приходится формировать списки объектов для их дальнейшей обработки фронтендом (например отображение опций в селектах).
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Подобные коллекции могут вызываться очень часто. И, чтобы не нагружать БД, лучше их кешировать.
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            Этот гем предназначен для простого кеширования необходимых данных и получения готовых кешированных коллекций.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            ## Установка
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            Добавить в Gemfile
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 17 
     | 
    
         
            +
            gem 'common-data-caching'
         
     | 
| 
      
 18 
     | 
    
         
            +
            ```
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            И выполнить:
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 23 
     | 
    
         
            +
            bundle
         
     | 
| 
      
 24 
     | 
    
         
            +
            ```
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            ## Использование
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
            Добавьте вызов `common_cache` на моделях, передав обязательную опцию `attrs` со списком атрибутов, которые должны быть в закешированной коллекции (`id` будет добавлен по умолчанию, добавлять его не обязательно):
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 31 
     | 
    
         
            +
            class User < ActiveRecord::Base
         
     | 
| 
      
 32 
     | 
    
         
            +
              common_cache attrs: %i[email name]
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
      
 34 
     | 
    
         
            +
            ```
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            Коллекция кеша будет обновляться после каждого изменения записи модели - создании, обновлении, удалении.
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            Для получения коллекции кеша общих данных вызовите метод `common_data_cache_collection`:
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 41 
     | 
    
         
            +
            User.common_data_cache_collection
         
     | 
| 
      
 42 
     | 
    
         
            +
            ```
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            ### Сортировка
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            Для применения сортировки, передайте опцию `order`:
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 49 
     | 
    
         
            +
            class User < ActiveRecord::Base
         
     | 
| 
      
 50 
     | 
    
         
            +
              common_cache attrs: %i[email name],
         
     | 
| 
      
 51 
     | 
    
         
            +
                           order: 'name desc'
         
     | 
| 
      
 52 
     | 
    
         
            +
            end
         
     | 
| 
      
 53 
     | 
    
         
            +
            ```
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            Значение опции `order` должно соответствовать тем же значениям, которые принимает метод `.order` ActiveRecord.
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
            По умолчанию, сортировка осуществляется по `id` в направлении `ASC`, до тех пор пока не будет передан `order`.
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            ### Фильтрация
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
            Для применения фильтрации/ограничений записей, из которых будет сформирована закешированная коллекция, передайте опцию `scope`:
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 64 
     | 
    
         
            +
            class User < ActiveRecord::Base
         
     | 
| 
      
 65 
     | 
    
         
            +
              common_cache attrs: %i[email name],
         
     | 
| 
      
 66 
     | 
    
         
            +
                           scope: proc { where(role: 'admin') }
         
     | 
| 
      
 67 
     | 
    
         
            +
            end
         
     | 
| 
      
 68 
     | 
    
         
            +
            ```
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            Значение опции `scope` должно быть условием `where` ActiveRecord, Rails скоупом или их последовательностью, которые необходимо обернуть в `proc`.
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
            По умолчанию, фильтрация не применяется, до тех пор пока не будет передан `scope`.
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
            ## Массовое обновление коллекций
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
            Для массового обновления всех коллекций воспользутесь Rake таском:
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 79 
     | 
    
         
            +
            rake common_data_caching:update
         
     | 
| 
      
 80 
     | 
    
         
            +
            ```
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
            ## Capistrano
         
     | 
| 
      
 83 
     | 
    
         
            +
             
     | 
| 
      
 84 
     | 
    
         
            +
            Для обновления кеша общих данных при каждом деплое с помощью Capistrano добавьте в Capfile:
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
            ```ruby
         
     | 
| 
      
 87 
     | 
    
         
            +
            require 'common_data_caching/capistrano'
         
     | 
| 
      
 88 
     | 
    
         
            +
            ```
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'common_data_caching'
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CommonDataCaching
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Callbacks
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                extend ActiveSupport::Concern
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                def common_data_caching?
         
     | 
| 
      
 7 
     | 
    
         
            +
                  true
         
     | 
| 
      
 8 
     | 
    
         
            +
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                private
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def update_common_data_cache
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # обновить коллекцию кеша всей сущности
         
     | 
| 
      
 14 
     | 
    
         
            +
                  self.class.update_common_data_cache
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  # удалить отдельно кешированную запись
         
     | 
| 
      
 17 
     | 
    
         
            +
                  key = self.class.common_cache_key(id)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  Rails.cache.delete(key)
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def update_common_data_cache_versions
         
     | 
| 
      
 22 
     | 
    
         
            +
                  # обновление версии кешированной коллекции
         
     | 
| 
      
 23 
     | 
    
         
            +
                  self.class.update_common_data_cache_versions
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespace :common_data_caching do
         
     | 
| 
      
 2 
     | 
    
         
            +
              desc 'Обновление кеша общих данных'
         
     | 
| 
      
 3 
     | 
    
         
            +
              task :update do
         
     | 
| 
      
 4 
     | 
    
         
            +
                on roles(:app) do
         
     | 
| 
      
 5 
     | 
    
         
            +
                  within release_path do
         
     | 
| 
      
 6 
     | 
    
         
            +
                    with rails_env: "#{fetch(:stage)}" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                      execute :rake, 'common_data_caching:update_cache'
         
     | 
| 
      
 8 
     | 
    
         
            +
                    end
         
     | 
| 
      
 9 
     | 
    
         
            +
                  end
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            load File.expand_path('../capistrano/tasks/common_data_caching.rake', __FILE__)
         
     | 
| 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CommonDataCaching
         
     | 
| 
      
 2 
     | 
    
         
            +
              module ClassMethods
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                def common_data_caching?
         
     | 
| 
      
 5 
     | 
    
         
            +
                  true
         
     | 
| 
      
 6 
     | 
    
         
            +
                end
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                def common_data_cache_key(id = nil)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  ['common-data-caching', to_s, id].compact.join('_')
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def common_data_cache_collection
         
     | 
| 
      
 13 
     | 
    
         
            +
                  Rails.cache.fetch(common_data_cache_key) || []
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def update_common_data_cache
         
     | 
| 
      
 17 
     | 
    
         
            +
                  scope = cache_opts[:scope] || proc { where('1=1') }
         
     | 
| 
      
 18 
     | 
    
         
            +
                  ordering = cache_opts[:order] || :id
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  data = merge(scope).order(ordering).prepare_common_data_collection
         
     | 
| 
      
 21 
     | 
    
         
            +
                  Rails.cache.write(common_cache_key, data)
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def update_common_data_cache_versions
         
     | 
| 
      
 25 
     | 
    
         
            +
                  versions = Rails.cache.read('common_cache_versions') || {}
         
     | 
| 
      
 26 
     | 
    
         
            +
                  versions[to_s] = Time.now.to_i
         
     | 
| 
      
 27 
     | 
    
         
            +
                  Rails.cache.write('common_cache_versions', versions)
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                def prepare_common_data_collection
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # колонка ID по умолчанию
         
     | 
| 
      
 32 
     | 
    
         
            +
                  hash = { id: :id }
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  cache_opts[:attrs].flatten.map do |key|
         
     | 
| 
      
 35 
     | 
    
         
            +
                    key.is_a?(Hash) ? hash.merge!(key) : hash.merge!(key => key)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  keys = hash.keys.unshift(:id)
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  all.map do |object|
         
     | 
| 
      
 41 
     | 
    
         
            +
                    keys.to_h { |title| [title, object.send(hash[title])] }
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
              end
         
     | 
| 
      
 46 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            namespace :common_data_caching do
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              desc 'Обновить кеш общих данных'
         
     | 
| 
      
 4 
     | 
    
         
            +
              task update_cache: :environment do
         
     | 
| 
      
 5 
     | 
    
         
            +
                # получение списка моделей
         
     | 
| 
      
 6 
     | 
    
         
            +
                Rails.application.eager_load!
         
     | 
| 
      
 7 
     | 
    
         
            +
                models = ActiveRecord::Base.descendants
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                # удаление старых версий кеша
         
     | 
| 
      
 10 
     | 
    
         
            +
                Rails.cache.delete('common_cache_versions')
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                models.each do |model|
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # проверка - в модели предусмотрено кеширование общих данных
         
     | 
| 
      
 14 
     | 
    
         
            +
                  next unless model.common_data_caching?
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  # обновление кеша
         
     | 
| 
      
 17 
     | 
    
         
            +
                  model.update_common_cache
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  # обновление версий кеша
         
     | 
| 
      
 20 
     | 
    
         
            +
                  model.update_common_cache_versions
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rake'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'common_data_caching/callbacks'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'common_data_caching/class_methods'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'common_data_caching/rake_tasks'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            module CommonDataCaching
         
     | 
| 
      
 7 
     | 
    
         
            +
            end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ActiveSupport.on_load(:active_record) do
         
     | 
| 
      
 10 
     | 
    
         
            +
              class ActiveRecord::Base
         
     | 
| 
      
 11 
     | 
    
         
            +
                def self.common_data_caching?
         
     | 
| 
      
 12 
     | 
    
         
            +
                  false
         
     | 
| 
      
 13 
     | 
    
         
            +
                end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                def common_data_caching?
         
     | 
| 
      
 16 
     | 
    
         
            +
                  self.class.common_data_caching?
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def self.common_cache(options= {})
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # опции кешинга
         
     | 
| 
      
 21 
     | 
    
         
            +
                  class_attribute :cache_opts
         
     | 
| 
      
 22 
     | 
    
         
            +
                  self.cache_opts = options
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  # методы кеширования
         
     | 
| 
      
 25 
     | 
    
         
            +
                  extend CommonDataCaching::ClassMethods
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  # установка коллбэков
         
     | 
| 
      
 28 
     | 
    
         
            +
                  include CommonDataCaching::Callbacks
         
     | 
| 
      
 29 
     | 
    
         
            +
                  after_commit :update_common_data_cache, on: %i[create update destroy], if: :common_data_caching?
         
     | 
| 
      
 30 
     | 
    
         
            +
                  after_commit :update_common_data_cache_versions, on: %i[create update destroy], if: :common_data_caching?
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,65 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: common-data-caching
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Павел Бабин
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire:
         
     | 
| 
      
 9 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 10 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-03-18 00:00:00.000000000 Z
         
     | 
| 
      
 12 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: rails
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: '6.0'
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: '6.0'
         
     | 
| 
      
 27 
     | 
    
         
            +
            description: Кеширование общих данных
         
     | 
| 
      
 28 
     | 
    
         
            +
            email: babin359@gmail.com
         
     | 
| 
      
 29 
     | 
    
         
            +
            executables: []
         
     | 
| 
      
 30 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 31 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 32 
     | 
    
         
            +
            files:
         
     | 
| 
      
 33 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 34 
     | 
    
         
            +
            - lib/common-data-caching.rb
         
     | 
| 
      
 35 
     | 
    
         
            +
            - lib/common_data_caching.rb
         
     | 
| 
      
 36 
     | 
    
         
            +
            - lib/common_data_caching/callbacks.rb
         
     | 
| 
      
 37 
     | 
    
         
            +
            - lib/common_data_caching/capistrano.rb
         
     | 
| 
      
 38 
     | 
    
         
            +
            - lib/common_data_caching/capistrano/tasks/common_data_caching.rake
         
     | 
| 
      
 39 
     | 
    
         
            +
            - lib/common_data_caching/class_methods.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/common_data_caching/rake_tasks.rb
         
     | 
| 
      
 41 
     | 
    
         
            +
            homepage:
         
     | 
| 
      
 42 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 43 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 44 
     | 
    
         
            +
            metadata:
         
     | 
| 
      
 45 
     | 
    
         
            +
              rubygems_mfa_required: 'true'
         
     | 
| 
      
 46 
     | 
    
         
            +
            post_install_message:
         
     | 
| 
      
 47 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 48 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 49 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 50 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                  version: 3.1.0
         
     | 
| 
      
 55 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 56 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 57 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 58 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 59 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 60 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 61 
     | 
    
         
            +
            rubygems_version: 3.0.6
         
     | 
| 
      
 62 
     | 
    
         
            +
            signing_key:
         
     | 
| 
      
 63 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 64 
     | 
    
         
            +
            summary: Кеширование общих данных
         
     | 
| 
      
 65 
     | 
    
         
            +
            test_files: []
         
     |