Class: Memory

Inherits:
ActiveRecord::Base
  • Object
show all
Extended by:
DefaultKey, Informatible
Defined in:
app/models/memory.rb

Overview

order - чин памяти council - соборы для памяти short_name - краткое имя covers_to_id - прокровительство quantity - количество bond_to_id - отношение к (для икон это замысел или оригинал списка)

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DefaultKey

default_key, default_key=, extended, find, has_default_key

Methods included from Informatible

extended

Class Method Details

.by_slug(slug) ⇒ Object



97
98
# File 'app/models/memory.rb', line 97

def self.by_slug slug
unscoped.joins( :slug ).where( slugs: { text: slug } ).first ;end

Instance Method Details

#beings_for(language_code) ⇒ Object



106
107
108
# File 'app/models/memory.rb', line 106

def beings_for language_code
abeings = beings.where(language_code: language_code)
abeings.present? && abeings || nil ;end

#description_for(language_code) ⇒ Object



103
104
# File 'app/models/memory.rb', line 103

def description_for language_code
descriptions.where(language_code: language_code).first ;end

#filtered_eventsObject



122
123
124
# File 'app/models/memory.rb', line 122

def filtered_events
types = %w(Repose Appearance Miracle Writing Founding Canonization)
events.where(type: types) ;end

#kontakions(text_present = true) ⇒ Object



133
134
135
# File 'app/models/memory.rb', line 133

def kontakions text_present = true
relation = Kontakion.joins( :services ).where( services: { id: services.pluck( :id ) } )
text_present && relation.where.not( { text: nil } ) || relation ;end

#kontakions_for(language_code, text_present = true) ⇒ Object



137
138
# File 'app/models/memory.rb', line 137

def kontakions_for language_code, text_present = true
kontakions( text_present ).where(language_code: language_code) ;end

#order_for(language_code) ⇒ Object



100
101
# File 'app/models/memory.rb', line 100

def order_for language_code
orders.where(language_code: language_code).first ;end

#paterics_for(language_code) ⇒ Object



114
115
116
# File 'app/models/memory.rb', line 114

def paterics_for language_code
apaterics = paterics.where(language_code: language_code)
apaterics.present? && apaterics || nil ;end

#set_base_yearObject



68
69
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
# File 'app/models/memory.rb', line 68

def set_base_year
   types = %w(Resurrection Repose Writing Appearance Translation Sanctification)

   event = self.events.to_a.sort_by { |x| (types.index(x.type) || 100) }.first

   dates = event.happened_at.split(/[\/-]/)
   self.base_year ||=
   case dates.first
   when /([IVX]+)$/
      ($1.rom - 1) * 100 + 50
   when /\.\s*(\d+)$/
      $1
   when /(?:\A|\s|\()(\d+)$/
      $1
   when /(?:\A|\s|\(|\.)(\d+) до (?:нэ|РХ)/
      "-#{$1}"
   when /(:|сент)/
      dates.last.split(".").last
   when /давно/
      '-3760'
   else
      dates = event.happened_at.split(/[\/-]/)
      if /(?:\A|\s|\(|\.)(\d+) до (?:нэ|РХ)/ =~ dates.first
         "-#{$1}"
      else
         '0' ;end;end

self.base_year ;end

#set_slugObject



140
141
# File 'app/models/memory.rb', line 140

def set_slug
self.slug = Slug.new(base: self.short_name) if self.slug.blank? ;end

#to_sObject



143
144
# File 'app/models/memory.rb', line 143

def to_s
memory_names.join( ' ' ) ; end

#troparions(text_present = true) ⇒ Object



126
127
128
# File 'app/models/memory.rb', line 126

def troparions text_present = true
relation = Troparion.joins( :services ).where( services: { id: services.pluck( :id ) } )
text_present && relation.where.not( { text: nil } ) || relation ;end

#troparions_for(language_code, text_present = true) ⇒ Object



130
131
# File 'app/models/memory.rb', line 130

def troparions_for language_code, text_present = true
troparions( text_present ).where(language_code: language_code) ;end


118
119
120
# File 'app/models/memory.rb', line 118

def valid_icon_links
# TODO cleanup when filter for jpg/png etc will be added to model
icon_links.where("url ~ '.(jpg|png)$'") ;end

#wikies_for(language_code) ⇒ Object



110
111
112
# File 'app/models/memory.rb', line 110

def wikies_for language_code
awikies = wikies.where(language_code: language_code)
awikies.present? && awikies || nil ;end