tzf 0.1.0 → 0.2.1
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 +4 -4
- data/CHANGELOG.md +4 -0
- data/Cargo.lock +164 -0
- data/Cargo.toml +6 -12
- data/Gemfile +2 -0
- data/Gemfile.lock +6 -3
- data/README.md +5 -1
- data/Rakefile +7 -10
- data/ext/tzf/Cargo.lock +1207 -0
- data/ext/tzf/Cargo.toml +15 -0
- data/ext/tzf/extconf.rb +6 -0
- data/ext/tzf/src/lib.rs +25 -0
- data/lib/tzf/version.rb +1 -1
- data/lib/tzf.rb +6 -6
- data/sig/{tzf_rs_rb.rbs → tzf.rbs} +3 -1
- data/tzf.gemspec +2 -5
- metadata +11 -22
- data/lib/tzf/ffi_ext.rb +0 -15
- data/lib/tzf/libtzf.so +0 -0
data/ext/tzf/Cargo.toml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
[package]
|
2
|
+
name = "tzf"
|
3
|
+
version = "0.1.0"
|
4
|
+
edition = "2021"
|
5
|
+
authors = ["Kevin McCormack <kevin@mccormack.tech>"]
|
6
|
+
license = "MIT"
|
7
|
+
publish = false
|
8
|
+
|
9
|
+
[lib]
|
10
|
+
crate-type = ["cdylib"]
|
11
|
+
|
12
|
+
[dependencies]
|
13
|
+
lazy_static = "1.4.0"
|
14
|
+
magnus = { version = "0.4" }
|
15
|
+
tzf-rs = "0.3.0"
|
data/ext/tzf/extconf.rb
ADDED
data/ext/tzf/src/lib.rs
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
use lazy_static::lazy_static;
|
2
|
+
use magnus::{define_module, function, prelude::*, Error};
|
3
|
+
use magnus::{RString};
|
4
|
+
|
5
|
+
use tzf_rs::DefaultFinder;
|
6
|
+
|
7
|
+
lazy_static! {
|
8
|
+
static ref FINDER: DefaultFinder = DefaultFinder::new();
|
9
|
+
}
|
10
|
+
|
11
|
+
#[no_mangle]
|
12
|
+
fn get_tz_name(lat: f64, lng: f64) -> RString {
|
13
|
+
let tz_name = RString::new(FINDER.get_tz_name(lng, lat));
|
14
|
+
|
15
|
+
return tz_name;
|
16
|
+
}
|
17
|
+
|
18
|
+
#[magnus::init]
|
19
|
+
fn init() -> Result<(), Error> {
|
20
|
+
let module = define_module("TZF")?;
|
21
|
+
|
22
|
+
module.define_singleton_method("tz_name", function!(get_tz_name, 2))?;
|
23
|
+
|
24
|
+
Ok(())
|
25
|
+
}
|
data/lib/tzf/version.rb
CHANGED
data/lib/tzf.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "tzf/version"
|
4
|
-
require_relative "tzf/
|
4
|
+
require_relative "tzf/tzf"
|
5
5
|
|
6
6
|
##
|
7
|
-
# Top level.
|
7
|
+
# Top level module.
|
8
|
+
#
|
9
|
+
# Methods defined in ext/tzf/src/lib.rs
|
10
|
+
#
|
11
|
+
# Ex TZF.tz_name(latitude, longitude) => String
|
8
12
|
#
|
9
13
|
module TZF
|
10
14
|
class Error < StandardError; end
|
11
|
-
|
12
|
-
def self.tz_name(lat, lng)
|
13
|
-
RS.get_tz_name(lat, lng)
|
14
|
-
end
|
15
15
|
end
|
data/tzf.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.homepage = "https://github.com/HarlemSquirrel/tzf-rb"
|
14
14
|
spec.license = "MIT"
|
15
15
|
spec.required_ruby_version = ">= 3.0.0"
|
16
|
+
spec.required_rubygems_version = ">= 3.3.11"
|
16
17
|
|
17
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
19
|
spec.metadata["source_code_uri"] = "https://github.com/HarlemSquirrel/tzf-rb"
|
@@ -28,11 +29,7 @@ Gem::Specification.new do |spec|
|
|
28
29
|
spec.bindir = "exe"
|
29
30
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
31
|
spec.require_paths = ["lib"]
|
32
|
+
spec.extensions = ["ext/tzf/extconf.rb"]
|
31
33
|
|
32
|
-
# Uncomment to register a new dependency of your gem
|
33
|
-
spec.add_dependency "ffi", "~> 1.0"
|
34
|
-
|
35
|
-
# For more information and examples about making a new gem, check out our
|
36
|
-
# guide at: https://bundler.io/guides/creating_gem.html
|
37
34
|
spec.metadata["rubygems_mfa_required"] = "true"
|
38
35
|
end
|
metadata
CHANGED
@@ -1,34 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tzf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin McCormack
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: ffi
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.0'
|
11
|
+
date: 2023-02-22 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
27
13
|
description: Ruby time zone lookup interface using tzf-rs.
|
28
14
|
email:
|
29
15
|
- kevin@mccormack.tech
|
30
16
|
executables: []
|
31
|
-
extensions:
|
17
|
+
extensions:
|
18
|
+
- ext/tzf/extconf.rb
|
32
19
|
extra_rdoc_files: []
|
33
20
|
files:
|
34
21
|
- ".rspec"
|
@@ -42,11 +29,13 @@ files:
|
|
42
29
|
- LICENSE.txt
|
43
30
|
- README.md
|
44
31
|
- Rakefile
|
32
|
+
- ext/tzf/Cargo.lock
|
33
|
+
- ext/tzf/Cargo.toml
|
34
|
+
- ext/tzf/extconf.rb
|
35
|
+
- ext/tzf/src/lib.rs
|
45
36
|
- lib/tzf.rb
|
46
|
-
- lib/tzf/ffi_ext.rb
|
47
|
-
- lib/tzf/libtzf.so
|
48
37
|
- lib/tzf/version.rb
|
49
|
-
- sig/
|
38
|
+
- sig/tzf.rbs
|
50
39
|
- src/lib.rs
|
51
40
|
- tzf.gemspec
|
52
41
|
homepage: https://github.com/HarlemSquirrel/tzf-rb
|
@@ -70,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
59
|
requirements:
|
71
60
|
- - ">="
|
72
61
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
62
|
+
version: 3.3.11
|
74
63
|
requirements: []
|
75
64
|
rubygems_version: 3.3.26
|
76
65
|
signing_key:
|
data/lib/tzf/ffi_ext.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "ffi"
|
4
|
-
|
5
|
-
module TZF
|
6
|
-
##
|
7
|
-
# Interface to tsf-rs Rust library.
|
8
|
-
#
|
9
|
-
module RS
|
10
|
-
extend FFI::Library
|
11
|
-
|
12
|
-
ffi_lib File.expand_path("libtzf.so", __dir__)
|
13
|
-
attach_function :get_tz_name, %i[double double], :string
|
14
|
-
end
|
15
|
-
end
|
data/lib/tzf/libtzf.so
DELETED
Binary file
|