method
parse_visibility
ruby latest stable - Class:
RDoc::Fortran95parser
Method deprecated or moved
This method is deprecated or moved on the latest stable version. The last existing version (v1_8_7_330) is shown here.
parse_visibility(code, default, container)private
Parse visibility
# File lib/rdoc/parsers/parse_f95.rb, line 1229
def parse_visibility(code, default, container)
result = []
visibility_default = default || :public
used_modules = []
container.includes.each{|i| used_modules << i.name} if container
remaining_code = code.gsub(/^\s*?type[\s\,]+.*?\s+end\s+type.*?$/im, "")
remaining_code.split("\n").each{ |line|
if /^\s*?private\s*?$/ =~ line
visibility_default = :private
break
end
} if remaining_code
remaining_code.split("\n").each{ |line|
if /^\s*?private\s*?(::)?\s+(.*)\s*?(!.*?)?/i =~ line
methods = $2.sub(/!.*$/, '')
methods.split(",").each{ |meth|
meth.sub!(/!.*$/, '')
meth.gsub!(/:/, '')
result << {
"name" => meth.chomp.strip,
"visibility" => :private,
"used_modules" => used_modules.clone,
"file_or_module" => container,
"entity_is_discovered" => nil,
"local_name" => nil
}
}
elsif /^\s*?public\s*?(::)?\s+(.*)\s*?(!.*?)?/i =~ line
methods = $2.sub(/!.*$/, '')
methods.split(",").each{ |meth|
meth.sub!(/!.*$/, '')
meth.gsub!(/:/, '')
result << {
"name" => meth.chomp.strip,
"visibility" => :public,
"used_modules" => used_modules.clone,
"file_or_module" => container,
"entity_is_discovered" => nil,
"local_name" => nil
}
}
end
} if remaining_code
if container
result.each{ |vis_info|
vis_info["parent"] = container.name
}
end
return visibility_default, result
end Related methods
- Instance methods
- scan
- Class methods
- new
- Private methods
-
block_end? -
block_start? -
check_external_aliases -
check_public_methods -
collect_first_comment -
comment_out? -
continuous_line? -
definition_info -
find_arguments -
find_comments -
find_namelists -
find_visibility -
initialize_external_method -
initialize_public_method -
parse_program_or_module -
parse_subprogram -
parse_visibility -
progress -
remove_empty_head_lines -
remove_header_marker -
remove_private_comments -
remove_trailing_alias -
semicolon_to_linefeed -
set_visibility -
united_to_one_line