credit_card_sanitizer 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/credit_card_sanitizer.rb +18 -6
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad592d6323845db01136562c8c8b272db59aec9b
4
- data.tar.gz: 58a6d304fb0a6d080fff579e11598800ba9905f1
3
+ metadata.gz: bc48992108c023a55838fb983c8a7c52b9092a04
4
+ data.tar.gz: 2c60ffabf52238a755a2a34cb22a709f1ae32a99
5
5
  SHA512:
6
- metadata.gz: 41c5f8ccfb9b9c2c14805a86cee4ed1fd3532958519bf19f9970b584f29be3fbb9d77ae29c0952b7b79a76c73cab645ab5c2e7f07b9d9188100b2adcb9cfae87
7
- data.tar.gz: 1f3c2054694c70b1e24679530cdb35ca7c0f7ee1a31e056ab0f2ec00282699fba26f0fc5f0a39dc4c1061fd76aa10ef72f4e7fae3716251bf68bdce42acf35a5
6
+ metadata.gz: 90ae8a4448b8bdea5ff21748c72b125f9a9295db9a35f7c7903124abed9bf5de4cb2e9f7b2031d661e770f15dd618f81fd5a428eb7d6532a6cc2197fac748583
7
+ data.tar.gz: b9e38ca6ef129df29f111a276a16567abd0e628f7bd5b90e42bee296726a3c45e8e27edc50309bab3c54af21ad7e0aa408eab2d92c453f72c72fc9ae4b11d073
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'luhn_checksum'
2
4
 
3
5
  class CreditCardSanitizer
@@ -16,8 +18,7 @@ class CreditCardSanitizer
16
18
  def sanitize!(text)
17
19
  replaced = nil
18
20
 
19
- text.force_encoding(Encoding::UTF_8)
20
- replace_invalid_characters(text) if !text.valid_encoding?
21
+ to_utf8!(text)
21
22
 
22
23
  text.gsub!(NUMBERS_WITH_LINE_NOISE) do |match|
23
24
  numbers = match.gsub(/\D/, '')
@@ -49,11 +50,22 @@ class CreditCardSanitizer
49
50
  end
50
51
  end
51
52
 
52
- def replace_invalid_characters(str)
53
- for i in (0...str.size)
54
- if !str[i].valid_encoding?
55
- str[i] = "?"
53
+ if ''.respond_to?(:scrub)
54
+ def to_utf8!(str)
55
+ str.force_encoding(Encoding::UTF_8)
56
+ str.scrub! unless str.valid_encoding?
57
+ end
58
+ elsif ''.respond_to?(:encoding)
59
+ def to_utf8!(str)
60
+ str.force_encoding(Encoding::UTF_8)
61
+ unless str.valid_encoding?
62
+ str.encode!(Encoding::UTF_16, :invalid => :replace, :replace => '�')
63
+ str.encode!(Encoding::UTF_8, Encoding::UTF_16)
56
64
  end
57
65
  end
66
+ else
67
+ def to_utf8!(str)
68
+ # No-op for Ruby 1.8
69
+ end
58
70
  end
59
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: credit_card_sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Chapweske
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-07-23 00:00:00.000000000 Z
13
+ date: 2014-07-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: appraisal