rbgccxml 1.0.1 → 1.0.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.
- data/Rakefile +2 -40
- data/lib/rbgccxml/nodes/class.rb +7 -5
- data/lib/rbgccxml/nodes/enumeration.rb +1 -1
- data/lib/rbgccxml/nodes/function.rb +3 -3
- data/spec/arguments_test.rb +5 -0
- data/spec/classes_test.rb +1 -0
- data/spec/enumerations_test.rb +5 -0
- metadata +39 -65
data/Rakefile
CHANGED
@@ -1,12 +1,8 @@
|
|
1
|
-
require '
|
1
|
+
require 'rdoc/task'
|
2
2
|
require 'rake/contrib/sshpublisher'
|
3
|
-
require 'rake/gempackagetask'
|
4
3
|
|
5
4
|
require 'rspec/core/rake_task'
|
6
5
|
|
7
|
-
PROJECT_NAME = "rbgccxml"
|
8
|
-
RBGCCXML_VERSION = "1.0.1"
|
9
|
-
|
10
6
|
task :default => :spec
|
11
7
|
|
12
8
|
desc "Run all specs"
|
@@ -35,7 +31,7 @@ namespace :web do
|
|
35
31
|
end
|
36
32
|
|
37
33
|
# As part of the rbplusplus project, this just goes in a subfolder
|
38
|
-
desc "Update the website"
|
34
|
+
desc "Update the website"
|
39
35
|
task :upload => "web:build" do |t|
|
40
36
|
Rake::SshDirPublisher.new("#{RUBYFORGE_USERNAME}@rubyforge.org", PROJECT_WEB_PATH, "publish").upload
|
41
37
|
end
|
@@ -45,37 +41,3 @@ namespace :web do
|
|
45
41
|
rm_rf "publish"
|
46
42
|
end
|
47
43
|
end
|
48
|
-
|
49
|
-
spec = Gem::Specification.new do |s|
|
50
|
-
s.name = PROJECT_NAME
|
51
|
-
s.version = RBGCCXML_VERSION
|
52
|
-
s.summary = 'Ruby interface to GCCXML'
|
53
|
-
s.homepage = 'http://rbplusplus.rubyforge.org/rbgccxml'
|
54
|
-
s.rubyforge_project = "rbplusplus"
|
55
|
-
s.author = 'Jason Roelofs'
|
56
|
-
s.email = 'jameskilton@gmail.com'
|
57
|
-
|
58
|
-
s.add_dependency "nokogiri", "~> 1.4.0"
|
59
|
-
s.add_dependency "gccxml_gem", "~> 0.9"
|
60
|
-
|
61
|
-
s.description = <<-END
|
62
|
-
Rbgccxml is a library that parses out GCCXML (http://www.gccxml.org) output
|
63
|
-
and provides a simple but very powerful querying API for finding exactly
|
64
|
-
what you want out of the C++ source code
|
65
|
-
END
|
66
|
-
|
67
|
-
patterns = [
|
68
|
-
'TODO',
|
69
|
-
'Rakefile',
|
70
|
-
'lib/**/*.rb',
|
71
|
-
]
|
72
|
-
|
73
|
-
s.files = patterns.map {|p| Dir.glob(p) }.flatten
|
74
|
-
|
75
|
-
s.test_files = Dir.glob('spec/**/*.rb')
|
76
|
-
|
77
|
-
s.require_paths = ['lib']
|
78
|
-
end
|
79
|
-
|
80
|
-
Rake::GemPackageTask.new(spec) do |pkg|
|
81
|
-
end
|
data/lib/rbgccxml/nodes/class.rb
CHANGED
@@ -43,11 +43,13 @@ module RbGCCXML
|
|
43
43
|
# Like #superclass above, this will find all superclasses for this class.
|
44
44
|
# Functions the same as #superclass except this method always returns a QueryResult
|
45
45
|
def superclasses(access_type = nil)
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
QueryResult.new(
|
47
|
+
[
|
48
|
+
NodeCache.find_children_of_type(self, "Base").select do |base|
|
49
|
+
access_type.nil? ? true : base.send("#{access_type}?")
|
50
|
+
end
|
51
|
+
].flatten.map {|base| base.cpp_type }
|
52
|
+
)
|
51
53
|
end
|
52
54
|
|
53
55
|
# Find all methods for this class. See Node#namespaces
|
@@ -3,17 +3,17 @@ module RbGCCXML
|
|
3
3
|
# Represents a <Function> node, a global or namespaced function
|
4
4
|
# or static class functions.
|
5
5
|
class Function < Node
|
6
|
-
|
6
|
+
|
7
7
|
# First of all, no more querying once you're this far in
|
8
8
|
%w(classes namespaces functions).each do |f|
|
9
9
|
define_method(f) do
|
10
10
|
raise NotQueryableException.new("Cannot query for #{f} while in a Function")
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
# Get the list of Arguments for this Function.
|
15
15
|
def arguments
|
16
|
-
children
|
16
|
+
QueryResult.new children
|
17
17
|
end
|
18
18
|
|
19
19
|
# Get the Node representing this Function's return type
|
data/spec/arguments_test.rb
CHANGED
@@ -25,5 +25,10 @@ describe "Function and Method Arguments" do
|
|
25
25
|
rockin = @arguments_source.functions("rockin")
|
26
26
|
rockin.arguments[1].value.should == "functions::test()"
|
27
27
|
end
|
28
|
+
|
29
|
+
specify "should be a QueryResult" do
|
30
|
+
test = @arguments_source.functions("test1")
|
31
|
+
test.arguments.should be_a_kind_of(RbGCCXML::QueryResult)
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
data/spec/classes_test.rb
CHANGED
@@ -163,6 +163,7 @@ describe "Query inheritance heirarchy" do
|
|
163
163
|
specify "can query for multiple inheritance" do
|
164
164
|
multi = @source.classes("MultiBase")
|
165
165
|
multi.superclasses.length.should == 2
|
166
|
+
multi.superclasses.should be_a_kind_of(RbGCCXML::QueryResult)
|
166
167
|
multi.superclasses.select {|sp| sp.name == "ParentClass"}.should_not be_nil
|
167
168
|
multi.superclasses.select {|sp| sp.name == "Parent2"}.should_not be_nil
|
168
169
|
end
|
data/spec/enumerations_test.rb
CHANGED
@@ -46,5 +46,10 @@ describe "Querying for enumerations" do
|
|
46
46
|
found.values[2].value.should == 2
|
47
47
|
end
|
48
48
|
|
49
|
+
specify "should be a QueryResult" do
|
50
|
+
enum = @enum_source.enumerations("TestEnum")
|
51
|
+
enum.values.length.should == 3
|
52
|
+
enum.values.should be_a_kind_of(RbGCCXML::QueryResult)
|
53
|
+
end
|
49
54
|
end
|
50
55
|
|
metadata
CHANGED
@@ -1,67 +1,51 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbgccxml
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jason Roelofs
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-06 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: nokogiri
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &6465030 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
18
|
+
requirements:
|
27
19
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 7
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 4
|
33
|
-
- 0
|
20
|
+
- !ruby/object:Gem::Version
|
34
21
|
version: 1.4.0
|
35
22
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: gccxml_gem
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: *6465030
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: gccxml_gem
|
27
|
+
requirement: &6464790 !ruby/object:Gem::Requirement
|
41
28
|
none: false
|
42
|
-
requirements:
|
29
|
+
requirements:
|
43
30
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 9
|
49
|
-
version: "0.9"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.9'
|
50
33
|
type: :runtime
|
51
|
-
|
52
|
-
|
53
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *6464790
|
36
|
+
description: ! 'Rbgccxml is a library that parses out GCCXML (http://www.gccxml.org)
|
37
|
+
output
|
38
|
+
|
54
39
|
and provides a simple but very powerful querying API for finding exactly
|
40
|
+
|
55
41
|
what you want out of the C++ source code
|
56
42
|
|
43
|
+
'
|
57
44
|
email: jameskilton@gmail.com
|
58
45
|
executables: []
|
59
|
-
|
60
46
|
extensions: []
|
61
|
-
|
62
47
|
extra_rdoc_files: []
|
63
|
-
|
64
|
-
files:
|
48
|
+
files:
|
65
49
|
- TODO
|
66
50
|
- Rakefile
|
67
51
|
- lib/jamis.rb
|
@@ -112,41 +96,31 @@ files:
|
|
112
96
|
- spec/test_helper.rb
|
113
97
|
- spec/types_test.rb
|
114
98
|
- spec/variables_test.rb
|
115
|
-
has_rdoc: true
|
116
99
|
homepage: http://rbplusplus.rubyforge.org/rbgccxml
|
117
100
|
licenses: []
|
118
|
-
|
119
101
|
post_install_message:
|
120
102
|
rdoc_options: []
|
121
|
-
|
122
|
-
require_paths:
|
103
|
+
require_paths:
|
123
104
|
- lib
|
124
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
106
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
|
131
|
-
- 0
|
132
|
-
version: "0"
|
133
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
112
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
|
139
|
-
segments:
|
140
|
-
- 0
|
141
|
-
version: "0"
|
113
|
+
requirements:
|
114
|
+
- - ! '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
142
117
|
requirements: []
|
143
|
-
|
144
118
|
rubyforge_project: rbplusplus
|
145
|
-
rubygems_version: 1.
|
119
|
+
rubygems_version: 1.8.6
|
146
120
|
signing_key:
|
147
121
|
specification_version: 3
|
148
122
|
summary: Ruby interface to GCCXML
|
149
|
-
test_files:
|
123
|
+
test_files:
|
150
124
|
- spec/arguments_test.rb
|
151
125
|
- spec/classes_test.rb
|
152
126
|
- spec/enumerations_test.rb
|