class AdLint::MetricRecord
Public Class Methods
new(csv_row, sma_wd)
click to toggle source
Calls superclass method
# File lib/adlint/metric.rb, line 201 def initialize(csv_row, sma_wd) super(csv_row) @sma_wd = sma_wd end
of(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 172 def self.of(csv_row, sma_wd) case csv_row[0] when "VER" create_version_record(csv_row) when "DCL" create_declaration_record(csv_row, sma_wd) when "DEF" create_definition_record(csv_row, sma_wd) when "INI" create_initialization_record(csv_row, sma_wd) when "ASN" create_assignment_record(csv_row, sma_wd) when "DEP" create_dependency_record(csv_row, sma_wd) when "LIT" create_literal_record(csv_row, sma_wd) when "PRE" create_pp_directive_record(csv_row, sma_wd) when "MET" create_metric_record(csv_row, sma_wd) else # NOTE: Silently ignore unknown records so that an optional examination # package may output its own special ones. # #raise "invalid metric record." nil end end
Private Class Methods
create_assignment_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 317 def self.create_assignment_record(csv_row, sma_wd) AssignmentRecord.new(csv_row, sma_wd) end
create_declaration_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 271 def self.create_declaration_record(csv_row, sma_wd) case csv_row[4] when "T" case csv_row[5] when "T" TypedefDeclarationRecord.new(csv_row, sma_wd) when "S" StructDeclarationRecord.new(csv_row, sma_wd) when "U" UnionDeclarationRecord.new(csv_row, sma_wd) when "E" EnumDeclarationRecord.new(csv_row, sma_wd) else raise "invalid DCL record." end when "V" GlobalVariableDeclarationRecord.new(csv_row, sma_wd) when "F" FunctionDeclarationRecord.new(csv_row, sma_wd) else raise "invalid DCL record." end end
create_definition_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 296 def self.create_definition_record(csv_row, sma_wd) case csv_row[4] when "V" VariableDefinitionRecord.new(csv_row, sma_wd) when "F" FunctionDefinitionRecord.new(csv_row, sma_wd) when "M" MacroDefinitionRecord.new(csv_row, sma_wd) when "L" LabelDefinitionRecord.new(csv_row, sma_wd) else raise "invalid DEF record." end end
create_dependency_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 322 def self.create_dependency_record(csv_row, sma_wd) case csv_row[4] when "I" IncludeRecord.new(csv_row, sma_wd) when "C" FunctionCallRecord.new(csv_row, sma_wd) when "X" case csv_row[5] when "V" VariableXRefRecord.new(csv_row, sma_wd) when "F" FunctionXRefRecord.new(csv_row, sma_wd) else raise "invalid DEP record." end else raise "invalid DEP record." end end
create_initialization_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 312 def self.create_initialization_record(csv_row, sma_wd) InitializationRecord.new(csv_row, sma_wd) end
create_literal_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 343 def self.create_literal_record(csv_row, sma_wd) LiteralRecord.new(csv_row, sma_wd) end
create_metric_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 353 def self.create_metric_record(csv_row, sma_wd) new(csv_row, sma_wd) end
create_pp_directive_record(csv_row, sma_wd)
click to toggle source
# File lib/adlint/metric.rb, line 348 def self.create_pp_directive_record(csv_row, sma_wd) PPDirectiveRecord.new(csv_row, sma_wd) end
create_version_record(csv_row)
click to toggle source
# File lib/adlint/metric.rb, line 266 def self.create_version_record(csv_row) VersionRecord.new(csv_row) end
Public Instance Methods
assignment?()
click to toggle source
# File lib/adlint/metric.rb, line 252 def assignment?; false end
column_no()
click to toggle source
# File lib/adlint/metric.rb, line 219 def column_no field_at(3).to_i end
enum_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 236 def enum_declaration?; false end
fpath()
click to toggle source
# File lib/adlint/metric.rb, line 210 def fpath sma_abs_fpath = Pathname.new(field_at(1)).expand_path(@sma_wd) sma_abs_fpath.relative_path_from(Pathname.pwd) end
function_call?()
click to toggle source
# File lib/adlint/metric.rb, line 256 def function_call?; false end
function_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 240 def function_declaration?; false end
function_definition?()
click to toggle source
# File lib/adlint/metric.rb, line 244 def function_definition?; false end
function_xref?()
click to toggle source
# File lib/adlint/metric.rb, line 260 def function_xref?; false end
global_variable_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 238 def global_variable_declaration?; false end
include?()
click to toggle source
# File lib/adlint/metric.rb, line 254 def include?; false end
initialization?()
click to toggle source
# File lib/adlint/metric.rb, line 250 def initialization?; false end
label_definition?()
click to toggle source
# File lib/adlint/metric.rb, line 248 def label_definition?; false end
line_no()
click to toggle source
# File lib/adlint/metric.rb, line 215 def line_no field_at(2).to_i end
literal?()
click to toggle source
# File lib/adlint/metric.rb, line 262 def literal?; false end
location()
click to toggle source
# File lib/adlint/metric.rb, line 223 def location Location.new(fpath, line_no, column_no) end
macro_definition?()
click to toggle source
# File lib/adlint/metric.rb, line 246 def macro_definition?; false end
pp_directive?()
click to toggle source
# File lib/adlint/metric.rb, line 264 def pp_directive?; false end
struct_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 232 def struct_declaration?; false end
type()
click to toggle source
# File lib/adlint/metric.rb, line 206 def type field_at(0) end
typedef_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 230 def typedef_declaration?; false end
union_declaration?()
click to toggle source
# File lib/adlint/metric.rb, line 234 def union_declaration?; false end
variable_definition?()
click to toggle source
# File lib/adlint/metric.rb, line 242 def variable_definition?; false end
variable_xref?()
click to toggle source
# File lib/adlint/metric.rb, line 258 def variable_xref?; false end
version?()
click to toggle source
# File lib/adlint/metric.rb, line 228 def version?; false end