golden 0.5.1 → 0.5.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crucible.rb +20 -5
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb7d6213bb1ec1308135221959c65ebe9e60d3451867ad900b7b59772ce30108
4
- data.tar.gz: 826478ec45eff91699476be02d45b1319683c227faa60aa39c8a0ca68ecfc1f2
3
+ metadata.gz: 524640835b961a32010fba91423217a5ac41ee583957d4d4f68c168ac26cdcd9
4
+ data.tar.gz: 0cb6f6ea7ea45587cd894b8e5c2434112516a882854b20e8b72bd90fd0391db6
5
5
  SHA512:
6
- metadata.gz: b158e3292725f4bd05f8e55691aebff8110966e4b7806954d012caeae8a0366fd5a12c2ea8b9faefbf892c1047e59d5195bee7f41dc244606743976074157153
7
- data.tar.gz: 5568c2e5e7c084e2e996bf3a2c70780fff6e4cd72278174dd5106217f89631f98db185d5a7d55fdf64d50583a444a2b6af32bc3bcf2aa5b540c2312c60fcb0c7
6
+ metadata.gz: bdcbb51f3b6609fb3b4709e4970c276c7137f165acbfa49fd32704aef2d5d51e9fbccd53888929c7c3bedbfaa57fe5e50736fe18179ba2ce6d6483849f9490ce
7
+ data.tar.gz: 96b1bc46cc582c4f2d008ca7f46eb65838daf31f86e8f6c99399a9da575faad0228bd8a913000909e6806f2f95fcdd779ed3b163ca3344ddb8e14a1d783990d6
data/lib/crucible.rb CHANGED
@@ -67,17 +67,32 @@ module Golden
67
67
  golden_data[libName] = {}
68
68
  exports.each do |e|
69
69
  function_name = e.chomp.lstrip
70
- declaration_regex = Regexp.new("func #{function_name}\s?\((?<args>.*)\) (?<returns>.*) {")
70
+ declaration_regex = Regexp.new('\s*'+"func #{function_name}\s?\((?<args>.*)\) (?<returns>.*) {")
71
71
  export_data = {}
72
72
  export_data[:args] = {}
73
- args = source_code.scan(declaration_regex).flatten[0]
73
+ declaration = source_code.scan(declaration_regex).flatten
74
+ args = declaration[0]
74
75
  args = args[1,args.length-2]
75
76
  args = args.split(',')
76
- args.each do |arg|
77
+
78
+ args.each_with_index do |arg, i|
77
79
  name, type = arg.split(" ")
78
- export_data[:args][name] = type
80
+ if(!!type && type != "")
81
+ export_data[:args][name] = type
82
+ else
83
+ type = nil
84
+ next_args = args.slice(i+1, args.length)
85
+ next_args.each do |next_arg|
86
+ potential_type = next_arg.split(" ")[1]
87
+ if(!!potential_type && !type && potential_type != "")
88
+ type = potential_type
89
+ end
90
+ end
91
+ export_data[:args][name] = type
92
+ end
79
93
  end
80
- export_data[:returns] = source_code.scan(declaration_regex).flatten[1]
94
+
95
+ export_data[:returns] = declaration[1]
81
96
  # require "pry"
82
97
  # binding.pry
83
98
  golden_data[libName][function_name] = export_data
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: golden
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Mikeska
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  requirements: []
113
- rubygems_version: 3.0.3
113
+ rubygems_version: 3.2.3
114
114
  signing_key:
115
115
  specification_version: 4
116
116
  summary: Golden is a development tool that makes it easier to wrap Go libraries for