activerecord-cached_at 2.0.11 → 2.0.12
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
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8176a13705e644ac3fa27b5690c68ec7c4d43f46
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e022fb6d8d7c6da36aa819fb3809a05a86c2f06d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9b0cc35ece0124d0027967d615b1665f58ca15451aa148e87f154455e4c599bedbd71dbc951b174ae12271cc9aece81a390a9124765608d66af1782edbfcdde6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9131194d596d3fb06f205068c4afdcb6731dbd5d83902c0f5980c4bb07d875bf378332b1bd2659ed010c08a8394040162d9aa31db7e73c23e211fb980f13ce62
         
     | 
    
        data/README.md
    CHANGED
    
    
| 
         @@ -2,7 +2,6 @@ module CachedAt 
     | 
|
| 
       2 
2 
     | 
    
         
             
              module AssociationExtension
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                def self.build(model, reflection)
         
     | 
| 
       5 
     | 
    
         
            -
                  return unless reflection.options[:cached_at]
         
     | 
| 
       6 
5 
     | 
    
         
             
                end
         
     | 
| 
       7 
6 
     | 
    
         | 
| 
       8 
7 
     | 
    
         
             
                def self.valid_options
         
     | 
| 
         @@ -12,4 +11,4 @@ module CachedAt 
     | 
|
| 
       12 
11 
     | 
    
         
             
              end
         
     | 
| 
       13 
12 
     | 
    
         
             
            end
         
     | 
| 
       14 
13 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
            ActiveRecord::Associations::Builder::Association.extensions << CachedAt::AssociationExtension
         
     | 
| 
      
 14 
     | 
    
         
            +
            ActiveRecord::Associations::Builder::Association.extensions << CachedAt::AssociationExtension
         
     | 
| 
         @@ -1,5 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module CachedAt
         
     | 
| 
       2 
2 
     | 
    
         
             
              module Association
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                def initialize(owner, reflection)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  super
         
     | 
| 
      
 6 
     | 
    
         
            +
                end
         
     | 
| 
       3 
7 
     | 
    
         | 
| 
       4 
8 
     | 
    
         
             
                def traverse_relationships(klass, relationships, query, cache_column, timestamp)
         
     | 
| 
       5 
9 
     | 
    
         
             
                  if relationships.is_a?(Symbol)
         
     | 
| 
         @@ -35,8 +39,8 @@ module CachedAt 
     | 
|
| 
       35 
39 
     | 
    
         
             
                  end
         
     | 
| 
       36 
40 
     | 
    
         
             
                end
         
     | 
| 
       37 
41 
     | 
    
         | 
| 
       38 
     | 
    
         
            -
                def touch_through_reflections( 
     | 
| 
       39 
     | 
    
         
            -
                   
     | 
| 
      
 42 
     | 
    
         
            +
                def touch_through_reflections(timestamp)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  reflection.through_relationship_endpoints.each do |r|
         
     | 
| 
       40 
44 
     | 
    
         
             
                    cache_column = "#{r.inverse_of.name}_cached_at"
         
     | 
| 
       41 
45 
     | 
    
         | 
| 
       42 
46 
     | 
    
         
             
                    source_assoc = owner.association(r.source_reflection_name.to_sym)
         
     | 
    
        data/lib/cached_at/base.rb
    CHANGED
    
    | 
         @@ -5,6 +5,8 @@ require File.expand_path(File.join(__FILE__, '../associations/belongs_to_associa 
     | 
|
| 
       5 
5 
     | 
    
         
             
            require File.expand_path(File.join(__FILE__, '../associations/collection_association'))
         
     | 
| 
       6 
6 
     | 
    
         
             
            require File.expand_path(File.join(__FILE__, '../associations/has_many_through_association'))
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
      
 8 
     | 
    
         
            +
            require File.expand_path(File.join(__FILE__, '../reflections/abstract_reflection'))
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       8 
10 
     | 
    
         
             
            module CachedAt
         
     | 
| 
       9 
11 
     | 
    
         
             
              module Base
         
     | 
| 
       10 
12 
     | 
    
         
             
                extend ActiveSupport::Concern
         
     | 
| 
         @@ -35,22 +37,13 @@ module CachedAt 
     | 
|
| 
       35 
37 
     | 
    
         
             
                  timestamp ||= current_time_from_proper_timezone
         
     | 
| 
       36 
38 
     | 
    
         | 
| 
       37 
39 
     | 
    
         
             
                  self._reflections.each do |name, reflection|
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                    through_connections = if reflection.polymorphic?
         
     | 
| 
       40 
     | 
    
         
            -
                      []
         
     | 
| 
       41 
     | 
    
         
            -
                    else
         
     | 
| 
       42 
     | 
    
         
            -
                      reflection.klass._reflections.values.select do |r|
         
     | 
| 
       43 
     | 
    
         
            -
                        r.options[:cached_at] && r.options[:through] && r.options[:through] == reflection.inverse_of&.name
         
     | 
| 
       44 
     | 
    
         
            -
                      end
         
     | 
| 
       45 
     | 
    
         
            -
                    end
         
     | 
| 
       46 
     | 
    
         
            -
                    
         
     | 
| 
       47 
     | 
    
         
            -
                    next unless reflection.options[:cached_at] || reflection&.parent_reflection&.class == ActiveRecord::Reflection::HasAndBelongsToManyReflection || !through_connections.empty?
         
     | 
| 
      
 40 
     | 
    
         
            +
                    next unless reflection.options[:cached_at] || reflection&.parent_reflection&.class == ActiveRecord::Reflection::HasAndBelongsToManyReflection || !reflection.through_relationship_endpoints.empty?
         
     | 
| 
       48 
41 
     | 
    
         
             
                    next if instance_variable_defined?(:@relationships_cached_at_touched) && (!@relationships_cached_at_touched.nil? && @relationships_cached_at_touched[reflection.name])
         
     | 
| 
       49 
42 
     | 
    
         
             
                    next if reflection.is_a?(ActiveRecord::Reflection::HasManyReflection) && method == :create
         
     | 
| 
       50 
43 
     | 
    
         | 
| 
       51 
44 
     | 
    
         
             
                    assoc = association(name.to_sym)
         
     | 
| 
       52 
45 
     | 
    
         
             
                    assoc.touch_cached_at(timestamp, method)
         
     | 
| 
       53 
     | 
    
         
            -
                    assoc.touch_through_reflections( 
     | 
| 
      
 46 
     | 
    
         
            +
                    assoc.touch_through_reflections(timestamp)
         
     | 
| 
       54 
47 
     | 
    
         
             
                  end
         
     | 
| 
       55 
48 
     | 
    
         
             
                end
         
     | 
| 
       56 
49 
     | 
    
         | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module CachedAt
         
     | 
| 
      
 2 
     | 
    
         
            +
              module AbstractReflection
         
     | 
| 
      
 3 
     | 
    
         
            +
              
         
     | 
| 
      
 4 
     | 
    
         
            +
                def through_relationship_endpoints
         
     | 
| 
      
 5 
     | 
    
         
            +
                  return @through_relationship_endpoints if instance_variable_defined?(:@through_relationship_endpoints)
         
     | 
| 
      
 6 
     | 
    
         
            +
                
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @through_relationship_endpoints = []
         
     | 
| 
      
 8 
     | 
    
         
            +
                  active_record.reflections.each do |name, r|
         
     | 
| 
      
 9 
     | 
    
         
            +
                    next if r == self
         
     | 
| 
      
 10 
     | 
    
         
            +
                    begin
         
     | 
| 
      
 11 
     | 
    
         
            +
                      if r.polymorphic?
         
     | 
| 
      
 12 
     | 
    
         
            +
                        # TODO
         
     | 
| 
      
 13 
     | 
    
         
            +
                      else
         
     | 
| 
      
 14 
     | 
    
         
            +
                        r.klass.reflections.each do |name2, r2|
         
     | 
| 
      
 15 
     | 
    
         
            +
                          if r2.options[:cached_at] && r2.options[:through] && r2.options[:through] == r.inverse_of&.name
         
     | 
| 
      
 16 
     | 
    
         
            +
                            @through_relationship_endpoints << r2
         
     | 
| 
      
 17 
     | 
    
         
            +
                          end
         
     | 
| 
      
 18 
     | 
    
         
            +
                        end
         
     | 
| 
      
 19 
     | 
    
         
            +
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                    rescue NameError
         
     | 
| 
      
 21 
     | 
    
         
            +
                    end
         
     | 
| 
      
 22 
     | 
    
         
            +
                  end
         
     | 
| 
      
 23 
     | 
    
         
            +
                
         
     | 
| 
      
 24 
     | 
    
         
            +
                  @through_relationship_endpoints
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            ActiveRecord::Reflection::AbstractReflection.include(CachedAt::AbstractReflection)
         
     | 
    
        data/lib/cached_at/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: activerecord-cached_at
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.12
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jon Bracy
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-01-11 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: activerecord
         
     | 
| 
         @@ -145,6 +145,7 @@ files: 
     | 
|
| 
       145 
145 
     | 
    
         
             
            - lib/cached_at/connection_adapters/abstract/schema_definitions.rb
         
     | 
| 
       146 
146 
     | 
    
         
             
            - lib/cached_at/connection_adapters/abstract/schema_statements.rb
         
     | 
| 
       147 
147 
     | 
    
         
             
            - lib/cached_at/helpers.rb
         
     | 
| 
      
 148 
     | 
    
         
            +
            - lib/cached_at/reflections/abstract_reflection.rb
         
     | 
| 
       148 
149 
     | 
    
         
             
            - lib/cached_at/timestamp.rb
         
     | 
| 
       149 
150 
     | 
    
         
             
            - lib/cached_at/version.rb
         
     | 
| 
       150 
151 
     | 
    
         
             
            homepage: https://github.com/malomalo/activerecord-cached_at
         
     | 
| 
         @@ -169,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       169 
170 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       170 
171 
     | 
    
         
             
            requirements: []
         
     | 
| 
       171 
172 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       172 
     | 
    
         
            -
            rubygems_version: 2.5. 
     | 
| 
      
 173 
     | 
    
         
            +
            rubygems_version: 2.5.1
         
     | 
| 
       173 
174 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       174 
175 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       175 
176 
     | 
    
         
             
            summary: Allows ActiveRecord and Rails to use a `cached_at` column for the `cache_key`
         
     |