Class: Dina::MultilingualDescription

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ MultilingualDescription

Returns a new instance of MultilingualDescription.



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

def initialize(opts = {})
  @descriptions = []
  if opts[:descriptions]
    @descriptions = opts[:descriptions]
  end
  if opts[:english]
    self.english_description = opts[:english]
  end
  if opts[:french]
    self.french_description = opts[:french]
  end
end

Instance Attribute Details

#descriptionsObject

Returns the value of attribute descriptions.



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

def descriptions
  @descriptions
end

Instance Method Details

#english_descriptionObject



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

def english_description
  descriptions.select{|o| o[:lang] == "en"}.first[:desc]
end

#english_description=(desc) ⇒ Object



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

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

#french_descriptionObject



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

def french_description
  descriptions.select{|o| o[:lang] == "fr"}.first[:desc]
end

#french_description=(desc) ⇒ Object



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

def french_description=(desc)
  descriptions.delete_if{|o| o[:lang] == "fr"}
  descriptions << { lang: "fr", desc: desc }
end

#to_hashObject



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

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