Skip to content

Commit

Permalink
Change Paraller to Pure
Browse files Browse the repository at this point in the history
  • Loading branch information
kamil-adam committed Feb 25, 2020
1 parent 72f0009 commit f15c14a
Show file tree
Hide file tree
Showing 15 changed files with 21 additions and 49 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
package pl.writeonly.linkchecker.scala.impl.io.io0

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateIO
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.ImmutableArray
import scalaz.Scalaz._
import scalaz.effect._

object IOApp extends SafeApp with ValidationAPIStateEffect[PureStateIO] {
object IOApp extends SafeApp with ValidationAPIStateEffect[IO[ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

override def run(args: ImmutableArray[String]): IO[Unit] = effect().map(_.showResult())

def apply(): ValidationAPIState = effect().unsafePerformIO()

def effect(): PureStateIO = IOState.fromDomain(new Domain(domain)) |> IOState.run
def effect(): IO[ValidationAPIState] = IOState.fromDomain(new Domain(domain)) |> IOState.run
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
import pl.writeonly.linkchecker.scala.sourcepage.io.SourcePageIOFromInternalUrl
import pl.writeonly.linkchecker.scala.sourcepage.monad._
import scalaz.effect.IO
import scalaz.effect._

object IOState {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io1

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateIO2
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import scalaz.ioeffect._

object IO2App extends SafeApp with ValidationAPIStateEffect[PureStateIO2] {
object IO2App extends SafeApp with ValidationAPIStateEffect[IO[Throwable, ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object IO2App extends SafeApp with ValidationAPIStateEffect[PureStateIO2] {

def apply(): ValidationAPIState = unsafePerformIO(effect())

def effect(): PureStateIO2 = IO2State.fromDomain(new Domain(domain)) |> IO2State.run
def effect(): IO[Throwable, ValidationAPIState] = IO2State.fromDomain(new Domain(domain)) |> IO2State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io1

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateIO2
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -12,7 +11,7 @@ object IO2State {

def fromDomain(implicit d: Domain): IO2State = new IO2State(UrlsWithThrowableList.fromDomain)

def run(state: IO2State): PureStateIO2 =
def run(state: IO2State): IO[Throwable, ValidationAPIState] =
if (state.isEmptyNextInternalUrls) IO.now(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[IO[Throwable, SourcePageValidation]]): IO[Throwable, SourcePageValidationSet] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io2

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateTask2
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import scalaz.ioeffect._

object Task2App extends SafeApp with ValidationAPIStateEffect[PureStateTask2] {
object Task2App extends SafeApp with ValidationAPIStateEffect[Task[ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object Task2App extends SafeApp with ValidationAPIStateEffect[PureStateTask2] {

def apply(): ValidationAPIState = unsafePerformIO(effect())

def effect(): PureStateTask2 = Task2State.fromDomain(new Domain(domain)) |> Task2State.run
def effect(): Task[ValidationAPIState] = Task2State.fromDomain(new Domain(domain)) |> Task2State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io2

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateTask2
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -12,7 +11,7 @@ object Task2State {

def fromDomain(implicit d: Domain): Task2State = new Task2State(UrlsWithThrowableList.fromDomain)

def run(state: Task2State): PureStateTask2 =
def run(state: Task2State): Task[ValidationAPIState] =
if (state.isEmptyNextInternalUrls) Task.now(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[Task[SourcePageValidation]]): Task[SourcePageValidationSet] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io3

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import zio._

object IO3App extends App with ValidationAPIStateEffect[PureStateIO3] {
object IO3App extends App with ValidationAPIStateEffect[IO[Throwable, ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object IO3App extends App with ValidationAPIStateEffect[PureStateIO3] {

def apply(): ValidationAPIState = unsafeRun(effect())

def effect(): PureStateIO3 = IO3State.fromDomain(new Domain(domain)) |> IO3State.run
def effect(): IO[Throwable, ValidationAPIState] = IO3State.fromDomain(new Domain(domain)) |> IO3State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io3

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -13,7 +12,7 @@ object IO3State {
def fromDomain(implicit d: Domain): IO3State = new IO3State(UrlsWithThrowableList.fromDomain)

@SuppressWarnings(Array("org.wartremover.warts.Any"))
def run(state: IO3State): PureStateIO3 =
def run(state: IO3State): IO[Throwable, ValidationAPIState] =
if (state.isEmptyNextInternalUrls) IO.effect(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[IO[Throwable, SourcePageValidation]]): IO[Throwable, SourcePageValidationSet] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io4

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateTask3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import zio._

object Task3App extends App with ValidationAPIStateEffect[PureStateTask3] {
object Task3App extends App with ValidationAPIStateEffect[Task[ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object Task3App extends App with ValidationAPIStateEffect[PureStateTask3] {

def apply(): ValidationAPIState = unsafeRun(effect())

def effect(): PureStateTask3 = Task3State.fromDomain(new Domain(domain)) |> Task3State.run
def effect(): Task[ValidationAPIState] = Task3State.fromDomain(new Domain(domain)) |> Task3State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io4

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateTask3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -13,7 +12,7 @@ object Task3State {
def fromDomain(implicit d: Domain): Task3State = new Task3State(UrlsWithThrowableList.fromDomain)

@SuppressWarnings(Array("org.wartremover.warts.Any"))
def run(state: Task3State): PureStateTask3 =
def run(state: Task3State): Task[ValidationAPIState] =
if (state.isEmptyNextInternalUrls) ZIO.effect(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[Task[SourcePageValidation]]): Task[SourcePageValidationSet] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io5

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateUIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import zio._

object UIO3App extends App with ValidationAPIStateEffect[PureStateUIO3] {
object UIO3App extends App with ValidationAPIStateEffect[UIO[ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object UIO3App extends App with ValidationAPIStateEffect[PureStateUIO3] {

def apply(): ValidationAPIState = unsafeRun(effect())

def effect(): PureStateUIO3 = UIO3State.fromDomain(new Domain(domain)) |> UIO3State.run
def effect(): UIO[ValidationAPIState] = UIO3State.fromDomain(new Domain(domain)) |> UIO3State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io5

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateUIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -13,7 +12,7 @@ object UIO3State {
def fromDomain(implicit d: Domain): UIO3State = new UIO3State(UrlsWithThrowableList.fromDomain)

@SuppressWarnings(Array("org.wartremover.warts.Any"))
def run(state: UIO3State): PureStateUIO3 =
def run(state: UIO3State): UIO[ValidationAPIState] =
if (state.isEmptyNextInternalUrls) ZIO.effectTotal(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[UIO[SourcePageValidation]]): UIO[SourcePageValidationSet] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package pl.writeonly.linkchecker.scala.impl.io.io6

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateUIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.impl.Apps.ValidationAPIStateEffect
import scalaz.Scalaz._
import zio._

object UIO3App extends App with ValidationAPIStateEffect[PureStateUIO3] {
object UIO3App extends App with ValidationAPIStateEffect[UIO[ValidationAPIState]] {

private val domain = "https://www.writeonly.pl"

Expand All @@ -16,5 +15,5 @@ object UIO3App extends App with ValidationAPIStateEffect[PureStateUIO3] {

def apply(): ValidationAPIState = unsafeRun(effect())

def effect(): PureStateUIO3 = UIO3State.fromDomain(new Domain(domain)) |> UIO3State.run
def effect(): UIO[ValidationAPIState] = UIO3State.fromDomain(new Domain(domain)) |> UIO3State.run
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package pl.writeonly.linkchecker.scala.impl.io.io6

import pl.writeonly.linkchecker.scala.common.states.api.io.PureStateUIO3
import pl.writeonly.linkchecker.scala.common.states.api.monad.ValidationAPIState
import pl.writeonly.linkchecker.scala.common.url.Domain
import pl.writeonly.linkchecker.scala.common.url.urls.UrlsWithThrowableList
Expand All @@ -13,7 +12,7 @@ object UIO3State {
def fromDomain(implicit d: Domain): UIO3State = new UIO3State(UrlsWithThrowableList.fromDomain)

@SuppressWarnings(Array("org.wartremover.warts.Any"))
def run(state: UIO3State): PureStateUIO3 =
def run(state: UIO3State): UIO[ValidationAPIState] =
if (state.isEmptyNextInternalUrls) ZIO.effectTotal(state) else state.nextMonad.flatMap(run)

private def sequence(set: Set[UIO[SourcePageValidation]]): UIO[SourcePageValidationSet] =
Expand Down

0 comments on commit f15c14a

Please sign in to comment.