multi_exiftool 0.7.0 → 0.8.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 +5 -5
- data/.aspell.pws +8 -5
- data/Changelog +10 -0
- data/README.md +1 -1
- data/Rakefile +5 -1
- data/lib/multi_exiftool.rb +5 -1
- data/lib/multi_exiftool/executable.rb +3 -1
- data/lib/multi_exiftool/reader.rb +3 -1
- data/lib/multi_exiftool/values.rb +13 -6
- data/lib/multi_exiftool/writer.rb +3 -1
- data/multi_exiftool.gemspec +11 -11
- data/regtest/read_all_tags.rb +1 -3
- data/regtest/test.jpg +0 -0
- data/test/helper.rb +6 -4
- data/test/temp/a.jpg +0 -0
- data/test/temp/a.jpg_original +0 -0
- data/test/temp/b.jpg +0 -0
- data/test/temp/b.jpg_original +0 -0
- data/test/temp/c.jpg +0 -0
- data/test/temp/c.jpg_original +0 -0
- data/test/test_executable.rb +3 -1
- data/test/test_exiftool_stuff.rb +4 -2
- data/test/test_functional_api.rb +3 -1
- data/test/test_reader.rb +3 -1
- data/test/test_values.rb +11 -2
- data/test/test_values_using_groups.rb +3 -1
- data/test/test_writer.rb +3 -1
- data/test/test_writer_groups.rb +3 -1
- metadata +14 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8b015e9af2e57bc797d737a4dc8d69ad8916eaa5d57a593571674ebcd66bd4bd
|
4
|
+
data.tar.gz: 5d1f4bfd5b5b8673e2bcb5721dac40932229f173688c1cb5e3179dd44d66b19c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6d71bd49a05fd9776cc509a897766a1e6c1e8bd2d5f8adf697843b0be65a370fc78d49845aa65e309bb26053d03844b798e72c2cbead89a668dc4fa13fc656c
|
7
|
+
data.tar.gz: 5c96b7c4d26243e2047a85916d6d075f7add191b48edc07d181a8cf89dc42cedbcb005d5665bc10a24904f0bcd8eb36faca5fb71c86e4670f2daaae0835860de
|
data/.aspell.pws
CHANGED
@@ -1,27 +1,30 @@
|
|
1
|
-
personal_ws-1.1 en
|
1
|
+
personal_ws-1.1 en 29
|
2
2
|
UTC
|
3
|
+
NONINFRINGEMENT
|
4
|
+
szTheory
|
3
5
|
janfri
|
4
6
|
multi
|
5
|
-
|
6
|
-
MERCHANTABILITY
|
7
|
+
dir
|
7
8
|
api
|
8
9
|
Gemfile
|
9
10
|
sublicense
|
10
11
|
tmpdir
|
11
|
-
exiftool
|
12
12
|
ExifTool
|
13
|
+
exiftool
|
13
14
|
gmail
|
14
15
|
ok
|
15
16
|
timestamps
|
16
17
|
jpg
|
17
18
|
refactoring
|
18
|
-
NONINFRINGEMENT
|
19
19
|
Gitorious
|
20
20
|
gemspec
|
21
21
|
Friedrich
|
22
|
+
MultiExiftool
|
22
23
|
filenames
|
24
|
+
PartOfSet
|
23
25
|
README
|
24
26
|
stdin
|
27
|
+
MERCHANTABILITY
|
25
28
|
Coenen
|
26
29
|
stderr
|
27
30
|
gittycat
|
data/Changelog
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
0.8.0
|
2
|
+
Add MultiExiftool::VERSION.
|
3
|
+
Rename method Values#parse_value -> convert and add parameter tag to allow tag
|
4
|
+
based conversions.
|
5
|
+
So PartOfSet and Track values are not longer converted to Rational. Fix a
|
6
|
+
really big bug in test suite: Would always pass because run_in_temp_dir was
|
7
|
+
broken, so the block was never executed. Therefor 46 assertions were not
|
8
|
+
executed since version 0.7.0. Many thanks to szTheory for this great catch!
|
9
|
+
|
10
|
+
|
1
11
|
0.7.0
|
2
12
|
Use Dir.tmpdir instead of test/temp for tests which manipulates images.
|
3
13
|
Update to rim 2.15.
|
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative 'lib/multi_exiftool'
|
1
5
|
require 'rim/tire'
|
2
6
|
require 'rim/version'
|
3
7
|
require 'rim/regtest'
|
4
8
|
|
5
9
|
Rim.setup do |p|
|
6
10
|
p.name = 'multi_exiftool'
|
7
|
-
p.version =
|
11
|
+
p.version = MultiExiftool::VERSION
|
8
12
|
p.authors = 'Jan Friedrich'
|
9
13
|
p.email = 'janfri26@gmail.com'
|
10
14
|
p.summary = 'This library is a wrapper for the ExifTool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool).'
|
data/lib/multi_exiftool.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require_relative 'multi_exiftool/values'
|
3
5
|
require_relative 'multi_exiftool/reader'
|
4
6
|
require_relative 'multi_exiftool/writer'
|
5
7
|
|
6
8
|
module MultiExiftool
|
7
9
|
|
10
|
+
VERSION = '0.8.0'
|
11
|
+
|
8
12
|
# Reading metadata
|
9
13
|
# Be aware: it returns an array of two elements:
|
10
14
|
# values, errors
|
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require 'date'
|
3
5
|
require 'set'
|
4
6
|
|
@@ -25,7 +27,8 @@ module MultiExiftool
|
|
25
27
|
# (tag will be unified, i.e. FNumber, fnumber or f_number
|
26
28
|
# can be used for FNumber)
|
27
29
|
def [](tag)
|
28
|
-
|
30
|
+
unified_tag = Values.unify_tag(tag)
|
31
|
+
convert(unified_tag, @values[unified_tag])
|
29
32
|
end
|
30
33
|
|
31
34
|
# Gets the original tag names of this instance
|
@@ -37,9 +40,9 @@ module MultiExiftool
|
|
37
40
|
# with original tag names es keys and converted
|
38
41
|
# values as values
|
39
42
|
def to_h
|
40
|
-
@values.inject(Hash.new) do |h,a|
|
41
|
-
|
42
|
-
h[Values.tag_map[
|
43
|
+
@values.inject(Hash.new) do |h, a|
|
44
|
+
tag, val = a
|
45
|
+
h[Values.tag_map[tag]] = convert(Values.unify_tag(tag), val)
|
43
46
|
h
|
44
47
|
end
|
45
48
|
end
|
@@ -70,8 +73,12 @@ module MultiExiftool
|
|
70
73
|
res
|
71
74
|
end
|
72
75
|
|
73
|
-
def
|
76
|
+
def convert tag, val
|
74
77
|
return val unless val.kind_of?(String)
|
78
|
+
case tag
|
79
|
+
when 'partofset', 'track'
|
80
|
+
return val
|
81
|
+
end
|
75
82
|
case val
|
76
83
|
when /^(\d{4}):(\d\d):(\d\d) (\d\d):(\d\d)(?::(\d\d)(?:\.\d+)?)?((?:[-+]\d\d:\d\d)|(?:Z))?(?: *DST)?$/
|
77
84
|
arr = $~.captures[0,6].map {|cap| cap.to_i}
|
data/multi_exiftool.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: multi_exiftool 0.
|
2
|
+
# stub: multi_exiftool 0.8.0 ruby lib
|
3
3
|
#
|
4
4
|
# This file is automatically generated by rim.
|
5
5
|
# PLEASE DO NOT EDIT IT DIRECTLY!
|
@@ -7,21 +7,21 @@
|
|
7
7
|
|
8
8
|
Gem::Specification.new do |s|
|
9
9
|
s.name = "multi_exiftool"
|
10
|
-
s.version = "0.
|
10
|
+
s.version = "0.8.0"
|
11
11
|
|
12
12
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
13
13
|
s.require_paths = ["lib"]
|
14
14
|
s.authors = ["Jan Friedrich"]
|
15
|
-
s.date = "
|
15
|
+
s.date = "2018-04-04"
|
16
16
|
s.description = "This library a is wrapper for the ExifTool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool) written by Phil Harvey. It is designed for dealing with multiple files at once by creating commands to call exiftool with various arguments, call it and parsing the results."
|
17
17
|
s.email = "janfri26@gmail.com"
|
18
|
-
s.files = ["./.aspell.pws", "Changelog", "Gemfile", "LICENSE", "README.md", "Rakefile", "lib/multi_exiftool", "lib/multi_exiftool.rb", "lib/multi_exiftool/executable.rb", "lib/multi_exiftool/reader.rb", "lib/multi_exiftool/values.rb", "lib/multi_exiftool/writer.rb", "multi_exiftool.gemspec", "regtest/read_all_tags.rb", "regtest/read_all_tags.yml", "test/data", "test/data/a.jpg", "test/data/b.jpg", "test/data/c.jpg", "test/helper.rb", "test/test_executable.rb", "test/test_exiftool_stuff.rb", "test/test_functional_api.rb", "test/test_reader.rb", "test/test_values.rb", "test/test_values_using_groups.rb", "test/test_writer.rb", "test/test_writer_groups.rb"]
|
18
|
+
s.files = ["./.aspell.pws", "Changelog", "Gemfile", "LICENSE", "README.md", "Rakefile", "lib/multi_exiftool", "lib/multi_exiftool.rb", "lib/multi_exiftool/executable.rb", "lib/multi_exiftool/reader.rb", "lib/multi_exiftool/values.rb", "lib/multi_exiftool/writer.rb", "multi_exiftool.gemspec", "regtest/read_all_tags.rb", "regtest/read_all_tags.yml", "regtest/test.jpg", "test/data", "test/data/a.jpg", "test/data/b.jpg", "test/data/c.jpg", "test/helper.rb", "test/temp", "test/temp/a.jpg", "test/temp/a.jpg_original", "test/temp/b.jpg", "test/temp/b.jpg_original", "test/temp/c.jpg", "test/temp/c.jpg_original", "test/test_executable.rb", "test/test_exiftool_stuff.rb", "test/test_functional_api.rb", "test/test_reader.rb", "test/test_values.rb", "test/test_values_using_groups.rb", "test/test_writer.rb", "test/test_writer_groups.rb"]
|
19
19
|
s.homepage = "https://github.com/janfri/multi_exiftool"
|
20
20
|
s.licenses = ["MIT"]
|
21
21
|
s.post_install_message = "\n+-----------------------------------------------------------------------+\n| Please ensure you have installed exiftool version 7.65 or higher and |\n| it's found in your PATH (Try \"exiftool -ver\" on your commandline). |\n| For more details see |\n| http://www.sno.phy.queensu.ca/~phil/exiftool/install.html |\n+-----------------------------------------------------------------------+\n "
|
22
22
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.1")
|
23
23
|
s.requirements = ["exiftool, version 7.65 or higher"]
|
24
|
-
s.rubygems_version = "2.6
|
24
|
+
s.rubygems_version = "2.7.6"
|
25
25
|
s.summary = "This library is a wrapper for the ExifTool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool)."
|
26
26
|
|
27
27
|
if s.respond_to? :specification_version then
|
@@ -29,22 +29,22 @@ Gem::Specification.new do |s|
|
|
29
29
|
|
30
30
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
31
31
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
32
|
-
s.add_development_dependency(%q<rim>, ["~> 2.
|
32
|
+
s.add_development_dependency(%q<rim>, ["~> 2.17"])
|
33
33
|
s.add_development_dependency(%q<contest>, ["~> 0.1"])
|
34
34
|
s.add_development_dependency(%q<test-unit>, [">= 0"])
|
35
|
-
s.add_development_dependency(%q<regtest>, ["~>
|
35
|
+
s.add_development_dependency(%q<regtest>, ["~> 2"])
|
36
36
|
else
|
37
37
|
s.add_dependency(%q<rake>, [">= 0"])
|
38
|
-
s.add_dependency(%q<rim>, ["~> 2.
|
38
|
+
s.add_dependency(%q<rim>, ["~> 2.17"])
|
39
39
|
s.add_dependency(%q<contest>, ["~> 0.1"])
|
40
40
|
s.add_dependency(%q<test-unit>, [">= 0"])
|
41
|
-
s.add_dependency(%q<regtest>, ["~>
|
41
|
+
s.add_dependency(%q<regtest>, ["~> 2"])
|
42
42
|
end
|
43
43
|
else
|
44
44
|
s.add_dependency(%q<rake>, [">= 0"])
|
45
|
-
s.add_dependency(%q<rim>, ["~> 2.
|
45
|
+
s.add_dependency(%q<rim>, ["~> 2.17"])
|
46
46
|
s.add_dependency(%q<contest>, ["~> 0.1"])
|
47
47
|
s.add_dependency(%q<test-unit>, [">= 0"])
|
48
|
-
s.add_dependency(%q<regtest>, ["~>
|
48
|
+
s.add_dependency(%q<regtest>, ["~> 2"])
|
49
49
|
end
|
50
50
|
end
|
data/regtest/read_all_tags.rb
CHANGED
data/regtest/test.jpg
ADDED
Binary file
|
data/test/helper.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require_relative '../lib/multi_exiftool'
|
3
5
|
require 'contest'
|
4
6
|
require 'fileutils'
|
@@ -7,11 +9,11 @@ require 'tmpdir'
|
|
7
9
|
|
8
10
|
module TestHelper
|
9
11
|
|
10
|
-
|
12
|
+
DATA_FILES = Dir.glob(File.join(File.dirname(__FILE__), 'data/*'))
|
11
13
|
|
12
14
|
def run_in_temp_dir &block
|
13
|
-
Dir.
|
14
|
-
FileUtils.cp_r
|
15
|
+
Dir.mktmpdir do |tmpdir|
|
16
|
+
FileUtils.cp_r DATA_FILES, tmpdir
|
15
17
|
Dir.chdir tmpdir do
|
16
18
|
block.call
|
17
19
|
end
|
data/test/temp/a.jpg
ADDED
Binary file
|
Binary file
|
data/test/temp/b.jpg
ADDED
Binary file
|
Binary file
|
data/test/temp/c.jpg
ADDED
Binary file
|
Binary file
|
data/test/test_executable.rb
CHANGED
data/test/test_exiftool_stuff.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require_relative 'helper'
|
3
5
|
|
4
6
|
class TestExiftoolStuff < Test::Unit::TestCase
|
@@ -20,7 +22,7 @@ class TestExiftoolStuff < Test::Unit::TestCase
|
|
20
22
|
v = MultiExiftool.exiftool_version
|
21
23
|
assert_not_nil v
|
22
24
|
end
|
23
|
-
assert t_now *
|
25
|
+
assert t_now * 10 < t_org, 'access to cached version of attribute exiftool_version should be 10 times faster'
|
24
26
|
end
|
25
27
|
|
26
28
|
protected
|
data/test/test_functional_api.rb
CHANGED
data/test/test_reader.rb
CHANGED
data/test/test_values.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
2
4
|
require_relative 'helper'
|
3
5
|
require 'date'
|
4
6
|
|
@@ -91,7 +93,9 @@ class TestValues < Test::Unit::TestCase
|
|
91
93
|
|
92
94
|
setup do
|
93
95
|
hash = {
|
94
|
-
'ShutterSpeed' => '1/200'
|
96
|
+
'ShutterSpeed' => '1/200',
|
97
|
+
'PartOfSet' => '1/2',
|
98
|
+
'Track' => '1/5'
|
95
99
|
}
|
96
100
|
@values = MultiExiftool::Values.new(hash)
|
97
101
|
end
|
@@ -100,6 +104,11 @@ class TestValues < Test::Unit::TestCase
|
|
100
104
|
assert_equal Rational(1, 200), @values['ShutterSpeed']
|
101
105
|
end
|
102
106
|
|
107
|
+
test 'no rational conversion' do
|
108
|
+
assert_equal '1/2', @values['PartOfSet']
|
109
|
+
assert_equal '1/5', @values['Track']
|
110
|
+
end
|
111
|
+
|
103
112
|
end
|
104
113
|
|
105
114
|
end
|
data/test/test_writer.rb
CHANGED
data/test/test_writer_groups.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_exiftool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Friedrich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
33
|
+
version: '2.17'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '2.
|
40
|
+
version: '2.17'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: contest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '2'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '2'
|
83
83
|
description: This library a is wrapper for the ExifTool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool)
|
84
84
|
written by Phil Harvey. It is designed for dealing with multiple files at once by
|
85
85
|
creating commands to call exiftool with various arguments, call it and parsing the
|
@@ -103,10 +103,17 @@ files:
|
|
103
103
|
- multi_exiftool.gemspec
|
104
104
|
- regtest/read_all_tags.rb
|
105
105
|
- regtest/read_all_tags.yml
|
106
|
+
- regtest/test.jpg
|
106
107
|
- test/data/a.jpg
|
107
108
|
- test/data/b.jpg
|
108
109
|
- test/data/c.jpg
|
109
110
|
- test/helper.rb
|
111
|
+
- test/temp/a.jpg
|
112
|
+
- test/temp/a.jpg_original
|
113
|
+
- test/temp/b.jpg
|
114
|
+
- test/temp/b.jpg_original
|
115
|
+
- test/temp/c.jpg
|
116
|
+
- test/temp/c.jpg_original
|
110
117
|
- test/test_executable.rb
|
111
118
|
- test/test_exiftool_stuff.rb
|
112
119
|
- test/test_functional_api.rb
|
@@ -141,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
148
|
requirements:
|
142
149
|
- exiftool, version 7.65 or higher
|
143
150
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.6
|
151
|
+
rubygems_version: 2.7.6
|
145
152
|
signing_key:
|
146
153
|
specification_version: 4
|
147
154
|
summary: This library is a wrapper for the ExifTool command-line application (http://www.sno.phy.queensu.ca/~phil/exiftool).
|