module Graphify
Constants
- VERSION
Public Class Methods
get_graph(name, num_vertices, num_edges, storage_type, type, weight_limit)
click to toggle source
# File lib/graphify.rb, line 5 def self.get_graph(name, num_vertices, num_edges, storage_type, type, weight_limit) errors = check_params(name, num_vertices, num_edges, storage_type, type, weight_limit) p errors if errors != {} raise 'Invalid Parameters as above' if errors != {} Graph.new({'name': name, 'num_vertices': num_vertices, 'num_edges': num_edges, 'storage_type': storage_type, 'type': type, 'weight_limit': weight_limit}) end
Private Class Methods
check_name(name)
click to toggle source
# File lib/graphify.rb, line 27 def self.check_name(name) [] << 'Name cannot be empty or nil' if name == '' || name.nil? end
check_num_edges(num_edges, num_vertices, type)
click to toggle source
# File lib/graphify.rb, line 35 def self.check_num_edges(num_edges, num_vertices, type) errors = [] errors << 'Number of edges cannot be negative' if num_edges < 0 edge_limit = type == 'directed' ? (num_vertices) * (num_vertices - 1) : ((num_vertices) * (num_vertices - 1) / 2) errors << 'The number of edges is too large' if num_edges > edge_limit end
check_num_vertices(num_vertices)
click to toggle source
# File lib/graphify.rb, line 31 def self.check_num_vertices(num_vertices) [] << 'Number of vertices cannot be negative' if num_vertices < 0 end
check_params(name, num_vertices, num_edges, storage_type, type, weight_limit)
click to toggle source
# File lib/graphify.rb, line 15 def self.check_params(name, num_vertices, num_edges, storage_type, type, weight_limit) errors = {} errors['name'] = check_name(name) unless check_name(name).nil? errors['num_vertices'] = check_num_vertices(num_vertices) unless check_num_vertices(num_vertices).nil? errors['type'] = check_type(type) unless check_type(type).nil? errors['weight_limit'] = check_weight_limit(weight_limit) unless check_weight_limit(weight_limit).nil? errors['storage_type'] = check_storage_type(storage_type) unless check_storage_type(storage_type).nil? errors['num_edges'] = check_num_edges(num_edges, num_vertices, type) unless check_num_edges(num_edges, num_vertices, type).nil? errors end
check_storage_type(storage_type)
click to toggle source
# File lib/graphify.rb, line 42 def self.check_storage_type(storage_type) [] << 'Storage type is invalid' if storage_type != 'matrix' && storage_type != 'list' end
check_type(type)
click to toggle source
# File lib/graphify.rb, line 46 def self.check_type(type) [] << 'Type of graph is invalid' if type != 'directed' && type != 'undirected' end
check_weight_limit(weight_limit)
click to toggle source
# File lib/graphify.rb, line 50 def self.check_weight_limit(weight_limit) [] << 'Weight limit cannot be negative' if weight_limit < 0 end