card-mod-virtual 0.13.3 → 0.14.2
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 +4 -4
- data/lib/card/virtual.rb +18 -27
- data/set/abstract/virtual_cache.rb +23 -15
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 0f51deecf4c604d9f01f6005177e6e8e40e03e4e06fb65ffea94c7b7ed330fc8
         | 
| 4 | 
            +
              data.tar.gz: 7ffa17c1ca88784ec32cdeedb2d76422152c89f12c440b69637297a0606792c5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 81a38c4264f6b5bc9466f37fa59738f5bf063759ae51af9102662a445d229dab457b45ea505f7abda8911e0edba86d72f2b97ad75e4ea4ea3a05484a2f55239e
         | 
| 7 | 
            +
              data.tar.gz: d6f70615d3288ca37d7137fe0563a0c05d2057e127d28aff528c0732e8f7af1993949999977c4c28f7b9d547fb4e9b64f92efea07bcb35113435c4da555fa195
         | 
    
        data/lib/card/virtual.rb
    CHANGED
    
    | @@ -6,53 +6,44 @@ class Card | |
| 6 6 | 
             
              # the card_virtuals table.
         | 
| 7 7 | 
             
              class Virtual < Cardio::Record
         | 
| 8 8 | 
             
                def update new_content
         | 
| 9 | 
            -
                  update! | 
| 9 | 
            +
                  content == new_content ? touch : update!(content: new_content)
         | 
| 10 10 | 
             
                  new_content
         | 
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 13 | 
             
                class << self
         | 
| 14 | 
            -
                  def  | 
| 15 | 
            -
                     | 
| 16 | 
            -
             | 
| 17 | 
            -
                    create! left_id: left_id(card),
         | 
| 18 | 
            -
                            right_id: right_id(card),
         | 
| 19 | 
            -
                            left_key: card.name.left_key,
         | 
| 20 | 
            -
                            content: virtual_content
         | 
| 21 | 
            -
                  end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                  def create_or_update card, virtual_content
         | 
| 24 | 
            -
                    if (virtual_card = find_by_card(card))
         | 
| 25 | 
            -
                      virtual_card.update virtual_content
         | 
| 26 | 
            -
                    else
         | 
| 27 | 
            -
                      create card, virtual_content
         | 
| 14 | 
            +
                  def fetch card
         | 
| 15 | 
            +
                    cache.fetch card.key do
         | 
| 16 | 
            +
                      find_by_card(card) || create(card)
         | 
| 28 17 | 
             
                    end
         | 
| 29 18 | 
             
                  end
         | 
| 30 19 |  | 
| 31 | 
            -
                  def  | 
| 32 | 
            -
                     | 
| 20 | 
            +
                  def save card
         | 
| 21 | 
            +
                    virt = find_by_card card
         | 
| 22 | 
            +
                    virt ? virt.update(card.virtual_content) : create(card)
         | 
| 33 23 | 
             
                  end
         | 
| 34 24 |  | 
| 35 | 
            -
                  def  | 
| 36 | 
            -
                    find_by_card(card) | 
| 25 | 
            +
                  def delete card
         | 
| 26 | 
            +
                    find_by_card(card)&.delete
         | 
| 37 27 | 
             
                  end
         | 
| 38 28 |  | 
| 39 | 
            -
                   | 
| 40 | 
            -
                    virtual = find_by_card(card)
         | 
| 41 | 
            -
                    return create(card) unless virtual
         | 
| 29 | 
            +
                  private
         | 
| 42 30 |  | 
| 43 | 
            -
             | 
| 31 | 
            +
                  def cache
         | 
| 32 | 
            +
                    Card::Cache[Virtual]
         | 
| 44 33 | 
             
                  end
         | 
| 45 34 |  | 
| 46 | 
            -
                  def  | 
| 47 | 
            -
                     | 
| 35 | 
            +
                  def create card
         | 
| 36 | 
            +
                    validate_card card
         | 
| 37 | 
            +
                    create! left_id: left_id(card),
         | 
| 38 | 
            +
                            right_id: right_id(card),
         | 
| 39 | 
            +
                            left_key: card.name.left_key,
         | 
| 40 | 
            +
                            content: card.virtual_content
         | 
| 48 41 | 
             
                  end
         | 
| 49 42 |  | 
| 50 43 | 
             
                  def find_by_card card
         | 
| 51 44 | 
             
                    where_card(card).take
         | 
| 52 45 | 
             
                  end
         | 
| 53 46 |  | 
| 54 | 
            -
                  private
         | 
| 55 | 
            -
             | 
| 56 47 | 
             
                  def where_card card
         | 
| 57 48 | 
             
                    query = { right_id: right_id(card) }
         | 
| 58 49 | 
             
                    if (lid = left_id(card))
         | 
| @@ -4,32 +4,40 @@ def virtual? | |
| 4 4 | 
             
              new?
         | 
| 5 5 | 
             
            end
         | 
| 6 6 |  | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
            def followable?
         | 
| 12 | 
            -
              false
         | 
| 7 | 
            +
            # the content to be cached
         | 
| 8 | 
            +
            # (can be overridden)
         | 
| 9 | 
            +
            def virtual_content
         | 
| 10 | 
            +
              attributes["db_content"]
         | 
| 13 11 | 
             
            end
         | 
| 14 12 |  | 
| 15 13 | 
             
            def db_content
         | 
| 16 | 
            -
               | 
| 14 | 
            +
              Virtual.fetch(self)&.content
         | 
| 17 15 | 
             
            end
         | 
| 18 16 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
            def generate_virtual_content
         | 
| 22 | 
            -
              template&.db_content
         | 
| 17 | 
            +
            def updated_at
         | 
| 18 | 
            +
              Virtual.fetch(self)&.updated_at
         | 
| 23 19 | 
             
            end
         | 
| 24 20 |  | 
| 25 | 
            -
            event :save_virtual_content, :prepare_to_store, on: :save | 
| 26 | 
            -
               | 
| 21 | 
            +
            event :save_virtual_content, :prepare_to_store, on: :save do
         | 
| 22 | 
            +
              Virtual.save self
         | 
| 27 23 | 
             
              abort :success
         | 
| 28 24 | 
             
            end
         | 
| 29 25 |  | 
| 30 26 | 
             
            event :delete_virtual_content, :prepare_to_store, on: :delete do
         | 
| 31 | 
            -
               | 
| 32 | 
            -
              abort :success
         | 
| 27 | 
            +
              Virtual.delete self
         | 
| 28 | 
            +
              abort :success unless real?
         | 
| 29 | 
            +
            end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            # TODO: confirm that the following are needed (and if so, explain why)
         | 
| 32 | 
            +
            # in theory, if we always abort, we'll never trigger history/follow events,
         | 
| 33 | 
            +
            # and we'll never have a card to delete, no?
         | 
| 34 | 
            +
             | 
| 35 | 
            +
            def history?
         | 
| 36 | 
            +
              false
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            def followable?
         | 
| 40 | 
            +
              false
         | 
| 33 41 | 
             
            end
         | 
| 34 42 |  | 
| 35 43 | 
             
            def delete
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: card-mod-virtual
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.14.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ethan McCutchen
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire:
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date:  | 
| 13 | 
            +
            date: 2022-01-08 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: card
         | 
| @@ -18,14 +18,14 @@ dependencies: | |
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - '='
         | 
| 20 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: 1. | 
| 21 | 
            +
                    version: 1.104.2
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 24 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 25 | 
             
                requirements:
         | 
| 26 26 | 
             
                - - '='
         | 
| 27 27 | 
             
                  - !ruby/object:Gem::Version
         | 
| 28 | 
            -
                    version: 1. | 
| 28 | 
            +
                    version: 1.104.2
         | 
| 29 29 | 
             
            description: ''
         | 
| 30 30 | 
             
            email:
         | 
| 31 31 | 
             
            - info@decko.org
         | 
| @@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 60 60 | 
             
                - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                  version: '0'
         | 
| 62 62 | 
             
            requirements: []
         | 
| 63 | 
            -
            rubygems_version: 3. | 
| 63 | 
            +
            rubygems_version: 3.2.15
         | 
| 64 64 | 
             
            signing_key:
         | 
| 65 65 | 
             
            specification_version: 4
         | 
| 66 66 | 
             
            summary: virtual
         |