rubysl-stringio 1.0.1 → 2.0.0
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 +4 -4
- data/.travis.yml +5 -6
- data/lib/rubysl/stringio/stringio.rb +233 -103
- data/lib/rubysl/stringio/version.rb +1 -1
- data/rubysl-stringio.gemspec +1 -2
- metadata +24 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad4377f000371c4db7fcc555b58556ead4b61005
|
4
|
+
data.tar.gz: 2928739f7801ab5da1d9aee92165ef42c49ab5fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f31db2a4d211f5bd2c576ace419d0a5a79aa2537a3d01c499be3225308043a5b189db2f8c69fb76036bd7f8fc1b6e9808ace694e3f5196336e946d6867d441ac
|
7
|
+
data.tar.gz: 2f3fcf1b00557c2e78af268b8781adbbd3279c25af76d0d094147f3d25738cb4f28deda3e1a245cd6e994a173f62fe83947b21c16d97ab7747c999cbd8980f47
|
data/.travis.yml
CHANGED
@@ -1,6 +1,15 @@
|
|
1
|
+
class IO
|
2
|
+
module Writable
|
3
|
+
end
|
4
|
+
module Readable
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
1
8
|
class StringIO
|
2
9
|
|
3
10
|
include Enumerable
|
11
|
+
include IO::Writable
|
12
|
+
include IO::Readable
|
4
13
|
|
5
14
|
DEFAULT_RECORD_SEPARATOR = "\n" unless defined?(::DEFAULT_RECORD_SEPARATOR)
|
6
15
|
|
@@ -8,10 +17,11 @@ class StringIO
|
|
8
17
|
Undefined = Object.new
|
9
18
|
|
10
19
|
class Data
|
11
|
-
attr_accessor :string, :pos, :lineno
|
20
|
+
attr_accessor :string, :pos, :lineno, :encoding
|
12
21
|
|
13
22
|
def initialize(string)
|
14
23
|
@string = string
|
24
|
+
@encoding = string.encoding
|
15
25
|
@pos = @lineno = 0
|
16
26
|
end
|
17
27
|
end
|
@@ -31,9 +41,15 @@ class StringIO
|
|
31
41
|
|
32
42
|
attr_reader :__data__
|
33
43
|
|
34
|
-
def initialize(string=
|
35
|
-
string
|
36
|
-
|
44
|
+
def initialize(string=nil, mode=nil)
|
45
|
+
if string.nil?
|
46
|
+
@__data__ = Data.new ""
|
47
|
+
set_encoding(nil)
|
48
|
+
mode = IO::RDWR
|
49
|
+
else
|
50
|
+
string = Rubinius::Type.coerce_to string, String, :to_str
|
51
|
+
@__data__ = Data.new string
|
52
|
+
end
|
37
53
|
|
38
54
|
if mode
|
39
55
|
if mode.is_a?(Integer)
|
@@ -75,6 +91,20 @@ class StringIO
|
|
75
91
|
|
76
92
|
private :check_writable
|
77
93
|
|
94
|
+
def set_encoding(external, internal=nil, options=nil)
|
95
|
+
encoding = external || Encoding.default_external
|
96
|
+
@__data__.encoding = encoding
|
97
|
+
@__data__.string.force_encoding(encoding)
|
98
|
+
end
|
99
|
+
|
100
|
+
def external_encoding
|
101
|
+
@__data__.encoding
|
102
|
+
end
|
103
|
+
|
104
|
+
def internal_encoding
|
105
|
+
nil
|
106
|
+
end
|
107
|
+
|
78
108
|
def each_byte
|
79
109
|
return to_enum :each_byte unless block_given?
|
80
110
|
check_readable
|
@@ -95,26 +125,8 @@ class StringIO
|
|
95
125
|
|
96
126
|
def each_char
|
97
127
|
return to_enum :each_char unless block_given?
|
98
|
-
|
99
|
-
|
100
|
-
while c = read(1) do
|
101
|
-
n = c[0]
|
102
|
-
leftmost_zero_bit = lookup.find{|i| n[i].zero? }
|
103
|
-
case leftmost_zero_bit
|
104
|
-
when 7 # ASCII
|
105
|
-
yield c
|
106
|
-
when 6 # UTF 8 complementary characters
|
107
|
-
next # Encoding error, ignore
|
108
|
-
else
|
109
|
-
more = read(6-leftmost_zero_bit)
|
110
|
-
break unless more
|
111
|
-
yield c+more
|
112
|
-
end
|
113
|
-
end
|
114
|
-
else
|
115
|
-
while s = read(1)
|
116
|
-
yield s
|
117
|
-
end
|
128
|
+
while s = getc
|
129
|
+
yield s
|
118
130
|
end
|
119
131
|
|
120
132
|
self
|
@@ -122,11 +134,34 @@ class StringIO
|
|
122
134
|
|
123
135
|
alias_method :chars, :each_char
|
124
136
|
|
125
|
-
def
|
126
|
-
return to_enum :
|
137
|
+
def each_codepoint(&block)
|
138
|
+
return to_enum :each_codepoint unless block_given?
|
127
139
|
check_readable
|
128
140
|
|
129
|
-
|
141
|
+
d = @__data__
|
142
|
+
string = d.string
|
143
|
+
|
144
|
+
while d.pos < string.bytesize
|
145
|
+
char = string.chr_at d.pos
|
146
|
+
|
147
|
+
unless char
|
148
|
+
raise ArgumentError, "invalid byte sequence in #{d.encoding}"
|
149
|
+
end
|
150
|
+
|
151
|
+
d.pos += char.bytesize
|
152
|
+
yield char.ord
|
153
|
+
end
|
154
|
+
|
155
|
+
self
|
156
|
+
end
|
157
|
+
|
158
|
+
alias_method :codepoints, :each_codepoint
|
159
|
+
|
160
|
+
def each(sep=$/, limit=Undefined)
|
161
|
+
return to_enum :each, sep, limit unless block_given?
|
162
|
+
check_readable
|
163
|
+
|
164
|
+
while line = getline(true, sep, limit)
|
130
165
|
yield line
|
131
166
|
end
|
132
167
|
|
@@ -149,29 +184,35 @@ class StringIO
|
|
149
184
|
check_writable
|
150
185
|
|
151
186
|
str = String(str)
|
152
|
-
|
153
187
|
return 0 if str.empty?
|
154
188
|
|
155
189
|
d = @__data__
|
156
190
|
pos = d.pos
|
157
191
|
string = d.string
|
158
192
|
|
159
|
-
if @append || pos == string.
|
160
|
-
string
|
161
|
-
d.pos = string.
|
162
|
-
elsif pos > string.
|
163
|
-
|
164
|
-
string
|
165
|
-
|
193
|
+
if @append || pos == string.bytesize
|
194
|
+
string.byte_append str
|
195
|
+
d.pos = string.bytesize
|
196
|
+
elsif pos > string.bytesize
|
197
|
+
m = Rubinius::Mirror.reflect string
|
198
|
+
m.splice string.bytesize, 0, "\000" * (pos - string.bytesize)
|
199
|
+
string.byte_append str
|
200
|
+
d.pos = string.bytesize
|
166
201
|
else
|
167
|
-
string
|
168
|
-
|
202
|
+
stop = string.bytesize - pos
|
203
|
+
if str.bytesize < stop
|
204
|
+
stop = str.bytesize
|
205
|
+
end
|
206
|
+
m = Rubinius::Mirror.reflect string
|
207
|
+
m.splice pos, stop, str
|
208
|
+
d.pos += str.bytesize
|
169
209
|
string.taint if str.tainted?
|
170
210
|
end
|
171
211
|
|
172
|
-
|
212
|
+
str.bytesize
|
173
213
|
end
|
174
214
|
alias_method :syswrite, :write
|
215
|
+
alias_method :write_nonblock, :write
|
175
216
|
|
176
217
|
def close
|
177
218
|
raise IOError, "closed stream" if closed?
|
@@ -202,7 +243,7 @@ class StringIO
|
|
202
243
|
|
203
244
|
def eof?
|
204
245
|
d = @__data__
|
205
|
-
d.pos >= d.string.
|
246
|
+
d.pos >= d.string.bytesize
|
206
247
|
end
|
207
248
|
alias_method :eof, :eof?
|
208
249
|
|
@@ -226,8 +267,10 @@ class StringIO
|
|
226
267
|
check_readable
|
227
268
|
d = @__data__
|
228
269
|
|
229
|
-
|
230
|
-
|
270
|
+
return nil if eof?
|
271
|
+
|
272
|
+
char = d.string.find_character(d.pos)
|
273
|
+
d.pos += char.bytesize
|
231
274
|
char
|
232
275
|
end
|
233
276
|
|
@@ -242,10 +285,10 @@ class StringIO
|
|
242
285
|
byte
|
243
286
|
end
|
244
287
|
|
245
|
-
def gets(sep =
|
288
|
+
def gets(sep=$/, limit=Undefined)
|
246
289
|
check_readable
|
247
290
|
|
248
|
-
$_ = getline(sep)
|
291
|
+
$_ = getline(false, sep, limit)
|
249
292
|
end
|
250
293
|
|
251
294
|
def isatty
|
@@ -253,11 +296,6 @@ class StringIO
|
|
253
296
|
end
|
254
297
|
alias_method :tty?, :isatty
|
255
298
|
|
256
|
-
def length
|
257
|
-
@string.length
|
258
|
-
end
|
259
|
-
alias_method :size, :length
|
260
|
-
|
261
299
|
def lineno
|
262
300
|
@__data__.lineno
|
263
301
|
end
|
@@ -266,10 +304,6 @@ class StringIO
|
|
266
304
|
@__data__.lineno = line
|
267
305
|
end
|
268
306
|
|
269
|
-
def path
|
270
|
-
nil
|
271
|
-
end
|
272
|
-
|
273
307
|
def pid
|
274
308
|
nil
|
275
309
|
end
|
@@ -286,7 +320,6 @@ class StringIO
|
|
286
320
|
def print(*args)
|
287
321
|
check_writable
|
288
322
|
args << $_ if args.empty?
|
289
|
-
args.map! { |x| x.nil? ? "nil" : x }
|
290
323
|
write((args << $\).flatten.join)
|
291
324
|
nil
|
292
325
|
end
|
@@ -309,23 +342,26 @@ class StringIO
|
|
309
342
|
if obj.is_a?(String)
|
310
343
|
char = obj[0]
|
311
344
|
else
|
312
|
-
|
345
|
+
c = Rubinius::Type.coerce_to obj, Integer, :to_int
|
346
|
+
char = (c & 0xff).chr
|
313
347
|
end
|
314
348
|
|
315
349
|
d = @__data__
|
316
350
|
pos = d.pos
|
317
351
|
string = d.string
|
318
352
|
|
319
|
-
if @append || pos == string.
|
320
|
-
string
|
321
|
-
d.pos = string.
|
322
|
-
elsif pos > string.
|
323
|
-
|
324
|
-
string
|
325
|
-
|
353
|
+
if @append || pos == string.bytesize
|
354
|
+
string.byte_append char
|
355
|
+
d.pos = string.bytesize
|
356
|
+
elsif pos > string.bytesize
|
357
|
+
m = Rubinius::Mirror.reflect string
|
358
|
+
m.splice string.bytesize, 0, "\000" * (pos - string.bytesize)
|
359
|
+
string.byte_append char
|
360
|
+
d.pos = string.bytesize
|
326
361
|
else
|
327
|
-
|
328
|
-
|
362
|
+
m = Rubinius::Mirror.reflect string
|
363
|
+
m.splice pos, char.bytesize, char
|
364
|
+
d.pos += char.bytesize
|
329
365
|
end
|
330
366
|
|
331
367
|
obj
|
@@ -337,7 +373,7 @@ class StringIO
|
|
337
373
|
else
|
338
374
|
args.each do |arg|
|
339
375
|
if arg.nil?
|
340
|
-
line = "
|
376
|
+
line = ""
|
341
377
|
elsif Thread.guarding? arg
|
342
378
|
line = "[...]"
|
343
379
|
else
|
@@ -360,27 +396,43 @@ class StringIO
|
|
360
396
|
nil
|
361
397
|
end
|
362
398
|
|
363
|
-
def read(length
|
399
|
+
def read(length=nil, buffer=nil)
|
364
400
|
check_readable
|
365
401
|
d = @__data__
|
366
402
|
pos = d.pos
|
367
403
|
string = d.string
|
368
404
|
|
369
|
-
buffer = StringValue(buffer)
|
370
|
-
|
371
405
|
if length
|
372
|
-
return nil if eof?
|
373
406
|
length = Rubinius::Type.coerce_to length, Integer, :to_int
|
374
407
|
raise ArgumentError if length < 0
|
375
|
-
|
376
|
-
|
408
|
+
|
409
|
+
buffer = StringValue(buffer) if buffer
|
410
|
+
|
411
|
+
if eof?
|
412
|
+
buffer.clear if buffer
|
413
|
+
if length == 0
|
414
|
+
return "".force_encoding(Encoding::ASCII_8BIT)
|
415
|
+
else
|
416
|
+
return nil
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
str = string.byteslice(pos, length)
|
421
|
+
str.force_encoding Encoding::ASCII_8BIT
|
422
|
+
|
423
|
+
str = buffer.replace(str) if buffer
|
377
424
|
else
|
378
|
-
|
379
|
-
|
380
|
-
|
425
|
+
if eof?
|
426
|
+
buffer.clear if buffer
|
427
|
+
return "".force_encoding(Encoding::ASCII_8BIT)
|
428
|
+
end
|
429
|
+
|
430
|
+
str = string.byteslice(pos..-1)
|
431
|
+
buffer.replace str if buffer
|
381
432
|
end
|
382
433
|
|
383
|
-
|
434
|
+
d.pos += str.length
|
435
|
+
return str
|
384
436
|
end
|
385
437
|
|
386
438
|
def readchar
|
@@ -388,20 +440,22 @@ class StringIO
|
|
388
440
|
getc
|
389
441
|
end
|
390
442
|
|
391
|
-
|
443
|
+
def readbyte
|
444
|
+
readchar.getbyte(0)
|
445
|
+
end
|
392
446
|
|
393
|
-
def readline(sep
|
394
|
-
raise IO::EOFError, "end of file reached" if eof?
|
447
|
+
def readline(sep=$/, limit=Undefined)
|
395
448
|
check_readable
|
449
|
+
raise IO::EOFError, "end of file reached" if eof?
|
396
450
|
|
397
|
-
$_ = getline(sep)
|
451
|
+
$_ = getline(true, sep, limit)
|
398
452
|
end
|
399
453
|
|
400
|
-
def readlines(sep
|
454
|
+
def readlines(sep=$/, limit=Undefined)
|
401
455
|
check_readable
|
402
456
|
|
403
457
|
ary = []
|
404
|
-
while line = getline(sep)
|
458
|
+
while line = getline(true, sep, limit)
|
405
459
|
ary << line
|
406
460
|
end
|
407
461
|
|
@@ -437,7 +491,7 @@ class StringIO
|
|
437
491
|
when IO::SEEK_CUR
|
438
492
|
to += @__data__.pos
|
439
493
|
when IO::SEEK_END
|
440
|
-
to += @__data__.string.
|
494
|
+
to += @__data__.string.bytesize
|
441
495
|
when IO::SEEK_SET, nil
|
442
496
|
else
|
443
497
|
raise Errno::EINVAL, "invalid whence"
|
@@ -451,7 +505,7 @@ class StringIO
|
|
451
505
|
end
|
452
506
|
|
453
507
|
def size
|
454
|
-
@__data__.string.
|
508
|
+
@__data__.string.bytesize
|
455
509
|
end
|
456
510
|
alias_method :length, :size
|
457
511
|
|
@@ -476,10 +530,18 @@ class StringIO
|
|
476
530
|
|
477
531
|
def sysread(length=nil, buffer="")
|
478
532
|
str = read(length, buffer)
|
479
|
-
|
533
|
+
|
534
|
+
if str.nil?
|
535
|
+
buffer.clear
|
536
|
+
raise IO::EOFError, "end of file reached"
|
537
|
+
end
|
538
|
+
|
480
539
|
str
|
481
540
|
end
|
482
541
|
|
542
|
+
alias_method :readpartial, :sysread
|
543
|
+
alias_method :read_nonblock, :sysread
|
544
|
+
|
483
545
|
def tell
|
484
546
|
@__data__.pos
|
485
547
|
end
|
@@ -490,10 +552,10 @@ class StringIO
|
|
490
552
|
raise Errno::EINVAL, "negative length" if len < 0
|
491
553
|
string = @__data__.string
|
492
554
|
|
493
|
-
if len < string.
|
494
|
-
string[len..string.
|
555
|
+
if len < string.bytesize
|
556
|
+
string[len..string.bytesize] = ""
|
495
557
|
else
|
496
|
-
string << "\000" * (len - string.
|
558
|
+
string << "\000" * (len - string.bytesize)
|
497
559
|
end
|
498
560
|
return length
|
499
561
|
end
|
@@ -505,10 +567,14 @@ class StringIO
|
|
505
567
|
pos = d.pos
|
506
568
|
string = d.string
|
507
569
|
|
508
|
-
char
|
570
|
+
if char.kind_of? Integer
|
571
|
+
char = Rubinius::Type.coerce_to char, String, :chr
|
572
|
+
else
|
573
|
+
char = Rubinius::Type.coerce_to char, String, :to_str
|
574
|
+
end
|
509
575
|
|
510
|
-
if pos > string.
|
511
|
-
string[string.
|
576
|
+
if pos > string.bytesize
|
577
|
+
string[string.bytesize..pos] = "\000" * (pos - string.bytesize)
|
512
578
|
d.pos -= 1
|
513
579
|
string[d.pos] = char
|
514
580
|
elsif pos > 0
|
@@ -519,6 +585,45 @@ class StringIO
|
|
519
585
|
nil
|
520
586
|
end
|
521
587
|
|
588
|
+
def ungetbyte(bytes)
|
589
|
+
check_readable
|
590
|
+
|
591
|
+
return unless bytes
|
592
|
+
|
593
|
+
if bytes.kind_of? Fixnum
|
594
|
+
bytes = "" << bytes
|
595
|
+
else
|
596
|
+
bytes = StringValue(bytes)
|
597
|
+
return if bytes.bytesize == 0
|
598
|
+
end
|
599
|
+
|
600
|
+
d = @__data__
|
601
|
+
pos = d.pos
|
602
|
+
string = d.string
|
603
|
+
|
604
|
+
enc = string.encoding
|
605
|
+
|
606
|
+
if d.pos == 0
|
607
|
+
d.string = "#{bytes}#{string}"
|
608
|
+
else
|
609
|
+
size = bytes.bytesize
|
610
|
+
a = string.byteslice(0, pos - size) if size < pos
|
611
|
+
b = string.byteslice(pos..-1)
|
612
|
+
d.string = "#{a}#{bytes}#{b}"
|
613
|
+
d.pos = pos > size ? pos - size : 0
|
614
|
+
end
|
615
|
+
|
616
|
+
d.string.force_encoding enc
|
617
|
+
nil
|
618
|
+
end
|
619
|
+
|
620
|
+
def encode_with(coder)
|
621
|
+
end
|
622
|
+
|
623
|
+
def init_with(coder)
|
624
|
+
@__data__ = Data.new("")
|
625
|
+
end
|
626
|
+
|
522
627
|
def to_yaml_properties
|
523
628
|
[]
|
524
629
|
end
|
@@ -569,8 +674,21 @@ class StringIO
|
|
569
674
|
d.string.replace("") if (mode & IO::TRUNC) != 0
|
570
675
|
end
|
571
676
|
|
572
|
-
def getline(sep
|
573
|
-
|
677
|
+
def getline(arg_error, sep, limit)
|
678
|
+
if limit != Undefined
|
679
|
+
limit = Rubinius::Type.coerce_to limit, Fixnum, :to_int
|
680
|
+
sep = Rubinius::Type.coerce_to sep, String, :to_str if sep
|
681
|
+
else
|
682
|
+
limit = nil
|
683
|
+
|
684
|
+
unless sep == $/ or sep.nil?
|
685
|
+
osep = sep
|
686
|
+
sep = Rubinius::Type.check_convert_type sep, String, :to_str
|
687
|
+
limit = Rubinius::Type.coerce_to osep, Fixnum, :to_int unless sep
|
688
|
+
end
|
689
|
+
end
|
690
|
+
|
691
|
+
raise ArgumentError if arg_error and limit == 0
|
574
692
|
|
575
693
|
return nil if eof?
|
576
694
|
|
@@ -579,28 +697,40 @@ class StringIO
|
|
579
697
|
string = d.string
|
580
698
|
|
581
699
|
if sep.nil?
|
582
|
-
|
583
|
-
|
700
|
+
if limit
|
701
|
+
line = string.byteslice(pos, limit)
|
702
|
+
else
|
703
|
+
line = string.byteslice(pos, string.bytesize - pos)
|
704
|
+
end
|
705
|
+
d.pos += line.bytesize
|
584
706
|
elsif sep.empty?
|
585
|
-
if stop = string.
|
707
|
+
if stop = string.find_string("\n\n", pos)
|
586
708
|
stop += 2
|
587
|
-
line = string
|
588
|
-
while string
|
709
|
+
line = string.byteslice(pos, stop - pos)
|
710
|
+
while string.getbyte(stop) == 10
|
589
711
|
stop += 1
|
590
712
|
end
|
591
713
|
d.pos = stop
|
592
714
|
else
|
593
|
-
line = string
|
594
|
-
d.pos = string.
|
715
|
+
line = string.byteslice(pos, string.bytesize - pos)
|
716
|
+
d.pos = string.bytesize
|
595
717
|
end
|
596
718
|
else
|
597
|
-
if stop = string.
|
598
|
-
stop
|
599
|
-
|
719
|
+
if stop = string.find_string(sep, pos)
|
720
|
+
if limit && stop - pos >= limit
|
721
|
+
stop = pos + limit
|
722
|
+
else
|
723
|
+
stop += sep.bytesize
|
724
|
+
end
|
725
|
+
line = string.byteslice(pos, stop - pos)
|
600
726
|
d.pos = stop
|
601
727
|
else
|
602
|
-
|
603
|
-
|
728
|
+
if limit
|
729
|
+
line = string.byteslice(pos, limit)
|
730
|
+
else
|
731
|
+
line = string.byteslice(pos, string.bytesize - pos)
|
732
|
+
end
|
733
|
+
d.pos += line.bytesize
|
604
734
|
end
|
605
735
|
end
|
606
736
|
|
data/rubysl-stringio.gemspec
CHANGED
@@ -16,10 +16,9 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.required_ruby_version = "~>
|
19
|
+
spec.required_ruby_version = "~> 2.0"
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "mspec", "~> 1.5"
|
24
|
-
spec.add_development_dependency "rubysl-prettyprint", "~> 1.0"
|
25
24
|
end
|
metadata
CHANGED
@@ -1,71 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubysl-stringio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2013-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.3'
|
20
15
|
requirement: !ruby/object:Gem::Requirement
|
21
16
|
requirements:
|
22
|
-
- -
|
17
|
+
- - ~>
|
23
18
|
- !ruby/object:Gem::Version
|
24
19
|
version: '1.3'
|
25
|
-
prerelease: false
|
26
20
|
type: :development
|
27
|
-
|
28
|
-
name: rake
|
21
|
+
prerelease: false
|
29
22
|
version_requirements: !ruby/object:Gem::Requirement
|
30
23
|
requirements:
|
31
|
-
- -
|
24
|
+
- - ~>
|
32
25
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
34
29
|
requirement: !ruby/object:Gem::Requirement
|
35
30
|
requirements:
|
36
|
-
- -
|
31
|
+
- - ~>
|
37
32
|
- !ruby/object:Gem::Version
|
38
33
|
version: '10.0'
|
39
|
-
prerelease: false
|
40
34
|
type: :development
|
41
|
-
|
42
|
-
name: mspec
|
35
|
+
prerelease: false
|
43
36
|
version_requirements: !ruby/object:Gem::Requirement
|
44
37
|
requirements:
|
45
|
-
- -
|
38
|
+
- - ~>
|
46
39
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
44
|
requirements:
|
50
|
-
- -
|
45
|
+
- - ~>
|
51
46
|
- !ruby/object:Gem::Version
|
52
47
|
version: '1.5'
|
53
|
-
prerelease: false
|
54
48
|
type: :development
|
55
|
-
|
56
|
-
name: rubysl-prettyprint
|
49
|
+
prerelease: false
|
57
50
|
version_requirements: !ruby/object:Gem::Requirement
|
58
51
|
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.0'
|
62
|
-
requirement: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - "~>"
|
52
|
+
- - ~>
|
65
53
|
- !ruby/object:Gem::Version
|
66
|
-
version: '1.
|
67
|
-
prerelease: false
|
68
|
-
type: :development
|
54
|
+
version: '1.5'
|
69
55
|
description: Ruby standard library stringio.
|
70
56
|
email:
|
71
57
|
- brixen@gmail.com
|
@@ -73,8 +59,8 @@ executables: []
|
|
73
59
|
extensions: []
|
74
60
|
extra_rdoc_files: []
|
75
61
|
files:
|
76
|
-
-
|
77
|
-
-
|
62
|
+
- .gitignore
|
63
|
+
- .travis.yml
|
78
64
|
- Gemfile
|
79
65
|
- LICENSE
|
80
66
|
- README.md
|
@@ -172,17 +158,17 @@ require_paths:
|
|
172
158
|
- lib
|
173
159
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
160
|
requirements:
|
175
|
-
- -
|
161
|
+
- - ~>
|
176
162
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
163
|
+
version: '2.0'
|
178
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
165
|
requirements:
|
180
|
-
- -
|
166
|
+
- - '>='
|
181
167
|
- !ruby/object:Gem::Version
|
182
168
|
version: '0'
|
183
169
|
requirements: []
|
184
170
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.
|
171
|
+
rubygems_version: 2.0.7
|
186
172
|
signing_key:
|
187
173
|
specification_version: 4
|
188
174
|
summary: Ruby standard library stringio.
|
@@ -265,4 +251,3 @@ test_files:
|
|
265
251
|
- spec/ungetc_spec.rb
|
266
252
|
- spec/write_nonblock_spec.rb
|
267
253
|
- spec/write_spec.rb
|
268
|
-
has_rdoc:
|