word_wrap 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +121 -0
- data/Rakefile +7 -0
- data/bin/ww +28 -0
- data/lib/word_wrap.rb +24 -0
- data/lib/word_wrap/version.rb +3 -0
- data/lib/word_wrap/wrapper.rb +96 -0
- data/spec/ww_spec.rb +272 -0
- data/word_wrap.gemspec +27 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4660c08a3ffd74a97b105526d2361f186bfb236a
|
4
|
+
data.tar.gz: 7591f43b255fa1e8d80d21342ebd1e41d7ab2b62
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 36bb550b86addd349547a880cbaa3c8b705da3a43958b6028254f4d633e2b22b36b2561589790802b696afe1fca37c4dce6b1ec0db0176a8a3d6a53c6c9a42c0
|
7
|
+
data.tar.gz: cb381f125177bc732d3276d068ca59ea063e35f38fb6db269e8fb5a2e17e723ff8c783c1b08aa080a89eb45e1b772034acef86363a303095f7443f8a6e47badc
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Radek Pazdera
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
# WordWrap
|
2
|
+
|
3
|
+
This gem is a extremely simple tool to word-wrap texts, which is the one an
|
4
|
+
only thing it can do. It comes with a script called `ww` that you can use
|
5
|
+
in the command line. And of course, you can get the functionality from within
|
6
|
+
Ruby as well.
|
7
|
+
|
8
|
+
For more information on usage, please refer to the **Usage** section of this
|
9
|
+
README bellow.
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
gem 'word_wrap'
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install word_wrap
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
You can use either the binary for the command line or the library directly
|
28
|
+
from your Ruby scripts. Both use cases are explained bellow.
|
29
|
+
|
30
|
+
### Command Line
|
31
|
+
|
32
|
+
When in shell, you can use the `ww` tool (ww stands for word-wrap). It takes
|
33
|
+
only two arguments:
|
34
|
+
|
35
|
+
* `-w W, --width WIDTH` - The width to which the text should be wrapped.
|
36
|
+
It is set to 80 by default.
|
37
|
+
* `-f, --fit` - In this case, the program will also rearrange lines, that are
|
38
|
+
shorter than 80 to fit them as much as possible to the
|
39
|
+
predefined width, in addition to wrapping the lines that exceed
|
40
|
+
it. This option is generally better for plain text. For code,
|
41
|
+
however, it will mess up your indentation.
|
42
|
+
#### Examples
|
43
|
+
|
44
|
+
The example file looks like this:
|
45
|
+
```bash
|
46
|
+
cat hip.txt
|
47
|
+
Forage Shoreditch disrupt Pitchfork meh.
|
48
|
+
|
49
|
+
Mustache 3 wolf moon gluten-free whatever master burn
|
50
|
+
vinyl.
|
51
|
+
```
|
52
|
+
|
53
|
+
```bash
|
54
|
+
ww -w20 hip.txt
|
55
|
+
Forage Shoreditch
|
56
|
+
disrupt Pitchfork
|
57
|
+
meh.
|
58
|
+
|
59
|
+
Mustache 3 wolf moon
|
60
|
+
gluten-free whatever
|
61
|
+
master burn
|
62
|
+
vinyl.
|
63
|
+
```
|
64
|
+
|
65
|
+
But you can also use stdin:
|
66
|
+
```bash
|
67
|
+
cat hip | ww -w20
|
68
|
+
Forage Shoreditch
|
69
|
+
disrupt Pitchfork
|
70
|
+
meh.
|
71
|
+
|
72
|
+
Mustache 3 wolf moon
|
73
|
+
gluten-free whatever
|
74
|
+
master burn
|
75
|
+
vinyl.
|
76
|
+
```
|
77
|
+
|
78
|
+
Note the difference at end of the second paragraph:
|
79
|
+
```bash
|
80
|
+
cat hip | ww -w20
|
81
|
+
Forage Shoreditch
|
82
|
+
disrupt Pitchfork
|
83
|
+
meh.
|
84
|
+
|
85
|
+
Mustache 3 wolf moon
|
86
|
+
gluten-free whatever
|
87
|
+
master burn
|
88
|
+
vinyl.
|
89
|
+
```
|
90
|
+
|
91
|
+
### Ruby library
|
92
|
+
|
93
|
+
If you would like to use the library in Ruby, you have two options:
|
94
|
+
|
95
|
+
* Use the `WordWrap#ww` function directly
|
96
|
+
* Use the `String#wrap` and `String#fit` functions this module adds to the
|
97
|
+
standard `String` class.
|
98
|
+
|
99
|
+
#### Example
|
100
|
+
|
101
|
+
```irb
|
102
|
+
irb(main):001:0> require 'word_wrap'
|
103
|
+
=> true
|
104
|
+
|
105
|
+
irb(main):002:0> WordWrap.ww "123 456 789", 5
|
106
|
+
=> "123\n456\n789\n"
|
107
|
+
|
108
|
+
irb(main):003:0> "123 456 789".wrap 5
|
109
|
+
=> "123\n456\n789\n"
|
110
|
+
|
111
|
+
irb(main):004:0> "123 456 789".fit 8
|
112
|
+
=> "123 456\n789\n"
|
113
|
+
```
|
114
|
+
|
115
|
+
## Contributing
|
116
|
+
|
117
|
+
1. Fork it ( http://github.com/pazdera/word_wrap/fork )
|
118
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
119
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
120
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
121
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/ww
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Copyright (c) 2014 Radek Pazdera
|
4
|
+
# Distributed under the MIT License
|
5
|
+
|
6
|
+
require 'optparse'
|
7
|
+
require 'word_wrap'
|
8
|
+
|
9
|
+
options = {:width => 80, :fit => false}
|
10
|
+
OptionParser.new do |opts|
|
11
|
+
opts.banner = "Usage: ww [OPTIONS] [input-file]"
|
12
|
+
|
13
|
+
opts.on("-f", "--fit", "Fit precisely to the defined width") do |f|
|
14
|
+
options[:fit] = f
|
15
|
+
end
|
16
|
+
|
17
|
+
opts.on("-w", "--width COLUMNS", "Set line width (defaults to 80)") do |w|
|
18
|
+
options[:width] = w.to_i
|
19
|
+
end
|
20
|
+
end.parse!
|
21
|
+
|
22
|
+
if ARGV.length > 0
|
23
|
+
File.open(ARGV[0], "r") do |f|
|
24
|
+
print WordWrap::ww f.read, options[:width], options[:fit]
|
25
|
+
end
|
26
|
+
else
|
27
|
+
print WordWrap::ww STDIN.read, options[:width], options[:fit]
|
28
|
+
end
|
data/lib/word_wrap.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
require "word_wrap/version"
|
5
|
+
require "word_wrap/wrapper"
|
6
|
+
|
7
|
+
module WordWrap
|
8
|
+
DEFAULT_WIDTH=80
|
9
|
+
|
10
|
+
def self.ww(text, width=DEFAULT_WIDTH, fit=false)
|
11
|
+
w = Wrapper.new(text, width)
|
12
|
+
fit ? w.fit : w.wrap
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class String
|
17
|
+
def wrap(width=DEFAULT_WIDTH)
|
18
|
+
WordWrap.ww(self, width, false)
|
19
|
+
end
|
20
|
+
|
21
|
+
def fit(width=DEFAULT_WIDTH)
|
22
|
+
WordWrap.ww(self, width, true)
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
# The actual implementation of wrapping
|
5
|
+
# TODO: share code between wrap and fit implementations
|
6
|
+
|
7
|
+
module WordWrap
|
8
|
+
class Wrapper
|
9
|
+
def initialize(text, width)
|
10
|
+
@text = text
|
11
|
+
@width = width
|
12
|
+
end
|
13
|
+
|
14
|
+
def fit
|
15
|
+
lines = []
|
16
|
+
next_line = ""
|
17
|
+
continued = false
|
18
|
+
@text.lines do |line|
|
19
|
+
line.chomp! "\n"
|
20
|
+
if line.length == 0
|
21
|
+
if next_line.length > 0
|
22
|
+
lines.push next_line
|
23
|
+
next_line = ""
|
24
|
+
end
|
25
|
+
lines.push ""
|
26
|
+
end
|
27
|
+
|
28
|
+
words = line.split " "
|
29
|
+
|
30
|
+
words.each do |word|
|
31
|
+
word.chomp! "\n"
|
32
|
+
|
33
|
+
if next_line.length + word.length < @width
|
34
|
+
if next_line.length > 0
|
35
|
+
next_line << " " << word
|
36
|
+
else
|
37
|
+
next_line = word
|
38
|
+
end
|
39
|
+
else
|
40
|
+
if word.length >= @width
|
41
|
+
lines.push next_line unless next_line == ""
|
42
|
+
lines.push word
|
43
|
+
next_line = ""
|
44
|
+
else
|
45
|
+
lines.push next_line
|
46
|
+
next_line = word
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
lines.push next_line
|
53
|
+
if next_line.length <= 0
|
54
|
+
lines.join("\n")
|
55
|
+
else
|
56
|
+
lines.join("\n") + "\n"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def wrap
|
61
|
+
output = []
|
62
|
+
|
63
|
+
@text.lines do |line|
|
64
|
+
line.chomp! "\n"
|
65
|
+
if line.length > @width
|
66
|
+
new_lines = split_line(line, @width)
|
67
|
+
while new_lines.length > 1 && new_lines[1].length > @width
|
68
|
+
output.push new_lines[0]
|
69
|
+
new_lines = split_line new_lines[1], @width
|
70
|
+
end
|
71
|
+
output += new_lines
|
72
|
+
else
|
73
|
+
output.push line
|
74
|
+
end
|
75
|
+
end
|
76
|
+
output.map { |s| s.rstrip! }
|
77
|
+
output.join("\n") + "\n"
|
78
|
+
end
|
79
|
+
|
80
|
+
def split_line(line, width)
|
81
|
+
at = line.index /\s/
|
82
|
+
last_at = at
|
83
|
+
|
84
|
+
while at != nil && at < width
|
85
|
+
last_at = at
|
86
|
+
at = line.index /\s/, last_at + 1
|
87
|
+
end
|
88
|
+
|
89
|
+
if last_at == nil
|
90
|
+
[line]
|
91
|
+
else
|
92
|
+
[line[0,last_at], line[last_at+1, line.length]]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/spec/ww_spec.rb
ADDED
@@ -0,0 +1,272 @@
|
|
1
|
+
# Copyright (c) 2014 Radek Pazdera
|
2
|
+
# Distributed under the MIT License
|
3
|
+
|
4
|
+
# Several tests for the ww function
|
5
|
+
|
6
|
+
require "word_wrap"
|
7
|
+
|
8
|
+
describe WordWrap do
|
9
|
+
describe "#ww" do
|
10
|
+
it "wraps a single line correctly" do
|
11
|
+
text = "0123456789 01234 0123456"
|
12
|
+
expected =<<EOF
|
13
|
+
0123456789
|
14
|
+
01234
|
15
|
+
0123456
|
16
|
+
EOF
|
17
|
+
wrapped = WordWrap.ww(text, 10)
|
18
|
+
wrapped.should eql expected
|
19
|
+
end
|
20
|
+
|
21
|
+
it "works without breaks" do
|
22
|
+
text =<<EOF
|
23
|
+
0123456789012345678 9
|
24
|
+
0123456 0123456
|
25
|
+
EOF
|
26
|
+
|
27
|
+
expected =<<EOF
|
28
|
+
0123456789012345678
|
29
|
+
9
|
30
|
+
0123456
|
31
|
+
0123456
|
32
|
+
EOF
|
33
|
+
wrapped = WordWrap.ww(text, 10)
|
34
|
+
wrapped.should eql expected
|
35
|
+
end
|
36
|
+
|
37
|
+
it "wraps two paragraphs" do
|
38
|
+
text =<<EOF
|
39
|
+
Try-hard 3 wolf moon vinyl, authentic disrupt banh mi cliche fixie skateboard biodiesel chillwave before they sold out pop-up direct trade.
|
40
|
+
|
41
|
+
Mumblecore letterpress iPhone, Brooklyn pork belly distillery cray semiotics.
|
42
|
+
EOF
|
43
|
+
|
44
|
+
expected =<<EOF
|
45
|
+
Try-hard 3 wolf
|
46
|
+
moon vinyl,
|
47
|
+
authentic disrupt
|
48
|
+
banh mi cliche
|
49
|
+
fixie skateboard
|
50
|
+
biodiesel chillwave
|
51
|
+
before they sold
|
52
|
+
out pop-up direct
|
53
|
+
trade.
|
54
|
+
|
55
|
+
Mumblecore
|
56
|
+
letterpress iPhone,
|
57
|
+
Brooklyn pork belly
|
58
|
+
distillery cray
|
59
|
+
semiotics.
|
60
|
+
EOF
|
61
|
+
wrapped = WordWrap.ww(text, 20)
|
62
|
+
wrapped.should eql expected
|
63
|
+
end
|
64
|
+
|
65
|
+
it "wraps a partialy wrapped paragraph" do
|
66
|
+
text =<<EOF
|
67
|
+
Try-hard 3 wolf moon vinyl,
|
68
|
+
authentic
|
69
|
+
disrupt banh mi cliche
|
70
|
+
fixie skateboard biodiesel chillwave
|
71
|
+
before they sold out pop-up direct trade.
|
72
|
+
EOF
|
73
|
+
|
74
|
+
expected =<<EOF
|
75
|
+
Try-hard 3 wolf
|
76
|
+
moon vinyl,
|
77
|
+
authentic
|
78
|
+
disrupt banh mi
|
79
|
+
cliche
|
80
|
+
fixie skateboard
|
81
|
+
biodiesel chillwave
|
82
|
+
before they sold
|
83
|
+
out pop-up direct
|
84
|
+
trade.
|
85
|
+
EOF
|
86
|
+
wrapped = WordWrap.ww(text, 20)
|
87
|
+
wrapped.should eql expected
|
88
|
+
end
|
89
|
+
|
90
|
+
it "wrapping keeps whitespace" do
|
91
|
+
text =<<EOF
|
92
|
+
|
93
|
+
word word word word word
|
94
|
+
|
95
|
+
|
96
|
+
word word word
|
97
|
+
word word reallylong word
|
98
|
+
|
99
|
+
extremelylonganduglyword
|
100
|
+
|
101
|
+
extremelylonganduglyword
|
102
|
+
|
103
|
+
|
104
|
+
EOF
|
105
|
+
|
106
|
+
expected =<<EOF
|
107
|
+
|
108
|
+
word word
|
109
|
+
word word word
|
110
|
+
|
111
|
+
|
112
|
+
word word word
|
113
|
+
word word
|
114
|
+
reallylong word
|
115
|
+
|
116
|
+
extremelylonganduglyword
|
117
|
+
|
118
|
+
|
119
|
+
extremelylonganduglyword
|
120
|
+
|
121
|
+
|
122
|
+
EOF
|
123
|
+
wrapped = WordWrap.ww(text, 20)
|
124
|
+
wrapped.should eql expected
|
125
|
+
end
|
126
|
+
|
127
|
+
it "wrap as a part of String interface" do
|
128
|
+
text =<<EOF
|
129
|
+
Try-hard 3 wolf moon vinyl.
|
130
|
+
|
131
|
+
Mumblecore letterpress iPhone.
|
132
|
+
EOF
|
133
|
+
|
134
|
+
expected =<<EOF
|
135
|
+
Try-hard 3 wolf
|
136
|
+
moon vinyl.
|
137
|
+
|
138
|
+
Mumblecore
|
139
|
+
letterpress iPhone.
|
140
|
+
EOF
|
141
|
+
text.wrap(20).should eql expected
|
142
|
+
end
|
143
|
+
|
144
|
+
it "fits a single line correctly" do
|
145
|
+
text = "0123456789 01234 0123456"
|
146
|
+
expected =<<EOF
|
147
|
+
0123456789
|
148
|
+
01234
|
149
|
+
0123456
|
150
|
+
EOF
|
151
|
+
wrapped = WordWrap.ww(text, 10, true)
|
152
|
+
wrapped.should eql expected
|
153
|
+
end
|
154
|
+
|
155
|
+
it "works without breaks" do
|
156
|
+
text =<<EOF
|
157
|
+
0123456789012345678 9
|
158
|
+
0123456 0123456
|
159
|
+
EOF
|
160
|
+
|
161
|
+
expected =<<EOF
|
162
|
+
0123456789012345678
|
163
|
+
9 0123456
|
164
|
+
0123456
|
165
|
+
EOF
|
166
|
+
wrapped = WordWrap.ww(text, 10, true)
|
167
|
+
wrapped.should eql expected
|
168
|
+
end
|
169
|
+
|
170
|
+
it "fits two paragraphs" do
|
171
|
+
text =<<EOF
|
172
|
+
Try-hard 3 wolf moon vinyl, authentic disrupt banh mi cliche fixie skateboard biodiesel chillwave before they sold out pop-up direct trade.
|
173
|
+
|
174
|
+
Mumblecore letterpress iPhone, Brooklyn pork belly distillery cray semiotics.
|
175
|
+
EOF
|
176
|
+
|
177
|
+
expected =<<EOF
|
178
|
+
Try-hard 3 wolf moon
|
179
|
+
vinyl, authentic
|
180
|
+
disrupt banh mi
|
181
|
+
cliche fixie
|
182
|
+
skateboard biodiesel
|
183
|
+
chillwave before
|
184
|
+
they sold out pop-up
|
185
|
+
direct trade.
|
186
|
+
|
187
|
+
Mumblecore
|
188
|
+
letterpress iPhone,
|
189
|
+
Brooklyn pork belly
|
190
|
+
distillery cray
|
191
|
+
semiotics.
|
192
|
+
EOF
|
193
|
+
wrapped = WordWrap.ww(text, 20, true)
|
194
|
+
wrapped.should eql expected
|
195
|
+
end
|
196
|
+
|
197
|
+
it "fits a partialy wrapped paragraph" do
|
198
|
+
text =<<EOF
|
199
|
+
Try-hard 3 wolf moon vinyl,
|
200
|
+
awesome
|
201
|
+
disrupt banh mi cliche
|
202
|
+
fixie skateboard biodiesel chillwave
|
203
|
+
before they sold out pop-up direct trade.
|
204
|
+
EOF
|
205
|
+
|
206
|
+
expected =<<EOF
|
207
|
+
Try-hard 3 wolf moon
|
208
|
+
vinyl, awesome
|
209
|
+
disrupt banh mi
|
210
|
+
cliche fixie
|
211
|
+
skateboard biodiesel
|
212
|
+
chillwave before
|
213
|
+
they sold out pop-up
|
214
|
+
direct trade.
|
215
|
+
EOF
|
216
|
+
wrapped = WordWrap.ww(text, 20, true)
|
217
|
+
wrapped.should eql expected
|
218
|
+
end
|
219
|
+
|
220
|
+
it "fitting keeps empty lines" do
|
221
|
+
text =<<EOF
|
222
|
+
|
223
|
+
word word word word word
|
224
|
+
|
225
|
+
|
226
|
+
word word word
|
227
|
+
word word reallylong word
|
228
|
+
|
229
|
+
extremelylonganduglyword
|
230
|
+
|
231
|
+
extremelylonganduglyword
|
232
|
+
|
233
|
+
|
234
|
+
EOF
|
235
|
+
|
236
|
+
expected =<<EOF
|
237
|
+
|
238
|
+
word word word word
|
239
|
+
word
|
240
|
+
|
241
|
+
|
242
|
+
word word word word
|
243
|
+
word reallylong word
|
244
|
+
|
245
|
+
extremelylonganduglyword
|
246
|
+
|
247
|
+
extremelylonganduglyword
|
248
|
+
|
249
|
+
|
250
|
+
EOF
|
251
|
+
wrapped = WordWrap.ww(text, 20, true)
|
252
|
+
wrapped.should eql expected
|
253
|
+
end
|
254
|
+
|
255
|
+
it "fit as a part of String interface" do
|
256
|
+
text =<<EOF
|
257
|
+
Try-hard 3 wolf moon vinyl.
|
258
|
+
|
259
|
+
Mumblecore letterpress iPhone.
|
260
|
+
EOF
|
261
|
+
|
262
|
+
expected =<<EOF
|
263
|
+
Try-hard 3 wolf moon
|
264
|
+
vinyl.
|
265
|
+
|
266
|
+
Mumblecore
|
267
|
+
letterpress iPhone.
|
268
|
+
EOF
|
269
|
+
text.fit(20).should eql expected
|
270
|
+
end
|
271
|
+
end
|
272
|
+
end
|
data/word_wrap.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'word_wrap/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "word_wrap"
|
8
|
+
spec.version = WordWrap::VERSION
|
9
|
+
spec.authors = ["Radek Pazdera"]
|
10
|
+
spec.email = ["radek@pazdera.co.uk"]
|
11
|
+
spec.summary = %q{Simple tool for word-wrapping text}
|
12
|
+
spec.description = %q{This gem contains a very simple CLI tool for
|
13
|
+
word-wrapping plain-text files. As simple as
|
14
|
+
it gets. You can also use it in your Ruby
|
15
|
+
scripts - check out the sources for help.}
|
16
|
+
spec.homepage = "http://linuxwell.com/ww"
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split($/)
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.5"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "rspec"
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: word_wrap
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Radek Pazdera
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: |-
|
56
|
+
This gem contains a very simple CLI tool for
|
57
|
+
word-wrapping plain-text files. As simple as
|
58
|
+
it gets. You can also use it in your Ruby
|
59
|
+
scripts - check out the sources for help.
|
60
|
+
email:
|
61
|
+
- radek@pazdera.co.uk
|
62
|
+
executables:
|
63
|
+
- ww
|
64
|
+
extensions: []
|
65
|
+
extra_rdoc_files: []
|
66
|
+
files:
|
67
|
+
- .gitignore
|
68
|
+
- Gemfile
|
69
|
+
- LICENSE.txt
|
70
|
+
- README.md
|
71
|
+
- Rakefile
|
72
|
+
- bin/ww
|
73
|
+
- lib/word_wrap.rb
|
74
|
+
- lib/word_wrap/version.rb
|
75
|
+
- lib/word_wrap/wrapper.rb
|
76
|
+
- spec/ww_spec.rb
|
77
|
+
- word_wrap.gemspec
|
78
|
+
homepage: http://linuxwell.com/ww
|
79
|
+
licenses:
|
80
|
+
- MIT
|
81
|
+
metadata: {}
|
82
|
+
post_install_message:
|
83
|
+
rdoc_options: []
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
requirements: []
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 2.0.3
|
99
|
+
signing_key:
|
100
|
+
specification_version: 4
|
101
|
+
summary: Simple tool for word-wrapping text
|
102
|
+
test_files:
|
103
|
+
- spec/ww_spec.rb
|