byk 0.1.0 → 0.2.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.
Files changed (5) hide show
  1. checksums.yaml +13 -5
  2. data/README.md +20 -11
  3. data/ext/byk/byk.c +15 -1
  4. data/lib/byk/version.rb +1 -1
  5. metadata +9 -9
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 18a9ea704a27dfc6a2ca4f7fd9b83e05c1f5a57b
4
- data.tar.gz: b6490d7a249f5ceb6378d92d6ee63af2424074ab
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YmZiNDc2ZGE5NDBiZjE0ZTU1ZDk2ODg2NGU2MWExNzM0OTE4YTc5ZQ==
5
+ data.tar.gz: !binary |-
6
+ MjVhNGVjOTQ0MTI5NTY3YzBiZWY2MmYwYTM4YzdlM2U3OTUyOWI4YQ==
5
7
  SHA512:
6
- metadata.gz: 809f4204b60ec626f15aff3e32b8ca4368e0bcecbda1700b039b3edf086853841a6e94c7ef3e9a47003623b9cde0635d555d1d19ccca28220aa165f7a28c8327
7
- data.tar.gz: 9a103df7e2976d6ab2574a372479e18f6fccd3c2e005d49e5c464f82befb6942ca19a80091387d67ee85aa98980b2bfe21bf9efada48ad1fec5e817a60d827f8
8
+ metadata.gz: !binary |-
9
+ N2I2NzgxY2QzYjk3MDlmMWVmOTAwOWI0ZDViNjk0NTBjYjQwM2U1YjJiY2M3
10
+ MmQyNDE1YmIxOTExMTNiMGE4ZDQ3OGVmOGZlOWRlNTUyODM0NDU4YzgxNzRl
11
+ OTAyYzc2YzEyNDQ0NjgwNzRhMWQ4MGExOWE1ZjFiMGM3MzQzZDI=
12
+ data.tar.gz: !binary |-
13
+ OGUyM2RiZDdjYjA4NjQ0YmM3MTE5YjhjOWZjNGQxZTliZGI1NTdmMWRmYmEx
14
+ OTQ2YWQxYmM3ZjdmZmNhM2M0NmVkYTEwNDM3YzE3ZmUyMzM4ODhjMTM2MGI3
15
+ MWE5MjlkNGNjZWUzN2YwOTUyYzRmYWJmY2FjNWYwOGY5ZmM4ODc=
data/README.md CHANGED
@@ -3,6 +3,8 @@ Byk
3
3
 
4
4
  Fast transliteration of Serbian Cyrillic into Latin.
5
5
 
6
+ ![byk](https://cloud.githubusercontent.com/assets/626128/7155207/07545960-e35d-11e4-804e-5fdee70a3e30.png)
7
+
6
8
  This package was inspired by @dejan's
7
9
  [nice little gem](https://github.com/dejan/srbovanje), but this one
8
10
  comes with a C-optimized twist.
@@ -22,6 +24,7 @@ $ bundle
22
24
  ```
23
25
 
24
26
  Or install it yourself as:
27
+
25
28
  ```
26
29
  $ gem install byk
27
30
  ```
@@ -55,23 +58,16 @@ text # => "Zvazbuka"
55
58
  Note that these methods will take into account the
56
59
  [special two-letter rules](http://sr.wikipedia.org/wiki/Gajica#Abeceda):
57
60
 
58
- ```
61
+ ```ruby
59
62
  "ĐORĐE Đorđević".to_ascii_latin # => "DJORDJE Djordjevic"
60
63
  ```
61
64
 
62
- ## Notes
65
+ ## How fast is fast?
63
66
 
64
- ### How fast is fast?
65
-
66
- About [7x](benchmark) faster than the baseline Ruby implementation on
67
+ About [7x faster](benchmark) than the baseline Ruby implementation on
67
68
  my hardware. YMMV of course.
68
69
 
69
- ### Compatibility
70
-
71
- Byk is supported under MRI Ruby 1.9.3, 2.0, 2.1 and 2.2. Earlier
72
- versions of MRI are untested.
73
-
74
- ### Raison d'être
70
+ ## Raison d'être
75
71
 
76
72
  For massive transliteration (e.g. sites supporting dual script
77
73
  output), this kind of speed-up might be worthwhile, even with caching.
@@ -80,4 +76,17 @@ Also, it's a well-defined problem with hard-set rules which makes it a
80
76
  natural target for optimization. Plus, it gave me an excuse to play
81
77
  with Ruby extensions, so there :smile_cat:
82
78
 
79
+ ## Compatibility
80
+
81
+ Byk is supported under MRI Ruby 1.9.3, 2.0, 2.1 and 2.2. Earlier
82
+ versions of MRI are untested (yet).
83
+
84
+ ## Code Status
85
+
86
+ [![Build Status](https://travis-ci.org/topalovic/byk.svg?branch=master)](https://travis-ci.org/topalovic/byk)
87
+
88
+ ## License
89
+
90
+ This gem is released under the [MIT License](http://www.opensource.org/licenses/MIT).
91
+
83
92
  Уздравље!
@@ -2,6 +2,19 @@
2
2
  #include <ruby.h>
3
3
  #include <ruby/encoding.h>
4
4
 
5
+ #ifndef rb_check_arity
6
+ #define rb_check_arity rb_check_arity
7
+
8
+ NORETURN(void rb_error_arity(int, int, int));
9
+
10
+ static inline void
11
+ rb_check_arity(int argc, int min, int max)
12
+ {
13
+ if ((argc < min) || (max != -1 && argc > max))
14
+ rb_error_arity(argc, min, max);
15
+ }
16
+ #endif
17
+
5
18
  #define STR_ENC_GET(str) rb_enc_from_index(ENCODING_GET(str))
6
19
 
7
20
  #define STR_CAT_COND_ASCII(force_ascii, dest, chr, ascii_chr, len, enc) \
@@ -126,7 +139,8 @@ str_to_latin(int argc, VALUE *argv, VALUE str, int ascii, int bang)
126
139
  rb_enc_associate(dest, enc);
127
140
 
128
141
  while (pos < end) {
129
- int len, force_upper = 0;
142
+ int len;
143
+ int force_upper = 0;
130
144
 
131
145
  prev_codepoint = codepoint;
132
146
  codepoint = rb_enc_codepoint_len(pos, end, &len, enc);
@@ -1,3 +1,3 @@
1
1
  module Byk
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: byk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikola Topalović
@@ -14,28 +14,28 @@ dependencies:
14
14
  name: rake-compiler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.9'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.2'
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: '3.2'
41
41
  description: Provides C-optimized methods for transliteration of Serbian Cyrillic
@@ -63,17 +63,17 @@ require_paths:
63
63
  - lib
64
64
  required_ruby_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 1.9.3
69
69
  required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - ">="
71
+ - - ! '>='
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
75
  rubyforge_project:
76
- rubygems_version: 2.2.2
76
+ rubygems_version: 2.4.6
77
77
  signing_key:
78
78
  specification_version: 4
79
79
  summary: Fast transliteration of Serbian Cyrillic into Latin.