zpng 0.4.4 → 0.4.6

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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zpng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey "Zed" Zaikin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-14 00:00:00.000000000 Z
11
+ date: 2026-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: iostruct
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,9 +112,10 @@ files:
98
112
  - lib/zpng/deep_copyable.rb
99
113
  - lib/zpng/hexdump.rb
100
114
  - lib/zpng/image.rb
115
+ - lib/zpng/jpeg/chunks.rb
116
+ - lib/zpng/jpeg/reader.rb
101
117
  - lib/zpng/metadata.rb
102
118
  - lib/zpng/pixels.rb
103
- - lib/zpng/readable_struct.rb
104
119
  - lib/zpng/scan_line.rb
105
120
  - lib/zpng/scan_line/mixins.rb
106
121
  - lib/zpng/string_ext.rb
@@ -124,6 +139,7 @@ files:
124
139
  - spec/modify_spec.rb
125
140
  - spec/pixel_access_spec.rb
126
141
  - spec/pixels_enumerator_spec.rb
142
+ - spec/rotate_spec.rb
127
143
  - spec/running_pixel_spec.rb
128
144
  - spec/set_random_pixel_spec.rb
129
145
  - spec/spec_helper.rb
@@ -148,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
164
  - !ruby/object:Gem::Version
149
165
  version: '0'
150
166
  requirements: []
151
- rubygems_version: 3.3.7
167
+ rubygems_version: 3.2.33
152
168
  signing_key:
153
169
  specification_version: 4
154
170
  summary: pure ruby PNG file manipulation & validation
@@ -1,56 +0,0 @@
1
- module ZPNG
2
- module ReadableStruct
3
-
4
- def self.new fmt, *args
5
- size = fmt.scan(/([a-z])(\d*)/i).map do |f,len|
6
- [len.to_i, 1].max *
7
- case f
8
- when /[aAC]/ then 1
9
- when 'v' then 2
10
- when 'V','l' then 4
11
- when 'Q' then 8
12
- else raise "unknown fmt #{f.inspect}"
13
- end
14
- end.inject(&:+)
15
-
16
- Struct.new( *args ).tap do |x|
17
- x.const_set 'FORMAT', fmt
18
- x.const_set 'SIZE', size
19
- x.class_eval do
20
- include InstanceMethods
21
- end
22
- x.extend ClassMethods
23
- end
24
- end
25
-
26
- module ClassMethods
27
- # src can be IO or String, or anything that responds to :read or :unpack
28
- def read src, size = nil
29
- size ||= const_get 'SIZE'
30
- data =
31
- if src.respond_to?(:read)
32
- src.read(size).to_s
33
- elsif src.respond_to?(:unpack)
34
- src
35
- else
36
- raise "[?] don't know how to read from #{src.inspect}"
37
- end
38
- if data.size < size
39
- $stderr.puts "[!] #{self.to_s} want #{size} bytes, got #{data.size}"
40
- end
41
- new(*data.unpack(const_get('FORMAT')))
42
- end
43
- end
44
-
45
- module InstanceMethods
46
- def pack
47
- to_a.pack self.class.const_get('FORMAT')
48
- end
49
-
50
- def empty?
51
- to_a.all?{ |t| t == 0 || t.nil? || t.to_s.tr("\x00","").empty? }
52
- end
53
- end
54
-
55
- end # ReadableStruct
56
- end # ZPNG