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