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

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

Instance Method Summary collapse

Instance Method Details

#additional_association_classesObject



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

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 …”)



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

def base_class
  base_class_name.constantize
end

#broader_relation_classObject



86
87
88
# File 'lib/iqvoc/configuration/concept.rb', line 86

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”] }



92
93
94
95
96
97
98
99
100
101
102
# File 'lib/iqvoc/configuration/concept.rb', line 92

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.


155
156
157
158
159
160
161
# File 'lib/iqvoc/configuration/concept.rb', line 155

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



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

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



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

def further_relation_classes
  further_relation_class_names.map(&:constantize)
end

#include_modulesObject



144
145
146
# File 'lib/iqvoc/configuration/concept.rb', line 144

def include_modules
  include_module_names.map(&:constantize)
end

#labeling_class_namesObject



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

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

#labeling_classesObject



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

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

#match_classesObject



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

def match_classes
  match_class_names.map(&:constantize)
end

#notation_classesObject



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

def notation_classes
  notation_class_names.map(&:constantize)
end

#note_classesObject



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

def note_classes
  note_class_names.map(&:constantize)
end

#pref_labeling_classObject



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

def pref_labeling_class
  pref_labeling_class_name.constantize
end

#pref_labeling_languagesObject



58
59
60
61
62
# File 'lib/iqvoc/configuration/concept.rb', line 58

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.


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

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



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

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

#relation_classesObject



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

def relation_classes
  relation_class_names.map(&:constantize)
end

#root_classObject



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

def root_class
  root_class_name.constantize
end

#supports_multi_language_pref_labelings?Boolean

Returns:

  • (Boolean)


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

def supports_multi_language_pref_labelings?
  pref_labeling_languages.size > 1
end