teak_util 0.1.0 → 0.1.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/CHANGELOG.md +13 -0
- data/Gemfile.lock +23 -23
- data/lib/teak_util/storage/make_externally_available_file.rb +2 -2
- data/lib/teak_util/storage/s3.rb +15 -4
- data/lib/teak_util/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 92731ed522f798d250b3b9b317c92ba9f17eb3dba21574235fefe7d1938de729
         | 
| 4 | 
            +
              data.tar.gz: cad15ef3aa288b56a26574741d6bd22b2fe1377fcd3846656f7d9255ac5ba1d7
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1b6cd53052c02325944ce90f837c085e4fe0bf1ebc5b27c565f4714be5b84308405cec3b0a57fa4e05ad49c4ed9b7f6b803fbf6f96152eebffcc8340b47a625c
         | 
| 7 | 
            +
              data.tar.gz: 6cef854be60d4fdc20453e421f158bd4201eaae51c1ae165c392ce76f0171e27f9c81374284ccab7f59263c02db6edcb33dc9e697c588bab4c6f81c15139ea08
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,16 @@ | |
| 1 | 
            +
            ## 0.1.2
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            ENHANCEMENTS:
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * Added Storage::S3#del to delete objects from S3.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ## 0.1.1
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ENHANCEMENTS:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            * Storage::S3#put now returns the full key the object was stored under
         | 
| 12 | 
            +
            * MakeExternallyAvailableFile now provides the full path the object is accessible under.
         | 
| 13 | 
            +
             | 
| 1 14 | 
             
            ## 0.1.0
         | 
| 2 15 |  | 
| 3 16 | 
             
            Initial release.
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                teak_util (0.1. | 
| 4 | 
            +
                teak_util (0.1.2)
         | 
| 5 5 | 
             
                  aws-sdk-s3 (>= 1.102)
         | 
| 6 6 | 
             
                  business_flow (>= 0.18.0)
         | 
| 7 7 | 
             
                  mime-types (>= 3)
         | 
| @@ -10,9 +10,9 @@ PATH | |
| 10 10 | 
             
            GEM
         | 
| 11 11 | 
             
              remote: https://rubygems.org/
         | 
| 12 12 | 
             
              specs:
         | 
| 13 | 
            -
                activemodel (7.1. | 
| 14 | 
            -
                  activesupport (= 7.1. | 
| 15 | 
            -
                activesupport (7.1. | 
| 13 | 
            +
                activemodel (7.1.2)
         | 
| 14 | 
            +
                  activesupport (= 7.1.2)
         | 
| 15 | 
            +
                activesupport (7.1.2)
         | 
| 16 16 | 
             
                  base64
         | 
| 17 17 | 
             
                  bigdecimal
         | 
| 18 18 | 
             
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| @@ -22,41 +22,41 @@ GEM | |
| 22 22 | 
             
                  minitest (>= 5.1)
         | 
| 23 23 | 
             
                  mutex_m
         | 
| 24 24 | 
             
                  tzinfo (~> 2.0)
         | 
| 25 | 
            -
                aws-eventstream (1. | 
| 26 | 
            -
                aws-partitions (1. | 
| 27 | 
            -
                aws-sdk-core (3. | 
| 28 | 
            -
                  aws-eventstream (~> 1, >= 1.0 | 
| 25 | 
            +
                aws-eventstream (1.3.0)
         | 
| 26 | 
            +
                aws-partitions (1.880.0)
         | 
| 27 | 
            +
                aws-sdk-core (3.190.2)
         | 
| 28 | 
            +
                  aws-eventstream (~> 1, >= 1.3.0)
         | 
| 29 29 | 
             
                  aws-partitions (~> 1, >= 1.651.0)
         | 
| 30 | 
            -
                  aws-sigv4 (~> 1. | 
| 30 | 
            +
                  aws-sigv4 (~> 1.8)
         | 
| 31 31 | 
             
                  jmespath (~> 1, >= 1.6.1)
         | 
| 32 | 
            -
                aws-sdk-kms (1. | 
| 33 | 
            -
                  aws-sdk-core (~> 3, >= 3. | 
| 32 | 
            +
                aws-sdk-kms (1.76.0)
         | 
| 33 | 
            +
                  aws-sdk-core (~> 3, >= 3.188.0)
         | 
| 34 34 | 
             
                  aws-sigv4 (~> 1.1)
         | 
| 35 | 
            -
                aws-sdk-s3 (1. | 
| 36 | 
            -
                  aws-sdk-core (~> 3, >= 3. | 
| 35 | 
            +
                aws-sdk-s3 (1.142.0)
         | 
| 36 | 
            +
                  aws-sdk-core (~> 3, >= 3.189.0)
         | 
| 37 37 | 
             
                  aws-sdk-kms (~> 1)
         | 
| 38 | 
            -
                  aws-sigv4 (~> 1. | 
| 39 | 
            -
                aws-sigv4 (1. | 
| 38 | 
            +
                  aws-sigv4 (~> 1.8)
         | 
| 39 | 
            +
                aws-sigv4 (1.8.0)
         | 
| 40 40 | 
             
                  aws-eventstream (~> 1, >= 1.0.2)
         | 
| 41 | 
            -
                base64 (0. | 
| 42 | 
            -
                bigdecimal (3.1. | 
| 41 | 
            +
                base64 (0.2.0)
         | 
| 42 | 
            +
                bigdecimal (3.1.5)
         | 
| 43 43 | 
             
                business_flow (0.19.3)
         | 
| 44 44 | 
             
                  activemodel (>= 4.2, < 8)
         | 
| 45 45 | 
             
                  activesupport (>= 4.2, < 8)
         | 
| 46 | 
            -
                concurrent-ruby (1.2. | 
| 46 | 
            +
                concurrent-ruby (1.2.3)
         | 
| 47 47 | 
             
                connection_pool (2.4.1)
         | 
| 48 48 | 
             
                diff-lcs (1.5.0)
         | 
| 49 49 | 
             
                docile (1.4.0)
         | 
| 50 | 
            -
                drb (2. | 
| 50 | 
            +
                drb (2.2.0)
         | 
| 51 51 | 
             
                  ruby2_keywords
         | 
| 52 52 | 
             
                i18n (1.14.1)
         | 
| 53 53 | 
             
                  concurrent-ruby (~> 1.0)
         | 
| 54 54 | 
             
                jmespath (1.6.2)
         | 
| 55 | 
            -
                mime-types (3.5. | 
| 55 | 
            +
                mime-types (3.5.2)
         | 
| 56 56 | 
             
                  mime-types-data (~> 3.2015)
         | 
| 57 | 
            -
                mime-types-data (3.2023. | 
| 58 | 
            -
                minitest (5. | 
| 59 | 
            -
                mutex_m (0. | 
| 57 | 
            +
                mime-types-data (3.2023.1205)
         | 
| 58 | 
            +
                minitest (5.21.1)
         | 
| 59 | 
            +
                mutex_m (0.2.0)
         | 
| 60 60 | 
             
                rake (13.0.6)
         | 
| 61 61 | 
             
                rspec (3.12.0)
         | 
| 62 62 | 
             
                  rspec-core (~> 3.12.0)
         | 
| @@ -21,7 +21,7 @@ module TeakUtil | |
| 21 21 | 
             
                  lookup :storage, by: [:bucket_name, :prefix], with: -> { Storage::S3.new(bucket_name, prefix: "#{prefix}#{time_prefix}") }
         | 
| 22 22 | 
             
                  uses(:time_prefix) { Time.now.utc.strftime('%Y/%m/%d/') }
         | 
| 23 23 |  | 
| 24 | 
            -
                  provides :stored_file_name, :public_url
         | 
| 24 | 
            +
                  provides :stored_file_name, :public_url, :full_path
         | 
| 25 25 |  | 
| 26 26 | 
             
                  step :convert_data
         | 
| 27 27 | 
             
                  step :store_data
         | 
| @@ -70,7 +70,7 @@ module TeakUtil | |
| 70 70 | 
             
                      content_disposition: "attachment; filename=\"#{stored_file_name}\""
         | 
| 71 71 | 
             
                    }
         | 
| 72 72 | 
             
                    opts[:content_type] = content_type if content_type
         | 
| 73 | 
            -
                    storage.put(stored_file_name, data, opts)
         | 
| 73 | 
            +
                    self.full_path = storage.put(stored_file_name, data, opts)
         | 
| 74 74 |  | 
| 75 75 | 
             
                    self.public_url = storage.public_url(stored_file_name)
         | 
| 76 76 | 
             
                  end
         | 
    
        data/lib/teak_util/storage/s3.rb
    CHANGED
    
    | @@ -38,24 +38,29 @@ module TeakUtil | |
| 38 38 | 
             
                  # @option opts [String] :content_type A standard MIME type describing the format of the contents.
         | 
| 39 39 | 
             
                  # @option opts [String] :content_disposition Specifies presentational information for the object.
         | 
| 40 40 | 
             
                  def put(key, value, opts = {})
         | 
| 41 | 
            -
                    path =  | 
| 41 | 
            +
                    path = prefixed_path(key)
         | 
| 42 42 | 
             
                    @bucket.object(path).put(
         | 
| 43 43 | 
             
                      opts.merge(@put_opts.merge(body: value))
         | 
| 44 44 | 
             
                    )
         | 
| 45 | 
            -
                     | 
| 45 | 
            +
                    path
         | 
| 46 46 | 
             
                  end
         | 
| 47 47 |  | 
| 48 48 | 
             
                  # Retrieves the value stored at key
         | 
| 49 49 | 
             
                  # @param key [String]
         | 
| 50 50 | 
             
                  def get(key)
         | 
| 51 | 
            -
                    path = "#{@prefix}#{key}"
         | 
| 52 51 | 
             
                    begin
         | 
| 53 | 
            -
                      @bucket.object( | 
| 52 | 
            +
                      @bucket.object(prefixed_path(key)).get.body.read
         | 
| 54 53 | 
             
                    rescue Aws::S3::Errors::NoSuchKey
         | 
| 55 54 | 
             
                      return nil
         | 
| 56 55 | 
             
                    end
         | 
| 57 56 | 
             
                  end
         | 
| 58 57 |  | 
| 58 | 
            +
                  # Deletes the value stored at key
         | 
| 59 | 
            +
                  # @param key [String]
         | 
| 60 | 
            +
                  def del(key)
         | 
| 61 | 
            +
                    @bucket.object(prefixed_path(key)).delete
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
             | 
| 59 64 | 
             
                  # Returns a URL which allows public access to the data stored at key
         | 
| 60 65 | 
             
                  # @param expires_in [Fixnum] number of seconds the link will remain valid for
         | 
| 61 66 | 
             
                  #   Maximum is 604800 (1 week).
         | 
| @@ -63,6 +68,12 @@ module TeakUtil | |
| 63 68 | 
             
                    path = "#{@prefix}#{key}"
         | 
| 64 69 | 
             
                    @bucket.object(path).presigned_url(:get, expires_in: expires_in.to_i)
         | 
| 65 70 | 
             
                  end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                private
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                  def prefixed_path(key)
         | 
| 75 | 
            +
                    "#{@prefix}#{key}"
         | 
| 76 | 
            +
                  end
         | 
| 66 77 | 
             
                end
         | 
| 67 78 | 
             
              end
         | 
| 68 79 | 
             
            end
         | 
    
        data/lib/teak_util/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: teak_util
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Alex Scarborough
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-01-16 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aws-sdk-s3
         |