tefil 0.1.0 → 0.1.1

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.
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