string-scrub 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5136d86081d9c7b732a907671f4fb7874b7ab9d7
4
- data.tar.gz: 964b8e63c9eeb557efb7071d4d6aac1403e46478
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjUwNzExM2JmYzkzYWUyY2ZkYjhhOWE1ZDYyOTUwMDNlNTZjZGQyNw==
5
+ data.tar.gz: !binary |-
6
+ NzQzODk4Y2IyZGRiZjNjMzdhZWU3MjI1MWRiMDJkOGE1MTcwMTRjZA==
5
7
  SHA512:
6
- metadata.gz: cef5c319a86f45e5942919190ee8bdad7c30ce06e3eb60e9ea135771ff4b4a4550177ff6f3adca736c6ffcac2bcced879c35ecc69877433144795135810f18ce
7
- data.tar.gz: bd27d6d703d63ac05370ee350891995232f9a7213026105770b8f73b6d79ff773b628bb348d0715385271b0764d3b1621f59b68318c87a1ce324b6b8a985a0d6
8
+ metadata.gz: !binary |-
9
+ MDkyMGE2OGYxZDA2Y2FkNTc3NDc3ZDMyNTZhNjQ5MjlmZWI1MzUyMDg2ODE0
10
+ M2E1MWE2YmM4NTBkZTczYTg1ZDg4N2UwNDI5YTJmNWUzNjdiMGEyMjNhMjQ5
11
+ YTNmNWU3OTI5ZmM5ZmM2NWRiYmUzMjk4YjZlMjljMDQ1MTMxYmE=
12
+ data.tar.gz: !binary |-
13
+ NGU1MjEyMDQxNmMzMGQwNDg2M2IzN2JiOWI4MzVmNjNmOWNiODEyMGY5OWE5
14
+ M2I3ZDJhNjgyNjFkYTBjODlmNDRhM2U3NTQzNTZlNTU3MTE0YTc1MTk2YTZj
15
+ MTdjOGFhNWMyYWE5ZDYxZjkyN2NmMWFmZmM2YTVjZDhhYzliN2U=
data/.gitignore CHANGED
@@ -18,3 +18,4 @@ tmp
18
18
  Makefile
19
19
  *.bundle
20
20
  *.so
21
+ mkmf.log
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 1.9.3
3
4
  - 2.0.0
4
5
  before_script: ruby ext/string/extconf.rb; make
5
6
  script: bundle exec ruby test/test_scrub.rb
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # String::Scrub
1
+ # String#scrub
2
2
 
3
3
  String#scrub for Ruby 2.0.0
4
4
 
@@ -11,6 +11,9 @@
11
11
  #endif
12
12
 
13
13
  #define STR_ENC_GET(str) rb_enc_from_index(ENCODING_GET(str))
14
+ #ifndef UNREACHABLE
15
+ # define UNREACHABLE
16
+ #endif
14
17
 
15
18
  static inline const char *
16
19
  search_nonascii(const char *p, const char *e)
@@ -56,7 +59,13 @@ str_compat_and_valid(VALUE str, rb_encoding *enc)
56
59
  str = StringValue(str);
57
60
  cr = rb_enc_str_coderange(str);
58
61
  if (cr == ENC_CODERANGE_BROKEN) {
62
+ #ifdef PRIsVALUE
59
63
  rb_raise(rb_eArgError, "replacement must be valid byte sequence '%+"PRIsVALUE"'", str);
64
+ #else
65
+ str = rb_inspect(str);
66
+ rb_raise(rb_eArgError, "replacement must be valid byte sequence '%s'", RSTRING_PTR(str));
67
+ RB_GC_GUARD(str);
68
+ #endif
60
69
  }
61
70
  else if (cr == ENC_CODERANGE_7BIT) {
62
71
  rb_encoding *e = STR_ENC_GET(str);
@@ -76,6 +85,7 @@ str_compat_and_valid(VALUE str, rb_encoding *enc)
76
85
  }
77
86
 
78
87
  /**
88
+ * @param str the string to be scrubbed
79
89
  * @param repl the replacement character
80
90
  * @return If given string is invalid, returns a new string. Otherwise, returns Qnil.
81
91
  */
@@ -0,0 +1 @@
1
+ require 'string/scrub'
@@ -3,11 +3,11 @@ lib = File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "string-scrub"
6
- spec.version = "0.0.2"
6
+ spec.version = "0.0.3"
7
7
  spec.authors = ["SHIBATA Hiroshi"]
8
8
  spec.email = ["shibata.hiroshi@gmail.com"]
9
- spec.summary = %q{String#scrub for Ruby 2.0.0}
10
- spec.description = %q{String#scrub for Ruby 2.0.0}
9
+ spec.summary = %q{String#scrub for Ruby 2.0.0 and 1.9.3}
10
+ spec.description = %q{String#scrub for Ruby 2.0.0 and 1.9.3}
11
11
  spec.homepage = "https://github.com/hsbt/string-scrub"
12
12
  spec.license = "MIT"
13
13
 
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.required_ruby_version = '>= 2.0.0'
20
+ spec.required_ruby_version = '>= 1.9.3'
21
21
 
22
22
  spec.add_development_dependency "bundler"
23
23
  spec.add_development_dependency "rake"
@@ -43,6 +43,9 @@ class TestScrub < Test::Unit::TestCase
43
43
  assert_raise(ArgumentError){ u("\xE3\x81\x82\xE3\x81\x82\xE3\x81").scrub{u("\x81")} }
44
44
  assert_equal(e("\xA4\xA2\xA2\xAE"), e("\xA4\xA2\xA4").scrub{e("\xA2\xAE")})
45
45
 
46
+ assert_equal(u("\x81"), u("a\x81").scrub {|c| break c})
47
+ assert_raise(ArgumentError) {u("a\x81").scrub {|c| c}}
48
+
46
49
  assert_equal("\uFFFD\u3042".encode("UTF-16BE"),
47
50
  "\xD8\x00\x30\x42".force_encoding(Encoding::UTF_16BE).
48
51
  scrub)
metadata CHANGED
@@ -1,44 +1,44 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: string-scrub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - SHIBATA Hiroshi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-02 00:00:00.000000000 Z
11
+ date: 2014-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - ! '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: String#scrub for Ruby 2.0.0
41
+ description: String#scrub for Ruby 2.0.0 and 1.9.3
42
42
  email:
43
43
  - shibata.hiroshi@gmail.com
44
44
  executables: []
@@ -46,14 +46,15 @@ extensions:
46
46
  - ext/string/extconf.rb
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".gitignore"
50
- - ".travis.yml"
49
+ - .gitignore
50
+ - .travis.yml
51
51
  - Gemfile
52
52
  - LICENSE.txt
53
53
  - README.md
54
54
  - Rakefile
55
55
  - ext/string/extconf.rb
56
56
  - ext/string/scrub.c
57
+ - lib/string-scrub.rb
57
58
  - string-scrub.gemspec
58
59
  - test/test_scrub.rb
59
60
  homepage: https://github.com/hsbt/string-scrub
@@ -66,20 +67,19 @@ require_paths:
66
67
  - lib
67
68
  required_ruby_version: !ruby/object:Gem::Requirement
68
69
  requirements:
69
- - - ">="
70
+ - - ! '>='
70
71
  - !ruby/object:Gem::Version
71
- version: 2.0.0
72
+ version: 1.9.3
72
73
  required_rubygems_version: !ruby/object:Gem::Requirement
73
74
  requirements:
74
- - - ">="
75
+ - - ! '>='
75
76
  - !ruby/object:Gem::Version
76
77
  version: '0'
77
78
  requirements: []
78
79
  rubyforge_project:
79
- rubygems_version: 2.2.0
80
+ rubygems_version: 2.2.2
80
81
  signing_key:
81
82
  specification_version: 4
82
- summary: String#scrub for Ruby 2.0.0
83
+ summary: String#scrub for Ruby 2.0.0 and 1.9.3
83
84
  test_files:
84
85
  - test/test_scrub.rb
85
- has_rdoc: