Class: Labeling::SKOSXL::Base
- Inherits:
-
Base
- Object
- Base
- Labeling::SKOSXL::Base
show all
- Defined in:
- app/models/labeling/skosxl/base.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.by_label_language(language) ⇒ Object
15
16
17
|
# File 'app/models/labeling/skosxl/base.rb', line 15
def self.by_label_language(language)
includes(:target).merge(self.label_class.by_language(language))
end
|
.by_label_origin(origin) ⇒ Object
11
12
13
|
# File 'app/models/labeling/skosxl/base.rb', line 11
def self.by_label_origin(origin)
includes(:target).merge(self.label_class.by_origin(origin))
end
|
.create_for(o, t) ⇒ Object
23
24
25
|
# File 'app/models/labeling/skosxl/base.rb', line 23
def self.create_for(o, t)
find_or_create_by_owner_id_and_target_id(o.id, t.id)
end
|
.edit_partial_name(obj) ⇒ Object
70
71
72
|
# File 'app/models/labeling/skosxl/base.rb', line 70
def self.edit_partial_name(obj)
"partials/labeling/skosxl/edit_base"
end
|
.label_class ⇒ Object
32
33
34
|
# File 'app/models/labeling/skosxl/base.rb', line 32
def self.label_class
Iqvoc::XLLabel.base_class
end
|
.label_editor_selectable ⇒ Object
19
20
21
|
# File 'app/models/labeling/skosxl/base.rb', line 19
def self.label_editor_selectable
includes(:target).merge(self.label_class.editor_selectable)
end
|
.partial_name(obj) ⇒ Object
66
67
68
|
# File 'app/models/labeling/skosxl/base.rb', line 66
def self.partial_name(obj)
"partials/labeling/skosxl/base"
end
|
.search_result_partial_name ⇒ Object
62
63
64
|
# File 'app/models/labeling/skosxl/base.rb', line 62
def self.search_result_partial_name
'partials/labeling/skosxl/search_result'
end
|
.single_query(params = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'app/models/labeling/skosxl/base.rb', line 36
def self.single_query(params = {})
query_str = build_query_string(params)
scope = includes(:target).order("LOWER(#{Label::Base.table_name}.value)").references(:labels)
if params[:query].present?
scope = scope.merge(Label::Base.by_query_value(query_str).by_language(params[:languages].to_a).published)
else
scope = scope.merge(Label::Base.by_language(params[:languages].to_a).published)
end
if params[:collection_origin].present?
scope = scope.includes(:owner => { :collection_members => :collection })
scope = scope.merge(Collection::Base.where(:origin => params[:collection_origin]))
end
scope = scope.includes(:owner).merge(Iqvoc::Concept.base_class.published)
unless params[:collection_origin].blank?
end
scope.map { |result| SearchResult.new(result) }
end
|
.target_in_edit_mode ⇒ Object
7
8
9
|
# File 'app/models/labeling/skosxl/base.rb', line 7
def self.target_in_edit_mode
includes(:target).merge(Iqvoc::XLLabel.base_class.in_edit_mode)
end
|
Instance Method Details
#<=>(other) ⇒ Object
FIXME: Hmm… Why should I sort labelings (not necessarily pref_labelings) by pref_label???
28
29
30
|
# File 'app/models/labeling/skosxl/base.rb', line 28
def <=>(other)
owner.pref_label <=> other.owner.pref_label
end
|
#build_rdf(document, subject) ⇒ Object
def by_label_language(language)
includes(:target).merge(self.label_class.by_language(language))
end
78
79
80
81
|
# File 'app/models/labeling/skosxl/base.rb', line 78
def build_rdf(document, subject)
subject.send(self.rdf_namespace.camelcase).send(self.rdf_predicate, IqRdf.build_uri(target.origin))
subject.Skos.send(self.rdf_predicate, target.value.to_s, :lang => target.language)
end
|
#build_search_result_rdf(document, result) ⇒ Object
83
84
85
86
|
# File 'app/models/labeling/skosxl/base.rb', line 83
def build_search_result_rdf(document, result)
result.Sdc::link(IqRdf.build_uri(owner.origin))
build_rdf(document, result)
end
|