sort_alphabetical 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Readme.md +44 -0
  3. data/lib/sort_alphabetical.rb +7 -3
  4. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: abd87e79d0755ac81d2750f92a9ac487b8b040e9
4
- data.tar.gz: 9193bfcd544e3c49448f24a35be42f05b746559f
3
+ metadata.gz: 573aebe88b4243632689219e26378e1e0fa68dca
4
+ data.tar.gz: 296771d5b30c48b6f3fbae57150ac372a8c8ef62
5
5
  SHA512:
6
- metadata.gz: 829d17e26f1d16915f761cb36f3c5debf8045bfca14c3b93a9ef70ede9a4621e6cbc3242b8933b709365fa969c187541643043ccf89f353b52b96de128f9cdf9
7
- data.tar.gz: 1550f997a3bac0b7095c2922206cdd2cd170c491160fb9317f46a2879790aad9279fe0a6d68cbc567fe8410e0705ff807b79965f4cd9b1923a4fc8491f6efd0a
6
+ metadata.gz: c41af982c562b0f80a946ab13a1320a8608b26b73c42e5b160b94eb8b7d40514fb99deddc7c384080910c32b2e1d840862069a8e3f10c4763747b3292d294ca9
7
+ data.tar.gz: 96f484964cf583ece41fb8b8df594bae45c90501035bc9634c8dc0e0ed300bd67d5d3148e870e607b8bc10f3e88a1bd1d8084514587f007c8230a32bfea42e0a
@@ -0,0 +1,44 @@
1
+ Adds `sort_alphabetical` and `sort_alphabetical_by` to Enumberable(Array/Hash...),
2
+ which sorts UTF8 Strings alphabetical.
3
+ This sorting is done by placing variants on the same level as base character (A comes before Ä but ÄA comes before AB).
4
+
5
+ Requirements
6
+ =====
7
+ - Ruby >= 1.9
8
+
9
+ Setup
10
+ =====
11
+ - As gem: ` sudo gem install sort_alphabetical `
12
+
13
+ Usage
14
+ =====
15
+ ['b','á'].sort_alphabetical == ['á','b']
16
+ [['b',1],['á',2]].sort_alphabetical_by(&:first) == [['á',2],['b',1]]
17
+
18
+ SortAlphabetical.normalize('á') == 'a'
19
+
20
+ Alternative
21
+ ===========
22
+
23
+ Use [ICU](https://github.com/jarib/ffi-icu)
24
+ ```Ruby
25
+ collator = ICU::Collation::Collator.new("nb")
26
+ array.sort! { |a,b| collator.compare(a, b) }
27
+ ```
28
+
29
+ TODO
30
+ ====
31
+ - Sort non-ascii-convertables like ß(ss), œ(oe) , fi(fi), see [Ligatures](http://en.wikipedia.org/wiki/Typographical_ligature)
32
+ - Integrate natural sorting e.g. `['a11', 'a2'] => ['a2', 'a11']` like [NaturalSort](https://github.com/johnnyshields/naturalsort)
33
+
34
+ ### [Contributors](https://github.com/grosser/sort_alphabetical/contributors)
35
+ =======
36
+ - original string_to_ascii: [Marc-Andre](http://marc-andre.ca/).
37
+ - [Maxime Menant](https://github.com/maxime-menant)
38
+ - [Victor D.](https://github.com/V1c70r)
39
+ - [Andrii Malyshko](https://github.com/nashbridges)
40
+
41
+ [Michael Grosser](http://grosser.it)<br/>
42
+ michael@grosser.it<br/>
43
+ License: MIT<br/>
44
+ [![Build Status](https://travis-ci.org/grosser/sort_alphabetical.png)](https://travis-ci.org/grosser/sort_alphabetical)
@@ -19,8 +19,12 @@ module SortAlphabetical
19
19
  end
20
20
 
21
21
  def normalize(string)
22
- UnicodeUtils.compatibility_decomposition(string).split(''.freeze).select do |c|
23
- UnicodeUtils.general_category(c) =~ /Letter|Separator|Punctuation|Number/
24
- end.join
22
+ result = String.new
23
+ UnicodeUtils.compatibility_decomposition(string).each_char do |c|
24
+ if UnicodeUtils.general_category(c) =~ /Letter|Separator|Punctuation|Number/
25
+ result << c
26
+ end
27
+ end
28
+ result
25
29
  end
26
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sort_alphabetical
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-14 00:00:00.000000000 Z
11
+ date: 2016-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: unicode_utils
@@ -30,6 +30,7 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
+ - Readme.md
33
34
  - lib/sort_alphabetical.rb
34
35
  - lib/sort_alphabetical/core_ext.rb
35
36
  homepage: https://github.com/grosser/sort_alphabetical
@@ -44,7 +45,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
44
45
  requirements:
45
46
  - - ">="
46
47
  - !ruby/object:Gem::Version
47
- version: '0'
48
+ version: 2.0.0
48
49
  required_rubygems_version: !ruby/object:Gem::Requirement
49
50
  requirements:
50
51
  - - ">="
@@ -52,7 +53,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
53
  version: '0'
53
54
  requirements: []
54
55
  rubyforge_project:
55
- rubygems_version: 2.2.2
56
+ rubygems_version: 2.4.5.1
56
57
  signing_key:
57
58
  specification_version: 4
58
59
  summary: Sort UTF8 Strings alphabetical via Enumerable extension