Module: Iqvoc::Configuration::Concept::ClassMethods

Defined in:
lib/iqvoc/configuration/concept.rb

Instance Method Summary collapse

Instance Method Details

#additional_association_classesObject



125
126
127
128
129
# File 'lib/iqvoc/configuration/concept.rb', line 125

def additional_association_classes
  additional_association_class_names.keys.each_with_object({}) do |class_name, hash|
    hash[class_name.constantize] = additional_association_class_names[class_name]
  end
end

#base_classObject

Do not use the following method in models. This will probably cause a loading loop (something like “expected file xyz to load …”)



61
62
63
# File 'lib/iqvoc/configuration/concept.rb', line 61

def base_class
  base_class_name.constantize
end

#broader_relation_classObject



81
82
83
# File 'lib/iqvoc/configuration/concept.rb', line 81

def broader_relation_class
  broader_relation_class_name.constantize
end

#further_labeling_class_namesObject

returns hash of class name / languages pairs e.g. { “Labeling::SKOS::AltLabel” => [“de”, “en”] }



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/iqvoc/configuration/concept.rb', line 87

def further_labeling_class_names
  # FIXME: mutable object; needs custom hash setters to guard against
  # modification of languages arrays (to highlight deprecated usage)
  return Iqvoc.config.defaults.each_with_object({}) do |(key, default_value), hsh|
    prefix = "languages.further_labelings."
    if key.start_with? prefix
      class_name = key[prefix.length..-1]
      hsh[class_name] = Iqvoc.config[key]
    end
  end
end

#further_labeling_class_names=(hsh) ⇒ Object

Deprecated.


146
147
148
149
150
151
152
# File 'lib/iqvoc/configuration/concept.rb', line 146

def further_labeling_class_names=(hsh)
  ActiveSupport::Deprecation.warn "further_labeling_class_names has been moved into instance configuration", caller
  prefix = "languages.further_labelings."
  hsh.each do |class_name, value|
    Iqvoc.config.register_setting(prefix + class_name, value.map(&:to_s))
  end
end

#further_labeling_classesObject



99
100
101
102
103
# File 'lib/iqvoc/configuration/concept.rb', line 99

def further_labeling_classes
  further_labeling_class_names.keys.each_with_object({}) do |class_name, hash|
    hash[class_name.constantize] = further_labeling_class_names[class_name]
  end
end

#further_relation_classesObject



113
114
115
# File 'lib/iqvoc/configuration/concept.rb', line 113

def further_relation_classes
  further_relation_class_names.map(&:constantize)
end

#include_modulesObject



135
136
137
# File 'lib/iqvoc/configuration/concept.rb', line 135

def include_modules
  include_module_names.map(&:constantize)
end

#labeling_class_namesObject



73
74
75
# File 'lib/iqvoc/configuration/concept.rb', line 73

def labeling_class_names
  { pref_labeling_class_name => pref_labeling_languages }.merge(further_labeling_class_names)
end

#labeling_classesObject



77
78
79
# File 'lib/iqvoc/configuration/concept.rb', line 77

def labeling_classes
  { pref_labeling_class => pref_labeling_languages }.merge(further_labeling_classes)
end

#match_classesObject



121
122
123
# File 'lib/iqvoc/configuration/concept.rb', line 121

def match_classes
  match_class_names.map(&:constantize)
end

#note_classesObject



117
118
119
# File 'lib/iqvoc/configuration/concept.rb', line 117

def note_classes
  note_class_names.map(&:constantize)
end

#pref_labeling_classObject



69
70
71
# File 'lib/iqvoc/configuration/concept.rb', line 69

def pref_labeling_class
  pref_labeling_class_name.constantize
end

#pref_labeling_languagesObject



53
54
55
56
57
# File 'lib/iqvoc/configuration/concept.rb', line 53

def pref_labeling_languages
  # FIXME: mutable object; needs custom array setters to guard against
  # modification (to highlight deprecated usage)
  return Iqvoc.config["languages.pref_labeling"]
end

#pref_labeling_languages=(value) ⇒ Object

Deprecated.


140
141
142
143
# File 'lib/iqvoc/configuration/concept.rb', line 140

def pref_labeling_languages=(value)
  ActiveSupport::Deprecation.warn "pref_labeling_languages has been moved into instance configuration", caller
  Iqvoc.config.register_setting("languages.pref_labeling", value)
end

#relation_class_namesObject



105
106
107
# File 'lib/iqvoc/configuration/concept.rb', line 105

def relation_class_names
  further_relation_class_names + [broader_relation_class_name, broader_relation_class.narrower_class.name]
end

#relation_classesObject



109
110
111
# File 'lib/iqvoc/configuration/concept.rb', line 109

def relation_classes
  relation_class_names.map(&:constantize)
end

#root_classObject



65
66
67
# File 'lib/iqvoc/configuration/concept.rb', line 65

def root_class
  root_class_name.constantize
end

#supports_multi_language_pref_labelings?Boolean

Returns:

  • (Boolean)


131
132
133
# File 'lib/iqvoc/configuration/concept.rb', line 131

def supports_multi_language_pref_labelings?
  pref_labeling_languages.size > 1
end