Class: Ansr::Dpla::ConnectionAdapters::NoSqlAdapter
- Inherits:
-
ConnectionAdapters::NoSqlAdapter
- Object
- ConnectionAdapters::NoSqlAdapter
- Ansr::Dpla::ConnectionAdapters::NoSqlAdapter
- Defined in:
- lib/ansr_dpla/connection_adapters/no_sql_adapter.rb
Class Method Summary collapse
Instance Method Summary collapse
- #execute(query, name = 'ANSR-DPLA') ⇒ Object
-
#initialize(klass, logger = nil, pool = nil) ⇒ NoSqlAdapter
constructor
:nodoc:.
- #sanitize_limit(limit_value) ⇒ Object
- #table_exists?(table_name) ⇒ Boolean
- #to_sql(*args) ⇒ Object
Constructor Details
#initialize(klass, logger = nil, pool = nil) ⇒ NoSqlAdapter
:nodoc:
9 10 11 12 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 9 def initialize(klass, logger = nil, pool = nil) #:nodoc: super(klass, klass.api, logger, pool) @visitor = Ansr::Dpla::Arel::Visitors::ToNoSql.new(@table) end |
Class Method Details
.connection_for(klass) ⇒ Object
5 6 7 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 5 def self.connection_for(klass) klass.api end |
Instance Method Details
#execute(query, name = 'ANSR-DPLA') ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 18 def execute(query, name='ANSR-DPLA') method = query.path query = query.to_h if Ansr::Dpla::Request === query query = query.dup aliases = query.delete(:aliases) json = @connection.send(method, query) json = json.length > 0 ? JSON.load(json) : {'docs' => [], 'facets' => []} if json['docs'] and aliases json['docs'].each do |doc| aliases.each do |k,v| if doc[k] old = doc.delete(k) if old and doc[v] doc[v] = Array(doc[v]) if doc[v] Array(old).each {|ov| doc[v] << ov} else doc[v] = old end end end end end json end |
#sanitize_limit(limit_value) ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 47 def sanitize_limit(limit_value) if (0..500) === limit_value.to_s.to_i limit_value else Ansr::Relation::DEFAULT_PAGE_SIZE end end |
#table_exists?(table_name) ⇒ Boolean
43 44 45 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 43 def table_exists?(table_name) ['Collection', 'Item'].include? table_name end |
#to_sql(*args) ⇒ Object
14 15 16 |
# File 'lib/ansr_dpla/connection_adapters/no_sql_adapter.rb', line 14 def to_sql(*args) to_nosql(*args) end |