Описание тега alias-method

1 ответ

ruby method_alias в унаследованном классе

Я углубляюсь в метапрограммирование ruby ​​и у меня следующий вопрос. Пример: module ExampleAliaser def do_example_alias(prefix=:origin) class_eval <<-EOS class << self alias_method :#{prefix}_example, :example def example puts "in alias…
24 фев '12 в 12:26
3 ответа

Есть ли элегантный способ проверить, является ли один метод экземпляра псевдонимом для другого?

В модульном тесте мне нужно проверить, правильно ли определены методы псевдонимов, определенные alias_method. Я мог бы просто использовать те же тесты для псевдонимов, которые использовались для их оригиналов, но мне интересно, есть ли более определ…
06 окт '10 в 05:21
1 ответ

Ruby/Rails: практика alias_method

Я пытаюсь переопределить метод Rails "fields_for", который я сейчас делаю следующим образом: module ActionView::Helpers::FormHelper include ActionView::Helpers::FormTagHelper alias_method :original_fields_for, :fields_for def fields_for(<my argum…
03 май '12 в 23:15
1 ответ

Неопределенный метод render для класса ActionView::Base

При запуске приложения вылетает следующая ошибка /home/stereodenis/.rvm/gems/ruby-1.9.3-p194@nyanya/gems/haml-3.1.6/lib/haml/helpers/action_view_mods.rb:15:in `alias_method': undefined method `render' for class `ActionView::Base' (NameError) Что мож…
1 ответ

Цепочки ответственности и проблемы alias_method в Ruby

Я пытаюсь реализовать шаблон цепочки ответственности в Ruby и ActiveRecord для полиморфного объекта. У меня есть несколько проблем. Иногда я получаю сообщение об ошибке, что метод не определен, когда я пытаюсь alias_method его, я думаю, что это пото…
30 июн '10 в 04:58
2 ответа

Можно ли удалить псевдоним метода в Ruby?

Предположим, у меня есть раздел кода на Ruby, в котором я хотел бы создать псевдоним метода (я не знаю почему; давайте просто предположим, что у меня есть веская причина). class String alias_method :contains?, :include? end Могу ли я после этого раз…
12 июл '12 в 17:20
3 ответа

Атрибуты класса OO-Perl Aliasing

У меня есть модуль, над которым я работаю. Я настраиваю несколько таких атрибутов: $self->{FOO}; $self->{BAR}; $self->{FOOBAR}; И я хочу использовать AUTOLOAD, чтобы помочь создать методы для доступа к этим атрибутам. Например, $foo->Bar…
10 окт '10 в 04:36
1 ответ

ruby self.inherited alias_method

class Base def sam "I m the base" end def self.inherited(base) alias_method :old_sam, :sam base.class_eval do def sam old_sam p "Inside inherited" end end super end end class Derived < Base def sam p "Inside Derived" end end когда Derived.new.sam…
03 фев '17 в 10:51
1 ответ

В чем разница между alias_method и alias_method_chain?

Я работал над своим веб-приложением и хотел переопределить метод, например, если исходный класс class A def foo 'original' end end Я хочу переопределить метод foo, это можно сделать так class A alias_method :old_foo, :foo def foo old_foo + ' and ano…
1 ответ

ruby alias_method в методе класса

Кажется, что alias_method не работает в блоке класса << сам по себе так же, как снаружи. В частности, когда я использую alias_method для метода экземпляра и впоследствии перезаписываю метод, псевдоним можно использовать для доступа к исходному метод…
11 мар '16 в 02:39
1 ответ

Эффективная версия / альтернатива методу псевдонима, который выбирает без замены

Я пишу викторину / обучающую игру на HTML5/JS, в которой игроку предлагается набор из 10 вопросов из более широкого набора мастерства. Игра отслеживает оценки игроков с течением времени и с большей вероятностью выбирает вопросы из списка вопросов, с…
13 дек '15 в 02:44
1 ответ

class << self, alias_method и monkey patching Mechanize::Cookie

У меня проблема с Mechanize::Cookie, которая плохо себя ведет, и я хочу попытаться ее исправить. Мой код: class Mechanize::Cookie class &lt;&lt; self; alias_method :old_parse, :parse end def self.parse(uri, str, log = Mechanize.log) puts 'new parse!…
1 ответ

Возможно ли псевдоним to_s?

Вместо переопределения to_s в моей модели я хотел бы псевдоним его к существующему методу full_name, И то и другое alias а также alias_method не похоже на работу, как ожидалось. С помощью alias class Person &lt; ActiveRecord::Base # ... other model …
22 апр '14 в 16:28
1 ответ

alias_method, alias_method_chain и self.included

У меня есть небольшие трудности с пониманием alias_method/alias_method_chain, У меня есть следующий код: module ActionView::Helpers module FormHelper alias_method :form_for_without_cherries, :form_for def form_for(record, options = {}, &amp;proc) ou…
3 ответа

Псевдоним метод несколько раз

Я хочу поставить два псевдонима для одного оригинального метода, но я не вижу возможности alias_method сделать несколько псевдонимов одновременно, а не один за другим. Так есть ли возможность изменить это: alias_method :aliased_first_method, :first_…
14 ноя '13 в 13:36
2 ответа

ruby on rails добавляет функциональность к изменению свойств модели

В моей модели rails у меня есть десятичное свойство с именем Employee_wcb. Я хотел бы, чтобы, когда был изменен Employer_wcb, грязный бит был установлен в true. Я хотел бы переопределить метод сеттера Employer_wcb. Любой способ сделать это (в частно…
1 ответ

alias_attribute и создание и метод с исходным именем атрибута вызывает цикл

Я пытаюсь динамически создать цепочку методов в одном атрибуте в моей модели. К настоящему времени у меня есть эта функция: def create_filtered_attribute(attribute_name) alias_attribute "#{attribute_name}_without_filter", attribute_name define_metho…
1 ответ

alias_method и class_methods не смешиваются?

Я пытался возиться с глобальным модулем Cache, но я не могу понять, почему это не работает. У кого-нибудь есть предложения? Это ошибка: NameError: undefined method `get' for module `Cache' from (irb):21:in `alias_method' ... генерируется этим кодом:…
27 май '10 в 21:19
2 ответа

Неожиданное значение __callee__ при включении модуля - это ошибка Ruby?

Когда вызывается через метод, созданный alias_method, __callee__ игнорирует имя старого метода (здесь xxx) и возвращает имя нового метода, как показано ниже: class Foo def xxx() __callee__ end alias_method :foo, :xxx end Foo.new.foo # =&gt; :foo Так…
09 фев '16 в 00:00
3 ответа

`alias_method` приватный метод

У меня есть класс, который выставляет два метода интерфейса client_options а также user_optionsи на этом уровне предков, они эквивалентны default_options, Я не хочу, чтобы другие разработчики реализовывали default_options напрямую, следовательно, эт…
13 авг '15 в 08:46