rubyfca 0.2.2 → 0.2.4

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/.gitignore CHANGED
@@ -1,21 +1,5 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
1
+ *.sw?
2
+ .DS_Store
9
3
  coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
4
  rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- .DS_Store
19
- *.bak
20
- *.~
21
- *.log
5
+ pkg
data/README.rdoc CHANGED
@@ -4,7 +4,7 @@ Command line tool for Formal Concept Analysis (FCA) written in Ruby.
4
4
 
5
5
  == Features
6
6
 
7
- * Convert a Conexp's CXT or CSV file and generate a Graphviz DOT file, or a PNG/JPG/EPS image file.
7
+ * Convert a Conexp's CXT file and generate a Graphviz DOT file, or a PNG/JPG/EPS image file.
8
8
  * Adopt the Ganter algorithm (through its Perl implementation of Fcastone by Uta Priss).
9
9
 
10
10
  == Installation
@@ -19,7 +19,7 @@ Install the gem:
19
19
 
20
20
  where:
21
21
  <source file>
22
- "foo.cxt", "foo.csv"
22
+ "foo.cxt"
23
23
  <output file>
24
24
  "bar.dot", "bar.png", "bar.jpg", or "bar.eps"
25
25
  [options]:
@@ -33,6 +33,7 @@ Install the gem:
33
33
 
34
34
  == ToDo
35
35
 
36
+ * Multiple input formats (such as CSV)
36
37
  * Database connection capability
37
38
 
38
39
  == Links
@@ -41,4 +42,4 @@ under construction
41
42
 
42
43
  == Copyright
43
44
 
44
- Copyright (c) 2009-2012 Yoichiro Hasebe and Kow Kuroda. See LICENSE for details.
45
+ Copyright (c) 2009 Yoichiro Hasebe and Kow Kuroda. See LICENSE for details.
data/Rakefile CHANGED
@@ -1,2 +1,56 @@
1
- #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "rubyfca"
8
+ gem.summary = %Q{TODO: one-line summary of your gem}
9
+ gem.description = %Q{TODO: longer description of your gem}
10
+ gem.email = "yohasebe@gmail.com"
11
+ gem.homepage = "http://github.com/yohasebe/rubyfca"
12
+ gem.authors = ["Yoichiro Hasebe"]
13
+ gem.add_development_dependency "thoughtbot-shoulda"
14
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
+ end
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
+ end
19
+
20
+ require 'rake/testtask'
21
+ Rake::TestTask.new(:test) do |test|
22
+ test.libs << 'lib' << 'test'
23
+ test.pattern = 'test/**/*_test.rb'
24
+ test.verbose = true
25
+ end
26
+
27
+ begin
28
+ require 'rcov/rcovtask'
29
+ Rcov::RcovTask.new do |test|
30
+ test.libs << 'test'
31
+ test.pattern = 'test/**/*_test.rb'
32
+ test.verbose = true
33
+ end
34
+ rescue LoadError
35
+ task :rcov do
36
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
37
+ end
38
+ end
39
+
40
+ task :test => :check_dependencies
41
+
42
+ task :default => :test
43
+
44
+ require 'rake/rdoctask'
45
+ Rake::RDocTask.new do |rdoc|
46
+ if File.exist?('VERSION')
47
+ version = File.read('VERSION')
48
+ else
49
+ version = ""
50
+ end
51
+
52
+ rdoc.rdoc_dir = 'rdoc'
53
+ rdoc.title = "rubyfca #{version}"
54
+ rdoc.rdoc_files.include('README*')
55
+ rdoc.rdoc_files.include('lib/**/*.rb')
56
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.4
data/bin/rubyfca CHANGED
@@ -1,15 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
- Encoding.default_external = "UTF-8"
4
-
5
2
 
6
3
  $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ require 'trollop'
7
5
  require 'rubyfca'
6
+ require 'ruby_graphviz'
8
7
 
9
8
  ################ parse options ##########
10
9
 
11
10
  opts = Trollop::options do
12
- version RubyFCA::VERSION
11
+ version = File.read(File.dirname(__FILE__) + "/../VERSION")
13
12
  banner <<-EOS
14
13
 
15
14
  RubuFCA converts Conexp CXT data to Graphviz dot format.
@@ -19,24 +18,19 @@ Usage:
19
18
 
20
19
  where:
21
20
  <source file>
22
- ".cxt", ".csv"
21
+ ".cxt"
23
22
  <output file>
24
23
  ."dot", ".png", ".jpg", or ".eps"
25
24
  [options]:
26
25
  EOS
27
26
 
27
+ opt :circle, "Use circle shaped concept nodes", :default=> false
28
28
  opt :full, "Do not contract concept labels", :default=> false
29
- opt :coloring, "Color concept nodes [0 = none (default), 1 = lightblue/pink, 2 = monochrome]", :default => 0
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
29
  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
-
30
+ opt :coloring, "Color concept nodes", :default => false
31
+ opt :straight, "Straighten edges (available when output format is either png, jpg, or eps)", :default => false
36
32
  end
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)
33
+
40
34
  ############### main program ###############
41
35
 
42
36
  if ARGV.size != 2
@@ -52,17 +46,15 @@ filename2 = ARGV[1] #output filename
52
46
  input_type = filename1.slice(/\.[^\.]+\z/).split(//)[1..-1].join("")
53
47
  output_type = filename2.slice(/\.[^\.]+\z/).split(//)[1..-1].join("")
54
48
 
55
- if (input_type !~ /\A(cxt|csv)\z/ || output_type !~ /\A(dot|png|jpg|svg|pdf|eps)\z/)
49
+ if (input_type !~ /\A(cxt|csv)\z/ || output_type !~ /\A(dot|png|jpg|eps)\z/)
56
50
  showerror("These file extensions are not (yet) supported.", 1)
57
51
  end
58
52
 
59
53
  #
60
- # input data is kept as plain text
54
+ # input cxt data is kept as plain text
61
55
  #
62
- f = File.open(filename1, "r:UTF-8:UTF-8")
63
-
56
+ f = File.open(filename1, "r")
64
57
  inputdata = f.read
65
- inputdata.gsub!(/\r\n?/){"\n"}
66
58
  f.close
67
59
 
68
60
  #
@@ -80,7 +72,7 @@ end
80
72
  # context data is converted to a hash table
81
73
  #
82
74
  begin
83
- ctxt = FormalContext.new(inputdata, input_type, !opts[:full])
75
+ ctxt = FormalContext.new(inputdata, opts[:full])
84
76
  ctxt.calcurate
85
77
  # rescue => e
86
78
  # puts e
@@ -99,10 +91,6 @@ when "png"
99
91
  ctxt.generate_img(filename2, "png", opts)
100
92
  when "jpg"
101
93
  ctxt.generate_img(filename2, "jpg", opts)
102
- when "svg"
103
- ctxt.generate_img(filename2, "svg", opts)
104
- when "pdf"
105
- ctxt.generate_img(filename2, "pdf", opts)
106
94
  when "eps"
107
95
  ctxt.generate_img(filename2, "eps", opts)
108
96
  end
@@ -1,6 +1,3 @@
1
- #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
-
4
1
  ## lib/ruby_graphviz.rb -- graphviz dot generator library
5
2
  ## Author:: Yoichiro Hasebe (mailto: yohasebe@gmail.com)
6
3
  ## Copyright:: Copyright 2009 Yoichiro Hasebe
data/lib/rubyfca.rb CHANGED
@@ -1,18 +1,11 @@
1
- #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
-
4
1
  ## lib/rubyfca.rb -- Formal Concept Analysis tool in Ruby
5
2
  ## Author:: Yoichiro Hasebe (mailto: yohasebe@gmail.com)
6
3
  ## Kow Kuroda (mailto: kuroda@nict.go.jp)
7
4
  ## Copyright:: Copyright 2009 Yoichiro Hasebe and Kow Kuroda
8
5
  ## License:: GNU GPL version 3
9
6
 
10
- $: << File.dirname(__FILE__) + "/rubyfca"
11
-
12
- require 'csv'
7
+ $KCODE ='utf-8'
13
8
  require 'ruby_graphviz'
14
- require 'version'
15
- require 'trollop'
16
9
 
17
10
  private
18
11
 
@@ -46,65 +39,22 @@ end
46
39
  class FormalContext
47
40
 
48
41
  ## Converte cxt data to three basic structures of objects, attributes, and matrix
49
- def initialize(input, mode, label_contraction = false)
42
+ def initialize(input, label_contraction = true)
50
43
  if input.size == 0
51
44
  showerror("File is empty", 1)
52
45
  end
53
- input.gsub!(" ", "&nbsp;")
54
- # begin
55
- case mode
56
- when /cxt\z/
57
- read_cxt(input)
58
- when /csv\z/
59
- read_csv(input)
60
- end
61
- # rescue => e
62
- # showerror("Input data contains a syntax problem.", 1)
63
- # end
64
- @label_contraction = label_contraction
65
- end
66
-
67
- ## process cxt data
68
- def read_cxt(input)
69
46
  lines = input.split
70
47
  t1 = 3
71
48
  if (lines[0] !~ /B/i || (2 * lines[1].to_i + lines[2].to_i + t1) != lines.size)
72
49
  showerror("Wrong cxt format!", 1)
73
50
  end
51
+
52
+ @label_contraction = label_contraction
53
+
74
54
  @objects = lines[t1..(lines[1].to_i + t1 - 1)]
75
55
  @attributes = lines[(lines[1].to_i + t1) .. (lines[1].to_i + lines[2].to_i + t1 - 1)]
76
56
  lines = lines[(lines[1].to_i + lines[2].to_i + t1) .. lines.size]
77
- @matrix = changecrosssymbol("X", "\\.", lines)
78
- end
79
-
80
- # process csv data using the standard csv library
81
- def read_csv(input)
82
- input = remove_blank(input)
83
- data = CSV.parse(input)
84
- @objects = trim_ary(data.transpose.first[1..-1])
85
- @attributes = trim_ary(data.first[1..-1])
86
- @matrix = []
87
- data[1..-1].each do |line|
88
- @matrix << line[1..-1].collect { |cell| /x/i =~ cell ? 1 : 0 }
89
- end
90
- end
91
-
92
- def remove_blank(input)
93
- blank_removed = ""
94
- input.split("\n").each do |line|
95
- line = line.strip
96
- unless /\A\s*\z/ =~ line
97
- blank_removed << line + "\n"
98
- end
99
- end
100
- blank_removed
101
- end
102
-
103
- def trim_ary(ary)
104
- newary = ary.collect do |cell|
105
- cell.strip
106
- end
107
- newary
57
+ @matrix = changecrosssymbol("X", "\\.", lines)
108
58
  end
109
59
 
110
60
  ## Apply a formal concept analysis on the matrix
@@ -201,8 +151,8 @@ class FormalContext
201
151
  a1 = extension[0].join("")
202
152
  a2 = extension[1].join("")
203
153
  if a1 == a2
204
- extension.shift
205
- intension.shift
154
+ shift extension
155
+ shift intension
206
156
  anzCpt -= 1
207
157
  end
208
158
 
@@ -334,9 +284,8 @@ class FormalContext
334
284
  ## For options, see 'rubyfca'
335
285
  def generate_dot(opts)
336
286
  index_max_width = @concepts.size.to_s.split(//).size
337
- nodesep = opts[:nodesep] ? opts[:nodesep].to_s : "0.4"
338
- ranksep = opts[:ranksep] ? opts[:ranksep].to_s : "0.2"
339
- clattice = RubyGraphviz.new("clattice", :rankdir => "", :nodesep => nodesep, :ranksep => ranksep)
287
+
288
+ clattice = RubyGraphviz.new("clattice", :rankdir => "", :nodesep => "0.4", :ranksep => "0.2")
340
289
 
341
290
  if opts[:circle] and opts[:legend]
342
291
  legend = RubyGraphviz.new("legend", :rankdir => "TB", :lebelloc => "t", :centered => "false")
@@ -360,9 +309,7 @@ class FormalContext
360
309
  attrfull = []
361
310
  0.upto(@gammaM.size - 1) do |j|
362
311
  if @gammaM[j][i] == 2
363
- # pointing finger does not appear correctly in eps...
364
- # obj = opts[:full] ? @objects[j] + " " + [0x261C].pack("U") : @objects[j]
365
- obj = opts[:full] ? @objects[j] + "*" : @objects[j]
312
+ obj = opts[:full] ? @objects[j] + " " + [0x261C].pack("U") : @objects[j]
366
313
  objfull << obj
367
314
  elsif @gammaM[j][i] == 1
368
315
  objfull << @objects[j]
@@ -370,9 +317,7 @@ class FormalContext
370
317
  end
371
318
  0.upto(@muM.size - 1) do |k|
372
319
  if @muM[k][i] == 2
373
- # pointing finger does not appear correctly in eps...
374
- # att = opts[:full] ? @attributes[k] + " " + [0x261C].pack("U") : @attributes[k]
375
- att = opts[:full] ? @attributes[k] + "*" : @attributes[k]
320
+ att = opts[:full] ? @attributes[k] + " " + [0x261C].pack("U") : @attributes[k]
376
321
  attrfull << att
377
322
  elsif @muM[k][i] == 1
378
323
  attrfull << @attributes[k]
@@ -383,25 +328,10 @@ class FormalContext
383
328
 
384
329
  attr_str = attrfull.join('<br />')
385
330
  attr_str = attr_str == "" ? " " : attr_str
386
-
387
- if opts[:coloring] == 0 or /\A\s+\z/ =~ attr_str
388
- attr_color = "white"
389
- elsif opts[:coloring] == 1
390
- attr_color = "lightblue"
391
- elsif opts[:coloring] == 2
392
- attr_color = "gray87"
393
- end
394
-
331
+ attr_color = (!opts[:coloring] || /\A\s+\z/ =~ attr_str) ? "white" : "lightblue"
395
332
  obj_str = objfull.join('<br />')
396
333
  obj_str = obj_str == "" ? " " : obj_str
397
-
398
- if opts[:coloring] == 0 or /\A\s+\z/ =~ obj_str
399
- obj_color = "white"
400
- elsif opts[:coloring] == 1
401
- obj_color = "pink"
402
- elsif opts[:coloring] == 2
403
- obj_color = "gray92"
404
- end
334
+ obj_color = (!opts[:coloring] || /\A\s+\z/ =~ obj_str) ? "white" : "pink"
405
335
 
406
336
  label = "<<table border=\"0\" cellborder=\"1\" cellspacing=\"0\">" +
407
337
  "<tr><td balign=\"left\" align=\"left\" bgcolor=\"#{attr_color}\">#{attr_str}</td></tr>" +
@@ -415,7 +345,7 @@ class FormalContext
415
345
  "<tr><td balign=\"left\" align=\"left\" bgcolor=\"#{obj_color}\">#{obj_str}</td></tr>" +
416
346
  "</table>>"
417
347
 
418
- if !attrfull.empty? or !objfull.empty?
348
+ if !attrfull.empty? and !objfull.empty?
419
349
  legend.node("cl#{concept_id}k", :label => concept_id, :style => "invis")
420
350
  legend.node("cl#{concept_id}v", :label => leg, :fillcolor => "white")
421
351
  legend.rank("cl#{concept_id}k", "cl#{concept_id}v", :style => "invis", :length => "0.0")
@@ -413,7 +413,7 @@ class Parser
413
413
 
414
414
  ## Print the help message to +stream+.
415
415
  def educate stream=$stdout
416
- width # just calcurate it now; otherwise we have to be careful not to
416
+ width # just calculate it now; otherwise we have to be careful not to
417
417
  # call this unless the cursor's at the beginning of a line.
418
418
 
419
419
  left = {}
data/rubyfca.gemspec CHANGED
@@ -1,17 +1,59 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/rubyfca/version', __FILE__)
3
5
 
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["Yoichiro Hasebe", "Kow Kuroda"]
6
- gem.email = ["yohasebe@gmail.com"]
7
- gem.summary = %q{Command line FCA tool written in Ruby}
8
- gem.description = %q{Command line Formal Concept Analysis (FCA) tool written in Ruby}
9
- gem.homepage = "http://github.com/yohasebe/rubyfca"
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rubyfca}
8
+ s.version = "0.2.4"
10
9
 
11
- gem.files = `git ls-files`.split($\)
12
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = "rubyfca"
15
- gem.require_paths = ["lib"]
16
- gem.version = RubyFCA::VERSION
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Yoichiro Hasebe", "Kow Kuroda"]
12
+ s.date = %q{2009-09-04}
13
+ s.default_executable = %q{rubyfca}
14
+ s.description = %q{Command line Formal Concept Ananlysis (FCA) tool written in Ruby}
15
+ s.email = %q{yohasebe@gmail.com}
16
+ s.executables = ["rubyfca"]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE",
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".document",
23
+ ".gitignore",
24
+ "LICENSE",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "bin/rubyfca",
29
+ "lib/ruby_graphviz.rb",
30
+ "lib/rubyfca.rb",
31
+ "lib/trollop.rb",
32
+ "rubyfca.gemspec",
33
+ "test/rubyfca_test.rb",
34
+ "test/test_data.cxt",
35
+ "test/test_helper.rb"
36
+ ]
37
+ s.homepage = %q{http://github.com/yohasebe/rubyfca}
38
+ s.rdoc_options = ["--charset=UTF-8"]
39
+ s.require_paths = ["lib"]
40
+ s.rubygems_version = %q{1.3.5}
41
+ s.summary = %q{Command line Formal Concept Analysis (FCA) tool written in Ruby}
42
+ s.test_files = [
43
+ "test/rubyfca_test.rb",
44
+ "test/test_helper.rb"
45
+ ]
46
+
47
+ if s.respond_to? :specification_version then
48
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
49
+ s.specification_version = 3
50
+
51
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
52
+ s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
53
+ else
54
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
55
+ end
56
+ else
57
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
58
+ end
17
59
  end
data/test/test_data.cxt CHANGED
@@ -8,18 +8,18 @@ Sparrow
8
8
  Eagle
9
9
  Lion
10
10
  Bonobo
11
- Human being
11
+ Human
12
12
  bird
13
13
  mammal
14
14
  ape
15
15
  flying
16
16
  preying
17
17
  talking
18
- XXX...
19
- ...XXX
20
- ....XX
18
+ X.....
19
+ X..X..
20
+ X..XX.
21
+ .X..X.
21
22
  .XX...
22
- ..XX..
23
- .....X
23
+ .XX..X
24
24
 
25
25
 
metadata CHANGED
@@ -1,65 +1,80 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rubyfca
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Yoichiro Hasebe
8
8
  - Kow Kuroda
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-28 00:00:00.000000000 Z
13
- dependencies: []
14
- description: Command line Formal Concept Analysis (FCA) tool written in Ruby
15
- email:
16
- - yohasebe@gmail.com
17
- executables:
12
+
13
+ date: 2009-09-04 00:00:00 +09:00
14
+ default_executable: rubyfca
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: thoughtbot-shoulda
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
26
+ description: Command line Formal Concept Ananlysis (FCA) tool written in Ruby
27
+ email: yohasebe@gmail.com
28
+ executables:
18
29
  - rubyfca
19
30
  extensions: []
20
- extra_rdoc_files: []
21
- files:
22
- - ".document"
23
- - ".gitignore"
24
- - Gemfile
31
+
32
+ extra_rdoc_files:
33
+ - LICENSE
34
+ - README.rdoc
35
+ files:
36
+ - .document
37
+ - .gitignore
25
38
  - LICENSE
26
39
  - README.rdoc
27
40
  - Rakefile
41
+ - VERSION
28
42
  - bin/rubyfca
43
+ - lib/ruby_graphviz.rb
29
44
  - lib/rubyfca.rb
30
- - lib/rubyfca/ruby_graphviz.rb
31
- - lib/rubyfca/trollop.rb
32
- - lib/rubyfca/version.rb
45
+ - lib/trollop.rb
33
46
  - rubyfca.gemspec
34
47
  - test/rubyfca_test.rb
35
- - test/test_data.csv
36
48
  - test/test_data.cxt
37
49
  - test/test_helper.rb
50
+ has_rdoc: true
38
51
  homepage: http://github.com/yohasebe/rubyfca
39
52
  licenses: []
40
- metadata: {}
53
+
41
54
  post_install_message:
42
- rdoc_options: []
43
- require_paths:
55
+ rdoc_options:
56
+ - --charset=UTF-8
57
+ require_paths:
44
58
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
46
- requirements:
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ requirements:
47
61
  - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '0'
50
- required_rubygems_version: !ruby/object:Gem::Requirement
51
- requirements:
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
52
67
  - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ version:
55
71
  requirements: []
72
+
56
73
  rubyforge_project:
57
- rubygems_version: 2.4.5
74
+ rubygems_version: 1.3.5
58
75
  signing_key:
59
- specification_version: 4
60
- summary: Command line FCA tool written in Ruby
61
- test_files:
76
+ specification_version: 3
77
+ summary: Command line Formal Concept Analysis (FCA) tool written in Ruby
78
+ test_files:
62
79
  - test/rubyfca_test.rb
63
- - test/test_data.csv
64
- - test/test_data.cxt
65
80
  - test/test_helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 1a7c7bc3a45c296b6a2a7447106284ff7cef7871
4
- data.tar.gz: d5da0d7b0dffe7d8b33dd662133222bbe0720c10
5
- SHA512:
6
- metadata.gz: 99a30f945baf45ec345c9ed614b9de725a743784f09136434117db65d6e2a7bef10ccf3cd9131eb28d1d5364efa9bf8d464e9ff939bbe789ef81a0ea2b2b109f
7
- data.tar.gz: 4642dbe52edc0c57d17f3d8401f8531a29b2019327180114d9d7e38a375d76f858d6801e359036151bc88cdffe7186a17ea55a84754d64b41919afa747c1adeb
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
- # gem "trollop"
3
- # Specify your gem's dependencies in ..gemspec
4
- gemspec
@@ -1,3 +0,0 @@
1
- module RubyFCA
2
- VERSION = "0.2.2"
3
- end
data/test/test_data.csv DELETED
@@ -1,7 +0,0 @@
1
- ,Ostrich, Sparrow, Eagle, Lion, Bonobo, Human being
2
- bird ,X,X,X,.,.,.
3
- mammal ,.,.,.,X,X,X
4
- ape ,.,.,.,.,X,X
5
- flying ,.,X,X,.,.,.
6
- preying,.,.,X,X,.,.
7
- talking,.,.,.,.,.,X