re_expand 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/Generator.rb CHANGED
@@ -114,11 +114,7 @@ module ReExpand
114
114
  patstr = (["(.*)"] * sslen).join("\t")
115
115
  /#{patstr}/ =~ ss.join("\t")
116
116
  end
117
- ## next if $1 == $2
118
117
  # 'set date #{$2}' のような記述の$変数にsubstringの値を代入
119
- File.open("/tmp/log","a"){ |f|
120
- f.puts "#{s}-----" + eval('%('+@commands[acceptno]+')')
121
- }
122
118
  res[ambig] << [s, eval('%('+@commands[acceptno]+')')]
123
119
  end
124
120
  end
data/lib/re_expand.rb CHANGED
@@ -3,7 +3,7 @@ $:.unshift(File.dirname(__FILE__)) unless
3
3
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
4
4
 
5
5
  module ReExpand
6
- VERSION = '0.0.2'
6
+ VERSION = '0.0.3'
7
7
  end
8
8
 
9
9
  require 'Generator'
@@ -15,29 +15,32 @@ class String
15
15
  # ExpandHelp用のライブラリを利用
16
16
  def expand(filterpat=' ')
17
17
  g = ReExpand::Generator.new
18
- g.add(self,'')
18
+ g.add(self,"\#{$1}\t\#{$2}\t\#{$3}\t\#{$4}\t\#{$5}\t\#{$6}\t\#{$7}\t\#{$8}\t\#{$9}")
19
19
  strings = []
20
+ #if filterpat.class == Regexp && block then
21
+ # g.generate(' ',block)
22
+ # return
20
23
  if filterpat.class == String then
21
- matched = g.generate(filterpat)
22
- res = matched[0].length > 0 ? matched[0] : matched[1].length > 0 ? matched[1] : matched[2]
23
- strings = res.collect { |r|
24
- r[0]
25
- }
26
- elsif
27
- matched = g.generate(' ')
28
- strings = matched[0].collect { |r|
24
+ m = g.generate(filterpat)
25
+ matched = m[0].length > 0 ? m[0] : m[1].length > 0 ? m[1] : m[2]
26
+ strings = matched.collect { |r|
29
27
  r[0]
30
28
  }
29
+ else
30
+ matched = g.generate(' ')[0]
31
31
  if filterpat.class == Regexp then
32
- strings = strings.find_all { |s|
33
- filterpat.match(s)
32
+ matched = matched.find_all { |r|
33
+ filterpat.match(r[0])
34
34
  }
35
35
  end
36
+ strings = matched.collect { |r|
37
+ r[0]
38
+ }
36
39
  end
37
40
 
38
41
  if block_given? then
39
- strings.each { |string|
40
- yield string
42
+ matched.collect { |m|
43
+ yield m[0], m[1].split(/\t/)
41
44
  }
42
45
  else
43
46
  strings
@@ -1,11 +1,36 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/test_helper.rb'
2
3
 
3
- class TestReExpand < Test::Unit::TestCase
4
+ module ReExpand
5
+ class TestReExpand < Test::Unit::TestCase
6
+
7
+ def setup
8
+ end
9
+
10
+ def test_truth
11
+ assert true
12
+ end
13
+
14
+ def test_array
15
+ e = "(月|火|水|木|金)曜(1|2|3|4|5|6)限".expand
16
+ assert_equal e.class, Array
17
+ assert_equal e.length, 30
18
+ end
19
+
20
+ def test_2
21
+ "(月|火|水|木|金)曜(1|2|3|4|5|6)限".expand { |s,a|
22
+ assert_equal a.length, 2
23
+ }
24
+
25
+ e = "(月|火|水|木|金)曜(1|2|3|4|5|6)限".expand(' 1 ')
26
+ assert_equal e.length, 5
27
+
28
+ '(ab|cd)*'.expand(/bc/){ |s,a|
29
+ assert_equal a.length, 1
30
+ assert s =~ /abcd/
31
+ }
32
+
33
+ end
4
34
 
5
- def setup
6
- end
7
-
8
- def test_truth
9
- assert true
10
35
  end
11
36
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: re_expand
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Toshiyuki Masui