Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 07:39
    thanhdatdev starred hanami/hanami
  • Dec 07 14:40

    jodosha on v2.0.0.alpha4

    (compare)

  • Dec 07 14:39

    jodosha on v2.0.0.alpha4

    (compare)

  • Dec 07 09:23
    wuarmin commented #394
  • Dec 06 12:44
    timriley commented #1133
  • Dec 06 12:43
    timriley synchronize #1133
  • Dec 06 12:43

    timriley on source-dir-config

    Use updated dry-system componen… (compare)

  • Dec 06 12:12
    timriley edited #1133
  • Dec 06 12:08
    timriley synchronize #1133
  • Dec 06 12:08

    timriley on source-dir-config

    Handle lib consistently like ot… (compare)

  • Dec 06 11:46
    timriley commented #359
  • Dec 06 11:45
    timriley commented #359
  • Dec 06 09:10
    wuarmin commented #394
  • Dec 06 09:10
    wuarmin commented #394
  • Dec 06 09:09
    wuarmin commented #394
  • Dec 06 02:17
    EugeneFelix starred hanami/hanami
  • Dec 04 00:44
    Blackmoses32 starred hanami/controller
  • Dec 03 19:08
    ianks commented #359
  • Dec 03 19:08
    ianks synchronize #359
  • Dec 03 17:56
    wholesomedonut starred hanami/hanami
jaypandya
@jaypandya:matrix.org
[m]
so I'm trying to change this dataset for my Repositories but I'm not able to override default dataset
Raul Victor Coan
@Wynteres
Hey guys, anyone knows how to use the view to render JSON without it triggering that freaking safety feature that converts " to " ?
Maxi
@mvadora_twitter
Hey guys! I'm new here. So I have some questions to ask you.
  1. How can I start with hanami? -> Currently I'm reading docs and understanding the hows and the whys
  2. Why should I choose hanami instead of rails to build a new application?
  3. What is the ideal or perfect project for hanami?
    Thanks!
Sebastjan Hribar
@sebastjan-hribar
Hi all, does anyone know how to add unique constraint on an combination of columns like so: add_unique_constraint(:column_1, :column_2). This, however, returns no implicit conversion of Symbol into Hash.
Seb Wilgosz
@swilgosz
@mvadora_twitter I suggest to either wait a little bit, or try to focus on sources covering Hanami 2.0, like my Hanami Mastery project. https://hanamimastery.com/. I am in the process of creating PDF about differences between Hanami and Rails, and also some guides when and how to switch. I have also written an article talking about my experience in switching from Rails (https://www.useo.pl/blog/2021/07/trying-hanami-in-microservices). For philosophy I recommend the official guides (https://guides.hanamirb.org). The Hanami Guides for 2.0 are in progress by me (hanami/guides#90). For direct contact and help I can recommend supporting me on Github, I prioritize questions and topics of my GH sponsors when preparing new HM episodes and articles. Also I give access to my private, and beta projects source code for them. Finally, there is a bookshelf repository in Hanami gh account, where you can see by an example a complete application.
Maxi
@mvadora_twitter
@swilgosz Hi, thanks for the answer, I definitely gonna take a look at each stuff that you've mentioned.
Sebastjan Hribar
@sebastjan-hribar

Hi all, does anyone know how to add unique constraint on an combination of columns like so: add_unique_constraint(:column_1, :column_2). This, however, returns no implicit conversion of Symbol into Hash.

it seems to work by passing in an array of column names. Also, to remove the previously added unique constraint on a column use the drop_constraintmethod and pass it the constraint name, created by the add_unique_constraint.

Seb Wilgosz
@swilgosz

@sebastjan-hribar does this help you? It seems you need to pass an array of columns, try to wrap it with []

https://github.com/jeremyevans/sequel/blob/master/doc/schema_modification.rdoc#index-

Sebastjan Hribar
@sebastjan-hribar
@swilgosz yes, I can implement the new constraint by passing the array of columns, but I also had to drop the previous one, which I couldn't figure out. I've ended up just dropping the db and adjusting the previous migration. With seeding in place we have the db back for dev in no time :)
Dino Koutrouzas
@dino-koutrouzas

@sebastjan-hribar had to do this the other day by using drop_constraint with the name of the constraint, which in our case was something like drop_constraint :table_name_first_column_second_column_key

https://sequel.jeremyevans.net/rdoc/classes/Sequel/Schema/AlterTableGenerator.html#method-i-drop_constraint

Brendan
@b-murphy

Hey All :wave:

I've recently hit an oddity with my spec within a newly create hanami app.

Basically we have controllers which will use the handle_exception => :do_a_thing

To test this we are using expect { action.call(params) }.to raise_error(exception, message)

Which works nicely; But the issue is that we can't seem to configure handle_exceptions correctly to false when running request specs; we've tried handle_exceptions ENV.fetch('HANDLE_EXCEPTIONS', true) and using allow(ENV).to receive(:fetch).with('HANDLE_EXCEPTIONS') But something within the pre-booting of the application.rb within this doesn't listen to this or something else we perhaps are missing?!

Having a dig though hanami's own specs we noticed hanami/devtools doing something to RSpec::Support::Env which looks like it would cover the case; but haven't explored yet; but seems like a relatively simple problem we perhaps have just missed!

Any help would be greatly appreciated!

Artemiy Solopov
@art-solopov
Hi all.
Sorry if this question is explained elsewhere.
Can I render a partial from a view/helper? render partial: partial_name in a helper method throws an ArgumentError.
Sebastjan Hribar
@sebastjan-hribar
@art-solopov I'm not sure what the problem would be, but we keep partials in apps\templates\shared, name them like _notice.html.erb and invoke them in the template like <%= render partial: 'shared/notice'%>.
Sebastjan Hribar
@sebastjan-hribar
I've put together a small blog post for how I use Tachiban. I'm comparing the use across my apps and I realized this is something that would be useful from the start, but I haven't put it in the readme.
Anyway, I hope it will be useful to someone else as well. I'll update if/when I find any errors and I'll write one for Rokku.
Seb Wilgosz
@swilgosz
Hi, I have published a short YT video guide about mapping Rails to Hanami, it may help to quickly grasp basic hanami concepts for people coming from the Rails world:).
Jeffrey 'jf' Lim
@jf
does anybody know if there is a way to get a list of all the entities defined in Hanami?
Seb Wilgosz
@swilgosz
Don't know if there is any shortcut but here are few ideas https://stackoverflow.com/questions/2393697/look-up-all-descendants-of-a-class-in-ruby
Jeffrey 'jf' Lim
@jf
thank you, Sebastian! that helps!
postmodern
@postmodern:matrix.org
[m]
Hi, I'm looking for an example app that uses both hanami-model (for app models) and another database via ActiveRecord.
postmodern
@postmodern:matrix.org
[m]
:point_up: Edit: Hi, I'm looking for an example app that uses both hanami-model (for app models) and another database via ActiveRecord. The other database would be managed by AR models from another gem. I'm guessing I'd need to load the gem's AR migrations in db/migrate and initialize ActiveRecord somewhere in config/...?
postmodern
@postmodern:matrix.org
[m]
Hmm it may reduce future contributor confusion if I just used AR for both databases.
Seb Wilgosz
@swilgosz
@postmodern:matrix.org First of all, keep in mind, that it's unclear if Hanami-Model will be used in Hanami 2.0. There is a big chance, that ROM 6.0 will be used directly. Therefore, please share the more insights why do you think that AR is needed to connect to a database? In ROM you can create migrations based on the current database schema, no need to import AR migrations and work with it. Then, you can create your ROM entities to infer from the database structure, just table names need to match. You could use ROM entities to just connect to multiple databases.
postmodern
@postmodern:matrix.org
[m]
well I want to have a library of DB models+migrations separate from the web app. Previously I used DataMapper for this library but that is defunct now. ROM seems a bit heavy, esp for CRUD and crafting SQL queries. AR has more users (due to Rails) and is more accessible for other developers who might contribute to the library or the web app. If I used the library in the app, than the library migrations would also need to be called along with the app's migrations. Also, the app would need to define it's own models for User, etc, separate from the library. So if I wanted to make it easy for contributors to contribute to both the db library and the app, than it seems consistent to use AR in both.
postmodern
@postmodern:matrix.org
[m]
:point_up: Edit: well I want to have a db library of DB models+migrations separate from the web app. Previously I used DataMapper for this library but that is defunct now. ROM seems a bit heavy, esp for CRUD and crafting SQL queries. AR has more users (due to Rails) and is more accessible for other developers who might contribute to the library or the web app. If I used the library in the app, than the library migrations would also need to be called along with the app's migrations. Also, the app would need to define it's own models for User, etc, separate from the library. So if I wanted to make it easy for contributors to contribute to both the db library and the app, than it seems consistent to use AR in both.
Seb Wilgosz
@swilgosz
Fair points. I do believe that the pool of ROM users will increase a lot after Hanami 2 is released, however I understand your motives. Thanks for the explanation and I am sorry for not being too helpful here.
@postmodern:matrix.org you can also try to ask on https://discourse.hanamirb.org/, the core team members are a bit more active there and the whole Hanami communication strategy is moving the attention more to forums (discourse, StackOverflow) than chats.
postmodern
@postmodern:matrix.org
[m]
oh cool, thanks!
ume-san
@ume-san:matrix.org
[m]
I have started using Hanami 1.3, and it's really great! I am also interested in 2.0. As far as I see an example of 2.0, https://github.com/hanami/hanami-2-application-template , there's no 'apps' directory. 'Slices' directory seems to be an alternative in 2.0. It would be great if there's an explanation about the difference between apps in 1.3 and slices in 2.0. Could someone explain it ?
Seb Wilgosz
@swilgosz
Yes, the slices is a replacement for apps. I do that have comparison of 2.0 vs 1.3 just yet. I an working on official guides for 2.0, and one of the chapters will be about upgrade notes, but this will he done as a very last part. I did publish the comparison of Rails and Hanami 2 architecture recently with YT video guide included. Feel free to check it out! https://hanamimastery.com/episodes/8-rails-vs-hanami-mapping-frameworks
Also feel free to subscribe to my Hanami Mastery channel and newsletter to get more learning resources about Hanami 2 and cirresponding gem families:)
Oh, sorry for the typo, I meant: I don't have comparison of Hanami 2 and 1.3, and I don't think there is anything official atm.
ume-san
@ume-san:matrix.org
[m]
@swilgosz: Thank you for your resources! Hanami Mastery is really helpful. I understand Hanami intends various abstractions, and it can be better than Rails.
I feel 2.0 intends more abstractions than 1.3, and I do not understand it and am still confused about it.
For example, 'show' action and 'show' view exist in very deep places, /slices/{main/lib/}main/actions/home/show.rb and /slices/{main/lib/}main/views/home/show.rb (curly braces are used just to emphasize). I do not understand the abstraction of {main/lib} part. From the view of 1.3, /slices/main/actions/home/show.rb and /slices/main/views/home/show.rb may be enough??
I hope there will be some explanations about these newly introduced abstractions or concepts in 2.0 !
Seb Wilgosz
@swilgosz
@ume-san:matrix.org this unnecessary redundant namespacing is exactly what Tim Riley worked on last month! The recent dry-system release solves exactly this problem and the next Hanami 2 alpha release will have simplified file structure:)
See the dry-system changes here: github.com/dry-rb/dry-system/blob/52e197b0aa8bd0301befc5afeb55e19a4ff6e8d6/spec/integration/container/auto_registration/component_dir_namespaces/multiple_namespaces_spec.rb
Seb Wilgosz
@swilgosz
And you may expect more details in the next Open Source update article:)
Edit: And you may expect more details in the next Tim's Open Source update article:)
ume-san
@ume-san:matrix.org
[m]
It sounds really great ! Simplified structure must be beneficial when migrating from 1.3 to 2.0 !! Thank you for you guys efforts !!
Seb Wilgosz
@swilgosz
BTW, Again, I strongly suggest to move to discourse.hanamirb.org as it's way easier to to track multiple threads and we would be able easier for us to help more people simultanously :). You may expect official announcement soon, similar as for rom-rb gitter chat.
ume-san
@ume-san:matrix.org
[m]
Pinned post on question category of discourse.hanamirb.org lead me here...
1 reply
Next time, I will post there!
postmodern
@postmodern:matrix.org
[m]
have you thought about setting up an unofficial Discord server? It's actually much nicer than Slack, and supports creating Threads that auto-expire.
Seb Wilgosz
@swilgosz
@ume-san:matrix.org :xD ! That's fine:) . I don't mind chatting a bit ;)
@postmodern:matrix.org I am unaware of the community preferences, feel free to open a forum thread and collect feedback!:). I personally love discord, but I use pretty much everything so I'm not the best person to vote.
ume-san
@ume-san:matrix.org
[m]
👍️
Andreas Haller
@ahx
Hi. I have a question about hanami-router / hanami-api.
It is not possible to use scope with a path variable like scope ':tenant_id', am I right?
Would that be even possible with the trie based router?
4 replies
Seb Wilgosz
@swilgosz
Hi all, if anyone is struggling with persistence layer in Hanami 2.0, I've just published the complete guide for this topic as a new Hanami Mastery episode. Feel free to check it out! https://hanamimastery.com/episodes/9-guide-to-models-in-hanami-and-rom
Jeffrey 'jf' Lim
@jf

is anybody aware of an issue with the "Getting Started" guide? I'm working through it and am just before "Displaying Validation Errors", and then I hit this issue with Hanami booting:

An error occurred while loading spec_helper.
Failure/Error: Hanami.boot

NoMethodError:
  undefined method `size' for nil:NilClass
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/dry-validation-0.11.0/lib/dry/validation/schema/deprecated.rb:11:in `input_processor'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/dry-validation-0.11.0/lib/dry/validation/schema/class_interface.rb:165:in `default_options'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/dry-validation-0.11.0/lib/dry/validation/schema/class_interface.rb:35:in `new'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-validations-1.3.7/lib/hanami/validations.rb:109:in `validations'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-controller-1.3.3/lib/hanami/action/params.rb:152:in `params'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-controller-1.3.3/lib/hanami/action/validatable.rb:100:in `block in params'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-controller-1.3.3/lib/hanami/action/validatable.rb:100:in `class_eval'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-controller-1.3.3/lib/hanami/action/validatable.rb:100:in `params'
# ./apps/web/controllers/books/create.rb:9:in `<class:Create>'
# ./apps/web/controllers/books/create.rb:4:in `<module:Books>'
# ./apps/web/controllers/books/create.rb:3:in `<module:Controllers>'
# ./apps/web/controllers/books/create.rb:2:in `<module:Web>'
# ./apps/web/controllers/books/create.rb:1:in `<top (required)>'
# /home/x/.rbenv/versions/2.7.4/gemsets/hnm/gems/hanami-utils-1.3.8/lib/hanami/utils.rb:56:in `require_relative'
...

This is most unexpected. I've dug through some of the gems... and arrived at dry-validation-0.11.0/lib/dry/validation/schema/deprecated.rb, where this is the offending line (apparently type_map is not expected to be nil):
elsif type_map.size > 0 && config.input_processor != :noop

I don't know where type_map is set though

2 replies