requidef 0.2.2 → 0.3.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.
@@ -6,27 +6,42 @@ The consequence of 10H rapid developement.
6
6
  It had many bugs so we could not use the command after 'gem install'ing.
7
7
 
8
8
  ## Version 0.2.0 (Aug. 22, 2011)
9
- We found that the .rd file is not as easy to edit as we had expected.
10
- So we decided to edit file in XMind, a free MindMap tool, export it to HTML to translate to .rd file.
9
+ I have found that the .rd file is not as easy to edit I had expected.
10
+ So I decided to edit file in XMind, a free MindMap tool, export it to HTML to translate to .rd file.
11
11
  Other features,
12
12
 
13
13
  * The commandline I/F is changed.
14
14
  * Fixed the flashed bugs in 0.1.0.
15
15
  * Provides some converter functionality.
16
16
  * It is now ready to get started by just gem installing.
17
+ * etc.
17
18
 
18
19
  ## Version 0.3.0 (Forecast)
19
- * Add more format to translate (TGF, GML, ..).
20
+ In development of this version, I have found that
21
+ this software does not meet my requirements.
22
+ So I have decided to release it as version 0.3.0
23
+ and redesign the software toward version 0.4.0.
24
+
25
+ Deeply sorry for users.
26
+ I do not recommend
27
+ to use version before 0.4.0 because it is obsolete.
28
+
20
29
  * Parser Enhancement (Hopefully all but few would be eliminated).
21
30
  Comment Out,
22
- Line Breaking,
31
+ Line Breaking (Not achieved),
23
32
  Empty Line,
24
33
  [[tagname]] -> [[tagname:tagname]] for DRY.
25
- * Not all the (>>dest) does not have the real destination. Even in that case, works fine.
26
- Imagine if all the link must have definitly the real desitination. What could be happened?
27
- * Code Clean
28
- Testing will be automated so that the future development will be saved.
29
- * Design Issue
30
- rationalize! method in rdtree is quite wierd. fix it or not.
34
+ * Add --parse-lenient option.
35
+ * etc.
31
36
 
37
+ ## Version 0.4.0 (Forecast)
38
+ Will almost completely discard backward-compatibility.
32
39
 
40
+ * Add more format to translate (TGF, GML, ..).
41
+ RD and TGF will be compatible.
42
+ * CLI Interface changes.
43
+ * RD format changes.
44
+ For convenience, I have decided to change the RD format and hence discard backward-compatibility.
45
+ * Parser for .mm format will be extended.
46
+ Version before 0.4.0 only supports .mm of simple tree.
47
+ Version 0.4.0 supports links freely come across the tree.
@@ -6,6 +6,21 @@ require "optparse"
6
6
  # Main
7
7
  opt = OptionParser.new
8
8
 
9
+ def translations
10
+ """Supported Translations:
11
+ mm, html -> rd
12
+ rd -> dot, csv
13
+ (Future release will support rd <-> tgf).
14
+
15
+ For the usage, please see --usage
16
+ """
17
+ end
18
+
19
+ opt.on("--view-supported-translations") do |v|
20
+ print translations
21
+ exit
22
+ end
23
+
9
24
  usage = nil
10
25
  opt.on("--usage") do |v|
11
26
  usage = v
@@ -6,6 +6,21 @@ require "optparse"
6
6
  # Main
7
7
  opt = OptionParser.new
8
8
 
9
+ def translations
10
+ """Supported Translations:
11
+ mm, html -> rd
12
+ rd -> dot, csv
13
+ (Future release will support rd <-> tgf).
14
+
15
+ For the usage, please see --usage
16
+ """
17
+ end
18
+
19
+ opt.on("--view-supported-translations") do |v|
20
+ print translations
21
+ exit
22
+ end
23
+
9
24
  usage = nil
10
25
  opt.on("--usage") do |v|
11
26
  usage = v
@@ -54,7 +54,6 @@ def line2node(line)
54
54
  # If REQUIDEF_PARSE_LENIENT flag is on,
55
55
  # This software understands every text nodes as link nodes whose dest is text.
56
56
  if parse_lenient?
57
- $stderr << "parse_lenient? true"
58
57
  ss = parse_text(rest)
59
58
  return Link.new(depth, ss)
60
59
  end
@@ -1,10 +1,42 @@
1
1
  class Node
2
2
  def initialize(depth)
3
- @depth = depth
4
3
  @tmp = {}
4
+ @depth = depth
5
+ @tree = nil
6
+ @id = nil
7
+ end
8
+ attr_reader :tmp
9
+
10
+ def depth
11
+ if @depth == nil
12
+ return do_depth
13
+ end
14
+ @depth
15
+ end
16
+
17
+ def id
18
+ @id
19
+ end
20
+
21
+ def id=(x)
22
+ if @tree == nil
23
+ @id = x
24
+ return
25
+ end
26
+ raise "Error can not call id=(#{x}) for this node."
27
+ end
28
+
29
+ def add_on_tree(idd, tree)
30
+ tree.add_node(idd, self)
31
+ @tree = tree
32
+ @id = idd
33
+ @depth = nil
34
+ end
35
+
36
+ private
37
+ def do_depth
38
+ @tree.depth(id)
5
39
  end
6
- attr_reader :tmp ,:depth
7
- attr_accessor :id
8
40
  end
9
41
 
10
42
  class Link < Node
@@ -27,7 +59,7 @@ class Link < Node
27
59
  end
28
60
 
29
61
  def to_rd
30
- "#{dashes(@depth)} >>#{@dest}"
62
+ "#{dashes(depth)} >>#{@dest}"
31
63
  end
32
64
  end
33
65
 
@@ -40,7 +72,7 @@ class Tag < Node
40
72
  attr_reader :tag
41
73
 
42
74
  def to_s
43
- "(Tag depth:#{@depth}, tag:#{@tag}, text:#{@text}, tmp:#{@tmp})"
75
+ "(Tag depth:#{depth}, tag:#{@tag}, text:#{@text}, tmp:#{@tmp})"
44
76
  end
45
77
 
46
78
  def to_csv
@@ -52,7 +84,7 @@ class Tag < Node
52
84
  end
53
85
 
54
86
  def to_rd
55
- "#{dashes(@depth)} [[#{@tag}:#{@text}]]"
87
+ "#{dashes(depth)} [[#{@tag}:#{@text}]]"
56
88
  end
57
89
  end
58
90
 
@@ -64,7 +96,7 @@ class Text < Node
64
96
  end
65
97
 
66
98
  def to_s
67
- "(Text depth:#{@depth}, text:#{@text}, tmp:#{@tmp})"
99
+ "(Text depth:#{depth}, text:#{@text}, tmp:#{@tmp})"
68
100
  end
69
101
 
70
102
  def to_csv
@@ -76,7 +108,7 @@ class Text < Node
76
108
  end
77
109
 
78
110
  def to_rd
79
- "#{dashes(@depth)} #{@text}"
111
+ "#{dashes(depth)} #{@text}"
80
112
  end
81
113
  end
82
114
 
@@ -9,7 +9,7 @@ def nodes2tree(nodes)
9
9
  nodess = depth2link(nodes)
10
10
  t = Tree.new
11
11
  nodess.each do |n|
12
- t.add_node(n.id, n)
12
+ n.add_on_tree(n.id, t)
13
13
  end
14
14
  for i in 1...nodess.size
15
15
  n = nodess[i]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: requidef
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-23 00:00:00.000000000Z
12
+ date: 2011-08-24 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &28184820 !ruby/object:Gem::Requirement
16
+ requirement: &22798000 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *28184820
24
+ version_requirements: *22798000
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &28184340 !ruby/object:Gem::Requirement
27
+ requirement: &22797440 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *28184340
35
+ version_requirements: *22797440
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &28183860 !ruby/object:Gem::Requirement
38
+ requirement: &22796960 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *28183860
46
+ version_requirements: *22796960
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &28183380 !ruby/object:Gem::Requirement
49
+ requirement: &22796480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *28183380
57
+ version_requirements: *22796480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hpricot
60
- requirement: &28182900 !ruby/object:Gem::Requirement
60
+ requirement: &22795980 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *28182900
68
+ version_requirements: *22795980
69
69
  description: Which do you use for your requirement definition job? MS Excel? MS Word?
70
70
  Uninstall them. Because you will get a better solution.
71
71
  email: ruby.wktk@gmail.com
@@ -123,7 +123,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
123
  version: '0'
124
124
  segments:
125
125
  - 0
126
- hash: 226265604659266124
126
+ hash: 3428238445578490504
127
127
  required_rubygems_version: !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements: