Class: Dina::MultilingualTitle

Inherits:
Object
  • Object
show all
Defined in:
lib/dina/casters/multilingual_title.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ MultilingualTitle

Returns a new instance of MultilingualTitle.



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dina/casters/multilingual_title.rb', line 5

def initialize(opts = {})
  @titles = []
  if opts[:titles]
    @descriptions = opts[:titles]
  end
  if opts[:english]
    self.english_title = opts[:english]
  end
  if opts[:french]
    self.french_title = opts[:french]
  end
end

Instance Attribute Details

#titlesObject

Returns the value of attribute titles.



3
4
5
# File 'lib/dina/casters/multilingual_title.rb', line 3

def titles
  @titles
end

Instance Method Details

#english_titleObject



23
24
25
# File 'lib/dina/casters/multilingual_title.rb', line 23

def english_title
  titles.select{|o| o[:lang] == "en"}.first[:title]
end

#english_title=(title) ⇒ Object



18
19
20
21
# File 'lib/dina/casters/multilingual_title.rb', line 18

def english_title=(title)
  titles.delete_if{|o| o[:lang] == "en"}
  titles << { lang: "en", title: desc }
end

#french_titleObject



32
33
34
# File 'lib/dina/casters/multilingual_title.rb', line 32

def french_title
  titles.select{|o| o[:lang] == "fr"}.first[:title]
end

#french_title=(title) ⇒ Object



27
28
29
30
# File 'lib/dina/casters/multilingual_title.rb', line 27

def french_title=(title)
  titles.delete_if{|o| o[:lang] == "fr"}
  titles << { lang: "fr", title: title }
end

#to_hashObject



36
37
38
39
40
# File 'lib/dina/casters/multilingual_title.rb', line 36

def to_hash
  hash = {}
  instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
  hash
end