module SolveBio::Util
Public Class Methods
object_classes()
click to toggle source
# File lib/solvebio/util.rb, line 3 def self.object_classes @object_classes ||= { 'Depository' => Depository, 'DepositoryVersion' => DepositoryVersion, 'Dataset' => Dataset, 'DatasetField' => DatasetField, 'Sample' => Sample, 'Annotation' => Annotation, 'User' => User, 'Account' => Account, 'list' => ListObject } end
symbolize_names(object)
click to toggle source
# File lib/solvebio/util.rb, line 28 def self.symbolize_names(object) case object when Hash new_hash = {} object.each do |key, value| key = (key.to_sym rescue key) || key new_hash[key] = symbolize_names(value) end new_hash when Array object.map { |value| symbolize_names(value) } else object end end
to_solve_object(resp)
click to toggle source
# File lib/solvebio/util.rb, line 17 def self.to_solve_object(resp) case resp when Array resp.map { |i| to_solve_object(i) } when Hash object_classes.fetch(resp[:class_name], SolveObject).construct_from(resp) else resp end end
Public Instance Methods
camelcase_to_underscore(name)
click to toggle source
# File lib/solvebio/util.rb, line 52 def camelcase_to_underscore(name) # Add underscore before internal uppercase letters. # Using [[:upper:]] and [[:lower]] should help with Unicode. s1 = name.gsub(/(.)([[:upper:]])([[:lower:]]+)/){"#{$1}_#{$2}#{$3}"} return (s1.gsub(/([a-z0-9])([[:upper:]])/){"#{$1}_#{$2}"}).downcase end
pluralize(name)
click to toggle source
# File lib/solvebio/util.rb, line 45 def pluralize(name) if name.end_with?('y') name = name[0..-2] + 'ie' end return name + "s" end