Kasper Timm Hansen's Avatar

Kasper Timm Hansen

@kaspth.com

Rails core alumni, principle consultant at https://spinel.coop where we do https://rv.dev and help teams level up. Creator & maintainer of Oaken, and other next-gen Rails extensions.

1,716
Followers
348
Following
612
Posts
19.10.2024
Joined
Posts Following

Latest posts by Kasper Timm Hansen @kaspth.com

Ah fair, just saw in the video with the h1 example. It lets ERB output the value so it doesn't leak what the code looks like client side.

06.03.2026 20:43 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Ah nice, that's cool!

Well for me it's more about not leaking the inner HTML externally. When Herb wraps an HTML comment around an HTML element that has an ERB output in there, does it also comment that out?

06.03.2026 20:42 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Love to read this.

Repo link for the skills @kaspth.com mentions: github.com/palkan/skills

06.03.2026 18:50 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Nice! I tend to insert a `if false &&` to prevent the inner markup from showing up in the output.

06.03.2026 17:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I've also been reading through @palkan.bsky.social's & @evilmartians.com Layered Design for Rails and it's cool to see many similar ideas for where I'd like to see Rails go (and Associated Objects gets a mention).

There's lots of interesting ideas and patterns in there, so I highly recommend it!

05.03.2026 17:45 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 1

The whole point of Associated Objects is to help what Rails devs struggle with most often: spotting collaborator objects to unfurl those god object Active Records and set it up in a conventional way.

You trade a bit of OOP design freedom for a lot of bang for your code buck.

05.03.2026 17:37 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1
@kaspth/active_record-associated_object β€” gem.coop Associate a Ruby PORO with an Active Record class and have it quack like one.

A fun thing in my ActiveRecord::AssociatedObject gem's design is that we delegate find_by, so in production I just did:

User::EmailVerification.find_by(email_address: ".@.").mailer.deliver_later

User is an Active Record, while the nested EmailVerification is a PORO!

beta.gem.coop/@kaspth/acti...

05.03.2026 17:37 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

#edbspillet

05.03.2026 14:46 πŸ‘ 9 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Four months of Ruby Central moving Ruby backward From the moment RubyGems was first created in 2004, Ruby Central provided governance without claiming ownership, to support the Ruby community. Providing governance meant creating processes to provide stability and predictability. Avoiding ownership meant allowing the community to contribute, to th…

after four months of private discussions, I have an update on the Bundler and RubyGems situation with Ruby Central: andre.arko.net/2026/03/03/fou…

03.03.2026 20:11 πŸ‘ 53 πŸ” 27 πŸ’¬ 0 πŸ“Œ 1

love twin peaks, there's some stuff that doesn't hold up but a lot still does

02.03.2026 21:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

as I gaze into the camera, it also gazes into me

02.03.2026 21:05 πŸ‘ 6 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

always wished we had this in the Ruby world https://gem.coop/updates/5/

02.03.2026 18:00 πŸ‘ 5 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

On Friday, I recorded a @blueridgeruby.com BTS episode with my friend @rhiannon.io, where we get into the crucial topic of marketing for conferences. Full episode here: www.youtube.com/watch?v=B3BB...

02.03.2026 17:01 πŸ‘ 6 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Peak Oaken aims to blend your Fixtures/Factories and levels up your database seeds.

Thinking of adding a new gem? There's a lot of info you need to look through to verify gems.

So based on feedback from @afomera.dev and @marcoroth.dev here's our initial take on that page:

beta.gem.coop/@kaspth/oaken

27.02.2026 23:27 πŸ‘ 9 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0

glad you're hanging out with Tim!

28.02.2026 18:33 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Peak To use namespaced gems pass a source in your Gemfile, like this:

"Pushing gem to beta.gem.coop/@stephen ...
yaml_csp_config-1.2.0.gem uploaded πŸŽ‰"

Pushed my first gem to my new namespace.

27.02.2026 16:00 πŸ‘ 3 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

(looks like I also need to fix up the page title lol)

27.02.2026 23:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Peak Embed a controller flow within another by stashing the final redirect upfront and performing it after completing.

Ideally the gem profile page, and your namespace profile page like beta.gem.coop/@kaspth, should be pages you'd feel proud to post.

We'd like to show off all the harness/skeleton of a gem in a way that a GitHub README can't.

Curious to hear what you think!

27.02.2026 23:27 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Peak Oaken aims to blend your Fixtures/Factories and levels up your database seeds.

Thinking of adding a new gem? There's a lot of info you need to look through to verify gems.

So based on feedback from @afomera.dev and @marcoroth.dev here's our initial take on that page:

beta.gem.coop/@kaspth/oaken

27.02.2026 23:27 πŸ‘ 9 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Preview
gem.coop update #5: namespaces beta Today, the gem.coop team is very excited to announce we have reached public beta. If you want to get started right away, sign up now to start publishing your gems. Have you ever come up with a really ...

#GemCoop just* launched a public beta for namespaces!

gem.coop/updates/5/

* I'm sick and slept until 7pm, so I'm a few hours late, but I'm still super excited about this!

25.02.2026 00:39 πŸ‘ 22 πŸ” 7 πŸ’¬ 0 πŸ“Œ 1
gem.coop We’re excited to introduce gem.coop – a new server for gems in the Ruby ecosystem. We aim for fast, simple hosting, that is compatible with Bundler but optimized for the next generation. It’s built fo...

Wow, gem.coop just launched a namespaces preview. They’re on a *tear* launching new features! gem.coop/updates/5/

24.02.2026 23:58 πŸ‘ 8 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
gem.coop update #5: namespaces beta Today, the gem.coop team is very excited to announce we have reached public beta. If you want to get started right away, sign up now to start publishing your gems. Have you ever come up with a really good gem name, only to discover that name has already been taken and you can’t push your gem? Ever been confused about if the gem aws-sdk-malware was really published by AWS?

yesss i’ve been waiting for this!!!

24.02.2026 22:24 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

it's been a long day and I forgot to build the email when users' namespaces are approved

fixing! (I've already approved your namespace)

24.02.2026 23:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

oh right of course πŸ’€

24.02.2026 21:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Since namespaced gems is brand new for the Ruby community, we've added explainers to the bottom of profile pages and one-click to copy the `bundle add` command.

Let us know how it's working for you and if you encounter issues!

24.02.2026 21:19 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
gem.coop update #5: namespaces beta Today, the gem.coop team is very excited to announce we have reached public beta. If you want to get started right away, sign up now to start publishing your gems. Have you ever come up with a really ...

I'm excited to be on beta.gem.coop/@kaspth

We've got namespaced gems you can use today!

Read more here: gem.coop/updates/5/

24.02.2026 21:16 πŸ‘ 9 πŸ” 3 πŸ’¬ 1 πŸ“Œ 1

10x is a pittance compared to all the meetings they just saved lol

24.02.2026 20:52 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Video thumbnail

On Friday, I recorded the first episode of Ridge Notes with JoΓ«l Quenneville. We chatted about his upcoming @blueridgeruby.com talk, "State is the First Decision You Never Made." Full episode here: www.youtube.com/watch?v=F5Yp...

23.02.2026 13:47 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
poster for the sopranos in the style of disney's "that's so raven". pink velvet background with a scowling tony soprano covering most of it, arms crossed. in the bottom left there is the logo:

disney
that's SO
PRANOS

the "so / pranos" is in the sopranos font

poster for the sopranos in the style of disney's "that's so raven". pink velvet background with a scowling tony soprano covering most of it, arms crossed. in the bottom left there is the logo: disney that's SO PRANOS the "so / pranos" is in the sopranos font

this came to me in a dream

21.02.2026 17:45 πŸ‘ 1901 πŸ” 438 πŸ’¬ 21 πŸ“Œ 6
Added

 - Full support for Linux musl on x86_64 and Arm64 

Changed

 - Enforce that gem versions must be ASCII 
 - Gem version comparison 4x-10x speedup 

Fixed

 - rv ci, rvx: Some native extensions were being compiled twice 
 - Test improvements 
 - rv ruby list sort order fixed

Added - Full support for Linux musl on x86_64 and Arm64 Changed - Enforce that gem versions must be ASCII - Gem version comparison 4x-10x speedup Fixed - rv ci, rvx: Some native extensions were being compiled twice - Test improvements - rv ruby list sort order fixed

rv 0.5.1 is out! Download it on Homebrew or at this link: github.com/spinel-coop/...

We now support musl thanks to @case.bike and fixed a performance regression thanks to David RodrΓ­guez. So now setup-rv GitHub Action should be just as fast as setup-ruby!

18.02.2026 19:55 πŸ‘ 8 πŸ” 3 πŸ’¬ 1 πŸ“Œ 1