rbind 0.0.24 → 0.0.25
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/rbind/clang/clang_types.rb +2 -2
- data/lib/rbind/clang_parser.rb +2 -2
- data/lib/rbind/core/rattribute.rb +5 -1
- data/lib/rbind/core/rtemplate_class.rb +1 -1
- data/lib/rbind/generator_ruby.rb +17 -9
- data/lib/rbind/templates/ruby/rtype.rb +1 -1
- data/manifest.xml +1 -1
- data/rbind.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4addd5752b3f3efd61a87886b0477bed933dd49d
|
4
|
+
data.tar.gz: 58846356a9abff6108216bc40e2cceec6b8c5ec0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cad2805845c9c1ba1d57a2889fe826b3f1d75f2179478a0934ef7de90316736f2b0b4a404627bf2b0b8951a5ee77448ff4e682e23973393ee11e646e2fd35b8
|
7
|
+
data.tar.gz: 06fc64492a8122fa55c1c430c17d7177e184e1572c9f63df10ace56421c2f82782133f1fe404baf4ec471b702efeaf6b12b904582ec19108269494520613455f
|
@@ -41,7 +41,7 @@ module Clang
|
|
41
41
|
# class Clang is taking care of this
|
42
42
|
def self.release(pointer)
|
43
43
|
Rbind::dispose_translation_unit(pointer) unless pointer.null?
|
44
|
-
rescue
|
44
|
+
rescue => e
|
45
45
|
puts e
|
46
46
|
end
|
47
47
|
end
|
@@ -268,7 +268,7 @@ module Clang
|
|
268
268
|
def self.finalize(id)
|
269
269
|
Rbind::dispose_string(@@pointer[id])
|
270
270
|
@@pointer.delete(id)
|
271
|
-
rescue
|
271
|
+
rescue => e
|
272
272
|
puts e
|
273
273
|
end
|
274
274
|
|
data/lib/rbind/clang_parser.rb
CHANGED
@@ -32,7 +32,7 @@ module Rbind
|
|
32
32
|
pos_start = [location[2]-pos_width,0].max
|
33
33
|
con << " \t " + " "*pos_start + "."*pos_width
|
34
34
|
"#{super}\n\n#{"#"*5}\nParsed File: #{location.join(":")}\n#{con.join()}\n#{"#"*5}\n\n"
|
35
|
-
rescue
|
35
|
+
rescue => e
|
36
36
|
pp e
|
37
37
|
end
|
38
38
|
end
|
@@ -227,7 +227,7 @@ module Rbind
|
|
227
227
|
else
|
228
228
|
#puts "skip: #{cu.spelling}"
|
229
229
|
end
|
230
|
-
rescue
|
230
|
+
rescue => e
|
231
231
|
ClangParser.log.debug "Parsing failed -- skipping"
|
232
232
|
end
|
233
233
|
raise ClangParserError.new("jjj",cu) if last_obj.is_a? Fixnum
|
data/lib/rbind/generator_ruby.rb
CHANGED
@@ -14,7 +14,8 @@ module Rbind
|
|
14
14
|
attr_accessor :ffi_type_map
|
15
15
|
end
|
16
16
|
self.ruby_default_value_map ||= {"true" => "true","TRUE" => "true", "false" => "false","FALSE" => "false"}
|
17
|
-
self.ffi_type_map ||= {"char *" => "string","unsigned char" => "uchar" ,"const char *" => "string","uint8_t" => "uint8"
|
17
|
+
self.ffi_type_map ||= {"char *" => "string","unsigned char" => "uchar" ,"const char *" => "string","uint8_t" => "uint8",
|
18
|
+
"uint32_t" => "uint32","uint64_t" => "uint64","int8_t" => "int8","int32_t" => "int32","int64_t" => "int64" }
|
18
19
|
|
19
20
|
|
20
21
|
def self.keyword?(name)
|
@@ -62,7 +63,7 @@ module Rbind
|
|
62
63
|
if ruby_default_value_map.has_key?(parameter.default_value)
|
63
64
|
ruby_default_value_map[parameter.default_value]
|
64
65
|
elsif parameter.type.name == "float"
|
65
|
-
parameter.default_value.gsub("f","")
|
66
|
+
parameter.default_value.gsub("f","").gsub(/\.$/,".0").gsub(/^\./,"0.")
|
66
67
|
elsif parameter.type.name == "double"
|
67
68
|
parameter.default_value.gsub(/\.$/,".0").gsub(/^\./,"0.")
|
68
69
|
elsif parameter.type.ptr? &&(parameter.default_value == "0" || parameter.default_value = "NULL")
|
@@ -124,13 +125,13 @@ module Rbind
|
|
124
125
|
end
|
125
126
|
|
126
127
|
|
127
|
-
def self.normalize_type_name(name)
|
128
|
+
def self.normalize_type_name(name,template=false)
|
128
129
|
name.gsub!(" ","")
|
129
130
|
|
130
131
|
# map template classes
|
131
132
|
# std::vector<std::string> -> Std::Vector::Std_String
|
132
133
|
if name =~ /([\w:]*)<(.*)>$/
|
133
|
-
return "#{normalize_type_name($1)}::#{normalize_type_name($2).gsub("::","_")}"
|
134
|
+
return "#{normalize_type_name($1,true)}::#{normalize_type_name($2,true).gsub("::","_")}"
|
134
135
|
else
|
135
136
|
name
|
136
137
|
end
|
@@ -148,8 +149,10 @@ module Rbind
|
|
148
149
|
end
|
149
150
|
|
150
151
|
# map all uint ... to Fixnum
|
151
|
-
if
|
152
|
-
|
152
|
+
if !template
|
153
|
+
if name =~ /^u?int\d*$/ || name =~ /^u?int\d+_t$/
|
154
|
+
return "Fixnum"
|
155
|
+
end
|
153
156
|
end
|
154
157
|
|
155
158
|
name = name.gsub(/^_/,"")
|
@@ -563,6 +566,10 @@ module Rbind
|
|
563
566
|
@overload_wrapper = ERB.new(File.open(File.join(File.dirname(__FILE__),"templates","ruby","roverloaded_method_call.rb")).read,nil,"-")
|
564
567
|
end
|
565
568
|
|
569
|
+
def static?
|
570
|
+
@root.first.static?
|
571
|
+
end
|
572
|
+
|
566
573
|
def add_methods
|
567
574
|
str = @root.map do |method|
|
568
575
|
next if method.ignore?
|
@@ -704,7 +711,7 @@ module Rbind
|
|
704
711
|
else
|
705
712
|
ops["rbind_static_#{op.name}"] << op
|
706
713
|
end
|
707
|
-
rescue
|
714
|
+
rescue => e
|
708
715
|
HelperBase.log.warn "Operation '#{o}' not added. #{e}"
|
709
716
|
end
|
710
717
|
end
|
@@ -727,8 +734,9 @@ module Rbind
|
|
727
734
|
@overloaded_static_method_wrapper.result(helper.binding)
|
728
735
|
end
|
729
736
|
end
|
730
|
-
rescue
|
731
|
-
|
737
|
+
rescue => e
|
738
|
+
pp e
|
739
|
+
HelperBase.log.error "Operation '#{o}' could not be rendered. #{e}"
|
732
740
|
end
|
733
741
|
end
|
734
742
|
return str unless @compact_namespace
|
data/manifest.xml
CHANGED
data/rbind.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbind
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Duda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hooks
|
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
141
|
version: 1.3.6
|
142
142
|
requirements: []
|
143
143
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.0.
|
144
|
+
rubygems_version: 2.0.14
|
145
145
|
signing_key:
|
146
146
|
specification_version: 4
|
147
147
|
summary: Library for genereating automated ffi-bindings for c/c++ libraries
|