class Swgr2rb::SchemaModuleGenerator
SchemaModuleGenerator
generates a Ruby module file for an endpoint object model schema from its config.
Public Instance Methods
generate_lines()
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 10 def generate_lines [generate_module_name, generate_expected_code_method, generate_expected_schema_method, 'end'].compact.flatten end
Private Instance Methods
generate_expected_code_method()
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 23 def generate_expected_code_method RubyFileGeneratorConstants::EXPECTED_CODE.call(@config.expected_response.code) end
generate_expected_schema(response_schema)
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 33 def generate_expected_schema(response_schema) if response_schema.instance_of?(Class) || response_schema == Boolean response_schema.to_s.sub(/^.*::/, '') elsif response_schema.is_a?(Array) "[\n" + generate_expected_schema(response_schema.first) + "\n]" elsif response_schema.is_a?(Hash) "{\n" + generate_hash_schema(response_schema) + "\n}" end end
generate_expected_schema_method()
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 27 def generate_expected_schema_method return unless @config.expected_response.schema.present? RubyFileGeneratorConstants::EXPECTED_SCHEMA.call(generate_expected_schema(@config.expected_response.schema)) end
generate_hash_schema(response_schema)
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 43 def generate_hash_schema(response_schema) response_schema.map do |name, type| "#{name}: #{generate_expected_schema(type)}," end.join("\n").sub(/,\Z/, '') end
generate_module_name()
click to toggle source
# File lib/endpoint_class_generator/schema_module_generator.rb, line 19 def generate_module_name RubyFileGeneratorConstants::MODULE_NAME.call(@opts[:name]) end