sanscript 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0ea83dbd9294b3b9513a64d14924b3cf355a241
4
- data.tar.gz: 67276e8a661be58cdc5a2a3a3915a2ab2fe90fd0
3
+ metadata.gz: d1e473866926c96b58966e9a570d1310ae9d8eff
4
+ data.tar.gz: b6f0165d110775e8f4adb49de170634638afb372
5
5
  SHA512:
6
- metadata.gz: 522fb05bb1bd21d431ae7077c84b9ef954d5a61a2b14c2a8426bfc72158f4d3d58786b4c3295afa6bad3dcd34cb7e9aa4550d1f1e5a77a76482e57f07dadcf77
7
- data.tar.gz: ddd1e7304d03f1bbcc34b67c01b77108f0223dff2af1913562aa7aeea1574ce5bf940937b5e517d050e35dd2cc74c00a45c693ac8b45310dd6e0927a8cd5763c
6
+ metadata.gz: 6abff0d8586ff49952c7a308d4ddaf142fcc0ae4be41a739ed287a5705b2bca2cf104ef965c37cdc39dd6b0ce34155d2509722275494a87125e8c5b65403f062
7
+ data.tar.gz: d66c8bfd4cd7faddf4e544e5287e7c83a8c7d855741aac71f2153f457e4e275a47981cff9559009d7d7ce7cc0b7c3faf20c684d11cf1561f09c6924b500f4e73
data/.travis.yml CHANGED
@@ -2,6 +2,12 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.3.1
5
+ - 2.2
6
+ - 2.4.0-preview1
7
+ matrix:
8
+ allow_failures:
9
+ - rvm: 2.4.0-preview1
10
+
5
11
  before_install: gem install bundler -v 1.12.5
6
12
  script: bundle exec rake spec SPEC_OPTS="--format p"
7
13
  addons:
@@ -44,14 +44,17 @@ module Sanscript
44
44
  # Match on characters available in Harvard-Kyoto
45
45
  RE_HARVARD_KYOTO = /[aAiIuUeoRMHkgGcjJTDNtdnpbmyrlvzSsh]/
46
46
 
47
+ # Match ##...## or {#...#} control blocks.
48
+ RE_CONTROL_BLOCK = /(?<!\\)##.*?(?<!\\)##|(?<!\\)\{#.*?(?<!\\)#\}/
49
+
47
50
  private_constant :RE_BRAHMIC_RANGE, :RE_BRAHMIC_SCRIPTS, :RE_IAST_OR_KOLKATA_ONLY,
48
51
  :RE_KOLKATA_ONLY, :RE_ITRANS_ONLY, :RE_SLP1_ONLY, :RE_VELTHUIS_ONLY,
49
- :RE_ITRANS_OR_VELTHUIS_ONLY, :RE_HARVARD_KYOTO
52
+ :RE_ITRANS_OR_VELTHUIS_ONLY, :RE_HARVARD_KYOTO, :RE_CONTROL_BLOCK
50
53
 
51
54
  module_function
52
55
 
53
56
  def detect_script(text)
54
- text = text.to_str.gsub(/(?<!\\)##.*?(?<!\\)##|(?<!\\)\{#.*?(?<!\\)#\}/, "")
57
+ text = text.to_str.gsub(RE_CONTROL_BLOCK, "")
55
58
 
56
59
  # Brahmic schemes are all within a specific range of code points.
57
60
  if RE_BRAHMIC_RANGE === text
@@ -78,5 +81,37 @@ module Sanscript
78
81
  :unknown
79
82
  end
80
83
  end
84
+
85
+ # If Ruby 2.4's Regexp#match? method is found, use it for performance
86
+ if Regexp.method_defined?(:match?)
87
+ def detect_script(text)
88
+ text = text.to_str.gsub(RE_CONTROL_BLOCK, "")
89
+
90
+ # Brahmic schemes are all within a specific range of code points.
91
+ if RE_BRAHMIC_RANGE.match?(text)
92
+ RE_BRAHMIC_SCRIPTS.each do |script, regex|
93
+ return script if regex.match?(text)
94
+ end
95
+ end
96
+
97
+ # Romanizations
98
+ if RE_IAST_OR_KOLKATA_ONLY.match?(text)
99
+ return :kolkata if RE_KOLKATA_ONLY.match?(text)
100
+ :iast
101
+ elsif RE_ITRANS_ONLY.match?(text)
102
+ :itrans
103
+ elsif RE_SLP1_ONLY.match?(text)
104
+ :slp1
105
+ elsif RE_VELTHUIS_ONLY.match?(text)
106
+ :velthuis
107
+ elsif RE_ITRANS_OR_VELTHUIS_ONLY.match?(text)
108
+ :itrans
109
+ elsif RE_HARVARD_KYOTO.match?(text)
110
+ :hk
111
+ else
112
+ :unknown
113
+ end
114
+ end
115
+ end
81
116
  end
82
117
  end
@@ -148,6 +148,7 @@ module Sanscript
148
148
  def transliterate(data, from, to, options = {})
149
149
  from = from.to_sym
150
150
  to = to.to_sym
151
+ return data if from == to
151
152
  raise "Scheme not known ':#{from}'" unless @schemes.key?(from)
152
153
  raise "Scheme not known ':#{to}'" unless @schemes.key?(to)
153
154
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Sanscript
3
- VERSION = "0.3.2"
3
+ VERSION = "0.3.3"
4
4
  end
data/sanscript.gemspec CHANGED
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = "~> 2.2"
23
+
22
24
  spec.add_development_dependency "bundler", "~> 1.12"
23
25
  spec.add_development_dependency "rake", "~> 11.2"
24
26
  spec.add_development_dependency "rspec", "~> 3.5"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sanscript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Bellefleur
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-16 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -145,9 +145,9 @@ require_paths:
145
145
  - lib
146
146
  required_ruby_version: !ruby/object:Gem::Requirement
147
147
  requirements:
148
- - - ">="
148
+ - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: '0'
150
+ version: '2.2'
151
151
  required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  requirements:
153
153
  - - ">="
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  version: '0'
156
156
  requirements: []
157
157
  rubyforge_project:
158
- rubygems_version: 2.6.6
158
+ rubygems_version: 2.6.4
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: Ruby port and extension of Sanscript.js transliterator by learnsanskrit.org