Class: Note::Base
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Note::Base
- Defined in:
- app/models/note/base.rb
Overview
Copyright 2011-2013 innoQ Deutschland GmbH
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Direct Known Subclasses
Class Method Summary collapse
-
.by_language(lang_code) ⇒ Object
********** Scopes.
- .by_owner(owner) ⇒ Object
- .by_owner_type(klass) ⇒ Object
- .by_query_value(query) ⇒ Object
- .edit_partial_name(obj) ⇒ Object
- .for_concepts ⇒ Object
- .for_labels ⇒ Object
- .partial_name(obj) ⇒ Object
- .search_result_partial_name ⇒ Object
- .single_query(params = {}) ⇒ Object
- .view_section(obj) ⇒ Object
- .view_section_sort_key(obj) ⇒ Object
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
********** Methods.
- #build_search_result_rdf(document, result) ⇒ Object
-
#from_annotation_list!(str) ⇒ Object
TODO: This should move to umt because the “list” is more or less proprietary.
- #to_s ⇒ Object
Class Method Details
.by_language(lang_code) ⇒ Object
********** Scopes
38 39 40 41 42 43 44 |
# File 'app/models/note/base.rb', line 38 def self.by_language(lang_code) if (lang_code.is_a?(Array) && lang_code.include?(nil)) where(arel_table[:language].eq(nil).or(arel_table[:language].in(lang_code.compact))) else where(language: lang_code) end end |
.by_owner(owner) ⇒ Object
62 63 64 65 66 67 68 69 70 |
# File 'app/models/note/base.rb', line 62 def self.by_owner(owner) if owner.is_a?(Label::Base) for_labels.where(owner_id: owner.id) elsif owner.is_a?(Concept::Base) for_concepts.where(owner_id: owner.id) else raise "Note::Base.by_owner: Unknown owner (#{owner.inspect})" end end |
.by_owner_type(klass) ⇒ Object
50 51 52 |
# File 'app/models/note/base.rb', line 50 def self.by_owner_type(klass) where(owner_type: klass.is_a?(ActiveRecord::Base) ? klass.name : klass) end |
.by_query_value(query) ⇒ Object
46 47 48 |
# File 'app/models/note/base.rb', line 46 def self.by_query_value(query) where(["LOWER(#{table_name}.value) LIKE ?", query.to_s.downcase]) end |
.edit_partial_name(obj) ⇒ Object
104 105 106 |
# File 'app/models/note/base.rb', line 104 def self.edit_partial_name(obj) 'partials/note/edit_base' end |
.for_concepts ⇒ Object
54 55 56 |
# File 'app/models/note/base.rb', line 54 def self.for_concepts where(owner_type: 'Concept::Base') end |
.for_labels ⇒ Object
58 59 60 |
# File 'app/models/note/base.rb', line 58 def self.for_labels where(owner_type: 'Label::Base') end |
.partial_name(obj) ⇒ Object
100 101 102 |
# File 'app/models/note/base.rb', line 100 def self.partial_name(obj) 'partials/note/base' end |
.search_result_partial_name ⇒ Object
116 117 118 |
# File 'app/models/note/base.rb', line 116 def self.search_result_partial_name 'partials/note/search_result' end |
.single_query(params = {}) ⇒ Object
108 109 110 111 112 113 114 |
# File 'app/models/note/base.rb', line 108 def self.single_query(params = {}) query_str = build_query_string(params) scope = by_query_value(query_str).by_language(params[:languages].to_a) scope = yield(scope) if block_given? scope.map { |result| SearchResult.new(result) } end |
.view_section(obj) ⇒ Object
92 93 94 |
# File 'app/models/note/base.rb', line 92 def self.view_section(obj) 'notes' end |
.view_section_sort_key(obj) ⇒ Object
96 97 98 |
# File 'app/models/note/base.rb', line 96 def self.view_section_sort_key(obj) 100 end |
Instance Method Details
#<=>(other) ⇒ Object
********** Methods
74 75 76 |
# File 'app/models/note/base.rb', line 74 def <=>(other) self.to_s.downcase <=> other.to_s.downcase end |
#build_search_result_rdf(document, result) ⇒ Object
120 121 122 123 |
# File 'app/models/note/base.rb', line 120 def build_search_result_rdf(document, result) result.Sdc::link(IqRdf.build_uri(owner.origin)) build_rdf(document, result) end |
#from_annotation_list!(str) ⇒ Object
TODO: This should move to umt because the “list” is more or less proprietary
79 80 81 82 83 84 85 86 |
# File 'app/models/note/base.rb', line 79 def from_annotation_list!(str) str.gsub(/\[|\]/, '').split('; ').map { |a| a.split(' ') }.each do |annotation| namespace, predicate = annotation.first.split(':', 2) annotations << Note::Annotated::Base.new(value: annotation.second, namespace: namespace, predicate: predicate) end self end |
#to_s ⇒ Object
88 89 90 |
# File 'app/models/note/base.rb', line 88 def to_s "#{self.value}" end |