malachite 0.0.17 → 0.0.18
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/lib/malachite/compiler.rb +1 -1
- data/lib/malachite/file_compiler.rb +17 -7
- data/lib/malachite/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8821c4b363efce111fc99f893f9366e0507d04f5
|
4
|
+
data.tar.gz: 330ffd48fa0d3d3a4a3b5a0b87947a790e96e474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c509d1b0b820fdd883384bf89e2eb9fac2b1d3009bbf32d16bb5390ac4e252949e005d8bf4b66e5122a9078c5b5172ffecbb85d8c6551f15e6d690eb13a9bfde
|
7
|
+
data.tar.gz: ecdff49f0d33d2891631b426d4bbec387199653f7ce7a1ba7b0136a9908e09e1e8f45596caf7eaa7c54b59bd70e33011c6ad00179ee34f569c1f757e5fdcf442
|
data/lib/malachite/compiler.rb
CHANGED
@@ -6,12 +6,16 @@ module Malachite
|
|
6
6
|
|
7
7
|
def compile
|
8
8
|
File.open(path_to_tmp_file(@file), 'w') do |file|
|
9
|
-
file
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
if file_has_handle_function?(@file)
|
10
|
+
file.puts 'package main'
|
11
|
+
file.puts '// #include <stdlib.h>'
|
12
|
+
file.puts "import \"C\""
|
13
|
+
file.puts "import \"unsafe\""
|
14
|
+
file.puts source_file(@file)
|
15
|
+
file.puts exporter_boilerplate(@file)
|
16
|
+
else
|
17
|
+
file.puts File.read(@file)
|
18
|
+
end
|
15
19
|
file.close
|
16
20
|
end
|
17
21
|
end
|
@@ -26,7 +30,13 @@ module Malachite
|
|
26
30
|
def exporter_boilerplate(file)
|
27
31
|
exporter = File.read(File.expand_path('../exporter.go.tmpl', __FILE__))
|
28
32
|
method_name, method_type = extract_method_and_type(file)
|
29
|
-
exporter.gsub(/YYYYYY/, "#{method_type}{}").gsub(/XXXXXX/, method_name)
|
33
|
+
return exporter.gsub(/YYYYYY/, "#{method_type}{}").gsub(/XXXXXX/, method_name)
|
34
|
+
end
|
35
|
+
|
36
|
+
def file_has_handle_function?(f)
|
37
|
+
source = File.read(f)
|
38
|
+
match = /^func Handle(.*?)\(\w+ (.*?)\)/.match(source)
|
39
|
+
match.present?
|
30
40
|
end
|
31
41
|
|
32
42
|
def extract_method_and_type(source_file_path)
|
data/lib/malachite/version.rb
CHANGED