valor-dual 0.1.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.
- data/lib/valor-dual.rb +56 -0
- metadata +79 -0
    
        data/lib/valor-dual.rb
    ADDED
    
    | @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            require 'yaml'
         | 
| 2 | 
            +
            require 'uri'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class ValorDual
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def initialize(path)
         | 
| 7 | 
            +
                data = YAML.load_file(path)
         | 
| 8 | 
            +
                @access_key = data["s3"]["access_key"]
         | 
| 9 | 
            +
                @secret_key = data["s3"]["secret_access_key"]
         | 
| 10 | 
            +
                @region = data["s3"]["region"]
         | 
| 11 | 
            +
                @bucket = data["s3"]["bucket"]
         | 
| 12 | 
            +
                @versions = data["versions"]
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              def aws_instance(name, file_path)
         | 
| 16 | 
            +
                # Create an instance of the Aws::S3::Resource class.
         | 
| 17 | 
            +
                s3 = Aws::S3::Resource.new(
         | 
| 18 | 
            +
                      credentials: Aws::Credentials.new(@access_key, @secret_key),
         | 
| 19 | 
            +
                      region: @region
         | 
| 20 | 
            +
                    )
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                # Reference the target object by bucket name and key.
         | 
| 23 | 
            +
                obj = s3.bucket(@bucket).object(name)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                # Call#upload_file on the object.
         | 
| 26 | 
            +
                obj.upload_file(file_path, acl:'public-read')
         | 
| 27 | 
            +
                return obj.public_url 
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              def create_image(url)
         | 
| 31 | 
            +
                dump = Hash.new
         | 
| 32 | 
            +
                @array_of_dumps = []
         | 
| 33 | 
            +
                @versions.each do |key, value|
         | 
| 34 | 
            +
                  name = key.dup
         | 
| 35 | 
            +
                  full_name = Time.now.to_i.to_s << '_' << name << File.extname(URI.parse(url).path)
         | 
| 36 | 
            +
                  
         | 
| 37 | 
            +
                  image = MiniMagick::Image.open(url) 
         | 
| 38 | 
            +
                  image.resize value
         | 
| 39 | 
            +
                  image.write(full_name)
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  object_url = self.aws_instance(full_name, File.expand_path(full_name))
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  dump = { 'version' => name, 'public_url' => object_url} 
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  @array_of_dumps << dump
         | 
| 46 | 
            +
                  File.delete(full_name)
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
                return @array_of_dumps
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              def fetch version
         | 
| 52 | 
            +
                version_name = @array_of_dumps.find{|i| i['version'] == version }
         | 
| 53 | 
            +
                (version_name.nil?) ? "Specify correct version" : version_name["public_url"]
         | 
| 54 | 
            +
              end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            end
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 | 
            +
            name: valor-dual
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
            platform: ruby
         | 
| 7 | 
            +
            authors:
         | 
| 8 | 
            +
            - Ashutosh J
         | 
| 9 | 
            +
            autorequire: 
         | 
| 10 | 
            +
            bindir: bin
         | 
| 11 | 
            +
            cert_chain: []
         | 
| 12 | 
            +
            date: 2015-07-17 00:00:00.000000000 Z
         | 
| 13 | 
            +
            dependencies:
         | 
| 14 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            +
              name: aws-sdk
         | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            +
                none: false
         | 
| 18 | 
            +
                requirements:
         | 
| 19 | 
            +
                - - ~>
         | 
| 20 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            +
                    version: 2.1.7
         | 
| 22 | 
            +
              type: :runtime
         | 
| 23 | 
            +
              prerelease: false
         | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            +
                none: false
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ~>
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: 2.1.7
         | 
| 30 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 31 | 
            +
              name: mini_magick
         | 
| 32 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            +
                none: false
         | 
| 34 | 
            +
                requirements:
         | 
| 35 | 
            +
                - - ~>
         | 
| 36 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 37 | 
            +
                    version: 4.2.7
         | 
| 38 | 
            +
              type: :runtime
         | 
| 39 | 
            +
              prerelease: false
         | 
| 40 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ~>
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: 4.2.7
         | 
| 46 | 
            +
            description: A simple image resizer which converts image into different resolutions
         | 
| 47 | 
            +
              and pushes them onto AWS S3 bucket.
         | 
| 48 | 
            +
            email: ashutosh.j@1985.co.in
         | 
| 49 | 
            +
            executables: []
         | 
| 50 | 
            +
            extensions: []
         | 
| 51 | 
            +
            extra_rdoc_files: []
         | 
| 52 | 
            +
            files:
         | 
| 53 | 
            +
            - lib/valor-dual.rb
         | 
| 54 | 
            +
            homepage: http://rubygems.org/gems/hola
         | 
| 55 | 
            +
            licenses:
         | 
| 56 | 
            +
            - ''
         | 
| 57 | 
            +
            post_install_message: 
         | 
| 58 | 
            +
            rdoc_options: []
         | 
| 59 | 
            +
            require_paths:
         | 
| 60 | 
            +
            - lib
         | 
| 61 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 62 | 
            +
              none: false
         | 
| 63 | 
            +
              requirements:
         | 
| 64 | 
            +
              - - ! '>='
         | 
| 65 | 
            +
                - !ruby/object:Gem::Version
         | 
| 66 | 
            +
                  version: '0'
         | 
| 67 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 68 | 
            +
              none: false
         | 
| 69 | 
            +
              requirements:
         | 
| 70 | 
            +
              - - ! '>='
         | 
| 71 | 
            +
                - !ruby/object:Gem::Version
         | 
| 72 | 
            +
                  version: '0'
         | 
| 73 | 
            +
            requirements: []
         | 
| 74 | 
            +
            rubyforge_project: 
         | 
| 75 | 
            +
            rubygems_version: 1.8.23
         | 
| 76 | 
            +
            signing_key: 
         | 
| 77 | 
            +
            specification_version: 3
         | 
| 78 | 
            +
            summary: Valor-Dual - image resizer!
         | 
| 79 | 
            +
            test_files: []
         |