escape_utils 0.2.2 → 0.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.3 (March 9th, 2011)
4
+ * change encoding strategy to simply return strings in the encoding the input string was in, not taking into account Encoding.default_internal
5
+
3
6
  ## 0.2.2 (February 25th, 2011)
4
7
  * minor fix for Rubinius compatibility
5
8
 
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 Brian Lopez - http://github.com/brianmario
1
+ Copyright (c) 2010-2011 Brian Lopez - http://github.com/brianmario
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -303,10 +303,6 @@ static VALUE rb_escape_html(int argc, VALUE * argv, VALUE self) {
303
303
  VALUE str, rb_secure;
304
304
  int secure = html_secure;
305
305
  VALUE rb_output_buf;
306
- #ifdef HAVE_RUBY_ENCODING_H
307
- rb_encoding *default_internal_enc;
308
- rb_encoding *original_encoding;
309
- #endif
310
306
  unsigned char *inBuf, *outBuf;
311
307
  size_t len, new_len;
312
308
 
@@ -318,10 +314,6 @@ static VALUE rb_escape_html(int argc, VALUE * argv, VALUE self) {
318
314
 
319
315
  Check_Type(str, T_STRING);
320
316
 
321
- #ifdef HAVE_RUBY_ENCODING_H
322
- default_internal_enc = rb_default_internal_encoding();
323
- original_encoding = rb_enc_get(str);
324
- #endif
325
317
  inBuf = (unsigned char*)RSTRING_PTR(str);
326
318
  len = RSTRING_LEN(str);
327
319
 
@@ -340,28 +332,17 @@ static VALUE rb_escape_html(int argc, VALUE * argv, VALUE self) {
340
332
  rb_str_resize(rb_output_buf, new_len);
341
333
 
342
334
  #ifdef HAVE_RUBY_ENCODING_H
343
- rb_enc_associate(rb_output_buf, original_encoding);
344
- if (default_internal_enc) {
345
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
346
- }
335
+ rb_enc_copy(rb_output_buf, str);
347
336
  #endif
348
337
  return rb_output_buf;
349
338
  }
350
339
 
351
340
  static VALUE rb_unescape_html(VALUE self, VALUE str) {
352
341
  VALUE rb_output_buf;
353
- #ifdef HAVE_RUBY_ENCODING_H
354
- rb_encoding *default_internal_enc;
355
- rb_encoding *original_encoding;
356
- #endif
357
342
  unsigned char *inBuf, *outBuf;
358
343
  size_t len, new_len;
359
344
 
360
345
  Check_Type(str, T_STRING);
361
- #ifdef HAVE_RUBY_ENCODING_H
362
- default_internal_enc = rb_default_internal_encoding();
363
- original_encoding = rb_enc_get(str);
364
- #endif
365
346
  inBuf = (unsigned char*)RSTRING_PTR(str);
366
347
  len = RSTRING_LEN(str);
367
348
 
@@ -380,20 +361,13 @@ static VALUE rb_unescape_html(VALUE self, VALUE str) {
380
361
  rb_str_resize(rb_output_buf, new_len);
381
362
 
382
363
  #ifdef HAVE_RUBY_ENCODING_H
383
- rb_enc_associate(rb_output_buf, original_encoding);
384
- if (default_internal_enc) {
385
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
386
- }
364
+ rb_enc_copy(rb_output_buf, str);
387
365
  #endif
388
366
  return rb_output_buf;
389
367
  }
390
368
 
391
369
  static VALUE rb_escape_javascript(VALUE self, VALUE str) {
392
370
  VALUE rb_output_buf;
393
- #ifdef HAVE_RUBY_ENCODING_H
394
- rb_encoding *default_internal_enc;
395
- rb_encoding *original_encoding;
396
- #endif
397
371
  unsigned char *inBuf, *outBuf;
398
372
  size_t len, new_len;
399
373
 
@@ -403,10 +377,6 @@ static VALUE rb_escape_javascript(VALUE self, VALUE str) {
403
377
 
404
378
  Check_Type(str, T_STRING);
405
379
 
406
- #ifdef HAVE_RUBY_ENCODING_H
407
- default_internal_enc = rb_default_internal_encoding();
408
- original_encoding = rb_enc_get(str);
409
- #endif
410
380
  inBuf = (unsigned char*)RSTRING_PTR(str);
411
381
  len = RSTRING_LEN(str);
412
382
 
@@ -425,20 +395,13 @@ static VALUE rb_escape_javascript(VALUE self, VALUE str) {
425
395
  rb_str_resize(rb_output_buf, new_len);
426
396
 
427
397
  #ifdef HAVE_RUBY_ENCODING_H
428
- rb_enc_associate(rb_output_buf, original_encoding);
429
- if (default_internal_enc) {
430
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
431
- }
398
+ rb_enc_copy(rb_output_buf, str);
432
399
  #endif
433
400
  return rb_output_buf;
434
401
  }
435
402
 
436
403
  static VALUE rb_unescape_javascript(VALUE self, VALUE str) {
437
404
  VALUE rb_output_buf;
438
- #ifdef HAVE_RUBY_ENCODING_H
439
- rb_encoding *default_internal_enc;
440
- rb_encoding *original_encoding;
441
- #endif
442
405
  unsigned char *inBuf, *outBuf;
443
406
  size_t len, new_len;
444
407
 
@@ -448,10 +411,6 @@ static VALUE rb_unescape_javascript(VALUE self, VALUE str) {
448
411
 
449
412
  Check_Type(str, T_STRING);
450
413
 
451
- #ifdef HAVE_RUBY_ENCODING_H
452
- default_internal_enc = rb_default_internal_encoding();
453
- original_encoding = rb_enc_get(str);
454
- #endif
455
414
  inBuf = (unsigned char*)RSTRING_PTR(str);
456
415
  len = RSTRING_LEN(str);
457
416
 
@@ -470,29 +429,18 @@ static VALUE rb_unescape_javascript(VALUE self, VALUE str) {
470
429
  rb_str_resize(rb_output_buf, new_len);
471
430
 
472
431
  #ifdef HAVE_RUBY_ENCODING_H
473
- rb_enc_associate(rb_output_buf, original_encoding);
474
- if (default_internal_enc) {
475
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
476
- }
432
+ rb_enc_copy(rb_output_buf, str);
477
433
  #endif
478
434
  return rb_output_buf;
479
435
  }
480
436
 
481
437
  static VALUE rb_escape_url(VALUE self, VALUE str) {
482
438
  VALUE rb_output_buf;
483
- #ifdef HAVE_RUBY_ENCODING_H
484
- rb_encoding *default_internal_enc;
485
- rb_encoding *original_encoding;
486
- #endif
487
439
  unsigned char *inBuf, *outBuf;
488
440
  size_t len, new_len;
489
441
 
490
442
  Check_Type(str, T_STRING);
491
443
 
492
- #ifdef HAVE_RUBY_ENCODING_H
493
- default_internal_enc = rb_default_internal_encoding();
494
- original_encoding = rb_enc_get(str);
495
- #endif
496
444
  inBuf = (unsigned char*)RSTRING_PTR(str);
497
445
  len = RSTRING_LEN(str);
498
446
 
@@ -511,10 +459,7 @@ static VALUE rb_escape_url(VALUE self, VALUE str) {
511
459
  rb_str_resize(rb_output_buf, new_len);
512
460
 
513
461
  #ifdef HAVE_RUBY_ENCODING_H
514
- rb_enc_associate(rb_output_buf, original_encoding);
515
- if (default_internal_enc) {
516
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
517
- }
462
+ rb_enc_copy(rb_output_buf, str);
518
463
  #endif
519
464
  return rb_output_buf;
520
465
  }
@@ -523,10 +468,6 @@ static VALUE rb_unescape_url(VALUE self, VALUE str) {
523
468
  Check_Type(str, T_STRING);
524
469
 
525
470
  VALUE rb_output_buf;
526
- #ifdef HAVE_RUBY_ENCODING_H
527
- rb_encoding *default_internal_enc = rb_default_internal_encoding();
528
- rb_encoding *original_encoding = rb_enc_get(str);
529
- #endif
530
471
  unsigned char *inBuf = (unsigned char*)RSTRING_PTR(str);
531
472
  size_t len = RSTRING_LEN(str);
532
473
 
@@ -546,10 +487,7 @@ static VALUE rb_unescape_url(VALUE self, VALUE str) {
546
487
  rb_str_resize(rb_output_buf, new_len);
547
488
 
548
489
  #ifdef HAVE_RUBY_ENCODING_H
549
- rb_enc_associate(rb_output_buf, original_encoding);
550
- if (default_internal_enc) {
551
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
552
- }
490
+ rb_enc_copy(rb_output_buf, str);
553
491
  #endif
554
492
  return rb_output_buf;
555
493
  }
@@ -558,10 +496,6 @@ static VALUE rb_escape_uri(VALUE self, VALUE str) {
558
496
  Check_Type(str, T_STRING);
559
497
 
560
498
  VALUE rb_output_buf;
561
- #ifdef HAVE_RUBY_ENCODING_H
562
- rb_encoding *default_internal_enc = rb_default_internal_encoding();
563
- rb_encoding *original_encoding = rb_enc_get(str);
564
- #endif
565
499
  unsigned char *inBuf = (unsigned char*)RSTRING_PTR(str);
566
500
  size_t len = RSTRING_LEN(str);
567
501
  unsigned char *outBuf;
@@ -581,10 +515,7 @@ static VALUE rb_escape_uri(VALUE self, VALUE str) {
581
515
  rb_str_resize(rb_output_buf, new_len);
582
516
 
583
517
  #ifdef HAVE_RUBY_ENCODING_H
584
- rb_enc_associate(rb_output_buf, original_encoding);
585
- if (default_internal_enc) {
586
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
587
- }
518
+ rb_enc_copy(rb_output_buf, str);
588
519
  #endif
589
520
  return rb_output_buf;
590
521
  }
@@ -593,10 +524,6 @@ static VALUE rb_unescape_uri(VALUE self, VALUE str) {
593
524
  Check_Type(str, T_STRING);
594
525
 
595
526
  VALUE rb_output_buf;
596
- #ifdef HAVE_RUBY_ENCODING_H
597
- rb_encoding *default_internal_enc = rb_default_internal_encoding();
598
- rb_encoding *original_encoding = rb_enc_get(str);
599
- #endif
600
527
  unsigned char *inBuf = (unsigned char*)RSTRING_PTR(str);
601
528
  size_t len = RSTRING_LEN(str);
602
529
  unsigned char *outBuf;
@@ -616,10 +543,7 @@ static VALUE rb_unescape_uri(VALUE self, VALUE str) {
616
543
  rb_str_resize(rb_output_buf, new_len);
617
544
 
618
545
  #ifdef HAVE_RUBY_ENCODING_H
619
- rb_enc_associate(rb_output_buf, original_encoding);
620
- if (default_internal_enc) {
621
- rb_output_buf = rb_str_export_to_enc(rb_output_buf, default_internal_enc);
622
- }
546
+ rb_enc_copy(rb_output_buf, str);
623
547
  #endif
624
548
  return rb_output_buf;
625
549
  }
@@ -1,3 +1,3 @@
1
1
  module EscapeUtils
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -33,18 +33,11 @@ describe EscapeUtils, "escape_html" do
33
33
  end
34
34
 
35
35
  if RUBY_VERSION =~ /^1.9/
36
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
37
- Encoding.default_internal = nil
38
- str = "<b>Bourbon & Branch</b>"
39
- str = str.encode('us-ascii')
36
+ it "return value should be in original string's encoding" do
37
+ str = "<b>Bourbon & Branch</b>".encode('us-ascii')
40
38
  EscapeUtils.escape_html(str).encoding.should eql(Encoding.find('us-ascii'))
41
- end
42
-
43
- it "should use Encoding.default_internal" do
44
- Encoding.default_internal = Encoding.find('utf-8')
45
- EscapeUtils.escape_html("<b>Bourbon & Branch</b>").encoding.should eql(Encoding.default_internal)
46
- Encoding.default_internal = Encoding.find('us-ascii')
47
- EscapeUtils.escape_html("<b>Bourbon & Branch</b>").encoding.should eql(Encoding.default_internal)
39
+ str = "<b>Bourbon & Branch</b>".encode('utf-8')
40
+ EscapeUtils.escape_html(str).encoding.should eql(Encoding.find('utf-8'))
48
41
  end
49
42
  end
50
43
  end
@@ -28,18 +28,11 @@ describe EscapeUtils, "unescape_html" do
28
28
  end
29
29
 
30
30
  if RUBY_VERSION =~ /^1.9/
31
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
32
- Encoding.default_internal = nil
33
- str = "&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;"
34
- str = str.encode('us-ascii')
31
+ it "return value should be in original string's encoding" do
32
+ str = "&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;".encode('us-ascii')
35
33
  EscapeUtils.unescape_html(str).encoding.should eql(Encoding.find('us-ascii'))
36
- end
37
-
38
- it "should use Encoding.default_internal" do
39
- Encoding.default_internal = Encoding.find('utf-8')
40
- EscapeUtils.unescape_html("&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;").encoding.should eql(Encoding.default_internal)
41
- Encoding.default_internal = Encoding.find('us-ascii')
42
- EscapeUtils.unescape_html("&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;").encoding.should eql(Encoding.default_internal)
34
+ str = "&lt;b&gt;Bourbon &amp; Branch&lt;/b&gt;".encode('utf-8')
35
+ EscapeUtils.unescape_html(str).encoding.should eql(Encoding.find('utf-8'))
43
36
  end
44
37
  end
45
38
  end
@@ -24,18 +24,11 @@ describe EscapeUtils, "escape_javascript" do
24
24
  end
25
25
 
26
26
  if RUBY_VERSION =~ /^1.9/
27
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
28
- Encoding.default_internal = nil
29
- str = %(dont </close> tags)
30
- str = str.encode('us-ascii')
27
+ it "return value should be in original string's encoding" do
28
+ str = "dont </close> tags".encode('us-ascii')
31
29
  EscapeUtils.escape_javascript(str).encoding.should eql(Encoding.find('us-ascii'))
32
- end
33
-
34
- it "should use Encoding.default_internal" do
35
- Encoding.default_internal = Encoding.find('utf-8')
36
- EscapeUtils.escape_javascript(%(dont </close> tags)).encoding.should eql(Encoding.default_internal)
37
- Encoding.default_internal = Encoding.find('us-ascii')
38
- EscapeUtils.escape_javascript(%(dont </close> tags)).encoding.should eql(Encoding.default_internal)
30
+ str = "dont </close> tags".encode('utf-8')
31
+ EscapeUtils.escape_javascript(str).encoding.should eql(Encoding.find('utf-8'))
39
32
  end
40
33
  end
41
34
  end
@@ -28,18 +28,11 @@ describe EscapeUtils, "unescape_javascript" do
28
28
  end
29
29
 
30
30
  if RUBY_VERSION =~ /^1.9/
31
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
32
- Encoding.default_internal = nil
33
- str = %(dont <\\/close> tags)
34
- str = str.encode('us-ascii')
31
+ it "return value should be in original string's encoding" do
32
+ str = "dont <\\/close> tags".encode('us-ascii')
35
33
  EscapeUtils.unescape_javascript(str).encoding.should eql(Encoding.find('us-ascii'))
36
- end
37
-
38
- it "should use Encoding.default_internal" do
39
- Encoding.default_internal = Encoding.find('utf-8')
40
- EscapeUtils.unescape_javascript(%(dont <\\/close> tags)).encoding.should eql(Encoding.default_internal)
41
- Encoding.default_internal = Encoding.find('us-ascii')
42
- EscapeUtils.unescape_javascript(%(dont <\\/close> tags)).encoding.should eql(Encoding.default_internal)
34
+ str = "dont <\\/close> tags".encode('utf-8')
35
+ EscapeUtils.unescape_javascript(str).encoding.should eql(Encoding.find('utf-8'))
43
36
  end
44
37
  end
45
38
  end
@@ -28,27 +28,18 @@ describe EscapeUtils, "escape_url" do
28
28
 
29
29
  # NOTE: from Rack's test suite
30
30
  it "should escape correctly for multibyte characters" do
31
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
32
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
31
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
33
32
  EscapeUtils.escape_url(matz_name).should eql('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8')
34
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
35
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
33
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
36
34
  EscapeUtils.escape_url(matz_name_sep).should eql('%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8')
37
35
  end
38
36
 
39
37
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
- Encoding.default_internal = nil
42
- str = "http://www.homerun.com/"
43
- str = str.encode('us-ascii')
38
+ it "return value should be in original string's encoding" do
39
+ str = "http://www.homerun.com/".encode('us-ascii')
44
40
  EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('us-ascii'))
45
- end
46
-
47
- it "should use Encoding.default_internal" do
48
- Encoding.default_internal = Encoding.find('utf-8')
49
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
50
- Encoding.default_internal = Encoding.find('us-ascii')
51
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
41
+ str = "http://www.homerun.com/".encode('utf-8')
42
+ EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('utf-8'))
52
43
  end
53
44
  end
54
45
  end
@@ -28,27 +28,18 @@ describe EscapeUtils, "unescape_url" do
28
28
 
29
29
  # NOTE: from Rack's test suite
30
30
  it "should unescape correctly for multibyte characters" do
31
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
32
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
31
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
33
32
  EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8').should eql(matz_name)
34
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
35
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
33
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
36
34
  EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8').should eql(matz_name_sep)
37
35
  end
38
36
 
39
37
  if RUBY_VERSION =~ /^1.9/
40
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
41
- Encoding.default_internal = nil
42
- str = "http%3A%2F%2Fwww.homerun.com%2F"
43
- str = str.encode('us-ascii')
38
+ it "return value should be in original string's encoding" do
39
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('us-ascii')
44
40
  EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('us-ascii'))
45
- end
46
-
47
- it "should use Encoding.default_internal" do
48
- Encoding.default_internal = Encoding.find('utf-8')
49
- EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
50
- Encoding.default_internal = Encoding.find('us-ascii')
51
- EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
41
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('utf-8')
42
+ EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('utf-8'))
52
43
  end
53
44
  end
54
45
  end
@@ -27,27 +27,18 @@ describe EscapeUtils, "escape_uri" do
27
27
 
28
28
  # NOTE: from Rack's test suite
29
29
  it "should escape correctly for multibyte characters" do
30
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
31
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
30
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
32
31
  EscapeUtils.escape_uri(matz_name).should eql('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8')
33
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
34
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
32
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
35
33
  EscapeUtils.escape_uri(matz_name_sep).should eql('%E3%81%BE%E3%81%A4%20%E3%82%82%E3%81%A8')
36
34
  end
37
35
 
38
36
  if RUBY_VERSION =~ /^1.9/
39
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
40
- Encoding.default_internal = nil
41
- str = "http://www.homerun.com/"
42
- str = str.encode('us-ascii')
37
+ it "return value should be in original string's encoding" do
38
+ str = "http://www.homerun.com/".encode('us-ascii')
43
39
  EscapeUtils.escape_uri(str).encoding.should eql(Encoding.find('us-ascii'))
44
- end
45
-
46
- it "should use Encoding.default_internal" do
47
- Encoding.default_internal = Encoding.find('utf-8')
48
- EscapeUtils.escape_uri("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
49
- Encoding.default_internal = Encoding.find('us-ascii')
50
- EscapeUtils.escape_uri("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
40
+ str = "http://www.homerun.com/".encode('utf-8')
41
+ EscapeUtils.escape_uri(str).encoding.should eql(Encoding.find('utf-8'))
51
42
  end
52
43
  end
53
44
  end
@@ -39,27 +39,18 @@ describe EscapeUtils, "unescape_uri" do
39
39
 
40
40
  # NOTE: from Rack's test suite
41
41
  it "should unescape correctly for multibyte characters" do
42
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
43
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
42
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
44
43
  EscapeUtils.unescape_uri('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8').should eql(matz_name)
45
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
46
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
44
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
47
45
  EscapeUtils.unescape_uri('%E3%81%BE%E3%81%A4%20%E3%82%82%E3%81%A8').should eql(matz_name_sep)
48
46
  end
49
47
 
50
48
  if RUBY_VERSION =~ /^1.9/
51
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
52
- Encoding.default_internal = nil
53
- str = "http%3A%2F%2Fwww.homerun.com%2F"
54
- str = str.encode('us-ascii')
49
+ it "return value should be in original string's encoding" do
50
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('us-ascii')
55
51
  EscapeUtils.unescape_uri(str).encoding.should eql(Encoding.find('us-ascii'))
56
- end
57
-
58
- it "should use Encoding.default_internal" do
59
- Encoding.default_internal = Encoding.find('utf-8')
60
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
61
- Encoding.default_internal = Encoding.find('us-ascii')
62
- EscapeUtils.unescape_uri("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
52
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('utf-8')
53
+ EscapeUtils.unescape_uri(str).encoding.should eql(Encoding.find('utf-8'))
63
54
  end
64
55
  end
65
56
  end
@@ -36,27 +36,18 @@ describe EscapeUtils, "escape_url" do
36
36
 
37
37
  # NOTE: from Rack's test suite
38
38
  it "should escape correctly for multibyte characters" do
39
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
40
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
39
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
41
40
  EscapeUtils.escape_url(matz_name).should eql('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8')
42
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
43
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
41
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
44
42
  EscapeUtils.escape_url(matz_name_sep).should eql('%E3%81%BE%E3%81%A4+%E3%82%82%E3%81%A8')
45
43
  end
46
44
 
47
45
  if RUBY_VERSION =~ /^1.9/
48
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
49
- Encoding.default_internal = nil
50
- str = "http://www.homerun.com/"
51
- str = str.encode('us-ascii')
46
+ it "return value should be in original string's encoding" do
47
+ str = "http://www.homerun.com/".encode('us-ascii')
52
48
  EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('us-ascii'))
53
- end
54
-
55
- it "should use Encoding.default_internal" do
56
- Encoding.default_internal = Encoding.find('utf-8')
57
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
58
- Encoding.default_internal = Encoding.find('us-ascii')
59
- EscapeUtils.escape_url("http://www.homerun.com/").encoding.should eql(Encoding.default_internal)
49
+ str = "http://www.homerun.com/".encode('utf-8')
50
+ EscapeUtils.escape_url(str).encoding.should eql(Encoding.find('utf-8'))
60
51
  end
61
52
  end
62
53
  end
@@ -39,27 +39,18 @@ describe EscapeUtils, "unescape_url" do
39
39
 
40
40
  # NOTE: from Rack's test suite
41
41
  it "should unescape correctly for multibyte characters" do
42
- matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsumoto
43
- matz_name.force_encoding("UTF-8") if matz_name.respond_to? :force_encoding
42
+ matz_name = "\xE3\x81\xBE\xE3\x81\xA4\xE3\x82\x82\xE3\x81\xA8" # Matsumoto
44
43
  EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8').should eql(matz_name)
45
- matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8".unpack("a*")[0] # Matsu moto
46
- matz_name_sep.force_encoding("UTF-8") if matz_name_sep.respond_to? :force_encoding
44
+ matz_name_sep = "\xE3\x81\xBE\xE3\x81\xA4 \xE3\x82\x82\xE3\x81\xA8" # Matsu moto
47
45
  EscapeUtils.unescape_url('%E3%81%BE%E3%81%A4%20%E3%82%82%E3%81%A8').should eql(matz_name_sep)
48
46
  end
49
47
 
50
48
  if RUBY_VERSION =~ /^1.9/
51
- it "should default to the original string's encoding if Encoding.default_internal is nil" do
52
- Encoding.default_internal = nil
53
- str = "http%3A%2F%2Fwww.homerun.com%2F"
54
- str = str.encode('us-ascii')
49
+ it "return value should be in original string's encoding" do
50
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('us-ascii')
55
51
  EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('us-ascii'))
56
- end
57
-
58
- it "should use Encoding.default_internal" do
59
- Encoding.default_internal = Encoding.find('utf-8')
60
- EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
61
- Encoding.default_internal = Encoding.find('us-ascii')
62
- EscapeUtils.unescape_url("http%3A%2F%2Fwww.homerun.com%2F").encoding.should eql(Encoding.default_internal)
52
+ str = "http%3A%2F%2Fwww.homerun.com%2F".encode('utf-8')
53
+ EscapeUtils.unescape_url(str).encoding.should eql(Encoding.find('utf-8'))
63
54
  end
64
55
  end
65
56
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: escape_utils
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 17
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Lopez
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-25 00:00:00 -08:00
18
+ date: 2011-03-09 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -201,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
201
  requirements: []
202
202
 
203
203
  rubyforge_project:
204
- rubygems_version: 1.3.7
204
+ rubygems_version: 1.6.1
205
205
  signing_key:
206
206
  specification_version: 3
207
207
  summary: Faster string escaping routines for your web apps