eightball 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +9 -1
- data/LICENSE.txt +1 -1
- data/README.rdoc +3 -3
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/eightball.gemspec +13 -9
- data/lib/eightball.rb +24 -17
- data/test/files/test1 +1 -0
- data/test/helper.rb +1 -0
- data/test/test_eightball.rb +9 -0
- metadata +48 -24
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NzI0NTNmOGFjZGJjYTMyNzRmMTExOTZlYjFhOWVlYzMwNzhjZGZiMg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YjNhZGI4M2Y4N2ZkZDM5NDVhZDFjNzgzZGY4YjI4Mzc3NWI2NmY5MA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjY0OTY4MzdlMDA1ZDRjMWYzNmNjMTgwZTJkYTYzMWZlMzkyM2RhNzlkMDU4
|
10
|
+
YjU3MWQ5YzBjNGM3ZGNkOTE1ZWJjNmExOTY4MWNhNzc4NGQ0MzBkNGEzMjg4
|
11
|
+
YmYyODg1YjViNDJlYTM2OWIyZmE1ZDE2ZWExMjU3MjIxNDc5NGE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
OWM4MmNjMjdmOWMyN2E2MDA3YTVhYjgzYjM4ZmI2ZTJjMjdiNDdlNWE1YWZj
|
14
|
+
ZmYwYmQzMTJlMjJjMjhhNTc1MDNkZGNkZWM4YzU5ZTY4MmU0NGVjMTE5ZWVk
|
15
|
+
NTc5NzlkMGQxNDE3ZDEzYWI3OGJkOTAwMWZjZjY2ZDliZGRhYTE=
|
data/Gemfile
CHANGED
@@ -6,8 +6,9 @@ source "http://rubygems.org"
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
|
-
gem "shoulda", "
|
9
|
+
gem "shoulda", "~> 0"
|
10
10
|
gem "bundler", "~> 1.0.0"
|
11
11
|
gem "jeweler", "~> 1.6.4"
|
12
|
-
gem "rcov", "
|
12
|
+
gem "rcov", "~> 0"
|
13
|
+
gem "pry"
|
13
14
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,28 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
coderay (1.0.9)
|
4
5
|
git (1.2.5)
|
5
6
|
jeweler (1.6.4)
|
6
7
|
bundler (~> 1.0)
|
7
8
|
git (>= 1.2.5)
|
8
9
|
rake
|
10
|
+
method_source (0.8.1)
|
11
|
+
pry (0.9.12.2)
|
12
|
+
coderay (~> 1.0.5)
|
13
|
+
method_source (~> 0.8)
|
14
|
+
slop (~> 3.4)
|
9
15
|
rake (0.9.2.2)
|
10
16
|
rcov (0.9.11)
|
11
17
|
shoulda (2.11.3)
|
18
|
+
slop (3.4.5)
|
12
19
|
|
13
20
|
PLATFORMS
|
14
21
|
ruby
|
15
22
|
|
16
23
|
DEPENDENCIES
|
17
|
-
bundler (
|
24
|
+
bundler (>= 1.0.0)
|
18
25
|
jeweler (~> 1.6.4)
|
26
|
+
pry
|
19
27
|
rcov
|
20
28
|
shoulda
|
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
= eightball
|
2
2
|
|
3
3
|
call "string".eightball and get back a legit UTF-8 string
|
4
|
-
This has only been tested with ruby 1.9.
|
4
|
+
This has only been tested with ruby 1.9.3
|
5
5
|
|
6
6
|
== Contributing to eightball
|
7
|
-
|
7
|
+
|
8
8
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
9
9
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
10
10
|
* Fork the project
|
@@ -15,6 +15,6 @@ This has only been tested with ruby 1.9.2
|
|
15
15
|
|
16
16
|
== Copyright
|
17
17
|
|
18
|
-
Copyright (c)
|
18
|
+
Copyright (c) 2013 AcademicWorks, inc. See LICENSE.txt for
|
19
19
|
further details.
|
20
20
|
|
data/Rakefile
CHANGED
@@ -15,12 +15,12 @@ require 'jeweler'
|
|
15
15
|
Jeweler::Tasks.new do |gem|
|
16
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
17
|
gem.name = "eightball"
|
18
|
-
gem.homepage = "http://github.com/
|
18
|
+
gem.homepage = "http://github.com/AcademicWorks/eightball"
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = %Q{force a string to utf8 and be sure of it}
|
21
21
|
gem.description = %Q{force a string to utf8 and be sure of it}
|
22
|
-
gem.email = "
|
23
|
-
gem.authors = ["Aaron Scruggs"]
|
22
|
+
gem.email = "engineering@academicworks.com"
|
23
|
+
gem.authors = ["Aaron Scruggs", "Chris Botarro", "Matthew Thomas"]
|
24
24
|
# dependencies defined in Gemfile
|
25
25
|
end
|
26
26
|
Jeweler::RubygemsDotOrgTasks.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/eightball.gemspec
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "eightball"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Aaron Scruggs"]
|
12
|
-
s.date = "
|
11
|
+
s.authors = ["Aaron Scruggs", "Chris Botarro", "Matthew Thomas"]
|
12
|
+
s.date = "2013-12-31"
|
13
13
|
s.description = "force a string to utf8 and be sure of it"
|
14
|
-
s.email = "
|
14
|
+
s.email = "engineering@academicworks.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
17
|
"README.rdoc"
|
@@ -26,13 +26,14 @@ Gem::Specification.new do |s|
|
|
26
26
|
"VERSION",
|
27
27
|
"eightball.gemspec",
|
28
28
|
"lib/eightball.rb",
|
29
|
+
"test/files/test1",
|
29
30
|
"test/helper.rb",
|
30
31
|
"test/test_eightball.rb"
|
31
32
|
]
|
32
|
-
s.homepage = "http://github.com/
|
33
|
+
s.homepage = "http://github.com/AcademicWorks/eightball"
|
33
34
|
s.licenses = ["MIT"]
|
34
35
|
s.require_paths = ["lib"]
|
35
|
-
s.rubygems_version = "1.8.
|
36
|
+
s.rubygems_version = "1.8.23"
|
36
37
|
s.summary = "force a string to utf8 and be sure of it"
|
37
38
|
|
38
39
|
if s.respond_to? :specification_version then
|
@@ -40,20 +41,23 @@ Gem::Specification.new do |s|
|
|
40
41
|
|
41
42
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
43
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
43
|
-
s.add_development_dependency(%q<bundler>, ["
|
44
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
44
45
|
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
45
46
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
47
|
+
s.add_development_dependency(%q<pry>, [">= 0"])
|
46
48
|
else
|
47
49
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
48
|
-
s.add_dependency(%q<bundler>, ["
|
50
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
49
51
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
50
52
|
s.add_dependency(%q<rcov>, [">= 0"])
|
53
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
51
54
|
end
|
52
55
|
else
|
53
56
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
54
|
-
s.add_dependency(%q<bundler>, ["
|
57
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
55
58
|
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
56
59
|
s.add_dependency(%q<rcov>, [">= 0"])
|
60
|
+
s.add_dependency(%q<pry>, [">= 0"])
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
data/lib/eightball.rb
CHANGED
@@ -1,22 +1,29 @@
|
|
1
|
-
require 'iconv'
|
2
1
|
module Eightball
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
3
|
+
def eightball
|
4
|
+
string = self
|
5
|
+
string = string.force_encoding(Encoding::UTF_8) if not_utf8?
|
6
|
+
string = reencode(string)
|
7
|
+
string = drop_bom(string)
|
8
|
+
string
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def not_utf8?
|
14
|
+
!self.valid_encoding? || self.encoding != Encoding::UTF_8
|
15
|
+
end
|
16
|
+
|
17
|
+
def reencode(string)
|
18
|
+
string = string.encode(Encoding::UTF_16, :invalid => :replace, :undef => :replace, :replace => '?')
|
19
|
+
string = string.encode(Encoding::UTF_8, :invalid => :replace, :undef => :replace, :replace => '?')
|
20
|
+
string
|
21
|
+
end
|
22
|
+
|
23
|
+
def drop_bom(string)
|
24
|
+
string.sub(/^\xEF\xBB\xBF/, '')
|
25
|
+
end
|
19
26
|
|
20
27
|
end
|
21
28
|
|
22
|
-
String.send(:include, Eightball)
|
29
|
+
String.send(:include, Eightball)
|
data/test/files/test1
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
R. M. Princ Scholarship","Rose Marie Moline Princ, a native of the Chicago area, graduated from St. Mary�s High School and Rosary College with a degree in history, political science and English. She continued her studies at Loyola, De Paul and Northwestern and earned advanced degrees at the University of Chicago and Northern Illinois University. She taught at Nazareth Academy for seven years and at J. Sterling Morton High School in Cicero-Berwyn for twenty-seven years, where she also served as an administrator for fourteen years. Upon retiring, she joined the Illinois Retired Teachers Association and served on the Executive Board, as well as Treasurer and President of her local chapter. She now resides in Las Vegas, Nevada, where she is active in numerous organizations.",TRUE
|
data/test/helper.rb
CHANGED
data/test/test_eightball.rb
CHANGED
@@ -3,8 +3,17 @@
|
|
3
3
|
require 'helper'
|
4
4
|
|
5
5
|
class TestEightball < Test::Unit::TestCase
|
6
|
+
|
6
7
|
should "return utf-8 when utf-8 is called" do
|
7
8
|
assert_equal "ウabcé", "ウabcé".encode("utf-8")
|
8
9
|
end
|
10
|
+
|
11
|
+
should "remove invalid UTF-8 byte sequences" do
|
12
|
+
string = File.read("test/files/test1")
|
13
|
+
assert Eightball::Helpers.needs_help?(string)
|
14
|
+
string = string.eightball
|
15
|
+
assert !string.empty?
|
16
|
+
assert !Eightball::Helpers.needs_help?(string)
|
17
|
+
end
|
9
18
|
|
10
19
|
end
|
metadata
CHANGED
@@ -1,62 +1,89 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eightball
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Aaron Scruggs
|
8
|
+
- Chris Botarro
|
9
|
+
- Matthew Thomas
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2013-12-31 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: shoulda
|
16
|
-
requirement:
|
17
|
-
none: false
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ! '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
25
29
|
- !ruby/object:Gem::Dependency
|
26
30
|
name: bundler
|
27
|
-
requirement:
|
28
|
-
none: false
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
29
32
|
requirements:
|
30
|
-
- -
|
33
|
+
- - ! '>='
|
31
34
|
- !ruby/object:Gem::Version
|
32
35
|
version: 1.0.0
|
33
36
|
type: :development
|
34
37
|
prerelease: false
|
35
|
-
version_requirements:
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.0.0
|
36
43
|
- !ruby/object:Gem::Dependency
|
37
44
|
name: jeweler
|
38
|
-
requirement:
|
39
|
-
none: false
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
40
46
|
requirements:
|
41
47
|
- - ~>
|
42
48
|
- !ruby/object:Gem::Version
|
43
49
|
version: 1.6.4
|
44
50
|
type: :development
|
45
51
|
prerelease: false
|
46
|
-
version_requirements:
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.6.4
|
47
57
|
- !ruby/object:Gem::Dependency
|
48
58
|
name: rcov
|
49
|
-
requirement:
|
50
|
-
none: false
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
61
|
- - ! '>='
|
53
62
|
- !ruby/object:Gem::Version
|
54
63
|
version: '0'
|
55
64
|
type: :development
|
56
65
|
prerelease: false
|
57
|
-
version_requirements:
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: pry
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
58
85
|
description: force a string to utf8 and be sure of it
|
59
|
-
email:
|
86
|
+
email: engineering@academicworks.com
|
60
87
|
executables: []
|
61
88
|
extensions: []
|
62
89
|
extra_rdoc_files:
|
@@ -72,33 +99,30 @@ files:
|
|
72
99
|
- VERSION
|
73
100
|
- eightball.gemspec
|
74
101
|
- lib/eightball.rb
|
102
|
+
- test/files/test1
|
75
103
|
- test/helper.rb
|
76
104
|
- test/test_eightball.rb
|
77
|
-
homepage: http://github.com/
|
105
|
+
homepage: http://github.com/AcademicWorks/eightball
|
78
106
|
licenses:
|
79
107
|
- MIT
|
108
|
+
metadata: {}
|
80
109
|
post_install_message:
|
81
110
|
rdoc_options: []
|
82
111
|
require_paths:
|
83
112
|
- lib
|
84
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
114
|
requirements:
|
87
115
|
- - ! '>='
|
88
116
|
- !ruby/object:Gem::Version
|
89
117
|
version: '0'
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
hash: 2475021504432103746
|
93
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
119
|
requirements:
|
96
120
|
- - ! '>='
|
97
121
|
- !ruby/object:Gem::Version
|
98
122
|
version: '0'
|
99
123
|
requirements: []
|
100
124
|
rubyforge_project:
|
101
|
-
rubygems_version:
|
125
|
+
rubygems_version: 2.2.0
|
102
126
|
signing_key:
|
103
127
|
specification_version: 3
|
104
128
|
summary: force a string to utf8 and be sure of it
|