module ActiveGraph::ClassArguments

Constants

INVALID_CLASS_ARGUMENT_ERROR

Public Class Methods

constantize_argument(class_argument) click to toggle source
   # File lib/active_graph/class_arguments.rb
21 def constantize_argument(class_argument)
22   case class_argument
23   when 'any', :any, false, nil
24     nil
25   when Array
26     class_argument.map(&method(:constantize_argument))
27   else
28     class_argument.to_s.constantize.tap do |class_constant|
29       if !node_model?(class_constant)
30         fail ArgumentError, "#{class_constant} is not an Node model"
31       end
32     end
33   end
34 rescue NameError
35   raise ArgumentError, "Could not find class: #{class_argument}"
36 end
node_model?(class_constant) click to toggle source
   # File lib/active_graph/class_arguments.rb
17 def node_model?(class_constant)
18   class_constant.included_modules.include?(ActiveGraph::Node)
19 end
valid_argument?(class_argument) click to toggle source
  # File lib/active_graph/class_arguments.rb
6 def valid_argument?(class_argument)
7   [NilClass, String, Symbol, FalseClass].include?(class_argument.class) ||
8     (class_argument.is_a?(Array) && class_argument.all? { |c| [Symbol, String].include?(c.class) })
9 end
validate_argument!(class_argument, context) click to toggle source
   # File lib/active_graph/class_arguments.rb
11 def validate_argument!(class_argument, context)
12   return if valid_argument?(class_argument)
13 
14   fail ArgumentError, "#{context} #{INVALID_CLASS_ARGUMENT_ERROR} (was #{class_argument.inspect})"
15 end