HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Running Rake Tasks in a Loop


Rake tasks in a loop, will only executed once when they are not re-enabled. Take a look to this example:


namespace :yoksis do
  desc 'fetches all references'
  task :references do
    mapping = {
      get_instruction_language: 'UnitInstructionLanguage',
      get_instruction_type: 'UnitInstructionType'
    }

    mapping.each do |action, klass|
      Rake::Task['yoksis:reference'].invoke(action, klass)
    end
  end

  desc 'fetch an individual reference'
  task :reference, %i[soap_method klass] => [:environment] do |_, args|
    puts args[:soap_method]
    puts args[:klass]
  end
end

When you run the yoksis:references task, it will only print out {get_instruction_language: 'UnitInstructionLanguage'} and will skip the second item of the mapping hash.

Continue reading
Date: | Tags: ruby, ruby on rails, rake, rake in loop | Categories: tech, ruby, ruby on rails

Rails Instantiated Fixtures


Here we have sample Ruby on Rails fixture file:

test/fixtures/newsletters.yml

tenant_newsletter:
  name: sample
  text_message: hello
  phone_number: 0555444332211
  first_name: foo
  last_name: bar

There are two popular ways to use fixtures in your Rails tests. The first one is directly calling the name of fixture file followed by a symbol stating the name of any individual fixture, ie:

class NewsletterTest < ActiveSupport::TestCase
  test 'a sample test' do
    assert newsletters(:tenant_newsletter).valid?
  end
 end
Continue reading