ruby- все статьи тега ➜ страница 9


Зачем нам нужны волокна

для волокон мы получили классический пример: генерация чисел Фибоначчи fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end зачем нам нужны волокна здесь? Я могу переписать это с тем же Proc (закрытие, на самом деле) def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end так 10.times { puts fib.resume } и prc = clsr 10.times { puts prc.call } вернет точно такой же результат. Итак, каковы преимущества волокон. Что я могу ...

Метапрограммирование Ruby: имена динамических переменных экземпляра

допустим, у меня есть следующий хэш: { :foo => 'bar', :baz => 'qux' } как я могу динамически установить ключи и значения, чтобы стать переменными экземпляра в объекте... class Example def initialize( hash ) ... magic happens here... end end ... так что я в конечном итоге со следующим внутри модели... @foo = 'bar' @baz = 'qux' ? ...

преобразование строки в DateTime

Мне нужно разобрать следующую строку в объект DateTime:30/Nov/2009:16:29:30 +0100 существует ли простой способ сделать это? PS: Я хочу, чтобы преобразовать строку выше как есть. Двоеточие после года-это не опечатка. Я также хочу решить проблему с Руби, а не с Рором. ...

Как установить HTTP REFERER при тестировании в Rails?

Я пытаюсь проверить контроллер, и я получил эту ошибку. Я понимаю ошибку, но не знаю как это исправить. test: on CREATE to :user with completely invalid email should respond with redirect (UsersControllerTest):ActionController::RedirectBackError: No HTTP_REFERER was set in the request to this action, so redirect_to :back could not be called successfully. If this is a test, make sure to specify request.env["HTTP_REFERER"]. указать где? Я попробовал это: setup { post :create, { :user ...

Добавление в каталог в $Path нагрузки (Рубин)

Я видел два часто используемых метода для добавления каталога файла, который в настоящее время выполняется в $LOAD_PATH (или $:). Я вижу преимущества этого в случае, если вы не работаете с драгоценным камнем. Одно кажется более многословным, чем другое, очевидно, но есть ли причина идти с одним над другим? первый, подробный метод (может быть перебор): $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__))) unless $LOAD_PATH.include?(File.expand_path(File.dirname(__FILE__))) и более прос ...

Как очистить все задания от sidekiq?

Я использую sidekiq для фоновых задач в приложении Rails. Теперь количество рабочих мест становится больше, поэтому я хочу очистить все рабочие места. Я попробовал следующую команду в консоли Sidekiq::Queue.new.clear но это давало следующую ошибку. NameError: uninitialized constant Sidekiq::Queue Как очистить все задания от sidekiq? ...

Преобразование массива объектов в ActiveRecord:: Relation

у меня есть массив объектов, назовем это Indicator. Я хочу запустить методы класса индикатора (те из def self.subjects разнообразие, области и т. д.) На этом массиве. Единственный способ, которым я знаю, чтобы запустить методы класса на группе объектов, чтобы они были ActiveRecord:: Relation. Поэтому я в конечном итоге прибегаю к добавлению to_indicators метод Array. def to_indicators # TODO: Make this less terrible. Indicator.where id: self.pluck(:id) end иногда я цепочку довольно много ...

не удается получить стабильное соединение с firefox за 60 секунд (127.0.0.1:7055)

получение следующей ошибки при выполнении тестов rspec не удалось получить стабильное соединение firefox за 60 секунд (127.0.0.1:7055) в rails используя последнюю версию ruby (1.9.2) и firefox (6.0) используя RSpec-рельсы, капибара и несколько других драгоценных камней, но они, кажется, не проблема. Эти тесты прекрасно работают в другой среде (linux). ...

Рельсы: вокруг * обратные вызовы

Я прочитал документацию по адресу http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html, но не понимаю, когда around_* обратные вызовы запускаются в отношении before_* и after_*. любая помощь очень ценится. спасибо. ...

Рубиновая факторная функция

Я схожу с ума: где функция Ruby для факториала? Нет, мне не нужны реализации учебника, мне просто нужна функция из библиотеки. Это не по математике! Я начинаю сомневаться, это стандартная библиотечная функция? ...

Как использовать драгоценные камни с Ubuntu?

Я недавно обновился до Ubuntu 9.04, и у меня есть проблемы с использованием драгоценных камней. Я установил Ruby, Rubygems и Rails с помощью apt-get. Элемент работает. затем я установил capistrano и другие драгоценные камни, такие как heroku. Для этого я использовал команду: sudo gem install XXX когда я хочу использовать cap команда не работает: bash: cap: command not found это то же самое с другими командами камень. у меня что-то конкретное сделать, так что камень команды работают? ...

Наследование методов класса от модулей / миксинов в Ruby

известно, что в Ruby методы класса наследуются: class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works однако меня удивляет, что он не работает с миксинами: module M def self.mm; puts 'mixin' end end class N; include M end M.mm # works N.mm # does not work! Я знаю, что #extend метод может сделать это: module X; def mm; puts 'extender' end end Y = Class.new.extend X X.mm # works но я пишу mixin (или, скорее, хотел бы написать), содержащий как методы экземпляра, так ...

Скажите конец. каждый цикл в ruby

Если у меня есть цикл, таких как users.each do |u| #some code end где пользователи-это хэш из нескольких пользователей. Какая самая простая условная логика, чтобы увидеть, если вы находитесь на последнем пользователе в хэше пользователей и хотите только выполнить определенный код для этого последнего пользователя, так что что-то вроде users.each do |u| #code for everyone #conditional code for last user #code for the last user end end спасибо ...

Как сделать капибара проверки видимости после какого-нибудь JS работать?

после загрузки страницы у меня есть код, который работает и скрывает и показывает различные элементы на основе данных, возвращенных xhr. мой интеграционный тест выглядит примерно так: it "should not show the blah" do page.find('#blah').visible?.should be_true end когда я вручную перехожу на страницу в контексте этого теста, #blah is не видно, как я ожидал. Я подозреваю, что Capybara смотрит на начальное состояние страницы (невидимое в этом случае), оценивая состояние DOM и проваливая те ...

Как получить родительский узел в капибара?

Я работаю со многими плагинами jQuery, которые часто создают элементы DOM без идентификатора или других идентификационных свойств, и единственный способ получить их в Capybara (например, для щелчка) - это сначала получить своего соседа (другого ребенка своего предка). Но я нигде не нашел, поддерживает ли капибара такие вещи, например: find('#some_button').parent.fill_in "Name:", :with => name ? ...

Рубиновое вычитание даты (например, 90 дней назад)

Я был немного испорчен API joda-time: DateTime now = new DateTime(); DateTime ninetyDaysAgo = now.minusDays(90); Я пытаюсь сделать то же самое в Ruby, но я now = Time.now ninetyDaysAgo = now - (90*24) однако математика здесь выключена (я действительно работаю с датами в полночь). есть ли дружественный API для вычитания даты? ...

Как получить значения одного столбца в массив

прямо сейчас я делаю что-то вроде этого, чтобы выделить один столбец данных: points = Post.find_by_sql("select point from posts") затем передавая их в метод, я бы хотел, чтобы мой метод оставался агностиком, и теперь должен вызывать хэш.точка внутри моего метода. Как я могу быстро преобразовать это в массив и передать набор данных в мой метод, или есть лучший способ? ...

Найти количество месяцев между двумя датами в Ruby on Rails

У меня есть два объекта Ruby on Rails DateTime. Как найти количество месяцев между ними? (Имея в виду, что они могут принадлежать к разным годам) ...

therubyracer-Gem:: Ext:: BuildError: ошибка: не удалось создать собственное расширение gem

я пытаюсь установить следующие версии gem На Mavericks libv8 (3.16.14.3) therubyracer (0.12.1) очевидно, что therubyracer gems зависит от libv8. 1) Установка libv8 что такое libv8? Мой бит исследований, похоже, указывает, что это какая-то библиотека javascript, используемая Google Chrome? у меня возникли проблемы с его установкой, но этот отличный пост имел как мой ошибка и хорошо объясненный ответ о том, как ее обойти. я libv8 С gem install libv8 -- --with-system-v8 я понимаю, что это ...

Не удалось создать собственное расширение gem-Rails install

я устанавливал Ruby on Rails на основе инструкции из онлайн-класса edX. вот список команд терминала, и, где это уместно, соответствующий вывод: $ sudo apt-get install ruby1.9.1 установки $ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz $ tar zxvf ruby-1.8.24.tgz $ cd ruby-1..8.24 $ sudo ruby setup.rb RubyGems 1.8.24 installed == 1.8.24 / 2012-04-27 * 1 bug fix: * Install the .pem files properly. Fixes #320 * Remove OpenSSL dependency from the http code path --- ...