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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b6921e4d7b3812f5dbf37cabcbe0a2ee5bda9262
4
- data.tar.gz: 79fed2199276c855acdbb505f097c9354ae2a4d4
3
+ metadata.gz: ad4377f000371c4db7fcc555b58556ead4b61005
4
+ data.tar.gz: 2928739f7801ab5da1d9aee92165ef42c49ab5fb
5
5
  SHA512:
6
- metadata.gz: 346d375e8d4414ddb54329c5662e9f47de85a345f84af053fb2ed04e0477e2b4cf1564a1fbced171171edfc5d55eceb7b9f9c7b547fdaf8c60bdf41c3bffae96
7
- data.tar.gz: f99b75b501c6e292ac4cc14b7d88ea8bf9d860b8da2d18dc7c3dad096d3b9bb07fb5ba9d4419ac6f1b1e11e98ff3354f3e698202c77024db5872d30a69c2bb5b
6
+ metadata.gz: f31db2a4d211f5bd2c576ace419d0a5a79aa2537a3d01c499be3225308043a5b189db2f8c69fb76036bd7f8fc1b6e9808ace694e3f5196336e946d6867d441ac
7
+ data.tar.gz: 2f3fcf1b00557c2e78af268b8781adbbd3279c25af76d0d094147f3d25738cb4f28deda3e1a245cd6e994a173f62fe83947b21c16d97ab7747c999cbd8980f47
@@ -1,8 +1,7 @@
1
1
  language: ruby
2
- before_install:
3
- - gem update --system
4
- - gem --version
5
- - gem install rubysl-bundler
6
- script: bundle exec mspec spec
2
+ env:
3
+ - RUBYLIB=lib
4
+ script: bundle exec mspec
7
5
  rvm:
8
- - rbx-nightly-18mode
6
+ - 1.9.3
7
+ - rbx-nightly-19mode
@@ -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="", mode=nil)
35
- string = Rubinius::Type.coerce_to string, String, :to_str
36
- @__data__ = Data.new string
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
- if $KCODE == "UTF8"
99
- lookup = 7.downto(4)
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 each(sep = $/)
126
- return to_enum :each, sep unless block_given?
137
+ def each_codepoint(&block)
138
+ return to_enum :each_codepoint unless block_given?
127
139
  check_readable
128
140
 
129
- while line = getline(sep)
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.length
160
- string << str
161
- d.pos = string.length
162
- elsif pos > string.size
163
- string[string.size..pos] = "\000" * (pos - string.size)
164
- string << str
165
- d.pos = string.size
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[pos, str.length] = str
168
- d.pos += str.length
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
- return str.length
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.size
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
- char = d.string[d.pos]
230
- d.pos += 1 unless eof?
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
- char = Rubinius::Type.coerce_to obj, Integer, :to_int
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.length
320
- string << char
321
- d.pos = string.length
322
- elsif pos > string.length
323
- string[string.length..pos] = "\000" * (pos - string.length)
324
- string << char
325
- d.pos = string.length
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
- string[pos] = char
328
- d.pos += 1
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 = "nil"
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 = nil, buffer = "")
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
- buffer.replace(string[pos, length])
376
- d.pos += buffer.length
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
- return "" if eof?
379
- buffer.replace(string[pos..-1])
380
- d.pos = string.size
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
- return buffer
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
- alias_method :readbyte, :readchar
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.size
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.size
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
- raise IO::EOFError, "end of file reached" if str.nil?
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.size
494
- string[len..string.size] = ""
555
+ if len < string.bytesize
556
+ string[len..string.bytesize] = ""
495
557
  else
496
- string << "\000" * (len - string.size)
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 = Rubinius::Type.coerce_to char, Integer, :to_int
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.size
511
- string[string.size..pos] = "\000" * (pos - string.size)
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
- sep = StringValue(sep) unless sep.nil?
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
- line = string[pos..-1]
583
- d.pos = string.size
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.index("\n\n", pos)
707
+ if stop = string.find_string("\n\n", pos)
586
708
  stop += 2
587
- line = string[pos...stop]
588
- while string[stop] == ?\n
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[pos..-1]
594
- d.pos = string.size
715
+ line = string.byteslice(pos, string.bytesize - pos)
716
+ d.pos = string.bytesize
595
717
  end
596
718
  else
597
- if stop = string.index(sep, pos)
598
- stop += sep.length
599
- line = string[pos...stop]
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
- line = string[pos..-1]
603
- d.pos = string.size
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
 
@@ -1,5 +1,5 @@
1
1
  module RubySL
2
2
  module StringIO
3
- VERSION = "1.0.1"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -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 = "~> 1.8.7"
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: 1.0.1
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: 2014-03-16 00:00:00.000000000 Z
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
- - !ruby/object:Gem::Dependency
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: '10.0'
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
- - !ruby/object:Gem::Dependency
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: '1.5'
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
- - !ruby/object:Gem::Dependency
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.0'
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
- - ".gitignore"
77
- - ".travis.yml"
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: 1.8.7
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.2.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: