class YARD::Handlers::C::Base
Public Class Methods
handles?(statement, processor)
click to toggle source
@return [Boolean] whether the handler handles this statement
# File lib/yard/handlers/c/base.rb, line 9 def self.handles?(statement, processor) processor.globals.cruby_processed_files ||= {} processor.globals.cruby_processed_files[processor.file] = true if statement.respond_to? :declaration src = statement.declaration else src = statement.source end handlers.any? do |a_handler| statement_class >= statement.class && case a_handler when String src == a_handler when Regexp src =~ a_handler end end end
statement_class(type = nil)
click to toggle source
# File lib/yard/handlers/c/base.rb, line 30 def self.statement_class(type = nil) type ? @statement_class = type : (@statement_class || Statement) end
Public Instance Methods
namespace_for_variable(var)
click to toggle source
# File lib/yard/handlers/c/base.rb, line 62 def namespace_for_variable(var) return namespaces[var] if namespaces[var] var = remove_var_prefix(var) var.empty? ? nil : P(var) end
namespaces()
click to toggle source
# File lib/yard/handlers/c/base.rb, line 68 def namespaces globals.cruby_namespaces ||= {} end
override_comments()
click to toggle source
# File lib/yard/handlers/c/base.rb, line 58 def override_comments globals.cruby_override_comments ||= [] end
parse_block(opts = {})
click to toggle source
@group Parsing an Inner Block
# File lib/yard/handlers/c/base.rb, line 78 def parse_block(opts = {}) return if !statement.block || statement.block.empty? push_state(opts) do parser.process(statement.block) end end
process_file(file, object)
click to toggle source
@group Processing other files
# File lib/yard/handlers/c/base.rb, line 87 def process_file(file, object) file = File.cleanpath(file) return if processed_files[file] processed_files[file] = file begin log.debug "Processing embedded call to C source #{file}..." globals.ordered_parser.files.delete(file) if globals.ordered_parser parser.process(Parser::C::CParser.new(File.read(file), file).parse) rescue Errno::ENOENT log.warn "Missing source file `#{file}' when parsing #{object}" end end
processed_files()
click to toggle source
# File lib/yard/handlers/c/base.rb, line 72 def processed_files globals.cruby_processed_files ||= {} end
register_docstring(object, docstring = nil, stmt = nil)
click to toggle source
@group Registering objects
Calls superclass method
YARD::Handlers::Base#register_docstring
# File lib/yard/handlers/c/base.rb, line 36 def register_docstring(object, docstring = nil, stmt = nil) super(object, docstring, stmt) if docstring end
register_file_info(object, file = nil, line = nil, comments = nil)
click to toggle source
Calls superclass method
YARD::Handlers::Base#register_file_info
# File lib/yard/handlers/c/base.rb, line 40 def register_file_info(object, file = nil, line = nil, comments = nil) super(object, file, line, comments) if file end
register_source(object, source = nil, type = nil)
click to toggle source
Calls superclass method
YARD::Handlers::Base#register_source
# File lib/yard/handlers/c/base.rb, line 44 def register_source(object, source = nil, type = nil) super(object, source, type) if source end
register_visibility(object, visibility = nil)
click to toggle source
Calls superclass method
YARD::Handlers::Base#register_visibility
# File lib/yard/handlers/c/base.rb, line 48 def register_visibility(object, visibility = nil) super(object, visibility) if visibility end
symbols()
click to toggle source
@group Looking up Symbol and Var Values
# File lib/yard/handlers/c/base.rb, line 54 def symbols globals.cruby_symbols ||= {} end
Private Instance Methods
remove_var_prefix(var)
click to toggle source
@endgroup
# File lib/yard/handlers/c/base.rb, line 104 def remove_var_prefix(var) var.gsub(/^rb_[mc]|^[a-z_]+/, '') end