duct

y.khmelevskii 2019-06-10T05:57:19.003100Z

@romain I use Reitit in duct together with pedestal

romain 2019-06-11T11:45:06.023200Z

Do you have any sample project to show or module you built to replace ataraxis with reitit?

y.khmelevskii 2019-06-12T05:33:36.023500Z

@romain I will try to push sample project to github this weekend

đź‘Ť 2
romain 2019-06-12T06:15:02.023700Z

Thanks mate :)

Ahmed Hassan 2019-06-16T17:35:58.027900Z

@y.khmelevskii What's reason behind this setup?

Ahmed Hassan 2019-06-16T17:40:39.028200Z

I mean pedestal already has router, and why do we need duct here?

y.khmelevskii 2019-06-16T18:33:22.028400Z

@ahmed1hsn I love reitit because it’s data-driven router. I can describe routes in one place and use them on backend and frontend. Also coercion is great! You can read reasons of using reitit in pedestal instead of native pedestal router here https://metosin.github.io/reitit/http/pedestal.html Reitit benchmarks looks awesome too https://github.com/metosin/reitit/blob/master/doc/performance.md About duct. For me it’s great framework with data-driven architecture based on integrant. It’s very easy to describe module dependencies and mock them during tests. And about pedestal, I like interceptors and they very useful for me. I store some logic in their for manage different cases

đź‘Ť 1
romain 2019-06-16T18:33:27.028700Z

Oh great! I'll give a look this week but I thank you in advance :)

đź‘Ť 1
romain 2019-06-16T18:34:29.028900Z

You tried luminus? I like it but I find it too boilerplate for small project

y.khmelevskii 2019-06-16T18:39:01.029200Z

No, I didn’t use luminus

Ahmed Hassan 2019-06-17T12:34:29.033400Z

I think you are using Duct and Integrant here only for state management of server side, you can use Mount for this purpose too.

Ahmed Hassan 2019-06-17T12:45:06.033800Z

Is it possible to use these with CLJ deps tools? because I'm using it instead of leiningen. And this setup depends on lein -duct

y.khmelevskii 2019-06-10T06:01:24.004500Z

Hi gents! Can you please explain me why duct.database/sql doesn’t work when I configure connection in config.edn not dev.edn. I catch the following exception:

class duct.database.sql.Boundary cannot be cast to class clojure.lang.IFn
   (duct.database.sql.Boundary is in unnamed module of loader
   clojure.lang.DynamicClassLoader @1cc6aa6c; clojure.lang.IFn is in unnamed
   module of loader 'app')

y.khmelevskii 2019-06-10T06:04:43.006200Z

so, if in example lein new duct my-app +api +ataraxy +example +postgres I will moved duct.database/sql section from dev.edn to config.edn I with catch this problem

2019-06-10T06:32:58.007400Z

@y.khmelevskii Hi. Can you tell me the version of duct yo’re using?

y.khmelevskii 2019-06-10T06:36:23.007900Z

@jahson I used last versions:

duct/core           {:mvn/version "0.7.0"}
  duct/module.sql     {:mvn/version "0.5.0"}

Ahmed Hassan 2019-06-10T06:49:31.010300Z

Together with pedestal?

2019-06-10T06:49:39.010600Z

Where do you place your duct.database/sql section in config.edn? It seems like you’ve placed it outside of the base profile?

2019-06-10T06:59:39.014800Z

I got the error, and the cause is the wrong placement of :duct.database/sql configuration. Basically it should be in :duct.profile/base section. The reason is that in the version 0.11 of duct framework the profiles were added, and now the first level of keys in config is for modules / profiles.

y.khmelevskii 2019-06-10T07:33:11.015200Z

@jahson I got you, thank you!

y.khmelevskii 2019-06-10T07:37:59.017200Z

and one more question. I use ragtime and I want to move description af all migrations to separate migration.edn. In previous version I could use :duct.core/include ["migration"] but now I should use {:duct.profile/migration #duct/include "migration"]}. But it doesn’t work for me No method in multimethod 'init-key' for dispatch value: :duct.profile/migration

2019-06-10T07:56:40.022500Z

I think you could just put something like :duct.migrator/ragtime {:migrations #duct/include "migrations"} or :duct.migrator/ragtime {:migrations [#duct/include "migration1" ...]}. What yo’re trying to do is to include the profile called migration, but your profile isn’t derived from :duct/profile. You should look for duct_hierarchy.edn in src directory and add the derivation, like in https://github.com/duct-framework/core/blob/master/src/duct_hierarchy.edn

y.khmelevskii 2019-06-10T19:21:19.023Z

thank you for explanation @jahson!