sterilizer 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c877d0188e4e6d0d2cfe0f7aed6a6316bc0e85a6
4
+ data.tar.gz: e78e306533dfde79007b08a56edc75c5830e2b5d
5
+ SHA512:
6
+ metadata.gz: a2dd47a32400e430d9ff4ffc14c75705e0a5a2dcc44cf6428fc817996769055c9738507d6e6badb08fab6722213ed30b1185dd9a01e8922fceb166290d7c2c6b
7
+ data.tar.gz: cb750fd507c9f537279d50406b96fcce6428a2226a9e85cbf0d39afca520aaa6c691eab1c4c941a9b9c20b4dfbab412e886bc6008a0c10c34d64dbc49a5b9633
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 Ben Thompson
1
+ Copyright (c) 2013 aTech Media Limited.
2
2
 
3
3
  MIT License
4
4
 
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Sterilizer
2
2
 
3
- A simple module that extends a String, giving it a `sterilize!` method which to ensure the string is always valid UTF-8
3
+ A simple module that extends a String, giving it a `sterilize!` method to ensure the string is always valid UTF-8
4
4
 
5
5
  ## Installation
6
6
 
@@ -5,13 +5,17 @@ module Sterilizer
5
5
  def sterilize!
6
6
 
7
7
  return self unless !!defined?(Encoding)
8
+
9
+ # return if valid encoding, simple encode it to UTF-8
10
+ return self.encode!(default_encoding, self.encoding, { :undef => :replace, :invalid => :replace }) if self.valid_encoding?
11
+
8
12
  # return if encoding is valid and equal to default_internal
9
- return self if valid_when_default?
13
+ return self if valid_and_default?
10
14
 
11
15
  # force to default encoding if valid when forced
12
- return self.force_encoding(Encoding.default_internal) if valid_when_forced?
16
+ return self.force_encoding(default_encoding) if valid_when_forced?
13
17
 
14
- # At this point, we know the string is not valid encoding, it the encoding is UTF-8,
18
+ # At this point, we know the string is not valid encoding, if the encoding is UTF-8,
15
19
  # we must try a different encoding that is valid before forcefully encoding to UTF-8
16
20
  # Otherwise, the encoding type is non-default. If it is valid, encode it to UTF-8, otherwise
17
21
  # find an alternative before forcefully encoding to UTF-8
@@ -22,7 +26,7 @@ module Sterilizer
22
26
  force_encoding_with(non_default_encoding)
23
27
  else
24
28
  if valid_when_forced?(self.encoding)
25
- self.encode!(Encoding.default_internal, self.encoding, { :undef => :replace, :invalid => :replace})
29
+ self.encode!(default_encoding, self.encoding, { :undef => :replace, :invalid => :replace})
26
30
  else
27
31
  alternative_encoding = find_a_valid_encoding(self.encoding)
28
32
  force_encoding_with(alternative_encoding)
@@ -33,18 +37,18 @@ module Sterilizer
33
37
  end
34
38
 
35
39
  def encoding_is_default?
36
- self.encoding == Encoding.default_internal
40
+ self.encoding == default_encoding
37
41
  end
38
42
 
39
- def valid_when_default?
43
+ def valid_and_default?
40
44
  self.valid_encoding? && encoding_is_default?
41
45
  end
42
46
 
43
- def valid_when_forced?(encoding = Encoding.default_internal)
47
+ def valid_when_forced?(encoding = default_encoding)
44
48
  self.dup.force_encoding(encoding).valid_encoding?
45
49
  end
46
50
 
47
- def find_a_valid_encoding(ignoring = [Encoding.default_internal], guessed_already = false)
51
+ def find_a_valid_encoding(ignoring = [default_encoding], guessed_already = false)
48
52
  # If we've already tried to guess the encoding, resort to picking one at random until valid
49
53
  if guessed_already
50
54
  provisional_encoding = Encoding.list.detect{ |encoding| !ignoring.include?(encoding) }
@@ -66,7 +70,11 @@ module Sterilizer
66
70
  end
67
71
 
68
72
  def force_encoding_with(encoding)
69
- self.force_encoding(encoding).encode(Encoding.default_internal, :invalid => :replace, :undef => :replace)
73
+ self.force_encoding(encoding).encode(default_encoding, :invalid => :replace, :undef => :replace)
74
+ end
75
+
76
+ def default_encoding
77
+ Encoding.default_internal || "UTF-8"
70
78
  end
71
79
 
72
80
  end
@@ -76,4 +84,4 @@ class String
76
84
  def sterilize!
77
85
  self.extend(Sterilizer).sterilize!
78
86
  end
79
- end
87
+ end
@@ -1,3 +1,3 @@
1
1
  module Sterilizer
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -6,16 +6,21 @@ require 'sterilizer/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "sterilizer"
8
8
  gem.version = Sterilizer::VERSION
9
- gem.authors = ["Ben Thompson"]
10
- gem.email = ["ben@atechmedia.com"]
9
+ gem.authors = ["aTech Media"]
10
+ gem.email = ["hello@atechmedia.com"]
11
11
  gem.description = %q{Guarantee a string}
12
- gem.summary = %q{}
12
+ gem.summary = "Libraries to ensure strings are always valid UTF-8"
13
13
  gem.homepage = ""
14
14
 
15
+ gem.license = 'MIT'
15
16
  gem.files = `git ls-files`.split($/)
16
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
19
  gem.require_paths = ["lib"]
20
+ gem.has_rdoc = false
21
+
22
+ gem.homepage = "http://github.com/atech/atech"
19
23
  gem.add_dependency "rchardet19"
20
24
  gem.add_development_dependency 'pry'
25
+
21
26
  end
metadata CHANGED
@@ -1,51 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sterilizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
- - Ben Thompson
7
+ - aTech Media
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-02 00:00:00.000000000 Z
11
+ date: 2013-08-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rchardet19
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: pry
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Guarantee a string
47
42
  email:
48
- - ben@atechmedia.com
43
+ - hello@atechmedia.com
49
44
  executables: []
50
45
  extensions: []
51
46
  extra_rdoc_files: []
@@ -58,29 +53,28 @@ files:
58
53
  - lib/sterilizer.rb
59
54
  - lib/sterilizer/version.rb
60
55
  - sterilizer.gemspec
61
- homepage: ''
62
- licenses: []
56
+ homepage: http://github.com/atech/atech
57
+ licenses:
58
+ - MIT
59
+ metadata: {}
63
60
  post_install_message:
64
61
  rdoc_options: []
65
62
  require_paths:
66
63
  - lib
67
64
  required_ruby_version: !ruby/object:Gem::Requirement
68
- none: false
69
65
  requirements:
70
- - - ! '>='
66
+ - - '>='
71
67
  - !ruby/object:Gem::Version
72
68
  version: '0'
73
69
  required_rubygems_version: !ruby/object:Gem::Requirement
74
- none: false
75
70
  requirements:
76
- - - ! '>='
71
+ - - '>='
77
72
  - !ruby/object:Gem::Version
78
73
  version: '0'
79
74
  requirements: []
80
75
  rubyforge_project:
81
- rubygems_version: 1.8.23
76
+ rubygems_version: 2.0.4
82
77
  signing_key:
83
- specification_version: 3
84
- summary: ''
78
+ specification_version: 4
79
+ summary: Libraries to ensure strings are always valid UTF-8
85
80
  test_files: []
86
- has_rdoc: