Skip to content

Commit

Permalink
Merge branch 'series/0.6.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
mpilquist committed Jan 20, 2024
2 parents d52184c + 73f2f36 commit d8da977
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 13 deletions.
6 changes: 3 additions & 3 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ ThisBuild / mimaBinaryIssueFilters ++= List(
)

// This is used in a couple places
lazy val fs2Version = "3.9.3"
lazy val fs2Version = "3.9.4"
lazy val openTelemetryVersion = "1.29.0"
lazy val otel4sVersion = "0.4.0"
lazy val refinedVersion = "0.11.0"
Expand Down Expand Up @@ -111,7 +111,7 @@ lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform)
description := "Tagless, non-blocking data access library for Postgres.",
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-core" % "2.10.0",
"org.typelevel" %%% "cats-effect" % "3.5.2",
"org.typelevel" %%% "cats-effect" % "3.5.3",
"co.fs2" %%% "fs2-core" % fs2Version,
"co.fs2" %%% "fs2-io" % fs2Version,
"org.scodec" %%% "scodec-bits" % "1.1.38",
Expand Down Expand Up @@ -188,7 +188,7 @@ lazy val tests = crossProject(JVMPlatform, JSPlatform, NativePlatform)
"org.typelevel" %%% "munit-cats-effect" % "2.0.0-M4",
"org.typelevel" %%% "cats-free" % "2.10.0",
"org.typelevel" %%% "cats-laws" % "2.10.0",
"org.typelevel" %%% "cats-effect-testkit" % "3.5.2",
"org.typelevel" %%% "cats-effect-testkit" % "3.5.3",
"org.typelevel" %%% "discipline-munit" % "2.0.0-M3",
"org.typelevel" %%% "cats-time" % "0.5.1",
"eu.timepit" %%% "refined-cats" % refinedVersion,
Expand Down
13 changes: 10 additions & 3 deletions modules/core/shared/src/main/scala/Fragment.scala
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,18 @@ final case class Fragment[A](
def stripMargin: Fragment[A] = stripMargin('|')

def stripMargin(marginChar: Char): Fragment[A] = {
val ps = parts.map {
val head = parts.headOption
val tail = parts.tail
val ps = head.map {
_.bimap(
_.stripMargin(marginChar).replaceAll("\n", " "),
_.map(_.stripMargin(marginChar).replaceAll("\n", " "))
_.stripMargin(marginChar),
_.map(_.stripMargin(marginChar))
)
}.toList ++ tail.map {
_.bimap(
str => str.takeWhile(_ != '\n') + str.dropWhile(_ != '\n').stripMargin(marginChar),
_.map(str => str.takeWhile(_ != '\n') + str.dropWhile(_ != '\n').stripMargin(marginChar))
)
}
Fragment(ps, encoder, origin)
}
Expand Down
23 changes: 17 additions & 6 deletions modules/tests/shared/src/test/scala/FragmentTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -83,15 +83,26 @@ class FragmentTest extends SkunkTest {

pureTest("stripMargin") {
val f = sql"""select
|$int4
|""".stripMargin
f.sql.trim == sql"select $int4".sql
|$int4
|""".stripMargin
f.sql == """select
|$1
|""".stripMargin
}

pureTest("stripMargin with char") {
val f = sql"""select
^$int4
^""".stripMargin('^')
f.sql.trim == sql"select $int4".sql
^$int4
^""".stripMargin('^')
f.sql == """select
^$1
^""".stripMargin('^')
}

pureTest("stripMargin respects intermediate pipes") {
val f = sql"""|select ${text} || 'foo'
|2""".stripMargin
f.sql == """select $1 || 'foo'
|2""".stripMargin
}
}
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ addSbtPlugin("org.typelevel" % "sbt-typelevel-site" % "0.6.5")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.4")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.9")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.16")
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.17")
addSbtPlugin("com.armanbilge" % "sbt-scala-native-config-brew-github-actions" % "0.2.0-RC1")

0 comments on commit d8da977

Please sign in to comment.