Skip to content

Commit b6b7f4e

Browse files
committed
Refactor: Use Async instead of IO for async instance of LiftAsyncIO
1 parent fe0a92e commit b6b7f4e

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

build.sbt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ lazy val catsEffectsIOModule = (project in file("modules/cats-effect-io"))
9292
.settings(commonSettings)
9393
.settings(
9494
name := "query-cats-effect-io",
95-
libraryDependencies ++= Seq(
96-
Dependencies.catsEffect,
97-
)
95+
libraryDependencies ++= Seq(Dependencies.catsEffect)
9896
)
9997
.dependsOn(core % "test->test;compile->compile")
10098

@@ -152,4 +150,10 @@ lazy val todoAppExample = (project in file("examples/todo-app"))
152150

153151
lazy val root: Project = project
154152
.in(file("."))
155-
.aggregate(core, playSqlModule, sampleAppExample, todoAppExample)
153+
.aggregate(
154+
core,
155+
playSqlModule,
156+
catsEffectsIOModule,
157+
sampleAppExample,
158+
todoAppExample
159+
)

modules/cats-effect-io/src/main/scala/catsio/LiftAsyncIO.scala

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,21 @@ package com.zengularity.querymonad.module.catsio
22

33
import scala.language.higherKinds
44

5-
import cats.effect.IO
5+
import cats.effect.{Async, IO}
66

7+
import com.zengularity.querymonad.core.database.WithResource
78
import com.zengularity.querymonad.core.database.LiftAsync
89

910
trait LiftAsyncIO extends LowPriority {
1011

11-
implicit def ioOut[A]: LiftAsync.Aux[IO, IO, A, A] =
12-
new LiftAsync[IO, IO, A] {
12+
implicit def ioOut[F[_]: Async, A]: LiftAsync.Aux[F, F, A, A] =
13+
new LiftAsync[F, F, A] {
1314
type Outer = A
1415

1516
def apply[In](
16-
loaner: WithResourceIO[In],
17-
f: In => IO[A]
18-
): IO[Outer] = loaner(f)
17+
loaner: WithResource[F, In],
18+
f: In => F[A]
19+
): F[Outer] = loaner(f)
1920

2021
override val toString = "ioOut"
2122
}

modules/cats-effect-io/src/test/scala/module/sql/SqlQueryRunnerSpec.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,21 @@ import acolyte.jdbc.{
77
QueryResult => AcolyteQueryResult
88
}
99
import cats.effect.IO
10-
import com.zengularity.querymonad.module.catsio.sql.WithSqlConnectionIO
1110
import org.specs2.mutable.Specification
11+
12+
import com.zengularity.querymonad.module.catsio.sql.WithSqlConnectionIO
13+
import com.zengularity.querymonad.module.catsio.implicits._
1214
import com.zengularity.querymonad.module.sql.{
1315
SqlQuery,
1416
SqlQueryRunner,
1517
SqlQueryT
1618
}
1719
import com.zengularity.querymonad.test.module.catsio.sql.utils.SqlConnectionFactory
18-
import com.zengularity.querymonad.module.catsio.implicits._
1920
import com.zengularity.querymonad.test.module.sql.models.{Material, Professor}
2021

21-
class SqlQueryRunnerSpec extends Specification {
22+
class SqlQueryRunnerIOSpec extends Specification {
2223

23-
"SqlQueryRunner" should {
24+
"SqlQueryRunnerIO" should {
2425
// execute lift Queries
2526
"return integer value lift in Query using pure" in {
2627
val withSqlConnection: WithSqlConnectionIO =

0 commit comments

Comments
 (0)