mork 0.0.7 → 0.0.8
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 +4 -4
- data/lib/mork/grid.rb +8 -3
- data/lib/mork/sheet.rb +21 -14
- data/lib/mork/version.rb +1 -1
- data/spec/mork/sheet_spec.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1d8680deb48b3f4cfa54e859ecc4070513a4c7c
|
4
|
+
data.tar.gz: f7f0e1946eb795913a3460ddda3222fe5a706193
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23fb14992bb44471554dc8c27b0bf5f28a2109848fd4e4c51c791969dccf32e4e34ead8c67a40b4c4a768f096a087e96818ec6f3adad43612b23971c31a7f231
|
7
|
+
data.tar.gz: c7c205813250d74ce995cd212c1eb37dca022269a17b2965e0bf6e1db81c93f4c3edb6fac964848cff5902c2ab16a4611ab1db25d0de5f92ce557aad4489475c
|
data/lib/mork/grid.rb
CHANGED
@@ -6,12 +6,17 @@ module Mork
|
|
6
6
|
# All returned values are in the arbitrary units given in the configuration file
|
7
7
|
class Grid
|
8
8
|
|
9
|
-
def initialize(options
|
9
|
+
def initialize(options=nil)
|
10
|
+
@params = DGRID
|
10
11
|
case options.class.to_s
|
12
|
+
when 'NilClass'
|
13
|
+
if File.exists? 'config/grid.yml'
|
14
|
+
@params.merge! symbolize YAML.load_file('config/grid.yml')
|
15
|
+
end
|
11
16
|
when "Hash"
|
12
|
-
@params
|
17
|
+
@params.merge! symbolize options
|
13
18
|
when "String"
|
14
|
-
@params
|
19
|
+
@params.merge! symbolize YAML.load_file(options)
|
15
20
|
else
|
16
21
|
raise "Invalid options parameter: #{options.class.inspect}"
|
17
22
|
end
|
data/lib/mork/sheet.rb
CHANGED
@@ -14,10 +14,19 @@ module Mork
|
|
14
14
|
# grid itself; this method assumes a 'stretch' strategy, i.e. where the image
|
15
15
|
# after registration has the same size in pixels as the original scanned file
|
16
16
|
@grid.set_page_size @raw.width, @raw.height
|
17
|
+
@rm = {}
|
17
18
|
@rmsa = {}
|
18
19
|
@ok_reg = register @raw
|
19
20
|
end
|
20
21
|
|
22
|
+
def valid?
|
23
|
+
@ok_reg
|
24
|
+
end
|
25
|
+
|
26
|
+
def status
|
27
|
+
@rm
|
28
|
+
end
|
29
|
+
|
21
30
|
# code
|
22
31
|
#
|
23
32
|
# returns the sheet code as an integer
|
@@ -191,20 +200,18 @@ module Mork
|
|
191
200
|
# ================
|
192
201
|
|
193
202
|
def register(img)
|
194
|
-
@rm = []
|
195
|
-
@reg_status = []
|
196
203
|
# find the XY coordinates of the 4 registration marks
|
197
|
-
@
|
198
|
-
@
|
199
|
-
@
|
200
|
-
@
|
201
|
-
return false if @
|
204
|
+
@rm[:tl] = reg_centroid_on(img, :tl)
|
205
|
+
@rm[:tr] = reg_centroid_on(img, :tr)
|
206
|
+
@rm[:br] = reg_centroid_on(img, :br)
|
207
|
+
@rm[:bl] = reg_centroid_on(img, :bl)
|
208
|
+
return false if @rm.any? { |k,v| v[:status] != :ok }
|
202
209
|
# stretch the 4 points to fit the original size and return the resulting image
|
203
210
|
@crop = img.stretch [
|
204
|
-
@rm[
|
205
|
-
@rm[
|
206
|
-
@rm[
|
207
|
-
@rm[
|
211
|
+
@rm[:tl][:x], @rm[:tl][:y], 0, 0,
|
212
|
+
@rm[:tr][:x], @rm[:tr][:y], img.width, 0,
|
213
|
+
@rm[:br][:x], @rm[:br][:y], img.width, img.height,
|
214
|
+
@rm[:bl][:x], @rm[:bl][:y], 0, img.height
|
208
215
|
]
|
209
216
|
true
|
210
217
|
end
|
@@ -223,9 +230,9 @@ module Mork
|
|
223
230
|
(cx > @rmsa[corner][:w] - @grid.rm_edgy_x)
|
224
231
|
status = :edgy
|
225
232
|
else
|
226
|
-
return :ok, cx + @rmsa[corner][:x], cy + @rmsa[corner][:y]
|
233
|
+
return {status: :ok, x: cx + @rmsa[corner][:x], y: cy + @rmsa[corner][:y]}
|
227
234
|
end
|
228
|
-
return status if @rmsa[corner][:w] > @grid.rm_max_search_area_side
|
235
|
+
return {status: status, x: nil, y: nil} if @rmsa[corner][:w] > @grid.rm_max_search_area_side
|
229
236
|
end
|
230
237
|
end
|
231
238
|
|
@@ -235,7 +242,7 @@ module Mork
|
|
235
242
|
|
236
243
|
def not_registered
|
237
244
|
unless @ok_reg
|
238
|
-
puts "---=={ Unregistered image. Reason: '#{@
|
245
|
+
puts "---=={ Unregistered image. Reason: '#{@rm.inspect}' }==---"
|
239
246
|
true
|
240
247
|
end
|
241
248
|
end
|
data/lib/mork/version.rb
CHANGED
data/spec/mork/sheet_spec.rb
CHANGED
@@ -32,6 +32,23 @@ module Mork
|
|
32
32
|
before(:all) do
|
33
33
|
@sheet = Sheet.new('spec/samples/sample01.jpg', Grid.new('spec/samples/grid01.yml'))
|
34
34
|
end
|
35
|
+
|
36
|
+
describe '#valid?' do
|
37
|
+
it 'returns true' do
|
38
|
+
@sheet.valid?.should be_truthy
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe '#status' do
|
43
|
+
it 'returns :ok' do
|
44
|
+
@sheet.status.should == {
|
45
|
+
tl: { status: :ok, x: 54, y: 49},
|
46
|
+
tr: { status: :ok, x: 1543, y: 43},
|
47
|
+
br: { status: :ok, x: 1548, y: 2224},
|
48
|
+
bl: { status: :ok, x: 59, y: 2230}
|
49
|
+
}
|
50
|
+
end
|
51
|
+
end
|
35
52
|
|
36
53
|
describe "#marked?" do
|
37
54
|
it "should return true for some darkened choices" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giuseppe Bertini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: narray
|