Module: Qinium::Utils

Extended by:
Utils
Included in:
Client, Object, PutPolicy, Utils
Defined in:
lib/qinium/utils.rb

Instance Method Summary collapse

Instance Method Details

#blank?(obj) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
21
22
23
24
25
26
# File 'lib/qinium/utils.rb', line 18

def blank?(obj)
  case obj
  when String then obj.strip.empty?
  when NilClass then true
  when Array, Hash then obj.size.zero?
  else
    false
  end
end

#encode_entry_uri(bucket, key) ⇒ Object



13
14
15
16
# File 'lib/qinium/utils.rb', line 13

def encode_entry_uri(bucket, key)
  entry_uri = bucket + ":" + key
  urlsafe_base64_encode(entry_uri)
end

#logger ⇒ Object



39
40
41
# File 'lib/qinium/utils.rb', line 39

def logger
  @logger ||= Logger.new(STDOUT, level: Qinium.logger_level)
end

#to_query_string(hash) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/qinium/utils.rb', line 28

def to_query_string(hash)
  args = []
  hash.keys.sort_by(&:to_s).each do |key|
    value = hash[key]
    next if value.nil?

    args.push("#{CGI.escape(key.to_s)}=#{CGI.escape(value.to_s).gsub("+", "%20")}")
  end
  args.join("&")
end

#urlsafe_base64_decode(encoded_content) ⇒ Object



9
10
11
# File 'lib/qinium/utils.rb', line 9

def urlsafe_base64_decode(encoded_content)
  Base64.decode64 encoded_content.gsub("_", "/").gsub("-", "+")
end

#urlsafe_base64_encode(content) ⇒ Object



5
6
7
# File 'lib/qinium/utils.rb', line 5

def urlsafe_base64_encode(content)
  Base64.encode64(content).strip.gsub("+", "-").gsub("/", "_").gsub(/\r?\n/, "")
end