module Orientdb4r::Utils
Public Instance Methods
blank?(str)
click to toggle source
Checks if a given string is either 'nil' or empty string.
# File lib/orientdb4r/utils.rb, line 39 def blank?(str) str.nil? or (str.is_a? String and str.strip.empty?) end
compare_versions(first, second) { |rslt| ... }
click to toggle source
Compares two given versions.
Returns¶ ↑
-
1 if first > second
-
0 if first == second
-
-1 if first < second
# File lib/orientdb4r/utils.rb, line 55 def compare_versions(first, second) raise ArgumentError, "bad version format, version=#{first}" unless first =~ Orientdb4r::Client::SERVER_VERSION_PATTERN raise ArgumentError, "bad version format, version=#{second}" unless second =~ Orientdb4r::Client::SERVER_VERSION_PATTERN firstv = /^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)/.match(first)[0] secondv = /^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)/.match(second)[0] rslt = 0 rslt = 1 if firstv > secondv rslt = -1 if firstv < secondv yield rslt if block_given? rslt end
random_string(len=8)
click to toggle source
Generates a random string with given length.
# File lib/orientdb4r/utils.rb, line 45 def random_string(len=8) (0...len).map{65.+(rand(25)).chr}.join end
verify_and_sanitize_options(options, pattern)
click to toggle source
# File lib/orientdb4r/utils.rb, line 26 def verify_and_sanitize_options(options, pattern) verify_options(options, pattern) # set default values if missing in options pattern.each do |k,v| options[k] = v if !v.nil? and :optional != v and !options.keys.include? k end options end
verify_options(options, pattern)
click to toggle source
# File lib/orientdb4r/utils.rb, line 5 def verify_options(options, pattern) raise ArgumentError, 'options cannot be nil' if options.nil? # unknown key? options.keys.each do |k| raise ArgumentError, "unknow option: #{k}" unless pattern.keys.include? k end # missing mandatory option? pattern.each do |k,v| raise ArgumentError, "missing mandatory option: #{k}" if v == :mandatory and !options.keys.include? k end # option in a set of allowed values pattern.each do |k,v| if v.instance_of? Array raise ArgumentError, "value '#{options[k]}' not in #{v.inspect}, key=#{k}" unless v.include?(options[k]) end end options end