├── .gitattributes ├── .gitignore ├── Chapter01 ├── skeleton-mvn │ ├── pom.xml │ └── src │ │ └── test │ │ └── scala │ │ └── TestSomething.scala └── skeleton-sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ └── version.sbt ├── Chapter02 ├── mvn │ ├── pom.xml │ └── src │ │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── basic │ │ │ ├── Beeper.scala │ │ │ ├── NotifierImpl.scala │ │ │ └── Ping.scala │ │ │ ├── common │ │ │ ├── Alarm.scala │ │ │ ├── Connector.scala │ │ │ └── Notifier.scala │ │ │ ├── composition │ │ │ ├── Clashing.scala │ │ │ ├── Greeter.scala │ │ │ └── Watch.scala │ │ │ ├── diamond │ │ │ └── Diamond.scala │ │ │ └── linearisation │ │ │ ├── Animal.scala │ │ │ └── MultiplierIdentity.scala │ │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── composition │ │ ├── TraitACaseScopeTest.scala │ │ └── TraitATest.scala │ │ └── linearisation │ │ └── DoubledMultiplierIdentityTest.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── basic │ │ │ ├── Beeper.scala │ │ │ ├── NotifierImpl.scala │ │ │ └── Ping.scala │ │ │ ├── common │ │ │ ├── Alarm.scala │ │ │ ├── Connector.scala │ │ │ └── Notifier.scala │ │ │ ├── composition │ │ │ ├── Clashing.scala │ │ │ ├── Greeter.scala │ │ │ └── Watch.scala │ │ │ ├── diamond │ │ │ └── Diamond.scala │ │ │ └── linearisation │ │ │ ├── Animal.scala │ │ │ └── MultiplierIdentity.scala │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── composition │ │ ├── TraitACaseScopeTest.scala │ │ └── TraitATest.scala │ │ └── linearisation │ │ └── DoubledMultiplierIdentityTest.scala │ └── version.sbt ├── Chapter03 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── unification │ │ ├── adts │ │ ├── Month.scala │ │ ├── RGB.scala │ │ └── Shape.scala │ │ ├── functions │ │ ├── FunctionLiterals.scala │ │ └── FunctionObjects.scala │ │ └── modules │ │ └── Alarm.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── unification │ │ ├── adts │ │ ├── Month.scala │ │ ├── RGB.scala │ │ └── Shape.scala │ │ ├── functions │ │ ├── FunctionLiterals.scala │ │ └── FunctionObjects.scala │ │ └── modules │ │ └── Alarm.scala │ └── version.sbt ├── Chapter04 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── abstract_types │ │ ├── AbstractTypesExamples.scala │ │ ├── GenericsExamples.scala │ │ ├── Person.scala │ │ └── Printer.scala │ │ ├── polymorphism │ │ ├── AdhocPolymorphismExample.scala │ │ └── SubtypePolymorphismExample.scala │ │ └── self_types │ │ ├── DB.scala │ │ └── PersisterExample.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── abstract_types │ │ ├── AbstractTypesExamples.scala │ │ ├── GenericsExamples.scala │ │ ├── Person.scala │ │ └── Printer.scala │ │ ├── polymorphism │ │ ├── AdhocPolymorphismExample.scala │ │ └── SubtypePolymorphismExample.scala │ │ └── self_types │ │ ├── DB.scala │ │ └── PersisterExample.scala │ └── version.sbt ├── Chapter05 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ └── users.json │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── aop │ │ ├── DataReader.scala │ │ ├── LoggingDataReader.scala │ │ └── model │ │ │ └── Person.scala │ │ └── components │ │ ├── CookingComponent.scala │ │ ├── RecipeComponent.scala │ │ ├── Robot.scala │ │ ├── RobotRegistry.scala │ │ ├── TimeComponent.scala │ │ ├── base │ │ ├── Cooker.scala │ │ ├── RecipeFinder.scala │ │ └── Time.scala │ │ └── model │ │ └── Food.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ ├── resources │ │ └── users.json │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── aop │ │ ├── DataReader.scala │ │ ├── LoggingDataReader.scala │ │ └── model │ │ │ └── Person.scala │ │ └── components │ │ ├── CookingComponent.scala │ │ ├── RecipeComponent.scala │ │ ├── Robot.scala │ │ ├── RobotRegistry.scala │ │ ├── TimeComponent.scala │ │ ├── base │ │ ├── Cooker.scala │ │ ├── RecipeFinder.scala │ │ └── Time.scala │ │ └── model │ │ └── Food.scala │ └── version.sbt ├── Chapter06 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ └── creational │ │ │ └── lazy_init │ │ │ └── pi.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── creational │ │ ├── builder │ │ ├── case_classes │ │ │ └── Person.scala │ │ ├── java_way │ │ │ └── Person.scala │ │ └── type_safe │ │ │ ├── Person.scala │ │ │ └── case_require │ │ │ └── Person.scala │ │ ├── factories │ │ ├── SimpleConnection.scala │ │ ├── abstract_factory │ │ │ ├── DatabaseClient.scala │ │ │ ├── DatabaseConnectorFactory.scala │ │ │ └── Example.scala │ │ ├── factory_method │ │ │ ├── BadDatabaseClient.scala │ │ │ ├── BadExample.scala │ │ │ ├── DatabaseClient.scala │ │ │ ├── Example.scala │ │ │ └── SimpleConnectionPrinter.scala │ │ └── simple │ │ │ └── Animal.scala │ │ ├── lazy_init │ │ └── CircleUtils.scala │ │ ├── prototype │ │ └── Cell.scala │ │ └── singleton │ │ ├── AppRegistry.scala │ │ └── StringUtils.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ ├── resources │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ └── creational │ │ │ └── lazy_init │ │ │ └── pi.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── creational │ │ ├── builder │ │ ├── case_classes │ │ │ └── Person.scala │ │ ├── java_way │ │ │ └── Person.scala │ │ └── type_safe │ │ │ ├── Person.scala │ │ │ └── case_require │ │ │ └── Person.scala │ │ ├── factories │ │ ├── SimpleConnection.scala │ │ ├── abstract_factory │ │ │ ├── DatabaseClient.scala │ │ │ ├── DatabaseConnectorFactory.scala │ │ │ └── Example.scala │ │ ├── factory_method │ │ │ ├── BadDatabaseClient.scala │ │ │ ├── BadExample.scala │ │ │ ├── DatabaseClient.scala │ │ │ ├── Example.scala │ │ │ └── SimpleConnectionPrinter.scala │ │ └── simple │ │ │ └── Animal.scala │ │ ├── lazy_init │ │ └── CircleUtils.scala │ │ ├── prototype │ │ └── Cell.scala │ │ └── singleton │ │ ├── AppRegistry.scala │ │ └── StringUtils.scala │ └── version.sbt ├── Chapter07 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── structural │ │ │ │ ├── decorator │ │ │ │ └── data.txt │ │ │ │ └── proxy │ │ │ │ ├── file1.txt │ │ │ │ ├── file2.txt │ │ │ │ └── file3.txt │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── structural │ │ ├── adapter │ │ ├── AppLogger.scala │ │ └── package.scala │ │ ├── bridge │ │ ├── Hasher.scala │ │ ├── PasswordConverter.scala │ │ ├── common │ │ │ └── Hasher.scala │ │ └── scala │ │ │ ├── HasherImpl.scala │ │ │ └── PasswordConverterBase.scala │ │ ├── composite │ │ └── Node.scala │ │ ├── decorator │ │ ├── CapitalizedInputReaderTrait.scala │ │ ├── InputReaderDecorator.scala │ │ └── common │ │ │ └── InputReader.scala │ │ ├── facade │ │ ├── DataDecoder.scala │ │ ├── DataDeserializer.scala │ │ ├── DataDownloader.scala │ │ ├── DataReader.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── flyweight │ │ ├── Circle.scala │ │ └── Color.scala │ │ └── proxy │ │ └── FileReader.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── structural │ │ │ │ ├── decorator │ │ │ │ └── data.txt │ │ │ │ └── proxy │ │ │ │ ├── file1.txt │ │ │ │ ├── file2.txt │ │ │ │ └── file3.txt │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── structural │ │ ├── adapter │ │ ├── AppLogger.scala │ │ └── package.scala │ │ ├── bridge │ │ ├── Hasher.scala │ │ ├── PasswordConverter.scala │ │ ├── common │ │ │ └── Hasher.scala │ │ └── scala │ │ │ ├── HasherImpl.scala │ │ │ └── PasswordConverterBase.scala │ │ ├── composite │ │ └── Node.scala │ │ ├── decorator │ │ ├── CapitalizedInputReaderTrait.scala │ │ ├── InputReaderDecorator.scala │ │ └── common │ │ │ └── InputReader.scala │ │ ├── facade │ │ ├── DataDecoder.scala │ │ ├── DataDeserializer.scala │ │ ├── DataDownloader.scala │ │ ├── DataReader.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── flyweight │ │ ├── Circle.scala │ │ └── Color.scala │ │ └── proxy │ │ └── FileReader.scala │ └── version.sbt ├── Chapter08 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── behavioral │ │ │ │ ├── strategy │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ │ │ └── template │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── behavioral │ │ ├── chain_of_responsibility │ │ ├── ATM.scala │ │ ├── Dispenser.scala │ │ └── Money.scala │ │ ├── command │ │ ├── Robot.scala │ │ └── RobotCommand.scala │ │ ├── interpreter │ │ ├── Expression.scala │ │ └── RPNParser.scala │ │ ├── iterator │ │ └── Student.scala │ │ ├── mediator │ │ └── Student.scala │ │ ├── memento │ │ ├── Memento.scala │ │ └── TextEditor.scala │ │ ├── null_object │ │ ├── DataGenerator.scala │ │ └── Message.scala │ │ ├── observer │ │ ├── Observer.scala │ │ └── Post.scala │ │ ├── state │ │ ├── State.scala │ │ └── model │ │ │ └── MediaPlayer.scala │ │ ├── strategy │ │ ├── Parser.scala │ │ ├── ParsingStrategy.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── template │ │ ├── DataFinder.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── value_object │ │ └── Date.scala │ │ └── visitor │ │ ├── Element.scala │ │ ├── Visitor.scala │ │ └── better │ │ ├── Element.scala │ │ └── Visitor.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── behavioral │ │ │ │ ├── strategy │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ │ │ └── template │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── behavioral │ │ ├── chain_of_responsibility │ │ ├── ATM.scala │ │ ├── Dispenser.scala │ │ └── Money.scala │ │ ├── command │ │ ├── Robot.scala │ │ └── RobotCommand.scala │ │ ├── interpreter │ │ ├── Expression.scala │ │ └── RPNParser.scala │ │ ├── iterator │ │ └── Student.scala │ │ ├── mediator │ │ └── Student.scala │ │ ├── memento │ │ ├── Memento.scala │ │ └── TextEditor.scala │ │ ├── null_object │ │ ├── DataGenerator.scala │ │ └── Message.scala │ │ ├── observer │ │ ├── Observer.scala │ │ └── Post.scala │ │ ├── state │ │ ├── State.scala │ │ └── model │ │ │ └── MediaPlayer.scala │ │ ├── strategy │ │ ├── Parser.scala │ │ ├── ParsingStrategy.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── template │ │ ├── DataFinder.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── value_object │ │ └── Date.scala │ │ └── visitor │ │ ├── Element.scala │ │ ├── Visitor.scala │ │ └── better │ │ ├── Element.scala │ │ └── Visitor.scala │ └── version.sbt ├── Chapter09 ├── mvn │ ├── pom.xml │ └── src │ │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── behavioral │ │ │ │ ├── strategy │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ │ │ └── template │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── behavioral │ │ ├── chain_of_responsibility │ │ ├── ATM.scala │ │ ├── Dispenser.scala │ │ └── Money.scala │ │ ├── command │ │ ├── Robot.scala │ │ └── RobotCommand.scala │ │ ├── interpreter │ │ ├── Expression.scala │ │ └── RPNParser.scala │ │ ├── iterator │ │ └── Student.scala │ │ ├── mediator │ │ └── Student.scala │ │ ├── memento │ │ ├── Memento.scala │ │ └── TextEditor.scala │ │ ├── null_object │ │ ├── DataGenerator.scala │ │ └── Message.scala │ │ ├── observer │ │ ├── Observer.scala │ │ └── Post.scala │ │ ├── state │ │ ├── State.scala │ │ └── model │ │ │ └── MediaPlayer.scala │ │ ├── strategy │ │ ├── Parser.scala │ │ ├── ParsingStrategy.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── template │ │ ├── DataFinder.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── value_object │ │ └── Date.scala │ │ └── visitor │ │ ├── Element.scala │ │ ├── Visitor.scala │ │ └── better │ │ ├── Element.scala │ │ └── Visitor.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ ├── resources │ │ ├── com │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── behavioral │ │ │ │ ├── strategy │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ │ │ └── template │ │ │ │ ├── people.csv │ │ │ │ └── people.json │ │ └── log4j.properties │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── behavioral │ │ ├── chain_of_responsibility │ │ ├── ATM.scala │ │ ├── Dispenser.scala │ │ └── Money.scala │ │ ├── command │ │ ├── Robot.scala │ │ └── RobotCommand.scala │ │ ├── interpreter │ │ ├── Expression.scala │ │ └── RPNParser.scala │ │ ├── iterator │ │ └── Student.scala │ │ ├── mediator │ │ └── Student.scala │ │ ├── memento │ │ ├── Memento.scala │ │ └── TextEditor.scala │ │ ├── null_object │ │ ├── DataGenerator.scala │ │ └── Message.scala │ │ ├── observer │ │ ├── Observer.scala │ │ └── Post.scala │ │ ├── state │ │ ├── State.scala │ │ └── model │ │ │ └── MediaPlayer.scala │ │ ├── strategy │ │ ├── Parser.scala │ │ ├── ParsingStrategy.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── template │ │ ├── DataFinder.scala │ │ └── model │ │ │ └── Person.scala │ │ ├── value_object │ │ └── Date.scala │ │ └── visitor │ │ ├── Element.scala │ │ ├── Visitor.scala │ │ └── better │ │ ├── Element.scala │ │ └── Visitor.scala │ └── version.sbt ├── Chapter10 ├── mvn │ ├── input.txt │ ├── output.txt │ ├── pom.xml │ └── src │ │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── functors │ │ ├── Functor.scala │ │ ├── FunctorsExample.scala │ │ └── package.scala │ │ ├── monads │ │ ├── ListWrapper.scala │ │ ├── Monad.scala │ │ ├── Option.scala │ │ └── io │ │ │ ├── State.scala │ │ │ └── package.scala │ │ └── monoids │ │ ├── Monoid.scala │ │ ├── MonoidFolding.scala │ │ └── package.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── input.txt │ ├── output.txt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ └── main │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ ├── functors │ │ ├── Functor.scala │ │ ├── FunctorsExample.scala │ │ └── package.scala │ │ ├── monads │ │ ├── ListWrapper.scala │ │ ├── Monad.scala │ │ ├── Option.scala │ │ └── io │ │ │ ├── State.scala │ │ │ └── package.scala │ │ └── monoids │ │ ├── Monoid.scala │ │ ├── MonoidFolding.scala │ │ └── package.scala │ └── version.sbt ├── Chapter11 ├── mvn │ ├── pom.xml │ └── src │ │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── cake │ │ │ ├── Application.scala │ │ │ ├── ApplicationComponentRegistry.scala │ │ │ ├── DaoComponent.scala │ │ │ ├── DatabaseComponent.scala │ │ │ ├── MigrationComponent.scala │ │ │ ├── UserComponent.scala │ │ │ └── model │ │ │ │ ├── Class.scala │ │ │ │ └── Person.scala │ │ │ ├── duck │ │ │ ├── DuckTypingExample.scala │ │ │ ├── SentenceParserSplit.scala │ │ │ └── SentenceParserTokenize.scala │ │ │ ├── implicits │ │ │ ├── ImplicitExamples.scala │ │ │ ├── di │ │ │ │ ├── DatabaseService.scala │ │ │ │ ├── ImplicitDIExample.scala │ │ │ │ ├── UserService.scala │ │ │ │ ├── model │ │ │ │ │ └── Person.scala │ │ │ │ └── package.scala │ │ │ └── package.scala │ │ │ ├── laziness │ │ │ └── Person.scala │ │ │ ├── lens │ │ │ ├── User.scala │ │ │ └── bad │ │ │ │ └── User.scala │ │ │ ├── memo │ │ │ ├── Hasher.scala │ │ │ ├── MemoizationExample.scala │ │ │ └── Memoizer.scala │ │ │ ├── partial_functions │ │ │ ├── PartiallyAppliedFunctions.scala │ │ │ └── PartiallyDefinedFunctions.scala │ │ │ ├── pimp │ │ │ ├── PimpExample.scala │ │ │ ├── model │ │ │ │ └── Person.scala │ │ │ └── package.scala │ │ │ ├── stackable │ │ │ ├── IntQueue.scala │ │ │ └── StringWriter.scala │ │ │ └── type_classes │ │ │ ├── Number.scala │ │ │ ├── Stats.scala │ │ │ └── StatsExample.scala │ │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── cake │ │ ├── TestEnvironment.scala │ │ └── UserComponentTest.scala └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── cake │ │ │ ├── Application.scala │ │ │ ├── ApplicationComponentRegistry.scala │ │ │ ├── DaoComponent.scala │ │ │ ├── DatabaseComponent.scala │ │ │ ├── MigrationComponent.scala │ │ │ ├── UserComponent.scala │ │ │ └── model │ │ │ │ ├── Class.scala │ │ │ │ └── Person.scala │ │ │ ├── duck │ │ │ ├── DuckTypingExample.scala │ │ │ ├── SentenceParserSplit.scala │ │ │ └── SentenceParserTokenize.scala │ │ │ ├── implicits │ │ │ ├── ImplicitExamples.scala │ │ │ ├── di │ │ │ │ ├── DatabaseService.scala │ │ │ │ ├── ImplicitDIExample.scala │ │ │ │ ├── UserService.scala │ │ │ │ ├── model │ │ │ │ │ └── Person.scala │ │ │ │ └── package.scala │ │ │ └── package.scala │ │ │ ├── laziness │ │ │ └── Person.scala │ │ │ ├── lens │ │ │ ├── User.scala │ │ │ └── bad │ │ │ │ └── User.scala │ │ │ ├── memo │ │ │ ├── Hasher.scala │ │ │ ├── MemoizationExample.scala │ │ │ └── Memoizer.scala │ │ │ ├── partial_functions │ │ │ ├── PartiallyAppliedFunctions.scala │ │ │ └── PartiallyDefinedFunctions.scala │ │ │ ├── pimp │ │ │ ├── PimpExample.scala │ │ │ ├── model │ │ │ │ └── Person.scala │ │ │ └── package.scala │ │ │ ├── stackable │ │ │ ├── IntQueue.scala │ │ │ └── StringWriter.scala │ │ │ └── type_classes │ │ │ ├── Number.scala │ │ │ ├── Stats.scala │ │ │ └── StatsExample.scala │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── cake │ │ ├── TestEnvironment.scala │ │ └── UserComponentTest.scala │ └── version.sbt ├── Chapter12 ├── job-scheduler │ ├── mvn │ │ ├── examples │ │ │ ├── ping.json │ │ │ ├── ping1.json │ │ │ └── query.json │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ ├── resources │ │ │ │ ├── application.conf │ │ │ │ └── log4j.properties │ │ │ └── scala │ │ │ │ └── com │ │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── scheduler │ │ │ │ ├── Scheduler.scala │ │ │ │ ├── actors │ │ │ │ ├── ActorFactoryComponent.scala │ │ │ │ ├── Master.scala │ │ │ │ ├── Worker.scala │ │ │ │ └── messages │ │ │ │ │ └── SchedulerMessage.scala │ │ │ │ ├── config │ │ │ │ ├── app │ │ │ │ │ └── AppConfigComponent.scala │ │ │ │ └── job │ │ │ │ │ ├── JobConfig.scala │ │ │ │ │ ├── JobFrequency.scala │ │ │ │ │ ├── JobType.scala │ │ │ │ │ └── TimeOptions.scala │ │ │ │ ├── dao │ │ │ │ ├── DaoServiceComponent.scala │ │ │ │ ├── DatabaseServiceComponent.scala │ │ │ │ └── MigrationComponent.scala │ │ │ │ ├── io │ │ │ │ └── IOServiceComponent.scala │ │ │ │ ├── registry │ │ │ │ └── ComponentRegistry.scala │ │ │ │ └── services │ │ │ │ └── JobConfigReaderServiceComponent.scala │ │ │ └── test │ │ │ ├── resources │ │ │ ├── application.conf │ │ │ ├── command.json │ │ │ └── log4j.properties │ │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ └── scheduler │ │ │ ├── TestEnvironment.scala │ │ │ ├── config │ │ │ └── job │ │ │ │ └── TimeOptionsTest.scala │ │ │ ├── dao │ │ │ └── DaoServiceTest.scala │ │ │ └── services │ │ │ └── JobConfigReaderServiceTest.scala │ └── sbt │ │ ├── assembly.sbt │ │ ├── build.sbt │ │ ├── examples │ │ ├── ping.json │ │ ├── ping1.json │ │ └── query.json │ │ ├── project │ │ ├── build.properties │ │ └── plugins.sbt │ │ ├── src │ │ ├── main │ │ │ ├── resources │ │ │ │ ├── application.conf │ │ │ │ └── log4j.properties │ │ │ └── scala │ │ │ │ └── com │ │ │ │ └── ivan │ │ │ │ └── nikolov │ │ │ │ └── scheduler │ │ │ │ ├── Scheduler.scala │ │ │ │ ├── actors │ │ │ │ ├── ActorFactoryComponent.scala │ │ │ │ ├── Master.scala │ │ │ │ ├── Worker.scala │ │ │ │ └── messages │ │ │ │ │ └── SchedulerMessage.scala │ │ │ │ ├── config │ │ │ │ ├── app │ │ │ │ │ └── AppConfigComponent.scala │ │ │ │ └── job │ │ │ │ │ ├── JobConfig.scala │ │ │ │ │ ├── JobFrequency.scala │ │ │ │ │ ├── JobType.scala │ │ │ │ │ └── TimeOptions.scala │ │ │ │ ├── dao │ │ │ │ ├── DaoServiceComponent.scala │ │ │ │ ├── DatabaseServiceComponent.scala │ │ │ │ └── MigrationComponent.scala │ │ │ │ ├── io │ │ │ │ └── IOServiceComponent.scala │ │ │ │ ├── registry │ │ │ │ └── ComponentRegistry.scala │ │ │ │ └── services │ │ │ │ └── JobConfigReaderServiceComponent.scala │ │ └── test │ │ │ ├── resources │ │ │ ├── application.conf │ │ │ ├── command.json │ │ │ └── log4j.properties │ │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ └── scheduler │ │ │ ├── TestEnvironment.scala │ │ │ ├── config │ │ │ └── job │ │ │ │ └── TimeOptionsTest.scala │ │ │ ├── dao │ │ │ └── DaoServiceTest.scala │ │ │ └── services │ │ │ └── JobConfigReaderServiceTest.scala │ │ └── version.sbt └── real-life-applications │ ├── mvn │ ├── pom.xml │ └── src │ │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── monads │ │ │ ├── IOMonadExample.scala │ │ │ ├── model │ │ │ │ └── Person.scala │ │ │ └── package.scala │ │ │ └── monoids │ │ │ ├── MonoidsExample.scala │ │ │ └── package.scala │ │ ├── people.out │ │ ├── people.tsv │ │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── monoids │ │ └── MonoidsTest.scala │ └── sbt │ ├── assembly.sbt │ ├── build.sbt │ ├── project │ ├── build.properties │ └── plugins.sbt │ ├── src │ ├── main │ │ └── scala │ │ │ └── com │ │ │ └── ivan │ │ │ └── nikolov │ │ │ ├── monads │ │ │ ├── IOMonadExample.scala │ │ │ ├── model │ │ │ │ └── Person.scala │ │ │ └── package.scala │ │ │ └── monoids │ │ │ ├── MonoidsExample.scala │ │ │ └── package.scala │ ├── people.out │ ├── people.tsv │ └── test │ │ └── scala │ │ └── com │ │ └── ivan │ │ └── nikolov │ │ └── monoids │ │ └── MonoidsTest.scala │ └── version.sbt ├── LICENSE └── README.md /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/.gitignore -------------------------------------------------------------------------------- /Chapter01/skeleton-mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter01/skeleton-mvn/pom.xml -------------------------------------------------------------------------------- /Chapter01/skeleton-mvn/src/test/scala/TestSomething.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter01/skeleton-mvn/src/test/scala/TestSomething.scala -------------------------------------------------------------------------------- /Chapter01/skeleton-sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter01/skeleton-sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter01/skeleton-sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter01/skeleton-sbt/build.sbt -------------------------------------------------------------------------------- /Chapter01/skeleton-sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter01/skeleton-sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter01/skeleton-sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter01/skeleton-sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter02/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/Beeper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/Beeper.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/NotifierImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/NotifierImpl.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/Ping.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/basic/Ping.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Alarm.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Alarm.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Connector.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Connector.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Notifier.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/common/Notifier.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Clashing.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Clashing.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Greeter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Greeter.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Watch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/composition/Watch.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/diamond/Diamond.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/diamond/Diamond.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/linearisation/Animal.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/linearisation/Animal.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/main/scala/com/ivan/nikolov/linearisation/MultiplierIdentity.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/main/scala/com/ivan/nikolov/linearisation/MultiplierIdentity.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/test/scala/com/ivan/nikolov/composition/TraitACaseScopeTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/test/scala/com/ivan/nikolov/composition/TraitACaseScopeTest.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/test/scala/com/ivan/nikolov/composition/TraitATest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/test/scala/com/ivan/nikolov/composition/TraitATest.scala -------------------------------------------------------------------------------- /Chapter02/mvn/src/test/scala/com/ivan/nikolov/linearisation/DoubledMultiplierIdentityTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/mvn/src/test/scala/com/ivan/nikolov/linearisation/DoubledMultiplierIdentityTest.scala -------------------------------------------------------------------------------- /Chapter02/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter02/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter02/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter02/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/Beeper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/Beeper.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/NotifierImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/NotifierImpl.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/Ping.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/basic/Ping.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Alarm.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Alarm.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Connector.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Connector.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Notifier.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/common/Notifier.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Clashing.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Clashing.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Greeter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Greeter.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Watch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/composition/Watch.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/diamond/Diamond.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/diamond/Diamond.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/linearisation/Animal.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/linearisation/Animal.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/main/scala/com/ivan/nikolov/linearisation/MultiplierIdentity.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/main/scala/com/ivan/nikolov/linearisation/MultiplierIdentity.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/test/scala/com/ivan/nikolov/composition/TraitACaseScopeTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/test/scala/com/ivan/nikolov/composition/TraitACaseScopeTest.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/test/scala/com/ivan/nikolov/composition/TraitATest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/test/scala/com/ivan/nikolov/composition/TraitATest.scala -------------------------------------------------------------------------------- /Chapter02/sbt/src/test/scala/com/ivan/nikolov/linearisation/DoubledMultiplierIdentityTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter02/sbt/src/test/scala/com/ivan/nikolov/linearisation/DoubledMultiplierIdentityTest.scala -------------------------------------------------------------------------------- /Chapter02/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter03/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/Month.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/Month.scala -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/RGB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/RGB.scala -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/Shape.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/adts/Shape.scala -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/functions/FunctionLiterals.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/functions/FunctionLiterals.scala -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/functions/FunctionObjects.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/functions/FunctionObjects.scala -------------------------------------------------------------------------------- /Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/modules/Alarm.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/mvn/src/main/scala/com/ivan/nikolov/unification/modules/Alarm.scala -------------------------------------------------------------------------------- /Chapter03/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter03/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter03/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter03/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/Month.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/Month.scala -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/RGB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/RGB.scala -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/Shape.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/adts/Shape.scala -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/functions/FunctionLiterals.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/functions/FunctionLiterals.scala -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/functions/FunctionObjects.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/functions/FunctionObjects.scala -------------------------------------------------------------------------------- /Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/modules/Alarm.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter03/sbt/src/main/scala/com/ivan/nikolov/unification/modules/Alarm.scala -------------------------------------------------------------------------------- /Chapter03/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter04/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/AbstractTypesExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/AbstractTypesExamples.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/GenericsExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/GenericsExamples.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/Person.scala: -------------------------------------------------------------------------------- 1 | package com.ivan.nikolov.abstract_types 2 | 3 | 4 | case class Person(name: String) 5 | -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/Printer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/abstract_types/Printer.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/polymorphism/AdhocPolymorphismExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/polymorphism/AdhocPolymorphismExample.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/polymorphism/SubtypePolymorphismExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/polymorphism/SubtypePolymorphismExample.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/self_types/DB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/self_types/DB.scala -------------------------------------------------------------------------------- /Chapter04/mvn/src/main/scala/com/ivan/nikolov/self_types/PersisterExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/mvn/src/main/scala/com/ivan/nikolov/self_types/PersisterExample.scala -------------------------------------------------------------------------------- /Chapter04/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter04/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter04/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter04/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/AbstractTypesExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/AbstractTypesExamples.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/GenericsExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/GenericsExamples.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/Person.scala: -------------------------------------------------------------------------------- 1 | package com.ivan.nikolov.abstract_types 2 | 3 | 4 | case class Person(name: String) 5 | -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/Printer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/abstract_types/Printer.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/polymorphism/AdhocPolymorphismExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/polymorphism/AdhocPolymorphismExample.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/polymorphism/SubtypePolymorphismExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/polymorphism/SubtypePolymorphismExample.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/self_types/DB.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/self_types/DB.scala -------------------------------------------------------------------------------- /Chapter04/sbt/src/main/scala/com/ivan/nikolov/self_types/PersisterExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter04/sbt/src/main/scala/com/ivan/nikolov/self_types/PersisterExample.scala -------------------------------------------------------------------------------- /Chapter04/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter05/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/resources/users.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/resources/users.json -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/DataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/DataReader.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/LoggingDataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/LoggingDataReader.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/aop/model/Person.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/CookingComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/CookingComponent.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/RecipeComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/RecipeComponent.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/Robot.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/RobotRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/RobotRegistry.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/TimeComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/TimeComponent.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/Cooker.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/Cooker.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/RecipeFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/RecipeFinder.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/Time.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/base/Time.scala -------------------------------------------------------------------------------- /Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/model/Food.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/mvn/src/main/scala/com/ivan/nikolov/components/model/Food.scala -------------------------------------------------------------------------------- /Chapter05/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter05/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter05/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter05/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/resources/users.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/resources/users.json -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/DataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/DataReader.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/LoggingDataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/LoggingDataReader.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/aop/model/Person.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/CookingComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/CookingComponent.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/RecipeComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/RecipeComponent.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/Robot.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/RobotRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/RobotRegistry.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/TimeComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/TimeComponent.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/Cooker.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/Cooker.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/RecipeFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/RecipeFinder.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/Time.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/base/Time.scala -------------------------------------------------------------------------------- /Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/model/Food.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter05/sbt/src/main/scala/com/ivan/nikolov/components/model/Food.scala -------------------------------------------------------------------------------- /Chapter05/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter06/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/resources/com/ivan/nikolov/creational/lazy_init/pi.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/resources/com/ivan/nikolov/creational/lazy_init/pi.properties -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/case_classes/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/case_classes/Person.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/java_way/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/java_way/Person.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/Person.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/case_require/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/case_require/Person.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/SimpleConnection.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/SimpleConnection.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseConnectorFactory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseConnectorFactory.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/Example.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/Example.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadDatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadDatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadExample.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/DatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/DatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/Example.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/Example.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/SimpleConnectionPrinter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/SimpleConnectionPrinter.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/simple/Animal.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/factories/simple/Animal.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/lazy_init/CircleUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/lazy_init/CircleUtils.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/prototype/Cell.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/prototype/Cell.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/singleton/AppRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/singleton/AppRegistry.scala -------------------------------------------------------------------------------- /Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/singleton/StringUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/mvn/src/main/scala/com/ivan/nikolov/creational/singleton/StringUtils.scala -------------------------------------------------------------------------------- /Chapter06/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter06/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter06/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter06/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/resources/com/ivan/nikolov/creational/lazy_init/pi.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/resources/com/ivan/nikolov/creational/lazy_init/pi.properties -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/case_classes/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/case_classes/Person.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/java_way/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/java_way/Person.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/Person.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/case_require/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/builder/type_safe/case_require/Person.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/SimpleConnection.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/SimpleConnection.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseConnectorFactory.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/DatabaseConnectorFactory.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/Example.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/abstract_factory/Example.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadDatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadDatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/BadExample.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/DatabaseClient.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/DatabaseClient.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/Example.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/Example.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/SimpleConnectionPrinter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/factory_method/SimpleConnectionPrinter.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/simple/Animal.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/factories/simple/Animal.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/lazy_init/CircleUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/lazy_init/CircleUtils.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/prototype/Cell.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/prototype/Cell.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/singleton/AppRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/singleton/AppRegistry.scala -------------------------------------------------------------------------------- /Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/singleton/StringUtils.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter06/sbt/src/main/scala/com/ivan/nikolov/creational/singleton/StringUtils.scala -------------------------------------------------------------------------------- /Chapter06/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter07/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/resources/com/ivan/nikolov/structural/decorator/data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/resources/com/ivan/nikolov/structural/decorator/data.txt -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/resources/com/ivan/nikolov/structural/proxy/file1.txt: -------------------------------------------------------------------------------- 1 | I am file 1. -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/resources/com/ivan/nikolov/structural/proxy/file2.txt: -------------------------------------------------------------------------------- 1 | I am file 2. -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/resources/com/ivan/nikolov/structural/proxy/file3.txt: -------------------------------------------------------------------------------- 1 | I am file 3. -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/adapter/AppLogger.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/adapter/AppLogger.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/adapter/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/adapter/package.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/Hasher.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/PasswordConverter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/PasswordConverter.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/common/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/common/Hasher.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/scala/HasherImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/scala/HasherImpl.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/scala/PasswordConverterBase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/bridge/scala/PasswordConverterBase.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/composite/Node.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/composite/Node.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/CapitalizedInputReaderTrait.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/CapitalizedInputReaderTrait.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/InputReaderDecorator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/InputReaderDecorator.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/common/InputReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/decorator/common/InputReader.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDecoder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDecoder.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDeserializer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDeserializer.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDownloader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataDownloader.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/DataReader.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/facade/model/Person.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/flyweight/Circle.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/flyweight/Circle.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/flyweight/Color.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/flyweight/Color.scala -------------------------------------------------------------------------------- /Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/proxy/FileReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/mvn/src/main/scala/com/ivan/nikolov/structural/proxy/FileReader.scala -------------------------------------------------------------------------------- /Chapter07/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter07/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter07/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter07/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/resources/com/ivan/nikolov/structural/decorator/data.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/resources/com/ivan/nikolov/structural/decorator/data.txt -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/resources/com/ivan/nikolov/structural/proxy/file1.txt: -------------------------------------------------------------------------------- 1 | I am file 1. -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/resources/com/ivan/nikolov/structural/proxy/file2.txt: -------------------------------------------------------------------------------- 1 | I am file 2. -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/resources/com/ivan/nikolov/structural/proxy/file3.txt: -------------------------------------------------------------------------------- 1 | I am file 3. -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/adapter/AppLogger.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/adapter/AppLogger.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/adapter/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/adapter/package.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/Hasher.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/PasswordConverter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/PasswordConverter.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/common/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/common/Hasher.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/scala/HasherImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/scala/HasherImpl.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/scala/PasswordConverterBase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/bridge/scala/PasswordConverterBase.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/composite/Node.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/composite/Node.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/CapitalizedInputReaderTrait.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/CapitalizedInputReaderTrait.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/InputReaderDecorator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/InputReaderDecorator.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/common/InputReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/decorator/common/InputReader.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDecoder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDecoder.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDeserializer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDeserializer.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDownloader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataDownloader.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/DataReader.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/facade/model/Person.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/flyweight/Circle.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/flyweight/Circle.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/flyweight/Color.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/flyweight/Color.scala -------------------------------------------------------------------------------- /Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/proxy/FileReader.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter07/sbt/src/main/scala/com/ivan/nikolov/structural/proxy/FileReader.scala -------------------------------------------------------------------------------- /Chapter07/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter08/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.json -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala -------------------------------------------------------------------------------- /Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala -------------------------------------------------------------------------------- /Chapter08/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter08/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter08/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter08/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.json -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala -------------------------------------------------------------------------------- /Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter08/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala -------------------------------------------------------------------------------- /Chapter08/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter09/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/resources/com/ivan/nikolov/behavioral/template/people.json -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala -------------------------------------------------------------------------------- /Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/mvn/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala -------------------------------------------------------------------------------- /Chapter09/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter09/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter09/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter09/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/strategy/people.json -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.csv: -------------------------------------------------------------------------------- 1 | Ivan,26,London 2 | Maria,23,Edinburgh 3 | John,36,New York 4 | Anna,24,Moscow -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/resources/com/ivan/nikolov/behavioral/template/people.json -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/ATM.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Dispenser.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/chain_of_responsibility/Money.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/Robot.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/command/RobotCommand.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/Expression.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/interpreter/RPNParser.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/iterator/Student.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/mediator/Student.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/Memento.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/memento/TextEditor.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/DataGenerator.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/null_object/Message.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Observer.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/observer/Post.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/State.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/state/model/MediaPlayer.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/Parser.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/ParsingStrategy.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/strategy/model/Person.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/DataFinder.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/template/model/Person.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/value_object/Date.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Element.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/Visitor.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Element.scala -------------------------------------------------------------------------------- /Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter09/sbt/src/main/scala/com/ivan/nikolov/behavioral/visitor/better/Visitor.scala -------------------------------------------------------------------------------- /Chapter09/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter10/mvn/input.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/input.txt -------------------------------------------------------------------------------- /Chapter10/mvn/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/output.txt -------------------------------------------------------------------------------- /Chapter10/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/Functor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/Functor.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/FunctorsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/FunctorsExample.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/functors/package.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/ListWrapper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/ListWrapper.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/Monad.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/Monad.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/Option.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/Option.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/io/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/io/State.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/io/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monads/io/package.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/Monoid.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/Monoid.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/MonoidFolding.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/MonoidFolding.scala -------------------------------------------------------------------------------- /Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/mvn/src/main/scala/com/ivan/nikolov/monoids/package.scala -------------------------------------------------------------------------------- /Chapter10/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter10/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter10/sbt/input.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/input.txt -------------------------------------------------------------------------------- /Chapter10/sbt/output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/output.txt -------------------------------------------------------------------------------- /Chapter10/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter10/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/Functor.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/Functor.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/FunctorsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/FunctorsExample.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/functors/package.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/ListWrapper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/ListWrapper.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/Monad.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/Monad.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/Option.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/Option.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/io/State.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/io/State.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/io/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monads/io/package.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/Monoid.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/Monoid.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/MonoidFolding.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/MonoidFolding.scala -------------------------------------------------------------------------------- /Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter10/sbt/src/main/scala/com/ivan/nikolov/monoids/package.scala -------------------------------------------------------------------------------- /Chapter10/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter11/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/Application.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/Application.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/ApplicationComponentRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/ApplicationComponentRegistry.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/DaoComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/DaoComponent.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/DatabaseComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/DatabaseComponent.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/MigrationComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/MigrationComponent.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/UserComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/UserComponent.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/model/Class.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/model/Class.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/cake/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/DuckTypingExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/DuckTypingExample.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/SentenceParserSplit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/SentenceParserSplit.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/SentenceParserTokenize.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/duck/SentenceParserTokenize.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/ImplicitExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/ImplicitExamples.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/DatabaseService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/DatabaseService.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/ImplicitDIExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/ImplicitDIExample.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/UserService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/UserService.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/di/package.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/implicits/package.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/laziness/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/laziness/Person.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/lens/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/lens/User.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/lens/bad/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/lens/bad/User.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/Hasher.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/MemoizationExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/MemoizationExample.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/Memoizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/memo/Memoizer.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyAppliedFunctions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyAppliedFunctions.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyDefinedFunctions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyDefinedFunctions.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/PimpExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/PimpExample.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/pimp/package.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/stackable/IntQueue.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/stackable/IntQueue.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/stackable/StringWriter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/stackable/StringWriter.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/Number.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/Number.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/Stats.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/Stats.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/StatsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/main/scala/com/ivan/nikolov/type_classes/StatsExample.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/test/scala/com/ivan/nikolov/cake/TestEnvironment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/test/scala/com/ivan/nikolov/cake/TestEnvironment.scala -------------------------------------------------------------------------------- /Chapter11/mvn/src/test/scala/com/ivan/nikolov/cake/UserComponentTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/mvn/src/test/scala/com/ivan/nikolov/cake/UserComponentTest.scala -------------------------------------------------------------------------------- /Chapter11/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter11/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter11/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter11/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/Application.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/Application.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/ApplicationComponentRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/ApplicationComponentRegistry.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/DaoComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/DaoComponent.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/DatabaseComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/DatabaseComponent.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/MigrationComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/MigrationComponent.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/UserComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/UserComponent.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/model/Class.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/model/Class.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/cake/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/DuckTypingExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/DuckTypingExample.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/SentenceParserSplit.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/SentenceParserSplit.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/SentenceParserTokenize.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/duck/SentenceParserTokenize.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/ImplicitExamples.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/ImplicitExamples.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/DatabaseService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/DatabaseService.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/ImplicitDIExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/ImplicitDIExample.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/UserService.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/UserService.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/di/package.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/implicits/package.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/laziness/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/laziness/Person.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/lens/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/lens/User.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/lens/bad/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/lens/bad/User.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/Hasher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/Hasher.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/MemoizationExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/MemoizationExample.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/Memoizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/memo/Memoizer.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyAppliedFunctions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyAppliedFunctions.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyDefinedFunctions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/partial_functions/PartiallyDefinedFunctions.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/PimpExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/PimpExample.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/model/Person.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/pimp/package.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/stackable/IntQueue.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/stackable/IntQueue.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/stackable/StringWriter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/stackable/StringWriter.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/Number.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/Number.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/Stats.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/Stats.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/StatsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/main/scala/com/ivan/nikolov/type_classes/StatsExample.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/test/scala/com/ivan/nikolov/cake/TestEnvironment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/test/scala/com/ivan/nikolov/cake/TestEnvironment.scala -------------------------------------------------------------------------------- /Chapter11/sbt/src/test/scala/com/ivan/nikolov/cake/UserComponentTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter11/sbt/src/test/scala/com/ivan/nikolov/cake/UserComponentTest.scala -------------------------------------------------------------------------------- /Chapter11/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/examples/ping.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/examples/ping.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/examples/ping1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/examples/ping1.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/examples/query.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/examples/query.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/resources/application.conf -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/Scheduler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/Scheduler.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/ActorFactoryComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/ActorFactoryComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/Master.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/Master.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/Worker.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/Worker.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/messages/SchedulerMessage.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/actors/messages/SchedulerMessage.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/app/AppConfigComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/app/AppConfigComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobConfig.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobFrequency.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobFrequency.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobType.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/TimeOptions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/config/job/TimeOptions.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/DaoServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/DaoServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/DatabaseServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/DatabaseServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/MigrationComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/dao/MigrationComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/io/IOServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/io/IOServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/registry/ComponentRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/registry/ComponentRegistry.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/main/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/resources/application.conf -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/resources/command.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/resources/command.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/TestEnvironment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/TestEnvironment.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/config/job/TimeOptionsTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/config/job/TimeOptionsTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/dao/DaoServiceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/dao/DaoServiceTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/mvn/src/test/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/examples/ping.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/examples/ping.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/examples/ping1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/examples/ping1.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/examples/query.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/examples/query.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/resources/application.conf -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/Scheduler.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/Scheduler.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/ActorFactoryComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/ActorFactoryComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/Master.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/Master.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/Worker.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/Worker.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/messages/SchedulerMessage.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/actors/messages/SchedulerMessage.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/app/AppConfigComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/app/AppConfigComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobConfig.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobFrequency.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobFrequency.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/JobType.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/TimeOptions.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/config/job/TimeOptions.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/DaoServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/DaoServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/DatabaseServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/DatabaseServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/MigrationComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/dao/MigrationComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/io/IOServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/io/IOServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/registry/ComponentRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/registry/ComponentRegistry.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceComponent.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/main/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceComponent.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/resources/application.conf -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/resources/command.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/resources/command.json -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/resources/log4j.properties -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/TestEnvironment.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/TestEnvironment.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/config/job/TimeOptionsTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/config/job/TimeOptionsTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/dao/DaoServiceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/dao/DaoServiceTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/job-scheduler/sbt/src/test/scala/com/ivan/nikolov/scheduler/services/JobConfigReaderServiceTest.scala -------------------------------------------------------------------------------- /Chapter12/job-scheduler/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/pom.xml -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/IOMonadExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/IOMonadExample.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/model/Person.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monads/package.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monoids/MonoidsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monoids/MonoidsExample.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monoids/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/main/scala/com/ivan/nikolov/monoids/package.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/people.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/people.out -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/people.tsv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/people.tsv -------------------------------------------------------------------------------- /Chapter12/real-life-applications/mvn/src/test/scala/com/ivan/nikolov/monoids/MonoidsTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/mvn/src/test/scala/com/ivan/nikolov/monoids/MonoidsTest.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/assembly.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/assembly.sbt -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/build.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/build.sbt -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.1.0 -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/project/plugins.sbt -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/IOMonadExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/IOMonadExample.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/model/Person.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/model/Person.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monads/package.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monoids/MonoidsExample.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monoids/MonoidsExample.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monoids/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/main/scala/com/ivan/nikolov/monoids/package.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/people.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/people.out -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/people.tsv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/people.tsv -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/src/test/scala/com/ivan/nikolov/monoids/MonoidsTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/Chapter12/real-life-applications/sbt/src/test/scala/com/ivan/nikolov/monoids/MonoidsTest.scala -------------------------------------------------------------------------------- /Chapter12/real-life-applications/sbt/version.sbt: -------------------------------------------------------------------------------- 1 | version in ThisBuild := "1.0.0-SNAPSHOT" 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Scala-Design-Patterns-Second-Edition/HEAD/README.md --------------------------------------------------------------------------------