Class: Memory
Overview
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from DefaultKey
default_key, default_key=, extended, find, has_default_key
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_events ⇒ Object
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_year ⇒ Object
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_slug ⇒ Object
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_s ⇒ Object
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
|
#valid_icon_links ⇒ Object
118
119
120
|
# File 'app/models/memory.rb', line 118
def valid_icon_links
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
|