Я обнаружил, что Math.NET имеет функцию для этого:
SymbolicExpression.Parse("a*(b+c)").Expand();
Если бы Вы собираетесь быть использованием среды направляющих, Ваш лучший выбор состоял бы в том, чтобы сделать это сценарием граблей. Чтобы сделать это, поместите twitter.rake файл в lib/задачи и начните и закончите его как это:
task(:twitter_load => :environment) do
# your code goes here
end
Тем путем Вы делаете его "в соответствии с конвенциями", и это не имеет, это 'orrible пахнет связанным с ним.
Не забывайте сценарий/бегуна.
Установите свою переменную среды из командной строки и
ruby script/runner your_script_here.rb
Я в настоящее время использую следующий метод, и я знаю, что среда не имеет rb расширения, это не нужно. Можно также установить его прежде, чем выполнить его для перезаписи ENV["RAILS_ENV"]
.
#!/usr/bin/env ruby # Set your environment here. ENV["RAILS_ENV"] ||= "production" require File.dirname(__FILE__) + "/../../config/environment" puts "Rails was loaded!"
Затем для изменения среды просто выполните его с:
rb /lib/tasks/file.rb RAILS_ENV=development
добавьте строку: RAILS_ENV = '<your environment of choice>'
http://wiki.rubyonrails.org/rails/pages/Environments#script
pantulis: здорово, что это работает, но для недоброкачественной продукции я просто использую RAILS_ENV = '<your environment of choice>' ruby path/to/script.rb
. Это - то, как Вы устанавливаете переменные среды в консоли.
Можно также сделать
разработка сценария/консоли <path/to/your/script.rb
Громоздкий Admiteddly - и выложит много irb мусора после оценки каждой строки Вашего сценария - но работы для недоброкачественной продукции и Вы не должны помнить, что проклял, требуют строки.
И не забывайте, что, возможно, самый изящный способ расширить Ваше приложение с помощью сценариев, которые делают полезные вещи, пишет задачи Граблей!
Принятый ответ на использование rake
хорошо принят, но вы все равно можете вручную настроить среду для тестирования служебных классов.
Вот что я использую для настройки тестовой среды для служебных классов в / lib
. Для них я обычно использую соглашение Ruby, согласно которому мой файл класса выполняет свои тесты, когда он запускается из командной строки. Таким образом, я могу выполнять TDD вне веб-ориентированных тестовых программ Rails, но все же использовать класс внутри rake
, не влияя на среду, которую он устанавливает.
Это идет вверху:
if (__FILE__ == $0)
ENV['RAILS_ENV'] ||= 'test'
require File.join(File.dirname(__FILE__),'../config/environment.rb')
end
и внизу:
if (__FILE__ == $0)
require 'test/unit/ui/console/testrunner'
Test::Unit::UI::Console::TestRunner.run(MyClassTest)
end