Повторяющиеся имена классов после установки гема iCalendar - PullRequest
1 голос
/ 23 сентября 2011

Я только что попытался разобраться с гемом iCalendar, но, похоже, в iCalendar есть класс с именем Event, а в моем приложении также есть класс с именем Event

Полагаю, есть способ указать имя тому или иному классу, но я просто не знаю, как.

Вот пример того, что я хотел бы сделать:

Event.new => Модель ActiveRecord

Icalendar::Event.new => Icalendar Класс мероприятия

Спасибо.

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Как насчет того, чтобы свернуть гем iCalendar в модуле, а затем создать, например, Icalendar::CalEvent или что-то еще?

require 'icalendar'

module Icalendar
  CalEvent = Event
end

Кстати: вы можете просто использовать имя Event, но там будетбыть предупреждением о переназначении константы.

0 голосов
/ 23 сентября 2011

Заставить ruby ​​искать определения классов верхнего уровня при доступе к вашей модели через ::Event.new.Включение :: before имя класса означает, что класс отсутствует ни в одном модуле, в отличие от Icalendar::Event, который находится в Icalendar модуле.

Или, если iCalendar не предоставляет пространство имен, вы можете сделать это дляваш класс, определив его как

module MyStuff
  class Event
  end
end

и используя MyStuff::Event для вашей модели и ::Event для iCal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...