Class: Bukovina::Parsers::Calendary

Inherits:
Object
  • Object
show all
Defined in:
lib/bukovina/parsers/calendary.rb

Constant Summary collapse

Parsers =
Bukovina::Parsers
RE =
/\A([#{Parsers::UPCHAR}#{Parsers::CHAR}#{Parsers::ACCENT}0-9\s‑;:'"«»\,()\.\-\?\/]+)\z/
SUBPARSERS =

вход: значение поля “имя” включая словарь разных языков выход: обработанный словарь данных

{
   'годя' => :licit,
   'год' => :year,
   'крат' => :calendary,
   'ссылка' => :link,
   'описание' => :desc,
   'автор' => :author,
   'имя' => :name,
   'название' => :name,
   'место' => :place,
   'вики' => :wiki,
   'собор' => :council,
}
CALENDARIES =
%w(916
азар
ассе
афин
библ
библ
блап
блр
болл
бпм
валл
взр1
взр2
влат
влбр
влдв
влчм
впдв
врнж
вскс
всрб
всс
вчм
гбмч
гдк
герм
гмин
гпм
груз
греч
грм
грот
грхэ
гскс
джрд
длг
дмрт
дни
днсс
дрге
дргм
евг
евер
ждр
змин
иерн
иерн
иерс
имм
ипдл
ит
к688
каро
карф
кирл
киж
лавр
лавс
лион
луг
мвс
меа
мокс
мсн
нкс
нмр
нмрл
нмчк
новг
нсп2
нспр
остр
охап
охр
парж
парс
плнд
пол
пслн
пслт
пспр
птпр
птрг
путя
ре12
рм
росс
рпт
рпц
рпца
рсап
рсм
рум
румо
русз
серб
синс
сир
сирм
скал
скмр
сксд
скср
скц
слжб
служ
спр
спсс
сптр
спц
ссм
стип
стсл
студ
супр
сурж
суст
твц
тырн
уцс
укр
фип
хлуд
хрис
чсл
элл)
COUNSILS =
%w(рус русз)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



2
3
4
# File 'lib/bukovina/parsers/calendary.rb', line 2

def errors
  @errors
end

#targetObject (readonly)

Returns the value of attribute target.



2
3
4
# File 'lib/bukovina/parsers/calendary.rb', line 2

def target
  @target
end

Instance Method Details

#parse(events, options = {}) ⇒ Object



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'lib/bukovina/parsers/calendary.rb', line 153

def parse events, options = {}
# TODO skip return if errors found
#
@target = options[:target]

res =
case events
when Hash
   event = parse_hash( events )

   [ event ]
when Array
   if events.blank?
      @errors << Parsers::BukovinaInvalidValueError.new( "Value of event " +
         "array is empty" ) ;end

   event_list = events.map do |event|
      parse_hash( event )
   end.compact

   event_list
when NilClass
   @errors << Parsers::BukovinaInvalidValueError.new( "Event list" +
      "can't be blank" )
else
   raise Parsers::BukovinaInvalidClass, "Invalid class #{name.class} " +
      "for Name line '#{name}'" ; end

@errors.empty? && res || nil

   rescue Parsers::BukovinaError => e
@errors << e
nil ; end