Developing gems and testing

后端 未结 4 2000
野的像风
野的像风 2021-01-31 17:45

I am new to developing Ruby gems, but I thought I\'d give it a try.

Recently checking out the latest episode on Railscasts (http://railscasts.com/episodes/245-new-gem-wi

相关标签:
4条回答
  • 2021-01-31 18:23

    I can't recommend this guide from Ryan Bigg enough: http://bundler.io/v1.16/guides/creating_gem.html. It walks you through generating a gem using Bundler and setting up automated testing. You can develop your features without ever actually having to run your code manually. It's a workflow I'm using for my own gem development and has worked very well so far.

    UPDATE: Rereading your question, it sounds like your gem is a Rails engine. I'd recommending looking at José Valim's EngineX. It's a generator that creates a gem with a dummy Rails app for testing (https://github.com/josevalim/enginex). If you already have a lot of code, http://keithschacht.com/creating-a-rails-3-engine-plugin-gem/ might help you setup a dummy app for testing.

    0 讨论(0)
  • 2021-01-31 18:26

    You can reference the gem locally, but if you don't want to run bundle update each time you change the gem, you can just require the files using their full path, or by moving (or symlinking) your gem into /vendor.

    But to be honest, it sounds like you need to write some tests! ;) Manually testing each change you make is going to get tiresome and error-prone. If you're new to writing gems, have a look at the source of other popular gems and see how they're tested.

    0 讨论(0)
  • 2021-01-31 18:29

    You can actually do:

    cd ~/my_gem_path & bundle console

    And this will be a quick test:

    My::Gem::VERSION

    0 讨论(0)
  • 2021-01-31 18:36

    You can include these lines in your Rakefile:

    task :console do
      exec "irb -r mygem -I ./lib"
    end
    

    This will create a rake task to initialize a new irb session and preload your library. Now, all you have to do is:

    $ rake console
    
    0 讨论(0)
提交回复
热议问题