Class: Bukovina::Parsers::Memory

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

Constant Summary collapse

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

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

%w(много немного несколько)
SUBPARSERS =
{
   'имя' => :name,
   'отчество' => :patronymic,
   'прозвище' => :nickname,
   'фамилия' => :lastname,
   'описание' => :desc,
   'чин' => :order,
   'собор' => :council,
   'вики' => :wiki,
   'бытие' => :link,
   'образ' => :icon,
   'слика' => :photo,
   'слики' => :photo,
   'отечник' => :pateric,
   'служба' => :service,
   'событие' => :event,
   'помин' => :memo,
   'крат' => :short,
   'количество' => :quantity,
   'вид' => :view,
   'покровительство' => :cover
}
COUNSILS =
%w(стцц ап70
                 рус греч иерс аме фин болг серб груз пол рум чсл виз алкс антх
                 слав
                 карф мавр
                 рим
                 англ
                 мск киев черн сузд верн нов нпск влдв
                 молд кит укр клвн блр русз герм
                 пнаф печ
                 плст
                 нмр нмч нмк 17мг нмм нмс нмз 1рс нмб
                 кит
                 мск спб вят перм ниж сиб каз влад тавр уф тул ряр врнж сарн вуст кстр нов твер мурм клзн ека крсн кур влгд нсиб
   сам тамб кар ряз влгр рнд пск ива омск верн астр кург симб
                 опт пнаф пппр мсвт смнк бпеч рднж нмнд валм сол див нсвт друс
                 укр киев елсг неж жит вол карп гал вин черк одес херс полт крмч мрпл хуст черн кнтп
                 молд
                 блр нгрд
                 серб шбцв
                 чсл чех свк мрв
                 зубц куп пгрл
                 сынм
)
ORDERS =
%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/memory.rb', line 2

def errors
  @errors
end

#targetObject (readonly)

Returns the value of attribute target.



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

def target
  @target
end

Instance Method Details

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



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/bukovina/parsers/memory.rb', line 70

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

res =
case memories
when Hash
   memory = parse_hash( memories )

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

   memory_list = memories.map do |memory|
      parse_hash( memory )
   end.compact

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

@errors.empty? && res || nil

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