rbgccxml 1.0 → 1.0.1

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.
data/Rakefile CHANGED
@@ -5,14 +5,13 @@ require 'rake/gempackagetask'
5
5
  require 'rspec/core/rake_task'
6
6
 
7
7
  PROJECT_NAME = "rbgccxml"
8
- RBGCCXML_VERSION = "1.0"
8
+ RBGCCXML_VERSION = "1.0.1"
9
9
 
10
10
  task :default => :spec
11
11
 
12
12
  desc "Run all specs"
13
13
  RSpec::Core::RakeTask.new do |t|
14
- t.ruby_opts = ["-Itest"]
15
- t.pattern = "test/**/*.rb"
14
+ t.pattern = "spec/**/*_test.rb"
16
15
  end
17
16
 
18
17
  Rake::RDocTask.new do |rd|
@@ -73,7 +72,7 @@ what you want out of the C++ source code
73
72
 
74
73
  s.files = patterns.map {|p| Dir.glob(p) }.flatten
75
74
 
76
- s.test_files = Dir.glob('test/**/*.rb')
75
+ s.test_files = Dir.glob('spec/**/*.rb')
77
76
 
78
77
  s.require_paths = ['lib']
79
78
  end
data/lib/rbgccxml.rb CHANGED
@@ -24,6 +24,7 @@ module RbGCCXML
24
24
  autoload :File, "rbgccxml/nodes/file"
25
25
  autoload :FunctionType, "rbgccxml/nodes/function_type"
26
26
  autoload :Function, "rbgccxml/nodes/function"
27
+ autoload :MethodType, "rbgccxml/nodes/method_type"
27
28
  autoload :Method, "rbgccxml/nodes/method"
28
29
  autoload :Namespace, "rbgccxml/nodes/namespace"
29
30
  autoload :Struct, "rbgccxml/nodes/struct"
@@ -0,0 +1,9 @@
1
+ module RbGCCXML
2
+
3
+ # Represents a <MethodType>, also known as a function pointer to a member
4
+ # function.
5
+ class MethodType < Function
6
+ end
7
+
8
+ end
9
+
@@ -35,7 +35,7 @@ module RbGCCXML
35
35
  NESTED_NODES = %w(Argument Base EnumValue)
36
36
 
37
37
  def start_element(name, attributes = [])
38
- attr_hash = Hash[*attributes]
38
+ attr_hash = Hash[*attributes.flatten]
39
39
 
40
40
  # Need to build a node in memory for those
41
41
  # that we don't directly support
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -44,7 +44,7 @@ describe "Querying for class methods" do
44
44
 
45
45
  end
46
46
 
47
- context "Properties on Methods" do
47
+ describe "Properties on Methods" do
48
48
  before(:all) do
49
49
  @classes_source = RbGCCXML.parse(full_dir("headers/classes.h")).namespaces("classes")
50
50
  end
File without changes
File without changes
File without changes
@@ -0,0 +1,35 @@
1
+ require "test_helper"
2
+
3
+ describe "Pointer to member function or member variable" do
4
+ before(:all) do
5
+ @ptm_source = RbGCCXML.parse(
6
+ full_dir("headers/pointer_to_member.h")).namespaces("pointer_to_member")
7
+ end
8
+
9
+ specify "finds the test struct" do
10
+ xyz = @ptm_source.structs("xyz_t")
11
+ xyz.should be_a_kind_of(RbGCCXML::Struct)
12
+ xyz.methods('do_something').should be_a_kind_of(RbGCCXML::Method)
13
+ xyz.variables('m_some_member').should be_a_kind_of(RbGCCXML::Field)
14
+ end
15
+
16
+ specify "finds pointer to member variable" do
17
+ mvar_ptr = @ptm_source.children.find {|c| c.name == 'mvar_ptr_t'}
18
+ mvar_ptr.should be_a_kind_of(RbGCCXML::Typedef)
19
+
20
+ mvar_ptr_type = RbGCCXML::NodeCache.find(mvar_ptr.attributes["type"])
21
+ mvar_ptr_type.should be_a_kind_of(RbGCCXML::Node) # OffsetType?
22
+ end
23
+
24
+ specify "finds pointer to member function" do
25
+ mfun_ptr = @ptm_source.children.find {|c| c.name == 'mfun_ptr_t'}
26
+ mfun_ptr.should be_a_kind_of(RbGCCXML::Typedef)
27
+
28
+ mfun_ptr_type = RbGCCXML::NodeCache.find(mfun_ptr.attributes["type"])
29
+ mfun_ptr_type.should be_a_kind_of(RbGCCXML::PointerType)
30
+
31
+ type = RbGCCXML::NodeCache.find(mfun_ptr_type.attributes["type"])
32
+ type.should be_a_kind_of(RbGCCXML::MethodType)
33
+ end
34
+ end
35
+
File without changes
File without changes
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,11 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbgccxml
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 21
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 0
8
- version: "1.0"
9
+ - 1
10
+ version: 1.0.1
9
11
  platform: ruby
10
12
  authors:
11
13
  - Jason Roelofs
@@ -13,16 +15,18 @@ autorequire:
13
15
  bindir: bin
14
16
  cert_chain: []
15
17
 
16
- date: 2010-08-27 00:00:00 -04:00
18
+ date: 2010-12-17 00:00:00 -05:00
17
19
  default_executable:
18
20
  dependencies:
19
21
  - !ruby/object:Gem::Dependency
20
22
  name: nokogiri
21
23
  prerelease: false
22
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
29
+ hash: 7
26
30
  segments:
27
31
  - 1
28
32
  - 4
@@ -34,9 +38,11 @@ dependencies:
34
38
  name: gccxml_gem
35
39
  prerelease: false
36
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
45
+ hash: 25
40
46
  segments:
41
47
  - 0
42
48
  - 9
@@ -73,6 +79,7 @@ files:
73
79
  - lib/rbgccxml/nodes/function.rb
74
80
  - lib/rbgccxml/nodes/function_type.rb
75
81
  - lib/rbgccxml/nodes/method.rb
82
+ - lib/rbgccxml/nodes/method_type.rb
76
83
  - lib/rbgccxml/nodes/namespace.rb
77
84
  - lib/rbgccxml/nodes/struct.rb
78
85
  - lib/rbgccxml/nodes/type.rb
@@ -90,6 +97,21 @@ files:
90
97
  - lib/rbgccxml/sax_parser.rb
91
98
  - lib/rbgccxml.rb
92
99
  - lib/vendor/facets/once.rb
100
+ - spec/arguments_test.rb
101
+ - spec/classes_test.rb
102
+ - spec/enumerations_test.rb
103
+ - spec/function_pointers_test.rb
104
+ - spec/functions_test.rb
105
+ - spec/methods_test.rb
106
+ - spec/namespaces_test.rb
107
+ - spec/node_test.rb
108
+ - spec/parser_test.rb
109
+ - spec/pointer_to_member_test.rb
110
+ - spec/query_results_test.rb
111
+ - spec/structs_test.rb
112
+ - spec/test_helper.rb
113
+ - spec/types_test.rb
114
+ - spec/variables_test.rb
93
115
  has_rdoc: true
94
116
  homepage: http://rbplusplus.rubyforge.org/rbgccxml
95
117
  licenses: []
@@ -100,38 +122,43 @@ rdoc_options: []
100
122
  require_paths:
101
123
  - lib
102
124
  required_ruby_version: !ruby/object:Gem::Requirement
125
+ none: false
103
126
  requirements:
104
127
  - - ">="
105
128
  - !ruby/object:Gem::Version
129
+ hash: 3
106
130
  segments:
107
131
  - 0
108
132
  version: "0"
109
133
  required_rubygems_version: !ruby/object:Gem::Requirement
134
+ none: false
110
135
  requirements:
111
136
  - - ">="
112
137
  - !ruby/object:Gem::Version
138
+ hash: 3
113
139
  segments:
114
140
  - 0
115
141
  version: "0"
116
142
  requirements: []
117
143
 
118
144
  rubyforge_project: rbplusplus
119
- rubygems_version: 1.3.6
145
+ rubygems_version: 1.3.7
120
146
  signing_key:
121
147
  specification_version: 3
122
148
  summary: Ruby interface to GCCXML
123
149
  test_files:
124
- - test/arguments_test.rb
125
- - test/classes_test.rb
126
- - test/enumerations_test.rb
127
- - test/function_pointers_test.rb
128
- - test/functions_test.rb
129
- - test/methods_test.rb
130
- - test/namespaces_test.rb
131
- - test/node_test.rb
132
- - test/parser_test.rb
133
- - test/query_results_test.rb
134
- - test/structs_test.rb
135
- - test/test_helper.rb
136
- - test/types_test.rb
137
- - test/variables_test.rb
150
+ - spec/arguments_test.rb
151
+ - spec/classes_test.rb
152
+ - spec/enumerations_test.rb
153
+ - spec/function_pointers_test.rb
154
+ - spec/functions_test.rb
155
+ - spec/methods_test.rb
156
+ - spec/namespaces_test.rb
157
+ - spec/node_test.rb
158
+ - spec/parser_test.rb
159
+ - spec/pointer_to_member_test.rb
160
+ - spec/query_results_test.rb
161
+ - spec/structs_test.rb
162
+ - spec/test_helper.rb
163
+ - spec/types_test.rb
164
+ - spec/variables_test.rb