+

+ + class Ameba::Rule::Style::GuardClause + +

+ + + + + + + +

+ + + + Overview +

+ +

Use a guard clause instead of wrapping the code inside a conditional +expression

+
# bad
+def test
+  if something
+    work
+  end
+end
+
+# good
+def test
+  return unless something
+
+  work
+end
+
+# also good
+def test
+  work if something
+end
+
+# bad
+if something
+  raise "exception"
+else
+  ok
+end
+
+# good
+raise "exception" if something
+ok
+
+# bad
+if something
+  foo || raise("exception")
+else
+  ok
+end
+
+# good
+foo || raise("exception") if something
+ok
+

YAML configuration example:

+
Style/GuardClause:
+  Enabled: true
+ + + + + +

+ + + + Included Modules +

+
    + +
  • Ameba::AST::Util
  • + +
  • YAML::Serializable
  • + +
  • YAML::Serializable::Strict
  • + +
+ + + + + + + + + + +

+ + + + Defined in: +

+ + + + ameba/rule/style/guard_clause.cr + + +
+ + + + + +

+ + + + Constant Summary +

+ +
+ +
+ MSG = "Use a guard clause (`%s`) instead of wrapping the code inside a conditional expression." +
+ + +
+ + + +

+ + + + Constructors +

+ + + + + + +

+ + + + Instance Method Summary +

+ + + + + + + + + +

+ + + + Constructor Detail +

+ +
+
+ + def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) + + # +
+ +
+
+ +
+
+ +
+
+ + def self.new(config = nil) + + # +
+ +
+ +

Use a guard clause instead of wrapping the code inside a conditional +expression

+
# bad
+def test
+  if something
+    work
+  end
+end
+
+# good
+def test
+  return unless something
+
+  work
+end
+
+# also good
+def test
+  work if something
+end
+
+# bad
+if something
+  raise "exception"
+else
+  ok
+end
+
+# good
+raise "exception" if something
+ok
+
+# bad
+if something
+  foo || raise("exception")
+else
+  ok
+end
+
+# good
+foo || raise("exception") if something
+ok
+

YAML configuration example:

+
Style/GuardClause:
+  Enabled: true
+
+ +
+
+ + [View source] + +
+
+ + + + + + +

+ + + + Instance Method Detail +

+ +
+
+ + def description : String + + # +
+ +
+
+ +
+
+ +
+
+ + def description=(description : String) + + # +
+ +
+
+ +
+
+ +
+
+ + def enabled : Bool + + # +
+ +
+
+ +
+
+ +
+
+ + def enabled=(enabled : Bool) + + # +
+ +
+
+ +
+
+ +
+
+ + def excluded : Array(String)? + + # +
+ +
+
+ +
+
+ +
+
+ + def excluded=(excluded : Array(String)?) + + # +
+ +
+
+ +
+
+ +
+
+ + def guard_clause_source(source, guard_clause, parent) + + # +
+ +
+
+ + [View source] + +
+
+ +
+
+ + def severity : Ameba::Severity + + # +
+ +
+
+ +
+
+ +
+
+ + def severity=(severity) + + # +
+ +
+
+ +
+
+ +
+
+ + def test(source, node : Crystal::Def) + + # +
+ +
+
+ + [View source] + +
+
+ +
+
+ + def test(source, node : Crystal::If | Crystal::Unless) + + # +
+ +
+
+ + [View source] + +
+
+ +
+
+ + def test(source) + + # +
+ +
+
+ + [View source] + +
+
+ + + + + +