visualtag 0.0.1 → 1.0.0

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.
data/bin/visualtag CHANGED
@@ -2,25 +2,20 @@
2
2
  require "optparse"
3
3
  require "visualtag"
4
4
 
5
- options = { :pattern_dimension => 1800,
6
- :border_dimension => 720,
5
+ options = { :pattern_dimension => 1800,
7
6
  :filename => 'tag.svg',
8
- :pattern => [[1,0,1,0,1,0],[0,1,0,1,0,1]]*3}
7
+ :pattern => [[1,0,1,0,1,0],[0,1,0,1,0,1]]*3,
8
+ :verbose => false}
9
9
 
10
10
  ARGV.options do |opts|
11
- opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} [OPTIONS] OTHER_ARGS"
11
+ opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} [OPTIONS]"
12
12
 
13
13
  opts.separator ""
14
14
  opts.separator "Specific Options:"
15
15
 
16
- opts.on( "-d D", "--pattern-dimension", Integer,
17
- "Dimension of the pattern, in pixels." ) do |opt|
18
- options[:pattern_dimension] = opt
19
- end
20
-
21
- opts.on( "-b D", "--border-dimension", Integer,
22
- "Dimension of the border, in pixels." ) do |opt|
23
- options[:border_dimension] = opt
16
+ opts.on( "-c C", "--cell-dimension", Integer,
17
+ "Dimension of each cell of the pattern, in pixels." ) do |opt|
18
+ options[:pattern_dimension] = opt*6
24
19
  end
25
20
 
26
21
  opts.on( "-f F", "--filename", String,
@@ -30,28 +25,14 @@ ARGV.options do |opts|
30
25
 
31
26
  opts.on( "-p P", "--pattern", String,
32
27
  "The pattern of the tag, matlab (mat2str surrounded with \") or ruby (to_s) representations are allowed" ) do |opt|
33
- options[:pattern] = []
34
- begin
35
- options[:pattern] = eval(opt)
36
- rescue Exception => exc
37
- puts 'Not a ruby matrix.. maybe its matlab..'
38
- end
39
-
40
- begin
41
- opt.each_line(';') do |row|
42
- rubyrow = []
43
- row.scan(/false|true|1|0/) do |match|
44
- value = eval(match)
45
- rubyrow << (value.class.name == 'Fixnum'? value > 0: value)
46
- end
47
- options[:pattern] << rubyrow.map { |e| e ? 1 : 0 }
48
- end
49
- rescue
50
- puts 'Not matlab.. its unknown'
51
- end
52
- puts options[:pattern]
28
+ options[:pattern] = opt
53
29
  end
54
30
 
31
+ opts.on( "-v", "--verbose",
32
+ "Print some text while executing." ) do |opt|
33
+ options[:verbose] = opt
34
+ end
35
+
55
36
  opts.separator "Common Options:"
56
37
 
57
38
  opts.on( "-h", "--help",
@@ -66,7 +47,59 @@ ARGV.options do |opts|
66
47
  puts opts
67
48
  exit
68
49
  end
50
+ end
69
51
 
70
- Visualtag::create(options[:pattern], options[:filename], options[:pattern_dimension], options[:border_dimension])
52
+ pattern = []
53
+ if options[:pattern].class.name == 'Array'
54
+ pattern = options[:pattern]
55
+ if options[:verbose]
56
+ puts 'Using default pattern'
57
+ end
58
+ else
59
+ begin
60
+ pattern = eval(options[:pattern])
61
+ if (pattern.class.name == 'Array' && options[:verbose])
62
+ puts 'Found a ruby matrix'
63
+ end
64
+ rescue Exception => exc
65
+ begin
66
+ pattern = []
67
+ options[:pattern].each_line(';') do |row|
68
+ rubyrow = []
69
+ row.scan(/false|true|1|0/) do |match|
70
+ value = eval(match)
71
+ rubyrow << (value.class.name == 'Fixnum'? value > 0: value)
72
+ end
73
+ pattern << rubyrow.map { |e| e ? 1 : 0 }
74
+ end
75
+ if options[:verbose]
76
+ puts 'Found a matlab matrix'
77
+ end
78
+ rescue
79
+ puts 'Error: Pattern format unknown'
80
+ Process.exit
81
+ end
82
+ end
83
+ end
71
84
 
85
+ if pattern.class.name == 'Array'
86
+ if options[:verbose]
87
+ puts 'Used pattern:'
88
+ puts pattern.inspect
89
+ end
90
+ else
91
+ puts 'Error: wrong pattern format. It must be an array'
92
+ Process.exit
93
+ end
94
+
95
+ begin
96
+ Visualtag::create(pattern, options[:filename], options[:pattern_dimension], Float(options[:pattern_dimension])/2.0)
97
+ if options[:verbose]
98
+ puts "Created file #{options[:filename]}"
99
+ end
100
+ rescue
101
+ if options[:verbose]
102
+ puts "Error in generating the tag file"
103
+ Process.exit
104
+ end
72
105
  end
data/lib/visualtag.rb CHANGED
@@ -11,7 +11,13 @@ module Visualtag
11
11
 
12
12
  img = Rasem::SVGImage.new(tag_dimension,tag_dimension) do
13
13
  rectangle 0, 0, tag_dimension,tag_dimension, :stroke=>'black', :fill=>'black'
14
+ if pattern.length != 6
15
+ raise 'Wrong pattern dimension'
16
+ end
14
17
  pattern.each.with_index do |row, row_index|
18
+ if row.length != 6
19
+ raise 'Wrong pattern dimension'
20
+ end
15
21
  row.reverse.each.with_index do |cell, column_index|
16
22
  if cell == 0
17
23
  color = 'black'
@@ -1,3 +1,3 @@
1
1
  module Visualtag
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: visualtag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-07 00:00:00.000000000 Z
12
+ date: 2012-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rasem