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