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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f85acd89a6e4a4252e03bb83e728ae3f873a768
4
- data.tar.gz: d122ae0401ae18a938dc0cf781b43c7bc5bae8b4
3
+ metadata.gz: 8821c4b363efce111fc99f893f9366e0507d04f5
4
+ data.tar.gz: 330ffd48fa0d3d3a4a3b5a0b87947a790e96e474
5
5
  SHA512:
6
- metadata.gz: b5f5261fe4e70c12b355f6edf0f1f6c0656ca3c59f610eb2e0ebf8eb6f8e0cb9d650a5617c0afa48f06ae99f1220c8fdfab1df8f09986fdbb9553b2083025635
7
- data.tar.gz: 83b7e419f374de6ede646d7c76abe200eef835956c11992559904dc52dcc205fb390c207499ba42808348ed2e9859e60da1123f3ce94e644665d519cd81f1d11
6
+ metadata.gz: c509d1b0b820fdd883384bf89e2eb9fac2b1d3009bbf32d16bb5390ac4e252949e005d8bf4b66e5122a9078c5b5172ffecbb85d8c6551f15e6d690eb13a9bfde
7
+ data.tar.gz: ecdff49f0d33d2891631b426d4bbec387199653f7ce7a1ba7b0136a9908e09e1e8f45596caf7eaa7c54b59bd70e33011c6ad00179ee34f569c1f757e5fdcf442
@@ -34,7 +34,7 @@ module Malachite
34
34
  end
35
35
 
36
36
  def source_files
37
- Dir["#{Rails.root.join('app', 'go')}/*.go"].reject { |f| f['test'] }
37
+ Dir["#{Rails.root.join('app', 'go')}/**/*.go"].reject { |f| f['test'] }
38
38
  end
39
39
 
40
40
  def main_boilerplate
@@ -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.puts 'package main'
10
- file.puts '// #include <stdlib.h>'
11
- file.puts "import \"C\""
12
- file.puts "import \"unsafe\""
13
- file.puts source_file(@file)
14
- file.puts exporter_boilerplate(@file)
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)
@@ -1,3 +1,3 @@
1
1
  module Malachite
2
- VERSION = '0.0.17'
2
+ VERSION = '0.0.18'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: malachite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zack Hubert