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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eba08b9155b23d4f0bbd4feffe778fc3ada80722
4
- data.tar.gz: 42bc3877dd9b3d0573afbda392229c548a683c02
3
+ metadata.gz: 4addd5752b3f3efd61a87886b0477bed933dd49d
4
+ data.tar.gz: 58846356a9abff6108216bc40e2cceec6b8c5ec0
5
5
  SHA512:
6
- metadata.gz: 8b4be23c15b9e23ea938117d4f5f96d17381efa49431cf9c51ec1431c47331883d39df3cc2300cc3310f903958fc1138b0800b35afeb94e7995c6a01d6cc4c04
7
- data.tar.gz: a43976da4bd469baf51adc8c6c9e51a8b5fedb38f89ea7c36e77d5ed1327465df08f51e25cbb234bc3f057f2bc25a5700271860a916eb510a3fe74db508dfd61
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 Exception => e
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 Exception => e
271
+ rescue => e
272
272
  puts e
273
273
  end
274
274
 
@@ -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 Exception => e
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 Exception => e
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
@@ -11,7 +11,11 @@ module Rbind
11
11
  end
12
12
 
13
13
  def ==(other)
14
- type == other.type
14
+ if other
15
+ type == other.type
16
+ else
17
+ false
18
+ end
15
19
  end
16
20
 
17
21
  def generate_signatures
@@ -73,7 +73,7 @@ module Rbind
73
73
  end
74
74
 
75
75
  klass.add_operation(op)
76
- rescue Exception => e
76
+ rescue => e
77
77
  RTemplateClass.log.warn "RTemplateClass: #{name} could not add parameter #{e} #{e.backtrace}"
78
78
 
79
79
  end
@@ -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 name =~ /^u?int\d*$/ || name =~ /^u?int\d+_t$/
152
- return "Fixnum"
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 Exception => e
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 Exception => e
731
- HelperBase.log.warn "Operation '#{o}' could not be rendered. #{e}"
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
@@ -9,7 +9,7 @@ class <%= name %>Struct < FFI::Struct
9
9
  # auto delete
10
10
  def self.release(pointer)
11
11
  Rbind::<%= cdelete_method %>_struct(pointer) unless pointer.null?
12
- rescue Exception => e
12
+ rescue => e
13
13
  puts e
14
14
  end
15
15
  end
@@ -7,6 +7,6 @@
7
7
  <url>http://</url>
8
8
  <logo>http://</logo>
9
9
 
10
- <depend package="hooks" />
10
+ <depend package="gem-hooks" />
11
11
  <depend package="ffi" />
12
12
  </package>
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rbind'
3
- s.version = '0.0.24'
4
- s.date = '2014-02-16'
3
+ s.version = '0.0.25'
4
+ s.date = '2014-07-06'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ['Alexander Duda']
7
7
  s.email = ['Alexander.Duda@dfki.de']
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.24
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-02-16 00:00:00.000000000 Z
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.3
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