tefil 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f742434ea5277ddf6d1c079d8d5fcf9f1525cb0c
4
- data.tar.gz: 50abba718b395336d1f00d6e3f75149374356f21
3
+ metadata.gz: c164b9477530341120ac20b00bec36b2164f8bae
4
+ data.tar.gz: 1912f75664d0844891a98f3c9416ca7d8573da57
5
5
  SHA512:
6
- metadata.gz: 95669e49a633c958998c4117958e210306ba09831d9c2599f59259f1e436e68b41d6feeb35294842e5c52a46724bc650e7691456005cfbc7d74e64343b22e397
7
- data.tar.gz: e4bf80f0b585940963a01cc13c65ae31c30f5b1b92354c6cd734b0f3cb288586753cb16bc5870af877693dfe226b3fc74871fdeda83695565630e202b6e6aae1
6
+ metadata.gz: 6f2d33e6eaa57c68fa7c782de2e90f67638a141ce6a1b1c321870532bb463d877b91b6903560238981cd4ade6039415fc5b639f37974ec47867675f60fecf2b7
7
+ data.tar.gz: 0571c3d03879801e2fb40f887fc1c3558b3e39fecad875204968681830f3258ffd53b515998b240bc11a7adb8471714dcec821d00b74078940bbf2b0b1447760
data/CHANGES CHANGED
@@ -1,6 +1,11 @@
1
1
  = tefil changelog
2
2
 
3
- == Master (for 0.1.1)
3
+ == Master (for 0.1.2)
4
+
5
+ == Version 0.1.1 [2016-03-11] released
6
+ * Add bin/eachsentence
7
+ * Add bin/fswiki2md
8
+ * Add bin/md2fswiki
4
9
 
5
10
  == Version 0.1.0 [2015-07-07] released
6
11
  * Add bin/packpercent .
data/Gemfile CHANGED
@@ -6,11 +6,11 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "rdoc", "~> 4.0.1"
10
- gem "bundler", "~> 1.9.2"
11
- gem "jeweler", "~> 2.0.1"
12
- gem "capture_stdout", "~> 0.0.1"
13
- gem "simplecov", ">= 0"
14
- gem "builtinextension", ">= 0.1.0"
15
- #gem "psych", ">= 0"
9
+ gem "test-unit", "~> 3.1"
10
+ gem "rdoc", "~> 4.2"
11
+ gem "bundler", "~> 1.11"
12
+ gem "jeweler", "~> 2.0"
13
+ gem "simplecov", "~> 0.11"
14
+ gem "capture_stdout", "~> 0.0"
15
+ gem "builtinextension", "~> 0.1"
16
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/bin/columnform CHANGED
@@ -13,7 +13,7 @@ require "tefil"
13
13
  OPTIONS = {:separator => ' '}
14
14
  op = OptionParser.new
15
15
  op.banner = [
16
- "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
16
+ "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
17
17
  ].join("\n")
18
18
  op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
19
19
  op.on("-s char", "--separator=char", "Indicate separator."){|val| OPTIONS[:separator] = val}
data/bin/eachsentence ADDED
@@ -0,0 +1,24 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ # convert to text with each line / each sentence.
5
+
6
+ require "pp"
7
+ require "optparse"
8
+ require "rubygems"
9
+ require "tefil"
10
+
11
+
12
+ # option analysis
13
+ options = {}
14
+ op = OptionParser.new
15
+ #op.banner = [
16
+ # "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
17
+ #].join("\n")
18
+ op.on("-o" , "--overwrite" , "Overwrite."){ options[:overwrite] = true}
19
+ op.parse!(ARGV)
20
+
21
+ options[:overwrite] ||= false
22
+
23
+ is = Tefil::EachSentence.new options
24
+ is.filter(ARGV)
data/bin/fswiki2md ADDED
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "pp"
5
+ require "optparse"
6
+ require "rubygems"
7
+ require "tefil"
8
+
9
+ # option analysis
10
+ OPTIONS = {}
11
+ op = OptionParser.new
12
+ op.banner = [
13
+ "Simply convert FreeStyleWiki to Markdown.",
14
+ "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
15
+ "Example: #{File.basename("#{__FILE__}")} index.wiki > index.md",
16
+ ].join("\n")
17
+ op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
18
+ op.parse!(ARGV)
19
+
20
+
21
+ f = Tefil::FswikiToMd.new(OPTIONS)
22
+ f.filter(ARGV)
data/bin/indentconv CHANGED
@@ -10,8 +10,8 @@ require "tefil"
10
10
  OPTIONS = {}
11
11
  op = OptionParser.new
12
12
  op.banner = [
13
- "Usage: #{File.basename("#{__FILE__}")} old_width new_width [options] [files]",
14
- "Example: #{File.basename("#{__FILE__}")} 4 2 [options] [files]",
13
+ "Usage: #{File.basename("#{__FILE__}")} old_width new_width [options] [files]",
14
+ "Example: #{File.basename("#{__FILE__}")} 4 2 [options] [files]",
15
15
  ].join("\n")
16
16
  op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
17
17
  #op.on("-m", "--minimum", "Show only minimum indent (not zero)."){ OPTIONS[:minimum] = true}
data/bin/indentstat CHANGED
@@ -11,7 +11,7 @@ require "tefil"
11
11
  options = {}
12
12
  op = OptionParser.new
13
13
  #op.banner = [
14
- # "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
14
+ # "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
15
15
  #].join("\n")
16
16
  op.on("-o" , "--overwrite" , "Overwrite."){ options[:overwrite] = true}
17
17
  op.on("-m", "--minimum", "Show minimum width (not zero). If no indent, show '0'."){ options[:minimum] = true}
data/bin/linesub CHANGED
@@ -14,7 +14,7 @@ require "tefil.rb"
14
14
  options = {}
15
15
  op = OptionParser.new
16
16
  op.banner = [
17
- "Usage: #{File.basename("#{__FILE__}")} old_str new_str [options] [files]",
17
+ "Usage: #{File.basename("#{__FILE__}")} old_str new_str [options] [files]",
18
18
  ].join("\n")
19
19
  op.on("-o" , "--overwrite" , "Overwrite."){ options[:overwrite] = true}
20
20
  op.on("-g" , "--global" , "Globally substitute."){ options[:global] = true}
data/bin/md2fswiki ADDED
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "pp"
5
+ require "optparse"
6
+ require "rubygems"
7
+ require "tefil"
8
+
9
+ # option analysis
10
+ OPTIONS = {}
11
+ op = OptionParser.new
12
+ op.banner = [
13
+ "Simply convert Markdown to FreeStyleWiki.",
14
+ "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
15
+ "Example: #{File.basename("#{__FILE__}")} index.wiki > index.md",
16
+ ].join("\n")
17
+ op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
18
+ op.parse!(ARGV)
19
+
20
+
21
+ f = Tefil::MdToFswiki.new(OPTIONS)
22
+ f.filter(ARGV)
data/bin/zshescape CHANGED
@@ -13,7 +13,7 @@ require "tefil.rb"
13
13
  options = {}
14
14
  op = OptionParser.new
15
15
  op.banner = [
16
- "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
16
+ "Usage: #{File.basename("#{__FILE__}")} [options] [files]",
17
17
  ].join("\n")
18
18
  op.on("-o" , "--overwrite" , "Overwrite."){ options[:overwrite] = true}
19
19
  op.parse!(ARGV)
data/doc/memo.txt ADDED
@@ -0,0 +1,4 @@
1
+ 現状、fswiki と md は一対一で直接変換するスクリプトを作っている。
2
+ しかし、 この方法は対象とする言語が増えると N^2 で増加して大変なことになる。
3
+ 箇条書きなどの情報を抽象化して、それに対するやりとりとした方が美しい。
4
+ だけれども、今はまだその時ではない。
File without changes
@@ -0,0 +1,14 @@
1
+ After the loop is broken, a pair of nodes, comprising an OSS
2
+ and its qe-OSS, is obtained; OSS $(s_4^{-}, s_2)$ and
3
+ $(s_2, s_4)$ in Fig. \ref{fig1}. Each of the OSSs can be
4
+ elevated to $\vstart$ by using its stored data. An MEP that
5
+ connects $\vstart$ and qe-OSS of $\vstart$.
6
+
7
+ あいうえお。かき
8
+ くけこ。
9
+ あいうえお.かき
10
+ くけこ.
11
+ あいうえお、かき
12
+ くけこ、
13
+ あいうえお,かき
14
+ くけこ,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,35 @@
1
+ # coding: utf-8
2
+ class Tefil::EachSentence < Tefil::TextFilterBase
3
+
4
+ END_CHAR = %w(. ? . 。)
5
+ NOT_END_WORDS = ["Fig.", "FIG."]
6
+
7
+ def initialize(options = {})
8
+ options[:smart_filename] = true
9
+ @minimum = options[:minimum]
10
+ super(options)
11
+ end
12
+
13
+ def process_stream(in_io, out_io)
14
+ results = []
15
+ words = []
16
+ in_io.read.strip.split("\n").each do |line|
17
+ new_line = ''
18
+ #line.gsub!("\n", ' ')
19
+ line.chars do |char|
20
+ new_line += char
21
+ new_line += "\n" if (END_CHAR.include?(char))
22
+ end
23
+ NOT_END_WORDS.each do |word|
24
+ new_line.gsub!(/#{word}\n/, word)
25
+ end
26
+ new_line.gsub!(/\n */, "\n")
27
+ new_line.strip!
28
+ new_line.gsub!(/ */, " ")
29
+ results << new_line
30
+ end
31
+ out_io.puts results.join("\n")
32
+ end
33
+
34
+ end
35
+
@@ -0,0 +1,65 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ class Tefil::FswikiToMd < Tefil::TextFilterBase
5
+ #def initialize(options)
6
+ # super(options)
7
+ #end
8
+
9
+ def process_stream(in_io, out_io)
10
+
11
+ in_io.readlines.each do |line|
12
+ # 行頭処理
13
+ case
14
+ when line.sub!(/^!!!/ , '') then type = :head1
15
+ when line.sub!(/^!!/ , '') then type = :head2
16
+ when line.sub!(/^!/ , '') then type = :head3
17
+ when line.sub!(/^\*\*\*\*/ , '') then type = :item4
18
+ when line.sub!(/^\*\*\*/ , '') then type = :item3
19
+ when line.sub!(/^\*\*/ , '') then type = :item2
20
+ when line.sub!(/^\*/ , '') then type = :item1
21
+ when line.sub!(/^\+\+\+\+/ , '') then type = :enum4
22
+ when line.sub!(/^\+\+\+/ , '') then type = :enum3
23
+ when line.sub!(/^\+\+/ , '') then type = :enum2
24
+ when line.sub!(/^\+/ , '') then type = :enum1
25
+ when line.sub!(/^ / , '') then type = :pre
26
+ when line.sub!(/^----/ , '') then type = :hline
27
+ when line.sub!(/^\/\// , '') then type = :comment
28
+ else
29
+ type = :plain
30
+ end
31
+
32
+ # 行中要素の処理
33
+ line.gsub!(/\'\'\'/, '**')
34
+ line.gsub!(/\'\'/, '*')
35
+ if /\[(.*)\|(.*)\]/ =~ line # 複数ある場合は非対応。
36
+ str = $1
37
+ url = $2
38
+ line.sub!(/\[(.*)\|(.*)\]/, "[#{str}](#{url})")
39
+ end
40
+
41
+ case
42
+ when type == :head1 then line.sub!(/^/, "#" )
43
+ when type == :head2 then line.sub!(/^/, "##" )
44
+ when type == :head3 then line.sub!(/^/, "###" )
45
+ when type == :item4 then line.sub!(/^/, " *" )
46
+ when type == :item3 then line.sub!(/^/, " *" )
47
+ when type == :item2 then line.sub!(/^/, " *" )
48
+ when type == :item1 then line.sub!(/^/, "*" )
49
+ when type == :enum4 then line.sub!(/^/, " 0." )
50
+ when type == :enum3 then line.sub!(/^/, " 0." )
51
+ when type == :enum2 then line.sub!(/^/, " 0." )
52
+ when type == :enum1 then line.sub!(/^/, "0." )
53
+ when type == :pre then line.sub!(/^/, " " )
54
+ when type == :hline then line.sub!(/^/, "---" )
55
+ when type == :comment then line = "<!--#{line.chomp}-->"
56
+ else # type == :pain then 'do nothing'
57
+ end
58
+
59
+ # 出力
60
+ out_io.puts line
61
+ end
62
+ end
63
+ end
64
+
65
+
@@ -0,0 +1,62 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ class Tefil::MdToFswiki < Tefil::TextFilterBase
5
+ #def initialize(options)
6
+ # super(options)
7
+ #end
8
+
9
+ def process_stream(in_io, out_io)
10
+
11
+ in_io.readlines.each do |line|
12
+ # 行頭処理
13
+ case
14
+ when line.sub!(/^\#\#\#/ , '') then type = :head3
15
+ when line.sub!(/^\#\#/ , '') then type = :head2
16
+ when line.sub!(/^\#/ , '') then type = :head1
17
+ when line.sub!(/^ \*/, '') then type = :item4
18
+ when line.sub!(/^ \*/ , '') then type = :item3
19
+ when line.sub!(/^ \*/ , '') then type = :item2
20
+ when line.sub!(/^\*/ , '') then type = :item1
21
+ when line.sub!(/^ 0./, '') then type = :enum4
22
+ when line.sub!(/^ 0./ , '') then type = :enum3
23
+ when line.sub!(/^ 0./ , '') then type = :enum2
24
+ when line.sub!(/^0./ , '') then type = :enum1
25
+ when line.sub!(/^ / , '') then type = :pre
26
+ when line.sub!(/^---/ , '') then type = :hline
27
+ else type = :plain
28
+ end
29
+
30
+ # 行中要素の処理
31
+ line.gsub!('**', "'''")
32
+ line.gsub!('*' , "''" )
33
+ if /\[(.*)\]\((.*)\)/ =~ line # 複数ある場合は非対応。
34
+ str = $1
35
+ url = $2
36
+ line.sub!(/\[(.*)\]\((.*)\)/, "\[#{str}|#{url}\]")
37
+ end
38
+
39
+ case
40
+ when type == :head3 then line.sub!(/^/, '!' )
41
+ when type == :head2 then line.sub!(/^/, '!!' )
42
+ when type == :head1 then line.sub!(/^/, '!!!' )
43
+ when type == :item4 then line.sub!(/^/, '****' )
44
+ when type == :item3 then line.sub!(/^/, '***' )
45
+ when type == :item2 then line.sub!(/^/, '**' )
46
+ when type == :item1 then line.sub!(/^/, '*' )
47
+ when type == :enum4 then line.sub!(/^/, '++++' )
48
+ when type == :enum3 then line.sub!(/^/, '+++' )
49
+ when type == :enum2 then line.sub!(/^/, '++' )
50
+ when type == :enum1 then line.sub!(/^/, '+' )
51
+ when type == :pre then line.sub!(/^/, ' ' )
52
+ when type == :hline then line.sub!(/^/, '----' )
53
+ else # type == :pain then 'do nothing'
54
+ end
55
+
56
+ # 出力
57
+ out_io.puts line
58
+ end
59
+ end
60
+ end
61
+
62
+
data/lib/tefil.rb CHANGED
@@ -1,12 +1,18 @@
1
1
  #! /usr/bin/env ruby
2
2
  # coding: utf-8
3
3
 
4
+ require 'tempfile'
5
+
4
6
  module Tefil; end
5
- require "tefil/textfilterbase"
6
-
7
- require "tefil/columnformer"
8
- require "tefil/indentconverter"
9
- require "tefil/indentstatistics"
10
- require "tefil/linesubstituter"
11
- require "tefil/percentpacker"
12
- require "tefil/zshescaper"
7
+ require 'tefil/textfilterbase'
8
+
9
+ require 'tefil/columnformer'
10
+ require 'tefil/indentconverter'
11
+ require 'tefil/indentstatistics'
12
+ require 'tefil/linesubstituter'
13
+ require 'tefil/percentpacker'
14
+ require 'tefil/zshescaper'
15
+ require 'tefil/eachsentence.rb'
16
+ require 'tefil/fswikitomd.rb'
17
+ require 'tefil/mdtofswiki.rb'
18
+
data/tefil.gemspec CHANGED
@@ -2,19 +2,19 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: tefil 0.1.0 ruby lib
5
+ # stub: tefil 0.1.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "tefil"
9
- s.version = "0.1.0"
9
+ s.version = "0.1.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["ippei94da"]
14
- s.date = "2015-07-07"
14
+ s.date = "2016-03-10"
15
15
  s.description = "This gem provides a framework of text filter.\n Tefil eneable to make text filter commands which have overwrite option easily.\n "
16
16
  s.email = "ippei94da@gmail.com"
17
- s.executables = ["columnform", "indentconv", "indentstat", "linesub", "percentpack", "zshescape"]
17
+ s.executables = ["columnform", "eachsentence", "fswiki2md", "indentconv", "indentstat", "linesub", "md2fswiki", "percentpack", "zshescape"]
18
18
  s.extra_rdoc_files = [
19
19
  "LICENSE.txt",
20
20
  "README.rdoc"
@@ -28,68 +28,82 @@ Gem::Specification.new do |s|
28
28
  "Rakefile",
29
29
  "VERSION",
30
30
  "bin/columnform",
31
+ "bin/eachsentence",
32
+ "bin/fswiki2md",
31
33
  "bin/indentconv",
32
34
  "bin/indentstat",
33
35
  "bin/linesub",
36
+ "bin/md2fswiki",
34
37
  "bin/percentpack",
35
38
  "bin/zshescape",
39
+ "doc/memo.txt",
40
+ "example/columnformer/sample.txt",
41
+ "example/eachsentence/sample.txt",
42
+ "example/indentconv/sample0.txt",
43
+ "example/indentconv/sample1.txt",
44
+ "example/indentstat/indent4.txt",
45
+ "example/indentstat/sample0.txt",
46
+ "example/indentstat/sample1.txt",
47
+ "example/percentpack/sample.txt",
48
+ "example/zshescape/sample.txt",
36
49
  "lib/tefil.rb",
37
50
  "lib/tefil/columnformer.rb",
51
+ "lib/tefil/eachsentence.rb",
52
+ "lib/tefil/fswikitomd.rb",
38
53
  "lib/tefil/indentconverter.rb",
39
54
  "lib/tefil/indentstatistics.rb",
40
55
  "lib/tefil/linesubstituter.rb",
56
+ "lib/tefil/mdtofswiki.rb",
41
57
  "lib/tefil/percentpacker.rb",
42
58
  "lib/tefil/textfilterbase.rb",
43
59
  "lib/tefil/zshescaper.rb",
44
60
  "tefil.gemspec",
45
- "test/columnformer/sample.txt",
46
61
  "test/formcolumn_space",
47
62
  "test/helper.rb",
48
- "test/indentconv/sample0.txt",
49
- "test/indentconv/sample1.txt",
50
- "test/indentstat/indent4.txt",
51
- "test/indentstat/sample0.txt",
52
- "test/indentstat/sample1.txt",
53
- "test/percentpack/sample.txt",
54
63
  "test/test_columnformer.rb",
64
+ "test/test_eachsentence.rb",
65
+ "test/test_fswikitomd.rb",
55
66
  "test/test_indentconverter.rb",
56
67
  "test/test_indentstatistics.rb",
57
68
  "test/test_linesubstituter.rb",
69
+ "test/test_mdtofswiki.rb",
58
70
  "test/test_percentpacker.rb",
59
71
  "test/test_textfilterbase.rb",
60
- "test/test_zshescaper.rb",
61
- "test/zshescape/sample.txt"
72
+ "test/test_zshescaper.rb"
62
73
  ]
63
74
  s.homepage = "http://github.com/ippei94da/tefil"
64
75
  s.licenses = ["MIT"]
65
- s.rubygems_version = "2.2.2"
76
+ s.rubygems_version = "2.5.1"
66
77
  s.summary = "Basic framework of text filter"
67
78
 
68
79
  if s.respond_to? :specification_version then
69
80
  s.specification_version = 4
70
81
 
71
82
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
72
- s.add_development_dependency(%q<rdoc>, ["~> 4.0.1"])
73
- s.add_development_dependency(%q<bundler>, ["~> 1.9.2"])
74
- s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
75
- s.add_development_dependency(%q<capture_stdout>, ["~> 0.0.1"])
76
- s.add_development_dependency(%q<simplecov>, [">= 0"])
77
- s.add_development_dependency(%q<builtinextension>, [">= 0.1.0"])
83
+ s.add_development_dependency(%q<test-unit>, ["~> 3.1"])
84
+ s.add_development_dependency(%q<rdoc>, ["~> 4.2"])
85
+ s.add_development_dependency(%q<bundler>, ["~> 1.11"])
86
+ s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
87
+ s.add_development_dependency(%q<simplecov>, ["~> 0.11"])
88
+ s.add_development_dependency(%q<capture_stdout>, ["~> 0.0"])
89
+ s.add_development_dependency(%q<builtinextension>, ["~> 0.1"])
78
90
  else
79
- s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
80
- s.add_dependency(%q<bundler>, ["~> 1.9.2"])
81
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
82
- s.add_dependency(%q<capture_stdout>, ["~> 0.0.1"])
83
- s.add_dependency(%q<simplecov>, [">= 0"])
84
- s.add_dependency(%q<builtinextension>, [">= 0.1.0"])
91
+ s.add_dependency(%q<test-unit>, ["~> 3.1"])
92
+ s.add_dependency(%q<rdoc>, ["~> 4.2"])
93
+ s.add_dependency(%q<bundler>, ["~> 1.11"])
94
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
95
+ s.add_dependency(%q<simplecov>, ["~> 0.11"])
96
+ s.add_dependency(%q<capture_stdout>, ["~> 0.0"])
97
+ s.add_dependency(%q<builtinextension>, ["~> 0.1"])
85
98
  end
86
99
  else
87
- s.add_dependency(%q<rdoc>, ["~> 4.0.1"])
88
- s.add_dependency(%q<bundler>, ["~> 1.9.2"])
89
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
90
- s.add_dependency(%q<capture_stdout>, ["~> 0.0.1"])
91
- s.add_dependency(%q<simplecov>, [">= 0"])
92
- s.add_dependency(%q<builtinextension>, [">= 0.1.0"])
100
+ s.add_dependency(%q<test-unit>, ["~> 3.1"])
101
+ s.add_dependency(%q<rdoc>, ["~> 4.2"])
102
+ s.add_dependency(%q<bundler>, ["~> 1.11"])
103
+ s.add_dependency(%q<jeweler>, ["~> 2.0"])
104
+ s.add_dependency(%q<simplecov>, ["~> 0.11"])
105
+ s.add_dependency(%q<capture_stdout>, ["~> 0.0"])
106
+ s.add_dependency(%q<builtinextension>, ["~> 0.1"])
93
107
  end
94
108
  end
95
109
 
data/test/helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'pp'
1
2
  require 'rubygems'
2
3
  require 'bundler'
3
4
  require "capture_stdout"
@@ -0,0 +1,123 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "helper"
5
+ require "stringio"
6
+
7
+ # 元々の行末は保存する。
8
+ # 消すようにすると、空行などの処理が面倒になる。
9
+ class TC_EachSentence < Test::Unit::TestCase
10
+ def setup
11
+ @test00 = Tefil::EachSentence.new()
12
+ end
13
+
14
+ def test_process_stream
15
+ # divide
16
+ in_io = StringIO.new
17
+ in_io.puts <<HERE
18
+ Abc def. Ghi jhk.
19
+ HERE
20
+ in_io.rewind
21
+ out_io = StringIO.new
22
+ @test00.process_stream(in_io, out_io)
23
+ out_io.rewind
24
+ result = out_io.read
25
+ correct = <<HERE
26
+ Abc def.
27
+ Ghi jhk.
28
+ HERE
29
+ assert_equal(correct, result)
30
+
31
+ # 行末の保存
32
+ in_io = StringIO.new
33
+ in_io.puts <<HERE
34
+ Abc def
35
+ Ghi jhk.
36
+ HERE
37
+ in_io.rewind
38
+ out_io = StringIO.new
39
+ @test00.process_stream(in_io, out_io)
40
+ out_io.rewind
41
+ result = out_io.read
42
+ correct = <<HERE
43
+ Abc def
44
+ Ghi jhk.
45
+ HERE
46
+ assert_equal(correct, result)
47
+
48
+ # indent
49
+ in_io = StringIO.new
50
+ in_io.puts <<HERE
51
+ Abc def
52
+ Ghi jhk.
53
+ HERE
54
+ in_io.rewind
55
+ out_io = StringIO.new
56
+ @test00.process_stream(in_io, out_io)
57
+ out_io.rewind
58
+ result = out_io.read
59
+ correct = <<HERE
60
+ Abc def
61
+ Ghi jhk.
62
+ HERE
63
+ assert_equal(correct, result)
64
+
65
+ # empty line
66
+ in_io = StringIO.new
67
+ in_io.puts <<HERE
68
+ Abc def.
69
+
70
+ Ghi jhk.
71
+ HERE
72
+ in_io.rewind
73
+ out_io = StringIO.new
74
+ @test00.process_stream(in_io, out_io)
75
+ out_io.rewind
76
+ result = out_io.read
77
+ correct = <<HERE
78
+ Abc def.
79
+
80
+ Ghi jhk.
81
+ HERE
82
+ assert_equal(correct, result)
83
+
84
+ # Fig.
85
+ in_io = StringIO.new
86
+ in_io.puts <<HERE
87
+ Including Fig.3. Fig. 3? Fig.
88
+ 4 does' not exist.
89
+ HERE
90
+ in_io.rewind
91
+ out_io = StringIO.new
92
+ @test00.process_stream(in_io, out_io)
93
+ out_io.rewind
94
+ result = out_io.read
95
+ correct = <<HERE
96
+ Including Fig.3.
97
+ Fig. 3?
98
+ Fig.
99
+ 4 does' not exist.
100
+ HERE
101
+ assert_equal(correct, result)
102
+
103
+ # Japanese kutouten
104
+ in_io = StringIO.new
105
+ in_io.puts <<HERE
106
+ あいうえお。かき
107
+ くけこ。
108
+ HERE
109
+ in_io.rewind
110
+ out_io = StringIO.new
111
+ @test00.process_stream(in_io, out_io)
112
+ out_io.rewind
113
+ result = out_io.read
114
+ correct = <<HERE
115
+ あいうえお。
116
+ かき
117
+ くけこ。
118
+ HERE
119
+ assert_equal(correct, result)
120
+ end
121
+ end
122
+
123
+
@@ -0,0 +1,103 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "helper"
5
+ require "stringio"
6
+
7
+ class Tefil::FswikiToMd
8
+ public :process_stream
9
+ end
10
+
11
+ class TC_FswikiToMd < Test::Unit::TestCase
12
+ def setup
13
+ @f00 = Tefil::FswikiToMd.new()
14
+ end
15
+
16
+ def test_process_stream
17
+ [
18
+ ["!!! head1" , "# head1" ],
19
+ ["!! head2" , "## head2" ],
20
+ ["! head3" , "### head3" ],
21
+ ["abc ''italic'' def" , "abc *italic* def" ],
22
+ ["abc '''bold''' def" , "abc **bold** def" ],
23
+ #["abc ==strike== def" , ],
24
+ #["abc __underline__ def" , ],
25
+ #['"" quotation' , ],
26
+ ["* item" , "* item" ],
27
+ ["** item" , " * item" ],
28
+ ["*** item" , " * item" ],
29
+ ["**** item" , " * item" ],
30
+ ["+ enum" , "0. enum" ],
31
+ ["++ enum" , " 0. enum" ],
32
+ ["+++ enum" , " 0. enum" ],
33
+ ["++++ enum" , " 0. enum" ],
34
+ #["*http://www.yahoo.co.jp/" , ],
35
+ ["[Google|http://www.google.co.jp/]" , "[Google](http://www.google.co.jp/)" ],
36
+ [" formatted text" , " formatted text" ],
37
+ ["----" , "---" ],
38
+ ["// comment" , "<!-- comment-->" ],
39
+ ].each do |i|
40
+ $stdin = StringIO.new
41
+ $stdin.puts i[0]
42
+ $stdin.rewind
43
+ str = capture_stdout{}
44
+ result = capture_stdout{ @f00.filter([])}
45
+ correct = sprintf("#{i[1]}\n")
46
+ assert_equal(correct, result)
47
+ end
48
+
49
+ ## stdin -> stdout
50
+ #$stdin = StringIO.new
51
+ #$stdin.puts "!!! head1"
52
+ #$stdin.puts "!! head2"
53
+ #$stdin.puts "! head3"
54
+ #$stdin.puts "abc ''italic'' def"
55
+ #$stdin.puts "abc '''bold''' def"
56
+ ##$stdin.puts "abc ==strike== def"
57
+ ##$stdin.puts "abc __underline__ def"
58
+ ##$stdin.puts '"" quotation'
59
+ #$stdin.puts "* item"
60
+ #$stdin.puts "** item"
61
+ #$stdin.puts "*** item"
62
+ #$stdin.puts "**** item"
63
+ #$stdin.puts "+ enum"
64
+ #$stdin.puts "++ enum"
65
+ #$stdin.puts "+++ enum"
66
+ #$stdin.puts "++++ enum"
67
+ ##$stdin.puts "*http://www.yahoo.co.jp/"
68
+ #$stdin.puts "[Google|http://www.google.co.jp/]"
69
+ #$stdin.puts " formatted text"
70
+ #$stdin.puts "----" #horizontal line
71
+ ##$stdin.puts "abc // commented out"
72
+ #$stdin.rewind
73
+ #str = capture_stdout{}
74
+ #result = capture_stdout{ @f00.filter([])}
75
+ #correct = [
76
+ # "# head1",
77
+ # "## head2",
78
+ # "### head3",
79
+ # "abc *italic* def",
80
+ # "abc **bold** def",
81
+ # "* item",
82
+ # " * item",
83
+ # " * item",
84
+ # " * item",
85
+ # "0. enum",
86
+ # " 0. enum",
87
+ # " 0. enum",
88
+ # " 0. enum",
89
+ # "[Google](http://www.google.co.jp/)",
90
+ # " formatted text",
91
+ # "---",
92
+ # ""
93
+ #].join("\n")
94
+ #assert_equal(correct, result)
95
+ end
96
+ end
97
+
98
+
99
+
100
+
101
+
102
+
103
+
@@ -0,0 +1,52 @@
1
+ #! /usr/bin/env ruby
2
+ # coding: utf-8
3
+
4
+ require "helper"
5
+ require "stringio"
6
+
7
+ class Tefil::MdToFswiki
8
+ public :process_stream
9
+ end
10
+
11
+ class TC_MdToFswiki < Test::Unit::TestCase
12
+ def setup
13
+ @f00 = Tefil::MdToFswiki.new()
14
+ end
15
+
16
+ def test_process_stream
17
+ #pp "##aho".sub!(/^\#\#\#/ , '')
18
+ #exit
19
+
20
+ [
21
+ [ "# head1" , "!!! head1" ],
22
+ [ "## head2" , "!! head2" ],
23
+ [ "### head3" , "! head3" ],
24
+ [ "abc *italic* def" , "abc ''italic'' def" ],
25
+ #[ "abc **bold** def" , "abc '''bold''' def" ],
26
+ #[ , "abc ==strike== def" ],
27
+ #[ , "abc __underline__ def" ],
28
+ #[ , '"" quotation' ],
29
+ [ "* item" , "* item" ],
30
+ [ " * item" , "** item" ],
31
+ [ " * item" , "*** item" ],
32
+ [ " * item" , "**** item" ],
33
+ [ "0. enum" , "+ enum" ],
34
+ [ " 0. enum" , "++ enum" ],
35
+ [ " 0. enum" , "+++ enum" ],
36
+ [ " 0. enum" , "++++ enum" ],
37
+ #[ , "*http://www.yahoo.co.jp/" ],
38
+ [ "[Google](http://www.google.co.jp/)", "[Google|http://www.google.co.jp/]" ],
39
+ [ " formatted text" , " formatted text" ],
40
+ [ "---" , "----" ],
41
+ #[ "<!-- comment-->" , "// comment" ],
42
+ ].each do |i|
43
+ $stdin = StringIO.new
44
+ $stdin.puts i[0]
45
+ $stdin.rewind
46
+ str = capture_stdout{}
47
+ result = capture_stdout{ @f00.filter([])}
48
+ correct = sprintf("#{i[1]}\n")
49
+ assert_equal(correct, result)
50
+ end
51
+ end
52
+ end
metadata CHANGED
@@ -1,107 +1,124 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tefil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ippei94da
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-07 00:00:00.000000000 Z
11
+ date: 2016-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: test-unit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rdoc
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 4.0.1
33
+ version: '4.2'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 4.0.1
40
+ version: '4.2'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: 1.9.2
47
+ version: '1.11'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: 1.9.2
54
+ version: '1.11'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: jeweler
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: 2.0.1
61
+ version: '2.0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: 2.0.1
68
+ version: '2.0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: capture_stdout
70
+ name: simplecov
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: 0.0.1
75
+ version: '0.11'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 0.0.1
82
+ version: '0.11'
69
83
  - !ruby/object:Gem::Dependency
70
- name: simplecov
84
+ name: capture_stdout
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ">="
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0'
89
+ version: '0.0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ">="
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0'
96
+ version: '0.0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: builtinextension
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ">="
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.1.0
103
+ version: '0.1'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ">="
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.1.0
110
+ version: '0.1'
97
111
  description: "This gem provides a framework of text filter.\n Tefil eneable to
98
112
  make text filter commands which have overwrite option easily.\n "
99
113
  email: ippei94da@gmail.com
100
114
  executables:
101
115
  - columnform
116
+ - eachsentence
117
+ - fswiki2md
102
118
  - indentconv
103
119
  - indentstat
104
120
  - linesub
121
+ - md2fswiki
105
122
  - percentpack
106
123
  - zshescape
107
124
  extensions: []
@@ -117,37 +134,48 @@ files:
117
134
  - Rakefile
118
135
  - VERSION
119
136
  - bin/columnform
137
+ - bin/eachsentence
138
+ - bin/fswiki2md
120
139
  - bin/indentconv
121
140
  - bin/indentstat
122
141
  - bin/linesub
142
+ - bin/md2fswiki
123
143
  - bin/percentpack
124
144
  - bin/zshescape
145
+ - doc/memo.txt
146
+ - example/columnformer/sample.txt
147
+ - example/eachsentence/sample.txt
148
+ - example/indentconv/sample0.txt
149
+ - example/indentconv/sample1.txt
150
+ - example/indentstat/indent4.txt
151
+ - example/indentstat/sample0.txt
152
+ - example/indentstat/sample1.txt
153
+ - example/percentpack/sample.txt
154
+ - example/zshescape/sample.txt
125
155
  - lib/tefil.rb
126
156
  - lib/tefil/columnformer.rb
157
+ - lib/tefil/eachsentence.rb
158
+ - lib/tefil/fswikitomd.rb
127
159
  - lib/tefil/indentconverter.rb
128
160
  - lib/tefil/indentstatistics.rb
129
161
  - lib/tefil/linesubstituter.rb
162
+ - lib/tefil/mdtofswiki.rb
130
163
  - lib/tefil/percentpacker.rb
131
164
  - lib/tefil/textfilterbase.rb
132
165
  - lib/tefil/zshescaper.rb
133
166
  - tefil.gemspec
134
- - test/columnformer/sample.txt
135
167
  - test/formcolumn_space
136
168
  - test/helper.rb
137
- - test/indentconv/sample0.txt
138
- - test/indentconv/sample1.txt
139
- - test/indentstat/indent4.txt
140
- - test/indentstat/sample0.txt
141
- - test/indentstat/sample1.txt
142
- - test/percentpack/sample.txt
143
169
  - test/test_columnformer.rb
170
+ - test/test_eachsentence.rb
171
+ - test/test_fswikitomd.rb
144
172
  - test/test_indentconverter.rb
145
173
  - test/test_indentstatistics.rb
146
174
  - test/test_linesubstituter.rb
175
+ - test/test_mdtofswiki.rb
147
176
  - test/test_percentpacker.rb
148
177
  - test/test_textfilterbase.rb
149
178
  - test/test_zshescaper.rb
150
- - test/zshescape/sample.txt
151
179
  homepage: http://github.com/ippei94da/tefil
152
180
  licenses:
153
181
  - MIT
@@ -168,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
196
  version: '0'
169
197
  requirements: []
170
198
  rubyforge_project:
171
- rubygems_version: 2.2.2
199
+ rubygems_version: 2.5.1
172
200
  signing_key:
173
201
  specification_version: 4
174
202
  summary: Basic framework of text filter