demoji 0.0.5 β 0.0.6
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.
- checksums.yaml +13 -5
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/lib/demoji.rb +1 -1
- data/lib/demoji/version.rb +1 -1
- data/spec/models/test_user_spec.rb +24 -9
- data/spec/spec_helper.rb +4 -1
- metadata +13 -11
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzY4NGMyYmQ2NmMwNDliNTM3YTE3NmVjN2MzZDhlZTYwNTcxOTEyZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MGFlZjdhNjQ4YjY4NWM5YTNjYzM5NjljZjFlYTRhZDVlZGRlNTBjNA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTBhZjExNjg1NDA4Y2IwYzVhYzM5MzJmN2ZhZjhlYzk4NDNmOTc2ZGMzYzdh
|
10
|
+
OTM5NWM2NDFhNDI1N2E4MTJlNDI3NWNhZjlmNWVjN2Q2YTdiNWE2NTNiYjdm
|
11
|
+
N2U1NDUzM2VkZWRjYjY0MjkyMzMwOGRhYzVjZjYxM2NkMjFjZGI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MzdmMDAwMGJmY2ZkZGM3OTliMjhiMDhiZjcwMmJjMjBiYmJjYjgzZWM5OWMy
|
14
|
+
MGRmOWZiMDcxNTRkODFjZjgwODgwZTM2NzBiZmEyZjdhNDc2YzcwZjkwZDBk
|
15
|
+
ZTU3ZWEwZWVlMDRlNjZkZWYwN2QzZDdiZDhlNGQyZDU4NDg4OGY=
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
demoji
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p551
|
data/lib/demoji.rb
CHANGED
data/lib/demoji/version.rb
CHANGED
@@ -2,9 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe TestUser do
|
4
4
|
|
5
|
+
def ord_to_str(ord)
|
6
|
+
ord.chr("UTF-8")
|
7
|
+
end
|
8
|
+
|
5
9
|
it "doesn't blow up when trying to save emoji" do
|
6
10
|
u = TestUser.new
|
7
|
-
u.name =
|
11
|
+
u.name = ord_to_str(65554)
|
8
12
|
expect{ u.save }.to_not raise_error
|
9
13
|
expect(u).to be_persisted
|
10
14
|
expect(u.reload.name.strip).to eql ""
|
@@ -15,40 +19,51 @@ describe TestUser do
|
|
15
19
|
TestUser.any_instance.should_receive(:_fix_utf8_attributes).once
|
16
20
|
|
17
21
|
u = TestUser.new
|
18
|
-
u.name =
|
22
|
+
u.name = ord_to_str(65554)
|
19
23
|
expect{ u.save }.to raise_error
|
20
24
|
expect(u).to_not be_persisted
|
21
25
|
end
|
22
26
|
|
23
27
|
it "leaves other chars alone" do
|
24
28
|
u = TestUser.new
|
25
|
-
u.name = "Peter Perez\n
|
29
|
+
u.name = "Peter Perez\n#{ord_to_str(65554)}"
|
30
|
+
expect{ u.save }.to_not raise_error
|
31
|
+
expect(u).to be_persisted
|
32
|
+
expect(u.reload.name.strip).to eql "Peter Perez"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "fixes non-binary columns but leaves binary columns alone" do
|
36
|
+
u = TestUser.new
|
37
|
+
u.name = "Peter Perez\n#{ord_to_str(65554)}"
|
38
|
+
cart = "some binary data #{ord_to_str(65554)}"
|
39
|
+
u.cart = cart
|
26
40
|
expect{ u.save }.to_not raise_error
|
27
41
|
expect(u).to be_persisted
|
28
42
|
expect(u.reload.name.strip).to eql "Peter Perez"
|
43
|
+
expect(u.reload.cart).to eql "some binary data \xF0\x90\x80\x92"
|
29
44
|
end
|
30
45
|
|
31
46
|
it "doesn't mess up with valid language specific chars" do
|
32
47
|
u = TestUser.new
|
33
|
-
u.name = "
|
48
|
+
u.name = "#{ord_to_str(252)}"
|
34
49
|
expect { u.save }.to_not raise_error
|
35
50
|
expect(u).to be_persisted
|
36
|
-
expect(u.reload.name.strip).to eql "
|
51
|
+
expect(u.reload.name.strip).to eql "#{ord_to_str(252)}"
|
37
52
|
end
|
38
53
|
|
39
54
|
it "doesn't remove valid 3-byte utf8 chars" do
|
40
55
|
u = TestUser.new
|
41
|
-
u.name = "
|
56
|
+
u.name = "#{ord_to_str(10004)} #{ord_to_str(10027)} #{ord_to_str(66318)} abc"
|
42
57
|
expect { u.save }.to_not raise_error
|
43
58
|
expect(u).to be_persisted
|
44
|
-
expect(u.reload.name.strip).to eql "
|
59
|
+
expect(u.reload.name.strip).to eql "#{ord_to_str(10004)} #{ord_to_str(10027)} abc"
|
45
60
|
end
|
46
61
|
|
47
62
|
it "doesn't remove valid 4-byte utf8 chars" do
|
48
63
|
u = TestUser.new
|
49
|
-
u.name = "
|
64
|
+
u.name = "#{ord_to_str(10004)} #{ord_to_str(10027)} #{ord_to_str(131083)} abc"
|
50
65
|
expect { u.save }.to_not raise_error
|
51
66
|
expect(u).to be_persisted
|
52
|
-
expect(u.reload.name.strip).to eql "
|
67
|
+
expect(u.reload.name.strip).to eql "#{ord_to_str(10004)} #{ord_to_str(10027)} abc"
|
53
68
|
end
|
54
69
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -21,7 +21,10 @@ RSpec.configure do |config|
|
|
21
21
|
ActiveRecord::Base.establish_connection db_config
|
22
22
|
|
23
23
|
ActiveRecord::Base.connection.execute("DROP TABLE IF EXISTS `test_users`")
|
24
|
-
ActiveRecord::Base.connection.execute(
|
24
|
+
ActiveRecord::Base.connection.execute(
|
25
|
+
"CREATE TABLE IF NOT EXISTS `test_users` (`id` int(11) NOT NULL AUTO_INCREMENT, " \
|
26
|
+
"`name` varchar(255) NOT NULL, `cart` blob, PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8;"
|
27
|
+
)
|
25
28
|
end
|
26
29
|
|
27
30
|
config.before(:each) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: demoji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Jairala
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,42 +28,42 @@ dependencies:
|
|
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
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activesupport
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - '>='
|
45
|
+
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - '>='
|
52
|
+
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activerecord
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - '>='
|
59
|
+
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - '>='
|
66
|
+
- - ! '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
description: Replace emojis as to not blow up utf8 MySQL
|
@@ -75,6 +75,8 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- .gitignore
|
77
77
|
- .rspec
|
78
|
+
- .ruby-gemset
|
79
|
+
- .ruby-version
|
78
80
|
- Gemfile
|
79
81
|
- LICENSE.txt
|
80
82
|
- README.md
|
@@ -96,17 +98,17 @@ require_paths:
|
|
96
98
|
- lib
|
97
99
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
100
|
requirements:
|
99
|
-
- - '>='
|
101
|
+
- - ! '>='
|
100
102
|
- !ruby/object:Gem::Version
|
101
103
|
version: '0'
|
102
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
105
|
requirements:
|
104
|
-
- - '>='
|
106
|
+
- - ! '>='
|
105
107
|
- !ruby/object:Gem::Version
|
106
108
|
version: '0'
|
107
109
|
requirements: []
|
108
110
|
rubyforge_project:
|
109
|
-
rubygems_version: 2.
|
111
|
+
rubygems_version: 2.4.8
|
110
112
|
signing_key:
|
111
113
|
specification_version: 4
|
112
114
|
summary: MySQL configured with utf-8 encoding blows up when trying to save text rows
|