Class: Ansr::Dpla::ConnectionAdapters::NoSqlAdapter

Inherits:
ConnectionAdapters::NoSqlAdapter
  • Object
show all
Defined in:
lib/ansr_dpla/connection_adapters/no_sql_adapter.rb

Class Method Summary collapse

Instance Method Summary collapse

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

Returns:

  • (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