exifr 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/CHANGELOG +3 -0
  2. data/lib/exifr/jpeg.rb +15 -11
  3. metadata +52 -32
  4. checksums.yaml +0 -7
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ EXIF Reader 1.2.2
2
+ * bug fix; "use Reader delegator instead of adding method to File instance"; thanks Ivan Kuchin
3
+
1
4
  EXIF Reader 1.2.1
2
5
  * bug fix: Value of infinity yields division by zero error
3
6
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'exifr'
4
4
  require 'stringio'
5
+ require 'delegate'
5
6
 
6
7
  module EXIFR
7
8
  # = JPEG decoder
@@ -76,18 +77,21 @@ module EXIFR
76
77
  end
77
78
 
78
79
  private
80
+
81
+ class Reader < SimpleDelegator
82
+ def readbyte; readchar; end unless File.method_defined?(:readbyte)
83
+ def readint; (readbyte << 8) + readbyte; end
84
+ def readframe; read(readint - 2); end
85
+ def readsof; [readint, readbyte, readint, readint, readbyte]; end
86
+ def next
87
+ c = readbyte while c != 0xFF
88
+ c = readbyte while c == 0xFF
89
+ c
90
+ end
91
+ end
92
+
79
93
  def examine(io)
80
- class << io
81
- def readbyte; readchar; end unless method_defined?(:readbyte)
82
- def readint; (readbyte << 8) + readbyte; end
83
- def readframe; read(readint - 2); end
84
- def readsof; [readint, readbyte, readint, readint, readbyte]; end
85
- def next
86
- c = readbyte while c != 0xFF
87
- c = readbyte while c == 0xFF
88
- c
89
- end
90
- end unless io.respond_to? :readsof
94
+ io = Reader.new(io)
91
95
 
92
96
  unless io.readbyte == 0xFF && io.readbyte == 0xD8 # SOI
93
97
  raise MalformedJPEG, "no start of image marker found"
metadata CHANGED
@@ -1,80 +1,100 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: exifr
3
- version: !ruby/object:Gem::Version
4
- version: 1.2.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 2
9
+ - 2
10
+ version: 1.2.2
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - R.W. van 't Veer
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
17
+
18
+ date: 2015-05-03 00:00:00 +02:00
19
+ default_executable:
12
20
  dependencies: []
21
+
13
22
  description: EXIF Reader is a module to read EXIF from JPEG and TIFF images.
14
23
  email: remco@remvee.net
15
- executables:
24
+ executables:
16
25
  - exifr
17
26
  extensions: []
18
- extra_rdoc_files:
27
+
28
+ extra_rdoc_files:
19
29
  - README.rdoc
20
30
  - CHANGELOG
21
- files:
22
- - CHANGELOG
23
- - README.rdoc
31
+ files:
24
32
  - Rakefile
25
33
  - bin/exifr
26
34
  - lib/exifr.rb
27
35
  - lib/exifr/jpeg.rb
28
36
  - lib/exifr/tiff.rb
29
37
  - tests/data/1x1.jpg
30
- - tests/data/Canon_PowerShot_A85.exif
31
- - tests/data/Casio-EX-S20.exif
32
- - tests/data/FUJIFILM-FinePix_S3000.exif
33
- - tests/data/Panasonic-DMC-LC33.exif
34
- - tests/data/Trust-DC3500_MINI.exif
35
38
  - tests/data/apple-aperture-1.5.exif
36
- - tests/data/bad-shutter_speed_value.exif
37
39
  - tests/data/canon-g3.exif
40
+ - tests/data/Canon_PowerShot_A85.exif
41
+ - tests/data/Casio-EX-S20.exif
38
42
  - tests/data/endless-loop.exif
39
43
  - tests/data/exif.jpg
44
+ - tests/data/FUJIFILM-FinePix_S3000.exif
40
45
  - tests/data/gps.exif
41
46
  - tests/data/image.jpg
42
47
  - tests/data/multiple-app1.jpg
43
48
  - tests/data/negative-exposure-bias-value.exif
44
49
  - tests/data/nikon_d1x.tif
45
50
  - tests/data/out-of-range.exif
51
+ - tests/data/Panasonic-DMC-LC33.exif
46
52
  - tests/data/plain.tif
53
+ - tests/data/Trust-DC3500_MINI.exif
47
54
  - tests/data/user-comment.exif
48
55
  - tests/data/weird_date.exif
56
+ - tests/data/bad-shutter_speed_value.exif
49
57
  - tests/jpeg_test.rb
50
58
  - tests/test_helper.rb
51
59
  - tests/tiff_test.rb
60
+ - README.rdoc
61
+ - CHANGELOG
62
+ has_rdoc: true
52
63
  homepage: http://github.com/remvee/exifr/
53
- licenses:
64
+ licenses:
54
65
  - MIT
55
- metadata: {}
56
66
  post_install_message:
57
- rdoc_options:
58
- - "--title"
67
+ rdoc_options:
68
+ - --title
59
69
  - EXIF Reader for Ruby API Documentation
60
- - "--main"
70
+ - --main
61
71
  - README.rdoc
62
- require_paths:
72
+ require_paths:
63
73
  - lib
64
- required_ruby_version: !ruby/object:Gem::Requirement
65
- requirements:
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
66
77
  - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- required_rubygems_version: !ruby/object:Gem::Requirement
70
- requirements:
78
+ - !ruby/object:Gem::Version
79
+ hash: 3
80
+ segments:
81
+ - 0
82
+ version: "0"
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
71
86
  - - ">="
72
- - !ruby/object:Gem::Version
73
- version: '0'
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
74
92
  requirements: []
93
+
75
94
  rubyforge_project:
76
- rubygems_version: 2.4.5
95
+ rubygems_version: 1.4.2
77
96
  signing_key:
78
- specification_version: 4
97
+ specification_version: 3
79
98
  summary: Read EXIF from JPEG and TIFF images
80
99
  test_files: []
100
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: bf4c33c21139fd7d83d9e101819c2e82dea47766
4
- data.tar.gz: a296b4cb86cedcdf4c03d86794c7be061fd85b4e
5
- SHA512:
6
- metadata.gz: e55c2f8d1d5be3d3dd640281f727756bf96d0feeafae711638a69c42085454a3fd84d8ce2d257ee2925133308306e12d4cc2bb6cc9280dc05b19fbb9ca90f135
7
- data.tar.gz: 289f412a4599fbcac93aa2d420e3602f5f256f7c95939d188830003e23f50970c569c72929a4cf4f296fd9283a58a62fbbe9110e48f9f32efcdcda5693deb827