85 lines
3.3 KiB
Ruby
85 lines
3.3 KiB
Ruby
#
|
|
# Copyright 2012 Wade Alcorn wade@bindshell.net
|
|
#
|
|
# 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.
|
|
#
|
|
|
|
|
|
# @note The following file contains patches for DataMapper Data Objects Adapter (dm-do-adapter)
|
|
# This patch fixes the following error:
|
|
# DataObjects::URI.new with arguments is deprecated, use a Hash of URI components (/home/username/.rvm/gems/ruby-1.9.2-p290/gems/dm-do-adapter-1.1.0/lib/dm-do-adapter/adapter.rb:231:in `new')
|
|
# The error is patched in dm-do-adapter 1.1.1 however it has yet to be released.
|
|
# Patch: https://github.com/datamapper/dm-do-adapter/commit/7f0b53d1ada8735910e04ff37d60c6ff037ce288
|
|
|
|
=begin
|
|
Deleted:
|
|
< DataObjects::URI.new(
|
|
< @options[:adapter],
|
|
< @options[:user] || @options[:username],
|
|
< @options[:password],
|
|
< @options[:host],
|
|
< port,
|
|
< @options[:path] || @options[:database],
|
|
< query,
|
|
< @options[:fragment]
|
|
< ).freeze
|
|
|
|
Added:
|
|
> DataObjects::URI.new({
|
|
> :scheme => @options[:adapter],
|
|
> :user => @options[:user] || @options[:username],
|
|
> :password => @options[:password],
|
|
> :host => @options[:host],
|
|
> :port => port,
|
|
> :path => @options[:path] || @options[:database],
|
|
> :query => query,
|
|
> :fragment => @options[:fragment]
|
|
> }).freeze
|
|
=end
|
|
|
|
require 'dm-do-adapter'
|
|
|
|
module DataMapper
|
|
module Adapters
|
|
class DataObjectsAdapter < AbstractAdapter
|
|
|
|
def normalized_uri
|
|
@normalized_uri ||=
|
|
begin
|
|
keys = [
|
|
:adapter, :user, :password, :host, :port, :path, :fragment,
|
|
:scheme, :query, :username, :database ]
|
|
query = DataMapper::Ext::Hash.except(@options, keys)
|
|
query = nil if query.empty?
|
|
|
|
# Better error message in case port is no Numeric value
|
|
port = @options[:port].nil? ? nil : @options[:port].to_int
|
|
|
|
DataObjects::URI.new({
|
|
:scheme => @options[:adapter],
|
|
:user => @options[:user] || @options[:username],
|
|
:password => @options[:password],
|
|
:host => @options[:host],
|
|
:port => port,
|
|
:path => @options[:path] || @options[:database],
|
|
:query => query,
|
|
:fragment => @options[:fragment]
|
|
}).freeze
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|