Class: LinkedRails::Translate

Inherits:
Object
  • Object
show all
Defined in:
lib/linked_rails/translate.rb

Class Method Summary collapse

Class Method Details

.call(type, key, object, fallback = true) ⇒ Object



21
22
23
# File 'lib/linked_rails/translate.rb', line 21

def call(type, key, object, fallback = true)
  strategy_for(type, key).call(object, fallback)
end

.key_for_iri(iri, key) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/linked_rails/translate.rb', line 43

def key_for_iri(iri, key)
  [
    Vocab.for!(iri).__prefix__,
    tag_for_iri(iri),
    key
  ].join('.')
end

.tag_for_iri(iri) ⇒ Object



51
52
53
# File 'lib/linked_rails/translate.rb', line 51

def tag_for_iri(iri)
  iri.to_s.split(Vocab.for(iri).to_s).last
end

.translation_key(resource) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/linked_rails/translate.rb', line 25

def translation_key(resource)
  klass =
    case resource
    when Collection
      resource.association_class
    when Class
      resource
    else
      resource&.class
    end
  klass&.name&.demodulize&.tableize
end

.translations_for(type, key) ⇒ Object



38
39
40
41
# File 'lib/linked_rails/translate.rb', line 38

def translations_for(type, key)
  strategies[type] ||= {}
  strategies[type][key] = ->(object, fallback) { yield(object, fallback) }
end