basehangul 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48909fd8600e22b74fd809e6f9e6b35bd9005dd9
4
- data.tar.gz: c65e09a4a53d1ff4f362c48d40c4c030e486a665
3
+ metadata.gz: 5dea832635fe4ba4c9cb0e698175e776ebc273ce
4
+ data.tar.gz: af201548ca14b381e7cad53b6674acb988b87c79
5
5
  SHA512:
6
- metadata.gz: 396ad4df9d2a499d143f2cea0f08f2960961f98a1e5a37e3c99302db8a8653bb8fd9ab0d350e33e6c4659f01e04db6b75a9ac5abffa5513e0f380b5e06aa28f8
7
- data.tar.gz: 508cec650cae1100a6bae217b9c7270e856909d26f99e5857c7565a1388dea6b5b6ea32edd142584957bc78ad444e925e20c1943ffef447c2ece7840f1da76a7
6
+ metadata.gz: 9e02f9167a48cb7a28c3328a2a216d5b2f6ca084312c9c3df2aff4f505137139348e3295dcc857962cd9fbb62a1aab3c77e1c8b0ea3f86254bd1894b67091cd4
7
+ data.tar.gz: f09e00ca1d6d6745ca3ad7e511d25de23174906243e1117739feac6def022317293ebdc1449f288811cf1f85d32fad12889faa9ab6dda2ac254b0f164b1d2056
data/.rubocop.yml CHANGED
@@ -1,4 +1,8 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
+ Style/AsciiComments:
4
+ Exclude:
5
+ - 'lib/basehangul/utils.rb'
6
+
3
7
  Style/Encoding:
4
8
  Enabled: true
data/.rubocop_todo.yml CHANGED
@@ -1,10 +1,15 @@
1
1
  # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2014-11-05 06:26:54 +0900 using RuboCop version 0.27.0.
2
+ # on 2014-11-08 01:14:38 +0900 using RuboCop version 0.27.0.
3
3
  # The point is for the user to remove these configuration records
4
4
  # one by one as the offenses are removed from the code base.
5
5
  # Note that changes in the inspected code, or installation of new
6
6
  # versions of RuboCop, may require this file to be generated again.
7
7
 
8
- # Offense count: 2
8
+ # Offense count: 3
9
9
  Metrics/AbcSize:
10
- Max: 19
10
+ Max: 21
11
+
12
+ # Offense count: 1
13
+ # Configuration parameters: CountComments.
14
+ Metrics/MethodLength:
15
+ Max: 15
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.0 (2014-11-08)
4
+
5
+ - Make `BaseHangul.decode` to ignore invalid characters
6
+ - Add `BaseHangul.strict_decode`
7
+
3
8
  ## 1.0.0 (2014-11-05)
4
9
 
5
10
  - First release
data/README.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # BaseHangul
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/basehangul.svg)](http://badge.fury.io/rb/basehangul)
3
4
  [![Build Status](https://travis-ci.org/yous/basehangul.svg?branch=master)](https://travis-ci.org/yous/basehangul)
4
5
  [![Dependency Status](https://gemnasium.com/yous/basehangul.svg)](https://gemnasium.com/yous/basehangul)
5
6
  [![Code Climate](https://codeclimate.com/github/yous/basehangul/badges/gpa.svg)](https://codeclimate.com/github/yous/basehangul)
6
7
  [![Coverage Status](https://img.shields.io/coveralls/yous/basehangul.svg)](https://coveralls.io/r/yous/basehangul)
7
8
  [![Inline docs](http://inch-ci.org/github/yous/basehangul.svg?branch=master)](http://inch-ci.org/github/yous/basehangul)
8
9
 
9
- [BaseHangul](https://github.com/koreapyj/basehangul) for Ruby. BaseHangul is an binary encoder using hangul. You can see [the specification](http://api.dcmys.jp/basehangul/) of it.
10
+ Human-readable binary encoding, [BaseHangul](https://basehangul.github.io) for Ruby.
10
11
 
11
12
  ## Installation
12
13
 
@@ -32,10 +33,10 @@ gem install basehangul
32
33
 
33
34
  ``` ruby
34
35
  BaseHangul.encode('This is an encoded string')
35
- # => "넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤"
36
+ # => '넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤'
36
37
 
37
38
  BaseHangul.decode('넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤')
38
- # => "This is an encoded string"
39
+ # => 'This is an encoded string'
39
40
  ```
40
41
 
41
42
  ## Contributing
data/basehangul.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.version = BaseHangul::Version::STRING
10
10
  spec.authors = ['ChaYoung You']
11
11
  spec.email = %w(yousbe@gmail.com)
12
- spec.summary = 'BaseHangul for Ruby.'
13
- spec.description = 'BaseHangul for Ruby.'
12
+ spec.summary = 'Human-readable binary encoding, BaseHangul for Ruby.'
13
+ spec.description = 'Human-readable binary encoding, BaseHangul for Ruby.'
14
14
  spec.homepage = ''
15
15
  spec.license = 'MIT'
16
16
 
@@ -7,22 +7,47 @@ module BaseHangul
7
7
  #
8
8
  # hangul - A hangul character encoded with BaseHangul.
9
9
  #
10
- # Returns the Integer index of the hangul between 0 to 1027.
11
- # Raises ArgumentError if the character is not valid for BaseHangul.
10
+ # Examples
11
+ #
12
+ # to_index('가')
13
+ # # => 0
14
+ #
15
+ # to_index('빌')
16
+ # # => 1023
17
+ #
18
+ # to_index('빗')
19
+ # # => 1027
20
+ #
21
+ # to_index('흐')
22
+ # # => -1
23
+ #
24
+ # Returns the Integer index of the hangul between 0 to 1027 or nil if the
25
+ # character is invalid for BaseHangul.
12
26
  def self.to_index(hangul)
13
27
  return -1 if hangul == PADDING
14
28
  offset = hangul.encode(Encoding::EUC_KR).ord - 0xB0A1
15
29
  index = offset / 0x100 * 0x5E + offset % 0x100
16
- if index < 0 || index > 1027
17
- fail ArgumentError, 'Not a valid BaseHangul string'
18
- end
30
+ return nil if index < 0 || index > 1027
19
31
  index
32
+ rescue Encoding::UndefinedConversionError
33
+ nil
20
34
  end
21
35
 
22
36
  # Convert a index to hangul character.
23
37
  #
24
38
  # index - An Integer to convert.
25
39
  #
40
+ # Examples
41
+ #
42
+ # to_hangul(0)
43
+ # # => '가'
44
+ #
45
+ # to_hangul(1023)
46
+ # # => '빌'
47
+ #
48
+ # to_hangul(1027)
49
+ # # => '빗'
50
+ #
26
51
  # Returns the String hangul for given index.
27
52
  # Raises IndexError if the index is out of range 0..1027.
28
53
  def self.to_hangul(index)
@@ -38,6 +63,20 @@ module BaseHangul
38
63
  # str - The String to slice.
39
64
  # size - The Integer max size of each chunk.
40
65
  #
66
+ # Examples
67
+ #
68
+ # chunks('foo', 1)
69
+ # # => ['f', 'o', 'o']
70
+ #
71
+ # chunks('foobarbaz', 3)
72
+ # # => ['foo', 'bar', 'baz']
73
+ #
74
+ # chunks('abcd1234AB', 4)
75
+ # # => ['abcd', '1234', 'AB']
76
+ #
77
+ # chunks('', 1)
78
+ # # => []
79
+ #
41
80
  # Returns an Array of chunked Strings.
42
81
  # Raises ArgumentError if the size is smaller then or equal to 0.
43
82
  def self.chunks(str, size)
@@ -3,6 +3,6 @@
3
3
  module BaseHangul
4
4
  # Holds the BaseHangul version information.
5
5
  module Version
6
- STRING = '1.0.0'
6
+ STRING = '1.1.0'
7
7
  end
8
8
  end
data/lib/basehangul.rb CHANGED
@@ -3,11 +3,23 @@
3
3
  require 'basehangul/version'
4
4
  require 'basehangul/utils'
5
5
 
6
- # Binary encoder using hangul.
6
+ # Human-readable binary encoding.
7
7
  module BaseHangul
8
8
  # Character for padding on encoding.
9
9
  PADDING = '흐'.freeze
10
- private_constant :PADDING
10
+
11
+ # Error message for invalid character.
12
+ MSG_INVALID_CHAR = 'Invalid character found'
13
+
14
+ # Error message for incorrect padding.
15
+ MSG_INVALID_PADDING = 'Invalid padding'
16
+
17
+ # Regular expression for BaseHangul.
18
+ REGEX_BASEHANGUL = Regexp.new('^(?:[^빎빔빕빗흐]{4})*' \
19
+ '(?:[^빎빔빕빗흐]흐{3}|[^빎빔빕빗흐]{2}흐{2}|' \
20
+ '[^빎빔빕빗흐]{3}[빎빔빕빗흐])?$').freeze
21
+
22
+ private_constant :PADDING, :MSG_INVALID_CHAR, :MSG_INVALID_PADDING
11
23
 
12
24
  # Public: Encode binary with BaseHangul.
13
25
  #
@@ -27,7 +39,8 @@ module BaseHangul
27
39
  chunks.map { |b| Utils.to_hangul(b.ljust(10, '0').to_i(2)) }.join + padding
28
40
  end
29
41
 
30
- # Public: Decode BaseHangul string.
42
+ # Public: Decode BaseHangul string. Characters outside the BaseHangul are
43
+ # ignored.
31
44
  #
32
45
  # str - A String encoded with BaseHangul.
33
46
  #
@@ -36,7 +49,30 @@ module BaseHangul
36
49
  indices = str.each_char.map { |ch| Utils.to_index(ch) }
37
50
  binary = indices.map do |index|
38
51
  case index
39
- when -1 then ''
52
+ when 0..1023 then index.to_s(2).rjust(10, '0')
53
+ when 1024..1027 then (index - 1024).to_s(2).rjust(2, '0')
54
+ end
55
+ end.join
56
+ binary = binary[0..-(binary.size % 8 + 1)]
57
+ [binary].pack('B*')
58
+ end
59
+
60
+ # Public: Decode BaseHangul string.
61
+ #
62
+ # str - A String encoded with BaseHangul.
63
+ #
64
+ # Returns the String decoded binary.
65
+ # Raises ArgumentError if str is invalid BaseHangul.
66
+ def self.strict_decode(str)
67
+ indices = []
68
+ str.each_char do |ch|
69
+ index = Utils.to_index(ch)
70
+ fail ArgumentError, MSG_INVALID_CHAR if index.nil?
71
+ indices << index
72
+ end
73
+ fail ArgumentError, MSG_INVALID_PADDING unless str =~ REGEX_BASEHANGUL
74
+ binary = indices.map do |index|
75
+ case index
40
76
  when 0..1023 then index.to_s(2).rjust(10, '0')
41
77
  when 1024..1027 then (index - 1024).to_s(2).rjust(2, '0')
42
78
  end
@@ -19,12 +19,15 @@ RSpec.describe BaseHangul::Utils do
19
19
  expect(index).to eq(-1)
20
20
  end
21
21
 
22
- it 'raises ArgumentError for invalid hangul' do
23
- range = ('빙'.encode(Encoding::EUC_KR)..'힝'.encode(Encoding::EUC_KR))
24
- .map { |v| v.encode(Encoding::UTF_8) }
22
+ it 'returns nil for invalid character' do
23
+ range = ["\x00", "\uFFFF",
24
+ 'A', 'b', '1',
25
+ '갂', '갃', '뷁',
26
+ *('빙'.encode(Encoding::EUC_KR)..'힝'.encode(Encoding::EUC_KR))
27
+ .map { |v| v.encode(Encoding::UTF_8) }]
25
28
  range.reject { |v| v == padding }.each do |hangul|
26
- expect { utils.to_index(hangul) }
27
- .to raise_error(ArgumentError, 'Not a valid BaseHangul string')
29
+ index = utils.to_index(hangul)
30
+ expect(index).to eq(nil)
28
31
  end
29
32
  end
30
33
  end
@@ -17,6 +17,10 @@ RSpec.describe BaseHangul do
17
17
  expect(encoded).to eq('꺽먹꼍녜')
18
18
  encoded = basehangul.encode("123d\x00")
19
19
  expect(encoded).to eq('꺽먹꼐가')
20
+ encoded = basehangul.encode('1234567890')
21
+ expect(encoded).to eq('꺽먹께겔꼍뮷뒝낮')
22
+ encoded = basehangul.encode("12345678d\x00")
23
+ expect(encoded).to eq('꺽먹께겔꼍뮷듕가')
20
24
  end
21
25
  end
22
26
 
@@ -28,6 +32,12 @@ RSpec.describe BaseHangul do
28
32
  expect(encoded).to eq('꺽먈흐흐')
29
33
  encoded = basehangul.encode('123')
30
34
  expect(encoded).to eq('꺽먹꺄흐')
35
+ encoded = basehangul.encode('123456')
36
+ expect(encoded).to eq('꺽먹께겔꼍흐흐흐')
37
+ encoded = basehangul.encode('1234567')
38
+ expect(encoded).to eq('꺽먹께겔꼍뮨흐흐')
39
+ encoded = basehangul.encode('12345678')
40
+ expect(encoded).to eq('꺽먹께겔꼍뮷됩흐')
31
41
  end
32
42
  end
33
43
 
@@ -41,48 +51,122 @@ RSpec.describe BaseHangul do
41
51
  expect(encoded).to eq('꺽먹꼐빕')
42
52
  encoded = basehangul.encode('123g')
43
53
  expect(encoded).to eq('꺽먹꼐빗')
54
+ encoded = basehangul.encode('12345678d')
55
+ expect(encoded).to eq('꺽먹께겔꼍뮷듕빎')
56
+ encoded = basehangul.encode('12345678e')
57
+ expect(encoded).to eq('꺽먹께겔꼍뮷듕빔')
58
+ encoded = basehangul.encode('12345678f')
59
+ expect(encoded).to eq('꺽먹께겔꼍뮷듕빕')
60
+ encoded = basehangul.encode('12345678g')
61
+ expect(encoded).to eq('꺽먹께겔꼍뮷듕빗')
44
62
  end
45
63
  end
46
64
  end
47
65
 
48
66
  describe '.decode' do
49
- it 'returns empty binary with empty string' do
50
- decoded = basehangul.decode('')
51
- expect(decoded).to eq('')
52
- end
67
+ it_behaves_like 'a decoder', :decode
53
68
 
54
- context 'when there is no padding characters' do
69
+ context 'when string has wrong number of padding characters' do
55
70
  it 'decodes hangul to binary' do
56
- decoded = basehangul.decode('넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤')
57
- expect(decoded).to eq('This is an encoded string')
58
- decoded = basehangul.decode('꺽먹꼍녜')
71
+ decoded = basehangul.decode('')
72
+ expect(decoded).to eq('1')
73
+ decoded = basehangul.decode('꺽흐')
74
+ expect(decoded).to eq('1')
75
+ decoded = basehangul.decode('꺽흐흐')
76
+ expect(decoded).to eq('1')
77
+ decoded = basehangul.decode('꺽흐흐흐흐')
78
+ expect(decoded).to eq('1')
79
+ decoded = basehangul.decode('꺽먈')
80
+ expect(decoded).to eq('12')
81
+ decoded = basehangul.decode('꺽먹꺄')
82
+ expect(decoded).to eq('123')
83
+ decoded = basehangul.decode('꺽먹께겔꼍')
84
+ expect(decoded).to eq('123456')
85
+ decoded = basehangul.decode('꺽먹께겔꼍뮨')
86
+ expect(decoded).to eq('1234567')
87
+ decoded = basehangul.decode('꺽먹께겔꼍뮷됩')
88
+ expect(decoded).to eq('12345678')
89
+ decoded = basehangul.decode('꺽먹꼍녜흐')
59
90
  expect(decoded).to eq('123ab')
60
- decoded = basehangul.decode('꺽먹꼐가')
61
- expect(decoded).to eq("123d\x00")
91
+ decoded = basehangul.decode('꺽먹께겔꼍뮷뒝낮흐흐')
92
+ expect(decoded).to eq('1234567890')
62
93
  end
63
94
  end
64
95
 
65
- context 'when there are padding characters' do
66
- it 'decodes hangul to binary' do
67
- decoded = basehangul.decode('꺽흐흐흐')
68
- expect(decoded).to eq('1')
69
- decoded = basehangul.decode('꺽먈흐흐')
70
- expect(decoded).to eq('12')
71
- decoded = basehangul.decode('꺽먹꺄흐')
72
- expect(decoded).to eq('123')
96
+ context 'when there are invalid characters' do
97
+ it 'ignores invalid characters' do
98
+ strings = [' 꺽먹꼍녜',
99
+ '꺽먹꼍녜 ',
100
+ "\n꺽\t먹\u3000꼍abc녜"]
101
+ strings.each do |encoded|
102
+ decoded = basehangul.decode(encoded)
103
+ expect(decoded).to eq('123ab')
104
+ end
105
+ end
106
+ end
107
+ end
108
+
109
+ describe '.strict_decode' do
110
+ let(:msg_invalid_char) { basehangul.const_get(:MSG_INVALID_CHAR) }
111
+ let(:msg_invalid_padding) { basehangul.const_get(:MSG_INVALID_PADDING) }
112
+
113
+ it_behaves_like 'a decoder', :strict_decode
114
+
115
+ context 'when string has wrong number of padding characters' do
116
+ it 'raises ArgumentError' do
117
+ strings = ['꺽', # rubocop:disable Style/WordArray
118
+ '꺽흐',
119
+ '꺽흐흐',
120
+ '꺽흐흐흐흐',
121
+ '꺽먈',
122
+ '꺽먹꺄',
123
+ '꺽먹께겔꼍',
124
+ '꺽먹께겔꼍뮨',
125
+ '꺽먹께겔껼뮷됩',
126
+ '꺽먹꼍녜흐',
127
+ '꺽먹께겔꼍뮷뒝낮흐흐']
128
+ strings.each do |encoded|
129
+ expect { basehangul.strict_decode(encoded) }
130
+ .to raise_error(ArgumentError, msg_invalid_padding)
131
+ end
132
+ end
133
+ end
134
+
135
+ context 'when string has characters after padding characters' do
136
+ it 'raises ArgumentError' do
137
+ strings = ['꺽흐꺽흐흐흐', # rubocop:disable Style/WordArray
138
+ '꺽흐흐흐꺽흐흐흐',
139
+ '꺽먹꺄흐꺽',
140
+ '꺽먹께흐겔꼍흐흐흐',
141
+ '꺽먹꼐흐꺽먹꼐빎']
142
+ strings.each do |encoded|
143
+ expect { basehangul.strict_decode(encoded) }
144
+ .to raise_error(ArgumentError, msg_invalid_padding)
145
+ end
146
+ end
147
+ end
148
+
149
+ context 'when string has special characters with wrong position' do
150
+ it 'raises ArgumentError' do
151
+ strings = ['꺽먹꼐빎꺽흐흐흐', # rubocop:disable Style/WordArray
152
+ '꺽먹빎',
153
+ '꺽먹빎흐']
154
+ strings.each do |encoded|
155
+ expect { basehangul.strict_decode(encoded) }
156
+ .to raise_error(ArgumentError, msg_invalid_padding)
157
+ end
73
158
  end
74
159
  end
75
160
 
76
- context 'when there are special characters' do
77
- it 'decodes hangul to binary 'do
78
- decoded = basehangul.decode('꺽먹꼐빎')
79
- expect(decoded).to eq('123d')
80
- decoded = basehangul.decode('꺽먹꼐빔')
81
- expect(decoded).to eq('123e')
82
- decoded = basehangul.decode('꺽먹꼐빕')
83
- expect(decoded).to eq('123f')
84
- decoded = basehangul.decode('꺽먹꼐빗')
85
- expect(decoded).to eq('123g')
161
+ context 'when there are invalid characters' do
162
+ it 'raises ArgumentError' do
163
+ strings = [' 꺽먹꼍녜',
164
+ '꺽먹꼍녜 ',
165
+ "\n꺽\t먹\u3000꼍abc녜"]
166
+ strings.each do |encoded|
167
+ expect { basehangul.strict_decode(encoded) }
168
+ .to raise_error(ArgumentError, msg_invalid_char)
169
+ end
86
170
  end
87
171
  end
88
172
  end
@@ -0,0 +1,65 @@
1
+ # encoding: utf-8
2
+
3
+ RSpec.shared_examples 'a decoder' do |method|
4
+ subject(:decode) { described_class.method(method) }
5
+
6
+ describe ".#{method}" do
7
+ it 'returns empty binary with empty string' do
8
+ decoded = decode.call('')
9
+ expect(decoded).to eq('')
10
+ end
11
+
12
+ context 'when there is no padding characters' do
13
+ it 'decodes hangul to binary' do
14
+ decoded = decode.call('넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤')
15
+ expect(decoded).to eq('This is an encoded string')
16
+ decoded = decode.call('꺽먹꼍녜')
17
+ expect(decoded).to eq('123ab')
18
+ decoded = decode.call('꺽먹꼐가')
19
+ expect(decoded).to eq("123d\x00")
20
+ decoded = decode.call('꺽먹께겔꼍뮷뒝낮')
21
+ expect(decoded).to eq('1234567890')
22
+ decoded = decode.call('꺽먹께겔꼍뮷듕가')
23
+ expect(decoded).to eq("12345678d\x00")
24
+ end
25
+ end
26
+
27
+ context 'when there are padding characters' do
28
+ it 'decodes hangul to binary' do
29
+ decoded = decode.call('꺽흐흐흐')
30
+ expect(decoded).to eq('1')
31
+ decoded = decode.call('꺽먈흐흐')
32
+ expect(decoded).to eq('12')
33
+ decoded = decode.call('꺽먹꺄흐')
34
+ expect(decoded).to eq('123')
35
+ decoded = decode.call('꺽먹께겔꼍흐흐흐')
36
+ expect(decoded).to eq('123456')
37
+ decoded = decode.call('꺽먹께겔꼍뮨흐흐')
38
+ expect(decoded).to eq('1234567')
39
+ decoded = decode.call('꺽먹께겔꼍뮷됩흐')
40
+ expect(decoded).to eq('12345678')
41
+ end
42
+ end
43
+
44
+ context 'when there are special characters' do
45
+ it 'decodes hangul to binary 'do
46
+ decoded = decode.call('꺽먹꼐빎')
47
+ expect(decoded).to eq('123d')
48
+ decoded = decode.call('꺽먹꼐빔')
49
+ expect(decoded).to eq('123e')
50
+ decoded = decode.call('꺽먹꼐빕')
51
+ expect(decoded).to eq('123f')
52
+ decoded = decode.call('꺽먹꼐빗')
53
+ expect(decoded).to eq('123g')
54
+ decoded = decode.call('꺽먹께겔꼍뮷듕빎')
55
+ expect(decoded).to eq('12345678d')
56
+ decoded = decode.call('꺽먹께겔꼍뮷듕빔')
57
+ expect(decoded).to eq('12345678e')
58
+ decoded = decode.call('꺽먹께겔꼍뮷듕빕')
59
+ expect(decoded).to eq('12345678f')
60
+ decoded = decode.call('꺽먹께겔꼍뮷듕빗')
61
+ expect(decoded).to eq('12345678g')
62
+ end
63
+ end
64
+ end
65
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: basehangul
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ChaYoung You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-04 00:00:00.000000000 Z
11
+ date: 2014-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.9'
83
- description: BaseHangul for Ruby.
83
+ description: Human-readable binary encoding, BaseHangul for Ruby.
84
84
  email:
85
85
  - yousbe@gmail.com
86
86
  executables: []
@@ -106,6 +106,7 @@ files:
106
106
  - spec/basehangul_spec.rb
107
107
  - spec/spec_helper.rb
108
108
  - spec/support/coverage.rb
109
+ - spec/support/shared_decode.rb
109
110
  homepage: ''
110
111
  licenses:
111
112
  - MIT
@@ -129,10 +130,11 @@ rubyforge_project:
129
130
  rubygems_version: 2.4.2
130
131
  signing_key:
131
132
  specification_version: 4
132
- summary: BaseHangul for Ruby.
133
+ summary: Human-readable binary encoding, BaseHangul for Ruby.
133
134
  test_files:
134
135
  - spec/basehangul/utils_spec.rb
135
136
  - spec/basehangul/version_spec.rb
136
137
  - spec/basehangul_spec.rb
137
138
  - spec/spec_helper.rb
138
139
  - spec/support/coverage.rb
140
+ - spec/support/shared_decode.rb