2021-01-11 14:49:07 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
2023-07-11 21:52:00 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
2023-10-09 21:48:57 +00:00
< meta name = "generator" content = "Crystal Docs 1.9.2" >
2021-01-12 10:04:15 +00:00
< meta name = "crystal_docs.project_version" content = "master" >
2021-01-11 14:49:07 +00:00
< meta name = "crystal_docs.project_name" content = "ameba" >
2021-01-31 14:41:59 +00:00
2021-01-11 14:49:07 +00:00
< link href = "../css/style.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "../js/doc.js" > < / script >
2021-01-31 14:41:59 +00:00
< meta name = "repository-name" content = "ameba" >
2021-01-12 10:04:15 +00:00
< title > Ameba::Source - ameba master< / title >
2021-01-11 14:49:07 +00:00
< script type = "text/javascript" >
CrystalDocs.base_path = "../";
< / script >
< / head >
< body >
2021-01-31 14:41:59 +00:00
< svg class = "hidden" >
< symbol id = "octicon-link" viewBox = "0 0 16 16" >
2023-10-09 21:48:57 +00:00
< path fill = "currentColor" fill-rule = "evenodd" d = "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z" > < / path >
2021-01-31 14:41:59 +00:00
< / symbol >
< / svg >
2023-07-11 21:52:00 +00:00
< input type = "checkbox" id = "sidebar-btn" >
< label for = "sidebar-btn" id = "sidebar-btn-label" >
< svg class = "open" xmlns = "http://www.w3.org/2000/svg" height = "2em" width = "2em" viewBox = "0 0 512 512" > < title > Open Sidebar< / title > < path fill = "currentColor" d = "M80 96v64h352V96H80zm0 112v64h352v-64H80zm0 112v64h352v-64H80z" > < / path > < / svg >
< svg class = "close" xmlns = "http://www.w3.org/2000/svg" width = "2em" height = "2em" viewBox = "0 0 512 512" > < title > Close Sidebar< / title > < path fill = "currentColor" d = "m118.6 73.4-45.2 45.2L210.7 256 73.4 393.4l45.2 45.2L256 301.3l137.4 137.3 45.2-45.2L301.3 256l137.3-137.4-45.2-45.2L256 210.7Z" > < / path > < / svg >
< / label >
2021-01-11 14:49:07 +00:00
< div class = "sidebar" >
< div class = "sidebar-header" >
< div class = "search-box" >
< input type = "search" class = "search-input" placeholder = "Search..." spellcheck = "false" aria-label = "Search" >
< / div >
< div class = "project-summary" >
< h1 class = "project-name" >
< a href = "../index.html" >
ameba
< / a >
< / h1 >
< span class = "project-version" >
2021-01-12 10:04:15 +00:00
master
2021-01-11 14:49:07 +00:00
< / span >
< / div >
< / div >
2021-01-31 14:41:59 +00:00
< div class = "search-results hidden" >
2021-01-11 14:49:07 +00:00
< ul class = "search-list" > < / ul >
< / div >
< div class = "types-list" >
< ul >
< li class = "parent open current" data-id = "ameba/Ameba" data-name = "ameba" >
< a href = "../Ameba.html" > Ameba< / a >
< ul >
< li class = "parent " data-id = "ameba/Ameba/AST" data-name = "ameba::ast" >
< a href = "../Ameba/AST.html" > AST< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/AST/Argument" data-name = "ameba::ast::argument" >
< a href = "../Ameba/AST/Argument.html" > Argument< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Assignment" data-name = "ameba::ast::assignment" >
< a href = "../Ameba/AST/Assignment.html" > Assignment< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/BaseVisitor" data-name = "ameba::ast::basevisitor" >
< a href = "../Ameba/AST/BaseVisitor.html" > BaseVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Branch" data-name = "ameba::ast::branch" >
< a href = "../Ameba/AST/Branch.html" > Branch< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Branchable" data-name = "ameba::ast::branchable" >
< a href = "../Ameba/AST/Branchable.html" > Branchable< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/CountingVisitor" data-name = "ameba::ast::countingvisitor" >
< a href = "../Ameba/AST/CountingVisitor.html" > CountingVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/FlowExpression" data-name = "ameba::ast::flowexpression" >
< a href = "../Ameba/AST/FlowExpression.html" > FlowExpression< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/FlowExpressionVisitor" data-name = "ameba::ast::flowexpressionvisitor" >
< a href = "../Ameba/AST/FlowExpressionVisitor.html" > FlowExpressionVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/InstanceVariable" data-name = "ameba::ast::instancevariable" >
< a href = "../Ameba/AST/InstanceVariable.html" > InstanceVariable< / a >
< / li >
2023-06-13 09:37:29 +00:00
< li class = "parent " data-id = "ameba/Ameba/AST/NodeVisitor" data-name = "ameba::ast::nodevisitor" >
2021-01-11 14:49:07 +00:00
< a href = "../Ameba/AST/NodeVisitor.html" > NodeVisitor< / a >
2023-06-13 09:37:29 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/AST/NodeVisitor/Category" data-name = "ameba::ast::nodevisitor::category" >
< a href = "../Ameba/AST/NodeVisitor/Category.html" > Category< / a >
< / li >
< / ul >
2021-01-11 14:49:07 +00:00
< / li >
< li class = " " data-id = "ameba/Ameba/AST/RedundantControlExpressionVisitor" data-name = "ameba::ast::redundantcontrolexpressionvisitor" >
< a href = "../Ameba/AST/RedundantControlExpressionVisitor.html" > RedundantControlExpressionVisitor< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Reference" data-name = "ameba::ast::reference" >
< a href = "../Ameba/AST/Reference.html" > Reference< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Scope" data-name = "ameba::ast::scope" >
< a href = "../Ameba/AST/Scope.html" > Scope< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/ScopeVisitor" data-name = "ameba::ast::scopevisitor" >
< a href = "../Ameba/AST/ScopeVisitor.html" > ScopeVisitor< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/AST/TopLevelNodesVisitor" data-name = "ameba::ast::toplevelnodesvisitor" >
< a href = "../Ameba/AST/TopLevelNodesVisitor.html" > TopLevelNodesVisitor< / a >
< / li >
2023-02-19 06:52:26 +00:00
< li class = " " data-id = "ameba/Ameba/AST/TypeDecVariable" data-name = "ameba::ast::typedecvariable" >
< a href = "../Ameba/AST/TypeDecVariable.html" > TypeDecVariable< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/AST/Util" data-name = "ameba::ast::util" >
< a href = "../Ameba/AST/Util.html" > Util< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/AST/Variable" data-name = "ameba::ast::variable" >
< a href = "../Ameba/AST/Variable.html" > Variable< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/Config" data-name = "ameba::config" >
< a href = "../Ameba/Config.html" > Config< / a >
< / li >
2021-11-16 21:31:29 +00:00
< li class = "parent " data-id = "ameba/Ameba/Ext" data-name = "ameba::ext" >
< a href = "../Ameba/Ext.html" > Ext< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Ext/Location" data-name = "ameba::ext::location" >
< a href = "../Ameba/Ext/Location.html" > Location< / a >
< / li >
< / ul >
< / li >
2021-01-11 14:49:07 +00:00
< li class = "parent " data-id = "ameba/Ameba/Formatter" data-name = "ameba::formatter" >
< a href = "../Ameba/Formatter.html" > Formatter< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Formatter/BaseFormatter" data-name = "ameba::formatter::baseformatter" >
< a href = "../Ameba/Formatter/BaseFormatter.html" > BaseFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/DisabledFormatter" data-name = "ameba::formatter::disabledformatter" >
< a href = "../Ameba/Formatter/DisabledFormatter.html" > DisabledFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/DotFormatter" data-name = "ameba::formatter::dotformatter" >
< a href = "../Ameba/Formatter/DotFormatter.html" > DotFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/ExplainFormatter" data-name = "ameba::formatter::explainformatter" >
< a href = "../Ameba/Formatter/ExplainFormatter.html" > ExplainFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/FlycheckFormatter" data-name = "ameba::formatter::flycheckformatter" >
< a href = "../Ameba/Formatter/FlycheckFormatter.html" > FlycheckFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/JSONFormatter" data-name = "ameba::formatter::jsonformatter" >
< a href = "../Ameba/Formatter/JSONFormatter.html" > JSONFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/TODOFormatter" data-name = "ameba::formatter::todoformatter" >
< a href = "../Ameba/Formatter/TODOFormatter.html" > TODOFormatter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Formatter/Util" data-name = "ameba::formatter::util" >
< a href = "../Ameba/Formatter/Util.html" > Util< / a >
< / li >
< / ul >
< / li >
< li class = " " data-id = "ameba/Ameba/GlobUtils" data-name = "ameba::globutils" >
< a href = "../Ameba/GlobUtils.html" > GlobUtils< / a >
< / li >
< li class = "parent " data-id = "ameba/Ameba/InlineComments" data-name = "ameba::inlinecomments" >
< a href = "../Ameba/InlineComments.html" > InlineComments< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/InlineComments/Action" data-name = "ameba::inlinecomments::action" >
< a href = "../Ameba/InlineComments/Action.html" > Action< / a >
< / li >
< / ul >
< / li >
2021-02-24 08:11:10 +00:00
< li class = "parent " data-id = "ameba/Ameba/Issue" data-name = "ameba::issue" >
2021-01-11 14:49:07 +00:00
< a href = "../Ameba/Issue.html" > Issue< / a >
2021-02-24 08:11:10 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/Issue/Status" data-name = "ameba::issue::status" >
< a href = "../Ameba/Issue/Status.html" > Status< / a >
< / li >
< / ul >
2023-11-05 05:46:15 +00:00
< / li >
< li class = "parent " data-id = "ameba/Ameba/Presenter" data-name = "ameba::presenter" >
< a href = "../Ameba/Presenter.html" > Presenter< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Presenter/BasePresenter" data-name = "ameba::presenter::basepresenter" >
< a href = "../Ameba/Presenter/BasePresenter.html" > BasePresenter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Presenter/RuleCollectionPresenter" data-name = "ameba::presenter::rulecollectionpresenter" >
< a href = "../Ameba/Presenter/RuleCollectionPresenter.html" > RuleCollectionPresenter< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Presenter/RulePresenter" data-name = "ameba::presenter::rulepresenter" >
< a href = "../Ameba/Presenter/RulePresenter.html" > RulePresenter< / a >
< / li >
< / ul >
2021-01-11 14:49:07 +00:00
< / li >
< li class = " " data-id = "ameba/Ameba/Reportable" data-name = "ameba::reportable" >
< a href = "../Ameba/Reportable.html" > Reportable< / a >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule" data-name = "ameba::rule" >
< a href = "../Ameba/Rule.html" > Rule< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Base" data-name = "ameba::rule::base" >
< a href = "../Ameba/Rule/Base.html" > Base< / a >
< / li >
2023-11-09 05:21:27 +00:00
< li class = "parent " data-id = "ameba/Ameba/Rule/Documentation" data-name = "ameba::rule::documentation" >
< a href = "../Ameba/Rule/Documentation.html" > Documentation< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Documentation/Documentation" data-name = "ameba::rule::documentation::documentation" >
< a href = "../Ameba/Rule/Documentation/Documentation.html" > Documentation< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Documentation/DocumentationAdmonition" data-name = "ameba::rule::documentation::documentationadmonition" >
< a href = "../Ameba/Rule/Documentation/DocumentationAdmonition.html" > DocumentationAdmonition< / a >
< / li >
< / ul >
< / li >
2021-01-11 14:49:07 +00:00
< li class = "parent " data-id = "ameba/Ameba/Rule/Layout" data-name = "ameba::rule::layout" >
< a href = "../Ameba/Rule/Layout.html" > Layout< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/LineLength" data-name = "ameba::rule::layout::linelength" >
< a href = "../Ameba/Rule/Layout/LineLength.html" > LineLength< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/TrailingBlankLines" data-name = "ameba::rule::layout::trailingblanklines" >
< a href = "../Ameba/Rule/Layout/TrailingBlankLines.html" > TrailingBlankLines< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Layout/TrailingWhitespace" data-name = "ameba::rule::layout::trailingwhitespace" >
< a href = "../Ameba/Rule/Layout/TrailingWhitespace.html" > TrailingWhitespace< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Lint" data-name = "ameba::rule::lint" >
< a href = "../Ameba/Rule/Lint.html" > Lint< / a >
< ul >
2021-10-19 09:45:33 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/AmbiguousAssignment" data-name = "ameba::rule::lint::ambiguousassignment" >
< a href = "../Ameba/Rule/Lint/AmbiguousAssignment.html" > AmbiguousAssignment< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/BadDirective" data-name = "ameba::rule::lint::baddirective" >
< a href = "../Ameba/Rule/Lint/BadDirective.html" > BadDirective< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ComparisonToBoolean" data-name = "ameba::rule::lint::comparisontoboolean" >
< a href = "../Ameba/Rule/Lint/ComparisonToBoolean.html" > ComparisonToBoolean< / a >
< / li >
2021-12-31 17:40:58 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DebugCalls" data-name = "ameba::rule::lint::debugcalls" >
< a href = "../Ameba/Rule/Lint/DebugCalls.html" > DebugCalls< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DebuggerStatement" data-name = "ameba::rule::lint::debuggerstatement" >
< a href = "../Ameba/Rule/Lint/DebuggerStatement.html" > DebuggerStatement< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/DuplicatedRequire" data-name = "ameba::rule::lint::duplicatedrequire" >
< a href = "../Ameba/Rule/Lint/DuplicatedRequire.html" > DuplicatedRequire< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyEnsure" data-name = "ameba::rule::lint::emptyensure" >
< a href = "../Ameba/Rule/Lint/EmptyEnsure.html" > EmptyEnsure< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyExpression" data-name = "ameba::rule::lint::emptyexpression" >
< a href = "../Ameba/Rule/Lint/EmptyExpression.html" > EmptyExpression< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/EmptyLoop" data-name = "ameba::rule::lint::emptyloop" >
< a href = "../Ameba/Rule/Lint/EmptyLoop.html" > EmptyLoop< / a >
< / li >
2022-12-20 15:23:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Formatting" data-name = "ameba::rule::lint::formatting" >
< a href = "../Ameba/Rule/Lint/Formatting.html" > Formatting< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/HashDuplicatedKey" data-name = "ameba::rule::lint::hashduplicatedkey" >
< a href = "../Ameba/Rule/Lint/HashDuplicatedKey.html" > HashDuplicatedKey< / a >
< / li >
2022-11-17 13:22:23 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralAssignmentsInExpressions" data-name = "ameba::rule::lint::literalassignmentsinexpressions" >
< a href = "../Ameba/Rule/Lint/LiteralAssignmentsInExpressions.html" > LiteralAssignmentsInExpressions< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralInCondition" data-name = "ameba::rule::lint::literalincondition" >
< a href = "../Ameba/Rule/Lint/LiteralInCondition.html" > LiteralInCondition< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralInInterpolation" data-name = "ameba::rule::lint::literalininterpolation" >
< a href = "../Ameba/Rule/Lint/LiteralInInterpolation.html" > LiteralInInterpolation< / a >
< / li >
2022-11-02 09:13:37 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/LiteralsComparison" data-name = "ameba::rule::lint::literalscomparison" >
< a href = "../Ameba/Rule/Lint/LiteralsComparison.html" > LiteralsComparison< / a >
< / li >
2022-12-20 15:22:34 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/MissingBlockArgument" data-name = "ameba::rule::lint::missingblockargument" >
< a href = "../Ameba/Rule/Lint/MissingBlockArgument.html" > MissingBlockArgument< / a >
< / li >
2022-10-30 22:53:00 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/NotNil" data-name = "ameba::rule::lint::notnil" >
< a href = "../Ameba/Rule/Lint/NotNil.html" > NotNil< / a >
< / li >
2022-11-01 01:19:47 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/NotNilAfterNoBang" data-name = "ameba::rule::lint::notnilafternobang" >
< a href = "../Ameba/Rule/Lint/NotNilAfterNoBang.html" > NotNilAfterNoBang< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/PercentArrays" data-name = "ameba::rule::lint::percentarrays" >
< a href = "../Ameba/Rule/Lint/PercentArrays.html" > PercentArrays< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RandZero" data-name = "ameba::rule::lint::randzero" >
< a href = "../Ameba/Rule/Lint/RandZero.html" > RandZero< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantStringCoercion" data-name = "ameba::rule::lint::redundantstringcoercion" >
< a href = "../Ameba/Rule/Lint/RedundantStringCoercion.html" > RedundantStringCoercion< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantWithIndex" data-name = "ameba::rule::lint::redundantwithindex" >
< a href = "../Ameba/Rule/Lint/RedundantWithIndex.html" > RedundantWithIndex< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/RedundantWithObject" data-name = "ameba::rule::lint::redundantwithobject" >
< a href = "../Ameba/Rule/Lint/RedundantWithObject.html" > RedundantWithObject< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowedArgument" data-name = "ameba::rule::lint::shadowedargument" >
< a href = "../Ameba/Rule/Lint/ShadowedArgument.html" > ShadowedArgument< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowedException" data-name = "ameba::rule::lint::shadowedexception" >
< a href = "../Ameba/Rule/Lint/ShadowedException.html" > ShadowedException< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/ShadowingOuterLocalVar" data-name = "ameba::rule::lint::shadowingouterlocalvar" >
< a href = "../Ameba/Rule/Lint/ShadowingOuterLocalVar.html" > ShadowingOuterLocalVar< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/SharedVarInFiber" data-name = "ameba::rule::lint::sharedvarinfiber" >
< a href = "../Ameba/Rule/Lint/SharedVarInFiber.html" > SharedVarInFiber< / a >
< / li >
2023-11-11 07:28:39 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/SpecFilename" data-name = "ameba::rule::lint::specfilename" >
< a href = "../Ameba/Rule/Lint/SpecFilename.html" > SpecFilename< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/SpecFocus" data-name = "ameba::rule::lint::specfocus" >
< a href = "../Ameba/Rule/Lint/SpecFocus.html" > SpecFocus< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Syntax" data-name = "ameba::rule::lint::syntax" >
< a href = "../Ameba/Rule/Lint/Syntax.html" > Syntax< / a >
< / li >
2023-11-08 12:03:14 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/Typos" data-name = "ameba::rule::lint::typos" >
< a href = "../Ameba/Rule/Lint/Typos.html" > Typos< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnneededDisableDirective" data-name = "ameba::rule::lint::unneededdisabledirective" >
< a href = "../Ameba/Rule/Lint/UnneededDisableDirective.html" > UnneededDisableDirective< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnreachableCode" data-name = "ameba::rule::lint::unreachablecode" >
< a href = "../Ameba/Rule/Lint/UnreachableCode.html" > UnreachableCode< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnusedArgument" data-name = "ameba::rule::lint::unusedargument" >
< a href = "../Ameba/Rule/Lint/UnusedArgument.html" > UnusedArgument< / a >
< / li >
2022-12-15 18:35:50 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UnusedBlockArgument" data-name = "ameba::rule::lint::unusedblockargument" >
< a href = "../Ameba/Rule/Lint/UnusedBlockArgument.html" > UnusedBlockArgument< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UselessAssign" data-name = "ameba::rule::lint::uselessassign" >
< a href = "../Ameba/Rule/Lint/UselessAssign.html" > UselessAssign< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Lint/UselessConditionInWhen" data-name = "ameba::rule::lint::uselessconditioninwhen" >
< a href = "../Ameba/Rule/Lint/UselessConditionInWhen.html" > UselessConditionInWhen< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Metrics" data-name = "ameba::rule::metrics" >
< a href = "../Ameba/Rule/Metrics.html" > Metrics< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Metrics/CyclomaticComplexity" data-name = "ameba::rule::metrics::cyclomaticcomplexity" >
< a href = "../Ameba/Rule/Metrics/CyclomaticComplexity.html" > CyclomaticComplexity< / a >
< / li >
< / ul >
2023-11-09 05:20:08 +00:00
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Naming" data-name = "ameba::rule::naming" >
< a href = "../Ameba/Rule/Naming.html" > Naming< / a >
< ul >
2023-11-09 09:35:42 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/AccessorMethodName" data-name = "ameba::rule::naming::accessormethodname" >
< a href = "../Ameba/Rule/Naming/AccessorMethodName.html" > AccessorMethodName< / a >
< / li >
2023-11-10 01:00:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/AsciiIdentifiers" data-name = "ameba::rule::naming::asciiidentifiers" >
< a href = "../Ameba/Rule/Naming/AsciiIdentifiers.html" > AsciiIdentifiers< / a >
< / li >
2023-11-12 08:58:11 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/BinaryOperatorParameterName" data-name = "ameba::rule::naming::binaryoperatorparametername" >
< a href = "../Ameba/Rule/Naming/BinaryOperatorParameterName.html" > BinaryOperatorParameterName< / a >
< / li >
2023-11-12 08:57:09 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/BlockParameterName" data-name = "ameba::rule::naming::blockparametername" >
< a href = "../Ameba/Rule/Naming/BlockParameterName.html" > BlockParameterName< / a >
< / li >
2023-11-09 05:20:08 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/ConstantNames" data-name = "ameba::rule::naming::constantnames" >
< a href = "../Ameba/Rule/Naming/ConstantNames.html" > ConstantNames< / a >
< / li >
2023-11-09 07:00:21 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/Filename" data-name = "ameba::rule::naming::filename" >
< a href = "../Ameba/Rule/Naming/Filename.html" > Filename< / a >
< / li >
2023-11-09 05:20:08 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/MethodNames" data-name = "ameba::rule::naming::methodnames" >
< a href = "../Ameba/Rule/Naming/MethodNames.html" > MethodNames< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Naming/PredicateName" data-name = "ameba::rule::naming::predicatename" >
< a href = "../Ameba/Rule/Naming/PredicateName.html" > PredicateName< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Naming/QueryBoolMethods" data-name = "ameba::rule::naming::queryboolmethods" >
< a href = "../Ameba/Rule/Naming/QueryBoolMethods.html" > QueryBoolMethods< / a >
< / li >
2023-11-10 14:57:40 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/RescuedExceptionsVariableName" data-name = "ameba::rule::naming::rescuedexceptionsvariablename" >
< a href = "../Ameba/Rule/Naming/RescuedExceptionsVariableName.html" > RescuedExceptionsVariableName< / a >
< / li >
2023-11-09 05:20:08 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Naming/TypeNames" data-name = "ameba::rule::naming::typenames" >
< a href = "../Ameba/Rule/Naming/TypeNames.html" > TypeNames< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Naming/VariableNames" data-name = "ameba::rule::naming::variablenames" >
< a href = "../Ameba/Rule/Naming/VariableNames.html" > VariableNames< / a >
< / li >
< / ul >
2021-01-11 14:49:07 +00:00
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Performance" data-name = "ameba::rule::performance" >
< a href = "../Ameba/Rule/Performance.html" > Performance< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/AnyAfterFilter" data-name = "ameba::rule::performance::anyafterfilter" >
< a href = "../Ameba/Rule/Performance/AnyAfterFilter.html" > AnyAfterFilter< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/AnyInsteadOfEmpty" data-name = "ameba::rule::performance::anyinsteadofempty" >
< a href = "../Ameba/Rule/Performance/AnyInsteadOfEmpty.html" > AnyInsteadOfEmpty< / a >
< / li >
2021-04-18 06:42:29 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/Base" data-name = "ameba::rule::performance::base" >
< a href = "../Ameba/Rule/Performance/Base.html" > Base< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/ChainedCallWithNoBang" data-name = "ameba::rule::performance::chainedcallwithnobang" >
< a href = "../Ameba/Rule/Performance/ChainedCallWithNoBang.html" > ChainedCallWithNoBang< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/CompactAfterMap" data-name = "ameba::rule::performance::compactaftermap" >
< a href = "../Ameba/Rule/Performance/CompactAfterMap.html" > CompactAfterMap< / a >
< / li >
2023-06-30 19:00:21 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/ExcessiveAllocations" data-name = "ameba::rule::performance::excessiveallocations" >
< a href = "../Ameba/Rule/Performance/ExcessiveAllocations.html" > ExcessiveAllocations< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/FirstLastAfterFilter" data-name = "ameba::rule::performance::firstlastafterfilter" >
< a href = "../Ameba/Rule/Performance/FirstLastAfterFilter.html" > FirstLastAfterFilter< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/FlattenAfterMap" data-name = "ameba::rule::performance::flattenaftermap" >
< a href = "../Ameba/Rule/Performance/FlattenAfterMap.html" > FlattenAfterMap< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Performance/MapInsteadOfBlock" data-name = "ameba::rule::performance::mapinsteadofblock" >
< a href = "../Ameba/Rule/Performance/MapInsteadOfBlock.html" > MapInsteadOfBlock< / a >
< / li >
2023-07-10 14:19:26 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/MinMaxAfterMap" data-name = "ameba::rule::performance::minmaxaftermap" >
< a href = "../Ameba/Rule/Performance/MinMaxAfterMap.html" > MinMaxAfterMap< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Performance/SizeAfterFilter" data-name = "ameba::rule::performance::sizeafterfilter" >
< a href = "../Ameba/Rule/Performance/SizeAfterFilter.html" > SizeAfterFilter< / a >
< / li >
< / ul >
< / li >
< li class = "parent " data-id = "ameba/Ameba/Rule/Style" data-name = "ameba::rule::style" >
< a href = "../Ameba/Rule/Style.html" > Style< / a >
< ul >
2021-12-09 20:34:45 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/GuardClause" data-name = "ameba::rule::style::guardclause" >
< a href = "../Ameba/Rule/Style/GuardClause.html" > GuardClause< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/IsAFilter" data-name = "ameba::rule::style::isafilter" >
< a href = "../Ameba/Rule/Style/IsAFilter.html" > IsAFilter< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/IsANil" data-name = "ameba::rule::style::isanil" >
< a href = "../Ameba/Rule/Style/IsANil.html" > IsANil< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/LargeNumbers" data-name = "ameba::rule::style::largenumbers" >
< a href = "../Ameba/Rule/Style/LargeNumbers.html" > LargeNumbers< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/NegatedConditionsInUnless" data-name = "ameba::rule::style::negatedconditionsinunless" >
< a href = "../Ameba/Rule/Style/NegatedConditionsInUnless.html" > NegatedConditionsInUnless< / a >
< / li >
2022-11-19 23:42:38 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/ParenthesesAroundCondition" data-name = "ameba::rule::style::parenthesesaroundcondition" >
< a href = "../Ameba/Rule/Style/ParenthesesAroundCondition.html" > ParenthesesAroundCondition< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantBegin" data-name = "ameba::rule::style::redundantbegin" >
< a href = "../Ameba/Rule/Style/RedundantBegin.html" > RedundantBegin< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantNext" data-name = "ameba::rule::style::redundantnext" >
< a href = "../Ameba/Rule/Style/RedundantNext.html" > RedundantNext< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/RedundantReturn" data-name = "ameba::rule::style::redundantreturn" >
< a href = "../Ameba/Rule/Style/RedundantReturn.html" > RedundantReturn< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Rule/Style/UnlessElse" data-name = "ameba::rule::style::unlesselse" >
< a href = "../Ameba/Rule/Style/UnlessElse.html" > UnlessElse< / a >
< / li >
2021-02-24 08:11:10 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/VerboseBlock" data-name = "ameba::rule::style::verboseblock" >
< a href = "../Ameba/Rule/Style/VerboseBlock.html" > VerboseBlock< / a >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Rule/Style/WhileTrue" data-name = "ameba::rule::style::whiletrue" >
< a href = "../Ameba/Rule/Style/WhileTrue.html" > WhileTrue< / a >
< / li >
< / ul >
< / li >
< / ul >
< / li >
2021-11-01 19:25:45 +00:00
< li class = "parent " data-id = "ameba/Ameba/Runner" data-name = "ameba::runner" >
2021-01-11 14:49:07 +00:00
< a href = "../Ameba/Runner.html" > Runner< / a >
2021-11-01 19:25:45 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/Runner/InfiniteCorrectionLoopError" data-name = "ameba::runner::infinitecorrectionlooperror" >
< a href = "../Ameba/Runner/InfiniteCorrectionLoopError.html" > InfiniteCorrectionLoopError< / a >
< / li >
< / ul >
2021-01-11 14:49:07 +00:00
< / li >
< li class = " " data-id = "ameba/Ameba/Severity" data-name = "ameba::severity" >
< a href = "../Ameba/Severity.html" > Severity< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/SeverityYamlConverter" data-name = "ameba::severityyamlconverter" >
< a href = "../Ameba/SeverityYamlConverter.html" > SeverityYamlConverter< / a >
< / li >
2021-11-01 19:25:45 +00:00
< li class = "parent open current" data-id = "ameba/Ameba/Source" data-name = "ameba::source" >
2021-01-11 14:49:07 +00:00
< a href = "../Ameba/Source.html" > Source< / a >
2021-11-01 19:25:45 +00:00
< ul >
< li class = " " data-id = "ameba/Ameba/Source/Corrector" data-name = "ameba::source::corrector" >
< a href = "../Ameba/Source/Corrector.html" > Corrector< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Source/Rewriter" data-name = "ameba::source::rewriter" >
< a href = "../Ameba/Source/Rewriter.html" > Rewriter< / a >
< / li >
< / ul >
2021-01-11 14:49:07 +00:00
< / li >
2021-10-22 17:56:12 +00:00
< li class = "parent " data-id = "ameba/Ameba/Spec" data-name = "ameba::spec" >
< a href = "../Ameba/Spec.html" > Spec< / a >
< ul >
< li class = " " data-id = "ameba/Ameba/Spec/AnnotatedSource" data-name = "ameba::spec::annotatedsource" >
< a href = "../Ameba/Spec/AnnotatedSource.html" > AnnotatedSource< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/BeValid" data-name = "ameba::spec::bevalid" >
< a href = "../Ameba/Spec/BeValid.html" > BeValid< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/BeValidExpectation" data-name = "ameba::spec::bevalidexpectation" >
< a href = "../Ameba/Spec/BeValidExpectation.html" > BeValidExpectation< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/ExpectIssue" data-name = "ameba::spec::expectissue" >
< a href = "../Ameba/Spec/ExpectIssue.html" > ExpectIssue< / a >
< / li >
< li class = " " data-id = "ameba/Ameba/Spec/Util" data-name = "ameba::spec::util" >
< a href = "../Ameba/Spec/Util.html" > Util< / a >
< / li >
< / ul >
< / li >
2021-01-11 14:49:07 +00:00
< li class = " " data-id = "ameba/Ameba/Tokenizer" data-name = "ameba::tokenizer" >
< a href = "../Ameba/Tokenizer.html" > Tokenizer< / a >
< / li >
< / ul >
< / li >
< / ul >
< / div >
< / div >
< div class = "main-content" >
< h1 class = "type-name" >
2023-10-09 21:48:57 +00:00
< span class = "kind" > class< / span > Ameba::< wbr > Source
2021-01-11 14:49:07 +00:00
< / h1 >
< ul class = "superclass-hierarchy" > < li class = "superclass" > < a href = "../Ameba/Source.html" > Ameba::Source< / a > < / li > < li class = "superclass" > Reference< / li > < li class = "superclass" > Object< / li > < / ul >
< h2 >
< a id = "overview" class = "anchor" href = "#overview" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Overview
< / h2 >
< p > An entity that represents a Crystal source file.
Has path, lines of code and issues reported by rules.< / p >
< h2 >
< a id = "included-modules" class = "anchor" href = "#included-modules" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Included Modules
< / h2 >
< ul class = "other-types-list" >
< li class = "other-type" > < a href = "../Ameba/InlineComments.html" > Ameba::InlineComments< / a > < / li >
< li class = "other-type" > < a href = "../Ameba/Reportable.html" > Ameba::Reportable< / a > < / li >
2021-10-22 17:56:12 +00:00
< li class = "other-type" > < a href = "../Ameba/Spec/Util.html" > Ameba::Spec::Util< / a > < / li >
2021-01-11 14:49:07 +00:00
< / ul >
< h2 >
< a id = "defined-in" class = "anchor" href = "#defined-in" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Defined in:
< / h2 >
2021-01-12 10:04:15 +00:00
2023-12-28 14:33:31 +00:00
< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L4" target = "_blank" >
2021-01-12 10:04:15 +00:00
ameba/source.cr
< / a >
< br / >
2021-10-22 17:56:12 +00:00
2023-12-28 14:33:31 +00:00
< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source/corrector.cr#L3" target = "_blank" >
2021-11-01 19:25:45 +00:00
ameba/source/corrector.cr
< / a >
< br / >
2023-12-28 14:33:31 +00:00
< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source/rewriter.cr#L1" target = "_blank" >
2021-11-01 19:25:45 +00:00
ameba/source/rewriter.cr
< / a >
< br / >
2023-12-28 14:33:31 +00:00
< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/spec/support.cr#L8" target = "_blank" >
2021-10-22 17:56:12 +00:00
ameba/spec/support.cr
< / a >
< br / >
2021-01-11 14:49:07 +00:00
< h2 >
< a id = "constructors" class = "anchor" href = "#constructors" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Constructors
< / h2 >
< ul class = "list-summary" >
2021-10-22 17:56:12 +00:00
< li class = "entry-summary" >
2022-08-01 21:51:27 +00:00
< a href = "#new%28code%3AString%2Cpath%3AString%3D%22%22%2Cnormalize%3Dtrue%29-class-method" class = "signature" > < strong > .new< / strong > (code : String, path : String = < span class = "s" > " " < / span > , normalize = < span class = "n" > true< / span > )< / a >
2021-10-22 17:56:12 +00:00
< / li >
2021-01-11 14:49:07 +00:00
< li class = "entry-summary" >
2022-08-01 21:51:27 +00:00
< a href = "#new%28code%3AString%2Cpath%3AString%3D%22%22%29-class-method" class = "signature" > < strong > .new< / strong > (code : String, path : String = < span class = "s" > " " < / span > )< / a >
2021-01-11 14:49:07 +00:00
2021-10-19 09:45:33 +00:00
< div class = "summary" > < p > Creates a new source by < code > < a href = "../Ameba/Source.html#code%3AString-instance-method" > #code< / a > < / code > and < code > < a href = "../Ameba/Source.html#path%3AString-instance-method" > #path< / a > < / code > .< / p > < / div >
2021-01-11 14:49:07 +00:00
< / li >
< / ul >
< h2 >
< a id = "instance-method-summary" class = "anchor" href = "#instance-method-summary" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Instance Method Summary
< / h2 >
< ul class = "list-summary" >
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#ast%3ACrystal%3A%3AASTNode-instance-method" class = "signature" > < strong > #ast< / strong > : Crystal::ASTNode< / a >
2021-01-11 14:49:07 +00:00
< div class = "summary" > < p > Returns AST nodes constructed by < code > Crystal::Parser< / code > .< / p > < / div >
< / li >
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#code%3AString-instance-method" class = "signature" > < strong > #code< / strong > : String< / a >
2021-01-11 14:49:07 +00:00
< div class = "summary" > < p > Crystal code (content of a source file).< / p > < / div >
< / li >
2021-11-01 19:25:45 +00:00
< li class = "entry-summary" >
2022-12-22 11:11:53 +00:00
< a href = "#correct%3F-instance-method" class = "signature" > < strong > #correct?< / strong > < / a >
2021-11-01 19:25:45 +00:00
< div class = "summary" > < p > Corrects any correctable issues and updates < code > < a href = "../Ameba/Source.html#code%3AString-instance-method" > #code< / a > < / code > .< / p > < / div >
< / li >
2021-01-11 14:49:07 +00:00
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#fullpath%3AString-instance-method" class = "signature" > < strong > #fullpath< / strong > : String< / a >
2021-01-11 14:49:07 +00:00
< / li >
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#lines%3AArray%28String%29-instance-method" class = "signature" > < strong > #lines< / strong > : Array(String)< / a >
2021-01-11 14:49:07 +00:00
2022-11-14 16:29:48 +00:00
< div class = "summary" > < p > Returns lines of code split by new line character.< / p > < / div >
2021-01-11 14:49:07 +00:00
< / li >
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#matches_path%3F%28filepath%29-instance-method" class = "signature" > < strong > #matches_path?< / strong > (filepath)< / a >
2021-01-11 14:49:07 +00:00
2022-11-29 18:15:10 +00:00
< div class = "summary" > < p > Returns < code > true< / code > if < em > filepath< / em > matches the source's path, < code > false< / code > otherwise.< / p > < / div >
2021-01-11 14:49:07 +00:00
< / li >
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#path%3AString-instance-method" class = "signature" > < strong > #path< / strong > : String< / a >
2021-01-11 14:49:07 +00:00
< div class = "summary" > < p > Path to the source file.< / p > < / div >
< / li >
2023-01-03 18:26:19 +00:00
< li class = "entry-summary" >
< a href = "#pos%28location%3ACrystal%3A%3ALocation%2Cendend_pos%3Dfalse%29%3AInt32-instance-method" class = "signature" > < strong > #pos< / strong > (location : Crystal::Location, end end_pos = < span class = "n" > false< / span > ) : Int32< / a >
< div class = "summary" > < p > Converts an AST location to a string position.< / p > < / div >
< / li >
2021-02-24 08:11:10 +00:00
< li class = "entry-summary" >
2021-10-19 09:45:33 +00:00
< a href = "#spec%3F-instance-method" class = "signature" > < strong > #spec?< / strong > < / a >
2021-02-24 08:11:10 +00:00
< div class = "summary" > < p > Returns < code > true< / code > if the source is a spec file, < code > false< / code > otherwise.< / p > < / div >
< / li >
2021-01-11 14:49:07 +00:00
< / ul >
< div class = "methods-inherited" >
2021-10-22 17:56:12 +00:00
< h3 > Instance methods inherited from module < code > < a href = "../Ameba/Spec/Util.html" > Ameba::Spec::Util< / a > < / code > < / h3 >
< a href = "../Ameba/Spec/Util.html#normalize_code%28code%2Cseparator%3D%27%5Cn%27%29-instance-method" class = "tooltip" >
< span > normalize_code(code, separator = < span class = "s" > ' \n' < / span > )< / span >
normalize_code< / a >
2021-01-11 14:49:07 +00:00
< h3 > Instance methods inherited from module < code > < a href = "../Ameba/Reportable.html" > Ameba::Reportable< / a > < / code > < / h3 >
2023-01-10 12:25:04 +00:00
< a href = "../Ameba/Reportable.html#add_issue%28rule%2Clocation%3ACrystal%3A%3ALocation%7CNil%2Cend_location%3ACrystal%3A%3ALocation%7CNil%2Cmessage%3AString%2Cstatus%3AIssue%3A%3AStatus%7CNil%3Dnil%2Cblock%3ASource%3A%3ACorrector-%3E%7CNil%3Dnil%29%3AIssue-instance-method" class = "tooltip" >
2023-11-13 18:17:23 +00:00
< span > add_issue(rule, location : Crystal::Location | Nil, end_location : Crystal::Location | Nil, message : String, status : Issue::Status | Nil = < span class = "n" > nil< / span > , block : Source::Corrector -> | Nil = < span class = "n" > nil< / span > ) : Issue< br / > add_issue(rule, location : Crystal::Location | Nil, end_location : Crystal::Location | Nil, message : String, status : Issue::Status | Nil = < span class = "n" > nil< / span > , & block : Source::Corrector -> ) : Issue< br / > add_issue(rule, token : Crystal::Token, message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , block : Source::Corrector -> | Nil = < span class = "n" > nil< / span > ) : Issue< br / > add_issue(rule, location : Tuple(Int32, Int32), message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , block : Source::Corrector -> | Nil = < span class = "n" > nil< / span > ) : Issue< br / > add_issue(rule, location : Tuple(Int32, Int32), end_location : Tuple(Int32, Int32), message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , block : Source::Corrector -> | Nil = < span class = "n" > nil< / span > ) : Issue< br / > add_issue(rule, node : Crystal::ASTNode, message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , block : Source::Corrector -> | Nil = < span class = "n" > nil< / span > , *, prefer_name_location = < span class = "n" > false< / span > ) : Issue< br / > add_issue(rule, location : Tuple(Int32, Int32), message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , & block : Source::Corrector -> ) : Issue< br / > add_issue(rule, token : Crystal::Token, message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , & block : Source::Corrector -> ) : Issue< br / > add_issue(rule, location : Tuple(Int32, Int32), end_location : Tuple(Int32, Int32), message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , & block : Source::Corrector -> ) : Issue< br / > add_issue(rule, node : Crystal::ASTNode, message, status : Issue::Status | Nil = < span class = "n" > nil< / span > , *, prefer_name_location = < span class = "n" > false< / span > , & block : Source::Corrector -> ) : Issue< / span >
2021-01-11 14:49:07 +00:00
add_issue< / a > ,
< a href = "../Ameba/Reportable.html#issues-instance-method" class = "tooltip" >
< span > issues< / span >
issues< / a > ,
2021-10-19 09:45:33 +00:00
< a href = "../Ameba/Reportable.html#valid%3F-instance-method" class = "tooltip" >
2021-01-11 14:49:07 +00:00
< span > valid?< / span >
valid?< / a >
2023-11-13 18:17:23 +00:00
< h3 > Instance methods inherited from module < code > < a href = "../Ameba/AST/Util.html" > Ameba::AST::Util< / a > < / code > < / h3 >
< a href = "../Ameba/AST/Util.html#abort%3F%28node%29-instance-method" class = "tooltip" >
< span > abort?(node)< / span >
abort?< / a > ,
< a href = "../Ameba/AST/Util.html#control_exp_code%28node%3ACrystal%3A%3AControlExpression%2Ccode_lines%29-instance-method" class = "tooltip" >
< span > control_exp_code(node : Crystal::ControlExpression, code_lines)< / span >
control_exp_code< / a > ,
< a href = "../Ameba/AST/Util.html#dynamic_literal%3F%28node%29%3ABool-instance-method" class = "tooltip" >
< span > dynamic_literal?(node) : Bool< / span >
dynamic_literal?< / a > ,
< a href = "../Ameba/AST/Util.html#exit%3F%28node%29-instance-method" class = "tooltip" >
< span > exit?(node)< / span >
exit?< / a > ,
< a href = "../Ameba/AST/Util.html#flow_command%3F%28node%2Cin_loop%29-instance-method" class = "tooltip" >
< span > flow_command?(node, in_loop)< / span >
flow_command?< / a > ,
< a href = "../Ameba/AST/Util.html#flow_expression%3F%28node%2Cin_loop%3Dfalse%29-instance-method" class = "tooltip" >
< span > flow_expression?(node, in_loop = < span class = "n" > false< / span > )< / span >
flow_expression?< / a > ,
< a href = "../Ameba/AST/Util.html#literal%3F%28node%29%3ABool-instance-method" class = "tooltip" >
< span > literal?(node) : Bool< / span >
literal?< / a > ,
< a href = "../Ameba/AST/Util.html#loop%3F%28node%29-instance-method" class = "tooltip" >
< span > loop?(node)< / span >
loop?< / a > ,
< a href = "../Ameba/AST/Util.html#name_end_location%28node%29-instance-method" class = "tooltip" >
< span > name_end_location(node)< / span >
name_end_location< / a > ,
< a href = "../Ameba/AST/Util.html#name_location%28node%29-instance-method" class = "tooltip" >
< span > name_location(node)< / span >
name_location< / a > ,
< a href = "../Ameba/AST/Util.html#name_size%28node%29-instance-method" class = "tooltip" >
< span > name_size(node)< / span >
name_size< / a > ,
< a href = "../Ameba/AST/Util.html#node_source%28node%2Ccode_lines%29-instance-method" class = "tooltip" >
< span > node_source(node, code_lines)< / span >
node_source< / a > ,
< a href = "../Ameba/AST/Util.html#path_named%3F%28node%2Cname%29%3ABool-instance-method" class = "tooltip" >
< span > path_named?(node, name) : Bool< / span >
path_named?< / a > ,
< a href = "../Ameba/AST/Util.html#raise%3F%28node%29-instance-method" class = "tooltip" >
< span > raise?(node)< / span >
raise?< / a > ,
< a href = "../Ameba/AST/Util.html#source_between%28loc%2Cend_loc%2Ccode_lines%29%3AString%7CNil-instance-method" class = "tooltip" >
< span > source_between(loc, end_loc, code_lines) : String | Nil< / span >
source_between< / a > ,
< a href = "../Ameba/AST/Util.html#static_literal%3F%28node%29%3ABool-instance-method" class = "tooltip" >
< span > static_literal?(node) : Bool< / span >
static_literal?< / a >
2021-01-11 14:49:07 +00:00
< h3 > Instance methods inherited from module < code > < a href = "../Ameba/InlineComments.html" > Ameba::InlineComments< / a > < / code > < / h3 >
2021-10-19 09:45:33 +00:00
< a href = "../Ameba/InlineComments.html#comment%3F%28line_number%3AInt32%29-instance-method" class = "tooltip" >
2021-01-11 14:49:07 +00:00
< span > comment?(line_number : Int32)< / span >
comment?< / a > ,
2023-01-10 12:25:04 +00:00
< a href = "../Ameba/InlineComments.html#location_disabled%3F%28location%3ACrystal%3A%3ALocation%7CNil%2Crule%29-instance-method" class = "tooltip" >
< span > location_disabled?(location : Crystal::Location | Nil, rule)< / span >
2021-01-11 14:49:07 +00:00
location_disabled?< / a > ,
2021-10-19 09:45:33 +00:00
< a href = "../Ameba/InlineComments.html#parse_inline_directive%28line%29-instance-method" class = "tooltip" >
2021-01-11 14:49:07 +00:00
< span > parse_inline_directive(line)< / span >
parse_inline_directive< / a >
< / div >
< h2 >
< a id = "constructor-detail" class = "anchor" href = "#constructor-detail" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Constructor Detail
< / h2 >
2022-08-01 21:51:27 +00:00
< div class = "entry-detail" id = "new(code:String,path:String="",normalize=true)-class-method" >
2021-10-22 17:56:12 +00:00
< div class = "signature" >
2022-08-01 21:51:27 +00:00
def self.< strong > new< / strong > (code : String, path : String = < span class = "s" > " " < / span > , normalize = < span class = "n" > true< / span > )
2021-10-22 17:56:12 +00:00
2022-08-01 21:51:27 +00:00
< a class = "method-permalink" href = "#new%28code%3AString%2Cpath%3AString%3D%22%22%2Cnormalize%3Dtrue%29-class-method" > #< / a >
2021-10-22 17:56:12 +00:00
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/spec/support.cr#L11" target = "_blank" > View source< / a > ]
2021-10-22 17:56:12 +00:00
< / div >
< / div >
2022-08-01 21:51:27 +00:00
< div class = "entry-detail" id = "new(code:String,path:String="")-class-method" >
2021-01-11 14:49:07 +00:00
< div class = "signature" >
2022-08-01 21:51:27 +00:00
def self.< strong > new< / strong > (code : String, path : String = < span class = "s" > " " < / span > )
2021-01-11 14:49:07 +00:00
2022-08-01 21:51:27 +00:00
< a class = "method-permalink" href = "#new%28code%3AString%2Cpath%3AString%3D%22%22%29-class-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
2021-10-19 09:45:33 +00:00
< p > Creates a new source by < code > < a href = "../Ameba/Source.html#code%3AString-instance-method" > #code< / a > < / code > and < code > < a href = "../Ameba/Source.html#path%3AString-instance-method" > #path< / a > < / code > .< / p >
2021-01-11 14:49:07 +00:00
< p > For example:< / p >
2021-01-31 14:41:59 +00:00
< pre > < code class = "language-crystal" > path < span class = "o" > =< / span > < span class = "s" > " ./src/source.cr" < / span >
2022-10-14 18:10:09 +00:00
< span class = "t" > Ameba< / span > < span class = "t" > ::< / span > < span class = "t" > Source< / span > .new < span class = "t" > File< / span > .read(path), path< / code > < / pre >
2021-01-11 14:49:07 +00:00
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L22" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
< h2 >
< a id = "instance-method-detail" class = "anchor" href = "#instance-method-detail" >
< svg class = "octicon-link" aria-hidden = "true" >
< use href = "#octicon-link" / >
< / svg >
< / a >
Instance Method Detail
< / h2 >
2021-03-23 16:21:42 +00:00
< div class = "entry-detail" id = "ast:Crystal::ASTNode-instance-method" >
2021-01-11 14:49:07 +00:00
< div class = "signature" >
2021-03-23 16:21:42 +00:00
def < strong > ast< / strong > : Crystal::ASTNode
2021-01-11 14:49:07 +00:00
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#ast%3ACrystal%3A%3AASTNode-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
< p > Returns AST nodes constructed by < code > Crystal::Parser< / code > .< / p >
2022-10-14 18:10:09 +00:00
< pre > < code class = "language-crystal" > source < span class = "o" > =< / span > < span class = "t" > Ameba< / span > < span class = "t" > ::< / span > < span class = "t" > Source< / span > .new code, path
2021-01-11 14:49:07 +00:00
source.ast< / code > < / pre >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L59" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "code:String-instance-method" >
< div class = "signature" >
def < strong > code< / strong > : String
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#code%3AString-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
< p > Crystal code (content of a source file).< / p >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L12" target = "_blank" > View source< / a > ]
2021-11-01 19:25:45 +00:00
< / div >
< / div >
2022-12-22 11:11:53 +00:00
< div class = "entry-detail" id = "correct?-instance-method" >
2021-11-01 19:25:45 +00:00
< div class = "signature" >
2022-12-22 11:11:53 +00:00
def < strong > correct?< / strong >
2021-11-01 19:25:45 +00:00
2022-12-22 11:11:53 +00:00
< a class = "method-permalink" href = "#correct%3F-instance-method" > #< / a >
2021-11-01 19:25:45 +00:00
< / div >
< div class = "doc" >
< p > Corrects any correctable issues and updates < code > < a href = "../Ameba/Source.html#code%3AString-instance-method" > #code< / a > < / code > .
Returns < code > false< / code > if no issues were corrected.< / p >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L27" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
2021-03-23 16:21:42 +00:00
< div class = "entry-detail" id = "fullpath:String-instance-method" >
2021-01-11 14:49:07 +00:00
< div class = "signature" >
2021-03-23 16:21:42 +00:00
def < strong > fullpath< / strong > : String
2021-01-11 14:49:07 +00:00
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#fullpath%3AString-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L66" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
2021-03-23 16:21:42 +00:00
< div class = "entry-detail" id = "lines:Array(String)-instance-method" >
2021-01-11 14:49:07 +00:00
< div class = "signature" >
2021-03-23 16:21:42 +00:00
def < strong > lines< / strong > : Array(String)
2021-01-11 14:49:07 +00:00
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#lines%3AArray%28String%29-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
2022-11-14 16:29:48 +00:00
< p > Returns lines of code split by new line character.
2021-10-19 09:45:33 +00:00
Since < code > < a href = "../Ameba/Source.html#code%3AString-instance-method" > #code< / a > < / code > is immutable and can't be changed, this
2021-01-11 14:49:07 +00:00
method caches lines in an instance variable, so calling
it second time will not perform a split, but will return
lines instantly.< / p >
2022-10-14 18:10:09 +00:00
< pre > < code class = "language-crystal" > source < span class = "o" > =< / span > < span class = "t" > Ameba< / span > < span class = "t" > ::< / span > < span class = "t" > Source< / span > .new < span class = "s" > " a = 1\nb = 2" < / span > , path
2021-01-11 14:49:07 +00:00
source.lines < span class = "c" > # => [" a = 1" , " b = 2" ]< / span > < / code > < / pre >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L51" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "matches_path?(filepath)-instance-method" >
< div class = "signature" >
def < strong > matches_path?< / strong > (filepath)
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#matches_path%3F%28filepath%29-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
2022-11-29 18:15:10 +00:00
< p > Returns < code > true< / code > if < em > filepath< / em > matches the source's path, < code > false< / code > otherwise.< / p >
2021-01-11 14:49:07 +00:00
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L76" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "path:String-instance-method" >
< div class = "signature" >
def < strong > path< / strong > : String
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#path%3AString-instance-method" > #< / a >
2021-01-11 14:49:07 +00:00
< / div >
< div class = "doc" >
< p > Path to the source file.< / p >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L9" target = "_blank" > View source< / a > ]
2023-01-03 18:26:19 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "pos(location:Crystal::Location,endend_pos=false):Int32-instance-method" >
< div class = "signature" >
def < strong > pos< / strong > (location : < a href = "../Crystal/Location.html" > Crystal::Location< / a > , end end_pos = < span class = "n" > false< / span > ) : Int32
< a class = "method-permalink" href = "#pos%28location%3ACrystal%3A%3ALocation%2Cendend_pos%3Dfalse%29%3AInt32-instance-method" > #< / a >
< / div >
< div class = "doc" >
< p > Converts an AST location to a string position.< / p >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L81" target = "_blank" > View source< / a > ]
2021-02-24 08:11:10 +00:00
< / div >
< / div >
< div class = "entry-detail" id = "spec?-instance-method" >
< div class = "signature" >
def < strong > spec?< / strong >
2021-10-19 09:45:33 +00:00
< a class = "method-permalink" href = "#spec%3F-instance-method" > #< / a >
2021-02-24 08:11:10 +00:00
< / div >
< div class = "doc" >
< p > Returns < code > true< / code > if the source is a spec file, < code > false< / code > otherwise.< / p >
< / div >
< br / >
< div >
2023-12-28 14:33:31 +00:00
[< a href = "https://github.com/crystal-ameba/ameba/blob/c9bc01f/src/ameba/source.cr#L71" target = "_blank" > View source< / a > ]
2021-01-12 10:04:15 +00:00
2021-01-11 14:49:07 +00:00
< / div >
< / div >
< / div >
< / body >
< / html >