magec / icontrol

This gem allows you to connect to a F5 appliance
http://magec.es/icontrol
MIT License
15 stars 7 forks source link

Project is a bit outdated #4

Open TvL2386 opened 11 years ago

TvL2386 commented 11 years ago

Hi magec,

I'm trying to use your gem in an existing rails project. That project is running on ruby 2.0.0p0 and uses the latest savon-2.2.0.

The latest commit on your project has been 2 years ago. It would be very good (for me) if you would update icontrol to be compatible with the current versions of the dependencies.

I don't know how much work this actually would be, because the SOAP stuff in your library is pretty centralized.

Please let me know if you have any such plans.

Kind regards, Tom

magec commented 11 years ago

Hi! @TvL2386 the problem is that I'm not working with F5 infraestructure and have no way of testing the code anymore, also buying one is not an option. Adapting the code to work with the new version of savon/ruby should not be a real issue, I can help you if you want.

magec commented 11 years ago

I you really really want this working and don't want to bother, contact me.

TvL2386 commented 11 years ago

Hi magec, I'm interested! What can I do or how can I contribute?

TvL2386 commented 11 years ago

Btw: I had already forked your repo to see if I could incorporate the changes needed, but it's pretty abstract and complicated.

magec commented 11 years ago

Everything is implemented in this file https://github.com/magec/icontrol/blob/master/lib/icontrol/base.rb and https://github.com/magec/icontrol/blob/master/lib/icontrol/base/. It's all implemented by means of metaprogramming using method_missing, both in Class level and Object level. So to adapt it looking into that would suffice.

The rest is kind of boilerplace, actually it's generated code for documentation purposes . In fact the generator is implemented in https://github.com/magec/icontrol/tree/master/generator (it's kind of documented). Bassically it gets the official documentation (the one that was official in the time I did this), and generates code for it. The thing is that with metaprogramming you won't have a good documentation so I decided to code-generate the boilerplate. Actually it was for fun and because the idea of a web scrapper generating code based on a documentation was so weird and wanted to implement such a monster.

Also there are some specs (generated as well). With valid payloads to work with.

Have fun!

TvL2386 commented 11 years ago

Hi magec,

Thanks for the information. I've updated the bundle, fixed VCR/Rspec deprecation warnings and finally ran into the Savon issues, which are hit pretty fast into the testing of course.

I have little experience with creating gems and rspec, so I'm hoping I'm doing things correctly. I had to switch from rcov to simplecov, so some rake tasks will be broken.

I'm working in: https://github.com/TvL2386/icontrol/tree/dependency_update

TvL2386 commented 11 years ago

https://github.com/TvL2386/icontrol/blob/dependency_update/lib/icontrol/base.rb#L106

Walking into:

NoMethodError: undefined method `strip_namespaces?' for Savon:Module
./lib/icontrol/base.rb:106:in `block in symbolize'NoMethodError: undefined method `strip_namespaces?' for Savon:Module
./lib/icontrol/base.rb:106:in `block in symbolize'