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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77cd220a9af15fb52c434ad78e5436e922a92d9b
4
- data.tar.gz: 7ec01ec5ef0fe665822dbcf2da5b4c59682db51c
3
+ metadata.gz: e1d8680deb48b3f4cfa54e859ecc4070513a4c7c
4
+ data.tar.gz: f7f0e1946eb795913a3460ddda3222fe5a706193
5
5
  SHA512:
6
- metadata.gz: 4f59e836632c2cb223193480692b52631b09a7739b61e8b839f36babdd77ccef7785a0515c54cc670327547b9ca1f26e99bc8a389914b2864d51547de249e575
7
- data.tar.gz: 29829dc19f2217b4beadd263f181290c585f5e54f0463b6b62d10b489b517deac42ffdf76d3c543a5942d84dbad364f0e7b4db871bb3fde87d7ce9a0ff5d0e30
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 = DGRID.merge symbolize options
17
+ @params.merge! symbolize options
13
18
  when "String"
14
- @params = DGRID.merge symbolize YAML.load_file(options)
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
- @reg_status[0], @rm[0], @rm[1] = reg_centroid_on(img, :tl)
198
- @reg_status[1], @rm[2], @rm[3] = reg_centroid_on(img, :tr)
199
- @reg_status[2], @rm[4], @rm[5] = reg_centroid_on(img, :br)
200
- @reg_status[3], @rm[6], @rm[7] = reg_centroid_on(img, :bl)
201
- return false if @reg_status.any? { |c| c != :ok }
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[0], @rm[1], 0, 0,
205
- @rm[2], @rm[3], img.width, 0,
206
- @rm[4], @rm[5], img.width, img.height,
207
- @rm[6], @rm[7], 0, img.height
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: '#{@reg_status.inspect}' }==---"
245
+ puts "---=={ Unregistered image. Reason: '#{@rm.inspect}' }==---"
239
246
  true
240
247
  end
241
248
  end
data/lib/mork/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mork
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -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.7
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-07 00:00:00.000000000 Z
11
+ date: 2014-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: narray