tefil 0.0.2 → 0.0.3
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/CHANGES +8 -1
- data/VERSION +1 -1
- data/bin/formcolumn +6 -23
- data/bin/lineedit +3 -3
- data/bin/lineescapezsh +2 -2
- data/bin/linesub +2 -2
- data/lib/tefil/columnformer.rb +34 -0
- data/lib/tefil.rb +3 -2
- data/test/test_columnformer.rb +33 -0
- data/test/test_tefil.rb +9 -26
- metadata +41 -15
- data/tefil.gemspec +0 -68
data/CHANGES
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
= vasputils changelog
|
2
2
|
|
3
|
-
== Master
|
3
|
+
== Master
|
4
|
+
|
5
|
+
== Version 0.0.3 [2013-05-10] released
|
6
|
+
* Rename TextFilter to Tefil
|
7
|
+
* Add Tefil::ColumnFormer
|
8
|
+
* Add -l(left alline) option to formcolumn command.
|
9
|
+
|
10
|
+
== Version 0.0.2 [2013-04-18] released
|
4
11
|
* Adjust to builtinextension-0.1.0.
|
5
12
|
|
6
13
|
== Version 0.0.1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/bin/formcolumn
CHANGED
@@ -14,35 +14,18 @@ require "tefil"
|
|
14
14
|
# option analysis
|
15
15
|
OPTIONS = {:separator => ' '}
|
16
16
|
op = OptionParser.new
|
17
|
-
op.on("-o"
|
18
|
-
op.on("-s char"
|
17
|
+
op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
|
18
|
+
op.on("-s char", "--separator=char", "Indicate separator."){|val| OPTIONS[:separator] = val}
|
19
|
+
op.on("-l" , "--left-alline" , "Left alline."){ OPTIONS[:left] = true}
|
19
20
|
op.parse!(ARGV)
|
20
21
|
|
21
|
-
module
|
22
|
+
module Tefil
|
22
23
|
def self.process_stream(in_io, out_io)
|
23
24
|
rows = in_io.readlines.map { |line| line.strip.split(INPUT_SEPARATOR) }
|
24
|
-
|
25
|
-
#Obtain max length for each column.
|
26
|
-
max_lengths = []
|
27
|
-
rows.each do |row|
|
28
|
-
row.each_with_index do |item, index|
|
29
|
-
max_lengths[index] ||= 0
|
30
|
-
size = item.size
|
31
|
-
max_lengths[index] = size if max_lengths[index] < size
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
#Output
|
36
|
-
rows.each do |row|
|
37
|
-
new_items = []
|
38
|
-
row.each_with_index do |item, index|
|
39
|
-
new_items[index] = sprintf("%#{max_lengths[index]}s", item )
|
40
|
-
end
|
41
|
-
out_io.puts new_items.join(OPTIONS[:separator])
|
42
|
-
end
|
25
|
+
Tefil::ColumnFormer.form(rows, out_io, OPTIONS[:separator], OPTIONS[:left])
|
43
26
|
end
|
44
27
|
end
|
45
28
|
|
46
29
|
OPTIONS[:overwrite] ||= false
|
47
30
|
|
48
|
-
|
31
|
+
Tefil.run(ARGV, OPTIONS[:overwrite])
|
data/bin/lineedit
CHANGED
@@ -17,7 +17,7 @@ op.on("-r" , "--randomize" , "Randomize."){ OPTIONS[:random] = true}
|
|
17
17
|
op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
|
18
18
|
op.parse!(ARGV)
|
19
19
|
|
20
|
-
module
|
20
|
+
module Tefil
|
21
21
|
def self.process_stream(in_io, out_io)
|
22
22
|
in_io.each do |line|
|
23
23
|
if OPTIONS[:sort]
|
@@ -34,5 +34,5 @@ OPTIONS[:overwrite] ||= false
|
|
34
34
|
|
35
35
|
|
36
36
|
#pp OPTIONS[:overwrite]
|
37
|
-
#
|
38
|
-
|
37
|
+
#Tefil.run(ARGV, OPTIONS[:overwrite])
|
38
|
+
Tefil.run(ARGV, OPTIONS[:overwrite])
|
data/bin/lineescapezsh
CHANGED
@@ -17,7 +17,7 @@ op = OptionParser.new
|
|
17
17
|
op.on("-o" , "--overwrite" , "Overwrite."){ OPTIONS[:overwrite] = true}
|
18
18
|
op.parse!(ARGV)
|
19
19
|
|
20
|
-
module
|
20
|
+
module Tefil
|
21
21
|
def self.process_stream(in_io, out_io)
|
22
22
|
in_io.each do |line|
|
23
23
|
out_io.puts line.escape_zsh
|
@@ -27,4 +27,4 @@ end
|
|
27
27
|
|
28
28
|
OPTIONS[:overwrite] ||= false
|
29
29
|
|
30
|
-
|
30
|
+
Tefil.run(ARGV, OPTIONS[:overwrite])
|
data/bin/linesub
CHANGED
@@ -19,7 +19,7 @@ op.parse!(ARGV)
|
|
19
19
|
OLD_PATTERN = ARGV.shift
|
20
20
|
NEW_STR = ARGV.shift
|
21
21
|
|
22
|
-
module
|
22
|
+
module Tefil
|
23
23
|
def self.process_stream(in_io, out_io)
|
24
24
|
in_io.each do |line|
|
25
25
|
if OPTIONS[:global]
|
@@ -33,4 +33,4 @@ end
|
|
33
33
|
|
34
34
|
OPTIONS[:overwrite] ||= false
|
35
35
|
|
36
|
-
|
36
|
+
Tefil.run(ARGV, OPTIONS[:overwrite])
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
#
|
5
|
+
#
|
6
|
+
#
|
7
|
+
module Tefil::ColumnFormer
|
8
|
+
def self.form(matrix, io = $stdout, separator = " ", left = false)
|
9
|
+
#Obtain max length for each column.
|
10
|
+
max_lengths = []
|
11
|
+
matrix.each do |row|
|
12
|
+
row.each_with_index do |item, index|
|
13
|
+
item = item.to_s
|
14
|
+
max_lengths[index] ||= 0
|
15
|
+
size = item.size
|
16
|
+
max_lengths[index] = size if max_lengths[index] < size
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
#Output
|
21
|
+
matrix.each do |row|
|
22
|
+
new_items = []
|
23
|
+
|
24
|
+
form_left = ""
|
25
|
+
form_left = "-" if left
|
26
|
+
|
27
|
+
row.each_with_index do |item, index|
|
28
|
+
new_items[index] = sprintf("%#{form_left}#{max_lengths[index]}s", item)
|
29
|
+
end
|
30
|
+
io.puts new_items.join(separator).sub(/ +$/, "")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
data/lib/tefil.rb
CHANGED
@@ -26,7 +26,7 @@ require "tempfile"
|
|
26
26
|
# If indicated file(s) not found,
|
27
27
|
# this program notify on stderr and does not throw an exception.
|
28
28
|
#
|
29
|
-
module
|
29
|
+
module Tefil
|
30
30
|
|
31
31
|
class NotRedefinedMethodError < Exception; end
|
32
32
|
class TypeError < Exception; end
|
@@ -73,10 +73,11 @@ module TextFilter
|
|
73
73
|
# An argument 'in_io' indicates an io (file handle) for input.
|
74
74
|
# Another argument 'out_io' indicates an io (file handle) for output.
|
75
75
|
# This method must be redefined in a subclass or be overridden.
|
76
|
-
# If not redefined, raise an exception
|
76
|
+
# If not redefined, raise an exception Tefil::NotRedefinedMethodError.
|
77
77
|
def self.process_stream(in_io, out_io)
|
78
78
|
raise NotRedefinedMethodError
|
79
79
|
end
|
80
80
|
|
81
81
|
end
|
82
82
|
|
83
|
+
require "tefil/columnformer"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require "helper"
|
5
|
+
#require "test/unit"
|
6
|
+
#require "pkg/klass.rb"
|
7
|
+
require "stringio"
|
8
|
+
|
9
|
+
class TC_ColumnFormer < Test::Unit::TestCase
|
10
|
+
def test_form
|
11
|
+
io = StringIO.new
|
12
|
+
matrix = [
|
13
|
+
["a", "ab"],
|
14
|
+
["abc", "a"],
|
15
|
+
]
|
16
|
+
Tefil::ColumnFormer.form(matrix, io)
|
17
|
+
io.rewind
|
18
|
+
assert_equal(" a ab\nabc a\n", io.read)
|
19
|
+
|
20
|
+
io = StringIO.new
|
21
|
+
Tefil::ColumnFormer.form(matrix, io, ",")
|
22
|
+
io.rewind
|
23
|
+
assert_equal(" a,ab\nabc, a\n", io.read)
|
24
|
+
|
25
|
+
io = StringIO.new
|
26
|
+
Tefil::ColumnFormer.form(matrix, io, " ", true )
|
27
|
+
io.rewind
|
28
|
+
assert_equal("a ab\nabc a\n", io.read)
|
29
|
+
io.rewind
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/test/test_tefil.rb
CHANGED
@@ -6,7 +6,7 @@ require "stringio"
|
|
6
6
|
require "tempfile"
|
7
7
|
require "fileutils"
|
8
8
|
|
9
|
-
module
|
9
|
+
module Tefil
|
10
10
|
def self.process_stream(in_file, out_file)
|
11
11
|
results = []
|
12
12
|
in_file.each do |line|
|
@@ -40,8 +40,8 @@ class TestTefil < Test::Unit::TestCase
|
|
40
40
|
|
41
41
|
def test_self_run
|
42
42
|
# Not found
|
43
|
-
assert_raise(Errno::ENOENT){
|
44
|
-
assert_raise(Errno::ENOENT){
|
43
|
+
assert_raise(Errno::ENOENT){ Tefil.run([""]) }
|
44
|
+
assert_raise(Errno::ENOENT){ Tefil.run([""], true) }
|
45
45
|
|
46
46
|
# ファイル指定なしで標準入力
|
47
47
|
$stdin = StringIO.new
|
@@ -50,7 +50,7 @@ class TestTefil < Test::Unit::TestCase
|
|
50
50
|
$stdin.rewind
|
51
51
|
# stdout
|
52
52
|
$stdout = StringIO.new
|
53
|
-
|
53
|
+
Tefil.run([], false)
|
54
54
|
$stdout.rewind
|
55
55
|
t = $stdout.readlines
|
56
56
|
assert_equal([ "Abc\n", "def\n" ], t)
|
@@ -61,7 +61,7 @@ class TestTefil < Test::Unit::TestCase
|
|
61
61
|
$stdin.puts "def"
|
62
62
|
$stdin.rewind
|
63
63
|
$stdout = StringIO.new
|
64
|
-
|
64
|
+
Tefil.run([], true)
|
65
65
|
$stdout.rewind
|
66
66
|
t = $stdout.readlines
|
67
67
|
assert_equal([ "Abc\n", "def\n" ], t)
|
@@ -71,7 +71,7 @@ class TestTefil < Test::Unit::TestCase
|
|
71
71
|
# overwrite なし。
|
72
72
|
setup
|
73
73
|
$stdout = StringIO.new
|
74
|
-
|
74
|
+
Tefil.run([TMP00])
|
75
75
|
$stdout.rewind
|
76
76
|
tmp = $stdout.readlines
|
77
77
|
assert_equal(["Abc\n", "def\n"], tmp)
|
@@ -84,7 +84,7 @@ class TestTefil < Test::Unit::TestCase
|
|
84
84
|
# overwrite あり
|
85
85
|
setup
|
86
86
|
$stdout = StringIO.new
|
87
|
-
|
87
|
+
Tefil.run([TMP00], true)
|
88
88
|
$stdout.rewind
|
89
89
|
tmp = $stdout.readlines
|
90
90
|
assert_equal([], tmp)
|
@@ -98,7 +98,7 @@ class TestTefil < Test::Unit::TestCase
|
|
98
98
|
# overwrite なし。
|
99
99
|
setup
|
100
100
|
$stdout = StringIO.new
|
101
|
-
|
101
|
+
Tefil.run([TMP00, TMP01])
|
102
102
|
$stdout.rewind
|
103
103
|
tmp = $stdout.readlines
|
104
104
|
assert_equal(["Abc\n", "def\n", "Abc\n", "def\n", "cAb\n"], tmp)
|
@@ -111,7 +111,7 @@ class TestTefil < Test::Unit::TestCase
|
|
111
111
|
# overwrite あり。
|
112
112
|
setup
|
113
113
|
$stdout = StringIO.new
|
114
|
-
|
114
|
+
Tefil.run([TMP00, TMP01], true)
|
115
115
|
$stdout.rewind
|
116
116
|
stdout = $stdout.readlines
|
117
117
|
assert_equal([], stdout)
|
@@ -126,22 +126,5 @@ class TestTefil < Test::Unit::TestCase
|
|
126
126
|
$stdin = STDIN
|
127
127
|
end
|
128
128
|
|
129
|
-
def test_textfilter_command
|
130
|
-
#result = `echo "ab" | textfilter a A`
|
131
|
-
#assert_equal("Ab\n", result)
|
132
|
-
|
133
|
-
#setup
|
134
|
-
#result = `textfilter a A #{TMP00}`
|
135
|
-
#assert_equal("Abc\ndef\n", result)
|
136
|
-
#str = File.open(TMP00, "r").read
|
137
|
-
#assert_equal("abc\ndef\n", str)
|
138
|
-
|
139
|
-
#setup
|
140
|
-
#result = `textfilter -o a A #{TMP00}`
|
141
|
-
#assert_equal("", result)
|
142
|
-
#str = File.open(TMP00, "r").read
|
143
|
-
#assert_equal("Abc\ndef\n", str)
|
144
|
-
end
|
145
|
-
|
146
129
|
end
|
147
130
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tefil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
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: 2013-
|
12
|
+
date: 2013-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '3.12'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.12'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: bundler
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 1.3.5
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.3.5
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: jeweler
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 1.8.3
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.8.3
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: simplecov
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: builtinextension
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: 0.1.0
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.1.0
|
69
94
|
description: ! "This gem provides a framework of text filter.\n Tefil eneable to
|
70
95
|
make text filter commands which have overwrite option easily.\n "
|
71
96
|
email: ippei94da@gmail.com
|
@@ -91,9 +116,10 @@ files:
|
|
91
116
|
- bin/lineescapezsh
|
92
117
|
- bin/linesub
|
93
118
|
- lib/tefil.rb
|
94
|
-
- tefil.
|
119
|
+
- lib/tefil/columnformer.rb
|
95
120
|
- test/formcolumn_space
|
96
121
|
- test/helper.rb
|
122
|
+
- test/test_columnformer.rb
|
97
123
|
- test/test_tefil.rb
|
98
124
|
homepage: http://github.com/ippei94da/tefil
|
99
125
|
licenses:
|
@@ -110,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
136
|
version: '0'
|
111
137
|
segments:
|
112
138
|
- 0
|
113
|
-
hash:
|
139
|
+
hash: 416452449
|
114
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
141
|
none: false
|
116
142
|
requirements:
|
@@ -119,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
145
|
version: '0'
|
120
146
|
requirements: []
|
121
147
|
rubyforge_project:
|
122
|
-
rubygems_version: 1.8.
|
148
|
+
rubygems_version: 1.8.23
|
123
149
|
signing_key:
|
124
150
|
specification_version: 3
|
125
151
|
summary: Basic framework of text filter
|
data/tefil.gemspec
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "tefil"
|
8
|
-
s.version = "0.0.2"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["ippei94da"]
|
12
|
-
s.date = "2013-04-18"
|
13
|
-
s.description = "This gem provides a framework of text filter.\n Tefil eneable to make text filter commands which have overwrite option easily.\n "
|
14
|
-
s.email = "ippei94da@gmail.com"
|
15
|
-
s.executables = ["formcolumn", "lineedit", "lineescapezsh", "linesub"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE.txt",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".document",
|
22
|
-
"CHANGES",
|
23
|
-
"Gemfile",
|
24
|
-
"LICENSE.txt",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"VERSION",
|
28
|
-
"bin/formcolumn",
|
29
|
-
"bin/lineedit",
|
30
|
-
"bin/lineescapezsh",
|
31
|
-
"bin/linesub",
|
32
|
-
"lib/tefil.rb",
|
33
|
-
"tefil.gemspec",
|
34
|
-
"test/formcolumn_space",
|
35
|
-
"test/helper.rb",
|
36
|
-
"test/test_tefil.rb"
|
37
|
-
]
|
38
|
-
s.homepage = "http://github.com/ippei94da/tefil"
|
39
|
-
s.licenses = ["MIT"]
|
40
|
-
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version = "1.8.11"
|
42
|
-
s.summary = "Basic framework of text filter"
|
43
|
-
|
44
|
-
if s.respond_to? :specification_version then
|
45
|
-
s.specification_version = 3
|
46
|
-
|
47
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
48
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
49
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.3.5"])
|
50
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
51
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
52
|
-
s.add_development_dependency(%q<builtinextension>, [">= 0.1.0"])
|
53
|
-
else
|
54
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
55
|
-
s.add_dependency(%q<bundler>, ["~> 1.3.5"])
|
56
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
57
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
58
|
-
s.add_dependency(%q<builtinextension>, [">= 0.1.0"])
|
59
|
-
end
|
60
|
-
else
|
61
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
62
|
-
s.add_dependency(%q<bundler>, ["~> 1.3.5"])
|
63
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
64
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
65
|
-
s.add_dependency(%q<builtinextension>, [">= 0.1.0"])
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|