troml 0.1.1 → 0.1.4

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
  SHA256:
3
- metadata.gz: d1f2adf93c16c670f5fcebaedb85545bb91c311a694e092e1cf441f04bad9146
4
- data.tar.gz: 33b3dc1ae47741b44b704d4cf45cea63be60b3dac233edb1bc624506bdc64da8
3
+ metadata.gz: d8b32eb82d7b2bb7b0d366e435405248d3a1454e611ea3c4c00c8cb1c3532733
4
+ data.tar.gz: 22fe8c85fe18a4024cf64449eca7b25695e23cf816a38941bdef953d3541b6ad
5
5
  SHA512:
6
- metadata.gz: 6737735656d48deb8967c04108b7d7f049f9b38f885abdf2a258b998943431e3e06c8726a2366005ff248cecd1e8cfd198c14f532ab3790fb6ad67c7a6ff1c1d
7
- data.tar.gz: f7d54cd4b2b09187a6437813645a1a20746a893b5c7e72f910b050554388409857ada0490afccf4482a4e258c491348be284f07f7087b5748a3183c4702554d6
6
+ metadata.gz: 5385238a65243317cbf0b41be926281d04504714433c663ffadfcfa752a0c489db46543b5933c5f436411708cb723ab6ebaf1b889a05e1db5461c25113ac9201
7
+ data.tar.gz: dfac733d4b8c3cd5609317e5f0a5f0d7f46edad769ac0a01345827b77238c346d6eaa6fdedab7bbb1c2f14a28c79eb001a84fb1396e729ef8719fd8e51400d33
data/Cargo.lock ADDED
@@ -0,0 +1,48 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 3
4
+
5
+ [[package]]
6
+ name = "lazy_static"
7
+ version = "1.4.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
10
+
11
+ [[package]]
12
+ name = "libc"
13
+ version = "0.2.126"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
16
+
17
+ [[package]]
18
+ name = "rutie"
19
+ version = "0.8.4"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "5d97db4cbb9739b48364c38cc9a6ebabdc07b42bd87b60ab448e1f29eaebb2ac"
22
+ dependencies = [
23
+ "lazy_static",
24
+ "libc",
25
+ ]
26
+
27
+ [[package]]
28
+ name = "serde"
29
+ version = "1.0.137"
30
+ source = "registry+https://github.com/rust-lang/crates.io-index"
31
+ checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
32
+
33
+ [[package]]
34
+ name = "toml"
35
+ version = "0.5.9"
36
+ source = "registry+https://github.com/rust-lang/crates.io-index"
37
+ checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
38
+ dependencies = [
39
+ "serde",
40
+ ]
41
+
42
+ [[package]]
43
+ name = "troml"
44
+ version = "0.1.0"
45
+ dependencies = [
46
+ "rutie",
47
+ "toml",
48
+ ]
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- troml (0.1.0)
4
+ troml (0.1.3)
5
5
  rutie (~> 0.0.4)
6
6
 
7
7
  GEM
data/Rakefile CHANGED
@@ -11,4 +11,10 @@ end
11
11
 
12
12
  require "standard/rake"
13
13
 
14
+ task :cargo_build do
15
+ system("cargo build --release")
16
+ end
17
+
18
+ task test: :cargo_build
19
+
14
20
  task default: %i[test standard]
data/lib/troml/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Troml
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.4"
5
5
  end
data/lib/troml.rb CHANGED
@@ -17,7 +17,24 @@ module Troml
17
17
  class ExtParseError < Error; end
18
18
 
19
19
  # Initialize external library
20
- Rutie.new(:troml).init "Init_troml", __dir__
20
+ #
21
+ # This is a hack to work around the weirdness of developing
22
+ # a Rust extension while relying on Rubygems' native Cargo builder.
23
+ # Rubygems builds copies the shared object into the gem's lib directory
24
+ # when gem install is run, so it's available for loading in.
25
+ #
26
+ # However, while developing the gem, we want to be able to run the gem from its
27
+ # source context, so we rely on Rutie's convention of loading the shared object
28
+ # built by Cargo.
29
+ if File.exist?("troml.so")
30
+ # We are running in "installed" mode.
31
+ # Load the shared object built by rubygems.
32
+ require "troml.so"
33
+ else
34
+ # Otherwise we are running in "dev" mode.
35
+ # Load the target/release object via Rutie.
36
+ Rutie.new(:troml).init "Init_troml", __dir__
37
+ end
21
38
 
22
39
  # Returns a hash representation of the TOML string passed.
23
40
  # Raises on parse failure.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: troml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pawan Dubey
@@ -55,8 +55,7 @@ dependencies:
55
55
  description: Blazing fast TOML parser, with the power of Rust.
56
56
  email:
57
57
  - git@pawandubey.com
58
- executables:
59
- - troml
58
+ executables: []
60
59
  extensions:
61
60
  - Cargo.toml
62
61
  extra_rdoc_files: []
@@ -66,13 +65,13 @@ files:
66
65
  - ".standard.yml"
67
66
  - CHANGELOG.md
68
67
  - CODE_OF_CONDUCT.md
68
+ - Cargo.lock
69
69
  - Cargo.toml
70
70
  - Gemfile
71
71
  - Gemfile.lock
72
72
  - LICENSE.txt
73
73
  - README.md
74
74
  - Rakefile
75
- - exe/troml
76
75
  - lib/troml.rb
77
76
  - lib/troml/version.rb
78
77
  - sig/troml.rbs
data/exe/troml DELETED
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require "bundler/setup"
5
- require "troml"
6
- require "json"
7
-
8
- def tag(val)
9
- case val
10
- when String
11
- {type: "string", value: val}
12
- when Integer
13
- {type: "integer", value: val}
14
- when Float
15
- {type: "float", value: val}
16
- when TrueClass, FalseClass
17
- {type: "bool", value: val}
18
- when Array
19
- val.map { |e| tag(e) }
20
- when Hash
21
- val.transform_values { |v| tag(v) }
22
- end
23
- end
24
-
25
- raw_toml = ARGF.read
26
-
27
- parsed_toml = Troml.parse(raw_toml)
28
-
29
- tagged_hash = tag(parsed_toml)
30
-
31
- puts tagged_hash.to_json