 Wow Okay, is it clear enough to you? Yeah, you need to probably try a little bit harder this time. Oh, okay. Anyway, so I'm young and this toy is really really really sharp so In order to make it feel like sparring so I did some pictures of dogs Yeah, so and it's just a very very simple trick that I Used at work. I'm just one single single trick just to use some modules to help with your dream fail and The reason for doing that is that I got two motivation Number one is that sometimes you want to learn a certain framework like I was using soliders Soliders is a fork of three Which is a e-commerce real Sanjin and it's really you know the early stage So I want to learn about it by learning about it, I read the source code and Sometimes I also want to pass the code a little bit some middle crew request and try to get emerged and update My local so the thing is that if I try to do some modification on the module itself and then I Want to see the effect in my real side So basically I need to link the Link the source code with my real set, but if I do jim file that means it's fetching from remote So that's the motivation number one Yeah I actually number one got point one point two motivation number two so We have some private extension like inside our company So we also need to put the private repo in the jim file and the private repo is not published for the remote and Also, I actually the first two point is that it's very simple. You can just put Jim Jim name and then get the kid repo that's all simple like that Actually the last part is yeah, I think the two points actually a bit you pick it, but Yeah Basically, yeah update the code and see it in that Yeah, I think I mentioned twice. It feels like this Okay, anyway solutions solutions is Actually, there was to zero to solution number one is to use the was it called local James? so basically in the jim file you can do a config to make sure to make your Jim what you put in your jim file to point to local location The config is just showing us there if you are more interested you can just go and read about this blog post is So basically what it does is actually I can oh no internet Okay, oh, by the way, there's a game. Yeah Okay, I got no internet so Mmm, I didn't prepare the demo so I just try to describe it. So basically what it does is you create a file called This You know photo you create a file called bundle slash config and then you put You put what you want to use where is the jim location that you want to use for a certain jim file and then basically what it does is when you load the file when you load the app it will use Your local location instead of the jim instead of the jim file from remote simple as that but the issue the issue with This approach is that okay number one is that every time you'll do some modification and You want to update you need to update your local gem manually, you need to do at least you do a bundle update and number two is that For example, if you are working in a team and then You did something you did this setup, but other people also want such kind of solution And then it's a bit tedious for other people to do this kind of setup. You need to type in a couple of commands Yeah, so So how Yeah, so second solution is get some modules So basically you can create a folder to store your sub modules and then I'll get some of you It's just to like your kid repo and then if you do a Keep some of you add Some of you basically Chris it will check out the project and create the Check out the project and Put it in your local key report. I can show you a Demolator and then your team file you just do a gem Yeah, for this case, I use a little story that goes up. It's a So it passes the path to your local gem. That's it Yeah, so the dog Quite cool, right? Oh Yeah, that's all so let me just show you a quick demo just to show you how it works like in Okay, let me make the phone size larger gently, okay Yeah, that's not enough so I try to use my voice without the amplifier so Yeah, it's called us so basically oh wrong. I was trying to create another demo. So Yeah, so basically that is my So basically after you do a get some of the I will create this kind of config in your get some of you So basically other people check out the product and do a skip some of the unit and get some of the update We will just automatically update the check all the check all the progress What you specify in the sub-module and then basically what it does is we'll just put the Out that's too much So for my case I put in the gems folder and then we have James one and James two and then in my dream file I have It's trying to reference to the local pass Simple like that. So if you run you will use the local pass and whoever will check out the module You can all use the local pass and what's more you can do like this like if you do some modification locally No, I was in the jump Yeah, so basically it tells that okay, you got some you got some Some coming in your first time something your second time you can add the modules and then you'll get commit basically you update your local jam That's it. Yes We tried that and he tried a variant of this that had collapsed about Three four years ago published a series of articles. Here's how you can do this all Relying on your own epiphytops The problem is That you lose all the features that make gem management work really well When you do it that way You've got you want to have two apps that use different versions of the same private gem Really hard to do with get some modules really easy to do if you're using a Private repo service like Jim Fury Jim Fury lets you publish gems just like Ruby gems.org does Except for private you need authentication to be able to access them but like we've got Five different gems we can write that right now we up on We've got 14 14 different builds of five different gems that various apps use and we manage those on Jim Fury Just exact same way we would on Ruby gems.org it'll make I mean Before I started trying to make that work using Hennel's method, which is a variation on yours. I had about twice as much error as I do now Okay, I must be a long time ago Okay, if you're in this in the Simplify and if you're doing this and the simplified Jim management works for you, then this works like a charm. It's great It's only when you start getting more complicated that you start Wanting to wanting to buy shares and may locks Yeah, I kind of agree. Yeah, okay, and that's when you need a solution like Jim Fury and there's a couple of other after they are everybody talks about and I've been using them for 18 months now, and I guess to have a problem Yeah, I think I haven't tried the what they call James theory Jim Jim Fury Okay, yeah, I haven't tried the Jim Fury yet I think it will also help resolve another issue that sometimes you you develop some local gems some private gems And then the private gems got dependency on each other. That one will resolve the that issue also Actually you can let me see You can if you give your If you give your credentials Yeah, if you give it the credentials The only way we were able to make it work was to ship the gym code up with the app code that used But there's another game game point, which is this motivation number one like this to Although it might not be a good practice like is the might not be a good engineering practice, but Sometimes like okay like when we are developing the private gems Yeah, when is in small stage is not a lot of interdependency Yet, but yeah when it grows old then Yeah, okay, thanks. Yeah, actually that is something I was looking for also