mini_exiftool 1.6.0 → 1.7.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/Changelog +8 -0
- data/README.rdoc +5 -0
- data/lib/mini_exiftool.rb +8 -4
- data/test/data/test_coordinates.jpg +0 -0
- data/test/test_read_coordinates.rb +18 -0
- metadata +12 -14
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 1d1b5a3906b34606e231c3ffda6a4df3d5a6026b
         | 
| 4 | 
            +
              data.tar.gz: 9e63ae2193c37ab53810d371fae213200babb0e9
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: ff0a627dd02d2e7b42aa38094c591d688c7d352795f704e96c0e405215f468708472ea3f11365c46f3268615fc1825a72019a0862e2a13b54005047643cfbd04
         | 
| 7 | 
            +
              data.tar.gz: 671b31da0a3925b287d2bc688292d706f00d12206384e8cbaf06a952ad86f96804a4ed8a3e79a3b0e8b0bfd2680e67e3b5d80feebb743c4908f089e622ff969d
         | 
    
        data/Changelog
    CHANGED
    
    | @@ -1,3 +1,11 @@ | |
| 1 | 
            +
            1.7.0
         | 
| 2 | 
            +
            - Support exiftool -c option for formatting GPS
         | 
| 3 | 
            +
              coordinates.
         | 
| 4 | 
            +
              Thanks to Lee Horrocks for the patch.
         | 
| 5 | 
            +
            - Switching from shellwords to manual escaping.
         | 
| 6 | 
            +
              Hopefully it works now on Windows systems.
         | 
| 7 | 
            +
              Thanks to uwe58 and jpg0 for the hints.
         | 
| 8 | 
            +
             | 
| 1 9 | 
             
            1.6.0
         | 
| 2 10 | 
             
            - Type conversion in MiniExiftool.from_hash.
         | 
| 3 11 | 
             
              Thanks to Ethan Soutar-Rau for the merge request.
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -10,6 +10,11 @@ An installation of the Exiftool command-line application. | |
| 10 10 | 
             
            Instructions for installation you can find under
         | 
| 11 11 | 
             
            http://www.sno.phy.queensu.ca/~phil/exiftool/install.html .
         | 
| 12 12 |  | 
| 13 | 
            +
            Alternatively Wil Gieseler has bundled a meta-gem that eliminates the
         | 
| 14 | 
            +
            need for a seperate Exiftool installation. Have a look at
         | 
| 15 | 
            +
            http://github.com/wilg/mini_exiftool_vendored or
         | 
| 16 | 
            +
            http://rubygems.org/gems/mini_exiftool_vendored .
         | 
| 17 | 
            +
             | 
| 13 18 | 
             
            == Installation
         | 
| 14 19 |  | 
| 15 20 | 
             
            First you need Exiftool (see under Requirements above). Then you can simply
         | 
    
        data/lib/mini_exiftool.rb
    CHANGED
    
    | @@ -18,7 +18,6 @@ require 'tempfile' | |
| 18 18 | 
             
            require 'pstore'
         | 
| 19 19 | 
             
            require 'rational'
         | 
| 20 20 | 
             
            require 'set'
         | 
| 21 | 
            -
            require 'shellwords'
         | 
| 22 21 | 
             
            require 'time'
         | 
| 23 22 |  | 
| 24 23 | 
             
            # Simple OO access to the Exiftool command-line application.
         | 
| @@ -33,7 +32,7 @@ class MiniExiftool | |
| 33 32 | 
             
              attr_reader :filename
         | 
| 34 33 | 
             
              attr_accessor :numerical, :composite, :convert_encoding, :ignore_minor_errors, :errors, :timestamps
         | 
| 35 34 |  | 
| 36 | 
            -
              VERSION = '1. | 
| 35 | 
            +
              VERSION = '1.7.0'
         | 
| 37 36 |  | 
| 38 37 | 
             
              # +opts+ support at the moment
         | 
| 39 38 | 
             
              # * <code>:numerical</code> for numerical values, default is +false+
         | 
| @@ -56,6 +55,7 @@ class MiniExiftool | |
| 56 55 | 
             
                @convert_encoding = opts[:convert_encoding]
         | 
| 57 56 | 
             
                @ignore_minor_errors = opts[:ignore_minor_errors]
         | 
| 58 57 | 
             
                @timestamps = opts[:timestamps]
         | 
| 58 | 
            +
                @coord_format = opts[:coord_format]
         | 
| 59 59 | 
             
                @values = TagHash.new
         | 
| 60 60 | 
             
                @tag_names = TagHash.new
         | 
| 61 61 | 
             
                @changed_values = TagHash.new
         | 
| @@ -88,7 +88,8 @@ class MiniExiftool | |
| 88 88 | 
             
                opt_params << (@numerical ? '-n ' : '')
         | 
| 89 89 | 
             
                opt_params << (@composite ? '' : '-e ')
         | 
| 90 90 | 
             
                opt_params << (@convert_encoding ? '-L ' : '')
         | 
| 91 | 
            -
                 | 
| 91 | 
            +
                opt_params << (@coord_format ? "-c \"#{@coord_format}\"" : '')
         | 
| 92 | 
            +
                cmd = %Q(#@@cmd -q -q -s -t #{opt_params} #{@@sep_op} #{MiniExiftool.escape(filename)})
         | 
| 92 93 | 
             
                if run(cmd)
         | 
| 93 94 | 
             
                  parse_output
         | 
| 94 95 | 
             
                else
         | 
| @@ -160,7 +161,7 @@ class MiniExiftool | |
| 160 161 | 
             
                  arr_val.map! {|e| convert e}
         | 
| 161 162 | 
             
                  tag_params = ''
         | 
| 162 163 | 
             
                  arr_val.each do |v|
         | 
| 163 | 
            -
                    tag_params << %Q(-#{original_tag}=#{ | 
| 164 | 
            +
                    tag_params << %Q(-#{original_tag}=#{MiniExiftool.escape(v)} )
         | 
| 164 165 | 
             
                  end
         | 
| 165 166 | 
             
                  opt_params = ''
         | 
| 166 167 | 
             
                  opt_params << (arr_val.detect {|x| x.kind_of?(Numeric)} ? '-n ' : '')
         | 
| @@ -440,6 +441,9 @@ class MiniExiftool | |
| 440 441 | 
             
                tags
         | 
| 441 442 | 
             
              end
         | 
| 442 443 |  | 
| 444 | 
            +
              def self.escape(val)
         | 
| 445 | 
            +
                '"' << val.to_s.gsub(/\\/, '\\'*4).gsub(/"/, '\"') << '"'
         | 
| 446 | 
            +
              end
         | 
| 443 447 |  | 
| 444 448 | 
             
              # Hash with indifferent access:
         | 
| 445 449 | 
             
              # DateTimeOriginal == datetimeoriginal == date_time_original
         | 
| Binary file | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # -- encoding: utf-8 --
         | 
| 2 | 
            +
            require 'helpers_for_test'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class TestReadCoordinates < TestCase
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def setup
         | 
| 7 | 
            +
                @data_dir = File.dirname(__FILE__) + '/data'
         | 
| 8 | 
            +
                @filename_test = @data_dir + '/test_coordinates.jpg'
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              def test_access_coordinates
         | 
| 12 | 
            +
                mini_exiftool_coord = MiniExiftool.new @filename_test, :coord_format => "%+.6f"
         | 
| 13 | 
            +
                assert_equal '+43.653167', mini_exiftool_coord['GPSLatitude']
         | 
| 14 | 
            +
                assert_equal '-79.373167', mini_exiftool_coord['GPSLongitude']
         | 
| 15 | 
            +
                assert_equal '+43.653167, -79.373167', mini_exiftool_coord['GPSPosition']
         | 
| 16 | 
            +
              end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,32 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mini_exiftool
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 1.7.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Jan Friedrich
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 11 | 
            +
            date: 2013-05-07 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: rim
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 17 | 
             
                - - ~>
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version: 1.6. | 
| 19 | 
            +
                    version: 1.6.2
         | 
| 22 20 | 
             
              type: :development
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 24 | 
             
                - - ~>
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version: 1.6. | 
| 26 | 
            +
                    version: 1.6.2
         | 
| 30 27 | 
             
            description: ''
         | 
| 31 28 | 
             
            email: janfri26@gmail.com
         | 
| 32 29 | 
             
            executables: []
         | 
| @@ -43,6 +40,7 @@ files: | |
| 43 40 | 
             
            - test/data/INFORMATION
         | 
| 44 41 | 
             
            - test/data/test.jpg
         | 
| 45 42 | 
             
            - test/data/test.jpg.json
         | 
| 43 | 
            +
            - test/data/test_coordinates.jpg
         | 
| 46 44 | 
             
            - test/data/test_special_dates.jpg
         | 
| 47 45 | 
             
            - test/helpers_for_test.rb
         | 
| 48 46 | 
             
            - test/test_bad_preview_ifd.rb
         | 
| @@ -51,6 +49,7 @@ files: | |
| 51 49 | 
             
            - test/test_dumping.rb
         | 
| 52 50 | 
             
            - test/test_from_hash.rb
         | 
| 53 51 | 
             
            - test/test_read.rb
         | 
| 52 | 
            +
            - test/test_read_coordinates.rb
         | 
| 54 53 | 
             
            - test/test_read_numerical.rb
         | 
| 55 54 | 
             
            - test/test_save.rb
         | 
| 56 55 | 
             
            - test/test_special.rb
         | 
| @@ -58,7 +57,8 @@ files: | |
| 58 57 | 
             
            - test/test_write.rb
         | 
| 59 58 | 
             
            homepage: http://gitorious.org/mini_exiftool
         | 
| 60 59 | 
             
            licenses: []
         | 
| 61 | 
            -
             | 
| 60 | 
            +
            metadata: {}
         | 
| 61 | 
            +
            post_install_message: "\n+-----------------------------------------------------------------------+\n|
         | 
| 62 62 | 
             
              Please ensure you have installed exiftool and it's found in your PATH |\n| (Try
         | 
| 63 63 | 
             
              \"exiftool -ver\" on your commandline). For more details see       |\n| http://www.sno.phy.queensu.ca/~phil/exiftool/install.html
         | 
| 64 64 | 
             
              \            |\n+-----------------------------------------------------------------------+\n
         | 
| @@ -67,21 +67,19 @@ rdoc_options: [] | |
| 67 67 | 
             
            require_paths:
         | 
| 68 68 | 
             
            - lib
         | 
| 69 69 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 70 | 
            -
              none: false
         | 
| 71 70 | 
             
              requirements:
         | 
| 72 | 
            -
              - -  | 
| 71 | 
            +
              - - '>='
         | 
| 73 72 | 
             
                - !ruby/object:Gem::Version
         | 
| 74 73 | 
             
                  version: '0'
         | 
| 75 74 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 76 | 
            -
              none: false
         | 
| 77 75 | 
             
              requirements:
         | 
| 78 | 
            -
              - -  | 
| 76 | 
            +
              - - '>='
         | 
| 79 77 | 
             
                - !ruby/object:Gem::Version
         | 
| 80 78 | 
             
                  version: '0'
         | 
| 81 79 | 
             
            requirements: []
         | 
| 82 80 | 
             
            rubyforge_project: 
         | 
| 83 | 
            -
            rubygems_version:  | 
| 81 | 
            +
            rubygems_version: 2.0.2
         | 
| 84 82 | 
             
            signing_key: 
         | 
| 85 | 
            -
            specification_version:  | 
| 83 | 
            +
            specification_version: 4
         | 
| 86 84 | 
             
            summary: This library is wrapper for the Exiftool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool).
         | 
| 87 85 | 
             
            test_files: []
         |