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