module ReadyTalk::Util
Public Class Methods
camelize(key)
click to toggle source
# File lib/readytalk/util.rb, line 38 def self.camelize(key) str = key.to_s return str unless str.include?('_') str.downcase.gsub!(/(?:_|(\/))([a-z\d]*)/) { $2.capitalize } end
camelize_hash(hash)
click to toggle source
# File lib/readytalk/util.rb, line 19 def self.camelize_hash(hash) return {} if hash.nil? Hash[hash.map { |k, v| [camelize(k), v] }] end
create_helper_object(name, *args)
click to toggle source
# File lib/readytalk/util.rb, line 45 def self.create_helper_object(name, *args) klass = Class.new(ReadyTalkObject) Object.const_set(name, klass) klass.send(:new, *args) end
format_hash(hash)
click to toggle source
# File lib/readytalk/util.rb, line 4 def self.format_hash(hash) return {} if hash.nil? rv = {} hash.each do |k, v| if v.is_a?(Hash) nested = format_hash(v) nested.each { |kn, vn| rv["#{camelize(k)}.#{kn}"] = vn } else rv[camelize(k)] = v end end return rv end
new_helper_object(data, object_key)
click to toggle source
# File lib/readytalk/util.rb, line 51 def self.new_helper_object(data, object_key) klass = get_object_class(object_key) klass.send(:new, data, object_key) end
new_list_object(data, list_key, *data_keys)
click to toggle source
# File lib/readytalk/util.rb, line 56 def self.new_list_object(data, list_key, *data_keys) klass = get_object_class(list_key) ReadyTalkList.new(data, list_key, klass, data_keys) end
parameterize(key)
click to toggle source
# File lib/readytalk/util.rb, line 31 def self.parameterize(key) str = key.to_s return str if str.include?('_') str.gsub(/([A-Z])/) { "_#{$1.downcase}" } end
parameterize_hash(hash)
click to toggle source
# File lib/readytalk/util.rb, line 25 def self.parameterize_hash(hash) return {} if hash.nil? Hash[hash.map { |k, v| [parameterize(k), v] }] end
Private Class Methods
create_object_class(key)
click to toggle source
# File lib/readytalk/util.rb, line 76 def self.create_object_class(key) name = camelize(key) name = "#{name[0].upcase}#{name[1..-1]}" klass = Class.new(ReadyTalkObject) ReadyTalk.const_set(name, klass) return klass end
get_object_class(key)
click to toggle source
# File lib/readytalk/util.rb, line 62 def self.get_object_class(key) @@object_classes ||= { recording: Recording, meeting: Meeting } klass = @@object_classes[key] if klass.nil? klass = create_object_class(key) @@object_classes[key] = klass end return klass end