Git Product home page Git Product logo

Comments (17)

WebInspectInc avatar WebInspectInc commented on July 19, 2024

@kentcdodds what browser support are you looking for? If you want < IE9 then we should probably use jQuery, would that be acceptable? If IE9 and up then we might be able to do it without.

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Good point. What do you think? I reeeally don't want to bring in jQuery... I've toyed with the idea of having a jquery plugin, but I'd really like to just have a plain JavaScript implementation, that way people can just pull it in and not worry about dependencies.

Anyway, do you think we could do this by implementing only the methods we need and still support IE 8? I know that there are a lot of people out there who have to support IE 8 so I'd like to do that if we can.

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

We can certainly try it! It does seem kind of silly to kill angular only to bring in jQuery. 😟 IE is going to take some time though, so maybe just get it working in modern browsers and create a separate issue for old IE?

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Sounds good. I'm thinking that I want to create a separate repo for this effort because the ux-genie module is in a separate repo. Though I've thought about bringing it into the same repo just in another folder (did that with the workshop a few days ago). It's nice to keep everything using the same version of genie just using symbolic links to the dist.

What do you think? Would it be better to keep all genie stuff in one repo or separate it? Now I'm starting to think there are more benefits with bringing all genie stuff into one repo than there is to separate it...

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

Umm... That's a good question. The tricky thing is updates; you don't want to end up having to update three different repos every time you add a new feature. So you definitely don't want to just clone this to another repo, but I could see splitting it into GenieJS and AngularGenie (names just for example 😉). We'd have to refactor a bit and build the angular stuff on top of the vanilla though, to keep away from the updating problem.

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

I'm not certain I see the value in separating out the angular stuff though. Can you think of any issues off the top of your head with just keeping it in the same repository just under another folder? Perhaps with this kind of file structure:

  • genie
    • dist (basically a copy of src with minified stuff as well)
    • src
      • genie.js
      • lamps
        • pure-javascript
        • angular-js
        • dojo (someone wants to build a dojo version)
        • jquery

I'm not sure I see the value of a jquery plugin unless it simply wrapped the pure-js version and had a few niceties with working with jquery and I don't know anything about dojo but I imagine it could be similar.

One issue I have with this though is with the angular-js implementation, it not only has the lamp, but also the genie-wish directive which simply helps in the registration of wishes, so the term lamps for the directory name may not be appropriate. What do you think?

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

Yup, that looks good! I like it. I see your point with the lamps directory, but I don't think that's really a huge issue. Even though the genie-wish directive isn't part of the lamp, it's still a convenience to control the lamp, right? If so I think it makes sense in there.

We'll have to discuss how different the vanilla version is going to be, though. Obviously JS doesn't have two-way binding out of the box, so we'll have to discuss how much of Angular we'll try to emulate, and how much will just be different due to the nature of the beast.

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Perhaps we could say "Hey, the genie has tools in that lamp of his, in the angular lamp, he's got this sweet directive you can use." I think that'll fly. Give me a second to move things around and bring in the ux-genie library. I think I'm going to simply deprecate ux-genie on bower and everything will come in from simply geniejs on bower and npm. This feels like it's going to be nice, but I have this thing in the back of my head that says I may regret doing this one day. Haha. Who knows. I'll let you know when things have been moved and we can start on the vanilla stuff.

As far as what we're going to try to emulate, I say we just ignore what's possible with angular's version and think about what would be a nice api to work with from a developer's perspective. Make sure that it's featured enough to allow for most use cases.

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

I don't know about Bower, but the nice thing about Git is that you can always go back. 😀

That's exactly what I wanted to hear. 👍 Sounds good! I already forked your repo and have been playing with it, but I'll wait on your lead to do any actual work.

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Awesome. I'm almost finished organizing and fixing the build. I'm about to get on my flight home so hopefully I'll get it up before I get on! :-)

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

Cool. Well in any case, have a good flight home!

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Thanks @tjacobdesign! The changes are pushed. Hopefully it's intuitive what I'm doing. You have two files one for the library, one for the test. You'll need to add the script tags to the testrunner.html and then you can run grunt mocha.

Note, I started this about a year ago when I was just learning grunt and testing. Please feel free to make improvements. I do have a karma.conf.js but it doesn't work and it's not totally setup. Feel free to set that up if you like. Thanks so much for your help!

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

No worries, I have my fair share of old code too. :) Looks great! I'll see what I can do.

from genie.

tom2strobl avatar tom2strobl commented on July 19, 2024

Hey guys, I know it's almost a year later, but is there anything, even unfinished code lying around? It's just way too sad that one can pretty much only use genie if going Angular. I honestly don't understand how something that awesome only has 220 stars (of today). If there was anything you started vanilla/jQuery like, just drop it in some secret branch or so, would appreciate it!

from genie.

WebInspectInc avatar WebInspectInc commented on July 19, 2024

@tom2strobl yup, as you can see, I started on it months ago. I've got a fork right here: https://github.com/tjacobdesign/genie

I got the basic structure and functionality working in VanillaJS, just ran out of time to get all the details right (not to mention testing). I might have a little more work done locally on my home computer, I'll check tonight and push if I have anything of consequence.

from genie.

kentcdodds avatar kentcdodds commented on July 19, 2024

Thanks for your interest in the project @tom2strobl! I'm not currently using this library, but I would like to get into it again, so let me know if you need any help.

from genie.

tom2strobl avatar tom2strobl commented on July 19, 2024

Thanks guys, again – I'm very surprised that genie is kind of a hidden secret in the github universe. I'm using it as part of a Meteor.js app and now made a quick "custom lamp" by abusing sergext/meteor-typeahead, but it's not really something worthy of a PR because it's basically just glueing those two things together without any magic. In the unlikely case someone else finds himself in the same situation, here's a gist how I did it: tom2strobl/427205db64360c1f916f
Keep up the good work @kentcdodds and @tjacobdesign!

from genie.

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.