rubyfca 0.2.7 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/rubyfca +13 -4
- data/lib/rubyfca.rb +9 -4
- data/rubyfca.gemspec +1 -1
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.9
|
data/bin/rubyfca
CHANGED
@@ -25,13 +25,18 @@ where:
|
|
25
25
|
[options]:
|
26
26
|
EOS
|
27
27
|
|
28
|
-
opt :circle, "Use circle shaped concept nodes", :default=> false
|
29
28
|
opt :full, "Do not contract concept labels", :default=> false
|
30
|
-
opt :legend, "Print the legend of concept nodes (available only when using circle node shape)", :default => false
|
31
29
|
opt :coloring, "Color concept nodes [0 = none (default), 1 = lightblue/pink, 2 = monochrome]", :default => 0
|
32
|
-
opt :straight, "Straighten edges (available when output format is either png, jpg, or eps)", :default => false
|
30
|
+
opt :straight, "Straighten edges (available when output format is either png, jpg, svg, pdf, or eps)", :default => false
|
31
|
+
opt :nodesep, "Size of separation between sister nodes (from 0.1 to 5.0)", :default => 0.4
|
32
|
+
opt :ranksep, "Size of separation between ranks (from 0.1 to 5.0)", :default => 0.2
|
33
|
+
opt :legend, "Print the legend of concept nodes (available only when using circle node shape)", :default => false
|
34
|
+
opt :circle, "Use circle shaped concept nodes", :default=> false
|
35
|
+
|
33
36
|
end
|
34
37
|
Trollop::die :coloring, "must be 0, 1, or 2" if (opts[:coloring] > 2 || opts[:coloring] < 0)
|
38
|
+
Trollop::die :ranksep, "must be within 0.1 - 5.0" if (opts[:ranksep] < 0.1 || opts[:ranksep] > 5.0)
|
39
|
+
Trollop::die :nodesep, "must be within 0.1 - 5.0" if (opts[:nodesep] < 0.1 || opts[:nodesep] > 5.0)
|
35
40
|
############### main program ###############
|
36
41
|
|
37
42
|
if ARGV.size != 2
|
@@ -47,7 +52,7 @@ filename2 = ARGV[1] #output filename
|
|
47
52
|
input_type = filename1.slice(/\.[^\.]+\z/).split(//)[1..-1].join("")
|
48
53
|
output_type = filename2.slice(/\.[^\.]+\z/).split(//)[1..-1].join("")
|
49
54
|
|
50
|
-
if (input_type !~ /\A(cxt|csv)\z/ || output_type !~ /\A(dot|png|jpg|eps)\z/)
|
55
|
+
if (input_type !~ /\A(cxt|csv)\z/ || output_type !~ /\A(dot|png|jpg|svg|pdf|eps)\z/)
|
51
56
|
showerror("These file extensions are not (yet) supported.", 1)
|
52
57
|
end
|
53
58
|
|
@@ -92,6 +97,10 @@ when "png"
|
|
92
97
|
ctxt.generate_img(filename2, "png", opts)
|
93
98
|
when "jpg"
|
94
99
|
ctxt.generate_img(filename2, "jpg", opts)
|
100
|
+
when "svg"
|
101
|
+
ctxt.generate_img(filename2, "svg", opts)
|
102
|
+
when "pdf"
|
103
|
+
ctxt.generate_img(filename2, "pdf", opts)
|
95
104
|
when "eps"
|
96
105
|
ctxt.generate_img(filename2, "eps", opts)
|
97
106
|
end
|
data/lib/rubyfca.rb
CHANGED
@@ -327,8 +327,9 @@ class FormalContext
|
|
327
327
|
## For options, see 'rubyfca'
|
328
328
|
def generate_dot(opts)
|
329
329
|
index_max_width = @concepts.size.to_s.split(//).size
|
330
|
-
|
331
|
-
|
330
|
+
nodesep = opts[:nodesep] ? opts[:nodesep].to_s : "0.4"
|
331
|
+
ranksep = opts[:ranksep] ? opts[:ranksep].to_s : "0.2"
|
332
|
+
clattice = RubyGraphviz.new("clattice", :rankdir => "", :nodesep => nodesep, :ranksep => ranksep)
|
332
333
|
|
333
334
|
if opts[:circle] and opts[:legend]
|
334
335
|
legend = RubyGraphviz.new("legend", :rankdir => "TB", :lebelloc => "t", :centered => "false")
|
@@ -352,7 +353,9 @@ class FormalContext
|
|
352
353
|
attrfull = []
|
353
354
|
0.upto(@gammaM.size - 1) do |j|
|
354
355
|
if @gammaM[j][i] == 2
|
355
|
-
|
356
|
+
# pointing finger does not appear correctly in eps...
|
357
|
+
# obj = opts[:full] ? @objects[j] + " " + [0x261C].pack("U") : @objects[j]
|
358
|
+
obj = opts[:full] ? @objects[j] + "*" : @objects[j]
|
356
359
|
objfull << obj
|
357
360
|
elsif @gammaM[j][i] == 1
|
358
361
|
objfull << @objects[j]
|
@@ -360,7 +363,9 @@ class FormalContext
|
|
360
363
|
end
|
361
364
|
0.upto(@muM.size - 1) do |k|
|
362
365
|
if @muM[k][i] == 2
|
363
|
-
|
366
|
+
# pointing finger does not appear correctly in eps...
|
367
|
+
# att = opts[:full] ? @attributes[k] + " " + [0x261C].pack("U") : @attributes[k]
|
368
|
+
att = opts[:full] ? @attributes[k] + "*" : @attributes[k]
|
364
369
|
attrfull << att
|
365
370
|
elsif @muM[k][i] == 1
|
366
371
|
attrfull << @attributes[k]
|
data/rubyfca.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rubyfca}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.9"
|
9
9
|
s.required_ruby_version = ">=1.8.6"
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Yoichiro Hasebe", "Kow Kuroda"]
|