symbol.rb revision 63d811572111990f3a188a45c1e2da123e5f20b6
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# This model is namespaced in the module OntologyMember because the class
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen# Symbol is already taken by ruby.
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainenmodule OntologyMember
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen class Symbol < ActiveRecord::Base
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen include Metadatable
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen include Symbol::Searching
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainen include Symbol::Readability
146240408e677e99e579d1feed92689585cc25d4Timo Sirainen
b1dd6be436e887774b94965ebe9af6d04179c227Timo Sirainen belongs_to :ontology
9844b5359f5cab77e4c31a7ac9e4a60a0073929eTimo Sirainen belongs_to :symbol_group
4073f0dbf3277f981a8fcee3b89ea15aaf380a7fTimo Sirainen has_and_belongs_to_many :sentences
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi has_and_belongs_to_many :oops_responses
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen # associations for SineAxiomSelection
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi has_one :sine_symbol_commonness, class_name: SineSymbolCommonness
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi has_many :sine_symbol_axiom_triggers
0aac625db5e6e179c8ee7420a12ab300d6b178edTimo Sirainen
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen attr_accessible :locid
e5224c0589916fb22f95f959326cf4b6221715b0Timo Sirainen attr_accessible :label, :comment
ca44a6ba994aaa3231a20ef6e046dfd97a8dcd2dTimo Sirainen
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen scope :kind, ->(kind) { where kind: kind }
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen def self.find_with_locid(locid, _iri = nil)
ca44a6ba994aaa3231a20ef6e046dfd97a8dcd2dTimo Sirainen where(locid: locid).first
419cf63077e755935ce105747d6ebc67b7d38a7fTimo Sirainen end
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen
b200bc3875fa06d42c8619865cc306c3297fcaccAki Tuomi def self.groups_by_kind
ca44a6ba994aaa3231a20ef6e046dfd97a8dcd2dTimo Sirainen groups = select('kind, count(*) AS count').group(:kind).
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen order('count DESC, kind').all
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen groups << Struct.new(:kind, :count).new('Symbol', 0) if groups.empty?
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainen groups
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainen end
146240408e677e99e579d1feed92689585cc25d4Timo Sirainen
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen def to_s
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen display_name || name
f8ead0942a9b7c8fcf91414ed1b534d5807ca555Timo Sirainen end
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainen end
1ed1ad066e4aa313e33dafedb892fb84946cacebTimo Sirainenend
cbe49ba128638e63395aedaa2144087c89835633Timo Sirainen