Class: Tr8n::LanguageCaseValueMap

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/tr8n/language_case_value_map.rb

Overview

– Copyright © 2010-2012 Michael Berkovich, tr8n.net

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++

– Tr8n::LanguageCaseValueMap Schema Information

Table name: tr8n_language_case_value_maps

id               INTEGER         not null, primary key
keyword          varchar(255)    not null
language_id      integer         not null
translator_id    integer         
map              text            
reported         boolean         
created_at       datetime        
updated_at       datetime

Indexes

index_tr8n_language_case_value_maps_on_translator_id              (translator_id) 
index_tr8n_language_case_value_maps_on_keyword_and_language_id    (keyword, language_id)

++

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.by_language_and_keyword(language, keyword) ⇒ Object



58
59
60
61
62
# File 'app/models/tr8n/language_case_value_map.rb', line 58

def self.by_language_and_keyword(language, keyword)
  Tr8n::Cache.fetch("language_case_value_map_#{language.id}_#{keyword}") do 
    find_by_language_id_and_keyword_and_reported(language.id, keyword, false)
  end
end

Instance Method Details

#clear_cacheObject



120
121
122
# File 'app/models/tr8n/language_case_value_map.rb', line 120

def clear_cache
  Tr8n::Cache.delete("language_case_value_map_#{language.id}_#{keyword}")
end

#destroy_with_log!(new_translator) ⇒ Object



107
108
109
110
111
# File 'app/models/tr8n/language_case_value_map.rb', line 107

def destroy_with_log!(new_translator)
#    new_translator.deleted_language_case_values!(self)
  
  destroy
end

#gender_based?Boolean

add a better way to determine the gender dependency

Returns:

  • (Boolean)


65
66
67
68
69
70
71
# File 'app/models/tr8n/language_case_value_map.rb', line 65

def gender_based?
  return false unless map
  map.each do |key, value|
    return true if value.is_a?(Hash) 
  end
  false
end

#gender_value_for(case_key, gender) ⇒ Object



94
95
96
97
98
# File 'app/models/tr8n/language_case_value_map.rb', line 94

def gender_value_for(case_key, gender)
  return unless map
  return map[case_key] unless map[case_key].is_a?(Hash)
  map[case_key][gender]
end

#implied_value_for(case_key) ⇒ Object



88
89
90
91
92
# File 'app/models/tr8n/language_case_value_map.rb', line 88

def implied_value_for(case_key)
  return unless map
  return gender_value_for(case_key, "male") if map[case_key].is_a?(Hash)   
  map[case_key]
end

#report_with_log!(new_translator) ⇒ Object



113
114
115
116
117
118
# File 'app/models/tr8n/language_case_value_map.rb', line 113

def report_with_log!(new_translator)
  # new_translator.reported_language_case_values!(self)

  update_attributes(:reported => true)
  self.translator.update_attributes(:reported => true) 
end

#save_with_log!(new_translator) ⇒ Object



100
101
102
103
104
105
# File 'app/models/tr8n/language_case_value_map.rb', line 100

def save_with_log!(new_translator)
#    new_translator.updated_language_case_values!(self)

  self.translator = new_translator
  save  
end

#value_for(object, case_key) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'app/models/tr8n/language_case_value_map.rb', line 73

def value_for(object, case_key)
  return unless map
  
  # male female definition
  if map[case_key].is_a?(Hash)
    object_gender = Tr8n::GenderRule.gender_token_value(object)
    if object_gender == Tr8n::GenderRule.gender_object_value_for("female")
      return map[case_key]['female']
    end
    return map[case_key]['male']
  end
  
  map[case_key] 
end