lib/finix/utils.rb in finix-0.7 vs lib/finix/utils.rb in finix-0.8

- old
+ new

@@ -1,47 +1,12 @@ module Finix - module Utils def callable(callable_or_not) callable_or_not.respond_to?(:call) ? callable_or_not : lambda { callable_or_not } end - def camelize(underscored_word) - underscored_word.to_s.gsub(/(?:^|_)(.)/) { $1.upcase } - end - - def classify(table_name) - camelize singularize(table_name.to_s.sub(/.*\./, '')) - end - - def demodulize(class_name_in_module) - class_name_in_module.to_s.sub(/^.*::/, '') - end - - def pluralize(word) - word.to_s.sub(/([^s])$/, '\1s') - end - - def singularize(word) - word.to_s.sub(/s$/, '').sub(/ie$/, 'y') - end - - def underscore(camel_cased_word) - word = camel_cased_word.to_s.dup - word.gsub!(/::/, '/') - word.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2') - word.gsub!(/([a-z\d])([A-Z])/, '\1_\2') - word.tr! '-', '_' - word.downcase! - word - end - - # def extract_href_from_object(object) - # object.respond_to?(:href) ? object.href : object - # end - def indifferent_read_access(base = {}) indifferent = Hash.new do |hash, key| hash[key.to_s] if key.is_a? Symbol end base.each_pair do |key, value| @@ -67,42 +32,8 @@ indifferent[key.to_s] = value end indifferent end - # def stringify_keys!(hash) - # hash.keys.each do |key| - # stringify_keys! hash[key] if hash[key].is_a? Hash - # hash[key.to_s] = hash.delete key if key.is_a? Symbol - # end - # end - - # Validate all keys in a hash match *valid keys, raising ArgumentError on a mismatch. - # Note that keys are NOT treated indifferently, meaning if you use strings for keys but assert symbols - # as keys, this will fail. - # - # ==== Examples - # { :name => "Rob", :years => "28" }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key(s): years" - # { :name => "Rob", :age => "28" }.assert_valid_keys("name", "age") # => raises "ArgumentError: Unknown key(s): name, age" - # { :name => "Rob", :age => "28" }.assert_valid_keys(:name, :age) # => passes, raises nothing - # def assert_valid_keys(hash, *valid_keys) - # unknown_keys = hash.keys - [valid_keys].flatten - # raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(', ')}") unless unknown_keys.empty? - # end - - # http://pablomanrubia.com/2011/03/extending-ruby-to-validate-required-keys-in-a-hash-table/ - #def assert_required_keys(hash, params) - # params[:required] ||= [] - # params[:optional] ||= [] - # assert_valid_keys(hash, params[:required] + params[:optional]) - # pending_keys = params[:required] - hash.keys - # raise(ArgumentError, "Required key(s) not present: #{pending_keys.join(', ')}") unless pending_keys.empty? - #end - - # def assert_required_keys(hash, params) - # params[:required] ||= [] - # pending_keys = params[:required] - hash.keys - # raise(ArgumentError, "Required key(s) not present: #{pending_keys.join(', ')}") unless pending_keys.empty? - # end extend self end end \ No newline at end of file