Class: EasySwig::IncFile
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_namespaces ⇒ Object
Returns the value of attribute api_namespaces.
-
#api_variables ⇒ Object
Returns the value of attribute api_variables.
-
#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_namespaces ⇒ Object
Returns the value of attribute ignored_namespaces.
-
#ignored_variables ⇒ Object
Returns the value of attribute ignored_variables.
-
#num_included ⇒ Object
Returns the value of attribute num_included.
-
#num_including ⇒ Object
Returns the value of attribute num_including.
-
#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
- #<=>(other) ⇒ Object
- #assoc_inner_node(api_node) ⇒ Object
- #assoc_with_node(node) ⇒ Object
- #ignore_inner_nodes ⇒ Object
-
#initialize(hash) ⇒ IncFile
constructor
A new instance of IncFile.
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) ⇒ IncFile
Returns a new instance of IncFile.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/apinodes/inc_file.rb', line 21 def initialize(hash) super(hash) @api_namespaces=[] @ignored_namespaces=[] @api_classes=[] @ignored_classes=[] @api_enums=[] @ignored_enums=[] @api_functions=[] @ignored_functions=[] @api_variables=[] @ignored_variables=[] @wrap_functions = true @wrap_variables = true @wrap_enums = true @added_nodes = {} 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.
7 8 9 |
# File 'lib/apinodes/inc_file.rb', line 7 def api_classes @api_classes end |
#api_enums ⇒ Object
Returns the value of attribute api_enums.
9 10 11 |
# File 'lib/apinodes/inc_file.rb', line 9 def api_enums @api_enums end |
#api_functions ⇒ Object
Returns the value of attribute api_functions.
11 12 13 |
# File 'lib/apinodes/inc_file.rb', line 11 def api_functions @api_functions end |
#api_namespaces ⇒ Object
Returns the value of attribute api_namespaces.
5 6 7 |
# File 'lib/apinodes/inc_file.rb', line 5 def api_namespaces @api_namespaces end |
#api_variables ⇒ Object
Returns the value of attribute api_variables.
13 14 15 |
# File 'lib/apinodes/inc_file.rb', line 13 def api_variables @api_variables end |
#ignored_classes ⇒ Object
Returns the value of attribute ignored_classes.
8 9 10 |
# File 'lib/apinodes/inc_file.rb', line 8 def ignored_classes @ignored_classes end |
#ignored_enums ⇒ Object
Returns the value of attribute ignored_enums.
10 11 12 |
# File 'lib/apinodes/inc_file.rb', line 10 def ignored_enums @ignored_enums end |
#ignored_functions ⇒ Object
Returns the value of attribute ignored_functions.
12 13 14 |
# File 'lib/apinodes/inc_file.rb', line 12 def ignored_functions @ignored_functions end |
#ignored_namespaces ⇒ Object
Returns the value of attribute ignored_namespaces.
6 7 8 |
# File 'lib/apinodes/inc_file.rb', line 6 def ignored_namespaces @ignored_namespaces end |
#ignored_variables ⇒ Object
Returns the value of attribute ignored_variables.
14 15 16 |
# File 'lib/apinodes/inc_file.rb', line 14 def ignored_variables @ignored_variables end |
#num_included ⇒ Object
Returns the value of attribute num_included.
15 16 17 |
# File 'lib/apinodes/inc_file.rb', line 15 def num_included @num_included end |
#num_including ⇒ Object
Returns the value of attribute num_including.
16 17 18 |
# File 'lib/apinodes/inc_file.rb', line 16 def num_including @num_including end |
#wrap_enums ⇒ Object
Returns the value of attribute wrap_enums.
19 20 21 |
# File 'lib/apinodes/inc_file.rb', line 19 def wrap_enums @wrap_enums end |
#wrap_functions ⇒ Object
Returns the value of attribute wrap_functions.
17 18 19 |
# File 'lib/apinodes/inc_file.rb', line 17 def wrap_functions @wrap_functions end |
#wrap_variables ⇒ Object
Returns the value of attribute wrap_variables.
18 19 20 |
# File 'lib/apinodes/inc_file.rb', line 18 def wrap_variables @wrap_variables end |
Instance Method Details
#<=>(other) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/apinodes/inc_file.rb', line 39 def <=> other if @num_including == 0 && other.num_including == 0 return(@num_included - @num_including) <=> (other.num_included- other.num_including) end return 1 if @num_including == 0 return -1 if other.num_including == 0 return(@num_included - @num_including) <=> (other.num_included- other.num_including) end |
#assoc_inner_node(api_node) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/apinodes/inc_file.rb', line 48 def assoc_inner_node(api_node) return if @added_nodes[api_node.wrapped_node] case api_node.node_type when "namespace" @api_namespaces << api_node when "function" @api_functions << api_node when "variable" @api_variables << api_node when "enum" @api_enums << api_node when "class" @api_classes << api_node end @added_nodes[api_node.wrapped_node] = 1 end |
#assoc_with_node(node) ⇒ Object
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 |
# File 'lib/apinodes/inc_file.rb', line 65 def assoc_with_node(node) super(node) @num_included = files_included.size @num_including = files_including.size all_functions = node.functions all_enums = node.enums all_variables = node.variables if @wrap_functions all_functions.each { |f| hash = {'features' => @features, 'node_type' => 'function', 'parent' => self, 'basename' => f.basename } @api_functions << ApiFunction.new(hash).assoc_with_node(f) } end if @wrap_variables all_variables.each { |v| hash = {'features' => @features, 'node_type' => 'variable', 'parent' => self, 'basename' => v.basename} @api_variables << ApiVariable.new(hash).assoc_with_node(v) } end if @wrap_enums all_enums.each { |e| hash = {'features' => @features, 'node_type' => 'enum', 'parent' => self, 'basename' => e.basename } @api_enums << ApiEnum.new(hash).assoc_with_node(e) } end self end |
#ignore_inner_nodes ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/apinodes/inc_file.rb', line 94 def ignore_inner_nodes aux = @api_namespaces.map { |n| n.wrapped_node } @ignored_namespaces = namespaces.select { |ns| aux.include?(ns) == false } aux = @api_functions.map { |n| n.wrapped_node } @ignored_functions = functions.select { |func| aux.include?(func) == false } aux = @api_variables.map { |n| n.wrapped_node } @ignored_variables = variables.select { |var| aux.include?(var) == false } aux = @api_enums.map { |n| n.wrapped_node } @ignored_enums = enums.select { |enum| aux.include?(enum) == false } aux = @api_classes.map { |n| n.wrapped_node } file_classes = classes + structs del = [] file_classes.each { |file_cls| @api_classes.each { |api_cls| if api_cls.api_innerclasses.map { |n| n.wrapped_node }.include?(file_cls) del << file_cls end } } @ignored_classes = file_classes.select { |cls| !aux.include?(cls) && !del.include?(cls) } @ignored_classes end |