module Cassandra::Helpers
Public Instance Methods
extract_and_validate_params(column_family, keys, args, options)
click to toggle source
# File lib/cassandra/helpers.rb 3 def extract_and_validate_params(column_family, keys, args, options) 4 options = options.dup 5 column_family = column_family.to_s 6 # Keys 7 [keys].flatten.each do |key| 8 raise ArgumentError, "Key #{key.inspect} must be a String for #{caller[2].inspect}." unless key.is_a?(String) 9 end 10 11 # Options 12 if args.last.is_a?(Hash) 13 extras = args.last.keys - options.keys 14 raise ArgumentError, "Invalid options #{extras.inspect[1..-2]} for #{caller[1]}" if extras.any? 15 options.merge!(args.pop) 16 end 17 18 # Ranges 19 column, sub_column = args[0], args[1] 20 raise ArgumentError, "Invalid arguments: subcolumns specified for a non-supercolumn family" if sub_column && !is_super(column_family) 21 klass, sub_klass = column_name_class(column_family), sub_column_name_class(column_family) 22 range_class = column ? sub_klass : klass 23 24 [:start, :finish].each do |opt| 25 options[opt] = options[opt] ? range_class.new(options[opt]).to_s : '' 26 end 27 28 [column_family, s_map(column, klass), s_map(sub_column, sub_klass), options] 29 end
s_map(el, klass)
click to toggle source
Convert stuff to strings.
# File lib/cassandra/helpers.rb 32 def s_map(el, klass) 33 case el 34 when Array then el.map { |i| s_map(i, klass) } 35 when NilClass then nil 36 else 37 klass.new(el).to_s 38 end 39 end