Module: Spik::Validators
- Included in:
- Spik
- Defined in:
- lib/spik/validators.rb
Constant Summary collapse
- WHICH_NAMES =
%w(all first)
- METHOD_NAMES =
%w(find delete)
Instance Method Summary collapse
Instance Method Details
#return_value_of(type, method, args) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/spik/validators.rb', line 30 def return_value_of(type, method, args) case type when :model, :like, :variable [method, args] when :which if args[0] !~ /@/ [method, args].flatten else args[0] end when :sql_method if args[0] !~ /@/ execute_method(method, args) else instance_variable_get(args[0]) end when :attribute if args[0] == 'like' method + ' LIKE "%' + args[1] + '%"' elsif args[0].is_a? String method + ' = \'' + args[0] + '\'' else method + ' = ' + args[0].to_s end when :class_method execute_class_method(method, args[0], args[1]) when :keyword args.flatten when :alias ['as__' + args[0], args[1..-1]] end end |
#spik_method(method, args) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/spik/validators.rb', line 6 def spik_method(method, args) if model_names.include?(method) return_value_of(:model, method, args) elsif model_names.include?(method[0..-2]) return_value_of(:model, method[0..-2], args) elsif WHICH_NAMES.include?(method) return_value_of(:which, method, args) elsif METHOD_NAMES.include?(method) return_value_of(:method, method, args) elsif !attributes.select{ |k,v| v.include? method }.empty? return_value_of(:attribute, method, args) elsif !class_methods.select{ |k,v| v.include? method.to_sym }.empty? return_value_of(:class_method, method, args) elsif method == 'like' return_value_of(:like, method, args) elsif %w(with which has have who from).include? method return_value_of(:keyword, method, args) elsif method == 'as' return_value_of(:alias, method, args) else return_value_of(:variable, method, args) end end |