Skip to content

Commit d8da977

Browse files
committed
Merge branch 'series/0.6.x'
2 parents d52184c + 73f2f36 commit d8da977

File tree

4 files changed

+31
-13
lines changed

4 files changed

+31
-13
lines changed

build.sbt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ ThisBuild / mimaBinaryIssueFilters ++= List(
5858
)
5959

6060
// This is used in a couple places
61-
lazy val fs2Version = "3.9.3"
61+
lazy val fs2Version = "3.9.4"
6262
lazy val openTelemetryVersion = "1.29.0"
6363
lazy val otel4sVersion = "0.4.0"
6464
lazy val refinedVersion = "0.11.0"
@@ -111,7 +111,7 @@ lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform)
111111
description := "Tagless, non-blocking data access library for Postgres.",
112112
libraryDependencies ++= Seq(
113113
"org.typelevel" %%% "cats-core" % "2.10.0",
114-
"org.typelevel" %%% "cats-effect" % "3.5.2",
114+
"org.typelevel" %%% "cats-effect" % "3.5.3",
115115
"co.fs2" %%% "fs2-core" % fs2Version,
116116
"co.fs2" %%% "fs2-io" % fs2Version,
117117
"org.scodec" %%% "scodec-bits" % "1.1.38",
@@ -188,7 +188,7 @@ lazy val tests = crossProject(JVMPlatform, JSPlatform, NativePlatform)
188188
"org.typelevel" %%% "munit-cats-effect" % "2.0.0-M4",
189189
"org.typelevel" %%% "cats-free" % "2.10.0",
190190
"org.typelevel" %%% "cats-laws" % "2.10.0",
191-
"org.typelevel" %%% "cats-effect-testkit" % "3.5.2",
191+
"org.typelevel" %%% "cats-effect-testkit" % "3.5.3",
192192
"org.typelevel" %%% "discipline-munit" % "2.0.0-M3",
193193
"org.typelevel" %%% "cats-time" % "0.5.1",
194194
"eu.timepit" %%% "refined-cats" % refinedVersion,

modules/core/shared/src/main/scala/Fragment.scala

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,18 @@ final case class Fragment[A](
5858
def stripMargin: Fragment[A] = stripMargin('|')
5959

6060
def stripMargin(marginChar: Char): Fragment[A] = {
61-
val ps = parts.map {
61+
val head = parts.headOption
62+
val tail = parts.tail
63+
val ps = head.map {
6264
_.bimap(
63-
_.stripMargin(marginChar).replaceAll("\n", " "),
64-
_.map(_.stripMargin(marginChar).replaceAll("\n", " "))
65+
_.stripMargin(marginChar),
66+
_.map(_.stripMargin(marginChar))
6567
)
68+
}.toList ++ tail.map {
69+
_.bimap(
70+
str => str.takeWhile(_ != '\n') + str.dropWhile(_ != '\n').stripMargin(marginChar),
71+
_.map(str => str.takeWhile(_ != '\n') + str.dropWhile(_ != '\n').stripMargin(marginChar))
72+
)
6673
}
6774
Fragment(ps, encoder, origin)
6875
}

modules/tests/shared/src/test/scala/FragmentTest.scala

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,15 +83,26 @@ class FragmentTest extends SkunkTest {
8383

8484
pureTest("stripMargin") {
8585
val f = sql"""select
86-
|$int4
87-
|""".stripMargin
88-
f.sql.trim == sql"select $int4".sql
86+
|$int4
87+
|""".stripMargin
88+
f.sql == """select
89+
|$1
90+
|""".stripMargin
8991
}
9092

9193
pureTest("stripMargin with char") {
9294
val f = sql"""select
93-
^$int4
94-
^""".stripMargin('^')
95-
f.sql.trim == sql"select $int4".sql
95+
^$int4
96+
^""".stripMargin('^')
97+
f.sql == """select
98+
^$1
99+
^""".stripMargin('^')
100+
}
101+
102+
pureTest("stripMargin respects intermediate pipes") {
103+
val f = sql"""|select ${text} || 'foo'
104+
|2""".stripMargin
105+
f.sql == """select $1 || 'foo'
106+
|2""".stripMargin
96107
}
97108
}

project/plugins.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % "0.6.5")
88
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.4")
99
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9")
1010
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0")
11-
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16")
11+
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17")
1212
addSbtPlugin("com.armanbilge" % "sbt-scala-native-config-brew-github-actions" % "0.2.0-RC1")

0 commit comments

Comments
 (0)