desnudopenguino has quit [Ping timeout: 256 seconds]
desnudopenguino1 is now known as desnudopenguino
Dooky has joined #ruby
moldorcoder7 has quit [Ping timeout: 240 seconds]
roadie has joined #ruby
roadie has quit [Ping timeout: 248 seconds]
gasbag has joined #ruby
gasbag has quit [Quit: Leaving]
ap4y has joined #ruby
moldorcoder7 has joined #ruby
Inst has quit [Ping timeout: 250 seconds]
roadie has joined #ruby
roadie has quit [Ping timeout: 248 seconds]
caedmon has joined #ruby
caedmon has quit [Client Quit]
Munto has joined #ruby
Dooky has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
polishdub has quit [Remote host closed the connection]
ghostl has joined #ruby
Munto has quit [Quit: Leaving]
FullMetalStacker has quit [Remote host closed the connection]
roadie has joined #ruby
_ht has joined #ruby
sampersand has joined #ruby
sampersand has quit [Quit: Client closed]
roadie has quit [Ping timeout: 248 seconds]
sampersand has joined #ruby
ap4y has quit [Remote host closed the connection]
roadie has joined #ruby
ghostl has quit [Ping timeout: 265 seconds]
ruby-eval has joined #ruby
ruby-eval has quit [Remote host closed the connection]
ruby-eval has joined #ruby
<mooff>
= RUBY_VERSION
<ruby-eval>
=> "3.2.0"
thomas25 has joined #ruby
roadie` has joined #ruby
_ht has quit [Quit: _ht]
roadie has quit [Ping timeout: 248 seconds]
grenierm has joined #ruby
sampersand has quit [Ping timeout: 245 seconds]
johnjaye has quit [Ping timeout: 248 seconds]
grenierm has quit [Ping timeout: 245 seconds]
<cxl>
Hi all, I'm working on a project where we're using fakefs to mock the filesystem and avoid messing developers' machines while running the test suite. the problem is that fakefs doesn't quite behave like a true filesystem and cannot do locks for example which messes with the Logger and other Ruby stdlib objects. One temporary solution we've found is to run guard+rspec in a docker container and disable fakefs so
<cxl>
that the changes happen in the container but not on the live machine. this has its own issues though and we're looking at alternatives. I'm a bit stumped, mocking the filesystem is just too complicated and hard to maintain, but what other solution is there?
teclator has joined #ruby
johnjaye has joined #ruby
roadie` has quit [Quit: ERC 5.5 (IRC client for GNU Emacs 29.0.90)]
<mooff>
that what extent would it otherwise mess up developers' machines?
<mooff>
* to what extent
otisolsen70 has joined #ruby
<cxl>
mooff: it has a lot of legacy code that write to various places in ~ for example and doesn't clean up after the tests. so at best it litters the home directory, at worst it changes files that might already exist.
<cxl>
s/write/writes
<cxl>
some tests also assume a clean filesystem and will run user ruby files that are supposed to be located in well known places. with fakefs, we manually copy default files there, but without it will either overwrite the user's custom files and/or run the user's files directly instead of the test ones.
<cxl>
so that's not really a test suite people will want to run :D
<mooff>
it sounds like an installer, or some other intentionally system mutating program
yosafbridge has quit [Quit: Leaving]
<mooff>
in which case, containers to test sound good to me :-)
<mooff>
and / or containers to dev
<mooff>
develop it on Gitpod or Codespaces, using VS Code (Remote)
<mooff>
then your environments are reproducible, destructable
<cxl>
thanks, for now we mount the code dir as a bind mount in the container so that guard can watch the files and run rspec while devs can use their prefered editor on their machines directly.
<johnjaye>
if you wrote a purely ruby program 10 years ago would it still run today
<johnjaye>
i.e. no imports of external libraries
<havenwood>
johnjaye: It depends. It could but there have been a number of breaking changes in major releases that could make a program of sufficient complexity unlikely to still run.
<johnjaye>
in the sense of adding features or literal breaking changes to existing ones
<johnjaye>
like in c++ they added more keywords, so if you used a variable named a new keyword it wouldn't run
<johnjaye>
as opposed to making an existing thing behave differently which is what i mean
szkl has quit [Quit: Connection closed for inactivity]
roadie has joined #ruby
___nick___ has joined #ruby
_ht has joined #ruby
roshanavand has quit [Ping timeout: 240 seconds]
immiss97 has joined #ruby
ghostl has quit [Ping timeout: 240 seconds]
orient71 has joined #ruby
immiss97 has quit [Ping timeout: 240 seconds]
TomyWork has quit [Remote host closed the connection]