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

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

Instance Method Summary collapse

Instance Method Details

#additional_association_classesObject



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

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



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

def base_class
  base_class_name.constantize
end

#broader_relation_classObject



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

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



82
83
84
85
86
87
88
89
90
91
92
# File 'lib/iqvoc/configuration/concept.rb', line 82

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.


141
142
143
144
145
146
147
# File 'lib/iqvoc/configuration/concept.rb', line 141

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



94
95
96
97
98
# File 'lib/iqvoc/configuration/concept.rb', line 94

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



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

def further_relation_classes
  further_relation_class_names.map(&:constantize)
end

#include_modulesObject



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

def include_modules
  include_module_names.map(&:constantize)
end

#labeling_class_namesObject



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

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

#labeling_classesObject



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

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

#match_classesObject



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

def match_classes
  match_class_names.map(&:constantize)
end

#note_classesObject



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

def note_classes
  note_class_names.map(&:constantize)
end

#pref_labeling_classObject



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

def pref_labeling_class
  pref_labeling_class_name.constantize
end

#pref_labeling_languagesObject



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

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.


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

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



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

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

#relation_classesObject



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

def relation_classes
  relation_class_names.map(&:constantize)
end

#supports_multi_language_pref_labelings?Boolean

Returns:

  • (Boolean)


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

def supports_multi_language_pref_labelings?
  pref_labeling_languages.size > 1
end