image_size 1.3.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTU4YzA0NzUyYWUyZWYzMDgzY2JhYTk1NmMyZGM0NzY4YTcyZjZkYw==
4
+ MGIyMzZhMDAxMjI3NjllMTM1ODUyNzZjYWI5NmU3OGRiNjliMGRlMg==
5
5
  data.tar.gz: !binary |-
6
- NmY0ZmEzNjg1MjdmNTg1ZGZjNTYwOTExNzAzMTJhNzNiNDdlZWU4NA==
7
- !binary "U0hBNTEy":
6
+ MjI1MTRkYzM2YWIyODA5OGFhZjQxMTA1YmEzYmEwYzBlZmUxZmNmYg==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- NjM1NjgxYzhiMTYwMTk4YWQ2NzUwZjVkZTE3NDFkN2I4NzZiM2RiYWQ3MjBi
10
- OTExZjM1MTI0YmJiMzU3YTNkNWVhZmQ0M2ExMDE1ZGM4M2JkMTRkZTc3YTkw
11
- ZWNmMWYxMWM4YWFjMGM4YTY0NjMyYTAwYTliMTc5ODIwMzZiOGU=
9
+ NWM2ZmNmOWQzZjI2ODVhYWNlNWQ0OTBmY2FhYjE4NWE2ZGMxZjljNmY3M2M5
10
+ ZWRkZGYwN2MzZTUwOWYzMTg0MWViYjQyNzc5NzBiYjY0YTFmYmVmYjk5MGRl
11
+ OTMxMzY2NjA3NDdiNzYxYmVjZTViZTZmYmNjZGViMzVhYTM0YWM=
12
12
  data.tar.gz: !binary |-
13
- ZDE5NjZlNDc4OWYwOTYyYzM0YjQ4NTlhYzZjYzBkZmI5MjVjODZmYmUxZGU2
14
- M2ZkNzk3YzI2Mjc4YzYwYmU1ODg5ZjIzYTAyZmYyNzk0YzFhMGRiYzlmYjZm
15
- OGZiNDk4MDI4MGRkMzk3ZmEyZGU1NzY0ZWVlZjRkYzU4YTU2OTQ=
13
+ NzFlNjU2MWFiOTkwMjNhOGMyZjhiYWQxZmM0ZGY0YTczYTg5OTc4OTc5MzQw
14
+ Zjg4ZGY0MGFjYjlmNzdjMGZjOGFkYmIwMjA3Yzc2NDMwMzI5NGFiMzQ2ZDAy
15
+ MWRkMWFjNDY2MjA4YWIyMmM3ZjAyZjQ1MjAwMDBjYjEzNTkzYzY=
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'image_size'
5
- s.version = '1.3.1'
5
+ s.version = '1.4.0'
6
6
  s.summary = %q{Measure image size using pure Ruby}
7
7
  s.description = %q{Measure following file dimensions: bmp, gif, jpeg, pbm, pcx, pgm, png, ppm, psd, swf, tiff, xbm, xpm}
8
8
  s.homepage = "http://github.com/toy/#{s.name}"
@@ -16,5 +16,5 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = %w[lib]
18
18
 
19
- s.add_development_dependency 'rspec'
19
+ s.add_development_dependency 'rspec', '~> 3.0'
20
20
  end
@@ -111,6 +111,8 @@ private
111
111
  head =~ /<\?xml|<!--/ && ir[0, 4096][SVG_R]
112
112
  then :svg
113
113
  when head[0, 2] =~ /\n[\000-\005]/ then :pcx
114
+ when head[0, 4] == "\000\000\001\000" then :ico
115
+ when head[0, 4] == "\000\000\002\000" then :cur
114
116
  end
115
117
  end
116
118
 
@@ -261,4 +263,9 @@ private
261
263
  end
262
264
  end
263
265
  end
266
+
267
+ def size_of_ico(ir)
268
+ ir[6, 2].unpack('CC').map{ |v| v.zero? ? 256 : v }
269
+ end
270
+ alias_method :size_of_cur, :size_of_ico
264
271
  end
@@ -20,6 +20,8 @@ describe ImageSize do
20
20
  ['test.xbm', :xbm, 16, 32],
21
21
  ['test.xpm', :xpm, 24, 32],
22
22
  ['test.svg', :svg, 72, 100],
23
+ ['test.ico', :ico, 256, 27],
24
+ ['test.cur', :cur, 50, 256],
23
25
  ['image_size_spec.rb', nil, nil, nil],
24
26
  ].each do |name, format, width, height|
25
27
  path = File.join(File.dirname(__FILE__), name)
@@ -28,25 +30,25 @@ describe ImageSize do
28
30
  it "should get format and dimensions for #{name} given IO" do
29
31
  File.open(path, 'rb') do |fh|
30
32
  is = ImageSize.new(fh)
31
- [is.format, is.width, is.height].should == [format, width, height]
32
- fh.should_not be_closed
33
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
34
+ expect(fh).not_to be_closed
33
35
  fh.rewind
34
- fh.read.should == file_data
36
+ expect(fh.read).to eq(file_data)
35
37
  end
36
38
  end
37
39
 
38
40
  it "should get format and dimensions for #{name} given StringIO" do
39
41
  io = StringIO.new(file_data)
40
42
  is = ImageSize.new(io)
41
- [is.format, is.width, is.height].should == [format, width, height]
42
- io.should_not be_closed
43
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
44
+ expect(io).not_to be_closed
43
45
  io.rewind
44
- io.read.should == file_data
46
+ expect(io.read).to eq(file_data)
45
47
  end
46
48
 
47
49
  it "should get format and dimensions for #{name} given file data" do
48
50
  is = ImageSize.new(file_data)
49
- [is.format, is.width, is.height].should == [format, width, height]
51
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
50
52
  end
51
53
 
52
54
  it "should get format and dimensions for #{name} given Tempfile" do
@@ -55,32 +57,32 @@ describe ImageSize do
55
57
  tf.write(file_data)
56
58
  tf.rewind
57
59
  is = ImageSize.new(tf)
58
- [is.format, is.width, is.height].should == [format, width, height]
59
- tf.should_not be_closed
60
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
61
+ expect(tf).not_to be_closed
60
62
  tf.rewind
61
- tf.read.should == file_data
63
+ expect(tf.read).to eq(file_data)
62
64
  end
63
65
  end
64
66
 
65
67
  it "should get format and dimensions for #{name} given IO when run twice" do
66
68
  File.open(path, 'rb') do |fh|
67
69
  is = ImageSize.new(fh)
68
- [is.format, is.width, is.height].should == [format, width, height]
70
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
69
71
  is = ImageSize.new(fh)
70
- [is.format, is.width, is.height].should == [format, width, height]
72
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
71
73
  end
72
74
  end
73
75
 
74
76
  it "should get format and dimensions for #{name} as path" do
75
77
  is = ImageSize.path(path)
76
- [is.format, is.width, is.height].should == [format, width, height]
78
+ expect([is.format, is.width, is.height]).to eq([format, width, height])
77
79
  end
78
80
  end
79
81
 
80
82
  it "should raise ArgumentError if argument is not valid" do
81
- lambda {
83
+ expect {
82
84
  ImageSize.new(Object)
83
- }.should raise_error(ArgumentError)
85
+ }.to raise_error(ArgumentError)
84
86
  end
85
87
 
86
88
  {
@@ -88,9 +90,9 @@ describe ImageSize do
88
90
  :jpeg => "\377\330",
89
91
  }.each do |type, data|
90
92
  it "should raise FormatError if invalid #{type} given" do
91
- lambda {
93
+ expect {
92
94
  ImageSize.new(data)
93
- }.should raise_error(ImageSize::FormatError)
95
+ }.to raise_error(ImageSize::FormatError)
94
96
  end
95
97
  end
96
98
  end
Binary file
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_size
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keisuke Minami
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-24 00:00:00.000000000 Z
12
+ date: 2014-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ! '>='
18
+ - - ~>
19
19
  - !ruby/object:Gem::Version
20
- version: '0'
20
+ version: '3.0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ! '>='
25
+ - - ~>
26
26
  - !ruby/object:Gem::Version
27
- version: '0'
27
+ version: '3.0'
28
28
  description: ! 'Measure following file dimensions: bmp, gif, jpeg, pbm, pcx, pgm,
29
29
  png, ppm, psd, swf, tiff, xbm, xpm'
30
30
  email:
@@ -39,7 +39,9 @@ files:
39
39
  - image_size.gemspec
40
40
  - lib/image_size.rb
41
41
  - spec/image_size_spec.rb
42
+ - spec/test.cur
42
43
  - spec/test.gif
44
+ - spec/test.ico
43
45
  - spec/test.jpg
44
46
  - spec/test.pbm
45
47
  - spec/test.pcx
@@ -75,13 +77,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
77
  version: '0'
76
78
  requirements: []
77
79
  rubyforge_project: image_size
78
- rubygems_version: 2.0.3
80
+ rubygems_version: 2.4.3
79
81
  signing_key:
80
82
  specification_version: 4
81
83
  summary: Measure image size using pure Ruby
82
84
  test_files:
83
85
  - spec/image_size_spec.rb
86
+ - spec/test.cur
84
87
  - spec/test.gif
88
+ - spec/test.ico
85
89
  - spec/test.jpg
86
90
  - spec/test.pbm
87
91
  - spec/test.pcx