Skip to content

Commit e420ec7

Browse files
committed
Add scalafmt and reformat sources
1 parent ec5f9e3 commit e420ec7

File tree

75 files changed

+4218
-1421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+4218
-1421
lines changed

.scalafmt.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version = 2.7.5
2+
3+
preset=default

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ See also the [CHANGELOG](https://github.com/cucumber/cucumber-jvm/blob/master/CH
1111

1212
### Added
1313

14+
- [Build] Setup formatting using `scalafmt`
15+
1416
### Changed
1517

1618
### Deprecated

build.sbt

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
import ReleaseTransformations._
32
import xerial.sbt.Sonatype.sonatypeSettings
43

@@ -7,15 +6,27 @@ import xerial.sbt.Sonatype.sonatypeSettings
76
ThisBuild / organization := "io.cucumber"
87
ThisBuild / organizationName := "Cucumber"
98
ThisBuild / organizationHomepage := Some(url("https://github.com/cucumber"))
10-
ThisBuild / scmInfo := Some(ScmInfo(url("https://github.com/cucumber/cucumber-jvm-scala"), "scm:[email protected]:cucumber/cucumber-jvm-scala.git"))
9+
ThisBuild / scmInfo := Some(
10+
ScmInfo(
11+
url("https://github.com/cucumber/cucumber-jvm-scala"),
12+
"scm:[email protected]:cucumber/cucumber-jvm-scala.git"
13+
)
14+
)
1115
ThisBuild / developers := List(
12-
Developer("cucumber", "Cucumber Developers", "[email protected]", url("https://github.com/cucumber"))
16+
Developer(
17+
"cucumber",
18+
"Cucumber Developers",
19+
20+
url("https://github.com/cucumber")
21+
)
1322
)
1423
ThisBuild / licenses := Seq(
1524
"MIT License" -> url("http://www.opensource.org/licenses/mit-license")
1625
)
1726
ThisBuild / description := "Cucumber for Scala"
18-
ThisBuild / homepage := Some(url("https://github.com/cucumber/cucumber-jvm-scala"))
27+
ThisBuild / homepage := Some(
28+
url("https://github.com/cucumber/cucumber-jvm-scala")
29+
)
1930

2031
// Scala versions
2132

@@ -42,9 +53,9 @@ lazy val commonSettings = Seq(
4253
case Some((2, 11)) => ScalacOptions.scalacOptions211
4354
case Some((2, 12)) => ScalacOptions.scalacOptions212
4455
case Some((2, 13)) => ScalacOptions.scalacOptions213
45-
case _ => Seq()
56+
case _ => Seq()
4657
}
47-
},
58+
}
4859
)
4960

5061
lazy val root = (project in file("."))
@@ -64,31 +75,31 @@ lazy val cucumberScala = (projectMatrix in file("cucumber-scala"))
6475
name := "cucumber-scala",
6576
libraryDependencies ++= Seq(
6677
"io.cucumber" % "cucumber-core" % cucumberVersion,
67-
6878
// Users have to provide it (for JacksonDefaultDataTableTransformer)
6979
"com.fasterxml.jackson.core" % "jackson-databind" % jacksonVersion % Provided,
7080
"com.fasterxml.jackson.module" %% "jackson-module-scala" % jacksonVersion % Provided,
71-
7281
"junit" % "junit" % junitVersion % Test,
7382
"io.cucumber" % "cucumber-junit" % cucumberVersion % Test,
7483
"org.mockito" %% "mockito-scala" % mockitoScalaVersion % Test
7584
),
7685
libraryDependencies ++= {
7786
CrossVersion.partialVersion(scalaVersion.value) match {
78-
case Some((2, n)) if n <= 12 => List("org.scala-lang.modules" %% "scala-collection-compat" % "2.3.0")
87+
case Some((2, n)) if n <= 12 =>
88+
List("org.scala-lang.modules" %% "scala-collection-compat" % "2.3.0")
7989
case _ => Nil
8090
}
8191
},
8292
unmanagedSourceDirectories in Compile ++= {
8393
val sourceDir = (sourceDirectory in Compile).value
8494
CrossVersion.partialVersion(scalaVersion.value) match {
8595
case Some((2, n)) if n <= 11 => Seq(sourceDir / "scala-2.11")
86-
case _ => Seq()
96+
case _ => Seq()
8797
}
8898
},
8999
// Generate I18n traits
90100
Compile / sourceGenerators += Def.task {
91-
val file = (Compile / sourceManaged).value / "io/cucumber/scala" / "I18n.scala"
101+
val file =
102+
(Compile / sourceManaged).value / "io/cucumber/scala" / "I18n.scala"
92103
IO.write(file, I18nGenerator.i18n)
93104
Seq(file)
94105
}.taskValue

cucumber-scala/src/main/scala-2.11/io/cucumber/scala/package.scala

Lines changed: 66 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,90 +4,128 @@ import java.lang.reflect.Type
44
import java.util.function.Supplier
55
import java.util.{List => JavaList, Map => JavaMap}
66

7-
import io.cucumber.cucumberexpressions.{CaptureGroupTransformer, ParameterByTypeTransformer}
7+
import io.cucumber.cucumberexpressions.{
8+
CaptureGroupTransformer,
9+
ParameterByTypeTransformer
10+
}
811
import io.cucumber.datatable._
912
import io.cucumber.docstring.DocStringType.Transformer
1013

11-
/**
12-
* Only for Scala 2.11 which does not support some Single Abstract Method
13-
*/
14+
/** Only for Scala 2.11 which does not support some Single Abstract Method
15+
*/
1416
package object scala {
1517

1618
import language.implicitConversions
1719

1820
// Cucumber Scala Types
1921

20-
implicit def function1AsDataTableEntryDefinitionBody[T](f: (Map[String, String]) => T): DataTableEntryDefinitionBody[T] = new DataTableEntryDefinitionBody[T] {
22+
implicit def function1AsDataTableEntryDefinitionBody[T](
23+
f: (Map[String, String]) => T
24+
): DataTableEntryDefinitionBody[T] = new DataTableEntryDefinitionBody[T] {
2125
override def transform(entry: Map[String, String]): T = f.apply(entry)
2226
}
2327

24-
implicit def function1AsDataTableOptionalEntryDefinitionBody[T](f: (Map[String, Option[String]]) => T): DataTableOptionalEntryDefinitionBody[T] = new DataTableOptionalEntryDefinitionBody[T] {
25-
override def transform(entry: Map[String, Option[String]]): T = f.apply(entry)
26-
}
28+
implicit def function1AsDataTableOptionalEntryDefinitionBody[T](
29+
f: (Map[String, Option[String]]) => T
30+
): DataTableOptionalEntryDefinitionBody[T] =
31+
new DataTableOptionalEntryDefinitionBody[T] {
32+
override def transform(entry: Map[String, Option[String]]): T =
33+
f.apply(entry)
34+
}
2735

28-
implicit def function1AsDataTableRowDefinitionBody[T](f: (Seq[String]) => T): DataTableRowDefinitionBody[T] = new DataTableRowDefinitionBody[T] {
36+
implicit def function1AsDataTableRowDefinitionBody[T](
37+
f: (Seq[String]) => T
38+
): DataTableRowDefinitionBody[T] = new DataTableRowDefinitionBody[T] {
2939
override def transform(row: Seq[String]): T = f.apply(row)
3040
}
3141

32-
implicit def function1AsDataTableOptionalRowDefinitionBody[T](f: (Seq[Option[String]]) => T): DataTableOptionalRowDefinitionBody[T] = new DataTableOptionalRowDefinitionBody[T] {
33-
override def transform(row: Seq[Option[String]]): T = f.apply(row)
34-
}
42+
implicit def function1AsDataTableOptionalRowDefinitionBody[T](
43+
f: (Seq[Option[String]]) => T
44+
): DataTableOptionalRowDefinitionBody[T] =
45+
new DataTableOptionalRowDefinitionBody[T] {
46+
override def transform(row: Seq[Option[String]]): T = f.apply(row)
47+
}
3548

36-
implicit def function1AsDataTableCellDefinitionBody[T](f: (String) => T): DataTableCellDefinitionBody[T] = new DataTableCellDefinitionBody[T] {
49+
implicit def function1AsDataTableCellDefinitionBody[T](
50+
f: (String) => T
51+
): DataTableCellDefinitionBody[T] = new DataTableCellDefinitionBody[T] {
3752
override def transform(cell: String): T = f.apply(cell)
3853
}
3954

40-
implicit def function1AsDataTableOptionalCellDefinitionBody[T](f: (Option[String]) => T): DataTableOptionalCellDefinitionBody[T] = new DataTableOptionalCellDefinitionBody[T] {
41-
override def transform(cell: Option[String]): T = f.apply(cell)
42-
}
55+
implicit def function1AsDataTableOptionalCellDefinitionBody[T](
56+
f: (Option[String]) => T
57+
): DataTableOptionalCellDefinitionBody[T] =
58+
new DataTableOptionalCellDefinitionBody[T] {
59+
override def transform(cell: Option[String]): T = f.apply(cell)
60+
}
4361

44-
implicit def function1AsDataTableDefinitionBody[T](f: (DataTable) => T): DataTableDefinitionBody[T] = new DataTableDefinitionBody[T] {
62+
implicit def function1AsDataTableDefinitionBody[T](
63+
f: (DataTable) => T
64+
): DataTableDefinitionBody[T] = new DataTableDefinitionBody[T] {
4565
override def transform(dataTable: DataTable): T = f.apply(dataTable)
4666
}
4767

4868
// Cucumber Core Types
4969

50-
implicit def function1AsTableCellTransformer[T](f: String => T): TableCellTransformer[T] = {
70+
implicit def function1AsTableCellTransformer[T](
71+
f: String => T
72+
): TableCellTransformer[T] = {
5173
new TableCellTransformer[T] {
5274
override def transform(cell: String): T = f.apply(cell)
5375
}
5476
}
5577

56-
implicit def function1AsTableTransformer[T](f: DataTable => T): TableTransformer[T] = {
78+
implicit def function1AsTableTransformer[T](
79+
f: DataTable => T
80+
): TableTransformer[T] = {
5781
new TableTransformer[T] {
5882
override def transform(table: DataTable): T = f.apply(table)
5983
}
6084
}
6185

62-
implicit def function1AsTableEntryTransformer[T](f: JavaMap[String, String] => T): TableEntryTransformer[T] = {
86+
implicit def function1AsTableEntryTransformer[T](
87+
f: JavaMap[String, String] => T
88+
): TableEntryTransformer[T] = {
6389
new TableEntryTransformer[T] {
6490
override def transform(entry: JavaMap[String, String]): T = f.apply(entry)
6591
}
6692
}
6793

68-
implicit def function1AsTableRowTransformer[T](f: JavaList[String] => T): TableRowTransformer[T] = {
94+
implicit def function1AsTableRowTransformer[T](
95+
f: JavaList[String] => T
96+
): TableRowTransformer[T] = {
6997
new TableRowTransformer[T] {
7098
override def transform(row: JavaList[String]): T = f.apply(row)
7199
}
72100
}
73101

74-
implicit def function1AsTableCellByTypeTransformer(f: (String, Type) => AnyRef): TableCellByTypeTransformer = {
102+
implicit def function1AsTableCellByTypeTransformer(
103+
f: (String, Type) => AnyRef
104+
): TableCellByTypeTransformer = {
75105
new TableCellByTypeTransformer {
76106
override def transform(fromValue: String, toTypeValue: Type): AnyRef = {
77107
f.apply(fromValue, toTypeValue)
78108
}
79109
}
80110
}
81111

82-
implicit def function1AsTableEntryByTypeTransformer(f: (JavaMap[String, String], Type, TableCellByTypeTransformer) => AnyRef): TableEntryByTypeTransformer = {
112+
implicit def function1AsTableEntryByTypeTransformer(
113+
f: (JavaMap[String, String], Type, TableCellByTypeTransformer) => AnyRef
114+
): TableEntryByTypeTransformer = {
83115
new TableEntryByTypeTransformer {
84-
override def transform(fromValue: JavaMap[String, String], toValueType: Type, tableCellByTypeTransformer: TableCellByTypeTransformer): AnyRef = {
116+
override def transform(
117+
fromValue: JavaMap[String, String],
118+
toValueType: Type,
119+
tableCellByTypeTransformer: TableCellByTypeTransformer
120+
): AnyRef = {
85121
f.apply(fromValue, toValueType, tableCellByTypeTransformer)
86122
}
87123
}
88124
}
89125

90-
implicit def function1AsParameterByTypeTransformer(f: (String, Type) => AnyRef): ParameterByTypeTransformer = {
126+
implicit def function1AsParameterByTypeTransformer(
127+
f: (String, Type) => AnyRef
128+
): ParameterByTypeTransformer = {
91129
new ParameterByTypeTransformer {
92130
override def transform(fromValue: String, toValue: Type): AnyRef = {
93131
f.apply(fromValue, toValue)
@@ -103,7 +141,9 @@ package object scala {
103141
}
104142
}
105143

106-
implicit def function1AsCaptureGroupTransformer[T](f: (Array[String]) => T): CaptureGroupTransformer[T] = {
144+
implicit def function1AsCaptureGroupTransformer[T](
145+
f: (Array[String]) => T
146+
): CaptureGroupTransformer[T] = {
107147
new CaptureGroupTransformer[T] {
108148
override def transform(parameterContent: Array[String]): T = {
109149
f.apply(parameterContent)

cucumber-scala/src/main/scala/io/cucumber/scala/AbstractDatatableElementTransformerDefinition.scala

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,23 @@ import io.cucumber.datatable.DataTable
55
import scala.util.{Failure, Success, Try}
66
import scala.jdk.CollectionConverters._
77

8-
trait AbstractDatatableElementTransformerDefinition extends AbstractGlueDefinition {
8+
trait AbstractDatatableElementTransformerDefinition
9+
extends AbstractGlueDefinition {
910

1011
val emptyPatterns: Seq[String]
1112

12-
protected def replaceEmptyPatternsWithEmptyString(row: Seq[String]): Seq[String] = {
13+
protected def replaceEmptyPatternsWithEmptyString(
14+
row: Seq[String]
15+
): Seq[String] = {
1316
row.map(replaceEmptyPatternsWithEmptyString)
1417
}
1518

16-
protected def replaceEmptyPatternsWithEmptyString(table: DataTable): DataTable = {
17-
val rawWithEmptyStrings = table.cells().asScala
19+
protected def replaceEmptyPatternsWithEmptyString(
20+
table: DataTable
21+
): DataTable = {
22+
val rawWithEmptyStrings = table
23+
.cells()
24+
.asScala
1825
.map(_.asScala.toSeq)
1926
.map(replaceEmptyPatternsWithEmptyString)
2027
.map(_.asJava)
@@ -24,7 +31,9 @@ trait AbstractDatatableElementTransformerDefinition extends AbstractGlueDefiniti
2431
DataTable.create(rawWithEmptyStrings, table.getTableConverter)
2532
}
2633

27-
protected def replaceEmptyPatternsWithEmptyString(fromValue: Map[String, String]): Try[Map[String, String]] = {
34+
protected def replaceEmptyPatternsWithEmptyString(
35+
fromValue: Map[String, String]
36+
): Try[Map[String, String]] = {
2837
val replacement = fromValue.toSeq.map { case (key, value) =>
2938
val potentiallyEmptyKey = replaceEmptyPatternsWithEmptyString(key)
3039
val potentiallyEmptyValue = replaceEmptyPatternsWithEmptyString(value)
@@ -51,9 +60,14 @@ trait AbstractDatatableElementTransformerDefinition extends AbstractGlueDefiniti
5160
seq.map { case (key, _) => key }.toSet.size != seq.size
5261
}
5362

54-
private def createDuplicateKeyAfterReplacement(fromValue: Map[String, String]): IllegalArgumentException = {
55-
val conflict = emptyPatterns.filter(emptyPattern => fromValue.contains(emptyPattern))
56-
val msg = s"After replacing ${conflict.headOption.getOrElse("")} and ${conflict.drop(1).headOption.getOrElse("")} with empty strings the datatable entry contains duplicate keys: $fromValue"
63+
private def createDuplicateKeyAfterReplacement(
64+
fromValue: Map[String, String]
65+
): IllegalArgumentException = {
66+
val conflict =
67+
emptyPatterns.filter(emptyPattern => fromValue.contains(emptyPattern))
68+
val msg =
69+
s"After replacing ${conflict.headOption
70+
.getOrElse("")} and ${conflict.drop(1).headOption.getOrElse("")} with empty strings the datatable entry contains duplicate keys: $fromValue"
5771
new IllegalArgumentException(msg)
5872
}
5973

cucumber-scala/src/main/scala/io/cucumber/scala/AbstractGlueDefinition.scala

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,20 @@ package io.cucumber.scala
33
import java.lang.reflect.InvocationTargetException
44
import java.util.Optional
55

6-
import io.cucumber.core.backend.{CucumberInvocationTargetException, Located, SourceReference}
6+
import io.cucumber.core.backend.{
7+
CucumberInvocationTargetException,
8+
Located,
9+
SourceReference
10+
}
711

812
import scala.util.{Failure, Try}
913

1014
trait AbstractGlueDefinition extends Located {
1115

1216
val location: StackTraceElement
1317

14-
lazy val sourceReference: SourceReference = SourceReference.fromStackTraceElement(location)
18+
lazy val sourceReference: SourceReference =
19+
SourceReference.fromStackTraceElement(location)
1520

1621
override def getLocation(): String = {
1722
location.toString
@@ -25,15 +30,17 @@ trait AbstractGlueDefinition extends Located {
2530
Optional.of(sourceReference)
2631
}
2732

28-
/**
29-
* Executes the block of code and handle failures in the way asked by Cucumber specification: that is throwing a CucumberInvocationTargetException.
30-
*/
33+
/** Executes the block of code and handle failures in the way asked by Cucumber specification: that is throwing a CucumberInvocationTargetException.
34+
*/
3135
protected def executeAsCucumber(block: => Unit): Unit = {
32-
Try(block)
33-
.recoverWith {
34-
case ex => Failure(new CucumberInvocationTargetException(this, new InvocationTargetException(ex)))
35-
}
36-
.get
36+
Try(block).recoverWith { case ex =>
37+
Failure(
38+
new CucumberInvocationTargetException(
39+
this,
40+
new InvocationTargetException(ex)
41+
)
42+
)
43+
}.get
3744
}
3845

3946
}
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
package io.cucumber.scala
22

3-
/**
4-
* Contains some aliases to help match this codebase with cucumber-java
5-
*/
3+
/** Contains some aliases to help match this codebase with cucumber-java
4+
*/
65
object Aliases {
76

87
type HookDefinitionBody = Scenario => Unit
@@ -11,10 +10,13 @@ object Aliases {
1110

1211
type DocStringDefinitionBody[T] = String => T
1312

14-
type DefaultParameterTransformerBody = (String, java.lang.reflect.Type) => AnyRef
13+
type DefaultParameterTransformerBody =
14+
(String, java.lang.reflect.Type) => AnyRef
1515

16-
type DefaultDataTableCellTransformerBody = (String, java.lang.reflect.Type) => AnyRef
16+
type DefaultDataTableCellTransformerBody =
17+
(String, java.lang.reflect.Type) => AnyRef
1718

18-
type DefaultDataTableEntryTransformerBody = (Map[String, String], java.lang.reflect.Type) => AnyRef
19+
type DefaultDataTableEntryTransformerBody =
20+
(Map[String, String], java.lang.reflect.Type) => AnyRef
1921

2022
}

0 commit comments

Comments
 (0)