sanscript 0.3.2 → 0.3.3

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: 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