Class: Qa::Authorities::Local::TableBasedAuthority
- Defined in:
- lib/qa/authorities/local/table_based_authority.rb
Instance Attribute Summary collapse
-
#subauthority ⇒ Object
readonly
Returns the value of attribute subauthority.
Class Method Summary collapse
Instance Method Summary collapse
- #all ⇒ Object
- #find(uri) ⇒ Object
-
#initialize(subauthority) ⇒ TableBasedAuthority
constructor
A new instance of TableBasedAuthority.
- #search(q) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(subauthority) ⇒ TableBasedAuthority
Returns a new instance of TableBasedAuthority.
15 16 17 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 15 def initialize() @subauthority = end |
Instance Attribute Details
#subauthority ⇒ Object (readonly)
Returns the value of attribute subauthority.
13 14 15 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 13 def @subauthority end |
Class Method Details
.check_for_index ⇒ Object
3 4 5 6 7 8 9 10 11 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 3 def self.check_for_index conn = ActiveRecord::Base.connection if conn.table_exists?('local_authority_entries') && !conn.indexes('local_authority_entries').find { |i| i.name == 'index_local_authority_entries_on_lower_label' } Rails.logger.error "You've installed local authority tables, but you haven't indexed the label. Rails doesn't support functional indexes in migrations, so you'll have to add this manually:\n" \ "CREATE INDEX \"index_qa_local_authority_entries_on_lower_label\" ON \"qa_local_authority_entries\" (local_authority_id, lower(label))\n" \ " OR on Sqlite: \n" \ "CREATE INDEX \"index_qa_local_authority_entries_on_lower_label\" ON \"qa_local_authority_entries\" (local_authority_id, label collate nocase)\n" \ end end |
Instance Method Details
#all ⇒ Object
24 25 26 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 24 def all output_set(base_relation.limit(1000)) end |
#find(uri) ⇒ Object
28 29 30 31 32 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 28 def find(uri) record = base_relation.find_by(uri: uri) return unless record output(record) end |
#search(q) ⇒ Object
19 20 21 22 |
# File 'lib/qa/authorities/local/table_based_authority.rb', line 19 def search(q) return [] if q.blank? output_set(base_relation.where('lower(label) like ?', "#{q.downcase}%").limit(25)) end |