serde 0.0.7 → 0.0.8

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
  SHA256:
3
- metadata.gz: ef630a330c26e9c27d399fdb3a8b29d0fac648faddc8cd91e60021331f61f11c
4
- data.tar.gz: e8c5cbec885a6328a62bb5f146e12a80b79292c888ca231b58c0f7b67269d06b
3
+ metadata.gz: 8c38f55a677eb7150048034063e1a1a2617fa2b0fe3386fd08c3ddf6c22790ab
4
+ data.tar.gz: 5302cb5830f3ec3cbdba65d48b5dc1e88cd7f7a346299609f45719ce64cc4569
5
5
  SHA512:
6
- metadata.gz: b0fdc7bddcb9c1a2685e43ca0ed073ee9364b3adf03a6dddfd2152a44d822ad4548c8a611857f66a187e7ed6c18902624e352954f1b8d6b4a953c5300e36dfb0
7
- data.tar.gz: 593d5868ff447e0cc990adca0ff2e8178fae72b3fd9c028020217aea88fa5494c8eb4e79328ab8dad8defaac31aadf87fe5b6d812931ba9f82a49739c3cdc194
6
+ metadata.gz: afd1d28e37b256579d1df046bd05e4b895d326870ab4975e30656dd9b2548d4df08a4b9d6c6cc8c76de2c9523ee1626d540c6d6ae271073269d5179fae5c21cd
7
+ data.tar.gz: 17a79bbd39641e7cad2a43b423104be711e4c7b55d4f64c80f05b33128b2761ceee840a97381d1e1feba64adb4de8c70381bec157635ed66de415aae8ae2ace2
data/.gitignore CHANGED
@@ -1,5 +1,3 @@
1
- /.rustc
2
- /bin/*
3
1
  /tmp
4
2
  /serde-*.gem
5
3
  .ruby-version
data/lib/serde.rb CHANGED
@@ -34,14 +34,9 @@ module Serde
34
34
  Dir.chdir(dir) do
35
35
  SerializerGenerator.call(dir, self)
36
36
 
37
- root_path = File.expand_path('..', __dir__)
38
37
  rust_path = File.expand_path('../rust', __dir__)
39
- bin_path = File.expand_path('../bin', __dir__)
40
38
 
41
- # rubocop:disable Metrics/LineLength
42
- # `cd #{rust_path}; #{bin_path}/rustc --edition=2018 --crate-name serde_rb src/lib.rs --crate-type staticlib --crate-type cdylib --emit=dep-info,link -C opt-level=3 -C metadata=aff563bf4af79579 --out-dir #{rust_path}/target/release -L dependency=#{rust_path}/target/release/deps --extern serde=#{rust_path}/target/release/deps/libserde-6a9e4ab445963d7f.rlib --extern serde_derive=#{rust_path}/target/release/deps/libserde_derive-20596753c2ed9015.dylib --extern serde_json=#{rust_path}/target/release/deps/libserde_json-489658cb61f64325.rlib -L #{root_path}/.rustc/rust-std-beta-x86_64-apple-darwin/rust-std-x86_64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib`
43
- `cd #{rust_path}; #{bin_path}/cargo build --release`
44
- # rubocop:enable Metrics/LineLength
39
+ `cd #{rust_path}; cargo +beta build --release`
45
40
  `cp #{rust_path}/target/release/libserde_rb*.a #{dir}/serde_rb/libserde_rb.a`
46
41
  `cd #{dir}/serde_rb; ruby extconf.rb; make clean; make`
47
42
 
data/serde.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.required_ruby_version = '>= 2.5.3'
8
8
 
9
9
  spec.name = 'serde'
10
- spec.version = '0.0.7'
10
+ spec.version = '0.0.8'
11
11
  spec.authors = ['Alexander Komarov']
12
12
  spec.email = %w[ak@akxcv.com]
13
13
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serde
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Komarov
@@ -109,8 +109,6 @@ files:
109
109
  - Rakefile
110
110
  - bench/bench.rb
111
111
  - examples/app/new.rb
112
- - lib/rubygems_plugin.rb
113
- - lib/rustc_installer.rb
114
112
  - lib/serde.rb
115
113
  - lib/serde/generate.rb
116
114
  - lib/serde/serializer_generator.rb
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- Gem.post_install do
4
- puts 'installing rustc'
5
- require_relative 'rustc_installer.rb'
6
- end
@@ -1,102 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # TODO: test on different systems and architectures
4
-
5
- require 'tmpdir'
6
- require 'net/http'
7
- require 'fileutils'
8
- require 'rubygems/package'
9
- require 'zlib'
10
-
11
- # https://github.com/rust-lang/rustup.rs/blob/243e3d5889a58116fb7eb910e8508b9d0d0a0b04/rustup-init.sh#L172
12
- # not considering android and mips for now
13
- ostype = `uname -s`.chomp
14
- cputype = `uname -m`.chomp
15
-
16
- if ostype == 'Darwin' && cputype == 'i386' && !`sysctl hw.optional.x86_64 | grep -q ': 1'`.nil?
17
- cputype = 'x86_64'
18
- end
19
-
20
- ostype =
21
- case ostype
22
- when 'Linux' then 'unknown-linux-gnu'
23
- when 'FreeBSD' then 'unknown-freebsd'
24
- when 'NetBSD' then 'unknown-netbsd'
25
- when 'DragonFly' then 'unknown-dragonfly'
26
- when 'Darwin' then 'apple-darwin'
27
- when /MINGW/, /MSYS/, /CYGWIN/ then 'pc-windows-gnu'
28
- else raise "unrecognized OS type: #{ostype}"
29
- end
30
-
31
- cputype =
32
- case cputype
33
- when 'i386', 'i486', 'i686', 'i786', 'x86' then 'i686'
34
- when 'xscale', 'arm' then 'arm'
35
- when 'armv6l' then 'armeabihf'
36
- when 'armv7l', 'armv8l' then 'armv7eabihf'
37
- when 'aarch64' then 'aarch64'
38
- when 'x86_64', 'x86-64', 'x64', 'amd64' then 'x86_64'
39
- when 'ppc' then 'powerpc'
40
- when 'ppc64' then 'powerpc64'
41
- when 'ppc64le' then 'powerpc64le'
42
- else raise "unknown CPU type: #{cputype}"
43
- end
44
-
45
- rustc_name = "rustc-beta-#{cputype}-#{ostype}"
46
- ruststd_name = "rust-std-beta-#{cputype}-#{ostype}"
47
- cargo_name = "cargo-beta-#{cputype}-#{ostype}"
48
-
49
- TAR_LONGLINK = '././@LongLink'
50
- DESTINATION = File.expand_path('../.rustc', __dir__)
51
-
52
- def download_and_extract(name) # rubocop:disable Metrics/MethodLength
53
- File.write(
54
- "#{name}.tar.gz",
55
- Net::HTTP.get(URI("https://static.rust-lang.org/dist/2018-11-27/#{name}.tar.gz")),
56
- )
57
-
58
- # https://stackoverflow.com/a/19139114
59
- Gem::Package::TarReader.new(Zlib::GzipReader.open("#{name}.tar.gz")) do |tar|
60
- dest = nil
61
- tar.each do |entry|
62
- if entry.full_name == TAR_LONGLINK
63
- dest = File.join DESTINATION, entry.read.strip
64
- next
65
- end
66
- dest ||= File.join DESTINATION, entry.full_name
67
- if entry.directory?
68
- File.delete dest if File.file? dest
69
- FileUtils.mkdir_p dest, mode: entry.header.mode, verbose: false
70
- elsif entry.file?
71
- FileUtils.rm_rf dest if File.directory? dest
72
- File.open dest, 'wb' do |f|
73
- f.print entry.read
74
- end
75
- FileUtils.chmod entry.header.mode, dest, verbose: false
76
- elsif entry.header.typeflag == '2' # Symlink!
77
- File.symlink entry.header.linkname, dest
78
- end
79
- dest = nil
80
- end
81
- end
82
- end
83
-
84
- Dir.mktmpdir do |dir|
85
- Dir.chdir(dir) do
86
- # manifest = Net::HTTP.get(URI('https://static.rust-lang.org/dist/channel-rust-beta.toml'))
87
- # puts manifest
88
- FileUtils.mkdir_p(File.expand_path('../bin', __dir__))
89
-
90
- FileUtils.rm(File.expand_path('../bin/cargo', __dir__)) rescue nil
91
-
92
- download_and_extract(rustc_name)
93
- download_and_extract(ruststd_name)
94
- download_and_extract(cargo_name)
95
-
96
- # TODO: windows?
97
- FileUtils.ln_s(
98
- "#{DESTINATION}/#{cargo_name}/cargo/bin/cargo",
99
- File.expand_path('../bin/cargo', __dir__),
100
- )
101
- end
102
- end