sanscript 0.7.2 → 0.8.0

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: de011752bbfc87c08592300330dc0aca37a6b9da
4
- data.tar.gz: 051e4aa36d4fb35a763f04299b4a278d416ff7cd
3
+ metadata.gz: 4abcaa011331a5fcdcb8e27184883850c6815b1e
4
+ data.tar.gz: 213abc61320426da678cabe812b59902c2d8833b
5
5
  SHA512:
6
- metadata.gz: 31cc5709e9eb6ed76a1a43ec365e3ae645e1ca9a8e467c9087b4c2f8bdcb8cb2db4045eb6c5de8f216de97619c137a028ac3d27dd973ba8a37b20a6df173b065
7
- data.tar.gz: 1bab14d866ae4995d5c5b09e489348ff9931ed403fd34949afe9e54bf9275f0ed84e1cfb15f3603d844a01f6cb040ab3efc9a8625652e0602596139e6cd54025
6
+ metadata.gz: ef7b9677ab085c54cbd0511a15d212b85776c43190bb82ca9a51000a83dbfecd257fbed6a347a31bd585407b32fddb2941c7c92bc06f8ebec7d1ac32f169933d
7
+ data.tar.gz: f158c34ec94e52d29b66caf5e6914f2c94db14d6e0523b791b1c0a739c4c53fcbb60d8f649f9b8c1d1a5d7c1b706546c3bab7ca7947613df64067cf108cd42d6
@@ -1,14 +1,14 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3.1
4
+ - 2.3.3
5
5
  - 2.2
6
- - 2.4.0-preview2
6
+ - 2.4.0-preview3
7
7
  matrix:
8
8
  allow_failures:
9
- - rvm: 2.4.0-preview2
9
+ - rvm: 2.4.0-preview3
10
10
 
11
- before_install: gem install bundler -v 1.13.1
11
+ before_install: gem install bundler -v 1.13.6
12
12
  script: bundle exec rake spec SPEC_OPTS="--format p"
13
13
  addons:
14
14
  code_climate:
data/Cargo.toml CHANGED
@@ -1,13 +1,13 @@
1
1
  [package]
2
2
  name = "rusty_sanscript"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  authors = ["Tim Bellefleur <nomoon@phoebus.ca>"]
5
5
  publish = false
6
6
 
7
7
  [dependencies]
8
- lazy_static = "^0.2.1"
9
- ruby-sys = "^0.2.13"
10
- regex = "^0.1.77"
8
+ lazy_static = "^0.2.2"
9
+ ruby-sys = "^0.2.17"
10
+ regex = "^0.1.80"
11
11
 
12
12
  [lib]
13
13
  crate-type = ["cdylib"]
@@ -10,11 +10,9 @@ require "sanscript/benchmark"
10
10
 
11
11
  # Sanscript.rb detection/transliteration module for Sanskrit.
12
12
  module Sanscript
13
- # Whether Rust extension is available.
14
- RUST_AVAILABLE = load_rust!
15
-
16
13
  # Load rust if available.
17
- rust_enable!
14
+ RUST_AVAILABLE = rust_load!
15
+ rust_enable! if RUST_AVAILABLE
18
16
 
19
17
  module_function
20
18
 
@@ -4,14 +4,14 @@ module Sanscript
4
4
 
5
5
  # Attempts to load Rust native extension.
6
6
  # @return [bool] whether the extension loaded.
7
- def load_rust!
7
+ def rust_load!
8
8
  return RUST_AVAILABLE if defined?(RUST_AVAILABLE)
9
9
  require "thermite/fiddle"
10
10
  Thermite::Fiddle.load_module("init_rusty_sanscript",
11
11
  cargo_project_path: GEM_ROOT,
12
12
  ruby_project_path: GEM_ROOT)
13
13
  #:nocov:#
14
- defined?(Sanscript::Detect::Rust) ? true : false
14
+ defined?(Sanscript::Rust) ? true : false
15
15
  rescue Fiddle::DLError
16
16
  false
17
17
  #:nocov:#
@@ -19,34 +19,26 @@ module Sanscript
19
19
 
20
20
  # @return [bool] the enabled status of the Rust extension
21
21
  def rust_enabled?
22
- @rust_enabled
22
+ @rust_enabled ||= false
23
23
  end
24
24
 
25
25
  # Turns on Rust extension, if available.
26
26
  # @return [bool] the enabled status of the Rust extension
27
27
  def rust_enable!
28
- if RUST_AVAILABLE
29
- # :nocov:
30
- Detect.module_eval do
31
- class << self
32
- alias_method :detect_scheme, :rust_detect_scheme
33
- end
34
- end
35
- @rust_enabled = true
36
- else
37
- @rust_enabled = false
38
- # :nocov:
28
+ return false unless RUST_AVAILABLE
29
+ # :nocov:
30
+ Detect.singleton_class.class_eval do
31
+ alias_method :detect_scheme, :rust_detect_scheme
39
32
  end
40
- @rust_enabled
33
+ @rust_enabled = true
34
+ # :nocov:
41
35
  end
42
36
 
43
37
  # Turns off Rust native extension.
44
38
  # @return [bool] the enabled status of the Rust extension
45
39
  def rust_disable!
46
- Detect.module_eval do
47
- class << self
48
- alias_method :detect_scheme, :ruby_detect_scheme
49
- end
40
+ Detect.singleton_class.class_eval do
41
+ alias_method :detect_scheme, :ruby_detect_scheme
50
42
  end
51
43
  @rust_enabled = false
52
44
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  module Sanscript
3
3
  # The version number
4
- VERSION = "0.7.2"
4
+ VERSION = "0.8.0"
5
5
 
6
6
  GEM_ROOT = Pathname.new(File.realpath(File.join(__dir__, "..", "..")))
7
7
  private_constant :GEM_ROOT
@@ -36,8 +36,9 @@ fn rbstr_detect_scheme(_rself: Value, s: Value) -> Value {
36
36
  pub extern fn init_rusty_sanscript() {
37
37
  let m_sanscript = rb::define_module("Sanscript");
38
38
  let m_detect = rb::define_module_under(&m_sanscript, "Detect");
39
- let m_rust = rb::define_module_under(&m_detect, "Rust");
40
- rb::define_method(&m_rust, "rust_detect_scheme",
39
+ let m_rust = rb::define_module_under(&m_sanscript, "Rust");
40
+ let m_rust_detect = rb::define_module_under(&m_rust, "Detect");
41
+ rb::define_method(&m_rust_detect, "rust_detect_scheme",
41
42
  rbstr_detect_scheme as CallbackPtr, 1);
42
- rb::extend_object(&m_detect, &m_rust);
43
+ rb::extend_object(&m_detect, &m_rust_detect);
43
44
  }
data/src/rb.rs CHANGED
@@ -1,7 +1,6 @@
1
1
  use std::ffi::{CStr, CString};
2
2
 
3
3
  use ruby_sys::{class, string, symbol, util};
4
- use ruby_sys::types::c_char;
5
4
  use ruby_sys::value::RubySpecialConsts::Nil;
6
5
 
7
6
  pub use ruby_sys::types::{CallbackPtr, Value};
@@ -11,12 +10,10 @@ pub const RB_NIL: Value = Value { value: Nil as usize };
11
10
  // Helper functions for dealing with Ruby and CStrings
12
11
  //
13
12
 
14
- #[inline(always)]
15
- fn str_to_cstrp(s: &str) -> *const c_char {
16
- CString::new(s).unwrap().as_ptr()
13
+ fn str_to_cstr(s: &str) -> CString {
14
+ CString::new(s).unwrap()
17
15
  }
18
16
 
19
- #[inline]
20
17
  pub fn rbstr_to_str<'a>(s: *const Value) -> &'a str {
21
18
  unsafe {
22
19
  let c_strp = string::rb_string_value_cstr(s);
@@ -25,26 +22,26 @@ pub fn rbstr_to_str<'a>(s: *const Value) -> &'a str {
25
22
  }
26
23
 
27
24
  pub fn str_to_sym(s: &str) -> Value {
28
- let c_strp = str_to_cstrp(s);
25
+ let c_str = str_to_cstr(s);
29
26
  unsafe {
30
- let id = util::rb_intern(c_strp);
27
+ let id = util::rb_intern(c_str.as_ptr());
31
28
  symbol::rb_id2sym(id)
32
29
  }
33
30
  }
34
31
 
35
32
  pub fn define_module(name: &str) -> Value {
36
- let c_strp = str_to_cstrp(name);
37
- unsafe { class::rb_define_module(c_strp) }
33
+ let c_str = str_to_cstr(name);
34
+ unsafe { class::rb_define_module(c_str.as_ptr()) }
38
35
  }
39
36
 
40
37
  pub fn define_module_under(parent: &Value, name: &str) -> Value {
41
- let c_strp = str_to_cstrp(name);
42
- unsafe { class::rb_define_module_under(*parent, c_strp) }
38
+ let c_str = str_to_cstr(name);
39
+ unsafe { class::rb_define_module_under(*parent, c_str.as_ptr()) }
43
40
  }
44
41
 
45
42
  pub fn define_method(module: &Value, name: &str, method: CallbackPtr, argc: i32) {
46
- let c_strp = str_to_cstrp(name);
47
- unsafe { class::rb_define_method(*module, c_strp, method, argc) }
43
+ let c_str = str_to_cstr(name);
44
+ unsafe { class::rb_define_method(*module, c_str.as_ptr(), method, argc) }
48
45
  }
49
46
 
50
47
  pub fn extend_object(object: &Value, module: &Value) {
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.7.2
4
+ version: 0.8.0
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-11-22 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: bundler
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  version: '0'
222
222
  requirements: []
223
223
  rubyforge_project:
224
- rubygems_version: 2.5.2
224
+ rubygems_version: 2.6.8
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: Ruby port and extension of Sanscript.js transliterator by learnsanskrit.org