Class: EasySwig::ApiNamespace
- Defined in:
- lib/apinodes/api_namespace.rb
Instance Attribute Summary collapse
-
#api_classes ⇒ Object
Returns the value of attribute api_classes.
-
#api_enums ⇒ Object
Returns the value of attribute api_enums.
-
#api_functions ⇒ Object
Returns the value of attribute api_functions.
-
#api_variables ⇒ Object
Returns the value of attribute api_variables.
-
#friend_support ⇒ Object
Returns the value of attribute friend_support.
-
#ignored_classes ⇒ Object
Returns the value of attribute ignored_classes.
-
#ignored_enums ⇒ Object
Returns the value of attribute ignored_enums.
-
#ignored_functions ⇒ Object
Returns the value of attribute ignored_functions.
-
#ignored_variables ⇒ Object
Returns the value of attribute ignored_variables.
-
#nested_support ⇒ Object
Returns the value of attribute nested_support.
-
#wrap_classes ⇒ Object
Returns the value of attribute wrap_classes.
-
#wrap_enums ⇒ Object
Returns the value of attribute wrap_enums.
-
#wrap_functions ⇒ Object
Returns the value of attribute wrap_functions.
-
#wrap_variables ⇒ Object
Returns the value of attribute wrap_variables.
Attributes inherited from ApiNode
#basename, #directory, #features, #header_file, #ignore, #match, #node_type, #parent, #target_name, #wrapped_node
Instance Method Summary collapse
- #api_nodes ⇒ Object
- #assoc_with_node(ns) ⇒ Object
-
#initialize(hash) ⇒ ApiNamespace
constructor
A new instance of ApiNamespace.
Methods inherited from ApiNode
#assoc_functions, #assoc_members, #fullname, #method_missing, #to_str
Methods included from Util
#del_prefix_class, #escape_all, #escape_const_ref_ptr, #escape_template, #gen_dir, #home_dir, #is_primitive?, #is_std?, #lib_dir, #logs_dir, #output_dir, #read_file, #rename_files, #swig_dir, #write_file
Constructor Details
#initialize(hash) ⇒ ApiNamespace
Returns a new instance of ApiNamespace.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/apinodes/api_namespace.rb', line 20 def initialize(hash) super(hash) @api_classes=[] @api_variables=[] @api_functions=[] @api_enums=[] @ignored_functions=[] @ignored_variables=[] @ignored_classes=[] @ignored_enums=[] end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class EasySwig::ApiNode
Instance Attribute Details
#api_classes ⇒ Object
Returns the value of attribute api_classes.
5 6 7 |
# File 'lib/apinodes/api_namespace.rb', line 5 def api_classes @api_classes end |
#api_enums ⇒ Object
Returns the value of attribute api_enums.
8 9 10 |
# File 'lib/apinodes/api_namespace.rb', line 8 def api_enums @api_enums end |
#api_functions ⇒ Object
Returns the value of attribute api_functions.
7 8 9 |
# File 'lib/apinodes/api_namespace.rb', line 7 def api_functions @api_functions end |
#api_variables ⇒ Object
Returns the value of attribute api_variables.
6 7 8 |
# File 'lib/apinodes/api_namespace.rb', line 6 def api_variables @api_variables end |
#friend_support ⇒ Object
Returns the value of attribute friend_support.
18 19 20 |
# File 'lib/apinodes/api_namespace.rb', line 18 def friend_support @friend_support end |
#ignored_classes ⇒ Object
Returns the value of attribute ignored_classes.
11 12 13 |
# File 'lib/apinodes/api_namespace.rb', line 11 def ignored_classes @ignored_classes end |
#ignored_enums ⇒ Object
Returns the value of attribute ignored_enums.
12 13 14 |
# File 'lib/apinodes/api_namespace.rb', line 12 def ignored_enums @ignored_enums end |
#ignored_functions ⇒ Object
Returns the value of attribute ignored_functions.
9 10 11 |
# File 'lib/apinodes/api_namespace.rb', line 9 def ignored_functions @ignored_functions end |
#ignored_variables ⇒ Object
Returns the value of attribute ignored_variables.
10 11 12 |
# File 'lib/apinodes/api_namespace.rb', line 10 def ignored_variables @ignored_variables end |
#nested_support ⇒ Object
Returns the value of attribute nested_support.
17 18 19 |
# File 'lib/apinodes/api_namespace.rb', line 17 def nested_support @nested_support end |
#wrap_classes ⇒ Object
Returns the value of attribute wrap_classes.
13 14 15 |
# File 'lib/apinodes/api_namespace.rb', line 13 def wrap_classes @wrap_classes end |
#wrap_enums ⇒ Object
Returns the value of attribute wrap_enums.
15 16 17 |
# File 'lib/apinodes/api_namespace.rb', line 15 def wrap_enums @wrap_enums end |
#wrap_functions ⇒ Object
Returns the value of attribute wrap_functions.
14 15 16 |
# File 'lib/apinodes/api_namespace.rb', line 14 def wrap_functions @wrap_functions end |
#wrap_variables ⇒ Object
Returns the value of attribute wrap_variables.
16 17 18 |
# File 'lib/apinodes/api_namespace.rb', line 16 def wrap_variables @wrap_variables end |
Instance Method Details
#api_nodes ⇒ Object
32 33 34 35 |
# File 'lib/apinodes/api_namespace.rb', line 32 def api_nodes return [self] if @api_classes.empty? # Only if there are no classes in this namespace @api_classes end |
#assoc_with_node(ns) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/apinodes/api_namespace.rb', line 37 def assoc_with_node(ns) super(ns) all_functions = ns.functions all_functions.reject!{ |f| f.basename == f.basename.upcase } all_classes = ns.classes + ns.structs all_enums = ns.enums all_variables = ns.variables ign_functions = @ignored_functions.map{|i| i.basename} ign_classes = @ignored_classes.map{|i| i.basename} ign_enums = @ignored_enums.map{|i| i.basename} ign_variables = @ignored_variables.map{|i| i.basename} if @wrap_functions all_functions.each { |f| if not ign_functions.include?(f.basename) hash = {'features' => @features, 'node_type' => 'function', 'parent' => self, 'basename' => f.basename } @api_functions << ApiFunction.new(hash).assoc_with_node(f) end } else assoc_functions(all_functions, @api_functions, @ignored_functions) end if @wrap_classes all_classes.each { |c| if not ign_classes.include?(c.basename) hash = {'wrap_methods' => 'x', 'wrap_attributes' => 'x', 'wrap_enums' => 'x', 'wrap_innerclasses' => 'x', 'node_type' => 'class', 'nested_support' => @nested_support, 'friend_support' => @friend_support, 'features' => @features, 'parent' => self, 'basename' => c.basename } @api_classes << ApiClass.new(hash).assoc_with_node(c) end } else assoc_members(all_classes, @api_classes, @ignored_classes) end if @wrap_variables all_variables.each { |v| if not ign_variables.include?(v.basename) hash = {'features' => @features, 'node_type' => 'variable', 'parent' => self, 'basename' => v.basename} @api_variables << ApiVariable.new(hash).assoc_with_node(v) end } else assoc_members(all_variables, @api_variables, @ignored_variables) end if @wrap_enums all_enums.each { |e| if not ign_enums.include?(e.basename) hash = {'features' => @features, 'node_type' => 'enum', 'parent' => self, 'basename' => e.basename } @api_enums << ApiEnum.new(hash).assoc_with_node(e) end } else assoc_members(all_enums, @api_enums, @ignored_enums) end self end |