Coder Social home page Coder Social logo

Comments (11)

mischa78 avatar mischa78 commented on July 25, 2024

Hi Josh,

Thank you for your email. I would be interested in that very much. I don't have any experience with engines, but this seems like a good opportunity to learn. How do you suggest we proceed from here? Is there anything I can do?

Best,
Mischa Berger.

from boxroom.

knewter avatar knewter commented on July 25, 2024

I think that a good move would be for you to create a new project called boxroom-engine. From there, you would use rails to create a new engine: rails plugin new boxroom-engine --mountable

That will create a base engine named boxroom-engine. It will include a 'dummy' rails app in test/dummy, and set that app up to include the engine. Any integration tests run against the dummy app. Rails 3 In Action by Ryan Bigg and Yehuda Katz has a really good section on building engines, for what it's worth.

Anyway, from there I would move all of the existing functionality over to the engine, as well as the tests. I don't mind assisting with any of these parts, for what it's worth.

So now you have an engine, but no replacement for this repo - that is, no rails app people can just download and run. For that, you can just do a basic basic rails app, and mount your engine in it. That's what would live at boxroom (or whatever other naming convention you want to follow). That way people that just want to download and play with something can use this repo like always, and people that want to embed it in another rails app can use boxroom-engine.

The only other remaining bit to deal with would be authentication. \cc @radar from forem (Ryan Bigg, whose book I mentioned earlier) has already apparently got a pretty good authentication setup going on in forem, and I need to learn how that auth system works anyway :) The point is, you would want it to be fairly trivial to tie the engine into your parent app's authentication system.

Did this start towards the explanation? I'm just hoping we can get on the same page and then make things happen. FWIW, forem also breaks out the theme into its own gem (the 'how it looks' part). This makes changing styles all that much easier, when you want to integrate it into your existing app.

Like I said, I have plenty of experience with this and will gladly help out - it will be especially easy if we get the project we were going to use this with, as I can justify doing it during business hours :) Once we agree on what you want to do, though, I'll gladly give plenty of assistance.

from boxroom.

radar avatar radar commented on July 25, 2024

Hi,

I agree with Josh above about creating an engine using the rails plugin new command. That's really the best way of generating one at the moment. There's a couple of neat caveats like this one that you'll need to be aware of. That one in particular allows you to use the normal get, post, put and delete methods in your engine's controller specs.

I'll be talking about this and more at SpreeConf in February, so I don't want to give away too much here.

Having an example application with the engine built-in to it is exactly what we do with Spree at the moment. I think that's also the best way to go about showing it off. You can also put a demo on Heroku, as people like going through that too.

As for authentication, I disagree with the way it's done in Spree, but that's outside of my control :P I would much prefer to allow people to have their own choice of authentication engines. What we do in Forem is we just have a Forem.user_class setting that people setup in an initializer. That's going to run before the engine's models are loaded, so that's super helpful for when we want to set up associations, like in the Post model. We've just recently disabled people from setting this as a class, as it causes an issue during development environment caused by the automatic re-loading of classes.

Anyway, if you have any questions I'm sure that we can assist you in this.

from boxroom.

pietere avatar pietere commented on July 25, 2024

We would for sure use it, if this was available as an engine

from boxroom.

mischa78 avatar mischa78 commented on July 25, 2024

Thanks for the interest in Boxroom and sorry for the late reply. I definitely haven't abandoned this idea, but I have no idea when I will actually get around to working on this.

from boxroom.

Texicitys avatar Texicitys commented on July 25, 2024

Hello !

I'm going to fork the code of boxroom and adapt it to make a gem for easily managing files in rails applications.

I want to try to do a gem portable without gui.
I'll let you know.

from boxroom.

mischa78 avatar mischa78 commented on July 25, 2024

@Texicitys thanks. Looking forward to see what you come up with.

from boxroom.

Texicitys avatar Texicitys commented on July 25, 2024

The repository is here : https://github.com/Texicitys/Repository-Manager

I was a little inspired from your migrations but I mad a new structure. I'll start from zero.

Cheers.

from boxroom.

mischa78 avatar mischa78 commented on July 25, 2024

OK, good luck!

from boxroom.

Texicitys avatar Texicitys commented on July 25, 2024

The gem RepositoryManager is not finished, but it actualy works : https://github.com/collaide/repository-manager

I didn't take the code of Boxroom. I mad my own table structure for being the more complete and flexible possible.

from boxroom.

sergey-koba-mobidev avatar sergey-koba-mobidev commented on July 25, 2024

I've turned Boxroom into an engine.
https://github.com/sergey-koba-mobidev/boxroom-engine

from boxroom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.